Kontakty

Aký je proces kompresie dát. Kódovanie stromov Shannon Fano. Presunúť a kopírovať komprimované súbory a priečinky

Prednáška číslo 4. Komprimovať informácie

Zásady kompresných informácií

Účelom kompresie dát je poskytnúť kompaktné znázornenie údajov generovaných zdrojom, pre ich ekonomickejšie úspory a prenos prostredníctvom komunikačných kanálov.

Dovoľte nám, aby sme mali veľkosť súboru 1 (jeden) megabajt. Musíme z neho získať menší súbor. Nič komplikované - spustite archivateľa, napríklad WinZIP a výsledkom výsledku, napríklad súbor 600 kilobajtov. Kde sú zostávajúce 424 kilobajtov?

Kompresia informácií je jedným zo spôsobov, ako kódovanie. Všeobecne platí, že kódy sú rozdelené do troch veľkých skupín - kompresné kódy (účinné kódy), kódy odolné voči hluku a kryptografické kódy. Kódy určené na kompresiu informácií sú rozdelené na kódexy bez stratových a stratových kódov. Kódovanie bez straty znamená absolútne presné obnovenie údajov po dekódovaní a môže sa použiť na kompresiu akýchkoľvek informácií. Kódovanie straty je zvyčajne oveľa vyšší stupeň kompresie, ako kódovanie bez straty, ale umožňuje určité odchýlky dekódovaných údajov zo zdroja.

Typy kompresie

Všetky spôsoby kompresii informácií môžu byť rozdelené do dvoch veľkých tried ne-cyklu: kompresia strata Informácie a kompresia bez straty informácie.

Kompresia bez straty informácií.

Tieto metódy kompresie sa zaujímajú o nás najprv, pretože je to im, že sa používajú pri prevode textových dokumentov a programov, pri vydávaní zákazníka vykonaného pracovnou činnosťou alebo pri vytváraní záložných kópií informácií uložených na počítači.

Metódy kompresie tejto triedy nemôžu umožniť stratu informácií, takže sú založené len na odstránenie jeho prepúšťania a informácie majú nadbytočnosť takmer vždy (aj keď to už nie je komplikovaný). Ak nebola žiadna redundancia, nebude nič komprimovať.

Tu je jednoduchý príklad. V ruštine, 33 písmenách, desiatich číslic a ďalšie asi jednu a pol tuct interpunkčné znamienka a iné špeciálne znaky. Pre text, ktorý je zaznamenaný len s kapitálom ruských listov (Ako v telegramoch a rádiogralokoch) by to stačilo na šesťdesiat rôznych hodnôt. Každý znak je však zvyčajne kódovaný bajtom, ktorý obsahuje 8 bitov a môže exprimovať 256 rôznych kódov. Toto je prvá základňa pre redundanciu. Pre náš "telegraph" text by to stačilo na šesť bitov na symbol.

Tu je ďalší príklad. V medzinárodných znakoch kódovania ASCII. Ak chcete kódovať akýkoľvek symbol, rovnaké množstvo bitov (8) je uvedené, zatiaľ čo každý má dlhý a je dobre známe, že najbežnejšie symboly majú zmysel kódovať menej znakov. Takže, napríklad v "abecede Morse", písmená "E" a "t", ktoré sú často zakódované, sú kódované jedným znakom (resp. Toto je bod a pomlčka). A také zriedkavé písmená, ako "yu" (- -) a "c" (- -) sú kódované štyrmi znakmi. Neefektívne kódovanie je druhá základňa pre redundanciu. Programy, ktoré komprimujú informácie, môžu zadať svoje kódovanie (iné pre rôzne súbory) a pripisovať určitú tabuľku (slovník) do komprimovaného súboru, z ktorého sa program rozbaľovací program učí tento súbor Alebo iné znaky alebo ich skupiny sú zakódované. Algoritmy na základe informácií o transkódovaní sa nazývajú hafman algoritmy.

Prítomnosť opakovaných fragmentov je tretím základom pre redundanciu. V textoch je zriedkavé, ale v tabuľkách av grafe je opakovanie kódov spoločným javom. Napríklad, ak sa číslo 0 opakuje dvadsaťkrát za sebou, nemá zmysel dať dvadsať nulových bajtov. Namiesto toho položia jeden nulový a koeficient 20. Takéto algoritmy na základe odhaľovacích opakovaní sa nazývajú metódyRLE. (Beh. Dĺžka. Kódovanie).

Veľké opakujúce sa sekvencie rovnakých bajtov sú obzvlášť odlišné grafické ilustrácie, ale nie fotografie (existuje mnoho hluku a susedné body sa výrazne líšia v parametroch) a tie, ktoré umelci maľujú "hladkú" farbu ako v animovaných filmoch.

Kompresia so stratou informácií.

Kompresia so stratou informácií znamená, že po vybalení zhutneného archívu dostaneme dokument, ktorý je trochu odlišný od jedného začiatku. Je jasné, že čím väčší stupeň kompresie, tým väčšia je hodnota straty a naopak.

Samozrejme, že takéto algoritmy nie sú použiteľné pre textové dokumenty, databázové tabuľky a najmä programy. Minor deformácie v jednoduchom neformátovanom texte môže byť nejako prežiť, ale skreslenie aspoň jedného bitového programu bude absolútne nefunkčné.

Súčasne sú tu materiály, v ktorých stojí za to obetovať niekoľko percent informácií, aby ste získali kompresiu desiatok času. Patrí medzi ne fotografické ilustrácie, video zábery a hudobné kompozície. Strata informácií v kompresii a následnom rozbalení v takýchto materiáloch je vnímaný ako vzhľad niektorého ďalšieho "hluku". Ale pretože pri vytváraní týchto materiálov je stále prítomný určitý "šum", jeho mierny nárast nie je vždy kritický, a výhry vo veľkostiach dáva obrovské (10-15-krát v hudbe, o 20-30 krát na fotografii a videozáznamy).

Kompresné algoritmy so stratou informácií zahŕňajú také dobre známe algoritmy ako JPEG a MPEG. Algoritmus JPEG sa používa pri kompresii fotografií. Grafické súbory komprimované touto metódou majú rozšírenie JPG. MPEG algoritmy sa používajú pri stlačení videa a hudby. Tieto súbory môžu mať rôzne rozšírenia v závislosti od konkrétneho programu, ale najznámejšie sú.mpg pre video i.mrz pre hudbu.

