Princíp kompresných techník pre obrazový signál Vždy, ak nie je možné alebo vhodné používať nekomprimovaný signál, treba použiť kompresiu objemu obrazových a/alebo zvukových dát Rozdelenie - kompresné formáty určené na: výrobu záznamu len minimálne nevyhnutná kompresia v priestorovej oblasti (vnútri snímku), zachovanie max. kvality, jednoduchá editácia distribúciu záznamu cez rôzne transportné média (TV, DVD, BR, IP...) už nie je predpoklad ďalšieho spracovania možnosť použiť vyšší stupeň kompresie, závislý na požiadavkách na prezentáciu diela (aký kanál, aký terminál,...). Všeobecné atribúty kompresných technológií: Bezstratové kompresné technológie - pracujú podobne ako kompresné techniky dát (ZIP, RAR,...) Nízky kompresný pomer (50 % - 70%), ale plná kvalita obrazu/zvuku Stratové kompresné technológie založené na: Individuálnej priestorovej kompresii jednotlivých statických snímok (kompresia v 2D priestore) Minimalizácia informácii redundandných z pohľadu vnímania človekom (maskovanie) Časovej kompresii využívajúcej štatistickú závislosť následných snímok Korelácii viacerých tokov/kanálov a pod. Stratové kompresie vždy spôsobujú nevratnú degradáciu kvality Degradáciu kvality spôsobuje aj opakovaná kompresia dekompresia kompresia... Spracovanie toku (editácia, filtrácia,...) je možné vykonať len na nekomprimovanom toku dát.
Prvý stupeň kompresie priestorová kompresia jpeg-like Vyjadrenie hodnoty jasu obrazových prvkov v priestorovej interpretácií (napr. 8-bitová hĺbka jasu: 0 = čierna, 255 = biela (a podobne jednotlivé farby alebo diferenciálne farbonosné signály) 146 162 240 224 84 33 81 90 92 84 150 146 62 27 83 94 21 2 30 14 0 29 109 116 14 1 10 2 12 54 105 102 40 29 36 67 71 88 102 114 138 131 123 143 123 128 122 136 148 157 158 165 148 153 144 141 160 152 156 164 155 142 139 141 SDTV snímka 414720 hodnôt, v HDTV viac ako 2 milióny hodnôt 0...255 Zmenšenie objemu dát vyjadrením obrazových informácií vo frekvenčnej oblasti ako často (s akou frekvenciou) sa v prvku vyskytujú zmeny Obmedzením frekvencie výskytu prvkov nastavovanie stupňa kompresie Nevyhnutná priestorovo frekvenčná transformácia Najúčinnejšia transformácia využíva: štatistické rozloženie hodnôt na jednotlivých snímkach (čiže kódovacie jadro sa mení od snímky ku snímke) spracuje celú snímku v jednom behu (napr. Karhunen Loeve transformácia) je škálovateľná (rovnaký postup pre rôzne rozlíšenia)
musí byť dostatočne rýchla (prenos v reálnom čase) nesmie mať vysoké nároky na procesorový systém Možných transformačných technológií je viac, optimálny kompromis predstavuje Diskrétna kosínusová transformácia (DCT) realizovaná na obmedzenom bloku dát (typicky 8 x 8 bodov) DCT predstavuje modifikáciu všeobecnej Fourierovej transformácie s eliminovaním sínusových koeficientov. Rozmer snímky musí byť celočíselne deliteľný veľkosťou bloku, pre blok s veľkosťou 8x8 bodov: SDTV 90 x 72 = 6480 blokov, HDTV 240 x 135 blokov na každý blok aplikujeme DCT v smere zľava doprava, zhora dolu Veľkosť kompresie ovplyvňujeme pomocou kvantizácie, spätný prevod zabezpečuje inverzná DCT Praktický význam priestorovo-frekvenčnej transformácie: DC 10 10 10 10 10 10 10 10 80 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 fmax 10 10 10 10 10 10 10 10 40 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 0 0 0 0 0 0 0 Vzťah pre výpočet koeficientov DCT vo frekvenčnej oblasti : D(i, j)... Koeficient vo frekvenčnej oblasti N... veľkosť bloku (typ. N = 8) i... číslo riadku v bloku (i = 0, 1,...7) j... číslo stĺpca v bloku (j = 0, 1,...7) p(x, y)... hodnota amplitúdy prvku na pozícii x, y {-127...127 pre 8 bitov) C(i), C(j)...váhy riadkov a stĺpcov:
Pre blok 8 x 8 bodov môžeme rovnicu upraviť na tvar: Periodické kosínusové koeficienty je možné vyjadriť vzťahom: V maticovom vyjadrení:
Matica je ortogonálna a môžeme vypočítať inverznú maticu T -1. Transformáciu vykonáme vynásobením prvkov priestorovej matice postupne priamou a inverznou maticou T: D = T * M * T -1.
Príklad: Vstupné hodnoty načítané zo snímača (0-čierna,...255-biela) sú: a) Posun pracovného rozsahu symetricky okolo nuly (- 127...127) od každého prvku odčítame hodnotu 127:
b) Vynásobenie matice M postupne najprv pôvodnou maticou (transformácia riadkov), potom inverznou (transformácia stĺpcov): Matica po transformácii:
c) Kvantizácia pomocou kvantizačnej tabuľky: Vydelenie DCT koeficientov kvantizačnou tabuľkou a zaokrúhlením: Štandardná kvantizačná tabuľka pre kvalitu 50 %: Pre iné hodnoty kvality vynásobenie všetkých koeficientov konštantou (100-Q)/50 alebo 50/Q (pre Q<50) Zvyšovaním hodnôt kvantizačnej tabuľky sa zvyšuje veľkosť kompresie a klesá kvalita Vydelenie DCT koeficientov kvantizačnou tabuľkou a zaokrúhlením:
d) Vyčítanie koeficientov postupným spôsobom a zakódovanie štatistickým kódom (Variable Lenght Run, Huffman,...) Prečítanie prvkov matice spôsobom Cik-cak : A 00 : jednosmerná zložka DC stredná hodnota jasu Ostatné zložky: striedavé koeficienty AC 77 má najvyššiu frekvenciu (popisuje najmenšie detaily) e) zakódovanie postupnosti koeficientov čo najúspornejším spôsobom použitím kódov s premenlivou dĺžkou slova VLC (Variable Lenght Code) bezstratovým spôsobom kódovania štruktúra kódu by mala automaticky oddeľovať kódové slová a bloky dát optimálne prispôsobovať kódovací strom štatistickým parametrom obrazových dát.
NIEKTORÉ TYPY VLC KÓDOV: ENTROPICKÉ KÓDOVANIE a, vytvorenie prechodnej postupnosti vyčítaním prvkom matice: 10, 4, 3, -7, 9, 2, 5, 1, -5, -3, -2, -5, 1,2, 1, 0, 1, -2, 0, 1, 0, 0, 0, -1, -1, 0,...0 b, Zakódovanie do formátu: Hodnota DC - počet nulových prvkov pred hodnotou (max. 45), následná hodnota -,... EOF (0,0): 10, (0,4) (0,3)... (0,1) (3,-1) (0,-1) (45,0) (xx,0) (0,0) HUFFMANOV KÓD: Pravdepodobnostný kód, váhovanie podľa pravdepodobnosti výskytu prvku Prvky kódu bez oddeľovača-delimitera Proces kódovania: Analýza početnosti prvkov Konštrukcia kódovacieho stromu Zakódovanie prvkov Majme postupnosť: 13 0 4 5-1 1-1 1-1 -1 0 0 0-1
a) Vyhodnotenie pravepodobnosti výskytu a vytvorenie kódovacieho stromu: Hodnota prvku Počet výskytov Pravdepodobnosť výskytu Kódové slovo -1 5 x 0,3333 0 0 4 x 0,2666 10 1 3 x 0,2000 110 5 1 x 0,06666 1111 4 1 x 0,06666 11101 13 1 x 0,06666 11100 Výsledná postupnosť: 13 0 4 5-1 1-1 1-1 -1 0 0 0-1 EOF 11100 10 11101 1111 0 110 0 110 0 0 10 10 10 0 00 11100 10 11101 1111 0 110 0 110 0 0 10 10 10 0 00
Dekódovanie Huffmanového kódu prebieha inverzným spôsobom: Dekodér musí poznať kódovací strom (tabuľku) pravdepodobnosť výskytu prvkov v obraze 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 00 13 0 4 5-1 1-1 1-1 -1 0 0 0-1 EOF Čo je podmienkou optimálneho kódovania typu Huffman?
EXPONENCIÁLNE KÓDOVANIE PODĽA GOLOMBA: Patrí do skupiny univerzálnych kódov, rôzne varianty Parameter je nezáporná celočíselná hodnota k (kód k-teho rádu) 1, oddelenie k posledných bitov z kódovaného čísla X vyjadreného binárne 2, pripočítanie číslice 1 k dekadicky vyjadrenému zvyšku 3, vrátenie hodnoty do binárneho tvaru (M) 4, spočítanie počtu bitov, odpočítanie 1 a predradenie nulového reťazca tejto dĺžky (E) pred M 5, Zápis posledných k bitov binárne. Najjednoduchší prípad: k=0 Kóder: M = log 2 (X + 1) E = X +1-2 M Dekóder: Extrakcia nulového reťazca pred prvou bin. 1 = Z Od dekadickej hodnoty zvyšku odpočítať jedničku X = (Z DEK 1), Hodnota X M E Kód Hodnota X M E Kód 0 0+1=1 1-1 4 4+1=5 101 00 00101 1 1+1=2 10 0 010 5 5+1=6 110 00 00110 2 2+1=3 11 0 011 6 6+1=7 111 00 00111 3 3+1=4 100 00 00100......
Dekompresia rekonštrukcia obrazu a) obnovenie matice dát C inverzným aplikovaním VLC b) rekonštrukcia obrazu vynásobením matice C kvantizačnou maticou: c) Aplikácia inverznej DCT a posun do oblasti 0,...255: Porovnanie pôvodnej a rekonštruovanej matice:
Kompresné formáty založené len na vnútrosnímkovej kompresii Motion JPEG (MJPG) každý TV snímok komprimovaný podobne ako JPEG kompresný pomer nastaviteľný od 1:3...1:100 Klasické karty na komprimáciu analógového videa Formáty typu Digital Video - DV Základné klasické formáty používané v kamkordéroch DV PAL 720 x 576, 25i Počet aktívnych obrazových prvkov v snímku: 414 720 bodov Teoretická hodnota objemu dát snímky bez podvzorkovania: 1,25 MB Skutočná hodnota pri vzorkovacej schéme 4:2:0: 0,62 MB Použitá kompresia: vnútrosnímkové kódovanie, adaptívna
kvantizácia, kódovanie pomocou VLC. Pevne nastavená kompresia 5:1 výsledný dátový tok približne 24 Mb/s Zvuk: 1,536 Mb/s (2 kanály 48 khz/16 bitov alebo 4 kanály 32 khz/12 bitov), v uzamknutom (Lock) alebo neuzamknutom (Unlock) móde 61 440 B/snímok Záznamové médium: Pás 6,35 mm, 3 typy kaziet. Záznam rotačnými hlavami do šikmých stôp (Helical scan), 13 GB/60 min. Pamäťová karta P2/ SDHC HDD
Porovnanie DV formátov DV DVCAM DVCPRO (Digital 8) VIDEO 4:2:0, 25Mb/s 4:2:0, 25Mb/s 4:1:1/4:2:2, 25/50/100 4:2:0, 25Mb/s Mb/s Zápis 18,8mm/s, Stopa 28,2mm/s, Stopa 15um 33,8 mm/s, Stopa 18 um 28,6 mm/s,??? 10um Médium MiniDV Standard/MiniDV Standard/Large-DV Hi-8 AUDIO Unlock Lock Lock Unlock Formát dátového toku: RAW čistý dátový tok bez kontajnerizácie - *.dv, *.dif (Digital Interface Format) Kontajner typu AVI (Audio-video Interleave), typ 1 (Video prekladané s audiom + metadáta) Kontajner AVI typ 2 (Video prekladané s audiom + audio samostatne + metadáta) Logické členenie dátového toku na rozhraní IEEE 1394: Vrstva dátových blokov DIF Vrstva sekvencie Vrstva rámcov Vrstva paketov Fyzická vrstva rozhranie IEEE 1394 100, 200, 400 Mb/s
DIGITAL INTERFACE FORMAT, DIF Dátový blok 80 oktetov, 4 oktety záhlavie (Header, HDR), 76 oktetov A/V/M dáta Blok DIF, 80 oktetov HDR0,1 Typ bloku HDR2 Kanál/sekvencia HDR3 Číslo bloku Oktety 4...79 AUDIO/VIDEO/METADÁTA V rámci sekvencie a typu Číslo sekvencie (0...11) 25 Mb/s (0), 50 Mb/s (0/1) SQ-HDR (0); Subkód (1); VAUX (2), Audio+AAUX (3); Video (4) Príklad bloku DIF, ktorý prenáša vzorky videa: Formát bloku nezávislý na formáte AV súboru, mení sa len počet sekvencií v rámci (PAL DV25 = 12, NTSC = 10, PAL DV50 = 24,... max. počet sekvencií na snímku je 48).
SEKVENCIA DIF: 150 blokov DIF (12000 B) Záhlavie sekvencie (1 oktet), Subkód (2 oktety, časový kód a pod.) Video metadáta (VAUX) Audio a audio metadáta (AAUX 6, 22,... celkovo 9 blokov) Video (15x9 blokov) RÁMEC 12 sekvencií (PAL), nesúcich informácie o jednej úplnej snímke (144 000 B)
Priamy záznam na magnetický pás zápis do šikmých stôp (Helican Scan), 1 sekvencia sa zapisuje do jednej šikmej stopy, 12 stôp zodpovedá jednej snímke, 300 stôp/s Prenos cez rozhranie IEEE 1394 (napr. k externému HDD, strihovému pracovisku,...): Vrstva paketov rámec (12 sekvencií, 1800 blokov DIF) je segmentovaný do 300 segmentov (1800/300 = 6 blokov DIF v segmente, 480 oktetov) doplnený záhlavím (8 oktetov) a vytvára paket s dĺžkou 488 oktetov. Pakety patriace jednému snímku sa prenášajú izochrónnym spôsobom ako blok paketov (DV rámec) s predradeným synchronizačným poľom Start of Frame (SoF). Fyzická vrstva: Izochrónny (garancia prenosu v reálnom čase, bezkolíznosť) alebo asynchrónny paketový prenos, pakety konštantnej dĺžky. Médium: 2 x skrúcaný pár s impedanciou 110 Ω, úroveň prenášaného signálu 265 mv (LVDS, Low Voltage Digital Signal).