Zpracování multimediálních dat pro integrovanou výuku VUT a
Transkript
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 (MP@ML). 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 8𝑥8 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
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.
Přenos a komprese audio/video dat pro integrovanou výuku
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
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 ...
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...
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...
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...
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...