1 / 45

Kompresní algoritmy grafiky

Kompresní algoritmy grafiky. Jan Janoušek F11125. K čemu je komprese dobrá?. Pokud je třeba skladovat datově náročné soubory. Např. pro záznam obrazu, hudby a hlavně videa je třeba skladovat překvapivě mnoho dat. .

zinna
Télécharger la présentation

Kompresní algoritmy grafiky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kompresní algoritmy grafiky Jan Janoušek F11125

  2. K čemu je komprese dobrá? • Pokud je třeba skladovat datově náročné soubory. Např. pro záznam obrazu, hudby a hlavně videa je třeba skladovat překvapivě mnoho dat. • Při přenosu dat po síti. Zmenšením datové náročnosti se minimalizuje čas potřebný k přenosu.

  3. Základní pojmy Data Informace Data která dávají smysl. • „Jakékoliv fyzicky (materiálně) zaznamenané znalosti (vědomosti), poznatky, zkušenosti nebo výsledky pozorování procesů, projevů, činností a prvků reálného světa (reality).“ • „Surovina, z níž se tvoří informace.“ Zdroj: http://cs.wikipedia.org/wiki/Data

  4. Základní pojmy Kompresní algoritmus Entropie Míra množství informace Všechny kompresní algoritmy využívají faktu, že data často obsahují řadu nadbytečných informací. S odstraňováním těchto redundantních informací se zvyšuje entropie dat. • Postup, který minimalizuje množství dat potřebné k popsání dané informace.

  5. Základní pojmy Kompresní poměr k Kompresní zisk z Kompresní zisk je dán vztahem z=1-k a určuje tedy, kolik dat bylo kompresí „ušetřeno“. V případě, že kompresní algoritmus zvětší objem dat (kompresní poměr je větší, než jedna), je kompresní zisk záporný. • Jedná se o poměr mezi velikostí dat po a před kompresí nebo o poměr zkomprimovaného datového toku k nezkomprimovanému.

  6. Základní pojmy Bezztrátový kompresní algoritmus Ztrátový kompresní algoritmus Z komprimovaných dat nelze zrekonstruovat původní data, protože při komprimaci dochází k určitému zkreslení. Při komprimaci grafiky se využívá znalostí psychovizuálního model. • Z komprimovaných dat lze získat původní data bez jakékoliv ztráty kvality. Obvykle méně účinná, než ztrátová komprese.

  7. Výhody/nevýhody Ztrátové Bezztrátové Nehodí se pro fotky a spol. Z komprimovaných dat lze zrekonstruovat původní data U obrázků z nízkým počtem barev obvykle lepší kompresní poměr i kvalita. • Z komprimovaných dat nelze zrekonstruovat původní data • Pro obrázky s vysokým počtem barev (fotky) lepší kompresní poměr

  8. Bezztrátové kompresní algoritmy • Slovníkové metody komprese • Komprimovaná data jsou ukládána do „slovníku“. Při opakování dat, která jsou už ve slovníku obsažena, se místo dat samotných uvede odkaz na pozici ve slovníku • Statistické metody komprese • Statistické metody komprese jsou založeny na tom, že pro nejčastěji se vyskytující znaky jsou vytvářeny nejkratší odkazy. • Ostatní metody komprese

  9. Ostatní metody komprese RLE Vlastnosti RLE Velmi záleží na typu obrázku Záleží i na orientaci obrázku V některých případech může být i záporný kompresní zisk • Vstup: • wwwwwbwwwbbbbwbbbbbb • Výstup: • 5w1b3w4b1w6b • Kompresní poměr (v tomto případě):

  10. Slovníkové metody komprese – LZ77 „Podle principu je nazývána metodou posuvného okna. Pro lepší vysvětlení předpokládejme, že budou data reprezentována řetězcem. Posuvné okno (slidingwindow) je rozděleno na část, kde už jsou zakódovaná data, a na část, kde jsou ta nezakódovaná. Kódování začíná nastavením slidingwindow na řetězec, který má být zakódován, tak, že část pro již zakódovaná data je prázdná a druhá část je naplněna řetězcem (netřeba celým). Hledá se shoda co nejdelšího řetězce (počínajíce rozmezím) z nezakódované části s řetězcem v zakódované části. V případě shody je nový podřetězec zakódován uspořádanou dvojicí (p, n), kde p je pozice prvního znaku v zakódované části, a n je délka shodného podřetězce. “ Zdroj: Foltýnek, Tomáš a Přichystal, Jan. Komprimace a šifrování.

  11. Slovníkové metody komprese – LZ77 Příklad: Vstupní text: leze leze po železe Výstupní text: leze l(2,3) po že(5,4) Zdroj: Foltýnek, Tomáš a Přichystal, Jan. Komprimace a šifrování. Zdroj: Večerka, Arnošt. Komprese dat

  12. Slovníkové metody komprese – LZW84 • Použití: • Gif, tiff, zip • Na 20 let byl chráněn patentem Zdroj: Foltýnek, Tomáš a Přichystal, Jan. Komprimace a šifrování.

  13. Statistické metody kompreseHuffmanovokódování „Konvertuje znaky vstupního souboru do bitových řetězců různé délky. Znaky, které se ve vstupním souboru vyskytují nejčastěji, jsou konvertovány do bitových řetězců s nejkratší délkou (nejfrekventovanější znak tak může být konvertován do jediného bitu), znaky, které se vyskytují velmi zřídka, jsou konvertovány do delších řetězců (mohou být i delší než 8 bitů). Nejjednodušší metoda komprese touto metodou probíhá ve dvou fázích. První projde soubor a vytvoří statistiku četností každého znaku. Ve druhé fázi se využije této statistiky pro vytvoření binárního stromu a k následné kompresi vstupních dat.“ Zdroj: http://cs.wikipedia.org/wiki/Huffmanovo_k%C3%B3dov%C3%A1n%C3%AD

  14. Ztrátové kompresní algoritmy • Ztrátové kompresní algoritmy se používají tam, kde nevadí určité zkreslení informací (obraz, audio, video). • Psychovizuálním model pro obrazová data • Psychoakustický model pro zvuková data

  15. Psychoakustický model • Klíčové znalosti pro ztrátovou kompresi obrazu: • Lidské oko je mnohem citlivější na jas barvy, než na její odstín. • Lidské oko má větší citlivost na nízké frekvence, než na vysoké. • Při ztrátové kompresi jsou tedy přednostně komprimovány (a tedy zkreslovány) právě tyto informace.

  16. Kompresní algoritmus JPEG • Pro velké obrázky z mnoha barvami se bezztrátové komprimační algoritmy nehodí. • Algoritmus využívá tzv. diskrétní kosinová transformace (DCT)

  17. Kompresní algoritmus JPEG „Metoda je vhodná především pro kódování fotografií, u nichž sousední pixely mají sice odlišné, ale přesto blízké barvy. Snižování kvality se projevuje potlačováním rozdílů v blízkých barvách. U metody DCT je kompresní poměr řízen požadavkem na výši kvality dekomprimovaného obrazu. V praxi se ukazuje, že snížení kvality na 75 % je pro většinu uživatelů nepozorovatelné, přitom kompresní poměr v takovém případě může být až 25:1.“ Zdroj: Foltýnek, Tomáš a Přichystal, Jan. Komprimace a šifrování.

  18. Postup kompresního algoritmu 1. Transformace barev z barevného prostoru RGB do YCBCR – kvůli aplikaci komprese využívající psychovizuálního modelu (barevné složky budou ve výsledku více zkreslené, než složky jasové) 2. Podvzorkováníbarevných složek – redukce objemu dat zprůměrováním barevných složek sousedních pixelů

  19. Postup kompresního algoritmu 3. Rozdělení obrazu na čtverce 8 × 8 4. Aplikace dopředné diskrétní kosinové transformace na prvky čtvercové matice vzniklé v minulém kroku

  20. Postup kompresního algoritmu 5. Kvantování koeficientů matice – v tomto kroku se určuje stupeň komprese obrazu) 6. Zkomprimování kvantovaných koeficientů pomocí Huffmanova kompresního algoritmu – po předchozím kroku má mnoho prvků matice nulovou hodnotu

  21. Transformace barev • Transformace z barevného prostoru RGB do barevného prostoru YCBCR je přesně definována ve specifikaci JFIF, ve které jsou uvedeny jak rovnice pro převod z barevného prostoru RGB do YCBCR, tak rovnice pro převod inverzní.

  22. Transformace barev • Specifikace předpokládá, že složky RGB a YCBCR jsou reprezentovány jako celá čísla v rozsahu 0 až 255. • Ačkoliv tato transformace je v principu bezztrátová, tyto samotné převody jsou do určité míry ztrátové, protože dochází k zaokrouhlování výsledků na celá čísla.

  23. YCBCR Jasová složka barvy – Y (luma) Barevné složky – CB a CR (chroma) Barevné složky pro modrou a červenou barvu. Barevná složka pro zelenou se neuvádí, protože je jí možno z Y, CB a CR dopočítat. • Na tuto složku je lidské oko nejvíce citlivé a podléhá tedy nejmenší kompresi.

  24. Zpětný převod

  25. Podvzorkování barevných složek • Protože lidské oko je mnohem méně citlivé na barvy, než na jas, využívá se podvzorkování (nebo také redukce) barvonosných složek pro zvýšení efektivity kompresního algoritmu. • Jedná se o první významněji ztrátový převod, protože informace o barvách v tomto procesu zanikají.

  26. Podvzorkování barevných složek Podvzorkování funguje tak, že z hodnot barevných složek sousedních pixelů je spočítána průměrná hodnota. Jsou přípustné dvě možnosti:

  27. Podvzorkování barevných složek • Průměrování hodnot dvou sousedních pixelů na řádku. • Úspora dat ze 6 bytů na 4, kompresní poměr tedy asi 67%. • Průměrování hodnot pixelů tvořící čtverec 2×2 • Úspora dat ze 12 bytů na 6, kompresní poměr tedy 50%.

  28. Rozdělení obrazu na čtverce 8 × 8 • Obrázek je rozdělen na čtvercové bloky o rozměrech 8 × 8 pixelů. • Tohoto rozdělení lze později využít pro rychle generování náhledového obrázku.

  29. Rozdělení obrazu na čtverce 8 × 8 • Pokud není výška nebo šířka obrázku dělitelná osmi, je nutné tyto „okrajové“ bloky vhodně doplnit do požadovaného rozměru 8 × 8 pixelů. Způsob doplnění je ponechán na konkrétním software, který obrázek zpracovává. Obvykle se používá zrcadlení již existujících pixelů.

  30. Aplikace dopředné diskrétní kosinové transformace • Nyní máme matici 8 × 8 pixelů, kde každý prvek této matice obsahuje informaci o jasu (složka Y) a o barvě (složky CB a CR). • Od všech jednotlivých složek se odečte hodnota 128, čímž se přetransformuje jejich rozsah do intervalu -128 až 127

  31. Aplikace dopředné diskrétní kosinové transformace • Jednotlivé složky se budou nyní dopřednou DCT zpracovávat samostatně. • DCT je nutno provést celkem třikrát: jednou pro jasovou složku Y a dvakrát pro barevné složky CB a CR. • Účelem DCT je přetransformovat tuto matici do matice nové, ve které budou, z hlediska lidského vnímání, nejdůležitější prvky uvedeny v levém horním rohu a směrem k rohu levému bude jejich důležitost klesat.

  32. Aplikace dopředné diskrétní kosinové transformace • Transformace se pro jednotlivé prvky provádí pomocí rovnice: • , • Funkce, pro které platí: a pro • Rozměr matice. V tomto případě tedy platí . • Hodnota matice v bodě , .

  33. Aplikace dopředné diskrétní kosinové transformace • Výsledkem transformace je matice, která v levém horním rohu obsahuje tzv. stejnosměrný koeficient (DC), u něhož jsou hodnoty Y, CB a CRprůměrné celého bloku matice.

  34. Aplikace dopředné diskrétní kosinové transformace • Výsledkem transformace je matice, která v levém horním rohu obsahuje tzv. stejnosměrný koeficient (DC), u něhož jsou hodnoty Y, CB a CRprůměrné celého bloku matice.

  35. Aplikace dopředné diskrétní kosinové transformace • Ostatní koeficienty jsou tzv. střídavé (AC). Čím vyšší frekvenci tyto koeficienty mají, tím je jejich důležitost nižší a mohou se v následujícím kroku více zkomprimovat (a tedy více zkreslit jejich hodnota).

  36. Kvantování koeficientů matice • Až na proces podvzorkování barvonosných složek dosud algoritmus dosud neprováděl žádnou kompresi. Ta nejdůležitější část komprese – kvantování koeficientů tabulky – se provádí právě zde.

  37. Kvantování koeficientů matice • Z předchozího kroku je připravena matice, která má v určité části důležité koeficienty a v jiné méně důležité až téměř nevýznamné. Každý prvek této matice se celočíselně vydělí hodnotami z tzv. kvantizační tabulky.

  38. Kvantování koeficientů matice • Kvantizační tabulky obsahují nízké hodnoty u důležitých členů (nízkofrekvenčních) a vysoké hodnoty u důležitých členů (vysokofrekvenčních). Po tomto procesu tedy vzniknou u vysokofrekvenčních prvků převážně nuly. Zdroj: http://www.root.cz/clanky/programujeme-jpeg-kvantizace-dct-koeficientu/

  39. Kvantování koeficientů matice • Výsledná kvalita závisí převážně na použité kvantizační tabulce. Proto obvykle existují pro různé stupně komprese různé tabulky. • Kvantizační tabulky nejsou dány normou, a proto každý výrobce softwaru může zvolit vlastní sadu kvantizačních tabulek.

  40. Kvantování koeficientů matice • Často aplikace neobsahuje pro každý stupeň komprese specifickou kvantizační tabulku. Tento problém se řeší pomocí lineární interpolace ze známých příslušných hodnot ostatních kvantizačních tabulek.

  41. Kvantování koeficientů matice Zdroj: http://www.root.cz/clanky/programujeme-jpeg-kvantizace-dct-koeficientu/

  42. Zkomprimování kvantovaných koeficientů • V aktuálním stavu obsahuje kvantovaný blok 8 × 8 pixelů mnoho pixelů v části vysokofrekvenčních členů. Tento blok nyní stačí už pouze zkomprimovat pomocí Huffmanova kompresního algoritmu.

  43. Zkomprimování kvantovaných koeficientů • Matice je komprimována postupně „cik-cak“ od členu s nejnižší frekvencí (stejnosměrný člen – DC) po člen s nejvyšší frekvencí. Tímto postupem Huffmanovo kódování dosáhne nejvyšší účinnosti díky opakování mnoha nul po sobě. Zdroj: http://www.root.cz/clanky/programujeme-jpeg-kvantizace-dct-koeficientu/

  44. Zkomprimování kvantovaných koeficientů • Tímto krokem je samotná komprimace dokončena. Nyní zbývá už jen data uložit v podobě dle specifikace, přidat hlavičku a ostatní metadata (EXIF, IPTC apod.).

  45. Zdroje • Foltýnek, Tomáš a Přichystal, Jan. Komprimace a šifrování. [Online] [Citace: 6. 4 2012.] https://akela.mendelu.cz/~foltynek/KAS/elearning/KAS_PDF.pdf. • Večerka, Arnošt. Komprese dat. [Online] 2008. [Citace: 6. 4 2012.] phoenix.inf.upol.cz/esf/ucebni/komprese.pd. • Tišnovský, Pavel. Programujeme JPEG: diskrétní kosinová transformace (DCT). Root.cz. [Online] 4. 1 2007. [Citace: 6. 4 2012.] http://www.root.cz/clanky/programujeme-jpeg-diskretni-kosinova-transformace-dct/. • —. Programujeme JPEG: Kvantizace DCT koeficientů. Root.cz. [Online] 11. 1 2007. [Citace: 6. 4 2012.] http://www.root.cz/clanky/programujeme-jpeg-kvantizace-dct-koeficientu/. • Bařina, David. Ztrátová komprese obrazu. FIT VUT Brno. [Online] 2007. [Citace: 6. 4 2012.] www.fit.vutbr.cz/study/DP/rpfile.php?id=5779. • Data compression ratio. Wikipedia. [Online] [Citace: 6. 4 2012.] http://en.wikipedia.org/wiki/Data_compression_ratio. • Komprese Dat. Wikipedia. [Online] [Citace: 1. 4 2012.] http://cs.wikipedia.org/wiki/Komprese_dat.

More Related