Kompresné algoritmy so stratou informácií platia len pre spotrebiteľské úlohy. To znamená, že napríklad, že ak sa fotografia prenáša na zobrazenie a hudbu na prehrávanie, potom takéto algoritmy môžu byť použité. Ak sa prenášajú na ďalšie spracovanie, napríklad na úpravu, žiadna strata informácií v zdrojovom materiáli nie je neprijateľná.

Rozsah prípustnej straty v kompresii je zvyčajne možné kontrolovať. To vám umožní experimentovať a dosiahnuť optimálny pomer veľkosti / kvality. V fotografických ilustráciách určených na prehrávanie na obrazovke je strata 5% informácií zvyčajne nekritická av niektorých prípadoch môže byť povolená 20-25%.

Kompresné algoritmy bez straty informácií

Shannon-Fano Code

Pre ďalšie uvažovanie bude vhodné predložiť naše pôvodný súbor S textom ako zdrojom znakov, ktoré sa objaví na jeho výstup. Nevieme vopred, ktorý symbol bude nasledovný, ale vieme, že písmeno "A" sa objaví s pravdepodobnosťou P1, s pravdepodobnosťou P2-buva "B" atď.

V najjednoduchšom prípade zvážime všetky textové symboly nezávislé od seba, t.j. Pravdepodobnosť vzhľadu nasledujúceho symbolu nezávisí od hodnoty predchádzajúceho symbolu. Samozrejme, pre zmysluplný text to nie je, ale teraz zvažujeme veľmi zjednodušenú situáciu. V tomto prípade je schválenie pravdivé "Symbol nesie viac informácií, tým menej sa objaví."

Predstavme si, že text, z ktorých abeceda pozostáva z iba 16 písmen: A, B, B, G, D, E, Z, Z, A, K, L, M, N, O, P, R. Každý z nich Známky môžu kódovať iba 4 bitov: od 0000 do 1111. Teraz si predstavte, že pravdepodobnosť vzhľadu týchto znakov sú distribuované takto:

Súčet týchto pravdepodobností je prirodzene zjednotená. Tieto znaky rozdelíme do dvoch skupín, takže celková pravdepodobnosť znakov každej skupiny je ~ 0,5 (obr.). V našom príklade bude to skupina znaky A-IN a pán Kruhy na obrázku, indikujúce symbolové skupiny, sa nazývajú vrcholy alebo uzly (uzly) a samotný dizajn z týchto uzlov je binárny strom (B-strom). Váš kód prideľujeme každému uzlu, označujeme číslo jedného uzla 0 a ostatné číslo 1.

Opäť platí, že prvá skupina (A-B) rozbijeme na dve podskupiny tak, aby ich celkové pravdepodobnosti boli navzájom bližšie. Pridajte k kódu prvej podskupiny číslo 0 a na druhý kód - číslica 1.

Túto operáciu zopakujeme, kým na každom vrchole nášho "stromu" zostane jeden znak. Úplný strom pre našu abecedu bude mať 31 uzlov.

Symbolové kódy (extrémne správne uzly dreva) majú kódy nerovnakej dĺžky. Takže písmeno A mať pravdepodobnosť P \u003d 0,2 pre náš imaginárny text je kódovaný iba s dvomi bitmi a písmeno p (nie je znázornené na obrázku), ktoré majú pravdepodobnosť P \u003d 0,013, je kódovaná so šesťbóniou kombináciou.

Takže princíp je zrejmý - spoločné symboly sú kódované menším počtom bitov, zriedkavé - veľké. V dôsledku toho bude priemerné množstvo bitov na symbolu rovné

tam, kde NI je počet bitov kódujúcich i-th symbol, PI je pravdepodobnosť vzhľadu i-th symbolu.

Huffman kód.

Algoritmus Huffman je elegantne realizuje všeobecnú predstavu o štatistickom kódovaní pomocou súprav prefixu a funguje takto:

1. Vypíšeme všetky symboly abecedy, aby sme zvýšili alebo zmenšili pravdepodobnosť ich vzhľadu v texte.

2. Dôsledne kombinovať dva znaky s najmenšími pravdepodobnosťmi vzhľadu vzhľadu na nový kompozitný charakter, ktorého sa predpokladá, že sa domnievame, že sa rovná súčtu pravdepodobnosti komponentov jeho znakov. Nakoniec postavíme strom, z ktorých každý má celkovú pravdepodobnosť všetkých uzlov pod ním.

3. Sledujte cestu ku každému listu dreva, označte smer do každého uzla (napríklad vpravo - 1, vľavo - 0). Výsledná sekvencia poskytuje kódové slovo zodpovedajúce každému symbolu (obr.).

Zostavte kódový strom pre komunikáciu s nasledujúcou abecedou:

Nevýhody metód

Najväčšia zložitosť s kódmi, ako to z predchádzajúcej diskusie, je potreba mať pravdepodobnosť tabuľky pre každý typ stlačiteľných údajov. Toto nie je problém, ak je známe, že anglický alebo ruský text je komprimovaný; Jednoducho poskytujeme kodér a dekodér vhodný kód pre angličtinu alebo ruský text. Vo všeobecnom prípade, keď je pravdepodobnosť symbolov pre vstupné údaje neznáma, statické kódy Huffman pracujú neefektívne.

Riešením tohto problému je štatistická analýza kódovaných údajov vykonaných počas prvého priechodu na dátach a kompilácie na ňom je založená na jeho kódovom dreve. Skutočne kódovanie vykonáva druhý priechod.

Ďalším nedostatkom kódov je, že minimálna dĺžka kódu pre nich nemôže byť nižšia ako jedna, zatiaľ čo entropia správy môže byť 0.1, a 0,01 bity / písmeno. V tomto prípade sa kód výrazne nadbytočný. Problém je riešený pomocou algoritmu na blokovanie blokov, ale potom je proces kódovania / dekódovania komplikovaný a kódový strom je výrazne rozšírený, ktorý musí byť nakoniec uložený spolu s kódom.

Tieto kódy neberú do úvahy vzťahy medzi znakmi, ktoré sú prítomné v takmer akéhokoľvek textu. Ak napríklad v texte anglický jazyk Nachádzame sa v liste Q, môžeme s istotou povedať, že písmeno u pôjde po ňom.

Skupinové kódovanie - Run Dĺžka kódovanie (RLE) je jedným z najstarších a najjednoduchších algoritmov archivácie. Kompresia v rle sa vyskytuje v dôsledku výmeny reťazcov rovnakého bajtu na pár "počítadlo, hodnota". ("Červená, červená, ..., červená" je napísaná ako "n červená").

