Algoritmy komprese dat Digitalizace a komprese videa 13.1.2016 NSWI072-18
Úvod Video posloupnost snímků Komprese videa obrazu změna průměrného jasu obrázku» zanedbatelná po dekompresi statického obrazu» viditelná v posloupnosti snímků špatná reprodukce ostrých hran» vážný problém pro kompresi obrazu» zanedbatelná ve video sekvenci 2
Úvod Klasifikace algoritmů dle aplikační oblasti oboustranná komunikace symetrická komprese / dekomprese jednostranná komunikace vyšší tolerance pro složitost komprese 3
Reprezentace video signálu CRT Cathode Ray Tube emise paprsku elektronů povrch pokrytý fosforem 4
Reprezentace video signálu Obnovovací frekvence fps (frames per second) min 15fps 16fps 24fps (35mm film) zdvojování 48fps (72fps) PAL,SECAM 25fps USA 30fps (1930), 29.97fps (1953) 5
Analogová TV (USA) NTSC (National Television Standards Committee) 525 řádků, jen asi 483 viditelných (snímkové zatemňování) poměr stran 4:3 délka řádku 4/3 483 = 644 59.94fps, prokládání (2 262.5 řádku) 6
Analogová TV (Evropa) PAL (Phase Alternating Line, Německo) 625 řádků (asi 576 viditelných) poměr stran 4:3 50fps, prokládání 2:1 SECAM (Séquential Couleur avec Mémoire, Francie) 7
Reprezentace barev Barevná TV 3 elektronové paprsky R, G, B 8
Reprezentace barev Kompozitní signál 1953: zpětná kompatibilita s č/b TV Y (jas), C 1,C 2 (barevné složky)» Y používaly č/b TV přijímače 9
Gama korekce 10
Kompozitní/komponentní video NTSC: YIQ Y = 0.299 R + 0.587 G + 0.114 B I = 0.596 R - 0.274 G - 0.322 B Q = 0.211 R - 0.523 G + 0.311 B R,G,B := R,G,B po gama korekci PAL: YUV SECAM: YD r D b Jediný kanál pro všechny 3 složky Komponentní video: 3 kanály pro separátní přenos 11
Digitální video Nejprve pokusy o vzorkování kompozitního videa problém NTSC x PAL 70. léta : vzorkování komponent mezinárodní standard ITU R recommendation 601 (CCIR 601) digitalizace prokládaného analogového videosignálu barevný prostor YC b C r vzorkovací frekvence 3.375MHz» pro každou komponentu celočíselný násobek (až 4x)» 4:4:4 13.5MHz každá» 4:2:2 13.5MHz jas, 6.75MHz barevné složky Y: 720 vz/ř, C: 360 vz/ř 12
ITU R 601 13
ITU R 601 Normalizace YCbCr vzorků Y 0,1, CbCr -1/2,1/2 Konverze na 8b hodnoty Y = 219Y s + 16 U = 224Cbs + 128 V = 224Crs + 128 14
MPEG 1 Formát MPEG-SIF : vychází z ITU-R 601 4:2:2 anti-aliasing 15
MPEG - 1 16
H.261 ITU-R H.261 videotelefon, videokonference Výchozí formát CIF (Common Interchange Format) Y: 288 352 UV: 144 176 QCIF (Quarter) poloviční v obou směrech 17
H.261 Idea snímek bloky 8 8 predikce + diferenční kódování» predikce dle předchozího snímku» nebo O když předchozí neexistuje nebo se příliš liší DCT kvantizace entropický kodér» s proměnnou délkou kódového slova 18
Schéma H.261 19
Kompenzace pohybu Diferenční kódování predikce pomocí stejné pozice na předchozím snímku nedostatečná vektor pohybu 20
Blokově orientovaná kompenzace snímek čtvercové bloky for each blok B kódovaného snímku do najdi blok P předchozího snímku s min d(b,p) d {d 1, σ 2 } if d(b,p) > ε then zakóduj P bez predikce else vektor-pohybu := levý-horní-roh(b) - levý-horní-roh(p) 21
Kompenzace pohybu Zvětšení velikosti bloku menší # bloků větší # operací při porovnání předměty pohybující se různým směrem 22
Kompenzace pohybu Omezení oblasti prohledávání menší # porovnání méně kandidátů, horší shoda 23
H.261: kompenzace pohybu Řešení H.261 makrobloky» Y: 16 16 (4 bloky 8 8)» UV: 8 8 kompenzace pohybu na úrovni makrobloků» hledání nejlepší shody na předchozím snímku» pouze pro složku Y» oblast prohledávání: < ±15 v obou směrech» vektor pohybu pro UV: (vektor pohybu pro Y) ½ (-3,10) (-1,5) 24
Vyhlazovací filtr Ostré hrany ve snímku použitém pro predikci vyšší variace hodnot diferencí vysoké VF koeficienty po DCT nižší kompresní poměr Vyhlazovací filtr 2rozměrný separabilní: řádky, sloupce koeficienty (1/4, ½, 1/4) mimo okraje bloku Příklad 110 218 116 112 108 210 110 114 110 218 210 112 112 108 110 116 110 165 140 112 108 159 135 114 110 188 187 112 112 109 111 116 25 110 165 140 112 108 167 148 113 110 161 154 113 112 109 111 116
Transformace DCT bloků 8 8 blok diferencí (režim inter) původní blok (režim intra) Kodér simuluje činnost dekodéru rekonstrukce komprimovaných snímků uložení výsledku 26
Kvantizace Velká variace koeficientů pro kvantizaci vysoká hodnota DC koeficientu intra bloku malé změny mezi snímky nízké hodnoty koeficientů inter bloku 32 kvantovačů intra DC koeficient: uniformní kvantovač s krokem 8 s nulovým dělícím bodem ostatní: uniformní s krokem 2,62 s nulovým intervalem menší krok více nenulových koeficientů 27
Kvantizace Identifikace použitého kvantovače hlavička makrobloku GOB (group of blocks): 3 řady po 11 makroblocích» 5bitový identifikátor v hlavičce GOB 28
Kódování Cik-cak průchod blokem kvantovaných koeficientů JPEG (počet předchozích nulových, aktuální koeficient) 20 nejčastějších proměnná délka kódového slova ostatní pevná délka 20b» escape (6b), délka běhu nul (6b), koeficient (8b) CBP (coded block pattern) v hlavičce makrobloku které bloky (4 jasové, 2 barevné) obsahují nenulové koeficienty 29
Řízení přenosu (rate control) Aplikace: videotelefon, videokonference minimální zpoždění (< 150ms) Přenosový buffer má zajistit konstantní rychlost přenosu buffer se vyprazdňuje/ přeplňuje kodér dodává data s nižší/vyšší frekvencí než vyžadováno pro přenos může požádat kodér o změnu Požadavek na vyšší/nižší přenosovou rychlost kodér vybere kvantovač s menším/větším krokem» větší krok více nulových koeficientů mezní řešení: některé snímky nepřenášet 30
MPEG-1 Základ podobný H.261 bloky 8 8 inter/intra kompenzace pohybu na úrovni makrobloku DCT kvantizace a kódování řízení přenosové rychlosti pomocí přenosového bufferu Rozdíly: rozdílné aplikace MPEG-1: digital storage media 31
Typy snímků Snímky I-snímek (intraframe) běžný snímek P-snímek (predictive frame) diference mezi běžným a předchozím I nebo P-snímkem B-frame (bi-directional frame) diference mezi dvěma nejbližšími I/P-snímky např. I:P:B 2:5:12 32
Skupiny snímků Group of Pictures (GOP) opakující se posloupnost 10-30 snímků DVD (MPEG-2) omezení» PAL DVD 15 snímků / GOP» NTSC DVD 18 snímků / GOP 33
GOP Alespoň jeden I-snímek Začátek I-snímek B-snímky, které pro predikci požívají jen následující I-snímek Vlastnosti přehrávání v původní rychlosti i na pomalém zařízení rychlost lze zajistit přeskočením B, P, případně I-snímků rychlé převíjení, skok dopředu / dozadu 34
GOP Příklad I B B P B B P B B P B B I Display order I 1 B 2 B 3 P 4 B 5 B 6 P 7 B 8 B 9 P 10 B 11 B 12 I 13 Bitstream order I 1 P 4 B 2 B 3 P 7 B 5... 35
Kódování Kompenzace pohybu standard nespecifikuje konkrétní metodu oblast prohledávání by měla růst se vzdáleností mezi snímky Kódování a kvantizace JPEG různé kvantovací tabulky pro různé snímky Řízení přenosu nejprve B-snímky zvýšení velikosti kroku kvantovače vynechání VF koeficientů 36
Kódování CPB (constrained parameter bitsteam) doporučené hodnoty parametrů 352x288 (25sn/s), 352x240 (30sn/s) -> 1-1.5Mb /s Vlastnosti VHS kvalita (low-moderate motion) horší než VHS (high-motion) neuvažuje prokládání 37
MPEG Moving Picture Experts Group pracovní skupina ISO/IEC vývoj standartů pro kódování digitálního audia/videa 1988 (Ottawa) cca 350 členů Standard popisuje formát bitového proudu a dekodér nikoliv kodér 38
MPEG MPEG-1 (1993) ztrátová komprese zvuku & videa až 4095 4095, 30 snímků/s, 1.5Mb/s, obraz YUV standard for Video CD Layer 3 (.mp3) formát pro kompresi audia MPEG-2 (1994) až 15Mb/s TV vysílání» DVB, kabelová TV, HDTV DVD 39
MPEG-2 Profily simple, main, snr-scalable, spatially scalable, high simple: bez B-snímků main: viz MPEG-1 Použití více vrstev snr-scalable, spatially scalable, high základní vrstva: kódování video signálu nízké kvality doplňková vrstva: diferenční kódování pro zvýšení kvality 40
Příklad DCT koeficienty 29.75 6.1-6.03 1.93-2.0 1.23-0.95 2.11 Kvantovač s délkou kroku 4 stejný krok pro všechny koeficienty pro jednoduchost lij = θij / 4 + 0.5 ˆ ij = l ij 4 Koeficienty po rekonstrukci 28 8-8 0-4 0 0 4 Rozdíl původní-rekontruovaná (chyba kvantovače) 1.75-1.9 1.97 1.93 1.99 1.23-0.95-1.89 41
Příklad Doplňková vrstva: kvantizace rozdílů kvantovač s krokem 2 Hodnoty v doplňkové vrstvě po rekontrukci 2-2 2 2 2 2 0-2 Po přičtení v hodnotám v základní vrstvě 30 6-6 2-2 2 0 2 Chyba kvantovače -0.25 0.1-0.03-0.07-0.01-0.77-0.95 0.11 42
MPEG-2 Úrovně (level) low (352 x 240) main (720 x 480) high 1440 (1440 x 1152) high (1920 x 1080) všechny úrovně 30 sn/sec Prokládání P-snímky: lze nahradit 2 P-půlsnímky B-snímky: lze nahradit 2 B-půlsnímky I-snímky: 2 I-půlsnímky nebo I a P-půlsnímek» využití půlsnímků pro predikci 43
MPEG-2 44
MPEG MPEG-3 původně navržen pro HDTV vývoj zastaven, sloučen s MPEG-2 MPEG-3 MP3 = MPEG-1 Layer 3 MPEG-4 (2001) navržen pro kódování s nízkou přenosovou rychlostí skládání různých informací z mnoha datových toků» objektově orientovaný přístup (audio, video a VRML objekty)» popis 3D scény pomocí virtuálních kamer (VRML, X3D)» popis a animace výrazu obličeje (talking-head)» popis hlasových prvků (fonémy) pro automatický převod textu na řeč» DRM (Digital Rights Management) 45
MPEG MPEG-4 povoluje použití libovolných kodeků (MPEG-1-2 kódování dáno normou)» efektivnější komprese / nižší kompatibilita» kodeky třeba instalovat» MPEG-4 Part 2: DivX, XviD, Quicktime 6» MPEG-4 Part 10 (H.264): Quicktime 7, HD DVD, Blu-ray 46