DETAILNÍ POPIS KOMPRESNÍ METODY FORMÁTU JPEG
Základem komprimace vstupního číslicového signálu je transformační kódování, které převede prostorové souřadnice x, y na prostorové frekvence fx a fy. Matice signálových vzorků funkce g(x,y) se tedy převede na matici frekvenčních koeficientů funkce G(fx,fy). Jelikož se i statický obraz rozkládá časově (vzorky "tečou" v čase po jednom drátu) tak můžeme říct, že transformací převádíme ovzorkovaný signál z časové oblasti do oblasti frekvenční čili do prostorového spektra signálu. Pro lepší přehlednost značme dále prostorovou frekvenci fx=u a fy=v. Teoreticky by bylo nejvýhodnější transformovat najednou celý obraz (např. v televizní technice o rozměrech 720x756 prvků). To by ovšem kladlo vysoké nároky na výpočetní možnosti signálového procesoru, takže se obraz rozkládá na části 8x8 pixelů, s kterými se dále pracuje. Nejúčinnější transformace z hlediska rozložení frekvenční koeficientů v matici je transformace Karhunen - Loeveho, která mění transformační jádro podle obsahu zpracovávané scény. To je extrémně náročné na procesor, proto se zvolil kompromis mezi cenou a užitkem, a to Diskrétní kosinová tranformace - DCT. K diskrétní kosinové transformaci se dá dospět rozkladem periodické časové funkce v nekonečnou řadu harmonických kmitů vyjádřenou v obecném případě kromě stejnosměrné složky jendotlivými sinusovkami a kosinusovkami. Tuto Fourierovu řadu lze zobecnit na Fourierův integrál čili Fourierovu transformaci spojité neperiodické funkce (např. jeden pravoúhlý impuls). Přímou transformací časové funkce g(t) definujeme Fourierův obraz G(f), který představuje původní funkci ve frekvenční oblasti (ve spektru). G(f) udává frekvenční závislost amplitud harmonických kmitů, ze kterých se funkce g(t) skládá. Analogicky lze zpětnou transformací Fourierova obrazu G(f) získat časovou funkci g(t). Nevýhoda Fourierovy transformace je v tom, že reálný snímek je přetvořen na komplexní matici frekvenčních koeficientů. Jádro DFT lze rozložit na reálnou a imaginární část - cos + j.sin. Pokud je vstupní funkce g(x,y) sudá, pak automaticky přejde DFT na diskrétní kosinovou transformaci DCT (zbavíme se sinových složek). Pokud není, musíme ji na sudou funkci převést DCT má výhodu ve stejnosměrném členu G(0,0), v němž je soustředěna střední hodnota celého transformovaného signálu. Ostatní střídavé složky příslušejí postupně rostoucím frekvencím od levého rohu doprava a směrem dolů. Každý z koeficientů G(u,v) se počítá ze všech 64 vzorků jednoho bloku. Pomocí DCT jsme zmenšili počet přenášených dat (nuly a jim blízké hodnoty koeficientů nepřenášíme), takže se zmenší výsledná přenosová rychlost s využitím redukce redundance v signálu. Kdybycho neuvažovali chyby způsobené zaokrouhlováním frekvenčních koeficientů, byl by přenos bezeztrátový - po inverzní DCT bychom dostali původní signál PCM. Koeficienty se zaokrouhlují na nejbližší celá čísla. Je prokázáno, že pro N=8 bitové hodnoty vzorku signálu PCM je třeba N+3=11 bitové vyjádření frekvenčních koeficientů. Aby se ušetřilo na bitové rychlosti, dělíme tabulku frekvenčních koeficientů čísly obsaženými v kvantizační matici. Vychází se přitom z toho, že ne všechny prostorové frekvence fx a fy vyhodnocuje lidský zrak se stejnou citlivostí na jejich amplitudu. Proto se zavedla proměnná kvantizační matice, která zmenšuje amplitudy vysokých prostorových frekvencí více než nízkých. Tedy původní koeficienty c(u,v) se dělí různými čísly kvantizační matice q(u,v) a tak vznikají nové frekvenční koeficienty s(u,v). Tato úprava je ztrátová. Je to možné díky fyziologickým vlastnostem oka, které má např. nižší rozlišovací schopnost pro barvu než pro jas a je proto zbytečné přenášet barvu v plném rozlišení. Podle velikosti těchto irelevancí (zbytečností) docházíme k různým kvalitám přenášeného obrazu. Zmenšením transformačních koeficientů c(u,v) na kvantované koeficienty s(u,v) se zmenší počet bitů nutných pro jejich přenos. Kvantizační tabulky nejsou u soustavy JPEG standardizovány a jejich složitost lze měnit, vyžaduje-li to větší účinnost komprimace. Pak se její druh uvádí v záhlaví každého snímku. Kvantování frekvenčních koeficientů c(u,v) způsobuje, po inverzním kvantování (násobení s(u,v) hodnotami obsaženými v kvantizační matici q(u,v)) a po inverzní DCT se původní a zpět transformované hodnoty vzorků v bloku částečně liší. Při dalším zpracování ještě více zmenšíme redundanci
signálu entropickým kódováním v podobě kódování s proměnnou délkou slova VLC
(Variable Length Coding). Používá se Huffmanovo kódování, kdy se nejčastěji
vyskytujícímu se znaku přiřadí nejkratší délka slova. Naopak řídce se
objevující znaky (hodnoty) jsou kódovány dlouhými slovy. Přezkoumání
pravděpodobnosti (četnosti) určitě velkých koeficientů by měl provést počítač v
každém bloku 8x8, což je v praxi nerealizovatelné. Proto se určité skupiny
vzorkovvých dat kódují s proměnnou délkou slova podle tabulek ověřených s určitou
přesností v praxi. Standard JPEG existuje ve čtyřech modifikacích: sekvenční
kódování, progresívní kódování, hierarchické kódování a bezeztrátový mód
kódování. Soustavu JPEG je možno použít i pro pohyblivé obrazy s malým stupňem
komprese bez jakýchkoliv doplňujících obvodů. Nebyl však vypracován jednotný
standard pro tento způsob záznamu, proto se od něj upustilo a přešlo se na
normalizovaný formát MPEG
|