Jedným z implementácií algoritmu je: hľadajú najčastejšie sa vyskytujúce bajt, nazývajú to predponu a vymeniť reťazce rovnakých symbolov na trojitej "prefix, počítadlo, hodnota". Ak je toto bajt splnené v zdrojovom súbore raz alebo dvakrát v rade, je nahradený párom "Prefix, 1" alebo "Prefix, 2". Tam je jeden nepoužitý pár "prefix, 0", ktorý môže byť použitý ako znak konca balených údajov.

Pri kódovaní EXE súborov môžete vyhľadávať a baliť sekvenciu formulára AXAAAZAWAT ... ktoré sa často nachádzajú v zdrojoch (riadky v kódovaní Unicode)

Pozitívne strany algoritmu možno pripísať tomu, čo nevyžaduje dodatočnú pamäť pri práci, a rýchlo sa vykoná. Algoritmus sa používa vo formátoch RCX, TIFF, NMR. Zaujímavým znakom skupiny kódovania v PCX je, že stupeň archivácie pre niektoré obrázky možno výrazne zvýšiť len zmenou poradia farieb v palete obrazu.

LZW kód (Lempel-Ziv & Welch) je dnes jedným z najbežnejších kompresných kódov bez straty. Je to s pomocou kódu LZW, že existuje kompresia v takýchto grafických formátoch ako TIFF a GIF, s pomocou modifikácií LZW, existuje veľmi veľa univerzálnych archívov. Prevádzka algoritmu je založená na vyhľadávaní v vstupnom súbore opakovaných sekvencií symbolov, ktoré sú kódované kombináciami s dĺžkou 8 až 12 bitov. Tak najväčšia účinnosť tento algoritmus Má na textových súboroch a grafických súboroch, v ktorých sú veľké monochrómové časti alebo opakujúce sa sekvencie pixelov.

Absencia strát informácií s kódovaním LZW viedlo k širokej distribúcii formátu TIFF-založeného na tom. Tento formát neukladá žiadne obmedzenia veľkosti a hĺbky farby obrazu a je široko rozšírená, napríklad v tlači. Ďalší formát na báze LZW - GIF je primitívnejší - umožňuje ukladať obrázky s farebnou hĺbkou nie viac ako 8 bitov / pixelov. Na začiatku súboru GIF sa nachádza paleta - tabuľka, ktorá nastaví korešpondenciu medzi farebným indexom - číslom v rozsahu od 0 do 255 a pravdivé, 24-bitové farebné hodnoty.

Kompresné algoritmy s stratou informácií

Algoritmus JPEG bol vyvinutý skupinou firiem s názvom Spoločná fotografická skupina expertov. Cieľom projektu bolo vytvoriť vysoko účinný kompresný štandard pre čiernobielo a farebné obrazy, tento cieľ a dosiahol vývojári. V súčasnosti JPEG nájde najširšiu aplikáciu, kde sa vyžaduje vysoký kompresný pomer - napríklad na internete.

Na rozdiel od JPEG kódovanie LZW algoritmus kóduje stratami. Samotný kódovací algoritmus je založený na veľmi zložitej matematike, ale vo všeobecnosti môže byť opísaná nasledovne: Obraz je rozdelený na štvorce 8 * 8 pixelov a potom sa každý štvorec prevedie na sekvenčný reťazec 64 pixelov. Ďalej je každý takýto reťaz vystavený takzvanej transformácii DCT, ktorá je jednou z odrôd diskrétnej Fourierovej transformácie. Leží v skutočnosti, že vstupná sekvencia pixelov môže byť reprezentovaná ako súčet sínusových a kosínskych komponentov s viacerými frekvenciami (tzv. Harmonické). V tomto prípade potrebujeme poznať iba amplitúdy týchto zložiek, aby sme obnovili vstupnú sekvenciu s dostatočným stupňom presnosti. Čím väčší je počet harmonických zložiek, ktoré poznáme, tým menej je rozpor medzi pôvodným a stlačeným obrazom. Väčšina snímačov JPEG vám umožní nastaviť kompresný pomer. To je veľmi dosiahnuté jednoduchý spôsob: Čím vyššia je stupeň kompresie, tým menšie sa Harmonická prezentuje každý 64-pixelový blok.

Samozrejme, sila tohto typu kódovania je veľký kompresný pomer pri zachovaní pôvodnej farebnej hĺbky. Je to táto vlastnosť, ktorá viedla k jeho rozšíreným používaním na internete, kde zníženie veľkosti súborov má mimoriadny význam v multimediálnych encyklopédiách, kde je potrebné, aby bolo uskladnenie väčšie ako grafika v obmedzenom objeme.

Negatívny majetok tohto formátu nesúvisí s akýmikoľvek prostriedkami, inherentne prirodzene zhoršujúcou sa kvalitou obrazu. Je to smutná skutočnosť, ktorá neumožňuje, aby sa používal pri tlači, kde je kvalita umiestnená na hlave rohu.

Formát JPEG však nie je limitom dokonalosti v túžbe znížiť veľkosť cieľového súboru. V v poslednej dobe Intenzívny výskum prebieha v oblasti tzv. Waveletovej transformácie (alebo striekanej transformácie). Na základe najkomplexnejších matematických princípov umožňujú snímače vlnovky získať väčšiu kompresiu ako JPEG, s menšími stratami informácií. Napriek zložitosti matematiky vlnovej transformácie je v implementácii softvéru jednoduchšie ako JPEG. Hoci algoritmy lisovania vlnovky sú stále v počiatočnom štádiu vývoja, je pripravená veľká budúcnosť.

Fraktálna kompresia

Fraktálna kompresia obrazu je algoritmus kompresie obrazu so stratami založenými na používaní ikonických funkcií (ak je to pravidlo, ako výsledok afinných transformácií) na obrázky. Tento algoritmus je známy tým, že v niektorých prípadoch umožňuje získať veľmi vysoké kompresné pomery ( najlepšie príklady - Až 1000 krát s prijateľnou vizuálnou kapacitou) pre skutočné fotografie prírodných objektov, ktoré nie sú k dispozícii pre iné algoritmy kompresie obrazu v princípe. kvôli komplexná situácia S patentom rozšíreného algoritmu nedostal.

Fraktálna archivácia je založená na skutočnosti, že použitie systémových koeficientov indikovaných funkcií je obraz kázaný v kompaktnejšej forme. Pred zvažovaním procesu archivácie budeme analyzovať, ako ifs buduje obraz.

Stručne povedané, aks je súbor trojrozmerných afinných transformácií, ktoré preložili jeden obraz do druhého. Transformácia sa podrobí bodom v trojrozmernom priestore (x súradnicu, na súradnicu, jas).

