Bezeztrátová komprese

Bezeztrátová komprese dat je třída algoritmů  komprese dat (video, audio, grafika, dokumenty prezentované v digitální podobě, programy v programovacích jazycích a strojových kódech a mnoho dalších typů dat), při jejichž použití lze zakódovaná data jednoznačně rekonstruovat. na nejbližší bit , pixel , voxel atd. V tomto případě jsou původní data zcela obnovena z komprimovaného stavu. Tento typ komprese se zásadně liší od ztrátové komprese dat . Pro každý typ digitální informace zpravidla existují optimální bezeztrátové kompresní algoritmy.

Bezztrátová komprese dat se používá v mnoha aplikacích. Používá se například ve všech archivátorech souborů . Používá se také jako komponent ve ztrátové kompresi.

Bezeztrátová komprese se používá, když je důležitá identita komprimovaných dat s originálem. Běžným příkladem jsou spustitelné soubory a zdrojový kód. Některé formáty grafických souborů (jako PNG ) používají pouze bezeztrátovou kompresi, zatímco jiné ( TIFF , FLIF nebo GIF ) mohou používat ztrátovou i bezeztrátovou kompresi.

Komprese a kombinatorika

Větu lze snadno dokázat.

Pro jakékoli N > 0 neexistuje žádný bezeztrátový kompresní algoritmus, který by:

  1. Jakýkoli soubor, který není delší než N bajtů, si buď zachová stejnou délku, nebo ji zmenší.
  2. Zkrátí některý soubor délky ne více než N alespoň o jeden bajt.

Důkaz. Bez ztráty obecnosti můžeme předpokládat, že soubor A o délce přesně N se zmenšil . Označme abecedu jako . Podívejme se na sadu . V této sadě zdrojových souborů není více než . Proto je dekompresní funkce nejednoznačná , což je v rozporu. Věta byla prokázána.

Tato věta však ani v nejmenším nevrhá stín na bezeztrátovou kompresi. Faktem je, že jakýkoli kompresní algoritmus lze upravit tak, aby zvětšil velikost nejvýše o 1 bit: pokud algoritmus zmenšil soubor, zapíšeme „1“, pak komprimovanou sekvenci, pokud se zvětší, zapíšeme „ 0“, pak původní.

Takže nestlačitelné fragmenty nepovedou k nekontrolovanému "nafouknutí" archivu. „Skutečné“ soubory délky N jsou mnohem menší než (říkají, že data mají nízkou informační entropii ) – například je nepravděpodobné, že by se ve smysluplném textu objevila kombinace písmen „stydlivý“ a v digitalizovaném zvuku úroveň nemůže skok z 0 na 100 %. Navíc díky specializaci algoritmů na určitý typ dat (text, grafika, zvuk atd.) je možné dosáhnout vysokého stupně komprese: např. univerzální algoritmy používané v archivátorech komprimují zvuk o cca. třetí (1,5krát), zatímco FLAC  je 2,5krát. Většina specializovaných algoritmů je málo použitelná pro "cizí" typy souborů: například zvuková data jsou špatně komprimována algoritmem určeným pro texty.

Metoda bezztrátové komprese

Obecně lze říci, že význam bezeztrátové komprese je následující: v původních datech se najde nějaký vzor a po zohlednění tohoto vzoru se vygeneruje druhá sekvence, která úplně popisuje původní. Například pro kódování binárních sekvencí s mnoha 0 a několika jedničkami můžeme použít následující substituci:

00 → 0 01 → 10 10 → 110 11 → 111

V tomto případě šestnáct bitů

00 01 00 00 11 10 00 00

budou převedeny na třináct bitů

0 10 0 0 111 110 0 0

Taková substituce je prefix code , to znamená, že má následující vlastnost: pokud napíšeme komprimovaný řetězec bez mezer, stále do něj můžeme vkládat mezery - a tedy obnovit původní sekvenci. Nejznámější předponový kód je Huffmanův kód .

Většina bezeztrátových kompresních algoritmů pracuje ve dvou fázích: první generuje statistický model pro příchozí data, druhý bitmapuje příchozí data, přičemž pomocí modelu vytváří „pravděpodobnostní“ (tj. často se vyskytující) data, která se používají častěji než "nepravděpodobné" údaje.

Modely statistických algoritmů pro text (nebo textová binární data, jako jsou spustitelné soubory) zahrnují:

Algoritmy kódování prostřednictvím generování bitových sekvencí:

Bezeztrátové kompresní metody

Podívejte se na úplný seznam v kategorii: Komprese dat

Víceúčelové

Komprese zvuku

Komprese grafiky

Komprese videa

Komprese textu

Příklady algoritmů

Příklady formátů a jejich implementací

Viz také

Poznámky

  1. Specifikace TIFF v6 (downlink) . Datum přístupu: 18. prosince 2010. Archivováno z originálu 3. července 2012. 

Odkazy