Zpracování multimediálních dat pro integrovanou výuku VUT a

Komentáře

Transkript

Zpracování multimediálních dat pro integrovanou výuku VUT a
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
Zpracování multimediálních dat pro
integrovanou výuku VUT a
VŠB-TUO
Garant předmětu:
Ing. Petr Číka, Ph.D.
Autor textu:
Ing. Petr Číka, Ph.D.
BRNO 2014
Vznik těchto skript byl podpořen projektem č. CZ.1.07/2.2.00/28.0062
Evropského sociálního fondu a státním rozpočtem České republiky.
Autor
Ing. Petr Číka, Ph.D.
Název
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
Vydavatel
Vysoké učení technické v Brně
Fakulta elektrotechniky a komunikačních technologií
Ústav telekomunikací
Technická 12, 616 00 Brno
Vydání
první
Rok vydání
2014
Náklad
elektronicky
ISBN
978-80-214-5062-2
Tato publikace neprošla redakční ani jazykovou úpravou
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
3
Obsah
1 Úvod
9
2 Komprese digitálního obrazu
2.1
10
Digitální obraz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1
Barevné modely - barevný obraz . . . . . . . . . . . . . . . . . . . . 12
2.2
Proč komprese? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3
Bezeztrátové kompresní techniky . . . . . . . . . . . . . . . . . . . . . . . 16
2.4
Ztrátové kompresní techniky . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5
Formát PNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6
2.7
2.5.1
Úprava obrazu před kompresí . . . . . . . . . . . . . . . . . . . . . 17
2.5.2
Komprese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Formát WebP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.1
Ztrátová komprese . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.2
Bezeztrátové kódování . . . . . . . . . . . . . . . . . . . . . . . . . 27
Formát JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7.1
Sekvenční kódování . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7.2
Dekodér . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.3
Progresivní kódování založené na DCT . . . . . . . . . . . . . . . . 35
2.7.4
Bezeztrátové kódování . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7.5
Hierarchické kódování . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Komprese digitálního videa
3.1
39
Digitální video – formáty, kvalita . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.1
Snímková frekvence . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.2
Prokládání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2
Formát MPEG-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3
Formát MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4
Formát MPEG-4 Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.1
Simple profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.2
Advanced Simple Profile . . . . . . . . . . . . . . . . . . . . . . . . 59
4
FEKT Vysokého učení technického v Brně
3.5
3.4.3
Advanced Real Time Simple Profile . . . . . . . . . . . . . . . . . . 60
3.4.4
Profil Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4.5
Profil Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4.6
Profil N-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.7
Jednoduchý škálovatelný profil . . . . . . . . . . . . . . . . . . . . . 64
3.4.8
Škálovatelný profil Core . . . . . . . . . . . . . . . . . . . . . . . . 65
Formát MPEG-4 AVC / H.264 . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5.1
Základní profil
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5.2
Hlavní profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.5.3
Rozšířený profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4 Distribuce multimediálního obsahu
4.1
80
Video na vyžádání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1.1
Centralizované systémy služby video na vyžádání . . . . . . . . . . 80
4.1.2
Decentralizované systémy služby video na vyžádání . . . . . . . . . 81
4.2
Protokoly RTP/RTCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3
Protokol RTSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4
Protokol SDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5 Vodoznačení digitálních dat
101
5.1
Požadavky na vodoznak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2
Princip vodoznačení
5.3
Systémy vodoznačení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.4
Základní metody vodoznačení . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.5
Dělení vodoznaků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.5.1
Kritérium – typ detektoru . . . . . . . . . . . . . . . . . . . . . . . 111
5.5.2
Kritérium – vnímatelnost vodoznaku . . . . . . . . . . . . . . . . . 111
5.5.3
Kritérium – zabezpečení . . . . . . . . . . . . . . . . . . . . . . . . 112
5.5.4
Kritérium – odolnost . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.5.5
Kritérium – oblast pro vkládání vodoznaku . . . . . . . . . . . . . . 112
Způsoby útoků na vodoznačený obraz . . . . . . . . . . . . . . . . . . . . . 113
5.6.1
Útoky zaměřené na odstranění vodoznaku . . . . . . . . . . . . . . 113
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
5.7
5.6.2
Geometrické útoky . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.3
Kryptografické útoky . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.4
Protokolové útoky
. . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Vodoznačení v prostorové oblasti . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.1
5.8
5
Metoda vodoznačení LSB v jasové složce . . . . . . . . . . . . . . . 114
Vodoznačení ve frekvenční oblasti . . . . . . . . . . . . . . . . . . . . . . . 116
5.8.1
Vodoznačení s využitím 2D-DWT transformace . . . . . . . . . . . 116
5.8.2
Vodoznačení s využitím 2D-DCT transformace . . . . . . . . . . . . 118
6
FEKT Vysokého učení technického v Brně
SEZNAM OBRÁZKŮ
2.1
Barevný model  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2
Model 4:4:4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3
Model 4:2:2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Model 4:2:0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5
Model 4:1:1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6
Prokládání pixelů metodou Adam7 . . . . . . . . . . . . . . . . . . . . . . 20
2.7
Poloha bytů použitých při filtrování . . . . . . . . . . . . . . . . . . . . . . 21
2.8
Vyčítání koeficientů cik–cak . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9
Kodér a dekodér standardu JPEG . . . . . . . . . . . . . . . . . . . . . . . 35
2.10 Spektrální selekce a postupná aproximace . . . . . . . . . . . . . . . . . . . 36
2.11 Predikce u bezeztrátového módu . . . . . . . . . . . . . . . . . . . . . . . . 37
2.12 Hierarchický mód kódování . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1
Prokládání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2
Hierarchie MPEG-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3
Skupina snímků GOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4
Obecný kodér standardu MPEG . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5
Obecný dekodér standardu MPEG . . . . . . . . . . . . . . . . . . . . . . 47
3.6
VOP a VO (pravoúhlé) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.7
VOP a VO (libovolný tvar)
3.8
Nástroje a objekty pro kódování pravoúhlých snímků . . . . . . . . . . . . 55
3.9
Jeden a 4 vektory pohybu na jeden makroblok . . . . . . . . . . . . . . . . 57
. . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.10 Vektor pohybu bez hranic . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.11 INTRA predikce DC koeficientů . . . . . . . . . . . . . . . . . . . . . . . . 58
3.12 INTRA predikce AC koeficientů . . . . . . . . . . . . . . . . . . . . . . . . 58
3.13 Struktura video paketu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.14 Příklad RVLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.15 Příklad globální pohybové kompenzace . . . . . . . . . . . . . . . . . . . . 61
3.16 NEWPRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.17 Dynamická změna rozlišení . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
7
3.18 Kodér H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.19 Dekodér H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.20 Skupina proužků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.21 Dělení makrobloků a sub-makrobloků . . . . . . . . . . . . . . . . . . . . . 71
3.22 Interpolace na půlpixelovou přesnost . . . . . . . . . . . . . . . . . . . . . 72
3.23 Interpolace na čtvrt-pixelovou přesnost . . . . . . . . . . . . . . . . . . . . 73
3.24 Interpolace na 1/8-pixelovou přesnost . . . . . . . . . . . . . . . . . . . . . 73
3.25 Predikční módy pro bloky 4x4 . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.26 Predikční módy pro bloky 16x16 . . . . . . . . . . . . . . . . . . . . . . . . 75
3.27 Čtení bloků z makrobloku . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.28 Přepnutí streamu pomocí proužku I . . . . . . . . . . . . . . . . . . . . . . 78
3.29 Přepnutí streamu pomocí proužku SP . . . . . . . . . . . . . . . . . . . . . 79
3.30 Posun ve streamu pomocí proužku SP . . . . . . . . . . . . . . . . . . . . . 79
4.1
Batching – příklad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2
Patching – příklad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3
Hlavička protokolu RTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.4
Typy zátěže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1
Základní systém pro vodoznačení . . . . . . . . . . . . . . . . . . . . . . . 102
5.2
Základní požadavky na vodoznak . . . . . . . . . . . . . . . . . . . . . . . 104
5.3
Obecné schéma systému pro vložení vodoznaku . . . . . . . . . . . . . . . 105
5.4
Obecné schéma systému pro detekci a extrakci vodoznaku
5.5
Základní komunikační model pro zabezpečený přenos . . . . . . . . . . . . 108
5.6
Základní model komunikačního systému pro vodoznačení . . . . . . . . . . 110
5.7
Model pro vložení vodoznaku v transformované oblasti . . . . . . . . . . . 110
5.8
LSB technika — vložení vodoznaku . . . . . . . . . . . . . . . . . . . . . . 115
5.9
LSB technika — extrakce vodoznaku . . . . . . . . . . . . . . . . . . . . . 116
. . . . . . . . . 106
5.10 DWT technika — vložení vodoznaku . . . . . . . . . . . . . . . . . . . . . 117
5.11 DWT technika — extrakce vodoznaku . . . . . . . . . . . . . . . . . . . . 119
5.12 DCT technika — vložení vodoznaku . . . . . . . . . . . . . . . . . . . . . . 120
5.13 DCT technika — extrakce vodoznaku . . . . . . . . . . . . . . . . . . . . . 121
8
FEKT Vysokého učení technického v Brně
SEZNAM TABULEK
2.1
Běžné bitové hloubky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2
Podporované kombinace typu barvy a bitové hloubky formátu PNG . . . . 19
2.3
Kvantizační tabulka pro jasovou složku ze standardu JPEG . . . . . . . . . 29
2.4
Kvantizační tabulka pro barvonosné složky ze standardu . . . . . . . . . . 30
2.5
Tabulka kategorií a přídavných hodnot pro DC koeficienty . . . . . . . . . 32
2.6
Tabulka kódů pro AC koeficienty . . . . . . . . . . . . . . . . . . . . . . . 33
2.7
Možnosti predikce u bezeztrátového módu JPEG
3.1
Profily v MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2
Úrovně v MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3
Profily kódování standardního videa . . . . . . . . . . . . . . . . . . . . . . 52
3.4
Levely profilů založených na Simple profilu . . . . . . . . . . . . . . . . . . 53
4.1
Informace v paketech SDES . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2
Metody používané protokolem RTSP . . . . . . . . . . . . . . . . . . . . . 93
. . . . . . . . . . . . . . 37
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
1
9
ÚVOD
Skripta s názvem Zpracování multimediálních dat pro integrovanou výuku VUT a VŠBTUO jsou volným pokračováním skript Multimédia. Slouží zejména k výuce v předmětu
Multimédia magisterského studijního oboru Telekomunikační a informační technika na
Fakultě elektrotechniky a komunikačních technologií pří Vysokém učení technickém v
Brně.
Najdete zde detailní popis kompresních standardů pro statické obrazy a video, principy
distribuce multimediálního obsahu datovou sítí (streaming, video na vyžádání) a popis
zabezpečení obrazových dat vodoznačením.
10
FEKT Vysokého učení technického v Brně
2
KOMPRESE DIGITÁLNÍHO OBRAZU
2.1
Digitální obraz
Digitální obraz existuje ve dvou variantách:
1. Obraz vyjádřený vektorovou grafikou se skládá z geometrických tvarů, mezi
něž patří body, křivky, přímky a mnohoúhelníky. Obecně platí, že obraz vyjádřený
vektorovou grafikou je složen z křivek, které spojují tzv. kotevní body (Beziérovy
křivky).
Beziérova křivka je popsána čtyřmi body:
• dva krajní body = kotevní body,
• dva kontrolní body = body určující tvar křivky.
Obraz vyjádřený vektorovou grafikou našel své uplatnění v počítačové sazbě, při
tvorbě počítačových animací, ilustrací apod. Mezi nejznámější formáty vektorové
grafiky patří PostScript (.eps, .ps), Portable Document Format (.pdf), Corel Draw
(.cdr).
Výhody:
• Menší paměťová náročnost vzhledem k obrazu vyjádřeném v bitmapové grafice.
• Objekty obrazu lze zpracovávat samostatně.
• Při změně velikosti obrazu nedochází ke ztrátě kvality.
Nevýhody:
• Při větší složitosti objektu je obraz vyjádřený vektorovou grafikou náročnější
na operační paměť a procesor.
• Obraz nelze pořídit fotoaparátem, videokamerou, skenerem ani jiným podobným zařízením.
2. Obraz vyjádřený bitmapovou grafikou je složen z barevných bodů (pixelů,
pelů) uspořádaných do mřížky. Každý pixel je definován svojí polohou a hodnotou
v barevném modelu (RGB, YCbCr, ...). Ke známým formátům bitmapové grafiky
patří Windows Bitmap (.bmp), Portable Network Graphic (.png), Tagged Image File
Format (.tiff), Joint Photographic Experts Group (.jpg, jpeg), Graphics Interchange
Format (.gif).
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
11
Výhody:
• Pořízení bitmapového obrazu je snadné, lze použít fotoaparát, videokamera,
skener apod.
Nevýhody:
• Při zvětšování a zmenšování obrazu dochází ke zhoršení kvality.
• Náročný na operační paměť a procesor v případě vysokého rozlišení.
Dále se budeme zabývat pouze bitmapovou grafikou.
Bitmapový obraz je charakterizován jasem, barevnou hloubkou, rozlišením, kontrastem, dynamickým rozsahem a barevným modelem.
(a) Jas a bitová hloubka obrazu
Jas definuje svítivost pixelu. Černá barva má hodnotu svítivosti obvykle nula,
bílá barva má hodnotu svítivosti definovanou nejvyšším možným číslem (v případě reprezentace 8 bity je to 255). Maximální hodnota jasu udává schopnost
dané reprezentace obrazu rozlišit různé úrovně jasu = bitová hloubka obrazu. Jednotka pro bitovou hloubku obrazu je bpp (Bits per Pixel). Běžně
používané bitové hloubky jsou v tabulce 2.1.
Tabulka 2.1: Běžné bitové hloubky
Bitová hloubka
Maximální úroveň jasu
Doplňkové informace
1 bpp
21
černá, bílá
2 bpp
22
4 odstíny
4 bpp
24
16 odstínů
8 bpp
28
256 odstínů
24 bpp
224
běžně RGB (8b-R,8b-G,8b-B)
32 bpp
232
běžně RGBA (8b-R,8b-G,8b-B, 8b-A)
(b) Rozlišení obrazu
Rozlišení existuje prostorové a jasové:
12
FEKT Vysokého učení technického v Brně
Prostorové rozlišení udává šířku a výšku obrazu, například 640x480 pix,
1280x720 pix apod. Často se také vyjadřuje v jednotce MegaPixel (MP, Mpx).
Megapixel značí jeden milion pixelů. Tato jednotka se používá u digitálních
kamer a fotoaparátů. Jako příklad uvedeme digitální senzor fotoaparátu se
schopností zachytit obraz v prostorovém rozlišení 1280x1024 pix – jeho rozlišovací schopnost v Mpx je 1 310 720 pixelů = 1,31 Mpx.
Jasové rozlišení udává kolik pixelů odpovídá šířce jednoho palce (2,54 cm) –
jednotka DPI (Dots per Inch).
(c) Kontrast a dynamický rozsah
Kontrast digitálního obrazu je spjat s fyziologií lidského zrakového systému.
Kontrast digitálního obrazu kvantifikuje rozdíl nebo podíl jasu mezi nejsvětlejšími a nejtmavšími oblastmi. Podíl hodnot nejvyššího a nejnižšího jasu udává
dynamický rozsah. Vzhledem k tomu, že podíl může kolísat ve značném rozsahu, obvykle se udává jeho dekadický logaritmus.
2.1.1
Barevné modely - barevný obraz
Pro barevné obrazy existuje řada barevných modelů obsahujících komponenty pro popis
barev. Mísením barev jakéhokoli barevného modelu vynikne výsledná barva. Nejčastěji
používané barevné modely jsou ,   ,  ,    ,  . Při kompresích se
využívají zejména modely ,    ,  .
Barevný model 
Barevný model  využívá aditivní míchání barev, konkrétně červené (), zelené
() a modré (). Aditivní míchání znamená, že sečtením jednotlivých barevných složek vznikne barva výsledná. Barevný model  lze vyjádřit jednotkovou krychlí
- viz obr. 2.1. Osy krychle (, , ) představují modré, červené a zelené světlo. Barevný
model  se používá při zobrazování barev na monitorech a různých displejích.
Variantou model  je model , kde je ke třem základním barvám přidán tzv.
alfa kanál označující průhlednost snímku.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
MODRÁ
(0,0,255)
13
AZUROVÁ
(0,255,255)
BÍLÁ
(255,255,255)
St
up
ni
ce
še
dé
FIALOVÁ
(255,0,255)
ČERNÁ
(0,0,0)
ČERVENÁ
(255,0,0)
ZELENÁ
(0,255,0)
ŽLUTÁ
(255,255,0)
Obrázek 2.1: Barevný model 
Barevný model   
Barevný model    je používán ve standardních analogových video formátech PAL
(Phase Alternation Line), NTSC (National Television System Committee) a SECAM
(Sequentiel Couleur Avec Mémoire or Sequential Color with Memory). Černobílé systémy
využívají pouze jasovou složku  , barevné systémy využívají jak jasovou složku  , tak
i barvonosné složky  ,  . Základní převodní vztahy mezi prostorem  a    jsou
následující:
 = 0, 299 + 0, 587 + 0, 114,
 = −0, 147 − 0, 289 + 0, 436 = 0, 492( −  ),
(2.1)
 = 0, 615 − 0, 515 − 0, 100 = 0, 877( −  ),
 =  + 0, 140,
 =  − 0, 395 − 0, 581,
 =  + 2, 032.
(2.2)
14
FEKT Vysokého učení technického v Brně
Vzorkování modelu   
Model lidského zrakového systému HVS (Human Visual System) poukazuje na skutečnost, že lidské oko je méně citlivé na barevné složky než na jasové složky obrazu. Z toho
důvodu je možné barevné složky jistým způsobem potlačit, což lze provést vzorkováním
barvonosných složek. Existují celkem 4 modely vzorkování: 4:4:4, 4:2:2 (   2), 4:2:0
(   12), 4:1:1.
• Model 4:4:4 zachovává všechny složky modelu stejné.
Obrázek 2.2: Model 4:4:4
• Model 4:2:2 zachová jasovou složku v původním formátu, podvzorkuje horizontální
rozlišení barvonosných složek na polovinu.
Obrázek 2.3: Model 4:2:2
• Model 4:2:0 zachová jasovou složku v původním formátu, podvzorkuje horizontální
i vertikální rozlišení barvonosných složek na polovinu.
• Model 4:1:1 zachová jasovou složku v původním formátu, podvzorkuje horizontální
rozlišení barvonosných složek na čtvrtinu.
Při vzorkování dochází ke ztrátě informace!
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
15
Obrázek 2.4: Model 4:2:0
Obrázek 2.5: Model 4:1:1
Barevný model  
Barevný model   je používán ve standardních digitálních video formátech a byl
vyvinut jako část standardu ITU-R BT.601. Vychází z modelu    . Pro počítačové
zpracování SDTV signálu se využívá převodních vztahů
 = 0, 257 + 0, 504 + 0, 098 + 16,
 = −0, 148 − 0, 291 + 0, 439 + 128,
(2.3)
 = 0, 439 − 0, 368 − 0, 071 + 128,
 = 1.164( − 16) + 1, 596( − 128),
 = 1, 164( − 16) − 0, 813( − 128) − 0, 391( − 128),
 = 1, 164( − 16) + 2, 018( − 128).
(2.4)
16
FEKT Vysokého učení technického v Brně
Pro počítačové zpracování HDTV signálu se využívá převodních vztahů
 = 0, 183 + 0, 614 + 0, 062 + 16,
 = −0, 101 − 0, 338 + 0, 439 + 128,
(2.5)
 = 0, 439 − 0, 399 − 0, 040 + 128,
 = 1.164( − 16) + 1, 793( − 128),
 = 1, 164( − 16) − 0, 534( − 128) − 0, 213( − 128),
(2.6)
 = 1, 164( − 16) + 2, 115( − 128).
2.2
Proč komprese?
Nekomprimovaný digitální obraz zabírá příliš mnoho datového prostoru. Uvedeme si příklad digitální barevné fotografie s rozlišením 3872 x 2592 pix (cca 10 MPix). Každý pixel
obrazu je vyjádřen 24 bity (8 bitů R, 8 bitů G, 8 bitů B). Velikost nekomprimovaného
obrazu v bitech lze spočítat pomocí vztahu
 = Š ×  × ,
(2.7)
kde Š představuje šířku obrazu,  představuje výšku obrazu a  je počet bitů vyjadřujících jeden pixel. Po dosazení hodnot z příkladu dostaneme
 = 3872 × 2592 × 24 = 240869376 = 229, 71  = 28, 71 .