Základom fraktálnej metódy kódovania je detekcia vlastného pozemku v obraze. Prvýkrát je možná aplikácia teórie systémov ikonických funkcií (IFS) na problém kompresie obrazu, bol študovaný Michael Barnsley a Alan Sloan. V rokoch 1990 a 1991 patentovali svoj nápad. Jackwin (Jacquin) zaviedol spôsob fraktovej kódovania, ktorý používa bloky subjektov domény a rozsahu (domény a rozsahové bloky), bloky blokov pokrývajúce celý obraz. Tento prístup sa stal základom pre väčšinu metód fraktálnej kódovania používaných dnes. Zlepšil ho Juval Fisher (Yuval Fisher) a rad ďalších výskumných pracovníkov.

V súlade s touto metódou je obraz rozdelený na množstvo nežiaducich súrodencov (Podmienky rozsahu) a nastaví sadu prekrývajúcich sa postihnutí domény (subjekty domény). Pre každého bloku, kódovanie algoritmus nájde najvhodnejšiu jednotku domény a afinitnú konverziu, ktorá prekladá túto jednotku domény k tomuto bloku. Štruktúra obrazu sa zobrazí v systéme blokového bloku, blokov domén a transformácie.

Myšlienka je nasledovná: Predpokladajme, že pôvodný obrázok je pevným bodom určitého displeja. Potom je možné zapamätať si tento displej namiesto samotného obrázka a obnoviť ho dostatočne opakovane aplikovať tento displej na akýkoľvek štartovací obraz.

Na teoremom banánov, takéto iterácie vždy povedú do pevného bodu, ktorý je na pôvodný obrázok. V praxi sa celá obtiažšia leží pri hľadaní najvhodnejšieho displeja a v jeho kompaktnom skladovaní. Spravidla sa mapovacie algoritmy (to znamená, že kompresné algoritmy) sú do značnej miery ohromujúce a vyžadujú veľké výpočtové náklady. Zároveň sú algoritmy reštaurácie pomerne efektívne a rýchle.

Stručne povedané, metóda navrhnutá spoločnosťou Barnesley môže byť opísaná nasledovne. Obraz je kódovaný niekoľkými jednoduchými transformáciami (v našom prípade Afine), to znamená, že je určená koeficientmi týchto transformácií (v našom prípade A, B, C, D, E, F).

Napríklad obraz Koch krivky môže byť kódovaný štyrmi afinnými transformáciami, jednoznačne ho určujete so všetkými 24 koeficientmi.

Výsledkom je, že bod bude určite niekde v čiernej oblasti na zdrojovom obraze. Mnohokrát urobíme takúto operáciu, naplníme všetok čierny priestor, čím obnoví obrázok.

Najznámejšie dva obrázky získané pomocou IFS: Serpinsky's Triangle a Fern Barnsley. Prvý je nastavený tri a druhá je päť afinných transformácií (alebo v našej terminológii, šošovkách). Každá konverzia je nastavená doslova čítanými bajtami, zatiaľ čo obraz postavený s ich pomocou môže obsadiť niekoľko megabajtov.

Je jasné, ako archív pracuje, a prečo potrebuje toľko času. V skutočnosti je fraktálna kompresia vyhľadávanie vlastných domén v obraze a definícii parametrov afinných transformácií pre nich.

V najhoršom prípade, ak sa optimalizujúci algoritmus neuplatňuje, bude trvať bust a porovnanie všetkých možných fragmentov obrazu rôznych veľkostí. Dokonca aj pre malé obrázky, pri berúc do úvahy diskrétnosť, získame astronomický počet kritických možností. Dokonca aj ostré zúženie tried konverzie, napríklad šupinatím len určitým počtom krát, neumožňuje dosiahnutie prijateľného času. Okrem toho sa stratí kvalita obrazu. Prevažná väčšina výskumu v oblasti fraktálnej kompresie je teraz zameraná na zníženie času archivácie potrebného na získanie vysoko kvalitného obrazu.

Pre fraktálny kompresný algoritmus, ako aj pre iné kompresné algoritmy so stratami, mechanizmy sú veľmi dôležité, s ktorými bude možné nastaviť stupeň kompresie a stupeň straty. K dnešnému dňu bola vyvinutá veľká sada takýchto metód. Po prvé, je možné obmedziť počet transformácií, úmyselne zabezpečiť kompresný pomer nie je pod pevnou hodnotou. Po druhé, môžete požadovať, aby sa v situácii, keď rozdiel medzi spracovaným fragmentom a najlepšou aproximáciou bude vyššia ako určitá prahová hodnota, tento fragment bol nevyhnutne rozdrvený (nie sú nutne spustené niekoľko šošoviek). Po tretie, je možné zakázať fragmenty fragmentu menšie, ako napríklad štyri body. Zmenou prahových hodnôt a prioritou týchto podmienok môžete veľmi flexibilne ovládať pomer kompresie obrazu: z dávkovej zhody, na akýkoľvek kompresný pomer.

Porovnanie s JPEG.

Dnes je najbežnejší grafický archivácia algoritmus JPEG. Porovnajte ho s fraktálovou kompresiou.

Po prvé, poznamenávame sa, že aj iný algoritmus pracujú s 8-bitovými (v sivých stupňach) a 24-bitových plnohodnotných obrázkov. Obaja sú algoritmy straty kompresie a poskytujú úzke archivácie koeficienty. A fraktálne algoritmus a JPEG má možnosť zvýšiť stupeň kompresie kvôli zvýšeniu strát. Okrem toho sú obidva algoritmy veľmi dobre paralelné.

Rozdiely začínajú, ak považujeme čas, ktorý potrebujete na Archivovanie / UNZIP algoritms. Fraktálny algoritmus teda komprimuje stovky a dokonca tisícks časy dlhšie ako JPEG. Vybalenie obrazu, naopak, sa vyskytne 5-10 krát rýchlejšie. Preto, ak je obrázok komprimovaný len raz, a prenesený cez sieť a je mnohokrát rozbalený, potom je to výhodnejšie použiť fraktálne algoritmus.

JPEG používa rozklad obrazu na Cosine funkcie, takže strata v ňom (aj pre dané straty) sa prejavuje v vlnách a halo na hranici ostrých farieb. Je to pre tento účel, že neradi používanie pri kompresii obrázkov, ktoré sú pripravené na vysokokvalitnú tlač: tento efekt môže byť veľmi viditeľný.

