Jak funguje - komprese

« zpět na JavaServer Page a Serverlety

banan/img/jaktofunguje.jpg

Komprese je způsob jak ušetřit čas i místo. Úkolem komprese je zmenšit datový tok, nebo zmenšit obsah souborů. Většina z vás určitě zná soubory, nebo-li tzv. archívy s příponou zip, rar a jiné. V takovýchto souborech se ukládají data na internet a je to ekonomičtější řešení. Né však u všech vždycky má komprese smysl.

Záhadou stále zůstává, proč se data dají zcvrknout ještě více, když jsou tvořeny 1 a 0?

Kompresí máme dva druhy, a to ztrátová a bezeztrátová a každá má své uplatnění.

Bezeztrátová komprese

Při bezeztrátové kompresi data po znovusestavení, neboli tzv. extrahování, tvoří stejně velký soubor a veškerá data jsou stejná jako byly před kompresi.

Když zabalujeme do archívu takový soubor, je třeba se zaměřit na redundantní data, to jsou ta která se opakují 2x a více.

LZ

-Lempel and Ziv adaptive dictionary-based algorithm (Lempelův a Zivův přizpůsobivý slovníkový postup).

Mějme například větu:

  • Petr viděl petrklíč a dal ho Petře. Petra však od Petra petrklíč zahodila.(74 znaků)

Nyní vybereme redundantní data, to jsou "Petr" a "Petra", porotože se zde objevují víckrát. Vepíšeme do tabulky abychom měli přehled (tzv. slovník):

Slovo Výskyt Kód
Petr  2 1
Petra  2 2
petrklíč  2 3

Nyní přepíšeme větu...

  • 1 viděl 3 a dal ho 2. 2 však od 1 3 zahodila.(45 znaků)

Nyní vidíte, že díky komprese se věta zmenšila o cca 1/3 objemu dat.

Huffmanovo kódování

Při tomto postupu dochází k prohledávání textu a hledání nejčastěji se vyskytujících posloupností znaků určité délky. Ty jsou nahrazeny nejkratšími kódovými slovy (např. abb), a ty méně časté jsou nahrazeny delšími kódovými slovy (např. baabbabab). Pro přidělování slov sestavujeme binární strom podle pravděpodobností výskytu jednotlivých posloupností. Pokud půjdeme po jeho hranách, dochází k získání kódových slov v prefixovém (prefix = předpona) tvaru, což zaručí, že se při dekódování nemohou poplést dvě posloupnosti (to znamená, že delší slovo nemůže být například abbab, což by znamenalo, že začíná znaky abb, přičemž by došlo k přeložení na nejkratší posloupnost a hledala by se pak posloupnost pro znaky ab).

Méně efektivních změn dosáhneme u souborech, kde se data neopakují často (videa, obrázky, Naopak u zdrojových kódů, kde se příkazy jazyka opakují častěji, dosáhneme efektivního výsledku.

Ztrátová komprese

Zde dochází záměrně ke ztrátě informací a ztracená data nelze zísat zpět (obrázky, hudba,...). Například při komprimaci zvukové stopy do formátu mp3 se  zvuky neslyšitelné lidským uchem ztratí a ponechají se jen ty, které podle nějakého měřítka slyšitelnosti lidské ucho (záleží na alogritmu) vnímá.

Takto třeba tento soubor, který měl na koupeném CD 40 MB, po komprimaci na mp3 formát, má  například pouhé 3 MB.

Komprimace zvukové stopy na mp3 fomrát je nejoblíbenější a nejrozšířenější. Objem dat se mnohonásobně zmenší a kvalita je pro nás stejná, protože tyto zvuky o které jsme byli ochuzeni stejně nevnímáme.

Programy na komprimaci hudby: CDex,Audio To MP3 Converter a mnoho dalších je zdarma ke stažení na různých freewareových serverech.

Nezávazně vyzkoušejte webové stránky zdarma

Klientská sekce pro Vás

Spravujte své domény a hosting pohodlně 24 hodin denně

Kontakt pro zákazníky

Technická podpora

PO-PÁ 8:00-21:00
SO-NE, svátky 9:00-21:00

E-mail: podpora@banan.cz

Online pracovník

Patrik Jankov

+420 553 810 250

Online chat

Zvládáme opensource

Na našich serverech jsme ručně ověřili funkci více než 140 opensource systémů, některé z nich nabízíme na jedno kliknutí v administraci.

Hostované domény

7754 domén 6478 1276

Poslední článek - HOMEPAGE PRVKY

O
Ověřit dostupnost domény
Technická podpora: +420 553 810 250podpora@banan.cz
Technická podpora 800-2100 (SO-NE 900-2100) X
Online pracovník: Patrik Jankov
+420 553 810 250
podpora@banan.cz nebo Online chat
Kontaktovat technickou podporu můžete zde
Kontaktovat technickou podporu můžete zde
PO-PÁ 800-2100 (víkendy a svátky 900-2100)