2.3
(2.8)
Bezeztrátové kompresní techniky
Bezeztrátové kompresní techniky, jak již z názvu vyplývá, při své činnosti nezpůsobují
ztrátu informace. V případě, že jsou data bezeztrátově komprimována, lze jejich informaci
získat zpět bez jakékoli ztráty. U obrazových kompresních standardů se nejčastěji využívají
následující bezeztrátové kompresní techniky:
• Prediktivní kódování DPCM (Differential pulse-code modulation),
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
17
• Huffmanovo kódování,
• aritmetické kódování,
• slovníkové metody kódování,
• ostatní entropické kodéry.
2.4
Ztrátové kompresní techniky
Ztrátové kompresní techniky způsobují určitou ztrátu informace. Data, která byla komprimována ztrátovou kompresní technikou, již nelze zrekonstruovat zcela přesně. Daná
ztráta je však často vyvážena podstatně vyšším kompresním poměrem, nežli tomu je u
technik bezeztrátové komprese.
Existuje celá řada standardů a kompresních technik využívaných u statických obrazů. K
nejznámějším patří formáty komprese
• PNG,
• WebP,
• JPEG.
2.5
Formát PNG
PNG (Portable Network Graphics) je kompresní standard pro digitální obrazy s podporou
ztrátové i bezeztrátové komprese bitmapových obrazů definovaný v ISO/IEC 15948:2003.
Obecně platí, že standard PNG je podstatně dokonalejší než standard GIF. Oproti GIFu
nabízí podporu 24 bitové barevné hloubky, podporuje osmibitovou průhlednost (tzv. alfa
kanál) a lepší kompresi. Nevýhodou PNG oproti GIFu je praktická nedostupnost jednoduché animace. Pro animaci existují standardy APNG a MNG, které se však zatím
neprosadily. PNG se stejně jako formáty GIF a JPEG používá zejména na Internetu.
2.5.1
Úprava obrazu před kompresí
Před samotnou kompresí PNG je na zdrojový obraz aplikováno několik transformací.
18
FEKT Vysokého učení technického v Brně
Separace alfa kanálu – Alpha Separation
Alfa kanál se může odstranit v případě, kdy všechny složky alfa kanálu mají maximální
hodnotu (255).
Indexování barev
Pokud využívá obraz (24 nebo 32 bitový) v barevné paletě pouze 256 barev nebo méně,
je možné použít tzv. indexování barev (barevnou paletu). Barevná paleta obsahuje kombinace složek RGB – barvy. Každá barva je označena indexem. Jednotlivé barvy v obrazu
poté odkazují na daný index barvy v barevné paletě. Tímto krokem dochází ke značné
úspoře bitového toku, jelikož každý vzorek je reprezentován pouze osmi bity.
Sloučení RGB
Místo indexace se může využít tzv. sloučení RGB (merging). V případě, že jednotlivé
barevné kanály mají stejnou bitovou hloubku a pro každý pixel jsou hodnoty barevných
složek RGB shodné, pak je možné barevné kanály sloučit do jednoho kanálu ve stupních
šedé.
Zhutnění alfa kanálu (Alpha Compaction)
Pokud obraz obsahuje alfa kanál a existuje jedna barva RGB pro kterou platí, že všechny
pixely nesoucí tuto barvu jsou průhledné zatímco ostatní pixely jsou neprůhledné, je
možné alfa kanál vynechat a zapsat pouze informaci o kombinaci RGB která je průhledná.
Změna bitové hloubky (Sample Depth Scaling)
Formát PNG podporuje pouze některé bitové hloubky obrazu. Seznam podporovaných
kombinací zobrazuje tabulka 2.2. Pokud je referenční obraz v jiné bitové hloubce, volí
se nejbližší vyšší bitová hloubka a původní hodnoty jsou lineárně přepočteny do nových
hodnot.
Prokládání pixelů
Komprese PNG umožňuje dvě varianty kódování:
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
Tabulka 2.2: Podporované kombinace typu barvy a bitové hloubky formátu PNG
Typ obrazu
Typ
Podporované
barvy
bitové
Interpretace
hloubky
Stupně šedé
0
1, 2, 4, 8, 16
Každý pixel má hodnotu
stupně šedé
Truecolour
2
8, 16
Každý pixel obsahuje trojici
hodnot RGB
Indexované
3
1, 2, 4, 8
barvy
Každý pixel je zastoupen indexem paletové barvy
Stupně šedé s
4
8, 16
průhledností
Každý pixel má hodnotu
stupně šedé a hodnotu alfa
kanálu
Truecolour
průhledností
s
6
8, 16
Každý pixel obsahuje trojici
hodnot RGB a hodnotu alfa
kanálu
19
20
FEKT Vysokého učení technického v Brně
• Bez prokládání – pixely jsou z obrazu vyčítány nejprve po řádcích zleva doprava,
shora dolů. Pokud mají pixely obrazu 16bitovou hloubku na kanál, jsou zaznamenány 2 byty v pořadí nejprve MSB, pak LSB.
• S prokládáním (metoda Adam7) – pixely obrazu jsou vyčítány v sedmi průchodech.
První průchod vytvoří hrubý náhled na obraz a každý další jej zjemňuje. Přesný
sled pixelů v oblasti 8 × 8 pixelů je naznačen na obrázku 2.6. Tímto způsobem lze
během přenosu již s 1/64 dat (po kompletním přenosu prvního průchodu prokládání)
zobrazit hrubý náhled obrázku.
Obrázek 2.6: Prokládání pixelů metodou Adam7
Filtrace
Před kompresí se provádí filtrace, jejíž snahou je připravit obraz tak, aby výsledná komprese dosahovala co nejlepších výsledků. Formát PNG specifikuje celkem 5 různých filtrů.
Na každý řádek redukovaného obrazu (obraz vzniklý průchodem prokládání řádků) je
možné použít rozdílné filtry. Doporučuje se však použití pouze jednoho filtru. Filtry pracují přímo s byty, nikoliv pixely obrázku. Označení pozic bytů použitých při filtrování je
zobrazeno na obrázku 2.7. Pokud je byte  na pozici prvního pixelu skenovaného řádku,
pak byty  a  mají nulovou hodnotu. Stejně tak, pokud se byte  nachází v prvním
skenovaném řádku, potom byty  a  jsou nulové.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
21
Obrázek 2.7: Poloha bytů použitých při filtrování
Typy filtrů jsou:
1. Filtr typu 0 – None
Žádný filtr, byty jsou ze vstupu přesně zkopírovány na výstup a nedochází k žádné
změně. Pro některé obrazy je tento typ filtru nejvýhodnější a je s ním dosaženo
největší komprese.
2. Filtr typu 1 – Sub
Filtr typu 1 od aktuálního bytu odečítá byte nalevo od něj, tedy  =  − . Při
rekonstrukci obrazu se rozdíl nahradí součtem, tedy  =  + .
3. Filtr typu 2 – Up
Filtr typu 2 od aktuálního bytu odečítá byte nad ním, tedy  =  − . Při rekonstrukci obrazu se rozdíl nahradí součtem, tedy  =  + .
4. Filtr typu 3 – Average
Filtr typu 3 kombinuje dva předchozí filtry a odečítá průměrnou hodnotu bytů
nalevo a nad aktuálním bytem, tedy  =  − ⌊( − )/2⌋ a zaokrouhluje na celé
číslo směrem dolů. Při rekonstrukci obrazu se rozdíl nahradí součtem, tedy  =
 + ⌊( − )/2⌋.
5. Filtr typu 4 – Paethův
Poslední z řady filtrů je nejsložitější, porovnává absolutní hodnoty získané dle rovnic
 =  +  − ,
 = | − |,
 = | − |,
 = | − |
22
FEKT Vysokého učení technického v Brně
a volí z ,  a  tu nejnižší. Ta je následně odečtena od původního bytu. Při
rekonstrukci obrazu se rozdíl nahradí součtem.
2.5.2
Komprese
Ke kompresi se používá algoritmus Deflate, pro dekompresi Inflate. Při kompresi se používá slovníkové kódování LZ77 společně s Huffmanovým kódováním. Komprese LZ77
hledá v komprimovaných blocích dat duplikovanou sérii bytů. Jakmile nějakou nalezne,
je nahrazena značkou obsahující délku série a vzdáleností k předchozí shodě. Maximální
možná vzdálenost shodných sérií je 32768 bytů. Následuje Huffmanovo kódování, které
dále snižuje počet bytů. Výsledný datový tok je uložen ve formátu .
Rozdělení na části - Chunking
Data formátu PNG jsou uchována v souboru rozděleném do částí – chunků, kterým předchází hlavička. Hlavička slouží k identifikaci formátu a detekci běžných chyb. Skládá se z
dekadických hodnot: 137 80 78 71 13 10 26 10. První byte má v MSB hodnotu 1 a slouží
k detekci chyb. Následující tři byty obsahují ASCII znaky PNG, dále symboly CR, LF
(Carriage Return, Line Feed), dále speciální znak pro ukončení textového výpisu a opět
znak LF.
Každý chunk se skládá ze čtyř částí:
1. První část nese celkovou délku datové části chunku.
2. Druhá část nese informaci o typu chunku, která je identifikována přesně čtyřmi
znaky anglické abecedy v ASCII formátu.
3. Třetí částí nese užitečná data.
4. Čtvrtá část nese kód CRC. Ten je vypočítán pomocí polynomu 32 + 26 + 23 +
22 + 16 + 12 + 11 + 10 + 8 + 7 + 5 + 4 + 2 +  + 1.
Typy chunků definované v PNG jsou [2]:
• IHDR – Image header
Hlavička obrázku, je odlišná od hlavičky souboru. Obsahuje základní informace o obrázku jako jsou rozměry obrázku, bitová hloubka, typ barvy, metoda komprese, metoda filtrace, prokládání. V současném standardu musí být metoda filtrace i metoda
komprimace nastavena na nulu a musí být umístěna ihned za hlavičkou souboru.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
23
• PLTE – Palette
Pokud obrázek obsahuje paletu barev, je uložena v tomto chunku.
• IDAT – Image data
Samotný obrázek je uložen zde, soubor musí obsahovat minimálně jeden IDAT
chunk.
• IEND – Image Trailer
Označuje konec PNG souboru.
• tRNS – Transparency
Tento chunk obsahuje údaje o průhlednosti obrázku. V případě paletového obrázku
obsahuje tabulku s hodnotami alfa kanálu pro dané indexy palety.
• cHRM – Primary chromaticities and white point
Obsahuje informace o pozicích primárních složek RGB a referenčního bílého bodu
v obrázku.
• gAMA – Image gamma
Obsahuje poměr mezi vzorky obrázku a výstupního jasu.
• iCCP – Embedded ICC profile
Zde je obsažen barevný profil ICC, pokud je chunk v souboru obsažen, musí mít
alespoň jeden profil.
• sBIT – Significant bits
Slouží pro obnovu plného rozsahu bitové hloubky, pokud došlo k její změně.
• sRGB – Standard RGB colour space
Udává použitý sRGB barevný profil.
• tEXt, iTXt a zTXt – Textual information
Umožňuje zapsat do souboru různé textové informace.
• bKGD – Background colour
Udává základní barvu pozadí obrázku.
• hIST – Image histogram
Histogram obrázku, je dostupný pouze pro indexované obrázky.
• pHYs – Physical pixel dimensions
Udává fyzické rozměry pixelů.
• sPLT – Suggested palette
24
FEKT Vysokého učení technického v Brně
Obsahuje informace o vhodných (doporučených) paletách pro zobrazení obrázku.
• tIME – Image last-modification time
Časový údaj poslední změny obrazových dat.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
2.6
25
Formát WebP
WebP je obrazový kompresní formát, který poskytuje bezeztrátovou i ztrátovou kompresi
obrazu. Bezeztrátová komprese poskytuje přibližně 26 % úsporu v porovnání s velikostí
obrazu komprimovaném v PNG. Ztrátová komprese poskytuje přibližně o 25-34 % menší
velikost ve srovnání s obrázky JPEG s ekvivalentním indexem SSIM [2]. Formát WebP
podporuje průhlednost (alfa kanál) a při jeho použití dosahuje podstatně lepších kompresí
než u PNG.
Pro ukládání souborů formátu WebP byl zvolen formát RIFF (Resource Interchange File
Format) a podobně jako u formátu PNG, rozděluje data do chunků. Prvním elementem
v souboru je hlavička, ve které je nejprve uložena identifikace dokumentu RIFF v ASCII
formátu. Dále následuje 32bitové číslo udávající celkovou velikost souboru, poslední částí
je identifikace formátu WebP opět v ASCII formátu. Dále již následují jednotlivé chunky
identifikované znaky VP8 (kompresní video formát od společnosti Google), respektive
VP8L v případě bezeztrátové komprese.
2.6.1
Ztrátová komprese
Základem ztrátové komprese formátu WebP je predikce bloků. Při kompresi je tedy obraz rozdělen na menší části – makrobloky. V každém makrobloku je hledána nadbytečná
barevná a pohybová informace. Tato informace nese v podstatě změnu (rozdíl) současně
kódovaného makrobloku od předchozích makrobloků. Na získaný rozdíl je následně aplikována diskrétní kosinová transformace, která má za následek, že velké množství koeficientů,
hlavně ve vyšších frekvencích, je blízkých nule. Data jsou následně kvantována a entropicky kódována.
Predikce uvnitř snímku
Predikce bloků pracuje se třemi druhy makrobloků:
1. makroblok jasové složky velikosti 4 x 4 pixelů,
2. makroblok jasové složky velikosti 16 x 16 pixelů,
3. makroblok barvonosné složky velikosti 8 x 8 pixelů.
26
FEKT Vysokého učení technického v Brně
Barvonosné složky jsou podvzorkovány stejně jako u formátu JPEG, jedinou možností je
model 4:2:0. Velikost bloků s jasovou složkou je volena na základě množství detailů ve
scéně, na detailní části se použijí makrobloky o velikosti 4 × 4 pixelů.
Samotná predikce nabízí 4 režimy:
1. H_PRED (Horizontální predikce)
Každý sloupec bloku naplní sloupcem, který sousedí s blokem nalevo.
2. V_PRED (Vertikální predikce)
Každý řádek bloku naplní řádkem, který se nachází nad blokem.
3. DC_PRED (DC predikce)
Celý blok zaplní jednou barvou, kterou získá na základě průměru sloupce sousedícího
nalevo a řádku nad blokem.
4. TM_PRED (TrueMotion predikce)
Používá predikci pohybu na základě řádku nad blokem, sloupce vlevo a pixelu vlevo
nad blokem.
U makrobloků o velikosti 4×4 je možné H_PRED i V_PRED rozšířit do dalších 6 směrů.
Vytvořený predikční snímek je odečten od skutečné části a je uložen pouze rozdíl, který
podléhá dalším procesům.
Transformace 2D-DCT/2D-WHT
Na jednotlivé rozdílové bloky je většinou aplikována diskrétní kosinová transformace, výjimečně se použije Walsh–Hadamardova transformace. Obě transformace jsou prováděny
s pevnou desetinou čárkou, aby byla minimalizována ztráta informací.
Adaptivní kvantizace
Pro zlepšení výsledné kvality obrazu, umožňuje formát WebP použít adaptivní kvantizaci.
Obraz je rozdělen do vizuálně podobných segmentů. Každý segment může být komprimován s odlišnými parametry. Povoleny jsou maximálně 4 segmenty v obraze.
Entropické kódování
Formát WebP používá aritmetické kódování.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
2.6.2
27
Bezeztrátové kódování
Základem bezeztrátového kódování jsou transformace obrazu s použitím různých technik.
Zakódovány jsou pak zejména parametry těchto technik s transformovanými obrazovými
daty.
Mezi techniky používané u WebP patří:
• Transformace s prostorovou predikcí (Spatial prediction transform)
Transformace s prostorovou predikcí využívá faktu, že sousedící pixely spolu často
korelují. Hodnota aktuálního pixelu je predikovaná na základě již zakódovaných
pixelů a je zakódován pouze rozdíl mezi aktuálním a predikovaným pixelem. Obraz je
rozdělen do několika regionů a v rámci regionu lze použít pouze jeden druh predikce.
• Transformace barevného prostoru (Color space transform)
Transformace barevného prostoru dekoreluje RGB hodnoty každého pixelu. Zelená
složka je ponechána v původní podobě, červená je transformována na základě zelené
a modrá je transformována na základě zelené a pak červené.
• Transformace odečtením zelené složky (Subtract green transform) Tato transformace odečte hodnotu zelené složky od červené i modré složky.
• Transformace indexací barev (Color Indexing Transform) Technika je naprosto
shodná s indexováním u formátu PNG. Pokud obraz používá méně než 256 barev,
je vytvořena paleta a vzorek odkazuje na index v paletě.
Po aplikaci transformací dochází k samotnému kódování, ke kterému se používá varianty
slovníkového kódování LZ77 a Huffmanův kód [2].
28
FEKT Vysokého učení technického v Brně
2.7
Formát JPEG
Kompresní standard JPEG (Joint Photographic Experts Group) lze použít pro šedotónové i
barevné obrazy a je využíván současnými zařízeními, mezi něž patří například fotoaparáty,
PC, tablety, mobilní telefony a jiné.
Standard JPEG definuje 4 módy kompresí:
1. Sekvenční kódování – Obraz se kóduje sekvenčně řádek po řádku (ztrátové kódování ).
2. Postupné kódování – Obraz se kóduje ve více iteracích (ztrátové kódování ).
3. Bezeztrátové kódování – Obraz se kóduje bezeztrátově (bezeztrátové kódování ).
4. Hierarchické kódování – Rozlišovací schopnosti obrazu mohou být změněny bez
dekódování celého obrazu (ztrátové kódování ).
JPEG při kompresi nerozlišuje jednotlivé barevné složky, pracuje s každou stejně. Jeho
vstupem je matice čísel a výstupem je taktéž matice čísel.
2.7.1
Sekvenční kódování
Vstupem sekvenčního kodéru je přiveden digitální obraz v barevném modelu RGB. Obraz
je transformován do barevného modelu YCbCr. Následuje podvzorkování barvonosných
složek – může být použit model 4:4:4 (bez podvzorkování), 4:2:2 nebo 4:2:0. Každá matice
se rozdělí na bloky o velikosti 8x8 pixelů. Každý blok je převeden z prostorové oblasti do
oblasti frekvenční pomocí 2D-DCT.
U transformovaného bloku platí, že v levém horním rohu je koeficient představující stejnosměrnou složku (DC koeficient), ostatní koeficienty představují střídavé složky (AC
koeficienty).
Jednotlivé koeficienty v transformovaných blocích ve frekvenční oblasti jsou podrobeny
kvantizaci. Při kvantizaci je každý koeficient z frekvenční matice 8x8 kvantován do určitého počtu kvantizačních hladin. Počet kvantizačních hladin není ve standardu JPEG
definován a je na každé implementaci, jaké hodnoty budou použity. Na obrázku 2.3 a 2.4 [1]
jsou uvedeny doporučené kvantizační tabulky ze kterých je patrné, že složky se vzrůstající
frekvencí jsou kódovány do menšího počtu kvantovacích hladin. Odlišnosti kvantovacích
tabulek pro jasové a barvonosné bloky jsou zavedeny z důvodu citlivostí lidského oka (na
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
29
jas je více citlivé než na barvu). Kvantování každého prvku probíhá dle vzorce
 =

,

(2.9)
kde  je hodnota frekvenčního koeficientu po kvantizaci,  je hodnota frekvenčního
koeficientu před kvantizací a  je kvantizační krok získaný z kvantizační tabulky 2.3
pro jasovou složku nebo z kvantizační tabulky 2.4 pro barvonosnou složku.
Tabulka 2.3: Kvantizační tabulka pro jasovou složku ze standardu JPEG
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
14
17
22
29
51
87
80
62
18
22
37
56
68
109
103
77
24
35
55
64
81
104
113
92
49
64
78
87
103
121
120
101
72
92
95
98
112
100
103
99
Při kompresi je jako jeden z hlavních parametrů nastavována kvalita výstupního snímku.
Ta může nabývat hodnot  = 1, 2, ..., 100, kde  je kvalitativní faktor. Podle faktoru 
jsou upraveny kvantovací tabulky. Hodnota 1 znamená největší kompresi (nejméně kvalitní
výstupní obraz), hodnota 100 znamená nejmenší kompresi (nejjakostnější výstupní obraz).
Kvantizační tabulka je vždy definovaná pouze pro hodnotu kvalitativního faktoru  = 50.
Pro přesné nastavení kvality a změnu kvantovací tabulky je definován vztah
 =  ,
kde  =
50

(2.10)
2
v případě, že platí 1 ≤  ≤ 50,  = 2 − 100
v případě, že platí 50 ≤  ≤ 99. V
případě, že  = 100, jsou hodnoty kvantizačních tabulkách rovny 1.
Po kvantizaci se zpracovávají zvlášť stejnosměrná složka DC a střídavé koeficienty AC.
30
FEKT Vysokého učení technického v Brně
Tabulka 2.4: Kvantizační tabulka pro barvonosné složky ze standardu
17
18
24
47
99
99
99
99
18
21
26
66
99
99
99
99
24
26
56
99
99
99
99
99
47
66
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
Kódování DC složky bloku 8x8
Kódovaná hodnota DC koeficientu je stanovena jako rozdíl DC koeficientu současného a
předešlého bloku. Pro výpočet rozdílu je použit vzorec
  = 00 −  ,