Fraktálny algoritmus je potešený týmto nedostatkom. Okrem toho pri tlači obrázkov, pri každom presadzovaní škálovania, pretože tlačové zariadenie tlačového zariadenia sa nezhoduje s obrazovým rastrom. Pri konverzii, môže byť tiež niekoľko nepríjemných účinkov, s ktorými môžete programovať alebo škálovať obraz programovo (pre lacné tlačové zariadenia ako obyčajný laser a atramentové tlačiarne), buď poskytovanie tlačiarenského zariadenia s procesorom, pevným diskom a súborom programov spracovania obrazu (pre drahé fotofonáciu). Ako môžete uhádnuť, s použitím fraktálneho algoritmu takéto problémy prakticky nevyskytuje.

Ousting JPEG fraktálne algoritmus rozšíreného použitia sa nestane čoskoro (aspoň kvôli najnižšej rýchlosti archivácie), ale v oblasti multimediálnych aplikácií, v počítačové hry Jeho použitie je dosť odôvodnené.

V súčasnosti sa mnohí užívatelia premýšľajú o tom, ako sa proces kompresie sa vykonáva, aby sa zachránil voľný priestor na Winchester, pretože je to jeden z najviac efektívne nástroje Použitie užitočného priestoru v akejkoľvek jednotke. Často je dosť pre moderných používateľov, ktorí čelia nedostatku voľného miesta na disku, musíte odstrániť akékoľvek údaje, ktoré sa snažia uvoľniť požadované miesto týmto spôsobom, zatiaľ čo pokročilejší používatelia najčastejšie používajú kompresiu dát, aby sa znížil jeho objem .

Mnohí ľudia však ani nevedia, ako sa nazýva proces kompresií informácií, nehovoriac o tom, ktoré algoritmy sa používajú a čo poskytuje použitie každého z nich.

Stojí za to komprimovať údaje?

Kompresia dát je dnes dôležitá a potreba každého používateľa. Samozrejme, v našom čase takmer každý môže získať pokročilé zariadenia na ukladanie dát, ktoré poskytujú možnosť využitia dostatočne veľkého množstva voľného miesta, ako aj vybaveného vysokorýchlostných informačných kanálov.

Je však potrebné správne pochopiť, že časom, množstvo údajov, ktoré sa musia zaslať časom. A ak sa doslova desať rokov pred desiatimi rokmi, bol považovaný za štandardný pre pravidelný film, potom dnes filmy vyrobené v HD kvalite môžu mať objemy rovnajúce sa niekoľkým desiatim gigabajtom, nehovoriac o tom, koľko voľného miesta je vysoko kvalitné obrazy. V Formát Blu-ray.

Keď je potrebná kompresia dát?

Samozrejme, nestojí za to byť skutočnosť, že proces kompresných informácií vám prinesie veľa použitia, ale existuje určitý počet situácií, za ktorých niektoré z metód kompresie informácií sú mimoriadne užitočné a dokonca potrebné:

  • Prevod určitých dokumentov prostredníctvom e-mail. Týka sa najmä týchto situácií, keď potrebujete preniesť informácie vo veľkom objeme pomocou rôznych mobilných zariadení.
  • Často proces kompresii informácií, aby sa znížilo miesto obsadené, sa používa pri zverejnení určitých údajov na rôznych miestach, keď chcete zachrániť prevádzku;
  • Uloženie voľného miesta na pevnom disku, keď nie je možné nahradiť alebo pridať nové nástroje na ukladanie. Najmä najbežnejšia situácia je tá, ak existujú určité obmedzenia v dostupnom rozpočte, ale chýba im zadarmo miesto na disku.

Samozrejme, okrem vyššie uvedeného je stále obrovské číslo Môžu existovať rôzne situácie, v ktorých môže byť potrebný proces kompresie informácie, aby sa znížil jeho objem, ale tieto sú dnes najbežnejšie.

Ako môžem komprimovať údaje?

Dnes existuje široká škála metód kompresie informácií, ale všetky z nich sú rozdelené do dvoch hlavných skupín - to je kompresia s určitými stratami, ako aj kompresia bez straty.

Použitie poslednej skupiny metód je relevantná, keď sa údaje musia obnoviť s extrémne vysokou presnosťou, až jeden bit. Tento prístup je len relevantný v prípade, že je kompresia špecifického textového dokumentu komprimovaný.

Treba poznamenať, že v niektorých situáciách nie je potrebné maximalizovať zníženie komprimovaných údajov, preto je možné použiť takéto algoritmy, v ktorých sa vytlačí kompresia informácií na disku s určitými stratami. Výhodou lisovania so stratami je, že takáto technológia je oveľa jednoduchšia pri implementácii, a tiež poskytuje najvyšší možný stupeň archivácie.

Kompresia so stratami

Informácie so stratami zabezpečujú rádovú lepšiu kompresiu, pri zachovaní dostatočnej kvality informácií. Vo väčšine prípadov sa používanie takýchto algoritmov vykonáva na kompresiu analógových dát, ako sú všetky druhy obrázkov alebo zvukov. V takýchto situáciách sa rozbalené súbory môžu pomerne výrazne líšiť od pôvodných informácií, ale prakticky nie sú distingurizovateľné pre ľudské oko alebo ucho.

Kompresia bez straty

Algoritmy na kompresiu informácií bez straty poskytujú najpresnejšiu obnovu dát, eliminuje akúkoľvek stratu stlačiteľných súborov. Je však potrebné správne pochopiť skutočnosť, že v tomto prípade nie je zabezpečená tak účinná kompresia súborov.

Univerzálne metódy

Okrem iného existuje určitá séria univerzálne metódyktorý sa vykonáva účinný proces kompresných informácií, aby sa znížilo miesto obsadené. Vo všeobecnosti môžete prideliť iba tri hlavné technológie:

  • Konverzia prietoku. V tomto prípade sa popis nových prichádzajúcich nekomprimovaných informácií vykonáva už prostredníctvom už spracovaných súborov a nevypočítavajú sa žiadne pravdepodobnosti a symboly sú kódované na základe jediných súborov, ktoré už boli podrobené určitému spracovaniu.
  • Štatistická kompresia. Tento proces kompresných informácií s cieľom znížiť miesto obsadené na disku je distribuované do dvoch podkategórií - adaptívne a blokové metódy. Adaptívna možnosť poskytuje výpočet pravdepodobnosti pre nové súbory podľa informácií, ktoré už boli spracované počas procesu kódovania. Takéto metódy by mali zahŕňať aj rôzne adaptívne varianty algoritmov Shannon Fano a Huffman. Blokový algoritmus poskytuje samostatný výpočet každého bloku informácií, po ktorom nasleduje pridaním do samotného stlačeného bloku.
  • Konvertovať blok. Prichádzajúce informácie sú distribuované na niekoľko blokov a následne nastanú holistickú transformáciu. Treba povedať, že niektoré spôsoby, najmä tie, ktoré sú založené na permutácii niekoľkých blokov, nakoniec môžu viesť k výraznému zníženiu objemu stlačiteľných informácií. Je však potrebné správne pochopiť, že po vykonaní takejto liečby, na konci existuje významné zlepšenie, v ktorom sa následná kompresia prostredníctvom iných algoritmov vykonáva oveľa jednoduchšie a rýchlo.

