Stratová kompresia
Stratové kompresné algoritmy sú algoritmy zabezpečujúce kompresiu (zníženie objemu dát) multimédia (zvuk, obraz, video) za cenu jeho kvality. Na kompresiu bez zníženia kvality multimédia sa používajú bezstratové kompresné algoritmy.
Stratová kompresia je metóda, ktorou po zkomprimovaní dát a ich rozkomprimovaní získame výsledok odlišný od originálu. Tento výsledok bude však tak blízko originálu, že sa dajú ešte na nejaký účel použiť (multimédia, streaming a v VOIP).
Všeobecne
Stratová kompresia je založená na vynechávaní, niektorých málo viditeľných detailov obrazu. V praxi to znamená, že ak je niekde napríklad jedna svetložltá bodka uprostred veľkého bieleho poľa, jednoducho sa vymaže. Ďalej ak je niekde tenká čiara medzi dvoma plochami, tak sa farba tejto čiary upraví tak, aby sa jej farba dala vypočítať zložením farieb plôch, ktoré obklopuje (zjednodušene povedané).
Stratová kompresia sa najčastejšie používa pre ukladanie obrazových a zvukových záznamov.
Napriek tomu, že sa časť informácie pri stratovej kompresii nenávratne stráca, je tento spôsob ukladania dát často veľmi výhodný. Strata niektorých informácií je totiž úplne vyvážená veľmi výrazným zmenšením komprimovaných dát. Zvyčajne je tak určitá (malá) strata kvality vyvážená výraznou úsporou miesta.
Vďaka stratovej kompresii možno na CD-ROM umiestniť aj 10 pôvodných nekomprimovaných zvukových CD, alebo tisíce obrázkov; na DVD sa vojde celovečerný film, vrátane mnohých zvukových sprievodov.
Takto komprimované dáta sa ľahšie ukladajú a ľahšie sa s nimi manipuluje.
Príklady použitia:
- digitálne televízne vysielanie
- filmové DVD
- prenášanie dát cez Internet a dátové siete
- ukladanie do multimediálnych prehrávačov
Stratová kompresia je nepoužiteľná v prípade, kedy je potrebné uchovať presnú kópiu pôvodných údajov, napríklad text knihy, program alebo výsledky merania.
Princípy stratovej kompresie
Všeobecný princíp stratovej kompresie je jednoduchý. Po úvodnom predspracovaní preskupením alebo transformovaním dát tak, aby bolo možné ľahko oddeliť dôležité informácie od nedôležitých. Nepodstatné informácie sa potom potlačia oveľa výraznejšie ako dôležité a nakoniec sa výsledok skomprimuje niektorým z bezstratových kompresných algoritmov.
Algoritmus stratovej kompresie má teda dve podstatné časti - transformácia pôvodných dát a potlačenie menej dôležitých dát.
Transformácia pôvodných dát
K transformácii pôvodných alebo predspracovaných dát sa zvyčajne používa niektorá z ortonormálnych alebo takmer ortonormálnych transformácií. Príkladom takýchto transformácií sú DCT (diskrétna kosínusová transformácia), FFT (rýchla Fourierova transformácia) alebo DWT (diskrétna vlnková transformácia). Tieto transformácie prevedú pôvodné dáta do iných domén, napríklad z časovej do frekvenčnej. Väčšina dôležitých informácií je potom uchovaná v oveľa menšom objeme než pôvodne. Ak zvyšok dát nahradíme nejakými vopred známymi alebo vypočitatelnými dátami (niekedy sa na tento účel hodia samé nuly), dáta sa po spätnej transformácii budú veľmi dobre podobať dátam pôvodným.
Pri transformácii ešte nemusí dochádzať k degradácii pôvodných dát. Celočíselné verzie transformácií pracujú zvyčajne o niečo horšie, ale sú ľahšie implementovateľné, a preto sa používajú v jednoduchých zariadeniach. Bezstratová transformácia sa používa aj tam, kde sa preskakuje následné potlačenie niektorých dát, teda v bezstratových variantoch inak zvyčajne stratových kompresných algoritmov.
Na druhej strane, strata spôsobená zaokrúhlením reálnych čísel nebýva veľká a obvykle ju vynahradí kvalitnejší výsledok transformácií pracujúcich s reálnymi číslami. Ak sa teda počíta s následným potlačením niektorých dát, používajú sa stratové verzia transformácií.
Potlačenie niektorých dát
V tejto časti kompresného algoritmu je rozhodujúci kvalitný psychovizuálny alebo psychoakustický model, ktorý určuje, aké dáta môžu byť potlačené alebo dokonca úplne odstránené. Pri kompresii obrazu sa posudzuje, ktoré frekvencie v obraze sú dôležité, aby človek na obrázku videl to, čo na ňom vidieť má. Podobne pri kompresii zvuku sa hľadajú frekvencie, ktoré človek nemôže vnímať. Problém pri kompresii zvuku je o to zložitejší, že ľudský sluch je veľmi citlivý aj na časové umiestnenie zvuku. Aj s tým musí dobrý psychoakustický model počítať.
Opis algoritmu stratovej kompresie
Zvyčajne sa algoritmy stratovej kompresie opisujú a štandardizujú z pohľadu dekodéra. Popíše sa teda spracovanie toku dát od jednotlivých núl a jedničiek až po finálnu rekonštrukciu a postspracovanie obrazu alebo zvuku. Tým je dané, ako musia vyzerať skomprimované dáta. Kodér (niekedy sa používa slovo "enkodér") potom musí vyrobiť presne také dáta. Ako to urobí, je už vec jeho autorov. Tento prístup má hlavnú výhodu v tom, že jednotlivé kodéry vytvárajú dáta, ktoré môže dekódovať každý dekodér. Ďalšou výhodou je možnosť súťaže medzi autormi kompresných algoritmov. Napríklad dnešné implementácie MPEG sú o desiatky percent efektívnejšie ako prvé implementácie, ktoré sa objavili po vydaní štandardu.
Algoritmy používané na stratovú kompresiu sú:
- Redukovanie farebného priestoru
- Prevzorkovanie sýtosti farieb
- Transformačné kódovanie ako napríklad Furierova transformácia.
- Fraktálová kompresia