(2.11)
kde 00 je hodnota aktuálně kódovaného DC koeficientu a   je hodnota DC koeficientu předchozího bloku. Výsledek je entropicky kódován.
Kódování AC složek bloku 8x8
Střídavé koeficienty AC jsou vyčítány v pořadí cik-cak (obrázek 2.8) – se vzrůstající
frekvencí. Koeficienty po cik-cak čtení jsou seřazeny vzestupně od nejnižší frekvence. U
klasických obrazů bývají koeficienty vyšších frekvencí nulové. Po cik-cak čtení následuje
entropické kódování.
Entropické kódování
Entropické kódování se liší pro DC a AC koeficienty.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
31
Obrázek 2.8: Vyčítání koeficientů cik–cak
Entropické kódování pro DC koeficienty
Entropické kódování DC koeficientů probíhá následovně:
1. Z tabulky 2.5 se vybere ten řádek, do kterého spadá hodnota   .
2. První část kódu vyjadřujícího hodnotu   je dána Huffmanovým kódem.
3. Druhá část kódu se dopočítává dle přídavných bitů.
Jako příklad uvedeme kódování hodnoty   = 13. V tabulce 2.5 tuto hodnotu najdeme
na řádku 5, patří do rozsahu (−15, ...8, 8, ..., 15). První část kódu je tedy vyjádřena jako
101. Druhá část kódu se dopočítává dle pozice hodnoty v daném intervalu. Interval 8, ..., 15
představuje hodnoty 1000, ...1111. Pro hodnotu 13 je to tedy sekvence 1101.
Entropické kódování pro AC koeficienty
Spousta AC koeficientů má nulovou hodnotu. Kódové slovo pro AC koeficient tedy představuje počet nul předcházejících danému koeficientu a hodnotu koeficientu. Tabulky pro
AC koeficienty jsou velmi obsáhlé a jsou součástí standardu. Každý si je však může upravit
dle své potřeby. Jako příklad zde uvádíme pouze část tabulky (viz tabulka 2.6).
V tabulce na pozici (Run, Size) je uvedeno jako Run počet předcházejících nul a jako Size
kategorie z tabulky 2.5, do které daný koeficient spadá. Speciální koeficienty ke kódování
jsou EOB a ZRL.
EOB je přenášen po posledním nenulovém koeficientu v bloku.
32
FEKT Vysokého učení technického v Brně
Tabulka 2.5: Tabulka kategorií a přídavných hodnot pro DC koeficienty
DIFF
Velikost
Huffmanův kód
Přídavné bity
0
0
00
-
-1,1
1
010
0,1
-3,-2,2,3
2
001
00,01,10,11
-7,. . . ,-4,4,. . . ,7
3
100
000,. . . ,011,100,. . . 111
-15,. . . -8,8,. . . ,15
4
101
0000,. . . ,0111,1000,. . . ,1111
...
...
...
...
-1023,. . . -512,512,. . . ,1023
10
1111 1110
00 0000 0000,. . . ,11 1111 1111
-2047,. . . -1024,1024,. . . 2047
11
1 1111 1110
000 0000 0000,. . . ,111 1111 1111
ZRL je přenášen tehdy, pokud počet nul před určitým koeficientem je > 15 a představuje
16 nul, které mohou být součástí další série nul. Pokud tedy máme například 20 nul
následovaných koeficientem -5 získáme (ZRL) (4,3) 010.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
Tabulka 2.6: Tabulka kódů pro AC koeficienty
(Run, Size)
Kódové slovo
(Run,Size)
Kódové slovo
(0,1)
00
(0,6)
1111000
(0,2)
01
(1,3)
1111001
(0,3)
100
(5,1)
1111010
(EOB)
1010
(6,1)
1111011
(0,4)
1011
(0,7)
11111000
(1,1)
1100
(2,2)
11111001
(0,5)
11010
(7,1)
11111010
(1,2)
11011
(1,4)
111110110
(2,1)
11100
...
...
(3,1)
111010
(ZRL)
11111111001
(4,1)
111011
...
...
33
34
FEKT Vysokého učení technického v Brně
Příklad entropického kódování
Mějme blok pro kódování s hodnotami
⎞
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
−13 −3 −2 0 0 0 1 0 ⎟
⎟
6
0
0
0 0 0 0 0
0
0
0
0 0 0 0 0
−1
0
0
0 0 0 0 0
0
0
0
0 0 0 0 0
0
0
0
0 0 0 0 0
0
0
0
0 0 0 0 0
0
0
0
0 0 0 0 0
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
Nejprve se kóduje DC koeficient s hodnotou 13 jako:
• (DIFF) -13 : 101 0010
Následuje kódování AC koeficientů:
• (0,2) -3 : 01 00
• (0,3) 6 : 100 110
• (3,1) -1 : 11111001 10
• (ZRL) (1,1) : 111010 0 11111111001 1100 1
• (EOB) : 1010
Výstup z kodéru
Komprimovaný bitový tok obsahuje informace o jednotlivých blocích obrazu, použité
kvantovací a Huffmanovy tabulky.
2.7.2
Dekodér
Dekodér pracuje inverzně ke kodéru.
Blokové achéma kodéru i dekodéru je na obrázku 2.9.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
35
RGB
YCbCr
Kvantizační
tabulky
4:2:0
Bloky
8x8
2D-DCT
Kvantizace
Huffmanovy
tabulky
Čtení
cik-cak
C(0)
.
.
.
DPCM
RLE
Huffmanovo
/aritmetické/
kódování
DATA
C(63)
Přenosový kanál
Bloky
8x8
Inverzní
2D-DCT
Inverzní
kvantizace
C(0)
.
.
.
IDPCM
IRLE
Huffmanovo
/aritmetické/
dekódování
DATA
C(63)
4:4:4
YCbCr
Kvantizační
tabulky
Huffmanovy
tabulky
RGB
Obrázek 2.9: Kodér a dekodér standardu JPEG
2.7.3
Progresivní kódování založené na DCT
Princip kódování je podobný sekvenčním módu, data jsou kódována ve více průchodech.
Výsledek při dekódování je v první fázi méně kvalitní obraz, který je postupně vylepšován
(známe z mobilních telefonů či digitálních fotoaparátů).
Existují dva způsoby (obrázek 2.10), jakými mohou být koeficienty v jednotlivých průchodech vybírány:
• Spektrální selekce – Při použití metody spektrální selekce jsou transformované
koeficienty každého bloku nejprve přeuspořádány ve směru cik–cak a následně děleny
na jednotlivá frekvenční pásma. Jednotlivá pásma jsou definována v hlavičce. Pásmo
s DC koeficientem je kódováno jako první a je následované ostatními pásmy.
36
FEKT Vysokého učení technického v Brně
• Postupná aproximace – Při použití metody postupné aproximace jsou transformované koeficienty nejprve přeuspořádány ve směru cik–cak a následně rozděleny
do bitových rovin. DC koeficienty jsou kódovány s plnou přesností, AC koeficienty
jsou kódovány postupně (od MSB po LSB).
obraz
8
Přeuspořádání
bloků.
8
2D-DCT
0
1
2
SPEKTRÁLNÍ
SELEKCE
62
63
7
MSB
POSTUPNÁ
APROXIMACE
0
LSB
1.
průchod
1.
průchod
0
0
1
2
2.
průchod
2.
průchod
62
63
1
2
7654
MSB
0
1
2
3.
průchod
61
62
63
3.
průchod
62
63
Obrázek 2.10: Spektrální selekce a postupná aproximace
2.7.4
Bezeztrátové kódování
Bezeztrátová metoda nevyužívá 2D-DCT a je založená na kompresi v prostorové oblasti.
Vychází z metody kódování stejnosměrných koeficientů v sekvenčním módu. Každý pixel
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
37
 (obrázek 2.11) je predikčně kódován jednou z možností uvedených v tabulce 2.7.
Na obrázku 2.11 je kódovaný pixel značen písmenem  a tři sousední pixely značeny
jako , , . Predikovaná hodnota  je získána ze tří sousedních pixelů jedním ze sedmi
způsobů z tabulky 2.7.
c
b
a
x
Obrázek 2.11: Predikce u bezeztrátového módu
Tabulka 2.7: Možnosti predikce u bezeztrátového módu JPEG
Hodnota
Predikce
0
bez predikce
1
 = 
2
 = 
3
 = 
4
 =  +  + 
5
 =  +