Kompresia pri kopírovaní

Jedna z najdôležitejších komponentov rezervná kópia je zariadenie, pre ktoré sa bude pohybovať pre používateľa informácie. Väčšie množstvo týchto údajov sa presunie, čím viac objemového zariadenia musíte použiť. Avšak, ak ste implementovaný proces kompresie dát, potom v tomto prípade je nepravdepodobné, že by problém nedostatok voľného miesta zostal pre vás relevantný.

Prečo to potrebujete?

Schopnosť komprimovať informácie, keď umožňuje výrazne skrátiť čas, ktorý chcete kopírovať potrebné súbory, a zároveň dosiahnuť efektívne úspory voľného miesta na disku. Inými slovami, pri používaní kompresie budú informácie skopírované oveľa viac kompaktnejšie a rýchlo, a môžete ušetriť svoje peniaze a financie, ktoré boli potrebné na nákup viac objemnej jednotky. Okrem iných vecí, ktoré majú komprimované informácie, tiež skrátiť čas, ktorý budete potrebovať pri preprave všetkých údajov na server alebo ich skopírovať prostredníctvom siete.

Kompresia dát pre zálohovanie môže byť vykonaná v jednom alebo viacerých súboroch - v tomto prípade všetko bude závisieť od toho, aký druh programu používate a aké informácie podliehajú kompresii.

Pri výbere pomôcky, uistite sa, že program, ktorý ste si vybrali, môžete komprimovať údaje. V dôsledku toho závisí od typu informácií, účinnosť kompresie textových dokumentov môže byť viac ako 90%, zatiaľ čo je účinná nie viac ako 5%.

Pred začatím procesu kompresii súboru alebo priečinka je veľmi dôležité pochopiť všetky získané výhody a demontovať metódy kompresie dostupné v systéme Windows 7:

  • Kompresia súborov NTFS
  • Kompresné (zips) priečinky.

Kompresia dát znižuje veľkosť súboru minimalizáciou jeho nadbytočných údajov. V textový súbor S redundantnými údajmi sú často určité príznaky, ako je napríklad vesmírny symbol alebo všeobecné samohlásky (E a \u200b\u200bA), ako aj struny znakov. Kompresia dát vytvorí komprimovanú verziu súboru, minimalizuje tieto redundantné údaje.

Tieto dve metódy kompresie sa budú porovnávajú nižšie. Okrem toho sa bude zvážiť vplyv rôzne súbory a priečinky na akcii stlačených súborov a priečinkov.


Spis systém NTFS Podporuje kompresiu súborov na základe samostatného súboru. Algoritmus kompresie súborov tu je kompresný algoritmus bez straty, znamená to, že pri kompresii a rozbalení súboru sa údaje nestratia. V iných algoritmoch pri kompresii a následnej dekompresii sa stratí časť údajov.

Kompresia NTFS je k dispozícii na systémovom systéme NTFS pevné diskyMá nasledujúce obmedzenia a funkcie:

  • Kompresný atribút pre súbor alebo priečinok.
  • Priečinky a súbory na objeme NTFS alebo komprimované alebo nie.
  • Nové súbory vytvorené v komprimovanom priečinku sú predvolene vyčistené.
  • Stav komprimovaného priečinka nemusí nevyhnutne odrážať stav kompresie súborov v tomto priečinku. Napríklad priečinky môžu byť komprimované bez kompresie jeho obsahu a niektoré alebo všetky súbory v komprimovanom priečinku môžu byť neplatené.
  • Práca s NTFS-komprimovanými súbormi bez toho, aby sa rozbaľovali, pretože sú zrušené a znova stlačené bez zásahu používateľa.
  • Ak je komprimovaný súbor otvorený, systém ho automaticky rozbaľuje.
  • Pri zatvorení súbor systému Windows Opäť to stlačí.
  • Ak chcete zjednodušiť rozpoznanie, NTFS komprimované názvy súborov a priečinky sa zobrazujú v inej farbe.
  • NTFS-komprimované súbory a priečinky zostávajú v komprimovanej forme, len na objeme NTFS.
  • NTFS komprimované súbory nemôžu byť šifrované.
  • Bytes stlačených súborov nie sú k dispozícii pre aplikácie; Uvidia iba nekomprimované údaje.
  • Aplikácie, ktoré otvárajú komprimované súbory môžu s nimi pracovať ako nie sú stlačené.
  • Komprimované súbory nie je možné kopírovať v inom systéme súborov.

Poznámka: Na správu kompresie NTFS môžete použiť príkazový riadok príkazového riadka.

Presunúť a kopírovať komprimované súbory a priečinky.


Vytesnené alebo kopírované komprimované súbory a priečinky môžu zmeniť stav kompresie. Nižšie je uvedené päť situácií, v ktorých sa zvažuje vplyv kopírovania a presunu na komprimované súbory a priečinky.

Kopírovanie v oddiele sekcií NTFS.

Ako sa zmení stav komprimovaného súboru alebo priečinka, ak ho skopírujete v sekcii NTFS? Pri kopírovaní súboru alebo priečinka vo vnútri systému súborov NTFS, časť, súbor alebo priečinok zdedí stav kompresie cieľového priečinka. Ak napríklad skopírujete komprimovaný súbor alebo priečinok do rozbaleného priečinka, automaticky sa rozbaľuje súbor alebo priečinok.

Presunúť v sekcii NTFS.

Čo sa stane s kompresiou súborov alebo priečinka pri pohybe v sekcii NTFS?

Keď presuniete súbor alebo priečinok v sekcii NTFS, súbor alebo priečinok uloží svoj počiatočný kompresný stav. Napríklad pri pohybe komprimovaného súboru alebo priečinka v nekomprimovanom priečinku zostáva súbor komprimovaný.

Kopírovanie alebo pohyb medzi sekciami NTFS.

Čo sa stane so stlačeným súborom alebo priečinkom pri kopírovaní alebo presúvaní medzi sekciami NTFS?

