2006/42 – 25.10.2006
Srovnání metod pro ztrátovou kompresi obrazu Ing. Jan Malý Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno, Česká republika email:
[email protected]
Ztrátová komprese obrazového signálu je v poslední době jedním z nejvíce se rozvíjejících témat v oblasti analýzy a zpracování signálů. Cílem tohoto článku je srovnat dvě dnes běžně používané metody, pomocí kterých odhalíme v signálu nadbytečnost informace a tím umožníme její potlačení - diskrétní kosinová transformace (DCT) a diskrétní vlnková (waveletová) transformace (DWT). Dále poukážeme na cesty, kterými samotné potlačení informace provádíme (kvantování, prahování a kódovací schémata) a zmíníme se o implementacích výše uvedených metod v podobě skutečných grafických formátů. Na závěr uvedeme některé konkrétní výsledky experimentálního srovnání implementací DCT a DWTSPIHT kodéru, které byly detailně provedeny v [10].
1. Úvod Komprese, neboli potlačení nadbytečnosti informace, se dá v základě rozdělit na dvě skupiny - bezeztrátovou a ztrátovou. Zatímco komprese bezeztrátová je všeobecně použitelná metoda, která pracuje se statistickým rozložením dat (seskupování dat na základě jejich entropie - např. pomocí prefixového kódu) a potlačení informační nadbytečnosti je zcela reverzibilní proces, komprese ztrátová (která má smysl jen v případě obrazových, příp. zvukových signálů) pracuje s nevratným procesem, který je založen na prostorové podobnosti obrazových dat. Abychom takovou podobnost odhalili, je nutné využít transformace, která převede prostorový obrazový signál do kmitočtové domény (DCT), nebo do podoby tzv. dekompozičního obrazce (DWT). Takto získaná data zakódujeme pomocí určitého schématu do podoby určené k přenosu - zde dochází ke ztrátě informace. K dekompresi je třeba použít proces analogicky zcela opačný, tj. aplikace dekódovacího schématu a inverzní transformace k získání (nyní již kompresí ovlivněných) výsledných dat. Ke konkrétním implementacím, pracujícím na principu DCT, patří především grafický formát JPEG [5]. Také naprostá většina kodeků pro ukládání videosignálu pracuje s využitím DCT, odlišnosti se dají nalézt především u kódovacího procesu, kterému transformace předchází. U DWT je nejdůležitějším představitelem především grafický formát JPEG2000 [6], určený pro kódování statického obrazu. JPEG2000 je otevřený robustní formát nabízející možnosti, jejichž detailní rozbor překračuje rozsah této práce, např. určení přesné velikosti výsledného komprimovaného souboru, více typů přenosu s rozdílnými požadavky, preference kvality dle ROI (Region Of Interest - oblast zájmu), možnost náhodného přístupu do zakódovaného souboru, možnost bezeztrátové komprese a především velmi vysoká efektivita kódování. V tomto článku budeme při vysvětlování jednotlivých principů pro jednoduchost uvažovat čtvercové obrazy ve 256 stupních šedi. V případě barevných obrázků se u ztrátové komprese obvykle pracuje s YCbCr modelem (bližší informace o jednotlivých barevných modelech např 1
2006/42 – 25.10.2006 v [8]. Obecně se vychází z předpokladu, že jasová složka (Y) má mnohem vyšší prioritu při posuzování výsledné kvality než složky barvové (Cb a Cr). U rozměrů obrazu zase musíme přihlédnout k tomu, že většina metod pracuje s čtvercovými úseky, jejichž rozměry jsou často násobkem mocnin dvojky, a je tedy nutné obraz rozdělit na sled podobrazů o těchto velikostech a patřičně ošetřit okrajové části.
2. DCT komprese obrazu 2.1 Princip komprese Diskrétní kosinová transformace je odvozena z diskrétní Fourierovy transformace tak, že vrací pouze reálnou složkou. Jde o fourierovskou transformaci, což přináší základní nedostatek - složky v kmitočtové oblasti nenesou žádnou informaci o původní poloze v prostorové oblasti. Tato transformace je totiž určena k analýze statických (u obrazových signálů v prostoru neměnných) periodických signálů. Řešením je rozdělit původní prostorovou doménu na segmenty, které jsou dostatečně malé tak, aby se výše zmíněná vlastnost neprojevila. Ve skutečnosti jde o největší problém všech kompresí založených na DCT, neboť segmentace je zejména při vysokých stupních komprese zcela evidetní a vnáší do dekódovaného obrazu zkreslení v podobě tzv. blokových artefaktů, které je nutné odstraňovat následným speciálním zpracováním. Segmentace se provádí většinou na bloky o velikosti 8×8 pixelů. Dále se přistupuje k samotné transformaci. Využívá se algoritmu DCT-II [7], který je snadno realizovatelný pomocí maticového násobení (což je v případě takto malých segmentů výhodné). Následuje aplikace kódovacího schématu. To zahrnuje následující kroky:
Obrázek 1 "zig-zag" cesta segmentem - kvantování - využívá se statické kvantovací matice, kterou se koeficienty dělí (prvek po prvku) a následně zaokrouhlí - načtení koeficientů dle cesty - všech 64 koeficientů se načte do zásobníku dle připravené "zig-zag" (obr. 1) cesty, která zohledňuje důležitost jednotlivých koeficientů v jednom segmentu (koeficienty s větším významem jsou načítány jako první) - RLE kódování - kóduje koeficienty po dvojicích symbolů, přičemž zohledňuje zvýšený výskyt nul (RLE = Run Length Encoding)
2
2006/42 – 25.10.2006 - Huffmanovo kódování - kóduje dvojice symbolů pomocí Huffmanova kódování (prefixový kód s převodní tabulkou, která zvýhodňuje nejčastěji se vyskytující dvojice) Takto získaná data se poté uloží. Přitom se ještě odliší první koeficient (stejnosměrná složka DC koeficient) - tato vykazuje zpravidla největší míru podobnosti v celém obraze a je proto kódována diferenčně (rozdílově) vzhledem k předcházejícím prvkům.
Obrázek 2 Princip DCT komprese obrazu
2.2 Implementace Při konkrétní implementaci DCT kodéru se stanovuje tzv. stupeň kvality komprese, což je číslo, podle kterého se váhuje kvantizační maska (to je původně statická matice, jejíž hodnoty jsou definovány např. v [5] a jako taková je stanovena experimentálním měřením, které zahrnuje i posouzení subjektivních hledisek). Kvantizační masky pro kompresi jasové a barvových složek jsou obvykle odlišné (na barvové složky se použijí větší hodnoty dělitelů, jak bylo naznačeno v úvodu). Také převodních tabulek pro Huffmanovo kódování koeficientů může být definováno více, např. formát JPEG povoluje až čtyři tabulky. Tabulky jsou definovány s ohledem na statistické rozložení dat v souboru. DCT komprese může být definována i v tzv. progresivním režimu (progresivním režimem je míněno získání ucelené informace o výsledku v případě přerušení přenosu), i když zde jde o režim značně omezený - na vině je segmentace obrazu, která v základním režimu práce (můžeme se setkat také s pojmem baseline - např. u formátu JPEG) vrací obraz jako celek až po průchodu celým zakódovaným souborem dat. Řešení tohoto (do jisté míry) paradoxu je dvojí - buď postupným přenosem informací ze segmentů podle jejich důležitosti (konkrétních implementací tohoto postupu je více a zájemce odkazujeme na [5]) nebo tzv. hierarchickým režimem, který začíná s přenosem obrazu v nízkém rozlišení a postupně jej v jednotlivých krocích zvyšuje. Nevýhodou je, že krokový charakter jednotlivých progresivních řešení je v případě DCT řešení velmi zřetelný a skutečné využití progresivního přenosu je spíše symbolické.
3. DWT komprese obrazu 3.1 Dvourozměrná DWT
3
2006/42 – 25.10.2006 Vlnková transformace je ve srovnání s Fourierovou transformací zcela odlišný přístup k analýze signálů. Je vlastně odpovědí na výše zmíněný problém s lokalizací transformovaných koeficientů v prostoru. Spojitá vlnková transformace se dá velmi zjednodušeně vysvětlit tak, že procházíme postupně celým obrazovým signálem v prostorové doméně a zjišťujeme jeho podobnost s mateřskou vlnkou (která je bází transformace) v příslušném měřítku. Tak získáme teoreticky nekonečné množství informací o podobnosti signálu s analyzujícím vlnkou, které jsou definovány jednak pro určitou prostorovou pozici a jednak pro konkrétní měřítko. Tyto informace se nazývají vlnkové koeficienty. K vlnkové transformaci se váže poměrně obsáhlá teorie, kterou zde však nebudeme rozebírat. Pro naše účely je důležitý algoritmus, pocházející od S. Mallata [1], který využívá shody diskrétní vlnkové transformace s lineární filtrací. Pokud uvažujeme klasickou dyadickou vlnkovou dekompozici (oktávová měřítka), tak se transformace zjednoduší na filtraci pomocí čtveřice dekompozičních a rekonstrukčních filtrů (z nichž jeden je typu horní a jeden typu dolní propust). Dekompozice je proces, kdy konvolucí původního signálu s dekompozičními filtry a následnou decimací (podvzorkováním - vypuštěním každého druhého vzorku) získáme dva výsledky s polovičním obsahem dat vzhledem k původnímu signálu, přičemž jeden obsahuje aproximativní a druhý detailní informace o obrazu. Analogicky opačný proces je rekonstrukce (použijeme rekonstrukční filtry a signál před filtrací doplníme nulami na původní velikost). Aplikujeme-li tento proces na dvourozměrný obrazový signál (a využijeme-li separabilnosti transformace, tj. že dvourozměrná transformace se dá nahradit postupným zpracováním obrazu po řádcích a po sloupích), získáme ve výsledku dekompozice rovnou čtyři skupiny koeficientů, každou o čtvrtinovém obsahu dat vzhledem k původním datům. Označujeme je takto - CA, CH, CV, CD - koeficienty aproximativní a horizontálně, vertikálně a diagonálně detailní. Pokud aplikujeme dekompozici na koeficienty CA jako výchozí data, získáme rozklad na další úrovni - jde tedy o jakousi formu rekurzivního procesu, kde výsledek předchozího kroku ve formě aproximativních koeficientů je použit jako zdroj pro další krok. Nakonec dostaneme obrazec, který nazýváme dekompoziční a jeho příklad je uveden na obr. 3. Oba obrazy jsou rozměrově zcela shodné, použita byla vlnka Haar, dekompozice proběhla do 2. úrovně.
4
2006/42 – 25.10.2006
Obrázek 3 Dekompoziční obrazec
3.2 Kódování dekompozičního obrazce Existuje více přístupů, jak ke kódování dekompozičního obrazce přistoupit. Jedna velká skupina metod pracuje se skalární kvantizací. Jde o základní metodu, která pracuje s jednotlivými koeficienty jako samostatnými celky. Kvantizační krok se stanovuje buď globálně nebo výhodněji samostatně pro každou úroveň dekompozice zvlášť. Skalární kvantizace nahradí původní koeficienty (obecně reálné) celočíselnými hodnotami se znaménkem, které vzniknou podělením původního koeficientu tzv. kvantizačním krokem (který se stanoví např. pomocí dynamického rozsahu hodnot v dané úrovni dekompozice). V tomto kroku tedy dochází ke ztrátě informace. Po kvantizaci je nutné aplikovat na výsledek bezeztrátovou kompresi informace - nejčastěji se pracuje s aritmetickým kódováním [4], případně je možné využít opět Huffmanova kódování, pokud je možných hodnot mezi koeficienty více. Druhou možností je využít vektorové kvantizace. Při vektorové kvantizaci se snažíme nalézt vazby mezi jednotlivými prvky a využít je ve prospěch kódování. Pokud zaměříme pozornost na rozložení vlnkových koeficientů v dekompozičním obrazci, můžeme zaznamenat jistou spojitost mezi stejnými skupinami koeficientů v různých kvantovacích úrovních. Každá skupina detailních koeficientů CH, CV a CD se vzhledem k nejvyšší úrovni dekompozice rozměrově zmenšuje a koeficienty, které nebyly decimací vypuštěny, naopak nabývají větších hodnot. Tento jev je poměrně dobře predikovatelný, neboť každá úroveň je vzhledem k vyšší rozměrově poloviční (důsledek dyadické dekompozice). Pokud se na tento fakt podíváme čistě z programátorského hlediska, můžeme pozorovat určitou stromovou strukturu; každému koeficientu v určité úrovni odpovídá skupina čtyř koeficientů v úrovni o stupeň vyšší. Bylo jen otázkou času, než se objeví kódování, využívající výše zmíněného postřehu ve svůj prospěch. První takovou metodou bylo EZW (Embedded Zerotree Wavelet) kódování a přišel s ním v roce 1993 J. M. Shapiro [2]. Daleko efektivnější řešení je bitově orientované SPIHT (Set Partitioning in Hierarchical Trees) kódování, se kterým přišli v roce 1996 A. Said a W.
5
2006/42 – 25.10.2006 A. Pearlman. [3], které z velké části vychází právě z EZW a dále jej rozšiřuje. Metody se skládají z kroků, při kterých provádíme srovnávání hodnot koeficientů s určitým prahem, který se s každým dalším krokem snižuje. Vzhledem k využití stromových struktur a předpokladu zvětšování hodnot koeficientů se zvyšující se úrovní dekompozice je velmi pravděpodobné, že velké množství koeficientů ležících pod úrovní prahu se nám podaří zakódovat několika málo bity. Co do efektivity komprese se jedná o jedno z nejlepších řešení, mimojiné i co se týče otázky dostatečné bitové variace (další komprese vygenerovaného datového toku bezeztrátovou metodou není dokonce vůbec nutná).
3.3 Implementace Prvním úkolem k úspěšnému zvládnutí implementace DWT obrazového kodeku je algoritmus samotné diskrétní vlnkové transformace. Jak již bylo řečeno, dá se realizovat prostou konvolucí původního dvourozměrného obrazového signálu s dekompozičními/rekonstrukčními filtry. Konvoluce je ovšem vzhledem k počtu nutných kroků nejméně štastné řešení. I proto byl vyvinut algoritmus fast lifting wavelet transform, který využívá Laurentových polynomů a snižuje počet nutných kroků přibližně na polovinu. Detailní popis tohoto algoritmu včetně implementace je uveden např. v [6]. Poměrně důležitá je také volba mateřské vlnky - v obrazové kompresi se velmi často využívají vlnky Daubechies ve formě biortogonálních filtrů (biortogonalita se projevuje nejčastěji rozdílným počtem prvků filtrů typu horní a dolní propust - např. u ztrátové JPEG2000 jsou použity 9-ti prvkové filtry typu dolní propust a 7-mi prvkové filtry typu horní propust, jde tedy o filtry s konečnou impulzní charakteristikou - FIR). Biortogonální filtry i přes jejich odlišnost proti filtrům ortogonálním splňují podmínku perfektní rekonstrukce (tzn., proces dekompozice a následné rekonstrukce by měl vrátit naprosto identický výsledek jako původní obraz - bez uvažování zaokrouhlovací chyby). Dalším krokem implementace je vybrání kvantovacího nástroje. Je třeba mít na paměti, že při použití skalární kvantování je nutné toto doplnit bezeztrátovou formou komprese získaných dat, aby bylo výsledné kódování efektivní. Takto pracuje i formát JPEG2000, kde se proces kódování označuje jako EBCOT (Embedded Block Coding with Optimized Truncation). Ve skutečnosti jde o skalární kvantování s následnou aplikací binárního aritmetického kódování, které jsou doplněny o vynikající organizaci ukládaných dat, které umožňují progresivní chování. Tuto progresivitu je možno využít např. k vytvoření mnoha verzí původního obrazu s různými vlastnostmi (jiná kvalita, rozlišení, obsažené barvové složky) z jednoho zakódovaného souboru. U vektorového kvantování není třeba používat žádné dodatečné kódování, neboť proud výstupních dat generovaný algoritmy EZW a SPIHT je dostatečně variabilní a informačně zhuštěný. Vektorové kvantování ale není součástí žádného široce rozšířeného otevřeného grafického formátu, a protože SPIHT a EZW jsou metody patentované, svoje uplatnění nachází především v komerčních, málo používaných formátech, případně při konkrétních úlohách (komprese seismických dat). Co se týče srovnání efektivity vektorového kvantování proti skalárnímu, většina výsledků poukazuje na vyšší účinnost vektorově orientovaných metod při kompresi, ale za cenu vyšší výpočetní náročnosti (např. [9]).
6
2006/42 – 25.10.2006
Obrázek 4 Srovnání JPEG a JPEG2000 při kompresi 1:350. Zdroj: [13]
4. Hodnocení efektivity komprese Před samotným srovnáváním jednotlivých metod je třeba definovat základní postupy, jak efektivitu komprese hodnotit. V první řadě se zaměříme na velikost výsledných dat. Úspěšnost komprese z tohoto hlediska se běžně hodnotí poměrovým způsobem, kde např. 1:10 znamená, že velikost výsledného souboru dat je jednou desetinou velikosti souboru originálního. Často se také setkáme se zápisem např. 1,5bpp, kde bpp (bits per pixel, tedy bitů na pixel) znamená, kolik bitů (průměrně) zabírá jeden pixel obrazu. Tato hodnota se vypočítá snadno jako podíl počtu bitů na jeden pixel originálního obrazu a násobku velikosti původního obrazu vzhledem k zakódovanému. Dalším důležitým stanoviskem je posouzení kvality dekódovaného obrazu. Toto hledisko, u bezeztrátové komprese zcela irelevantní, je u ztrátové komprese velmi důležitým prvkem. 7
2006/42 – 25.10.2006 Vyjadřuje se nejčastěji pomocí PSNR (Peak Signal to Noise Ratio - špičkový odstup signál/šum), které se vypočítá ze střední kvadratické chyby, plynoucí z rozdílu zdrojového a výsledného obrazu (přesná definice např. v [12]). Samotný rozdíl obou obrazů (v pixelech) tzv. reziduály - je velmi užitečný v případě, kdy potřebujeme lokalizovat, kde přesně vznikají v obraze nepřesnosti a zkreslení. Tyto dvě metody jsou objektivní - k posouzení kvality se využívá i metod subjektivních. Jejich konkrétní realizace vychází z hodnocení výsledného obrazu statisticky dosti velkou a na sobě vzájemně nezávislou skupinou lidí. Posledními velmi důležitými prvky v hodnocení efektivity komprese je výpočetní náročnost algoritmu. Ta je jednak časová - u ztrátové komprese je velmi obtížně predikovatelná, neboť ve většině případů závisí na původním obraze a množství detailů v něm obsažených. Dále pak paměťová - můžeme rozdělit paměťové nároky na pevné a plovoucí (dynamicky rostoucí nebo klesající za běhu algoritmu). Podrobný rozbor těchto dvou atributů je důležitý např. při implementaci komprese na DSP/VLSI architekturách.
5. Experimentální srovnání DCT a DWT-SPIHT 5.1 Realizace V rámci [10] byl vytvořen algoritmus pro kompresi obrazu pomocí DWT, který využívá pro kvantizaci dekompozičního obrazce kódování SPIHT. Ten je srovnáván s DCT kodérem, který vlastnostmi i nastavením odpovídá formátu JPEG v režimu baseline [5] (pouze Huffmanovo kódování neobsahuje kompletní převodní tabulky a je tak mírně zjednodušeno, bez velkého dopadu na efektivitu samotného kódování). Oba kodéry i dekodéry byly realizovány v podobě parametrizovatelných funkcí v prostředí MATLAB a později i ve skriptovacím jazyce PHP, který byl zvolen pro potřeby realizace webové aplikace SEDA [11]. Oba programy se podřizují zjednodušující podmínce, zmíněné v úvodu článku ( zpracování čtvercových obrazů ve 256 stupních šedi).
5.2 Testování Testování probíhalo touto metodikou: Nejprve se zdrojový obraz zakódoval pomocí DCT kodéru na určitý stupeň komprese (v rozmezí 1..99). Uložili jsme informaci o velikosti výsledku, provedli dekódování a uložili podobu výsledného obrazu. Potom jsme zakódovali obraz pomocí DWT-SPIHT kodéru s nastavením: hloubka dekompozice 6, mateřská vlnka biortogonální Daubechies 4/4. Kódování bylo ukončeno v okamžiku dosažení velikosti výsledku DCT kodéru (využili jsme progresivity SPIHT kodéru a možnosti kdykoliv přerušit proces kódování/dekódování s přesností na jednotlivé bity).
8
2006/42 – 25.10.2006
Obrázek 5 Jeden z výstupů experimentálního měření Dosažené výsledky v otázce efektivity komprese hovoří jasně ve prospěch DWT-SPIHT kodéru. Hodnota PSNR se pohybovala průměrně o +4dB ve prospěch vlnkově orientované metody, velmi dobrou subjektivní kvalitu dekódovaného obrazu proti DCT jsme zaznamenali především při vysokých stupních komprese (viz obr.5). Co se týče časové a paměťové složitosti, vzhledem k použitým programovacím prostředím a jazykům nejsou dosažené výsledky zcela věrohodné, nicméně metoda založená na DCT vykazuje kratší čas, potřebný ke kódování a dekódování. Problém je i v realizaci DWT pomocí prosté konvoluce, což zvyšuje nejen časové, ale i paměťové nároky algoritmu. Přesné výsledky testování jsou vyčerpávajícím způsobem pokryty v [10].
5.3 Aplikace SEDA Druhou částí experimentálního srovnání je realizace webové aplikace SEDA. Jde o online demonstrační aplikaci, která umožňuje snadné zobrazení výsledků testů včetně všech
9
2006/42 – 25.10.2006 měřených parametrů, ale navíc umožňuje (díky implementaci výše zmíněných algoritmů v jazyce PHP) interaktivní vytváření těchto testů (tato možnost je vzhledem k vytížení serveru v současné době povolená pouze pro registrované návštěvníky).
6. Závěr Zhodnotili jsme současné možnosti ztrátové obrazové komprese, vysvětlili dva nejpoužívanější postupy (DCT a DWT) transformace dat a jejich následné zpracování a dále naznačili, co je třeba při implementaci jednotlivých algoritmů respektovat. Experimentální testování jen potvrdilo, že nejlepší nástroje současnosti co do efektivity komprese jsou založeny na DWT transformaci. Výzkum v této oblasti nelze zdaleka považovat za uzavřený v budoucnosti můžeme předpokládat zejména o zvýšený zájem o oblast vektorové kvantizace dekompozičního obrazce (jejímž úpěšným představitelem je v současné době především metoda SPIHT). Navíc, efektivita komprese jako taková není rozhodně jediné kritérium, kterému bychom měli věnovat pozornost, do hry vstupuje i řada jiných faktorů, například odolnost kódovaní proti chybám v přenosovém řetězci, bezpečnost při přenosu, možnost náhodného přístupu do zakódovaného souboru dat, objektový způsob práce a jiné. Tento článek vznikl za podpory projektu 1ET301710509 Grantové agentury Akademie věd České republiky, projektu č. 102/04/1097 Grantové agentury České republiky a výzkumého záměru MS1850022.
Použitá literatura •
[1] Mallat S.: A Wavelet Tour of Signal Processing. 2nd edition, Academic Press,
1999. •
[2] Shapiro J. M.: Embedded Image Coding Using Zerotrees Of Wavelet Coefficinet, IEEE Transactions on Signal Processing, Vol. 41, No. 12, 1993. • [3] Said A., Pearlman W.A.: A New Fast and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees, IEEE Transactions on Circuits and Systems for Video Technology, vol. 6, 1996. • [4] Sayood K.: Introduction to Data Compression, Second Edition, Academic Press / Morgan Kaufmann Publishers, 2000 • [5] CCITT Study Group VIII, Joint Photographic Experts Group (JPEG) of ISO/IEC JTC 1/SC 29/WG 10: ITU T.81 JPEG Compression, CCITT 09/1992 • [6] Acharya T.: JPEG 2000 Standard For Image Compression: concepts, algorithms and VLSI architectures, Wiley-Interscience, 2005 • [7] Feig E., Winograd S.: Fast algorithms for the discrete cosine transform, IEEE Transactions on Signal Processing 40 (9), 2174-2193, 1992 • [8] Westland S.: Frequently asked questions about Colour Physics, Colourware Ltd, 2000. K dispozici na http://www.colourware.co.uk/cpfaq.htm • [9] Swaminathan A., Agarwala G.: Comparative Study Of Image Compression Methods, ENEE631: Digital Image Processing, 2001 • [10] Malý J.: Metoda pro kompresi obrazových signálů pomocí waveletové transformace, Diplomová práce, Ústav Telekomunikací FEKT VUT Brno, 2006. K dispozici na: http://wavelets.triablo.net/down/diplomova-prace.pdf • [11] Malý J.: SEDA - SPIHT Efficiency Demonstration Application, webová aplikace, 2006. K dispozici na http://seda.triablo.net
10
2006/42 – 25.10.2006 • [12] Rowe, L.: Multimedia Systems and Applications - Image Quality Computation, [online], 1997, dostupné z: http://bmrc.berkeley.edu/courseware/cs294/fall97/assignment/psnr.html • [13] Image Power, Inc., JPEG 2000 Performance Testing, [online], 2001, dostupné z: http://imagepower.com/
11