(︁
−
2
6
 =  +
(︁
−
2
7
 =
(︁
−
2
)︁
)︁2
)︁2
38
2.7.5
FEKT Vysokého učení technického v Brně
Hierarchické kódování
Hierarchický mód (obrázek 2.12) umožňuje postupné kódování podobně jako progresivní
mód, ale nabízí více funkcí hlavně pro aplikace vyžadující více možných rozlišení. V hierarchickém módu je vstupní obraz nejprve rozložený na sekvenci snímků s různým rozlišením. Každý snímek je získaný podvzorkováním původního. První snímek (s nejnižším
rozlišením) je kódován jako nerozdílový snímek. Následující snímky jsou kódovány jako
rozdílové k předchozímu. První snímek může být zakódovaný sekvenční metodou, spektrální selekcí, progresivním kódováním nebo bezeztrátovou metodou s Huffmanovým či
aritmetickým kódováním.
Obrázek 2.12: Hierarchický mód kódování
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
3
39
KOMPRESE DIGITÁLNÍHO VIDEA
3.1
Digitální video – formáty, kvalita
Digitální video je definováno jako série po sobě jdoucích snímků, které jsou zobrazovány s
určitou periodou. Navíc, oproti digitálním statickým obrazům, jsou definovány parametry
snímková frekvence a prokládání.
3.1.1
Snímková frekvence
Snímková frekvence udává počet snímků za jednotku času (obvykle sekundu).
1. Snímková frekvence do 10 snímků za sekundu – využití při velmi nízkých přenosových rychlostí, jakýkoli pohyb není přirozený.
2. Snímková frekvence mezi 10 a 20 snímky za sekundu – využití při nízkých přenosových rychlostech, rychlý pohyb ve scéně není přirozený.
3. Snímková frekvence 25 nebo 30 snímků za sekundu – využití pro standardní televizní
vysílání – pohyb je přirozený při použití prokládání.
4. Snímková frekvence 50 nebo 60 snímků za sekundu – velmi vysoké bitové rychlosti,
pohyb je přirozený.
3.1.2
Prokládání
Prokládání bylo zavedeno z důvodu plynulosti pohybu ve videu při snímkových frekvencích 25 nebo 30 snímků za sekundu. Využilo se nedokonalosti lidského oka zachytit malé
rychlé změny v obraze. Při prokládání je snímek rozdělen na dvě pole (půlsnímky), jeden půlsnímek obsahuje pouze sudé řádky snímku, druhý půlsnímek obsahuje pouze liché
řádky pole. Tímto vznikne z 25 (30)) snímků 50 (60) půlsnímků v jedné sekundě. Při
těchto rychlostech lidské oko nedokáže postřehnout rozdíl, vnímá video jako plynulé.
Video v počítači či záznamových zařízeních je uloženo po celých snímcích, rozdělení na
sudý a lichý půlsnímek dochází až při jeho přehrávání. Názvosloví sudý/lichý půlsnímek
(pole) má svůj ekvivalent – horní/spodní půlsnímek (pole).
Digitální video se v současné době vyskytuje téměř na každém kroku. Uživatelé požadují
stále vyšší kvalitu přehrávaného videa, což má za následek stále se zvyšující potřebný
40
FEKT Vysokého učení technického v Brně
Čas (t)
sudý půlsnímek
(1 snímek)
lichý půlsnímek
(1 snímek)
sudý půlsnímek
(2 snímek)
lichý půlsnímek
(2 snímek)
Obrázek 3.1: Prokládání
bitový tok pro distribuci takového obsahu. Pro představu jedna sekunda nekomprimovaného video signálu standardního televizního formátu (720x576 pixelů) zabere cca 32 MB,
film o délce 90 minut tedy potřebuje cca 170 GB prostoru. Z těchto důvodů je potřeba
velikost digitálního videa redukovat, k čemuž se používají různé kompresní metody.
Kompresní metody se neustále vyvíjí a zdokonalují. V současné době existuje celá řada
metod, z nichž některé jsou standardizované. K těm patří asi nejrozšířenější rodina protokolů MPEG zaštiťující standardy MPEG-1, MPEG-2, MPEG-4, MPEG-4 AVC, H.265
HEVC. Dále existuje celá řada metod, které jsou vyvinuty konkrétními firmami jako je
Microsoft, Google, Apple, Adobe apod.
Komprese MPEG je ztrátová, což znamená, že dekódovaná data nejsou identická s originálními. Při kódování se využívá jak prostorová, tak i s časová redundance. Časová redundance je redukovaná využitím podobnosti sousedních snímků. Současný snímek může
být predikován z předchozího nebo následujícího snímku (predikce = vytvoření nového co
nejpodobnějšího snímku z jiného snímku), který byl již kódován. Při použití predikce je
poté kódován pouze rozdíl mezi predikovaným a skutečným snímkem = chyba predikce.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
3.2
41
Formát MPEG-1
Standard pro kompresi videa MPEG-1 (ISO/IEC 11172, rok 1992) byl navržen pro ukládání videosekvencí na digitální CD médium v kvalitě srovnatelné s kvalitou videa uložených na analogových VHS kazetách (Video Home System). Přenosová rychlost komprimovaného videa je přibližně 1,4 Mb/s.
Kompresní standard MPEG-1 byl vyvinut s ohledem na již existující standard JPEG.
Parametry vstupního obrazu je možné flexibilně měnit (prostorová rozlišovací schopnost,
počet snímků za sekundu, apod.). Typickým obrazovým formátem pro MPEG-1 video v
rozlišení CIF.
Limitní parametry videa dle standardu MPEG-1 jsou:
• Počet obrazových bodů v řádku – maximálně 720.
• Počet obrazových bodů v sloupci – maximálně 576.
• Snímková frekvence – maximálně 30 snímků/s.
• Bitová rychlost – maximálně 1,856 Mb/s.
Technika kódování a dekódování dle MPEG-1 se stala se základním stavebním kamenem
pro ostatní standardy, celková koncepce se z velké části využívá i v současně nejmodernějších standardech.
Hierarchie a terminologie (obrázek 3.2)
1. Nejvyšší definovanou úrovní v hierarchii MPEG-1 je sekvence snímků určité délky
(videoklip). Ta se skládá z částí nazývaných skupiny snímků GOP (Group of Pictures).
2. Skupina snímků GOP je série jednoho nebo více snímků. Typická sekvence u MPEG1 se skládá z opakujících se struktur GOP. GOP může obsahovat 3 typy snímků:
• Snímek I je kódovaný bez jakékoli reference na předchozí nebo budoucí snímek. Snímky I tvoří tzv. přístupové body kódovaného videa pro dekodér.
Snímky jsou kódovány obdobným způsobem jako snímky kódované standardem JPEG.
• Snímek P je prediktivně kódován z předchozího referenčního I nebo P snímku.
Sám může být použit jako referenční pro kódování následujícího snímku.
42
FEKT Vysokého učení technického v Brně
GOP1
I
B
GOP2
B
P
GOP3
B
B
P
Cb
GOP4
B
B
Cr
...
P
B
sekvence
B
GOP
snímek
Y
slice
makroblok
blok
Obrázek 3.2: Hierarchie MPEG-1
• Snímek B je obousměrně predikovaný. K predikci může využít předchozí,
následující nebo oba snímky dohromady. To zvyšuje efektivitu pohybové kompenzace. B snímky však nikdy nemohou být použity jako referenční. Důsledky
použití B snímků jsou:
(a) Vzhledem k tomu, že B snímek není užívaný jako referenční, může být
komprese provedena s nejvyšší možnou účinností bez jakýchkoliv dalších
vedlejších účinků.
(b) Při přenosu videa datovou sítí mohou být, např. při náhlém přetečení bufferu, snímky B vypuštěny bez jakýchkoliv následků na dekódování ostatních snímků.
• Snímek D kódovaný intra-frame, kóduje se však pouze DC koeficient. D
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
43
snímky nemají v současnosti uplatnění.
3. Dalším stupněm hierarchie je snímek.
4. Každý snímek se skládá z proužků (slice), který obsahuje libovolný počet makrobloků kódovaných bez jakýchkoliv odkazů na makrobloky v jiném proužku. Maximální velikost proužku je omezena velikostí jednoho snímku.
5. Makroblok obsahuje veškeré informace o pravoúhlé oblasti s velikostí 16x16 pixelů.
6. Makroblok se dále dělí na bloky o velikosti 8x8 pixelů.
7. Nejmenší jednotkou v hierarchii MPEG-1 je pixel.
Skupina snímků GOP
Typická struktura GOP u standardu MPEG-1 je na obrázku 3.3. Skládá se z kombinace
snímků I, P a B. Může se však skládat pouze ze snímků I nebo například z kombinace
snímků I a P.
GOP
I
B
B
P
B
B
P
B
B
P
B
B
I
1
2
3
4
5
6
7
8
9
10
11
12
13
6
10
8
9
Pořadí přehrávání/snímání
1
4
2
3
7
5
13
11
12
Pořadí kódování
Obrázek 3.3: Skupina snímků GOP
Každá skupina snímků GOP začíná snímkem I, z čehož plyne, že není potřebná žádná
předchozí reference k dekódování. Po snímku I může následovat jeden nebo více snímků
B nebo P. První snímek P v GOP je kódován ze snímku I, pro následné snímky P v
GOP je referenční předchozí snímek P. Z toho plyne nepříjemná vlastnost. Pokud nastane
chyba v některém snímku P, potom se bude šířit dále až nakonec GOP. Pro snímky B
je referenční předchozí I nebo P snímek – dopředná predikce, nebo následující I nebo P
snímek – zpětná predikce, nebo oba – obousměrná predikce. Snímek B nikdy nemůže být
referenčním. V GOP se vyskytuje vždy mezi snímky I, P nebo I, I, nebo P, P.
44
FEKT Vysokého učení technického v Brně
Skladba GOP není standardem definovaná, může se proto skládat z libovolně uspořádaných snímků zmíněných typů. GOP na obrázku 3.3 je označovaná jako regulérní vzhledem
ke stejným vzdálenostem jednotlivých skupin snímků v celém GOP. Délka GOP je dána
jako vzdáleností dvou po sobě jdoucích snímků I a je reprezentovaná parametrem  . U
regulérních GOP je vzdálenost mezi I a P snímky značena  . GOP může obsahovat libovolný počet snímků, alespoň jeden musí být I. Aplikace vyžadující náhodný přístup,
rychlé převíjení vpřed i vzad, by měly využívat kratší GOP. Pro většinu aplikací u formátu
MPEG-1 má  = 12 a  = 3. Neregulérní GOP nejsou běžně užívány.
Pořadí kódování snímků se liší od pořadí zobrazených snímků. Na obrázku 3.3 jsou snímky
B (2 a 3) kódovány po snímku 1(I) a 4(P). Pořadí pro zobrazení je však 1, 2, 3,... Pořadí
pro kódování je 1, 3, 4, 2, ... Díky tomuto přeuspořádání se zvětšuje zpoždění kodéru.
Toto zpoždění je dále navýšeno zpožděním dekodéru.
Kódování makrobloků
Standard MPEG-1 při kódování používá barevný prostor YCbCr se vzorkováním 4:2:0.
Obraz je rozdělen na makrobloky o velikosti 16x16 pixelů. Po vzorkování zahrnuje jeden
makroblok 4 jasové bloky Y o rozměrech 8x8 pixelů a jeden blok o rozměrech 8x8 pixelů
od každé barvonosné složky Cb a Cr. Existují 2 možnosti kódování makrobloků:
1. Kódování uvnitř makrobloku (INTRA kódování) probíhá téměř shodně s
JPEG kódováním. Jediným rozdílem je definice kvantizačních tabulek. MPEG-1 definuje kvantizační tabulky, jednu pro INTRA kódování, ostatní pro mezi-snímkové
INTER kódování. Každá z těchto tabulek však může být změněna specifikací v hlavičce sekvence. Pokud změněny nejsou, dekodér vychází ze standardních. Kvantizace
se nastavuje pomocí parametru MQuant. Tato hodnota je primárně nastavena pro
každý proužek, může být nastavena i pro každý makroblok samostatně.
2. Mezi-snímkové kódování makrobloků (INTER kódování) probíhá u snímků
P a B. Ty jsou nejprve INTRA kódovány stejně jako I snímky bez predikčního
kódování. V bloku pro odhad pohybu se dekódují a proběhne mechanizmus, který
má za cíl najít určitou shodu mezi právě kódovaným snímkem a snímkem referenčním
(predikce). V případě, že rozdíl mezi predikčním a skutečně kódovaným snímkem
přesahuje určitou definovanou hranici, snímek se kóduje v INTRA módu. V ostatních
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
45
případech se kóduje rozdíl mezi skutečně kódovaným snímkem a jeho predikcí (chyba
predikce). K nalezení nejlepší shody makrobloků se používá blok pro odhad pohybu.
V MPEG standardech je pro odhad pohybu využívána pouze jasová složka obrazu Y.
Blok pro odhad pohybu určí vektory pohybu, které jsou použity jak pro jasové, tak
i pro barvonosné složky. Výstupem INTER kódování je tedy kódovaný predikovaný
snímek společně s vektory pohybu.
Po nalezení vektorů pohybu je s každým predikovaným blokem v makrobloku nakládáno samostatně. Každý predikovaný blok je pixel po pixelu odečten od vybraného
bloku v referenčním makrobloku. Tím vznikne rozdílový snímek (chyba odhadu),
který je následně transformován pomocí DCT, kvantován a entropicky kódován.
Neplatí zde však pravidlo, že DC koeficient je kódován rozdílově jako u INTRA či
JPEG kódování.
Zmíněný postup se provádí pro všechny bloky jednoho makrobloku. Pokud je odhad pohybu dobrý, mají koeficienty rozdílových bloků malé hodnoty a po kvantizaci
jsou tedy nulové. Tyto bloky pak není potřeba kódovat a jsou přeskakovány, čímž se
značně ušetří šířka pásma. Vektory pohybu jsou taktéž kódovány. Pro první makroblok v proužku musí být vektory pohybu kódovány a poslány úplné. Pro následné
makrobloky jsou vektory pohybu prediktivně kódovány z předchozích.
Postup při kódování a dekódování
Vstupem do kodéru je nekomprimované video, u kodéru MPEG-1 v rozlišení maximálně
CIF. Před samotným kódováním je stanovena velikost a struktura GOP. V níže popsaném příkladě bude GOP složena ze čtyřech snímků IBBP. Jak bylo popsané výše, pořadí
kódování může být odlišné od pořadí přehrávání. V tomto případě je jasné, že pro případ kódování snímků B je zapotřebí snímek I a P, což je v tomto případě snímek 1 a
4. V první fázi kódování tedy dochází k přeuspořádání snímků. Vstupní posloupnost 1,
2, 3, 4 je přeuspořádána na posloupnost 1, 4, 2, 3. Dle GOP následuje kódování snímku
1, který bude kódován jako snímek I. Se snímkem je zacházeno obdobně jako v případě
kódování standardem JPEG. Odlišuje se pouze v použitých kvantizačních tabulkách. Po
kvantizaci probíhá kódování proměnné délky VLC opět shodné se standardem JPEG.
Výstupem je zakódovaný snímek I. Ještě před VLC kódování je tentýž snímek inverzně
46
FEKT Vysokého učení technického v Brně
Řízení
vstup
Přeuspořádání
snímků
-
Q
DCT
VLC
Buffer
výstup
IQ
IDCT
+
Kompenzace
pohybu
Snímková
paměť
Odhad pohybu
Vektory pohybu
Obrázek 3.4: Obecný kodér standardu MPEG
kvantován a inverzně transformován, čímž vznikne dekódovaný snímek, který je uložen
do snímkové paměti pro další zpracování. Do kodéru vstupuje snímek 4, který dle GOP
bude kódovaný jako snímek P (predikovaný z předchozího snímku). Při predikci jsou oba
spínače sepnuty. Snímek 4 nejprve vstupuje do bloku pro odhad pohybu. Zde se stává
referenčním snímkem pro snímek 1 uložený ve snímkové paměti. Jednotlivé makrobloky
snímku 1 jsou přeskládány tak, aby co nejlépe odpovídaly blokům snímku 4. Zde vznikají
vektory pohybu, které určují pozice, kam se který makroblok posunul. Tyto vektory jsou
poté aplikovány na snímek 1, čímž se vytvoří predikovaný snímek ke snímku 4. Tento
predikovaný snímek odečten od původního snímku 4, čímž je zajištěno, že na vstup bloku
DCT přichází pouze chyba predikce. Ta obsahuje podstatně méně informace než původní
snímek. Tato chyba predikce je dále kódována ve stejném znění jako předchozí snímek.
Po její zpětné rekonstrukci je přičtena k predikovanému snímku a výsledek, dekódovaný
snímek 4, je uložen do snímkové paměti. Tento postup je ve stejném znění opakován pro
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
47
další příchozí snímky. U snímků B jsou do snímkové paměti ukládány 2 referenční snímky.
Proces dekódování je opačný k procesu kódování. Dekodér je však méně výpočetně náročný, neboť odpadá výpočet odhadovaného snímku. Schéma pro obecný MPEG dekodér
je na obrázku 3.5.
vstup
Buffer
VLD
IQ
IDCT
Přeuspořádání
snímků
+
Snímková
paměť
Kompenzace
pohybu
Obrázek 3.5: Obecný dekodér standardu MPEG
výstup
48
FEKT Vysokého učení technického v Brně
3.3
Formát MPEG-2
Standard MPEG-2 (ISO/IEC 13818) byl vyvinut pro široké spektrum aplikací a standardizován v roce 1995. Oproti standardu MPEG-1, který nebyl určen pro ztrátové prostředí,
obsahuje standard MPEG-2 mechanizmy pro zabezpečení proti chybovosti při vysílání.
Navíc je schopen doručit více programů současně bez potřeby shodné časové základny
[12].
Formát MPEG-2 se hojně využívá při ukládání filmů na DVD nosičích a při distribuci
digitální televize prostřednictvím DVB-T (Digital Video Broadcasting – Terrestrial). Nabízí kromě komprese konstantní bitovou rychlostí CBR (Constant Bit Rate) i kódování s
proměnlivou bitovou rychlostí VBR (Variable Bit Rate).
Hlavní rozdíly mezi MPEG-2 a MPEG-1
1. Standard MPEG-2 podporuje širokou škálu rozlišení od SIF (352x288 pix) do HTDV
(1920x1080 pix).
2. Standard MPEG-2 podporuje prokládání.
3. Standard MPEG-2 existuje v mnoha variacích díky profilům a levelům.
4. Standard MPEG-2 podporuje formáty vzorkování 4:2:2 a 4:2:0
5. Standard MPEG-2 díky podpoře prokládání uzpůsobil kompenzaci pohybu. Umožňuje rozdělit jeden makroblok na dva (sudé a liché řádky). Poté dochází k tomu, že
blok pro kompenzaci není velikosti 16x16 ale 16x8 pixelů.
6. Standard MPEG-2 podporuje škálování.
Profily a levely
MPEG-2 nabízí široké využití v různorodých aplikacích. Video může mít různé prostorové
rozlišení, bitovou rychlost, kvalitu apod. Z tohoto důvodu existuje několik profilů a levelů,
které dohromady zastřešují všechny možnosti standardu MPEG-2. Levely definují parametry určené pro aplikaci (formát obrazu, snímková frekvence, přenosová rychlost, . . . ),
profily určují metody, které jsou při kódování a dekódování použity. Jednotlivé profily a
levely jsou v tabulkách 3.1 a 3.2.
Nejčastěji využíbaný je hlavní profil hlavní level ([email protected]). Ten najdeme v digitálním
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
49
vysílání TV a na DVD.
Tabulka 3.1: Profily v MPEG-2
Typ
Podporované nástroje
Aplikace
Jednoduchý (Simple)
I a P snímky, vzorkování 4:2:0, neškálova-
nevyužíván
telný formát
Hlavní (Main)
Škálovatelný
podle
jednoduchý profil + B snímky
broadcast TV
Hlavní profil + škálovatelnost podle SNR
nevyužíván
Škálovatelný podle SNR + prostorová škálo-
nevyužíván
SNR (SNR scalable)
Prosotorově
škálova-
telný (Spatial)
vatelnost
Vysoký (High)
prostorový + vzorkování 4 : 2 : 2
nevyužíván
4:2:2
snímky IBIBIB. . . , rozšířený hlavní profil pro
zpracování
vysoké bitové rychlosti
videa, distribuce
hlavní profil + prostorová škálovatelnost
video
streamy,
stereo
prezen-
Multiview
tace
Odhad a kompenzace pohybu při prokládání
Kompenzace pohybu u standardu MPEG-2 existuje ve dvou verzích. První verze existuje
pro celo-snímkový mód, druhá verze existuje pro prokládaný mód. V prokládaném módu
mohou být použity metody pouze pro prokládaný mód, v celo-snímkovém módu mohou
být použity metody jak pro prokládaný tak i pro celo-snímkový mód.
50
FEKT Vysokého učení technického v Brně
Tabulka 3.2: Úrovně v MPEG-2
Úroveň
Vysoká (HIGH)
Parametry
Rozlišení 1920x1152
60 snímků/s, 80Mb/s
Vysoká 1440 (HIGH 1400)
Rozlišení 1440x1152
60 snímků/s, 60Mb/s
Hlavní (MAIN)
Rozlišení 720x576
30 snímků/s, 15Mb/s
Nízká (LOW)
Rozlišení 352x288
30 snímků/s, 4Mb/s
Kompenzace pro bloky 16x8
Pro kompenzaci pohybu v prokládaném módu může být každé pole (sudé řádky, liché
řádky) odhadováno a kompenzováno samostatně. Díky tomu se zdvojnásobí počet vektorů
na jeden makroblok.
Škálovatelnost
Standard MPEG-2 podporuje režimy pro škálování v poměru SNR a v prostorové a časové
oblasti. Tyto režimy jsou vhodné pro aplikace vyžadující různě kvalitativně odstupňovaná
video data. Režim pro škálování v poměru SNR využívá ke škálování kvantizaci koeficientů
ve frekvenční oblasti, režim pro škálování v prostorové oblasti využívá přenosu obrazu s
různým rozlišením a režim škálování v časové oblasti umožňuje škálovat video na různé
přenosové rychlosti.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
3.4
51
Formát MPEG-4 Visual
Standard MPEG-4 Visual (ISO/IEC 14496 Part 2) [7] je založen na standardu MPEG-2 a
dále jej zdokonaluje a to jak v efektivitě komprese, tak i ve flexibilitě. Standard se skládá z
hlavní části nazvané „core“ a dalších nástrojů zefektivňujících kompresi. Základní kodér a
dekodér je založen na stejném principu jako MPEG-2. Základní kodér je rozšířen o nástroje
umožňující zvýšení efektivity komprese, spolehlivý přenos ztrátovým prostředím, kódování
separátních objektů ve scéně, kódování drátěných modelů, animací tváří či modelů postav.
Standard MPEG-4 obdobně jako standard MPEG-2 obsahuje množství profilů, z nichž
každý obsahuje řadu nástrojů. Základní (Simple) profil obsahuje nástroje pro kódování
celých snímků (aplikace s nízkými výpočetními nároky), pokročilé profily Core a Main
obsahují nástroje pro kódování tvarů a objektů ve videu, profil Advanced Real Time
Simple obsahuje nástroje pro zajištění odolnosti proti chybám v přenosovém kanále, profil
Advanced Simple poskytuje zdokonalení komprese oproti profilu Simple.
Vlastnosti kodéru:
• Efektivní komprese jak prokládaného tak i neprokládaného videa. Jádro komprese
je založeno na standardu ITU-T H.263.
• Kódování objektů videa umožňuje separátní kódování objektů v pozadí a popředí
dané scény.
• Podpora efektivního přenosu přenosovým kanálem.
• Kódování statických obrazů je prováděno nezávisle na kódování videa.
• Kódování animovaných objektů a tvarů 2D i 3D.
• Kódování pro speciální aplikace ve studiové kvalitě.
Profily hrají velmi důležitou roli. Kodeky jsou vyvíjeny mnoha organizacemi a jediným
vodítkem k tomu, aby byly vzájemně kompatibilní jsou právě profily. Každý profil definuje podmnožinu nástrojů a levely určující hraniční parametry bitového toku. Pro profily
založené na profilu Sipmle existují levely uvedené v tabulce 3.4.
Objekty videa
Hlavním přínosem kodeku MPEG-4 Visual je upuštění od tradičního pohledu na videosekvenci jako na sekvenci pravoúhlých snímků. Namísto toho MPEG-4 definuje sekvenci
52
FEKT Vysokého učení technického v Brně
Tabulka 3.3: Profily kódování standardního videa
Profily MPEG-4 Visual
Simple
Advanced Simple
Hlavní rysy
Nízkoúrovňové kódování pravoúhlých snímků
Vyšší efektivita kódování pravoúhlých snímků,
podpora prokládaného videa
Advanced Real-Time Simple
Kódování pravoúhlých snímků pro streamování
v reálném čase
Core
Základní kódování tvarů a objektů ve videu
Main
Zdokonalené kódování objektů
Advanced Coding Efficiency
N-Bit
Simple Scalable
Fine Granular Scalability
Core Scalable
Scalable Texture
Advanced Scalable Texture
Advanced Core
Vysoce efektivní kódování objektů
Kódování s přesností jinou než 8 bitů/pixel
Škálované kódování pravoúhlých snímků
Zdokonalené škálované kódování pravoúhlých snímků
Škálované kódování objektů
Škálované kódování statických obrazů
Objektově založené škálované kódování statických obrazů
Kombinace profilů Simple, Core a Advance Scalable
Texture
Simple Studio
Objektově založené kódování videa s vysokou kvalitou
Core Studio
Objektově založené kódování videa s vysokou kvalitou
a zdokonalenou efektivitou komprese
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
53
Tabulka 3.4: Levely profilů založených na Simple profilu
Profil
Simple
Advanced Simple (AS)
Level
typické rozlišení
max.
max.
bitový tok
počet objektů
L0
176x144
64 kb/s
1
L1
176x144
64 kb/s
4
L2
352x288
128 kb/s
4
L3
352x288
384 kb/s
4
L0
176x144
128 kb/s
1
L1
176x144
128 kb/s
4
L2
352x288
384 kb/s
4
L3
352x288
768 kb/s
4
L4
352x576
3 Mb/s
4
L5
720x576
8 Mb/s
4
L1
176x144
64 kb/s
4
L2
352x288
128 kb/s
4
L3
352x288
384 kb/s
4
L4
352x288
2 Mbit/s
16
Advanced Real-Time
Simple (ARTS)
54
FEKT Vysokého učení technického v Brně
objektů videa. Objekt videa je určitá oblast ve video scéně, která má určitou velikost
a existuje v určitý časový okamžik. Objekt videa bude v textu dále označován jako VO
(Video Object). Instance VO v určitém čase se nazývá tzv. rovina objektu videa, dále
označována jako VOP (Video Object Plane) – viz obrázek 3.6 a 3.7. Tento přístup je
mnohem více flexibilní než způsob kódování pravoúhlých snímků. Důležité objekty ve videu mohou být kódovány s vyšší kvalitou než méně důležité (například televizní hlasatelka
a pozadí apod.)
čas
VOP1
VOP2
VOP3
VO
Obrázek 3.6: VOP a VO (pravoúhlé)
čas
VOP1
VOP2
VOP3
VO
Obrázek 3.7: VOP a VO (libovolný tvar)
Kódování pravoúhlých snímků
I když je objektově založené kódování mnohem flexibilnější, nejvíce užívané kodeku
MPEG-4 Visual je kódování celých snímků videa. Nástroje, které jsou pro tento způ-
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
55
sob využívány jsou seskupeny v tzv. Simple profilech (obrázek 3.8). Základní nástroje
jsou převzaty z předchozích standardů MPEG-1, MPEG-2.
I-VOP
P-VOP
4MV
UMV
Intra Pred
Video pakety
Dělení dat
RVLC
Krátká hlavička
Simple
Advanced Real
Time Simple
Advanced Simple
B-VOP
Dynamická
změna rozlišení
Interlace
NEWPRED
Alternativní kvant.
Globální
pohybová
kompenzace
Čtvrtpixelová
přesnost pohybu
Obrázek 3.8: Nástroje a objekty pro kódování pravoúhlých snímků
56
FEKT Vysokého učení technického v Brně
Vstupní a výstupní formát videa
Vstupním a výstupním formátem video kodeku MPEG-4 Visual může být videosekvence
v progresivním nebo prokládaném řádkování a vzorkování 4:2:0, 4:2:2 nebo 4:4:4.
3.4.1
Simple profil
Simple profil MPEG-4 Visual využívá kodek známý pod zkratkou VLBV (Very Low Bit
Rate Video). Ke kódování využívá následující nástroje:
• I-VOP – pravoúhlý I-VOP je snímek videa bez predikce. Kódování je obdobné jako
u MPEG-2.
• P-VOP – pravoúhlý P-VOP je snímek videa predikován z předchozího I nebo PVOP. Odhad a kompenzace pohybu jsou blokově založené. Velikost bloku je 16x16
pixelů s přesností půl pixelu. Makroblok P-VOP může být kódován v tzv. Inter módu
(s kompenzací a predikcí pohybu) nebo v Intra módu (bez kompenzace a predikce
pohybu). Inter mód zajišťuje ve většině případů nejlepší efektivitu kódování, Intra
mód může být použit tam, kde není dobrá shoda s makroblokem předchozího snímku
(např. nový region, nová část obrazu,...)
• Krátká hlavička – poskytuje kompatibilitu mezi standardy MPEG-4 Visual a
ITU-T H.263. V tomto módu mají I-VOP a P-VOP stejnou syntaxi jako I-snímek a
P-snímek. V módu krátké hlavičky jsou makrobloky organizovány do skupin bloků
(GOB).
• Nástroje pro efektivnější kódování:
– 4 vektory pohybu na makroblok – Kompenzace pohybu je mnohem efektivnější při použití menších bloků. Standardní blok pro odhad a kompenzaci
pohybu je velikosti 16x16 pixelů. V MPEG-4 Visual je možné využít menších bloků, konkrétně bloků o velikosti 8x8 pixelů. Tím je dosažena na jedné
straně vyšší přesnost odhadu, na druhé straně narůstá režijní informace (více
vektorů pohybu). Využití 4 vektorů na jeden makroblok je vhodné využít při
komplexním pohybu nebo na hranicích pohybujícího se objektu.
– Vektory pohybu bez hranic – V některých případech může být při odhadu
a kompenzaci pohybu nejlepší makroblok mimo hranice referenčního VOP. Pří-
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
57
Obrázek 3.9: Jeden a 4 vektory pohybu na jeden makroblok
klad zachycuje obrázek 3.10, kde do obrazu vstupuje černý kvádr. V případě,
že referenční VOP extrapolujeme (ve většině případů se kopíruje stejná hodnota pixelu za hranici VOP), můžeme získat lepší shodu. Vektor pohybu poté
ukazuje za hranice referenčního VOP.
Referenční VOP
Současný VOP
Současný
makroblok
Referenční VOP extrapolovaný za
hranice
Nejlepší shoda
s referenčním
VOP
Obrázek 3.10: Vektor pohybu bez hranic
– Intra predikce – Nízkofrekvenční složky sousedních bloků 8x8 jsou často ko-
58
FEKT Vysokého učení technického v Brně
relovány. V módu intra predikce jsou stejnosměrné složky a (volitelně první
řádek a sloupec střídavých složek predikovány ze sousedních již kódovaných
bloků (obrázek 3.11, 3.12).
A
B
D
X
C
Obrázek 3.11: INTRA predikce DC koeficientů
C
A
X
Obrázek 3.12: INTRA predikce AC koeficientů
• Nástroje pro efektivní přenos (video pakety, dělení dat, reversibilní VLC kód) – Je
známo, že chyby přenosu (bitové chyby, ztráta paketů) vedou k tomu, že dekodér
videa se rozsynchronizuje. To má za následek, že data nejsou správně dekódována.
– Video pakety – Přenášený VOP je sestaven z jednoho nebo více paketů. Video
paket je obdoba slice používaného v MPEG-1, MPEG-2 a H.264. Je složen ze
synchronizační značky, hlavičky a makrobloků kódovaných po řádku (obrázek
3.13)
Synchronizační značka (Sync) je následována údajem o počtu přenášených
makrobloků, kvantizačními parametry a příznakem HEC (Header Extension
Code). V případě, že je příznak HEC nastaven na hodnotu 1, následuje du-
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
Sync
Hlavička
HEC
(Hlavička)
Makrobloky
59
Sync
Obrázek 3.13: Struktura video paketu
plikovaná hlavička, která má význam v případech, kdy první hlavička je při
přenosu poškozena.
– Dělení dat – Funkce dělení dat umožňuje přeuspořádání dat v rámci paketu.
Paket je rozdělen na dvě části: první část obsahuje informace o kódování každého makrobloku společně s DC koeficienty každého bloku (v případě Intra
kódovaného makrobloku) nebo s vektory pohybu (v případě Inter kódovaného
makrobloku); druhá část obsahuje zbývající data. První část paketu je pro
dekodér brána jako významná a neměla by být poškozena.
– Reversibilní VLC – Při použití nástroje RVLC lze paket dekódovat v obou
směrech, čímž se minimalizuje potencionální chyba. V první fázi dekodér dekóduje data v dopředném směru. V případě, že je detekována chyba, je daný paket
dekódovaný v opačném směru od následující synchronizační značky (obrázek
3.14).
chyba
Sync
Hlavička
HEC
(Hlavička)
Vektory pohybu
Dekódování v
dopředném směru
Makrobloky
Sync
Dekódování ve
zpětném směru
Obrázek 3.14: Příklad RVLC
3.4.2
Advanced Simple Profile
Advanced Simple Profile byl vyvinut v pozdějších verzích standardu a přinesl nástroje
zvyšující efektivitu komprese a podporu prokládaného videa. Advanced Simple profil musí
být plně kompatibilní se Simple profilem a navíc podporuje následující nástroje:
• B-VOP (obousměrně predikovaný VOP) – B-VOP zvyšuje efektivitu pohybové
kompenzace. Blok nebo makroblok může být predikován dopředně z předchozího
60
FEKT Vysokého učení technického v Brně
I-VOP nebo P-VOP, zpětně z I-VOP nebo P-VOP nebo jako průměr dopředné a
zpětné predikce. Použití B-VOP obecně zajišťuje lepší efektivitu kódování, na druhé
straně však zvyšuje nárok na paměť a výpočetní čas, čímž se zvyšuje zpoždění při
kódování. Každý makroblok je kódován jedním z následujících režimů:
– Dopředná predikce: Je přenášen jeden vektor pohybu odkazující na předchozí
I- nebo P-VOP.
– Zpětná predikce: Je přenášen jeden vektor pohybu odkazující na budoucí Inebo P-VOP.
– Obousměrná prokládaná predikce: Jsou přenášeny dva vektory pohybu odkazující na předchozí a budoucí I- nebo P-VOP. Predikce je vytvořena interpolací
mezi jasovými a barvonosnými složkami ve dvou referenčních oblastech.
– Obousměrná přímá predikce: Vektory pohybu ukazující na předchozí a budoucí
I- nebo P-VOP jsou automaticky odvozeny z vektoru pohybu stejného makrobloku budoucího I- nebo P-VOP. Přenášen je následně „rozdílový vektor
pohybu“ opravující automaticky generovaný.
• Čtvrt-pixelová přesnost u pohybové kompenzace – Oproti Simple profilu,
který nabízel vektory pohybu s půl-pixelovou přesností, je u Advanced Simple Profile
podpora až čtvrt-pixelové přesnosti. Výsledkem je vyšší vyšší efektivita kódovánía
zároveň vyšší nároky nároky na výpočetní výkon.
• Globální kompenzace pohybu – Je vhodná zejména při rotaci, posunu kamery
v určitém směru či zoomu. V těchto případech se zpravidla objekty uvnitř snímku
pohybují stejným směrem. Proto je možné přenášet menší počet parametrů pohybu.
Namísto toho se přenáší pro jeden VOP 4 vektory pohybu, ze kterých je poté pomocí
interpolace vypočítán vektor pohybu pro každé místo ve VOP (viz obrázek 3.15).
• Alternativní kvantizér – alternativní kvantizér ke standardnímu.
• Prokládání – Advanced Simple profil podporuje prokládané video (rozdělení
snímku na sudé a liché řádky – úspora šířky pásma).
3.4.3
Advanced Real Time Simple Profile
Streamované video musí mít nejen dobrou kvalitu, ale i odolnost proti chybám v případě zhoršení podmínek v síti. V tomto profilu jsou specifikované nástroje, které zajistí
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
61
Obrázek 3.15: Příklad globální pohybové kompenzace
lepší odolnost proti možným chybám v síti. Jde celkem o dva nástroje: NEWPRED (více
referencí pro predikci) a dynamická změna rozlišení:
• NEWPRED obrázek 3.16– umožňuje kodéru vybrat referenční VOP z jakéhokoli
v množině předchozích VOP. V případě, že je na straně dekodéru detekovaná chyba,
posílá o tom zpětným kanálem kodéru informaci. Kodér na základě této informace
vybere jiný VOP pro následnou predikci a tím zamezí šíření chyby. Kodér i dekodér
musí ukládat při použití tohoto nástroje více rekonstruovaných VOP.
Predikce ze staršího předchozího VOP
1
2
1
3
2
4
3
5
4
6
5
Počáteční chyba
Predikce ze staršího předchozího VOP
Obrázek 3.16: NEWPRED
• Dynamická změna rozlišení obrázek 3.17 – umožňuje kódování VOP s redukova-
62
FEKT Vysokého učení technického v Brně
ným prostorovým rozlišením. To je vhodné při náhlém zvýšení přenosové rychlosti
například z důvodu nárůstu detailů ve VOP nebo rychlému pohybu. Při použití
dynamické změny rozlišení je kódovaný VOP kódován s polovičním horizontálním i
vertikálním rozlišením. Na straně dekodéru je poté každý makroblok nadvzorkován.
8
8
8
8
8
8
4
4
4
4
4
4
4
4
16
NADVZORKOVÁNÍ
16
PODVZORKOVÁNÍ
16
16
8
8
8
8
8
8
Kompenzace
pohybu
KODÉR
16
16
REFERENČNÍ
MAKROBLOK
8
8
8
8
DEKODÉR
Obrázek 3.17: Dynamická změna rozlišení
Kódování objektů ve snímcích
Kódování objektů je oproti kódování tvarů výpočetně náročnější. Každý VOP využívá
pro predikci a kompenzaci pohybu pohybové vektory a speciální nástroje, které definují
hranice objektů. Tvar objektu je definován tzv. Alpha bloky o velikosti 16x16 pixelů.
Každý Alpha blok může být:
1. Zcela vnější – pixely bloku nepatří objektu.
2. Zcela vnitřní – pixely bloku patří objektu.
3. Hraniční – část pixelů patří objektu, část pixelů nepatří objektu.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
63
U hraničních bloků je zapotřebí definovat tvar objektu. Ten je definován pomocí průhlednosti, kdy:
• část bloku, která patří danému objektu, je neprůhledná,
• část bloku, která nepatří danému objektu, je průhledná,
• část bloku, která leží na hranici objektu, je částečně průhledná.
Informace o tvaru je vyjádřená buď binárně (0 – průhledný, 1 – neprůhledný) nebo v
rozsahu šedé 0 – 255 (0 – průhledný, 255 – neprůhledný)
3.4.4
Profil Core
Profil Core, jako první, umožňuje kompresi jednoduchých objektů videa VO. Při kompresi
může použít veškeré nástroje profilů řady Simple, navíc poskytuje:
• B-VOP,
• alternativní kvantizér,
• objektově založené kódování,
• P-VOP s časovým škálováním.
Profil Core dále podporuje časovou škálovatelnost .
Kódování tvarů – binární
Objekty ve videu jsou specifikované binární maskou, která je přenášena společně s obrazem. Dle binární masky se stanovuje, který makroblok patří objektu, nepatří objektu
nebo je hraniční. Pro kódování binárních tvarů jsou speciálně upravené mechanizmy pro
odhad a kompenzaci pohybu.
3.4.5
Profil Main
Profil Main podporuje veškeré nástroje profilů Simple a Core, navíc umožňuje:
• využít prokládání,
• využít kódování tvarů s alpha maskou ve stupnici šedé,
• využít kódování statického pozadí (Sprite).
Díky kódování masky ve stupni šedé dochází k tomu, že hranice objektů jsou mnohem
lépe vykreslené a nedochází k ostrým přechodům. Výsledné video s dosazenými objekty
64
FEKT Vysokého učení technického v Brně
tedy je z pohledu uživatele kvalitnější.
Kódování statického pozadí (Sprite)
Při statických scénách nebo při záběrech určitého místa, kde se nemění pozadí může být
pozadí kódováno tzv. jako sprite. Sprite je obraz, který může být posouván, v určitých
limitech kroucen, zoomován, rotován, ořezáván. V typické scéně je sprite větší než scéna
zabíraná objektivem. V případě změny polohy kamery se zaznamenávají údaje o nové
pozici tak, aby sprite mohl být patřičně upraven. Sprite může být libovolného tvaru. V
případě využití kódování pozadí sprite je nejprve načteno pozadí a poté jsou přenášena
data scény v popředí. Načtení pozadí může probíhat dvěma způsoby:
1. Základní sprite – První VOP obsahuje celý sprite. Ten může být větší než viditelná
oblast. V dekodéru je sprite zapsán do paměti a není ihned zobrazen.
2. Sprite s nízkou latencí – V první fázi je odeslán sprite minimální velikosti a minimální kvality, následně je postupně upřesněn. Díky tomu není počáteční zpoždění
tak veliké, jako u přenosu celého sprite najednou.
3.4.6
Profil N-bit
Profil N-bit obsahuje všechny nástroje profilů Simple a Core. Navíc podporuje kromě
základního 8mi bitového zpracování jednotlivých barevných složek variabilitu 4-12 bitů
na vzorek. Tím lze video kódovat jak pro displeje s malou bitovou hloubkou, tak i pro
displeje vysoké kvality.
3.4.7
Jednoduchý škálovatelný profil
Profil umožňuje pracovat s následujícími nástroji:
• I-VOP, P-VOP, B-VOP, čtyři vektory pohybu, vektory pohybu bez hranic a intra
predikce,
• dělení dat, reversibilní VLC,
• časové škálování pravoúhlých VOP,
• prostorové škálování pravoúhlých VOP.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
3.4.8
65
Škálovatelný profil Core
Profil zahrnuje nástroje a objekty jednoduchého, jednoduchého škálovatelného a Core
profilu a navíc umožňuje pracovat s následujícími nástroji:
• objektově založené škálování.
Ostatní profily jsou obdobné, podporují různé objekty a nástroje. Bližší informace čerpejte
zde [8].
66
FEKT Vysokého učení technického v Brně
3.5
Formát MPEG-4 AVC / H.264
Standard MPEG-4 Part 10 / H.264 byl vyvinut společným úsilím organizací ISO (MPEG)
a ITU-T (H.26x) a byl nazván jako AVC (Advanced Video Coding). Princip komprese a
dekomprese vychází ze standardů H.263 a MPEG-2. Základní schéma kodéru (obrázek
3.18) a dekodéru (obrázek 3.19) vychází z obecného standardu MPEG.
Jak je ze schémat patrné, princip kódování i dekódování reflektuje předchozí standardy.
Navíc obsahuje deblocking filtr a liší se funkcemi jednotlivých bloků.
Ve standardu H.264 jsou definovány 3 profily:
1. Základní profil je určen pro videotelefonii, videokonference a bezdrátovou komunikaci.
2. Hlavní profil je určen pro televizní vysílání ukládání videa na různá média.
3. Rozšířený profil je určen pro streamování.
Využití profilů popsaných výše není kompletní, je pouze orientační.
Standard podporuje kódování prokládaného i neprokládaného videa, výchozí vzorkování
je podle modelu YCbCr je 4:2:0, podporovány jsou i jiné.
Při užití kodeku jsou kódovaná data dělena do dvou hladin:
1. VCL (Video Coding Layer) – sekvence bitů reprezentující kódovaná video data,
2. NAL (Network Abstraction Layer) – vrstva obsahující datové jednotky pro přenos
nebo uložení.
Kódovaná videosekvence je reprezentovaná sekvencí jednotek NAL, které mohou být následně přenášeny, ukládány apod.
Každý kodér i dekodér obsahuje dva seznamy referenčních snímků – seznam 0 a seznam
1. Pro predikci může být vždy použít jeden nebo dva snímky z těchto seznamů. Na rozdíl
od předešlých standardů se soubor referenčních snímků rozšířil z I a P na S, P, B, SP a
SI:
• Snímek I obsahuje pouze makrobloky I (Každý blok nebo makroblok je predikován
z již kódovaných ve stejném proužku.
• Snímek P obsahuje makrobloky predikované ze seznamu referenčních snímků 0
a/nebo z makrobloků I.
• Snímek B obsahuje makrobloky B predikované ze seznamu referenčních snímků 0
Obrázek 3.18: Kodér H.264
Rekonstruovaný
snímek Fn’
Kódovaný
snímek Fn
Filtr
Výběr Intra
predikce
Referenční
snímek Fn-1’
Intra predikce
Odhad pohybu
Kompenzace
pohybu
uF’n
Intra
Inter
+
-
+
+
P
D’n
Dn
IT
T
IQ
Q
X
Přeuspořádání
Entropické
kódování
NAL
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
67
Obrázek 3.19: Dekodér H.264
Rekonstruovaný
snímek F’n
Referenční
snímek F’n-1
Filtr
Intra predikce
Kompenzace
pohybu
uF’n
Intra
Inter
+
+
P
D’n
IT
IQ
X
Přeuspořádání
Entropické
dekódování
NAL
68
FEKT Vysokého učení technického v Brně
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
69
a/nebo 1 a/nebo z makrobloků I.
• Snímek SP umožňuje přepínání mezi různě kódovanými streamy, obsahuje P a/nebo
I makrobloky.
• Snímek SI umožňuje přepínání mezi různě kódovanými streamy, obsahuje speciální
typy makrobloků – makrobloky SI.
Velikost proužků je minimálně jeden makroblok, maximálně jeden snímek. Proužky v
jednom snímku mohou mít libovolnou velikost. Makrobloky jsou velikosti 16x16 (16x16
Y, 8x8 Cb, 8x8 Cr).
Základní princip kodéru
Vstupní snímek  je rozdělen na makrobloky, kdy každý makroblok je kódován buď v
módu INTER nebo INTRA. Pro každý blok makrobloku je na základě rekonstruovaného
snímku vytvořena predikce P.
V módu INTRA je predikce P vytvořena ze vzorků právě kódovaného proužku (vzorek již
byl kódován, dekódován a rekonstruován).
V módu INTER je predikce P vytvořena pomocí pohybové kompenzace z vybraného
′
. Referenční snímek může být předešlý nebo
jednoho nebo dvou referenčních snímků −1
budoucí, musí být již zakódovaný, dekódovaný a filtrovaný.
Predikce je následně odečtena od aktuálně kódovaného bloku, čímž vznikne blok  , který
je následně podroben transformaci a kvantizaci. Po těchto úkonech vznikne blok X, který
společně s ostatními bloky snímku je přeuspořádán a entropicky kódován a odeslán do
vrstvy NAL.
Kromě kódování bloků jsou tyto bloky také dekódovány a rekonstruovány pro následnou
predikci. Blok X je inverzně kvantován a inverzně transformován tak, že vytvoří rozdílový
blok ′ .
Základní princip dekodéru
Dekodér získá komprimovaná data z vrstvy NAL a nejprve je entropicky dekóduje a
inverzně kvantuje, čímž získá snímek ′ identický ′ kodéru. Dekodér následně vytvoří
predikční blok P identický originálnímu P z kodéru. P je přidán k ′ , čímž vznikne ′ ,
který je následně filtrován. Filtrovaný ′ vytvoří výsledný dekódovaný blok  .
70
FEKT Vysokého učení technického v Brně
3.5.1
Základní profil
Základní profil pracuje pouze s proužky I a P. Plátky I obsahují makrobloky kódované v
intra módu z předchozích kódovaných makrobloků v daném plátku. Plátky P mohou obsahovat makrobloky kódované v módu intra, inter nebo se makrobloky přeskakují. Makroblok kódovaný módem inter je predikován z předešle zakódovaných snímků. Využívá
pohybovou kompenzaci s čtvrt-pixelovou přesností.
Transformace je provedena po blocích 4x4 a je celočíselná. Pro entropické kódování je
použita technika CAVLC (Context-adaptive variable length coding).
Paměť pro referenční snímky
U základního profilu je použit pouze seznam 0 pro inter predikci u plátků P. Seznam může
obsahovat snímky předchozí i snímky následující a jsou zde tzv. krátkodobé a dlouhodobé
snímky.
Proužky
Jak již bylo zmíněné výše, u základního profilu jsou používány pouze proužky I nebo P.
Zajímavostí u H.264 je použití:
1. libovolného pořadí proužků,
2. skupiny proužků.
Libovolné pořadí proužků znamená, že proužky mohou být dekódovány v jakémkoli pořadí.
Skupina proužků je podmnožina makrobloků v kódovaném snímku, která může obsahovat
jeden nebo více proužků. V případě více skupin se definuje, který proužek patří ke které
skupině viz obrázek3.20.
Inter predikce
Při inter predikci se vytváří predikční model z jednoho nebo více již zakódovaných snímků
s využitím pohybové kompenzace. Zásadní a důležitý rozdíl od předchozích standardů je
v tom, že pro pohybovou kompenzaci lze použít různě veliké bloky od 16x16 až po 4x4 viz
obrázek 3.21. Pro barvonosné složky jsou velikosti bloků poloviční vzhledem k vzorkování
4:2:0.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
Skupina proužků 0
71
Skupina proužků 1
Skupina proužků 1
Skupina proužků 2
Skupina proužků 2
Obrázek 3.20: Skupina proužků
16 x 16
16 x 8
8 x 16
8x8
Dělení
makrobloků
submakroblok
8x8
8x4
4x8
4x4
Dělení
sub-makrobloků
Obrázek 3.21: Dělení makrobloků a sub-makrobloků
Pro každý takovýto blok je poté provedena kompenzace pohybu a jsou pro něj určeny
vektory pohybu. Se zmenšující se velikostí bloku narůstá počet přenášených vektorů pohybu a tím i bitová rychlost. Volba velikostí bloků je při kódování klíčová. Obecně platí, že
homogenní oblasti jsou děleny na větší bloky, detailní oblasti jsou děleny na menší bloky.
Pohybové vektory ukazují na referenční makroblok s přesností 1/4 pixelu pro jasovou
složku a 1/8 pro složky chrominanční. Pro příklad je zde uveden princip výpočtu referenční
oblasti pro půl-pixelovou přesnost. Interpolace z celočíselné pozice probíhá pomocí FIR
filtru s váhami (1/32, −5/32, 5/8, 5/8, −5/32, 1/32). Pro příklad je uveden výpočet pixelu
72
FEKT Vysokého učení technického v Brně
v pozici b (obrázek 3.22).
 − 5 + 20 + 20 − 5 − 
 = 
32
(︂
A
aa
B
C
bb
D
)︂
(3.1)
E
F
G
b
H
I
cc
dd
h
j
m
ee
ff
K
L
M
s
N
O
P
Q
gg
R
S
hh
T
Obrázek 3.22: Interpolace na půlpixelovou přesnost
Obdobně je získán pixel h interpolací A, C, G, M, R, apod. Jakmile jsou k dispozici pixely
pro půl-pixelovou přesnost, provede se opětovná interpolace sousedních vzorků k dosažení
čtvrt-pixelové přesnosti pro příklad pixelu a z obrázku 3.23 dle vztahu
(︃
)︃
+
 = 
.
2
(3.2)
V případě 1/8 pixelové přesnosti u chrominančních složek je použit vztah (z obrázku 3.24.
(︃
)︃
(8 −  )(8 −  ) +  (8 −  ) + (8 −  )  +   
 = 
.
64
(3.3)
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
G
h
M
a
i
b
j
H
c
k
m
s
N
G
b
d
f
h
j
n
q
M
s
H
G
73
g
d
m
j
h
p
N
M
H
b
m
r
s
N
Obrázek 3.23: Interpolace na čtvrt-pixelovou přesnost
Po dosazení tedy platí, že
25 + 15 + 15 + 25
 = 
.
64
(︂
)︂
A
(3.4)
B
dy
dx
a
8-dx
8-dy
C
D
Obrázek 3.24: Interpolace na 1/8-pixelovou přesnost
Vektory pohybu jako takové jsou predikovány ze sousedních bloků či sub-bloků a je přenášen pouze rozdíl mezi predikcí a skutečností. Tím dochází k úspoře šířky pásma.
74
FEKT Vysokého učení technického v Brně
INTRA predikce
V módu INTRA je blok P získán na základě předešle zakódovaných bloků v daném snímků
tak, že se od vybraného odečte. Pro jasové složky je blok P velikosti 16x16 nebo 4x4 pixely.
Pro makrobloky 16x16 existují 4 módy predikce, pro bloky 4x4 existuje celkem 9 módů
predikce viz obrázek 3.25. Pixely A-M jsou pixely bloků, které již byly dříve kódovány,
pixely a-p jsou pixely právě kódované. Pro barvonosné bloky o velikosti 8x8 jsou použity
stejné predikční módy jako pro jasové makrobloky 16x16.
H
H
V
V
H
H
V
V
Průměr H+V
Obrázek 3.25: Predikční módy pro bloky 4x4
Vyhlazovací filtr
Vyhlazovací filtr je aplikován na každý dekódovaný makroblok k redukci blokového artefaktu. Tu provádí rozmazáním hranic mezi makrobloky.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
A
B
C
D
E
F
G
H
A
B
C
D
b
c
d
I
M
M
a
J
e
f
g
h
K
i
j
k
l
L
m
n
o
p
M
A
B
C
D
E
F
G
H
E
F
G
H
M
I
I
I
J
J
J
K
K
K
L
L
L
M
A
B
C
D
E
F
G
H
M
A
B
C
D
E
F
G
H
M
I
I
I
J
J
J
K
K
K
L
L
L
M
A
B
C
D
E
F
G
H
M
A
B
C
D
E
F
G
H
M
I
I
I
J
J
J
K
K
K
L
L
L
A
B
C
75
D
E
F
G
H
PRŮMĚR
(A, ..D,
I..L)
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
Obrázek 3.26: Predikční módy pro bloky 16x16
Transformace a kvantizace
Na rozdíl od předchozích standardů H.264 používá 3 různé transformace na různě velké
bloky. Vyčítání jednotlivých bloků je uvedeno na obrázku 3.27:
1. Hadamardova transformace pro bloky 4x4 složených z jasových DC koeficientů pre-
76
FEKT Vysokého učení technického v Brně
dikovaných v módu 16x16, transformační matice má tvar
⎤
⎡
=
⎢1
⎢
⎢
⎢
⎢
⎢
⎢1
⎢
⎢
⎢
⎢
⎢1
⎢
⎢
⎢
⎣
1
1
1
1⎥
⎥
−1
−1 −1
1 −1
⎥
⎥
⎥
−1⎥
⎥
⎥
⎥.
⎥
⎥
1⎥
⎥
⎥
⎥
⎦
(3.5)
−1
1
2. Hadamardova transformace pro bloky 2x2 složených z chrominančních DC koeficientů predikovaných v jakémkoli módu, transformační matice má tvar
⎤
⎡
=
⎢
⎢1
⎢
⎢
⎢
⎣
1⎥
⎥
(3.6)
⎥
⎥.
⎥
⎦
1 −1
3. Diskrétní kosinová transformace pro bloky o velikosti 4x4 pixely , transformační
matice má tvar
⎤
⎡
=
⎢1
⎢
⎢
⎢
⎢
⎢
⎢2
⎢
⎢
⎢
⎢
⎢1
⎢
⎢
⎢
⎣
1
1
1
−1
−1 −1
1 −2
2
1⎥
⎥
⎥
⎥
⎥
−2⎥
⎥
⎥
⎥.
⎥
⎥
1⎥
⎥
⎥
⎥
⎦
(3.7)
−1
Kvantizace využívá skalární kvantizér využívající 52 kvantizačních kroků. Základní kvantizace probíhá dle vztahu
 = (

),

(3.8)
kde  je koeficient po transformaci, Q určuje kvantizační krok a  je kvantovaný koeficient.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
16
77
17
0
1
2
3
18
19
22
23
4
5
6
7
20
21
24
25
8
9
10
11
12
13
14
15
Cb
Cr
Y
Obrázek 3.27: Čtení bloků z makrobloku
Entropické kódování
Entropické kódování je zajištěno pomocí kódů proměnných délky VLC, dle volby je použito:
1. CABAC (context-adaptive binary arithmetic coding),
2. CAVLC (context-adaptive variable length coding),
3. kódy Exp-Golomb.
3.5.2
Hlavní profil
Hlavní profil vychází z profilu základního, nepodporuje skupiny proužků a s ním spojené
libovolné pořadí proužků. Navíc podporuje B proužky, váženou predikci, prokládané video
a CABAC. B proužky jsou predikovány z jednoho nebo dvou referenčních snímku před
nebo po právě kódovaném. Pro predikci se používají snímky ze seznamu 0 i 1.
78
3.5.3
FEKT Vysokého učení technického v Brně
Rozšířený profil
Rozšířený profil je postaven na základním profilu, dále podporuje B-proužky, váženou
predikci a další funkce pro podporu streamovaného videa. Mezi důležité funkce patří nové
typy proužků určené pro přepínání mezi různě kódovanými streamy, SI a SP a funkci pro
dělení dat zdokonalující odolnost proti možným chybám při přenosu.
Proužky SP a SI
Proužky SP a SI umožňují jak efektivní přepínání mezi video-sekvencemi viz obrázek 3.28
a 3.29, tak i náhodný přístup/posun k/v video-sekvenci viz obrázek 3.30. Příklad použití:
Video-sekvence se stejným obsahem je kódována ve více kvalitách (bitových rychlostech).
Uživateli se přepínají rychlosti dle aktuálního připojení.
Proužky SP podporují přepínání mezi podobně kódovanými sekvencemi bez nárůstu bitové
rychlosti způsobenou proužky I. V sekvenci jsou vždy stanoveny tzv. přepínací body, kdy
v každém takovémto bodě jsou tři proužky SP.
P proužky
A0
A1
A2
A3
A4
A5
A6 Stream A
Místo pro přepnutí streamu
B0
B1
P proužky
B2
B3
I proužek
B4
B5
B6
P proužky
Obrázek 3.28: Přepnutí streamu pomocí proužku I
Stream B
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
P proužky
A0
A1
SP proužek
A2
A3
P proužky
A4
A5
A6 Stream A
B4
B5
B6
AB3
B0
B1
B2
B3
Stream B
Obrázek 3.29: Přepnutí streamu pomocí proužku SP
SP proužek
P proužky
A0
A1
A2
A3
A4
A5
A0A3
Obrázek 3.30: Posun ve streamu pomocí proužku SP
A6 Stream A
79
80
FEKT Vysokého učení technického v Brně
4
DISTRIBUCE MULTIMEDIÁLNÍHO OBSAHU
4.1
Video na vyžádání
Video na vyžádání VoD (Video on Demand) je technologie umožňující on-line ovládání videosekvence z určité vzdálené databáze. Technologie VoD jinými slovy podporuje všechny
služby, které jsou známy z klasického videorekordéru. Vzhledem k různě používaným
pojmům definujeme následující:
• Streamování v reálném čase – sledování živého videa. Klienti, kteří se připojí ke
streamu po jeho začátku budou vidět dané video od času, od kterého se připojili.
Se streamem nemohou žádným způsobem manipulovat.
• Progresivní stahování/video na vyžádání – sledování videa od začátku. Klient může
sledovat vybrané video a může s ním i vzdáleně manipulovat.
Dále se můžeme potkat s pojmem bitová rychlost:
• Bitová rychlost při přehrávání – počet bitů za sekundu potřebnýh pro reprezentaci
audia a videa po zdrojovém kódování.
– Konstantní bitová rychlost (CBR)– stejný počet bitů za sekundu v každém
momentě přehrávání.
– Variabilní bitová rychlost (VBR) – počet bitů za sekundu se může každou
sekundu lišit.
Služba video na vyžádání se dělí do dvou kategorií:
1. Centralizovaná služba – Server nebo serverové centrum vysílá audio/video všem
klientům. Server je zodpovědný za přístup k datům, jejich uložení a distribuci. Klient
je zodpovědný za příjem a dekódování dat.
2. Decentralizovaná služba – Neexistuje rozdíl mezi serverem a klientem. Klienti aktivně participují na posílání videa ostatním uživatelům. Necentralizovaná služba je
založená na technologiích peer-to-peer a funguje bez centrálního serveru.
4.1.1
Centralizované systémy služby video na vyžádání
Centralizované služby video na vyžádání nabízí v současnosti například YouTube, CNN
apod. V následujícím textu budou popsány technologie, které se v rámci distribuce mul-
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
81
timediálního obsahu v centralizovaných systémech používají.
Batching a Patching
Z důvodu, že video na vyžádání potřebuje pro svůj provoz velkou šířku pásma, je zapotřebí
redukovat požadavky na server.
Batching
Batching snižuje potenciální požadavky na šířku pásma pří posílání streamu více klientům.
Nevýhodou batchingu je, že nové klienty požadující stream nelze připojit k již vysílanému
obsahu. Vysílání streamu je rozložené do několika () kanálů, ve kterých se obsah vysílá se
stejnou bitovou rychlostí (CBR). Každý kanál vysílá kompletní video, kdy začátek vysílání
je různě v čase posunut. Video o délce  je rozděleno na / dílů, tzn. maximální čekací
doba na spuštění videa je dána podílem /. Redukce čekajícího času je možná pomocí
techniky patching.
Příklad je uveden na obrázku 4.1. Film má delku 30 minut a je rozdělen do tří intervalů
po deseti minutách. Klient požaduje video spustit například v okamžiku, když už je 5
minut streamované. V tomto případě čeká pět minut na interval :10, tehdy se spustí. V
tuto chvíli se video začne streamovat všem uživatelům, kteří o něj zažádali.
Patching
Batching nepodporuje pravou službu video na vyžádání. Klienti vždy musí čekat určitý
čas, než se ke streamu mohou připojit. Pro zdokonalení batchingu, pro přístup ke streamu
v jakýkoli čas, lze použít patching. Pokud klient vyžaduje stream v libovolném čase, část
videa, která je potřeba pro přehrávání až do začátku intervalu daného batchingem je
unicastově streamována přímo danému uživateli. Příklad použití patchingu je vyobrazen
na obrázku 4.2.
4.1.2
Decentralizované systémy služby video na vyžádání
Decentralizované systémy videa na vyžádání jsou založeny na peer-to-peer modelu.
82
FEKT Vysokého učení technického v Brně
30 minutový
:00 :10 :20 SERVER
film
Klienti se
připojují v
intervalech
KLIENT
[:20,:00]
KLIENT
[:00,:10]
KLIENT
[:10,:10]
Obrázek 4.1: Batching – příklad
Model peer-to-peer
Sítě peer-to-peer (P2P) umožňují uživatelům spolupracovat bez potřeby centralizované
komonenty.
V sítích peer-to-peer je potřeba zajistit:
• Dynamiku účastníků – nevýhodou sítí peer-to-peer je to, že uživatelé se mohou
kdykoli připojit a odpojit a to bez předchozího upozornění. Pokud tedy chceme,
aby služba peer-to-peer byla trvalá, je zapotřebí počítat s velkou redundanci.
• Směrování – je zapotřebí navrhnout efektivní architekturu pro směrování, která bude
škálovatelná a odolná proti chybám.
• Vyhledávání – je zapotřebí vybudovat efektivní škálovatelný vyhledávací algoritmus
tak, aby uživatel našel vždy to, co požaduje.
• Skupinové vysílání (multicast) – v případě více uživatelů v jedné síti sledující stejné
vysílání je vhodné použít multicastové vysílání.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
83
Čas T
SERVER
p
Při
j
o ju
es
e
Batch
Klienti se
připojují v
intervalech
KLIENT
[:20,:00]
KLIENT
[:00,:10]
KLIENT
[:10,:10]
Čas T+1
SERVER
p
Při
j
o ju
es
e
Batch
Patch
Klienti se
připojují v
intervalech
KLIENT
[:20,:00]
KLIENT
[:00,:10]
Progressbar, posílání začátku videa
Progressbar, posílání konce videa
Obrázek 4.2: Patching – příklad
KLIENT
[:10,:10]
84
FEKT Vysokého učení technického v Brně
Topologie
Organizace peer-to-peer uživatelů je velmi důležitá. Peer-to-peer systém je dynamický a
neustále se v něm mění uživatelé (někteří se připojí, někteří zase odpojí). Žádný uživatel
nemá k dispozici všechny cesty k ostatním uživatelům. Každý uživatel je přímo připojen
pouze s malým množstvím okolních uživatelů, kteří se nazývají sousedé.
Topologie uživatelů může být následující:
• Nestrukturovaná – Uzly nemají žádnou strukturu.
• Hrozen – Nestrukturovaná síť uživatelů sledujících/sdílejících shodné video.
• Řetěz – Strukturovaná síť uživatelů sledujících/sdílejících stejné video. V síti je
implementován batching bez čekací periody.
• Strom – Stromy jsou zobecněné řetězce. Jeden uživatel obsluhuje více jiných klientů.
Vysílání více uživatelům způsobuje nárůst odchozí šířky pásma, zároveň však redukuje hloubku stromu. Stromová topologie je často označovaná jako aplikační úroveň
multicastového stromu.
Vyhledávání
Vyhledávání je v sítích peer-to-peer důležité vzhledem k rozprostření obsahu v rozsáhlé
síti. Existují následující možnosti:
• Centralizovaná indexace – V síti existuje server, který indexuje jednotlivá média.
Dotazy uživatelů jsou odesílány na tento server. V případě jeho selhání je vyhledávání nedostupné.
• Technika záplavy – Dotaz je od uživatel odesílán všem sousedům. Ti hledají svůj index lokálně a posílají dotaz dále. Přesměrování na další uživatele může být omezeno
na určitý počet přeskoků z důvodu úspory šířky pásma. Záplavová technika spotřebovává obrovskou šířku pásma a většinou vede k celkovému zpomalení a zvýšení
doby odezvy systému.
• Distribuovaná hašovací tabulka – Nabízí vynikající škálovatelnost a deterministické
chování avšak s tou nevýhodou, že ukládá vždy pouze dvojici (klíč, hodnota). Vyhledávání tímto systémem vyžaduje přesné zadání slova (klíče) pro vyhledávání. Zcela
nevhodné je využít tento systém v prostředí, kde svým obsahem přispívají miliony
uživatelů.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
85
• Sémantické směrování – Sémantické směrování implicitně vytváří skupinu uzlů s
podobnými zájmy. Při směrování dotazu jsou vybrány vždy pouze ty uzly, které
tomuto dotazu odpovídají. Tím se omezí vyhledávací strom pouze na ty uzly, které
poskytují požadovaný obsah.
86
4.2
FEKT Vysokého učení technického v Brně
Protokoly RTP/RTCP
Protokoly RTP (Real-time Transport Protocol) a RTCP (RTP Control Protocol) jsou
definovány v RFC 3550 [9], slouží k přenosu multimediálních dat a kontrole kvality služeb
v rámci multimediální relace.
RTP protokol a jeho vlastnosti
Protokol RTP slouží je protokolem aplikační vrstvy a slouží výhradně k přenosu multimediálních dat. Je využíván například ve službě IPTV nebo VoD. Kromě vlastních
multimediálních dat obsahuje informace znázorněné na obrázku 4.3.
4b
V
P X
4b
CSRC
count
8b
M
16b
Payload type
Sequence Number
Timestamp
Synchronization source (SSRC) identifier
Contributing source (CSRC) identifier
…
Header Extension (optional)
Payload header
Payload data
Padding
Obrázek 4.3: Hlavička protokolu RTP
Version (verze) (2b)
Identifikuje verzi protokolu, RFC 3550 definuje současnou verzi 2.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
87
Padding (výplň) (1b)
Identifikuje výskyt doplňkových oktetů na konci užitečných dat. Tyto oktety nejsou součástí přenášené informace. Poslední oktet výplně nese informaci o počtu přidaných oktetů,
které mají být při dekódování paketu ignorovány.
Extension (rozšíření) (1b)
Pokud je bit nastaven na hodnotu 1, standardní hlavička paketu RTP musí být doplněna
rozšířením.
CSRC Count (počet přispívajících zdrojů) (4b)
Indikuje počet CSRC identifikátorů, které rozšiřují základní hlavičku.
Marker (1b)
Interpretace Markeru je definována profilem. Marker je používán k oznámení určité události, např. poslední paket přenášeného snímku.
Payload Type (typ zátěže) (7b)
Specifikuje typ zátěže přenášené v RTP paketu. Přesná interpretace pole typ zátěže definuje profil RTP, který svazuje čísla typů zátěže s různými datovými formáty. V profilech
pro jsou definovány statické tabulky primárně provazující čísla zátěže s audio či video kodeky - výchozí nastavení je specifikované v doporučení RFC 3551. Typy zátěže v rozsahu
čísel 96 - 127 jsou rezervovány pro dynamické přiřazení kodeků, které jsou nebo mohou
být v dané relaci použity.
Sequence Number (sekvenční číslo) (16b)
Sekvenční číslo je používáno k identifikaci paketů a k poskytnutí přehledu o doručených
paketech. Přijímač tak může detekovat příchozí pakety mimo pořadí či ztracené pakety.
Sekvenční číslo se s každým dalším paketem inkrementuje o 1. Pokud dosáhne své maximální hodnoty, nuluje se. Důsledkem malého počtu bitů dochází k nulování sekvenčního
88
FEKT Vysokého učení technického v Brně
Registry:
PT
encoding name
audio/video (A/V) clock rate (Hz)
-------- -------------- ----------------- --------------0
PCMU
A
8000
1
Reserved
2
Reserved
3
GSM
A
8000
4
G723
A
8000
5
DVI4
A
8000
6
DVI4
A
16000
7
LPC
A
8000
8
PCMA
A
8000
9
G722
A
8000
10
L16
A
44100
11
L16
A
44100
12
QCELP
A
8000
13
CN
A
8000
14
MPA
A
90000
[RFC3551][RFC2250]
15
G728
A
8000
16
DVI4
A
11025
17
DVI4
A
22050
18
G729
A
8000
19
Reserved
A
20
Unassigned
A
21
Unassigned
A
22
Unassigned
A
23
Unassigned
A
24
Unassigned
V
25
CelB
V
90000
26
JPEG
V
90000
27
Unassigned
V
28
nv
V
90000
29
Unassigned
V
30
Unassigned
V
31
H261
V
90000
32
MPV
V
90000
33
MP2T
AV
90000
34
H263
V
90000
35-71
Unassigned
?
72-76
Reserved for RTCP conflict avoidance
77-95
Unassigned
?
96-127
dynamic
?
channels (audio)
---------------1
Reference
--------[RFC3551]
1
1
1
1
1
1
1
2
1
1
1
[RFC3551]
[Kumar][RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3551]
[RFC3389]
1
1
1
1
[RFC3551]
[DiPol]
[DiPol]
[RFC3551]
[RFC2029]
[RFC2435]
[RFC3551]
[RFC4587]
[RFC2250]
[RFC2250]
[Zhu]
[RFC3551]
[RFC3551]
Obrázek 4.4: Typy zátěže
čísla velmi často. V typické VoIP aplikaci, kdy jsou pakety posílány každých 20 milisekund, se sekvenční číslo nuluje přibližně každých 20 minut. Z toho vyplývá, že aplikace
by neměly spoléhat na sekvenční čísla jako na jedinečné identifikátory paketů. Je doporučené použití rozšířených 32 bitových sekvenčních čísel. Počáteční hodnota sekvenčního
čísla by měla být vybrána z důvodu bezpečnosti náhodně a neměla by začínat nulou.
Timestamp (časové razítko) (32b)
Časové razítko označuje okamžik prvního oktetu dat v paketu. Jeho hlavní využití je
při plánování přehrávání multimediálních dat. Časové razítko je zastoupeno 32 bitovým
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
89
číslem, které narůstá v závislosti na prostředcích. Pokud dosáhne maximální hodnoty, je
nulováno. Typické kodeky videa užívají rychlost 90 kHz, což koresponduje s 13 hodinami
přehrávání bez vynulování časového razítka. Pokud použijeme 8 kHz audio, potom k
vynulování dojde přibližně za 6 dní. Počáteční hodnota časového razítka je náhodná opět
z důvodu bezpečnosti. Užívání náhodné počáteční hodnoty je důležité pokaždé, pokud
nejsou data šifrována.
Synchronization Source (SSRC) Identifier (Identifikátor zdroje synchronizace)
Identifikátor zdroje synchronizace identifikuje jednotlivé účastníky relace RTP. Jedná se
o 32 bitové náhodně generované číslo pro každého účastníka. Po výběru SSRC ho uživatel
používá v každém paketu. V důsledku toho, že SSRC jsou vybírány lokálně, může dojít k
tomu, že 2 účastníci budou mít stejné SSRC číslo. V takovém případě dojde ke kolizi. Po
zjištění kolize SSRC účastníkem musí účastník poslat zprávu RTCP BYE pro originální
SSRC a následně vybrat nové SSRC. Takováto detekce kolize zajišťuje, že SSRC je jedinečné pro každého účastníka. Všechny pakety se stejným SSRC tvoří jeden tok od jednoho
účastníka. Pokud účastník generuje více proudů v jednom sezení, jednotlivé proudy jsou
identifikovány různým SSRC.
Contributing Source (CSRC) Identifier (Identifikátor přispívajícího zdroje)
Za normálních okolností jsou data v paketu RTP generována jedním zdrojem. V případě
více zdrojů a použití mixeru dochází k tomu, že paket RTP nese data z více zdrojů. Jednotliví účastníci, kteří přispívají svým obsahem, dostanou přidělený identifikátor CSRC, výsledný paket obsahuje identifikátor SSRC mixeru. Každý přispívající zdroj je identifikován
32 bitovým číslem odpovídajícím SSRC účastníka. Počet CSRC záznamů je specifikován
v hlavičce v poli CSRC Count.
Header Extension (rozšířená hlavička)
Hlavička RTP povoluje rozšíření, které je signalizováno bitem X. Rozšířená hlavička následuje po pevné hlavičce a je před samotnou zátěží. Může mít libovolnou délku, začíná 16
bity označující typ následovanými 16 bity definující délku pole (délka rozšířené hlavičky
90
FEKT Vysokého učení technického v Brně
mimo počátečních 32 bitů). Rozšířené hlavičky se používají v případě, kdy je potřeba
zahrnout více informací, než umožňuje standardní hlavička RTP.
Payload Header (hlavička zátěže)
Povinná hlavička RTP paketu poskytuje obecnou informaci o každé zátěži. V mnoha
případech je potřeba pro činnost více informací, které jsou definovány jako část zátěže.
Hlavička zátěže je umístěná za fixní hlavičkou RTP.
Payload Data (zátěž)
Užitečná data jsou poslední částí paketu RTP. Formát a velikost zátěže závisí předem na
vyjednaných parametrech.
RTCP protokol a jeho vlastnosti
Pro kontrolu a řízení multimediální relace slouží protokol RTCP. RTCP zajišťuje následující funkce:
• Kvalitu služeb a kontrolu zahlcení – Protokol RTCP poskytuje zpětnou vazbu
na kvalitu distribuce paketů RTP. Protože RTCP může být vysíláno na multicastovou adresu, všichni uživatelé mohou získat informaci, jakým způsobem byla data
v paketech RTP doručena k jiným uživatelům. Reporty vysílajících (SR - Sender
Reports) umožňují přijímači odhadovat přenosovou rychlost a kvalitou přenosu. Reporty příjemců (RR - Receiver Reports) nesou informace o problémech přijímačů a
dále zahrnují čísla ztracených paketů a informaci o kolísání zpoždění na přijímací
straně. Pomocí těchto reportů může aplikace vysílající audio či video data snížit či
zvýšit kvalitu poskytovaného obsahu.
• Identifikaci – Pakety RTCP nesou informaci o zdroji RTP - kanonické jméno (Canonical Name) - CNAME. Zatímco identifikátor SSRC RTP paketu může být při
kolizi změněn, CNAME musí být během přenosu jedinečně. Přijímací stanice jej
využívají také k identifikaci a seskupení více streamů od jednoho uživatele.
• Odhad velikosti relace – Každý účastník relace posílá periodicky informaci sám
o sobě. S narůstajícím počtem účastníků se interval zasílání RTCP informací zvyšuje. U sezení s malým počtem účastníků jsou pakety RTCP posílány s nejkratší
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
91
možnou periodou a to přibližně každých 5 sekund. Pakety RTCP by měly zatížit
linku maximálně 5% z celkové přenosové rychlosti relace.
Formáty paketů RTCP
Doporučení RFC 3550 [9] definuje následující typy paketů RTCP:
• Sender Report (SR) – Aktivní účastníci relace posílají pomocí zpráv SR statistické informace o přenosu.
• Receiver Report (RR) – Pasivní účastníci relace generují na základě SR statistiky
příchozích paketů RTP. Informace o těchto statistikách nese RR.
• Source Description (SDES) – Vždy obsahuje CNAME, může obsahovat i další
údaje popisující relaci.
• Goodbye (BYE) – Indikuje odchod účastníka z relace.
• Application specific (APP)
Přijímače a vysílače paketů RTCP poskytují informace o přenosu pomoci SR a RR zpráv.
V těchto zprávách jsou přenášeny jednoznačné identifikátory jednotlivých spojení, časová
razítka pro zajištění správného přehrávání médií, informace o počtu ztracených paketů,
průměrném zpoždění, kolísání zpoždění a další informace potřebné pro měření kvality
spojení.
Pakety SDES jsou využívány zdroji vysílání pro poskytnutí informací o nich samotných.
Pakety jsou složeny z hlavičky a dalších informací, kde každá z nich začíná jednoznačným
identifikátorem zdroje. Typy zpráv SDES podle RFC 3550 najdete v tabulce 4.1.
4.3
Protokol RTSP
Protokol RTSP sestavuje a řídí vysílání a následný příjem jednoho nebo více streamů
audio/video a je definovaný v doporučení RFC 2326 [10]. Jinými slovy je protokol RTSP
tzv. „síťový dálkový ovladač “ pro multimediální servery.
Jednotlivé streamy řízené protokolem RTSP jsou ve většině případů přenášeny pomocí
protokolu RTP, není tomu však podmínkou. Protokol RTSP se velmi podobá protokolu
HTTP/1.1.
92
FEKT Vysokého učení technického v Brně
HODNOTA
JMÉNO
0
END
1
CNAME
POPIS
Konec seznamu SDES
Kanonické jméno (Canonical Name): jednoznačné
jméno v rámci jedné RTP relace
2
NAME
Reálné jméno uživatele
3
EMAIL
Emailová adresa
4
PHONE
Telefonní číslo
5
LOC
6
TOOL
Název aplikace generující stream RTP
7
NOTE
Zpráva popisující současný stav zdroje
Geografická poloha
Tabulka 4.1: Informace v paketech SDES
Protokol RTSP podporuje následující funkce:
• Získání multimediálních dat z multimediálního serveru – Klient může požádat o popis vysílání přes http nebo jiným způsobem. V případě, že vysílání je
multicastové, popis vysílání obsahuje multicastové adresy a porty jednotlivých multimediálních dat. V případě unicastového vysílání, klient poskytne z bezpečnostních
důvodů adresu cíle.
• Pozvání multimediálního serveru do konference – Multimediální server může
být vyzván k připojení se do existující konference za účelem přehrání multimediálních dat do prezentace nebo zaznamenání všech účastníků prezentace. Tento mód
je užíván zejména pro distribuci dat při vzdálené výuce.
• Přidání multimediálních dat do existující prezentace – Zejména při živém
vysílání je užitečné, aby se server mohl dotázat klientů, zda chtějí přijímat dodatečný
obsah.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
93
Adresace v RTSP
Zprávy RTSP jsou využívány k odkazování se na multimediální streamy. URL pro RTSP
má následující tvar:
• rtsp://host:port/absolutní cesta
RTSP využívá transportní protokol TCP a port 554 a funguje na modelu komunikace
klient-server (žádost vs. odpověď). Metody využívané protokolem RTSP jsou popsané v
tabulce 4.2.
Metoda
Směr
Objekt
Důležitost
DESCRIBE
C→SC→S
P, S
Doporučený
ANNOUNCE
C → S, S → C
P, S
Volitelný
GET_PARAMETER
C → S, S → C
P, S
Volitelný
OPTIONS
C→S
P, S
Povinný
S→C
Volitelný
PAUSE
C→S
P, S
Doporučený
PLAY
C→S
P, S
Povinný
RECORD
C→S
P, S
Volitelný
REDIRECT
S→C
P, S
Volitelný
SETUP
C→S
S
Povinný
SET_PARAMETER
C → S, S → C
P, S
Volitelný
TEARDOWN
C→S
P, S
Povinný
Tabulka 4.2: Metody používané protokolem RTSP
94
FEKT Vysokého učení technického v Brně
Metoda DESCRIBE slouží k vyžádání popisu prezentace či multimediálních dat identifikovaných požadovanou adresou URL.
Metoda OPTIONS se využívá ke získání dostupných metod určitého zařízení.
Metoda ANNOUNCE má 2 cíle. V případě, kdy ji vysílá klient na server, je posílán popis prezentace nebo multimediálních dat identifikovaných dle požadované URL. V
případě, že je zpráva vysílána od serveru ke klientovi, aktualizuje v reálném čase popis
relace.
Metoda SETUP specifikuje, jakým způsobem budou multimediální data přenášena.
Metoda PLAY oznamuje serveru, aby začal přehrávat daný multimediální tok.
Metoda PAUSE oznamuje serveru, aby přerušil vysílání multimediálních dat.
Metoda TEARDOWN oznamuje serveru, aby ukončil vysílání multimediálních dat a
rozvázal s klientem spojení.
Metoda GET_PARAMETERS požaduje získání zvoleného parametru. Poku je metoda prázdná, testuje, zda opačná strana je k dispozici či ne (obdoba operace ping).
Metoda SET_PARAMETERS požaduje nastavení určitých parametrů prezentaci
specifikované pomocí URI.
Metoda REDIRECT oznamuje klientovi nutnost přesměrovat se na jiný server.
Metoda RECORD spouští zaznamenávání multimediálního vysílání.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
4.4
95
Protokol SDP
Protokol SDP zajišťuje přenos detailů o přenášených datech potřebné při navazování spojení při multimediálních konferencích, hovorů VoIP, streamování videa či jiných spojeních.
Protokol SDP není transportním protokolem, k jeho přenosu se využívají protokoly SAP
(Session Announcement Protocol), SIP (Session Initiation Protocol), RTSP (Real Time
Streaming Protocol), e-mail použitím MIME a HTTP (Hypertext Transport Protocol).
Protokol SDP je definován v doporučení RFC 4566 [3].
Popis relace pomocí protokolu SDP obsahuje:
• název relace a její účel,
• čas, po který je relace aktivní,
• média obsažená v relaci,
• informace potřebné k příjmu (adresy, porty, formáty, atd.),
• informace o šířce pásma, která je potřeba k připojení se do relace (pokud je nutné),
• kontaktní informace na osobu zodpovědnou za relaci.
Protokol SDP je textově orientovaný a používá znakovou sadu UTF-8. Popis protokolu
SDP je složen z několika řádků, které jsou strukturovány jako:
• <    >=<    >.
Typ je vždy jedno malé písmeno, hodnotou může být několik slov oddělených mezerou.
Některé řádky popisu jsou povinné, některé volitelné. Soupis všech typů a hodnot je
uveden v následujícím textu, kde typy označené „*“ patří mezi typy volitelné. Veškeré
textové popisy by měly splňovat standard ISO 10646, kódování UTF8.
Popis relace
• v= (protocol version)
• o= (owner/creator and session identifier).
• s= (session name)
• i=* (session information)
• u=* (URI of description)
• e=* (email address)
96
FEKT Vysokého učení technického v Brně
• p=* (phone number)
• c=* (connection information - not required if included in all media)
• b=* (bandwidth information)
• z=* (time zone adjustments)
• k=* (encryption key)
• a=* (zero or more session attribute lines)
Popis času
• t= (time the session is active)
• r=* (zero or more repeat times)
Popis médií
• m= (media name and transport address)
• i=* (media title)
• c=* (connection information - optional if included at session-level)
• b=* (bandwidth information)
• k=* (encryption key)
• a=* (zero or more media attribute lines)
V následujícím textu budou jednotlivé položky blíže pospány.
Verze protokolu (Version) (v=)
• v=0
• Definuje verzi protokolu, v současnosti se jedná o verzi 0.
Původ (Origin) (o=)
• o= <username><sess-id><sess-version><nettype><addrtype><unicast-address>
– <username>
∗ je login uživatele, který je zdrojem dat nebo je „-“ v případě, že tato položka není na uživatelské straně podporována. Položka <username >nesmí
být prázdná.
– <sess-id>
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
97
∗ je řetězec čísel, který společně s parametry <username>, <sess-version>,
<nettype>, <addrtype>a <unicast-address>tvoří jedinečný identifikátor
relace. Parametr <sess-id>je generován, často je užívána časová značka
NTP protokolu (Network Time Protocol).
– <sess-version>
∗ je číslo relace, které je stejně jako u <sess-id>doporučené generovat z NTP.
– <nettype>
∗ je textový řetězec udávající typ sítě. Primárně je definován typ „IN“, což
značí Internet.
– <addrtype>
∗ je textový řetězec udávající typ adresy, která následuje. Primárně je definován typ „IP4“ a „IP6“.
– <unicast-address>
∗ je adresa zařízení, které založilo relace.
Název relace (Session name) (s=)
• s=<session name>
• Textový název relace ve formátu ISO 10646.
Informace o relaci (Session information) (i=)*
• i=<session description>
• Textová informace o relaci. Každá relace může mít pouze jeden popis, každé médium
může mít popis. Popis může být definován v atributu „a=“.
URI (u=)*
• u=<uri>
• Uniform Resource Identifier - jedinečný identifikátor zdroje. Může odkazovat na
dodatečné informace k relaci (například stránky WWW).
Email Address and Phone Number (e= a p=)*
• e=<email-address>
98
FEKT Vysokého učení technického v Brně
• p=<phone-number>
• Kontaktní informace osoby zodpovědné za relaci. Nemusí být shodná se zakladatelem relace. V popisu může být více emailových adres i telefonních čísel.
• Telefonní číslo by mělo být definované v mezinárodním tvaru podle doporučení ITUT E.164. Příklad: +420 123 456 789.
• U emailu jsou povolené dva zápisy.
– [email protected] (Petr Jedlicka)
– Petr Jedlicka <[email protected]>
Connection Data (c=)*
• c=<nettype><addrtype><connection-address>
• Každá relace musí obsahovat nejméně jedno pole c=. To je obsažené buď v těle
popisu relace - globálně, nebo jednotlivě u každého média.
– <nettype>popisuje typ sítě, primárně je definované IN - Internet.
– <addrtype>popisuje typ adresy, standardně IP4 a IP6.
– <connection-address>specifikuje připojovací adresu.
• Příklad pro IPv4:
– c=IN IP4 224.2.1.1/127/3 (Internet, IPv4, 224.2.1.1/ttl=127/max tři účastníci.
• TTL a maximální počet účastníků nemusí být uveden.
Bandwith (b=)*
• b=<bwtype>:<bandwith>
• Definuje požadovanou šířku pásma pro připojení do relace.
• <bwtype>
– CT - definuje celkovou maximální šířku pásma pro relaci - se všemi připojenými
body např. do videokonference.
– AS - definuje maximální šířku pásma jednoho uživatele připojujícího se do
relace.
Time Zones (z=)*
• z=<adjustment time><offset><adjustment time><offset>....
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
99
• Časovou zónu je potřebné nastavit z důvodu možného přehrávání relace v jiném
časovém pásmu.
• V případě zavedení je v položce <t=>parameter <start-time>roven NTP počátku
vysílání, parametr <stop-time>určuje NTP po posledním odvysílání.
Encryption keys (k=)*
• k=<method><encryption key>
• SDP protokol může být využit pro přenos šifrovacích klíčů.
Atributes (a=)*
• a=<atribute>:<value>
• Doplňují popis relace nebo popis přenášeného mediálního toku.
Popis času
Timing (t=)
• t=<start-time><stop-time>
• Definuje začátek a konec relace. Tento parametr může být definován vícekrát v
případě, že relace se opakuje v různé časy.
• Parametry <start-time>a <stop-time>jsou decimální reprezentace NTP v sekundách datovaných k roku 1900.
• V případě, že některý z časů je roven nule, není znám začátek nebo konec.
• V případě, že není znám ani začátek ani konec, relace vznikla bez časového omezení.
Repeat Times (r=)*
• r=<repeat interval><active duration><offsets from start-time>
• Definuje opakování určité relace.
• V případě zavedení je v položce <t=>parameter <start-time>roven NTP počátku
vysílání, parametr <stop-time>určuje NTP po posledním odvysílání.
• Parametr <repeat interval>určuje periodu opakování, parametr <active duration>stanoví
100
FEKT Vysokého učení technického v Brně
dobu po kterou má dané opakování probíhat a parametr <offsets from starttime>určí posunutí počátku - může být uveden i vícekrát.
Popis médií
Media Announcement (m=)
• a=<media><port><transport><fmt list>
• Popis relace může obsahovat jeden i více řádku popisujících přenášená média. Každý
popis média začíná řádkem m= a končí příštím řádkem začínajícím na m=.
• <media>– typ přenášeného média – v současnosti „audio“, „video“, „application“,
„data“ a „control“.
• <port>– transportní port.
• <transport>– v současnosti definované jsou RTP/AVP a UDP.
• <fmt list>– formát média – standardně je definováno číslo zátěže v protokolu RTP
(Payload Type)
Atributy pro média (a=)*
• a=rtpmap:<payload type><encoding name>/<clock rate>[/<encoding parameters>]
• <encoding parameters>– pro audio určuje počet kanálů, pro video není definované.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
5
101
VODOZNAČENÍ DIGITÁLNÍCH DAT
Zabezpečení multimediálních dat je v současné době v popředí zájmů. S rostoucí přenosovou šířkou pásma a propustností Internetu je v dnešní době velmi složité zajistit ochranu
autorských práv k multimediálním, ale i k jiným dílům, jež jsou zveřejněny na internetových stránkách nebo uloženy v on-line datových úložištích. Největším problémem však
zůstávají právě multimediální data v podobě obrazu, audio či video nahrávek. Po celém
světě existuje mnoho nelegálních datových úložišť, odkud denně putují skrze Internet terabyty dat přímo k uživatelům. To zapříčiňuje vysoké ztráty jak duševního, tak i finančního
charakteru. Nejen komerční, ale i domácí produkce jsou často zneužívány pro osobní či
komerční účely třetích stran. Příkladem je používání fotografií na webových prezentacích.
Prezentované fotografie nejsou ve většině případů nijak zabezpečené a jakýkoli uživatel je
může stáhnout, editovat, upravit a následně vydávat za vlastní. Tento případ se vyskytuje
velmi často. Nepomáhá ani značka Copyright na vytvořených webových stránkách, která
uživatele upozorňuje, že veškerý obsah je duševním vlastnictvím majitele webové prezentace. Z těchto důvodů se stále vyvíjí nové techniky pro zabezpečení takto vystavených dat.
Digitální multimediální data lze v současné době zabezpečit pomocí metod založených na
šifrování, vodoznačení a steganografii.
Šifrovací techniky se používají k zabezpečení neautorizovaného přístupu k digitálnímu
médiu. Pro prezentační účely multimediálních dat mají velkou nevýhodu a to nemožnost
zobrazení digitálních fotografií či videa bez znalosti dešifrovacího algoritmu. To znamená,
že by obrazy či video ve webové prezentaci nebyly zobrazeny neautorizovaným uživatelům. Díky tomuto omezení je použití těchto technik nemožné. Šifrování se pro zabezpečení
multimediálních dat, která potřebují být uživatelsky přístupná, neuplatňuje. Své uplatnění však nalezlo v zabezpečení vodoznaků, které jsou vkládány do multimediálních dat
technikami vodoznačení.
Steganografie se využívá pro ukrytí vodoznaku do originálních dat. Její uplatnění lze
nalézt v případech, kdy příjemce požaduje ověření původu dat a jejich správnost. To se
provede extrakcí vodoznaku z vodoznačených dat. V případě, že je extrahovaný vodoznak
absolutně shodný s originálem, může příjemce prohlásit, že přijatá data jsou skutečně
původní a nepozměněná. Steganografické metody se také používají pro přenos tajné zprávy
102
FEKT Vysokého učení technického v Brně
k příjemci.
Vodoznačící techniky umožňují vložit vodoznak, stejně jako steganografické metody, do
originálních dat. Vodoznaky se využívají zejména pro identifikaci autora, ale také pro
prokázání autorství k určitému dílu. Základní princip vodoznačení digitálních obrazů popisuje obrázek 5.1. Do originálního obrazu  je zvolenou technikou vložen vodoznak
 , čímž vznikne vodoznačený obraz  , který je přenášen komunikačním kanálem. Tam
na něj může či nemusí být proveden určitý útok. Později může být vodoznak detekován
a vyjmut. Na rozdíl od steganografických metod je u vodoznačících metod pamatováno
na možnost pokusu o znehodnocení vloženého vodoznaku. Jedním z jeho nejdůležitějších
parametrů je tedy jeho odolnost.
Originální
obraz
+
Vodoznačený
obraz
Komunikační kanál
Vodoznačený
obraz
Vodoznak
Vodoznak
Obrázek 5.1: Základní systém pro vodoznačení
5.1
Požadavky na vodoznak
Na vodoznaky jsou kladeny velké nároky a to celkem v šesti základních oblastech, k nimž
spadá odolnost, nevnímatelnost, bezpečnost, složitost, kapacita a spolehlivost.
Odolnost
Odolnost vodoznaku je dána nemožností jeho odstranění bez předchozích znalostí postupu
vkládání a tajného klíče. Odolnost je také chápána jako odolnost vůči změnám a modifikacím původního souboru. U obrazu jsou to např. změna velikosti, komprese, rotace,
filtrace a další. Velmi důležitá je odolnost vůči kompresím, kde u kompresí obrazu JPEG,
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
103
JPEG2000 dochází k velké ztrátě informace. Odolnost vodoznaku patří k nejdůležitějším
parametrům vodoznaku.
Nevnímatelnost
Nevnímatelnost je jako parametr pro vodoznak taktéž velmi důležitá. Pro zachování nevnímatelnosti vodoznaku v obraze se využívají vlastnosti lidského zrakového systému popsaného v HVS (Human Visual System). Vodoznak je nevnímatelný pouze tehdy, pokud
lidské oko nerozpozná změnu mezi originálním a vodoznačeným obrazem.
Bezpečnost
Bezpečnost vložení vodoznaku je založena na předpokladu, že potencionální útočník nezná
proces vložení vodoznaku, který byl použit. Pokud by byla použita velmi odolná technika,
která by byla veřejně známá, útočník by s menšími obtížemi dokázal vodoznak odstranit.
Taktéž je velmi jednoduché vodoznak odstranit tehdy, pokud je pro útočníka čitelný. Z
toho důvodu se používají jeden i více kryptografických klíčů k zašifrování vkládaného
vodoznaku.
Složitost
Složitost vyjadřuje úsilí potřebné k vložení a detekci vodoznaku. Jedním z nejčastějších parametrů pro srovnání složitosti několika rozdílných vodoznačících systémů je čas. Obecně
platí pravidlo, že prolomení vodoznaku by mělo trvat takový čas, aby po jeho úspěšném
prolomení byla data bezvýznamná.
Kapacita
Kapacita specifikuje množství informace, které může být vloženo do zdrojových dat. Pro
zjištění nelegálnosti kopie postačuje jeden bit. Na druhé straně v aplikacích pro prokázání
vlastnictví k danému dílu je zapotřebí minimálně 70 bitů a to konkrétně na jména autorů,
autorská práva či ISBN.
104
FEKT Vysokého učení technického v Brně
Spolehlivost
Spolehlivost detekce znamená, že vodoznak by měl být dostatečně spolehlivý k prokázání
vlastnictví k danému dílu.
Z uvedených požadavků patří k těm nejdůležitějším odolnost, nevnímatelnost a bezpečnost. V současné době však neexistuje metoda pro vložení vodoznaku, která by splnila všechny z uvedených požadavků v plné míře. Nesplnitelnost lze znázornit na tzv.
„začarovaném trojúhelníku“ – obrázek 5.2, ze kterého je patrné, že nelze vyhovět všem
požadavkům v plné míře.
Nevnímatelnost
Bezpečnost
Robustnost
Obrázek 5.2: Základní požadavky na vodoznak
5.2
Princip vodoznačení
Technika digitálního vodoznačení je definována jako vložení přídavné informace (vodoznaku) do originálních dat tak, aby jejich modifikace nebyla lidským okem postřehnutelná. Základní principy dnes používaných systémů pro vodoznačení jsou přirovnatelné
k symetrickým krypto-systémům (používají stejný klíč při vložení i extrakci vodoznaku).
Každý vodoznačící systém je složen ze dvou sub-systémů - tzv. kodéru a dekodéru. Lze jej
popsat množinou (, , ,  ,  ,  ) kde  značí množinu všech originálních dat, 
je množina všech vodoznaků a  definuje množinu všech klíčů,  značí proces vložení
vodoznaku,  proces extrakce vodoznaku a  je porovnávací funkce. Klíč je nepovinnou součástí vodoznačícího systému, jeho použitím se však zvyšuje bezpečnost vloženého
vodoznaku. Funkce pro vložení vodoznaku  je vyjádřena vztahem
 :  ×  ×  −→ ,
(5.1)
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
105
funkce pro extrakci vodoznaku  je vyjádřena vztahem
 :  ×  −→ .
(5.2)
 :  2 −→ {0, 1},
(5.3)
Funkce pro porovnání
porovnává originální a extrahovaný vodoznak pomocí předem dané rozhodovací úrovně  .
Vstupní parametry procesu vkládání vodoznaku jsou originální obraz  , vodoznak  a
tajný klíč . Vodoznačený obraz  a je dán funkcí
 ( ,  ) =  .
(5.4)
Obecný princip vložení vodoznaku je znázorněn na obrázku 5.3
W
Co
Vložení
vodoznaku E
CW
k
Obrázek 5.3: Obecné schéma systému pro vložení vodoznaku
V závislosti na použité metodě pro vložení vodoznaku je použit tajný nebo veřejný klíč,
anebo není klíč použit vůbec. Většina vodoznačících systémů však používá alespoň jeden,
mnohdy i kombinaci více klíčů.
106
FEKT Vysokého učení technického v Brně
Při procesu detekce a následné extrakce vodoznaku se předpokládá, že vodoznačená data
 byla modifikována. K extrakci mohou být dále použita originální data  a klíč , který
byl použit při vkládání. Obecné schéma pro detekci a extrakci vodoznaku je znázorněno
na obrázku 5.4
W
Co
Detekce a
extrakce
vodoznaku
Cw
W’
k
Obrázek 5.4: Obecné schéma systému pro detekci a extrakci vodoznaku
V závislosti na metodě vkládání vodoznaku je při extrakci potřeba tajný/veřejný klíč
, zdrojová data  , vodoznak  , nebo jejich kombinace. Extrahovaný vodoznak  ′
se obecně liší od originálního vodoznaku  , a to z důvodu manipulace či modifikace
vodoznačených dat  . Pro rozhodování, zda se jedná či nejedená o originální vodoznak,
rozhoduje nastavená úroveň  a funkce
 ( ′ ,  ) = 1, shodnost ≥ ,
(5.5)
 ( ′ ,  ) = 0, shodnost < ,
(5.6)
Úroveň  závisí na použitém algoritmu a měla by být schopna vodoznak jasně identifikovat.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
5.3
107
Systémy vodoznačení
Podle vstupů a výstupů při detekci/extrakci vodoznaku existují 3 skupiny vodoznačících
systémů.
1. Soukromé systémy
Pro vložení vodoznaku  do originálních dat  používají soukromý klíč  a při detekci/extrakci vodoznaku vyžadují minimálně originální data  . Soukromé systémy
lze rozdělit na dva sub-systémy:
• Systém typu I detekuje/extrahuje vodoznak v potenciálně poškozených datech
pomocí originálních dat
 ( ,  ) =  ′ .
(5.7)
• Systém typu II při detekci používá kromě originálních dat i vodoznak. Výsledkem detekce je míra shody extrahovaného vodoznaku  ′ s kopií originálního
vodoznaku  . Při použití systému typu II lze odpovědět na následující otázku:
„Je v datech  vložen vodoznak  ?“ V takovém případě je vodoznakem pouze
1 bit. Při požadavku vyšší odolnosti vodoznaku lze do originálních dat vkládat
více informací. Princip detekce/extrakce vodoznaku je popsán rovnicí
 ( ,  ,  ) =  ′ .
(5.8)
2. Polo-soukromé systémy Při detekci vodoznaku vyžadují znalost soukromého klíče 
a vloženého vodoznaku  . Originální data  nejsou při detekci/extrakci potřeba.
Tyto systémy lze vyjádřit funkcí
 ( ,  ) =  ′ .
(5.9)
Nejčastější využití polo-soukromých systémů je tam, kde přístup k originálním datům není prakticky možný. Polo-soukromé systémy vodoznačení jsou užívány při
kontrole kopírování nebo při zabezpečení ochrany autorských práv.
3. Veřejné systémy U veřejných systémů nejsou k detekci/extrakci vodoznaku potřebná
ani originální data  , ani vodoznak  . Veřejné systémy lze vyjádřit vztahem
 ( ) =  ′ .
(5.10)
108
5.4
FEKT Vysokého učení technického v Brně
Základní metody vodoznačení
Vodoznačící techniky lze přirovnat k principům přenosu dat komunikačním kanálem. Jak
vodoznačení, tak i přenos komunikačním kanálem mají za úkol přenést data od informačního zdroje k cíli. Běžný model komunikace se skládá z bloků popsaných na obrázku
5.5. Tento model byl představen Shannonem v [11]. Zdrojová zpráva  je transformována
zdrojovým kodérem na posloupnost binárních čísel  reprezentující informační sekvenci.
Kanálový kodér tuto informační sekvenci transformuje na kódovou sekvenci  nazývanou
kódové slovo.
k
Zdroj
informace
m
u
Zdrojový kodér
v
Kanálový kodér
Modulátor
Kanál
šum
v’
Demodulátor
Kanálový
dekodér
u’
Zdrojový
dekodér
m’
Příjemce
informace
k
Obrázek 5.5: Základní komunikační model pro zabezpečený přenos
Modulátor má za úkol přizpůsobit kódové slovo  pro přenos kanálem. Transformuje tedy
kódovou sekvenci  na sekvenci vhodnou pro přenos.
Modulovaná zpráva může být během přenosu přenosovým kanálem zasažena chybami
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
109
kanálu, které lze modelovat charakteristikou kanálu.
Na straně příjemce je přenášená zpráva demodulována, čímž se získá kódové slovo  ′ .
Kanálový dekodér dekóduje kódové slovo  ′ na posloupnost binárních čísel ′ . Při bezchybném přenosu je sekvence ′ absolutně rovna originální sekvenci . Zpráva ′ je po
dekódování zdrojovým dekodérem přenesena k příjemci informace.
Komunikační kanály jsou děleny podle typu šumu vznikajícího během přenosu a podle
jeho vlivu na modulovaný signál [6].
Kromě charakteristiky kanálu může být přenos klasifikován podle zabezpečení proti aktivním útokům (snaží se přerušit komunikaci) a pasivním útokům (snaží se o přečtení
přenášené zprávy. Ochrana proti útokům je primárně založena na
• technikách rozprostřeného spektra — prevence proti aktivním útokům,
• šifrování zpráv z důvodu jejich zabezpečení — pro zajištění soukromí.
Model pro vodoznačení vychází z modelu pro komunikaci a skládá se ze stejných základních bloků, které jsou však odlišně interpretovány (viz obrázek 5.6). Blok kodéru a dekodéru je nahrazen blokem pro vložení a extrakci vodoznaku. Zdrojový kodér a modulátor
si zachovávají jak svůj název, tak i funkci.
Analogicky k základnímu komunikačnímu systému se vložení vodoznaku skládá ze tří
kroků:
1. Kódování zprávy  do kódové sekvence  za použití klíče .
2. Modulace kódové sekvence na signál, jehož vlastnosti odpovídají přenosovému kanálu či originálnímu obrazu  .
3. Přidání modulované sekvence do originálního obrazu  => vytvoření vodoznačných
dat.
První techniky implementovaly vodoznačící systém bez jakékoli návaznosti na přenosový
kanál nebo originální obraz. Metody první generace vodoznačících systémů měly předem
definovánu množinu důležitých komponentů vybraných podle určitých kritérií. Jak znázorňuje obrázek 5.7, k vodoznačení se nejčastěji používá transformace obrazového signálu
do jiné domény. Existuje velké množství metod využívajících Fourierovu transformaci,
kde se k vodoznačení využívá koeficientů v pásmu středních frekvencí. [4]
Po mnoha experimentálních testováních bylo dokázáno, že při vkládání vodoznaku je
nutné zachovat důležité části obrazu [5]. Při vkládání vodoznaku do originálního obrazu
110
FEKT Vysokého učení technického v Brně
k
Originální data Co
Vložení vodoznaku
m
v
Zdrojový kodér
Modulátor
+
Cw
Zpracování
Extrakce vodoznaku
v’
C w’
Zdrojový
dekodér
Demodulátor
m’
k
Obrázek 5.6: Základní model komunikačního systému pro vodoznačení
m
Kodér
zprávy
v
Přizpůsobení
Transformace
do domény
pro vkládání
Transformace W
do domény Co
+
Cw
Stanovení
hloubky
vložení h
Co
Obrázek 5.7: Model pro vložení vodoznaku v transformované oblasti
 je tedy nutné najít kompromis mezi kvalitou vodoznačného obrazu  a odolností
vloženého vodoznaku  . Z tohoto důvodu se stanovuje tzv. hloubka vložení ℎ, která
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
111
stanovuje, s jakou váhou bude vodoznak do originálních dat vložen. Mezi vůbec první
metody vodoznačení patří metoda využívající nejméně významné bity obrazových pixelů
a Patchworkův algoritmus.
5.5
Dělení vodoznaků
Digitální vodoznaky a vodoznačící systémy se rozlišují podle pěti kritérií:
1. typ detektoru,
2. viditelnost vodoznaku,
3. zabezpečení,
4. odolnost,
5. oblast pro vložení vodoznaku.
5.5.1
Kritérium – typ detektoru
Podle typu detektoru dělíme vodoznačící systémy na systémy s informovaným a neinformovaným detektorem.
Systémy s informovaným detektorem potřebují pro extrakci vodoznaku originální vodoznak, systémy s neinformovaným detektorem originální vodoznak k extrakci nepotřebují.
Obecně platí pravidlo, že systémy s informovaným detektorem jsou více odolné než systémy s neinformovaným detektorem.
5.5.2
Kritérium – vnímatelnost vodoznaku
Podle vnímatelnosti dělíme vodoznaky na vnímatelné a nevnímatelné.
V současné době je výzkum směřován spíše k nevnímatelným vodoznakům. Skupina vnímatelných vodoznaků však stále existuje. Je možné se s ní setkat v každodenním životě.
Typickým příkladem jsou vodoznaky televizních stanic. Základním rysem vnímatelného
vodoznaku je, že překrývá určitou část originálních dat.
Nevnímatelné vodoznaky mají podstatně složitější algoritmy pro vložení a slouží hlavně k
prokazování autorských práv. Je kladen velmi důrazný tlak na vývoj technik vkládajících
nevnímatelný vodoznak do originálních dat a to z důvodu vysokého nárůstu digitálních
112
FEKT Vysokého učení technického v Brně
plagiátů.
5.5.3
Kritérium – zabezpečení
Dle zabezpečení jsou vodoznaky rozděleny na veřejné a soukromé.
Soukromé vodoznaky jsou detekovatelné pouze autorizovaným uživatelem. Hlavním kritériem při návrhu vodoznačících technik je nemožnost detekce vodoznaku neautorizovaným
uživatelem. Využívají se soukromé nebo náhodné klíče indikující místo vložení vodoznaku.
Veřejné vodoznaky jsou vloženy bez jakéhokoli zabezpečení. Jejich detekce je velmi snadná
a může ji provádět kdokoli.
Z výše uvedeného plyne, že soukromé vodoznaky jsou principiálně více odolné než vodoznaky veřejné.
5.5.4
Kritérium – odolnost
Odolnost vodoznaku je schopnost skrytých dat odolávat jak neúmyslným, tak i úmyslným
útokům. Podle odolnosti dělíme vodoznaky na odolné, polo-odolné a křehké.
Odolné vodoznaky jsou navrhovány tak, aby odolávaly jak úmyslným, tak i neúmyslným
modifikacím vodoznačeného obrazu. Jsou většinou používány pro situace, kdy je potřeba
prokázání autorských práv.
Polo-odolné vodoznaky jsou navrženy pro detekci neautorizované změny obrazu, zároveň
jsou ale vůči určitým změnám odolné.
Křehké vodoznaky jsou lehce odstranitelné či porušitelné jakýmkoli útokem na vodoznačená data. Jejich využití je zejména při kontrole integrity dat.
5.5.5
Kritérium – oblast pro vkládání vodoznaku
Pro vkládání vodoznaku existují dvě oblasti, prostorová a frekvenční.
Ve frekvenční oblasti je možné vodoznak vložit do libovolného frekvenčního pásma, avšak
je zapotřebí myslet na fakt, že modifikacemi nízkofrekvenčních složek dochází k degradaci
výsledného obrazu. Na druhé straně při vložení vodoznaku do oblasti vysokofrekvenčních
složek dochází po většině útoků k odstranění vodoznaku. Z toho důvodu se doporučuje
vodoznak vkládat do oblasti středních frekvencí.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
113
V prostorové oblasti se využívá hlavně vkládání vodoznaků do oblasti nejméně významných bitů originálního obrazu.
5.6
Způsoby útoků na vodoznačený obraz
Útokem na vodoznačený obraz je míněna jakákoli změna vodoznačeného obrazu, která je
provedena v intervalu po vložení vodoznaku a před extrakcí vodoznaku. Tato změna může
či nemusí ovlivnit vložený vodoznak. Způsoby útoků dělíme celkem do čtyř skupin:
1. útoky zaměřené na odstranění vodoznaku
2. geometrické útoky,
3. kryptografické útoky,
4. protokolové útoky.
5.6.1
Útoky zaměřené na odstranění vodoznaku
Útoky zaměřené na odstranění vodoznaku zapříčiní částečné nebo kompletní odstranění
vodoznaku ze zabezpečených dat bez znalosti metody a klíče použitého při vložení vodoznaku. Do zmíněné kategorie spadají například útoky ztrátovými kompresemi (JPEG,
JPEG 2000), útoky filtrací (doostření, rozmazání, mediánový filtr, Gaussův filtr, Wienerův filtr), demodulace a průměrování.
5.6.2
Geometrické útoky
Geometrické útoky nejsou určeny pro odstranění vodoznaku, ale mají za cíl zmást a narušit
synchronizaci detektoru (extraktoru). Do skupiny geometrických útoků patří například
ořezání, převrácení a rotace.
5.6.3
Kryptografické útoky
Kryptografické útoky mají za úkol zjistit, jaká metoda byla použita pro vložení vodoznaku.
Tato informace je následně použita ke kompletnímu odstranění vodoznaku ze zabezpečených dat. Jedná se například o útok brutální silou, který hledá ve vodoznačeném obrazu
114
FEKT Vysokého učení technického v Brně
tajnou informaci. V praxi je tato technika velmi omezena z důvodu její vysoké výpočetní
náročnosti.
5.6.4
Protokolové útoky
Protokolové útoky se pokouší útočit na celý koncept vodoznačící aplikace. Jedním z útoků
je útok kopírováním, jehož hlavní myšlenkou je kopírování vodoznaku z jednoho obrazu
do druhého bez znalosti klíče použitého ke vložení vodoznaku.
5.7
Vodoznačení v prostorové oblasti
Pro vodoznačení v prostorové oblasti existuje velká řada metod. Jejich výhodou oproti
vodoznačícím metodám ve frekvenční oblasti je celkově menší výpočetní náročnost. Nevýhodou je ve většině případů menší odolnost vloženého vodoznaku vůči většině útoků.
Pro vkládání vodoznaku mohou být použity různé barevné modely, nejčastější zastoupení mají modely RGB a YCbCr. Při využití těchto barevných modelů si je zapotřebí
uvědomit významnost jednotlivých složek. Při vkládání vodoznaku do modelu YCbCr se
nejčastěji využívá složka Y, neboť ta nebývá v kompresních standardech žádným způsobem podvzorkována a tudíž u ní nedochází k tak velké ztrátě informace. Časté zastoupení
systémů pro vodoznačení v prostorové oblasti mají techniky využívající vložení vodoznaku
do nejméně významných bitů obrazu, jinak nazývané LSB. Obrazy zabezpečené těmito
technikami jsou však velmi náchylné na jakýkoli útok. Z toho důvodu nejsou pro zabezpečení autorských práv příliš vhodné. Do oblasti nejméně významných bitů se může vkládat
například kontrolní součet celého obrazu.
5.7.1
Metoda vodoznačení LSB v jasové složce
Mezi první metodu vyvinutou pro vodoznačení statických digitálních obrazů patří metoda
vkládání vodoznaku do nejméně významných bitů do jasové složky originálního obrazu
Y. Princip vložení vodoznaku je patrný z obrázku 5.8.
Nejdůležitějším parametrem pro vložení vodoznaku metodou LSB je parametr hloubka
vložení ℎ. Ten definuje, jaká z bitových hladin originálního obrazu  bude využita pro
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
115
h
Originální
obraz Co
Vynulování
bitů v
hladině h
C*
+
Vodoznak W
Permutace
bitů w
Přesunutí
významných
bitů do hladiny
h
k
h
Cw
W*
Obrázek 5.8: LSB technika — vložení vodoznaku
vložení permutovaného vodoznaku  . Na základě parametru ℎ se tedy vynulují veškeré
bity v dané hladině originálního obrazu  , čímž vznikne obraz  * připravený pro vložení
vodoznaku. Z binárního permutovaného vodoznaku  se vytvoří osmibitový vodoznak
 *, kde všechny hladiny, kromě hladiny ℎ, budou nulové. Hladina ℎ bude obsahovat
hodnoty binárního vodoznaku.
Vlastní vodoznačení poté probíhá prostým součtem obou upravených obrazů (vodoznaku
 * a originálního obrazu  *).
Příklad je uveden na osmi-bitovém pixelu originálního obrazu  , do kterého je vložena
informace z vodoznaku  . Hloubka vložení je nastavená na ℎ = 3.
K extrakci vodoznaku (obrázek 5.9) je zapotřebí znát hloubku vložení ℎ, vodoznačený
obraz  a klíč , který byl použit pro permutaci při vkládání vodoznaku.
Extrakce probíhá vyjmutím nejméně významných bitů hladiny ℎ z vodoznačeného obrazu.
Tyto bity se stávají nejvíce významnými bity vodoznaku a je k nim doplněn patřičný počet
nul.
116
FEKT Vysokého učení technického v Brně
MSB
C w’
LSB

1
0 1
1
0
1
0
1

1
0 0
0
0
0
0
0
 *
1
0 1
1
0
0
0
1
*
0
0 0
0
0
1
0
0

1
0 1
1
0
1
0
1
Extrakce
vodoznaku z
LSB
Permutace bitů
extrahovaného
vodoznaku
h
k
W’
Obrázek 5.9: LSB technika — extrakce vodoznaku
5.8
Vodoznačení ve frekvenční oblasti
Pro vložení vodoznaku se frekvenční oblast jeví jako velmi vhodná, neboť umožňuje vložit
vodoznak do různých frekvenčních složek obrazu. Pro převod z prostorové do frekvenční
oblasti se nejčastěji využívají transformace 2D-DCT a 2D-DWT, můžou být však využity
i jiné transformace, jako například 2D-Walsh-Hadamardova transformace (2D-WHT).
5.8.1
Vodoznačení s využitím 2D-DWT transformace
Pro vodoznačení obrazu ve frekvenční oblasti při použití 2D diskrétní vlnkové transformace lze využít jak aproximačních, tak i detailních koeficientů, které vzniknou po Nstupňové dekompozici originálního obrazu  . Maximální velikost vkládaného vodoznaku
W v případě binárního obrazu odpovídá velikosti použitého sub-pásma, do kterého je
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
117
vodoznak vložen. K 2D-DWT dekompozici lze využít jakékoli vlnky.
Vložení vodoznaku
Obecná metoda vychází z obecně známých principů vlnkové transformace. Vložení vodoznaku nejlépe znázorňuje obrázek 5.10. Originální obraz  je transformován 2D diskrétní
vlnkovou transformací z prostorové do frekvenční oblasti. Obraz je pyramidově dekomponován tak, že vzniknou čtyři sub-pásma CA, CV, CH, CD. Z těchto sub-pásem je vybráno
jedno, které je následně použito pro vložení vodoznaku. Je potřeba zdůraznit, že z hlediska odolnosti vloženého vodoznaku  velmi záleží na výběru sub-pásma. V následujícím
kroku je nutné upravit horizontální i vertikální rozměr vodoznaku tak, aby odpovídaly
rozměrům zvoleného sub-pásma pro vložení. Počet pixelů vodoznaku  tedy musí být
menší nebo roven počtu pixelů zvoleného sub-pásma .
h
Originální
obraz Co
2D-DWT celého
obrazu
(1. dekompozice)
Vodoznak W
Úprava
rozměrů
vodoznaku
Výběr sub-pásma
pro vložení
vodoznaku
Vložení
vodoznaku
2D-DWT-1
Vodoznačený
obraz Cw
Obrázek 5.10: DWT technika — vložení vodoznaku
Následuje vložení vodoznaku úpravou zvoleného sub-pásma CX podle vztahu
 ′ (, ) = (, ) + ℎ(, ),
(5.11)
kde (, ) jsou pozice prvků v sub-pásmu,  jsou koeficienty sub-pásma originálního
obrazu, ℎ značí hloubku vložení vodoznaku a  jsou koeficienty vkládaného vodoznaku.
Po výpočtu vodoznačeného sub-pásma  ′ je provedena zpětná 2D diskrétní vlnková
118
FEKT Vysokého učení technického v Brně
transformace, jejíž vstupy jsou modifikované sub-pásmo  ′ a ostatní tři nezměněná
sub-pásma. Tímto krokem je získán vodoznačený obraz  .
V případě potřeby větší bezpečnosti vloženého vodoznaku je možné vodoznak  před
vložením zašifrovat.
Extrakce vodoznaku
Extrakce vodoznaku ze zabezpečeného obrazu  je inverzním procesem k vložení vodoznaku. Při extrakci je potřeba znát originální obraz  , vodoznačený obraz  a použitou
hloubku vložení vodoznaku ℎ. Extrakci vodoznaku nejlépe znázorňuje schéma na obrázku
5.11. Vodoznačený obraz  i originální obraz  je podroben 2D diskrétní vlnkové transformaci, čímž jsou oba obrazy převedeny z prostorové do frekvenční oblasti. Pro dekompozici musí být zvolena stejná vlnka jako při procesu vložení vodoznaku. Tímto krokem jsou
získány dvě skupiny se čtyřmi sub-pásmy  ,  ,  ,   ,  ,  ,  .
Po získání sub-pásem může proběhnout samotný proces extrakce vodoznaku, který je dán
vztahem
 ′ (, ) =
  −  
,
ℎ
(5.12)
kde ,  jsou pozice prvků v sub-pásmu  a zároveň vodoznaku  ,   jsou koeficienty
sub-pásma originálního obrazu  ,   jsou koeficienty sub-pásma vodoznačeného obrazu
 a ℎ značí hloubku vložení vodoznaku.
5.8.2
Vodoznačení s využitím 2D-DCT transformace
2D-DCT se používá obdobně jako 2D-DWT k převodu koeficientů obrazu z prostorové do
frekvenční oblasti. Své uplatnění našla, zejména v kompresním standardu JPEG. Vzhledem k obrovskému rozšíření digitálních obrazů komprimovaných tímto standardem byly
vyvinuty vodoznačící metody, jejichž prioritami je nemožnost odstranění vodoznaku právě
zmiňovanou JPEG kompresí. Vodoznak se často vkládá do originálních dat pomocí koeficientů (1 , 1 ), (2 , 2 ) ve frekvenční oblasti, kde  a  definují pozici bodů v transformovaném bloku frekvenčních koeficientů o rozměru 8x8 prvků. Tyto dva koeficienty jsou
ve velké řadě případů vybírány z oblasti středních frekvencí a to proto, aby byla zajištěna
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
119
h
Originální
obraz Co
2D-DWT celého obrazu
(1. dekompozice)
Výběr sub-pásma, ve
kterém je vodoznak
vložen
Vodoznačený
obraz Cw
2D-DWT celého obrazu
(1. dekompozice)
Výběr sub-pásma, ve
kterém je vodoznak
vložen
Extrakce
vodoznaku
2D-DWT-1
Extrahovaný
vodoznak W’
Obrázek 5.11: DWT technika — extrakce vodoznaku
odolnost daného vodoznaku a zároveň jeho nevnímatelnost. Při vkládání vodoznaku jsou
používány takové koeficienty , , které jsou kvantovány stejným počtem kvantizačních
hladin. Při použití doporučené kvantizační tabulky pro jasové složky ze standardu JPEG
plyne, že vhodnými koeficienty jsou například (3,1) a (4,1), (4,3) a (5,2), (1,4) a (3,3) a
další. Proces vložení vodoznaku do barvonosných složek  a  je méně efektivní zejména
díky podvzorkování využívaného téměř ve všech kompresních standardech. Z toho důvodu
se u většiny případů nepoužívá.
Vložení vodoznaku
Vložení vodoznaku nejlépe znázorňuje obrázek 5.12.
Originální obraz  je v první fázi rozložen na bloky  o rozměrech 8x8 pixelů přesně tak,
jak je tomu u standardu JPEG. Na každý blok  je aplikována 2D-DCT. Následuje úprava
rozměrů vodoznaku  . V tomto případě je potřeba zajistit, aby celkový počet pixelů
vodoznaku  byl menší nebo roven celkovému počtu bloků . Po úpravě vodoznaku je
možné přistoupit k samotnému vložení vodoznaku do originálního obrazu  . Originální
obraz je během procesu vodoznačení upravován podle následujících pravidel:
• V případě, že bit vodoznaku vkládaného do bloku  je roven nule, musí platit
nerovnice  ( ,  ) >  ( ,  ), kde  a  představují dva vybrané koeficienty
v transformované matici. Pokud tato podmínka není splněna, jsou tyto koeficienty
120
FEKT Vysokého učení technického v Brně
h
Originální
obraz Co
Rozdělení Co
na bloky
8x8pixelů
2D-DCT
každého bloku
Vložení
vodoznaku
Vodoznačený
obraz Cw
Vodoznak W
Obrázek 5.12: DCT technika — vložení vodoznaku
navzájem prohozeny.
• V případě, že bit vodoznaku vkládaného do bloku  je roven jedné, musí platit
nerovnice  ( ,  ) ≤  ( ,  ), kde  a  představují dva vybrané koeficienty
v transformované matici. Pokud tato podmínka není splněna, jsou tyto koeficienty
navzájem prohozeny.
Pro zvýšení odolnosti vloženého vodoznaku byl zaveden koeficient hloubky vložení ℎ.
Pokud neplatí nerovnice
| ( ,  ) −  ( ,  )| > ℎ,
(5.13)
je hodnota ℎ/2 k jednomu z vybraných koeficientů bloku  přičtena a od druhého odečtena tak, aby byla nerovnice splněna. V případě, že je podmínka splněna, zůstávají koeficienty  nezměněny. Po úpravě všech bloků originálního obrazu  je s každým blokem
provedena inverzní 2D-DCT. Jednotlivé bloky jsou dále uspořádány do obrazu, čímž je
získán vodoznačený obraz  .
Extrakce vodoznaku
Extrakce vodoznaku je znázorněna na obrázku 5.13
Jak je patrné, k extrakci je potřebný pouze vodoznačený obraz  , který je v první fázi
extrakce rozdělen na bloky  o stejné velikosti jako u procesu vkládání, tedy na bloky  o
velikosti 88 pixelů. Každý blok je transformován do frekvenční oblasti pomocí 2D-DCT.
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
121
h
Vodoznačený
obraz Cw
Rozdělení Cw
na bloky
8x8pixelů
2D-DCT
každého bloku
Extrakce
vodoznaku
Extrahovaný
vodoznak W’
Obrázek 5.13: DCT technika — extrakce vodoznaku
Ve fázi, kdy jsou získány všechny transformované bloky , je zahájen proces extrakce
vodoznaku. Ten probíhá porovnáním koeficientů každého bloku na stejných pozicích, které
byly použity při vkládání vodoznaku. V případě splnění nerovnosti
 ( ,  ) >  ( ,  ),
(5.14)
je extrahovaný bit vodoznaku ′  roven nule, jinak je ′  roven jedné. Z extrahovaných
bitů vodoznaku je sestaven vodoznak  ′ .
122
FEKT Vysokého učení technického v Brně
Reference
[1] CCITT: T.81 – Digital Compression and Coding of Continuous-Tone Still Images.
Technická zpráva, ITU, 1993.
[2] Eder, R.: Moderní kompresní formáty digitálního obrazu. 2014.
[3] Handley, M.; Jacobson, V.; Perkins, C.: RFC 4566 - SDP: Session Describtion Protocol. Technická zpráva, Internet Engineering Task Force, 2006.
[4] Koch, E.; Zhao, J.: Towards Robust and Hidden Image Copyright Labeling. 1995, s.
452–455.
[5] Mannos, J.; Sakrison, D.: The Effects of a Visual Fidelity Criterion of the Encoding
of Images. IEEE Trans. Inf. Theor., ročník 20, č. 4, Září 2006: s. 525–536, ISSN
0018-9448, doi:10.1109/TIT.1974.1055250.
URL http://dx.doi.org/10.1109/TIT.1974.1055250
[6] Proakis, J. G.; Manolakis, D. G.: Digital Signal Processing (3rd Ed.): Principles,
Algorithms, and Applications. Upper Saddle River, NJ, USA: Prentice-Hall, Inc.,
1996, ISBN 0-13-373762-4.
[7] Richardson, I. E. G.: H.264 and MPEG-4 Video Cmpression. John Wiley & Sons
Ltd., 2002, ISBN 0-470-84837-5.
[8] Richardson, I. E. G.: H.264 and MPEG-4 Video Compression: Video Coding for
Next-generation Multimedia. New York, NY, USA: John Wiley & Sons, Inc., 2003.
[9] Schulzrinne, H.; Casner, S.; Frederick, R.; aj.: RFC 3550 - RTP: A Transport Protocol
for Real-Time Applications. Technická zpráva, Internet Engineering Task Force, 2003.
[10] Schulzrinne, H.; Columbia, U.; Rao, A.; aj.: RFC 2326 - Real Time Streaming Protocol (RTSP). Technická zpráva, Internet Engineering Task Force, 1998.
[11] Shannon, C. E.: A Mathematical Theory of Communication. SIGMOBILE Mob.
Comput. Commun. Rev., ročník 5, č. 1, Leden 2001: s. 3–55, ISSN 1559-1662, doi:
10.1145/584091.584093.
URL http://doi.acm.org/10.1145/584091.584093
Zpracování multimediálních dat pro integrovanou výuku VUT a VŠB-TUO
123
[12] Shi, Y. Q.; Sun, H.: Image and Video Compression for Multimedia Engineering. Boca
Raton, FL, USA: CRC Press, Inc., první vydání, 1999, ISBN 0849334918.

Podobné dokumenty

moralita

moralita Jen dlouhá doba vítězí nad láskou Žádná moc není s to uhasit prudký žár lásky. Přemoci může ji však svojí vleklostí čas.

Více

Přenos a komprese audio/video dat pro integrovanou výuku

Přenos a komprese audio/video dat pro integrovanou výuku FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Více

Recenze - biblickestudie.cz

Recenze - biblickestudie.cz zažitý pohled, kdy je hmota ztotožňována s bohy, a ukázat na jediného pravého Boha), nechce však měnit náhled na způsob, jakým svět vznikl (to je pro daný účel knihy nepodstatné). Druhá část knihy ...

Více

UM_CZ_A867R_AVerTV3DUSB_MCS1.7.9_101007

UM_CZ_A867R_AVerTV3DUSB_MCS1.7.9_101007 (Programy), zvolte položku AVerMedia, vyberte AVer MediaCenter 3D a potom klepněte na ikonu AVer MediaCenter 3D. Jiný způsob je dvojklik na programovou ikonu AVer MediaCenter 3D “ ploše. Nebo můžet...

Více

Komprese videa Účelem komprese videa je snížení objemu dat a

Komprese videa Účelem komprese videa je snížení objemu dat a V zásadě se používají dva typy komprese: V rámci snímku ( Intraframe) a mezi snímky ( Interframe). Intraframe neboli I-frame (I-snímky) je komprese nezávislá na okolních snímcích a je aplikována na...

Více

Obr. 5

Obr. 5 Tento text tvoří doplňkový studijní materiál především pro studenty prvního ročníku oboru Telekomunikační a informační technika. Tento obor je zařazen do navazujícího magisterského studijního progr...

Více

slaboproudý obzor - Československá sekce IEEE

slaboproudý obzor - Československá sekce IEEE Dostávame ich na výstupe preprocesora za účelom vylúčenia rozdielu v TV normách. Regionálne štandardné videosignály sú konvertované do jedného z týchto videoformátov predtým, než postupujú do zdroj...

Více