Keď presuniete súbor alebo priečinok medzi oddiely NTFS, súbor alebo priečinok zdedí stav kompresie cieľového priečinka. Vzhľadom k tomu, Windows 7 skúma pohyb medzi sekciami ako kopírovanie s následnou operáciou vymazania, súbory zdedia kompresný stav cieľového priečinka.

Pri kopírovaní súboru do priečinka, ktorý už obsahuje súbor s rovnakým menom, skopírovaný súbor prijíma kompresný atribút cieľového súboru, bez ohľadu na stav kompresie priečinka.

Kopírovanie alebo pohyb medzi objemami tuku a NTFS.

Čo sa stane s kompresiou súborov, ktorá je skopírovaná alebo presunutá medzi objemom tuku a NTFS?

Stlačené súbory skopírované do sekcie tuku nie sú stlačené, pretože objemy tuku nepodporujú kompresiu. Avšak, ak kopírujete alebo presúvate súbory z sekcie tuku do sekcie NTFS, zdedia atribút kompresie priečinka, ktorým ich skopírujete.

Pri kopírovaní súborov, systém súborov NTFS vypočíta miesto na disku založené na veľkosti nekomprimovaného súboru. To je dôležité, pretože súbory počas procesu kopírovania nie sú komprimované, a systém musí zaručiť dostatočný priestor. Ak sa pokúšate kopírovať komprimovaný súbor do sekcie NTFS a nemá voľný priestor pre nekomprimovaný súbor, budete mať chybové hlásenie, že budete informovaní nedostatku miesta na disku pre súbor.

Ako je uvedené vyššie, jednou z dôležitých úloh predbežnej prípravy údajov na šifrovanie je znížiť ich redundanciu a zosúladiť štatistické vzory aplikovaného jazyka. Čiastočné zníženie redundancie sa dosahuje kompresiou údajov.

Komprimovať informácie predstavuje proces konverzie zdrojovej správy z jedného kódu systému do druhého, v dôsledku ktorého sa znižuje veľkosť správy. Algoritmy určené na kompresiu informácií môžu byť rozdelené do dvoch veľkých skupín: implementáciu kompresie bez straty (reverzibilná kompresia) a implementácia kompresie so stratami (ireverzibilná kompresia).

Reverzibilná kompresia To znamená absolútne presné obnovenie údajov po dekódovaní a môže byť aplikovaný na kompresiu akékoľvek informácie. Vždy vedie k zníženiu objemu výstupného toku informácií bez zmeny jeho informatizity, to znamená, že bez straty informačná štruktúra. Okrem toho, z výstupného prúdu, pomocou algoritmu obnovenia alebo dekompresie, môžete získať vstup a proces obnovy sa nazýva dekompresia alebo rozbalenie a až po procese rozbalenia sú údaje vhodné na spracovanie v súlade s ich interným formátom. Kompresia bez straty sa aplikuje na texty, spustiteľné súbory, vysokokvalitný zvuk a grafiku.

Ireverzibilná kompresia Zvyčajne je to oveľa vyšší stupeň kompresie, než kódovanie bez straty, ale umožňuje určité odchýlky dekódovaných údajov zo zdroja. V praxi existuje široká škála praktických úloh, v ktorých sa nevyžaduje súlad s požiadavkou presnej obnovy počiatočných informácií po dekompresii. To najmä odkazuje na kompresiu multimediálnych informácií: zvuk, fotografií alebo obrazu videa. Napríklad, JPEG a MPEG multimediálne informácie formáty sú široko aplikované, ktoré používajú ireverzibilnú kompresiu. Ireverzibilná kompresia sa zvyčajne nepoužíva v spojení s kryptografickým šifrovaním, pretože hlavnou požiadavkou pre kryptosystém je totožnosť dešifrovaných údajov z originálu. Pri používaní multimediálnych technológií však údaje uvedené v digitálne video, často vystavený ireverzibilným kompresii pred podávaním v kryptografickom systéme pre šifrovanie. Po prenose informácií na spotrebiteľov a dešifrovanie sa multimediálne súbory používajú v komprimovanej forme (to znamená, že nie je obnovené).

Zvážte niektoré z najbežnejších spôsobov reverzibilnej kompresie údajov.

Najznámejší jednoduchý prístup a algoritmus na kompresiu sú reverzibilné - toto je kódovanie série sekvencií (kódovanie dĺžky spustenia - RLE). Podstatou metód tohto prístupu spočíva v nahradení reťazcov alebo série opakovaných bajtov na jeden kódovací bajt-výnosy a počet ich opakovaní. Problém všetkých podobných metód je len v definícii metódy, s ktorým by sa rozbalený algoritmus mohol rozlíšiť vo výslednom prúde sérií kódovaných bajtov z iných, nekódovaných bajtových sekvencií. Riešenie problému sa zvyčajne dosahuje expanziou štítkov na začiatku kódovaných reťazcov. Takéto štítky môžu byť charakteristické bity v prvom Pape kódovanej série, hodnoty prvého bajtu kódovanej série. Nevýhodou metód RLE je pomerne nízky kompresný pomer alebo náklady na kódovanie súborov s malým počtom sérií a ešte horšie - s malým počtom opakovaných bajtov v sérii.

S jednotným informáciami kódovania je rovnaký bit pridelený k správe bez ohľadu na pravdepodobnosť jeho vzhľadu. Súčasne je logické predpokladať, že celková dĺžka prenášaných správ sa zníži, ak časté správy zakódované s krátkymi kódovými slovami a zriedka sa vyskytli - dlhšie. Problémy vyplývajúce z toho súvisia s potrebou používať kódy s premenlivým kódovým slovom. Existuje mnoho prístupov k budovaniu takýchto kódov.

Niektoré z rozšírených v praxi sú metódy slovnej zásoby, ktorých hlavní zástupcovia zahŕňajú algoritmy rodiny Ziva a Lempláž. Ich základnou myšlienkou je, že fragmenty vstupný prúd ("frázy") sú nahradené ukazovateľom na miesto, kde sa už objavili v texte. V literatúre sú takéto algoritmy označené ako algoritmy LZ Kompresia.

Podobná metóda sa rýchlo prispôsobuje štruktúre textu a môže kódovať krátke funkčné slová, pretože sa v ňom často objavujú. Nové slová a frázy môžu byť tiež vytvorené z častí predtým stretol. Dekódovanie stlačeného textu sa vykonáva priamo, - existuje jednoduchá výmena ukazovateľa na hotovú frázu zo slovníka, ku ktorému sa zobrazí. V praxi, LZ-Metóda dosahuje dobrú kompresiu, jeho dôležitá vlastnosť je veľmi rýchla práca dekodér.

Ďalším prístupom k kompresii informácií je kód Huffman, snímač a dekodér, ktorý majú pomerne jednoduchú implementáciu hardvéru. Myšlienka algoritmu pozostáva z nasledujúcich: poznanie pravdepodobnosti výskytu znakov do správy, môžete opísať postup na výstavbu kódov premennej dĺžky pozostávajúce z celého počtu bitov. Symboly sú s väčšou pravdepodobnosťou pridelené viac krátke kódy, zatiaľ čo menej často vyskytujúce znaky sú dlhšie. Kvôli tomu sa dosiahne zníženie priemernej dĺžky kódového slova a väčšia účinnosť kompresie. Kódy Huffman majú jedinečnú predponu (začiatok kódového slova), ktorý vám umožní jednoznačne dekódovať ich napriek ich premennej dĺžke.

Postup syntézy klasického Khaffmanového kódu preberá prítomnosť informácií o štatistických vlastnostiach zdroja správy. Inými slovami, vývojár by mal poznať pravdepodobnosť týchto alebo iných znakov, z ktorých sú vytvorené správy. Zvážte syntézu Huffmanovho kódu v jednoduchom príklade.

p (S 1) \u003d 0,2, p (S2) \u003d 0,15, p (S3) \u003d 0,55, p (S4) \u003d 0,1. Zoradiť symboly v zostupnom pravdepodobnosti vzhľadu a predstavte si vo forme tabuľky (obr. 14.3, A).

Postup syntézy kódu pozostáva z troch hlavných krokov. Prvá spúšť radov stola sa vyskytuje: dva riadky zodpovedajúce symbolom s najmenšími pravdepodobnosť výskytu sú nahradené jedným s celkovou pravdepodobnosťou, po ktorej je tabuľka znovu usporiadaná. Konvolúcia pokračuje, kým sa v tabuľke zostáva len jeden riadok s úplnou pravdepodobnosťou rovnou jedným (obr. 14.3, b).


Obr. 14.3.

V druhej fáze je kódová drepka skonštruovaná pomocou skladanej tabuľky (Obr. 14.4, A). Strom je postavený, počnúc posledným stĺpcom stola.


Obr. 14.4.

Koreň stromu vytvára jednotku umiestnenú v poslednom stĺpci. V tomto príklade je táto jednotka vytvorená z pravdepodobností 0,55 a 0,45 znázornenej vo forme dvoch uzlov stromu spojeného s koreňom. Prvý z nich zodpovedá symbolu S3, a teda ďalšie vetvenie tohto uzla nevyskytuje.

Druhý uzol označený s pravdepodobnosťou 0,45 je pripojený na dva uzly tretej úrovne s pravdepodobnosťmi 0,25 a 0,2. Pravdepodobnosť 0,2 zodpovedá symbolu S1 a pravdepodobnosť 0,25, zase je vytvorená z pravdepodobností 0,15 vzhľadu symbolu S2 a 0,1 vzhľadu symbolu S4.

Rebrá spájajúce uzly jednotlivých kódov, čísla 0 a 1 čísla (napríklad ľavé rebrá - 0, a doprava - 1). V treťom, konečnom štádiu je stôl postavený, v ktorom sú zdrojové symboly porovnávané a kódy kódu Huffmanovho kódu. Tieto kódové slová sú vytvorené v dôsledku čítania čísel označených rebrami, ktoré tvoria cestu z koreňa stromu na zodpovedajúci symbol. Pre posudzovaný príklad sa kód Huffman zobrazí pohľad zobrazený v tabuľke na pravej strane (Obr. 14.4, B).

Avšak, Classic Huffman algoritmus má jednu významnú nevýhodu. Ak chcete obnoviť obsah komprimovanej správy, dekodér by mal poznať tabuľku frekvencie, ktorá sa teší za snímač. Preto sa dĺžka stlačenej správy zvyšuje dĺžkou frekvenčnej tabuľky, ktorá by sa mala odoslať pred údajmi, ktoré sa nesmú znížiť na žiadne úsilie na komprimovanie správy.

Ďalší variant statické kódovanie Huffman Je to prezerať vstupný prúd a stavebné kódovanie na základe zozbieraných štatistík. To si vyžaduje dva súbory v súbore - jeden na zobrazenie a zhromažďovanie štatistických informácií, druhý je na kódovanie. V statickej kódovaní Huffmana, vstupné symboly (reťazce bitov rôznych dĺžok) sú nastavené na korešpondenciu reťazca bitov tiež variabilné dĺžky - ich kódy. Dĺžka kódu každého symbolu sa odoberá proporcionálnym binárnym logaritmom jeho frekvencie s opačným znakom. A celková sada všetkých, s ktorými sa stretla s rôznymi symbolmi, je potoka abeceda.

Tam je ďalší spôsob - adaptívny alebo dynamické kódovanie Huffana. Jeho všeobecný princíp Je to zmeniť systém kódovania v závislosti od povahy zmien vstupného prietoku. Takýto prístup má jednosmerný algoritmus a nevyžaduje zachovanie informácií o použitom kódovaní explicitne. Adaptívne kódovanie môže poskytnúť väčší kompresný pomer v porovnaní so statickým, pretože zmeny vo frekvenciách vstupného toku sú plne zohľadnené. Pri použití Adaptive Huffman kódovanie, komplikácia algoritmu spočíva v potrebe neustále nastaviť drevo a kódy symbolov hlavnej abecedy v súlade s meniacou sa štatistík vstupného toku.

Metódy Huffman dávajú vysokú rýchlosť a mierne dobrá kvalita kompresia. Kódovanie Huffmana však má minimálnu redundanciu za predpokladu, že každý znak je kódovaný v abecede symbolového kódu samostatným reťazcom dvoch bitov - (0, 1). Hlavná nevýhoda táto metóda Je závislosť stupňa kompresie od blízkosti pravdepodobnosti symbolov na 2 v určitom negatívnom stupni, čo je spôsobené tým, že každý znak je kódovaný celým bitom.

Úplne iné ponuky riešenia aritmetické kódovanie. Táto metóda je založená na myšlienke konverzie vstupného prúdu do jedného plávajúceho bodu. Aritmetické kódovanie je metóda, ktorá umožňuje balenie znakov vstupnej abecedy bez strát za predpokladu, že je známa frekvenčná distribúcia týchto znakov.

Odhadovaná požadovaná postupnosť symbolov pri stlačení metódami aritmetického kódovania sa považuje za určitú binárnu frakciu z intervalu)

Páči sa vám článok? Zdieľaj to