České vysoké učení technické v Praze Fakulta elektrotechnická
Bakalářská práce
Srovnání používaných videokodeků na platformě PC Zdeněk Gerlický
Vedoucí práce: Ing. Martin Koloros
Studijní program: Elektrotechnika a informatika strukturovaný bakalářský Obor: Výpočetní technika Červen 2006
ii
Prohlášení
Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady ( literaturu, projekty, SW atd.) uvedené v přiloženém seznamu.
Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 Zákona č.121/2000 Sb. , o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne ……………………….
……………………………………. podpis
iii
iv
Abstract
This thesis contains description of video coding problems with current technologies. It explains assumptions for each technology, what aspects affect their development and what results can be reached. Objective of this thesis is to make an overview about actual and previous principles of video coding implementations – video codecs. The next goal is to compare features of each codec, possibility of its application, its advantages and disadvantages, and also the quality of encoded video data for each codec. In this thesis it is possible to find introduction into technical problems, where the basic conceptions of human visual system are described, and the principle of visual perception forging base for making each codec’s implementation is explained. Also you can find here description of TV signal transmission, its digitalisation and description of colour models. The next included is explanation of basic principles of still image coding, namely discrete cosine transformation, and discrete wavelet transformation that are used, e.g., for JPEG coding, and the principles of video coding applied in compressed video sequences MPEG. Further section contains description of each codec. It deals especially with implemented codecs in compliance with standard MPEG, codecs in compliance with recommendation of ITU-T organisation or codecs used for home video. There are described the multimedia containers, too, which use the codecs mentioned above to encode their content. The next part describes possible methods of codec testing and there are proceeded tests of nowadays winning codecs – those in compliance with standard MPEG-4. The conclusion summarizes contribution of this thesis, general evaluation of the accessible codecs and presumption of codecs progression.
v
vi
Abstrakt
Obsahem práce je popis problematiky kódování video dat současnými technologiemi. Práce vysvětluje z jakých předpokladů jednotlivé technologie vycházejí, jaké aspekty ovlivňují jejich postupný vývoj a jakých výsledků lze dosáhnout. Cílem práce je snaha vytvořit přehled o principech aktuálně používaných, ale i o předcházejících implementacích kódování video dat – video kodecích (dále jen kodecích). Dále pak porovnat vlastnosti jednotlivých kodeků, možnosti jejich využití, jejich výhody a omezení, neméně pak porovnání kvality video dat zakódovaných jednotlivými kodeky. V práci lze nalézt úvod do odborné problematiky, kde jsou popsány základní pojmy obsahující popis lidského vizuálního vnímání a vysvětlení principu zrakového vjemu tvořícího základ pro vývoj jednotlivých implementací kodeků, popis přenosu televizního obrazu, jeho digitalizaci a popis barevných modelů. Dále je v práci zahrnuto vysvětlení základních principů kódování pro statický obraz jmenovitě pak diskrétní kosinová transformace, diskrétní vlnková transformace používané například u komprimovaných obrazů typu JPEG a kódování pro pohyblivý obraz využívané u komprimovaných video sekvencí typu MPEG. V další kapitole jsou pak popisovány jednotlivé kodeky. Jedná se zejména o kodeky implementované dle standardu MPEG, implementace dle doporučení organizace ITU-T, či kodeky pro práci s domácím videem. Popisovány jsou také multimediální kontejnery využívající výše zmíněných kodeků k zakódování svého obsahu. V následující kapitole jsou popsány možné způsoby testování kodeků a provedení testů v současnosti nejvíce prosazujících se kodeků implementovaných dle standardu MPEG-4. V závěru je shrnut přínos této práce, celkové zhodnocení dostupných kodeků a odhad trendu vývoje kodeků.
vii
viii
Obsah
Seznam obrázků ..................................................................................................................xi Seznam tabulek .................................................................................................................xiii 1.
Úvod ..............................................................................................................................1 1.1. Obsah práce ............................................................................................................1 1.2. Cíle práce................................................................................................................2
2.
Základní pojmy.............................................................................................................3 2.1. Úvod do vnímání ....................................................................................................3 2.2. Princip televizního přenosu obrazu..........................................................................6 2.3. Prokládání a jeho kompenzace ................................................................................7 2.4. Rozlišení.................................................................................................................9 2.5. Barva ......................................................................................................................9 2.5.1. YUV .............................................................................................................10 2.5.2. RGB..............................................................................................................10 2.6. Zachytávání videa .................................................................................................10 2.6.1. Formáty a rozhraní ........................................................................................11 2.6.2. Zachytávací karty, TV-karty, A/D převodníky...............................................12
3.
Principy kódování.......................................................................................................13 3.1. Redukce prostorové redundance a entropie (JPEG – DCT)....................................14 3.2. Redukce prostorové redundance a entropie (JPEG 2000 – DWT)..........................15 3.3. Redukce časové redundance (MPEG kódování) ....................................................18
4.
Popis srovnávaných kodeků .......................................................................................20 4.1. Rozdělení kodeků .................................................................................................20 4.1.1. Druhy kodeků ...............................................................................................20 4.1.2. Kontejnery ....................................................................................................20 4.1.3. Nároky na kodeky .........................................................................................21 4.1.4. Zabezpečení dat a šifrování ...........................................................................21 4.2. Bezeztrátové kodeky.............................................................................................22 4.2.1. RAW.............................................................................................................22 4.2.2. HuffYUV ......................................................................................................22 4.3. Ztrátové kodeky....................................................................................................23 4.3.1. MJPEG .........................................................................................................23 4.3.2. MPEG-1........................................................................................................23 4.3.3. MPEG-2........................................................................................................25 4.3.4. MPEG-3........................................................................................................28 4.3.5. MPEG-4........................................................................................................28 4.3.6. MPEG-7........................................................................................................33 4.3.7. ITU-T H.261, H.263 a H.263 verze 2 a 3, H.264 ...........................................34 4.3.8. DivX 3.11a Alpha .........................................................................................39 4.3.9. DivX 4, DivX 5, DivX 6 ...............................................................................39 4.3.10. XviD .............................................................................................................40 4.3.11. DV ................................................................................................................41 4.3.12. Indeo® Video 5.10........................................................................................41 ix
4.3.13. Microsoft Video 1 .........................................................................................42 4.4. Kontejnery............................................................................................................42 4.4.1. AVI...............................................................................................................42 4.4.2. ASF, WMV...................................................................................................43 4.4.3. MPEG stream................................................................................................45 4.4.4. Quicktime (MOV).........................................................................................46 4.4.5. Real Media Format........................................................................................47 4.4.6. Ogg Media ....................................................................................................47 4.4.7. Matroška .......................................................................................................48 5.
Srovnání kodeků.........................................................................................................49 5.1. Metriky využívané při srovnání kodeků ................................................................49 5.1.1. Objektivní měření kvality videa.....................................................................49 5.1.2. Subjektivní měření kvality videa ...................................................................50 5.2. Srovnání MPEG-4 kodeků ....................................................................................51 5.2.1. H.264/AVC kodeky.......................................................................................52 5.2.2. MPEG-4 SP/ASP kodeky..............................................................................58
6.
Závěr ...........................................................................................................................61
7.
Seznam literatury .......................................................................................................63
A
Obrázky ......................................................................................................................65
B
Obsah přiloženého CD................................................................................................71
x
Seznam obrázků
obrázek 3.1 - základní implementace kodéru s DCT .............................................................15 obrázek 3.2 - základní implementace kodéru JPEG 2000......................................................17 obrázek 3.3 - kodér DCT s mezisnímkovou predikcí.............................................................18 obrázek 3.4 - kodér DCT s pohybově kompenzovanou mezisnímkovou predikcí ..................19 obrázek 4.1 - HuffYUV - strom vytvořený po prvním průchodu ...........................................22 obrázek 5.1 - PSNR vzorec...................................................................................................50 obrázek 5.2 - měření Y-PSNR H.264 BQ – sekvence „foreman“ ..........................................53 obrázek 5.3 - měření Y-PSNR H.264 BQ – sekvence (shora) „susi“, „bbc“, „battle“ ............54 obrázek 5.4 - měření Y-PSNR H.264 BQ – sekv. (shora) „simpsons“, „matrix“, „concert“...55 obrázek 5.5 - měření Y-PSNR H.264 BS – sekvence (shora) „foreman“, „susi“, „bbc“.........56 obrázek 5.6 - měření Y-PSNR H.264 BS – sekvence (shora) „battle“, „simpsons“, „matrix“ 57 obrázek 5.7 - měření Y-PSNR H.264 BS – sekvence „concert“ ............................................58 obrázek 5.8 - měření Y-PSNR MPEG-4 SP-ASP – sekvence (shora) „foreman“, „susi“ .......59 obrázek 5.9 - měření Y-PSNR MPEG-4 SP-ASP – sekvence (shora) „bbc“, „battle“ ............60 obrázek A.1 - deinterlacing (příklady jednotlivých metod) ...................................................65 obrázek A.2 - DCT - rozdělení snímku na bloky...................................................................65 obrázek A.3 - DCT - zbylé koeficienty po kvantizaci............................................................66 obrázek A.4 - DCT - čtení cik-cak ........................................................................................66 obrázek A.5 - DWT - rozložení snímku na komponety a dlaždice........................................66 obrázek A.6 - DWT – frekvenční subpásma (vlevo) a průchod čtení blokem (vpravo) ..........66 obrázek A.7 - MPEG-1 skupina snímků GOP .......................................................................67 obrázek A.8 - MPEG - hledání pohybových vektorů.............................................................67 obrázek A.9 - MPEG-2 rozdělení makrobloku při prokládaném kódování ............................67 obrázek A.10 - MPEG-4 - verze standardu a zpětná kompatibilita ........................................68 obrázek A.11 - MPEG-4 logické uspořádání scény ...............................................................68 obrázek A.12 - MPEG-7 příklad pohybového deskriptoru.....................................................68 obrázek A.13 - H.264 - flexibilni GOP (3 vrstvy) .................................................................69 obrázek A.14 - H.264 - rozdělení makrobloku pro pohybovou kompenzaci ..........................69 obrázek A.15 - H.264 pohyb. vektor s celočíselným (b) a neceločíselnými (c) souřadnicemi 69 obrázek A.16 - H.264 - přechod mezi dvěma datovými toky.................................................70 obrázek B.1 - Obsah přiloženého CD....................................................................................71
xi
xii
Seznam tabulek
tabulka 4-1 - Parametry VideoCD.........................................................................................23 tabulka 4-2 - kvalitativní stupně MPEG-2 - Profile ...............................................................27 tabulka 4-3 - kvalitativní stupně MPEG-2 – Level ................................................................27 tabulka 4-4 - DVD norma .....................................................................................................27 tabulka 4-5 - vlastnosti vybraných MPEG-4 profilů..............................................................31 tabulka 4-6 - porovnání velikostí zakódovaných dat pomocí různých verzí MPEG ...............31 tabulka 4-7 - velikost formátů používaných u H.261 a H.263................................................35 tabulka 4-8 - kvalitativní profily H.264.................................................................................38
xiii
xiv
1. Úvod
V dnešní době, kdy je značný nárůst využití IT technologií a veškerá komunikace probíhá v digitální podobě, nastává problém s masovým rozšířením těchto technologií mezi běžné uživatele. Pokud se zaměřím na použití video dat v digitální podobě, mohu říci, že se s nimi setkává v určité podobě téměř každý. S digitálními video daty se setkáváme například u digitálních videokamer, digitálního televizního vysílání, internetového televizního vysílání, video hovorů apod. až po profesionální využití ve střihových studiích. Takto rozšířené využívání digitálních video dat vede k potřebě tyto data vhodným způsobem uchovávat nebo přenášet. Na základě této potřeby bylo vyvinuto mnoho implementací kódování video dat pro široké spektrum použití – KODEK (vzniklo spojením video-kodér a video-dekodér, z angl. coder a decoder). Tato práce by měla usnadnit výběr kódování (kodeku) pro danou aplikaci a umožnit čtenáři vytvořit si vlastní pohled o možnostech využití jednotlivých kódování. Práce je určena jako zdroj informací pro práci s video daty, nebo jako přehled používaných platforem.
1.1.
Obsah práce
V druhé kapitole této práce se zabývám základními pojmy souvisejícími s řešenou problematikou. Jejich znalost je důležitá pro porozumění dalších kapitol. Zde jsou vysvětleny principy lidského vnímání a jeho vliv na vývoj algoritmů a mechanismů vlastního kódování. Dále je zde popsán princip televizního přenosu, jakým způsobem vzniká obraz, jeho struktura a koncepce. Ve třetí části jsou vysvětleny vlastní principy kódování statického obrazu jako jsou diskrétní kosinová transformace nebo diskrétní vlnková transformace a princip kódování pohyblivého obrazu. Ve čtvrté části popisuji jednotlivé kodeky a podrobněji se zaměřím na aktuálně nejpoužívanější kodeky. Základem této kapitoly je popis kodeků založených na MPEG kódování, ze kterého pak následně vycházejí i ostatní kodeky. Jedna část této kapitoly se pak týká kodeků podle jejich koncepce, tzn. zda se jedná o bezztrátové či ztrátové kodeky. Obsahem další části jsou pak kontejnery, které tyto kodeky používají k zakódování svého obsahu. Pátá část je zaměřena na testování aktuálně nejvíce progresivních kodeků. Kodeky vycházejí ze standardu MPEG-4. V úvodu kapitoly jsou popsány měřící metody pro zjištění kvality zakódovaných video dat. Kodeky jsou porovnávány z hlediska výsledné kvality měřením PSNR (odstup signál šum). Na závěr je shrnut přínos kodeků, možnosti, oblasti jejich použití a je také odhadnuto jakým směrem a implementací se budou kodeky dále vyvíjet. 1
1.2.
Cíle práce V této práci kladu důraz na dva hlavní cíle.
Prvním je snaha vytvořit přehled, ve kterém budou objasněny principy, z jakých samotné kódování vychází, tzn. z jakých poznatků se vychází a na čem je vlastní kódování založeno. Není zde záměrem vytvořit rozsáhlou práci, ve které budou podrobně vysvětleny vnitřní procedury jednotlivých kodeků, ale snaha vysvětlit obecné principy kódování, následně pak vlastnosti jednotlivých implementací kodeků a jejich postupný vývoj. Budou popsána zlepšení, které jednotlivé implementace vývojem dosáhly. Druhým cílem je pak porovnat jednotlivé implementace kodeků z hlediska možnosti využití, kvality výsledného obrazu, určit jejich výhody a samozřejmě také omezení., nároky na výpočetní výkon a rychlosti zpracování. Výsledkem bude zhodnocení a určení pro jaké aplikační použití se jednotlivé kodeky hodí. Na závěr se pak pokusím odhadnout trend, jakým se dosavadní vývoj kodeků ubírá.
2
2. Základní pojmy
Pod pojmem video si mnoho uživatelů spotřební elektroniky představí přístroj na zaznamenávání televizních pořadů a pro přehrávání filmů. V počítačovém světě si pod tímto pojmem zase většina lidí představí multimediální soubory s příponou AVI. Obecně jsou video data sekvencí obrázků rychle po sobě jdoucích tak, že jí divák vnímá jako pohyb. Je zjištěno, že postačuje poměrně nízká snímková frekvence, aby došlo k iluzi pohybu. Nejdůležitějšími parametry video dat jsou především právě snímková frekvence, rozlišení a barevná hloubka.
2.1.
Úvod do vnímání
Pro pochopení některých používaných principů kódování, je důležité znát vlastnosti a vlastní princip funkce lidského zraku [11, 12], které pak využívají jednotlivé videokodeky a vedou k efektivnímu zakódování videa. Teorie barevného vidění Světlo vstupující do oka zvenku nejprve prochází rohovkou, pak přední oční komorou, vyplněnou průhledným mokem, poté skrz čočku vstupuje do zadní oční komory, vyplněné taktéž průhledným, rosolovitým sklivcem a nakonec dopadá na její zadní část, která je pokrytá sítnicí. Světlo na sítnici proniká až k vlastním světločivným buňkám – tyčinkám a čípkům (fotoreceptorům). Tyto buňky obsahují fotocitlivé pigmenty. Fotochemickou reakcí s nimi je světlo převáděno na elektrické signály. Signály jsou nervovými buňkami zpracovávány, až se nakonec výsledné signály dostanou do zrakového nervu a jsou předány postupně až do mozku. Spolu jsou propojené skupiny sousedících tyčinek i čípků (a to nejen každý typ buněk zvlášť, ale i oba vzájemně dohromady), ale také existuje i síť dlouhých, napříč běžících spojení, která umožňují kombinování signálů ze vzdálenějších buněk – jsou to tzv. receptivní pole. Rozměr těchto polí je přizpůsoben optickým vlastnostem oka (difrakce světla a optické vady), je adaptibilní a řídí se podmínkami vidění, tzn. pole se dynamicky se mění v závislosti na prostředí. Závisí především na jasu, při vyšším jasu je rozměr menší. Navíc se přizpůsobuje detailnosti pozorované scény. Tyto pole rozhodují svými rozměry a hustotou po ploše sítnice o prostorové rozlišovací schopnosti zraku, označované také jako bodová rozlišovací schopnost. Klíčovou součástí tyčinek a čípků jsou již zmíněné fotoaktivní pigmenty. Molekula pigmentu se při dopadu světla rozpadne („vybělí“) a vznikne elektrický impuls, který je pak dále předáván a zpracováván nervovou sítí. Současně s tím, jak se některé molekuly rozpadají, jiné jsou naopak zpětně regenerovány. Jde tudíž o dynamický systém, jehož stav se neustále mění. Citlivost buněk je úměrná tomu, kolik nevyběleného pigmentu v daném okamžiku obsahují, a to záleží na tom, kolik světla na ně zrovna dopadá. Díky této vlastnosti má zrak schopnost přizpůsobit se obrovskému rozsahu různých úrovní osvětlení (daleko přesahuje regulaci prostřednictvím změny velikosti zornice) a automatické barevné adaptace. Na této úrovni je probíhající barevná adaptace zcela nezávislá jak na obsahu scény (tj. rozpoznání objektů, jejichž barvu za normálního, denního světla si pamatujeme - což při vnímání barev také hraje roli), tak i na vůli.
3
Barevné vidění je především záležitostí čípků a je způsobeno tím, že existují tři druhy fotoaktivního pigmentu, který čípky obsahují. Tyto pigmenty jsou spektrálně selektivní a každý druh je citlivý na jiný rozsah vlnových délek světla. Maximum citlivosti „modrých“ čípků se pohybuje někde kolem vlnové délky 440 nm, u „zelených“ čípků je to asi 540 nm a u „červených“ asi 570 nm. Červené a zelené čípky jsou si navzájem hodně podobné. Vlastnosti modrých čípků jsou výrazně odlišné. V sítnici je jich mnohem méně, odhadem asi jen 4%. Zelených čípků je asi 32% a červených asi 64%. Lidské oko tedy skládá barevný obraz ze tří jednobarevných dílčích obrazů. Tyčinky se od čípků liší vedle rozdílné fyzické stavby a systému nervových propojení především pigmentem, který obsahují. Pigment obsažený v tyčinkách, je citlivý více či méně na všechny vlnové délky viditelného spektra. Maximum citlivosti se u něj pohybuje někde kolem 500 nm. Dopadá-li na sítnici větší množství světla, dochází k jeho kompletnímu vybělení a vidění pak zprostředkovávají pouze čípky (tzv. fotopická oblast vidění). Naopak, dolní práh citlivosti čípků je poměrně vysoký, takže za šera vidíme jen díky tyčinkám (tzv. skotopické vidění). Proto s ubývajícím světlem hůře vnímáme barvy, až nakonec za šera nevidíme barvy vůbec. Zajímavým efektem, který vzniká při adaptaci zraku na šero, je tzv. Purkyňův jev. S ubývajícím světlem dojde u člověka v jistém okamžiku k znatelnému posunu ve vnímání barev okolních objektů. Zatímco červené objekty se jeví stále méně barevné a tmavší, modré tóny naopak začnou být jasnější. Důvodem je to, že zatímco kombinovaná spektrální citlivost čípků má maximum někde kolem 550 nm, tak maximum citlivosti tyčinek se nachází, jak již bylo zmíněno, někde v okolí 500 nm, a proto s tím, jak čípky přestávají stačit a na vidění se postupně stále více podílejí tyčinky (neboli v tzv. mezopické oblasti vidění), se citlivost oka postupně posunuje směrem ke kratším vlnovým délkám, tj. relativní citlivost na modré světlo roste, zatímco na červené klesá. Tyčinek je v sítnici asi 20x více než čípků (asi 120 miliónů tyčinek a 6 miliónů čípků) a jsou propojené ve větších skupinách. To zvyšuje citlivost zrakového vnímání při velmi nízkých hladinách světla, nicméně dochází k tomu na úkor prostorového rozlišení. Za tmy vidíme mnohem méně ostře, a proto například nejsme při nedostatku světla schopni číst. Dalším rysem zvyšujícím citlivosti tyčinek je i delší časová integrace dopadajícího světla. Má to za následek např. to, že velmi rychlé blikání se nám slévá (díky čemuž může existovat např. film a televize). Při vyšších hladinách osvětlení, kdy vidění zprostředkovávají hlavně čípky, jsme schopni rozlišit změny i 10x rychlejší, než je-li náš zrak adaptovaný na tmu. Maximální uvažovaný rozsah pro člověka viditelné části elektromagnetického spektra, který se při kolorimetrických měřeních a výpočtech používá, je od 360 do 830 nm. Běžně se ale za viditelnou část spektra považuje jen rozsah od 380 do 780 nm. Citlivost lidského oka rapidně klesá od 650 nm výše a stejně tak je malá i citlivost pro vlnové délky pod 400 nm. Proto také bývá často uváděn hrubý rozsah 400-700 nm. Díky existenci třech různých druhů čípků v sítnici, citlivých na různé oblasti viditelného spektra, je lidské vidění v principu trojbarevné. Každou okem vnímanou barvu lze vyjádřit jako směs tří nezávislých primárních barev. Není úplně přesně známo, jak sítnice nervové signály vznikající v čípcích a tyčinkách dále zpracovává. Ale už jen fakt, že fotoreceptorů je přes 100 miliónů, zatímco optický nerv obsahuje přibližně 800 tisíc vláken, naznačuje, že dochází k opravdu velkému kombinování a zpracování signálů (to odpovídá již zmíněným receptivním polím, jejichž počet je přibližně 800 tisíc). Již poměrně dlouho je všeobecně akceptovaná teorie, že mozek z oka nepřijímá přímo signály tyčinek a RGB signál čípků, ale spíše jeden signál reprezentující jas a
4
chromatické signály určující obsah červeno-zelené a žluto-modré části spektra. Lze tedy říci, že dochází k jistému pre-processingu, kdy dochází ke sdružování (kompresi) informace do očního nervu. Jaké z toho plynou závěry pro reprodukci barev? Naprosto přesná reprodukce barev je v praxi nedosažitelná. Reprodukce barev může být pouze dostatečně či nedostatečně uspokojivá, což je samozřejmě ryze subjektivní hodnocení. To, jakou barvu vidíme, závisí nejen na objektu samotném, ale na mnoha dalších faktorech - nasvícení objektu, okolí objektu, stav adaptace našeho zraku, individuální charaktiristika vizuálního systému, předchozí znalost objektu za dobrých světelných podmínek, atd. Barvy na monitoru nejsou nikdy přesně odpovídající skutečnosti. Při reprodukci barev totiž nejde zdaleka jen o nějaké okopírování barvy, ale obvykle o vytvoření zcela jiného zrakového podnětu, který se nám jeví, jako že má (alespoň přibližně) shodnou barvu, a to často navíc za zcela odlišných pozorovacích podmínek (např. reálná scéna venku versus obraz na monitoru), což situaci ještě dále komplikuje. Barvu lze namíchat dvěma způsoby: Aditivní míchání barev – barva se zde skládá z příspěvků základních barev. Tři zdroje světla v úzkých intervalech příhodných vlnových délek základních barev (červená, zelená a modrá – RGB) dráždí příslušné receptory a vytváří tak libovolný barevný vjem. Používá se u emisivních systémů, kde jde v podstatě o skládání jasů jednotlivých barevných složek. Subtraktivní míchání barev - postupným přidáváním (mícháním) barev, které světlo pohlcují (odčítání světla), je možné dosáhnout až barvy černé. Po dopadu bílého světla na barevný pigment jsou některé vlnové délky selektivně absorbovány a odražené světlo odpovídá barvě pigmentu. Pigment, který selektivně absorbuje v oblasti 400 - 500 nm (modrá složka), odráží světlo v rozsahu 500 - 700 nm. Odražené světlo tedy obsahuje zelenou a červenou část spektra a budí tak žlutý vjem. Časový aspekt vnímání obrazu Ve scéně mohou být objekty, které blikají nebo se náhodně nebo periodicky pohybují. Jestliže rychlost těchto dějů překročí určitou hranici, přestává je pozorovatel vnímat. To je první časový aspekt. Druhý časový aspekt se týká pozorování kinematografického nebo televizního obrazu. Ten je produktem vzorkování obrazu v čase, přičemž reprodukovaný obraz je překryt časovou periodicitou tj. bliká (dochází k obnově obrazu za určitý časový interval). Zrak má omezenou rozlišovací schopnost týkající se časových změn. To je z hlediska 2. aspektu výhodné, z hlediska 1. aspektu je to přirozená vlastnost zrakové percepce související s celkovou reakční schopností člověka. Základním omezením je skutečnost, že již proces izomerie (změna stavu receptorových buněk, vlivem absorpce světla) je setrvačný, je zapotřebí naakumulovat dostatečnou energii, aby buzení bylo nadprahové a došlo k vyslání nervového impulsu do mozku. Tato akumulace vyžaduje průměrně 0,1-0,2 sekundy. Energii lze dlouhodobě akumulovat po dosažení obrazu vysoké kvality nebo krátkodobě, to pak dá rychlou sérii obrazů nízké kvality. Dlouhodobá akumulace znamená, že pohyblivé objekty se budou jevit rozmazané, pokud pozorovatel svůj zrak na objekt nezafixuje (např. otáčením hlavy). Zrak volí kompromis, doba (expoziční čas) je přizpůsobena reakční době celého organismu. Ta je součtem přechodných dob nervových impulsů z oka do mozku a zpět do pohybové periferie plus čas fyzikální setrvačnosti periferie.
5
Při pozorování statického obrazu je rozměr rozlišitelného prvku nepřímo úměrný kontrastu. Pozorování děje v čase má akumulační charakter. Důležitý je vztah mezi dobou akumulace ta a dobou expozice te. Je-li doba expozice kratší než doba akumulace (ta = 0,2 s, te = 0,04 s), je zrak buzen superpozicí pěti snímků a poměr obraz – zrnitost (rozlišení) se zlepší proti vjemu záblesku jednoho snímku pětkrát. Shrnutí Systém napodobující zrak musí kódovat zdroj zprávy s využitím těchto principů: Akumulační doba, po kterou se integruje energie světla nebo jiná energie světlem uvolněná, je nastavena tak, aby neomezovala rychlost reakce organismu na zrakový podnět scény. Expoziční doba může být kratší, ne však delší než doba akumulace. Musí být schopen uskutečnit takové zdrojové kódování, které respektuje vlastnosti příjemce. Tím lze počet zpracovávaných možných zpráv zmenšit proti počtu zpráv generovaných zdrojem (scénou), aniž by byla snížena kvalita, věrnost vjemu. Dosahuje se toho vyloučením irelevantních složek informace. Dále je nutno využít skutečnosti, že mezi prvky obrazového toku existují silné statistické vazby jak na ploše obrazu, tak v čase. Projevuje se to mj. tím, že spektrum obrazového toku je výrazně nehomogenní. Za tím účelem je třeba použít statistického kódování. Při něm je možno, vzhledem k respektování a rozrušování statistických vazeb, vystačit s menším počtem kódových znaků a ve spektru zprávy se to projeví rovnoměrnějším rozložením energie. Znamená to vyloučení redundantních složek informace z přenosu. Takto koncipované kódování přizpůsobí vizuální zprávu k přenosovému kanálu s relativně nižší přenosovou kapacitou, tak, jak je tomu u zraku, kde informaci z 108 čípků přenáší paralelních 8 . 105 vláken očního nervu.
2.2.
Princip televizního přenosu obrazu
Filmové promítání využívá světelné setrvačnosti sítnice. Zachytíme-li pohybový děj na filmovém pásu rychlostí 24 snímků za sekundu a takto získané snímky stejnou rychlostí promítáme, pak rychlé střídání jednotlivých obrazů vnímá lidské oko z jeho podstaty jako plynulý pohyb (viz. kapitola 1). Přenos pohybových dějů televizí je založen na podobném principu. I v tomto případě zachycujeme pohyb snímací kamerou a pak promítáme na stínítko rychlostí 25 obrazů za sekundu. Na rozdíl od filmového promítání však tento obraz rozkládáme na řádky, a ty pak na jednotlivé body obrazu. V televizi pak paprsek elektronů vykresluje postupně všechny body ve všech řádcích, až je vykreslen celý obraz. Při televizním přenosu v normě PAL se pohyb paprsku rozdělí na 625 řádků (ve skutečnosti je viditelných pouze 576, zbylé se využívají k synchronizaci [11] obrazu a jiným službám - vertikální zatmění, horizontální zatmění, teletext a podobné služby, přičemž se používá tzv. prokládané řádkování (viz. níže). Každý řádek se přitom skládá přibližně z 768 jednotlivých izolovaných bodů, takže celkový obraz je rozložen přibližně na 576x768=442 000 bodů. Přenesením těchto 442 000 bodů, bychom však vytvořili na obrazovce našeho televizoru jen jeden jediný nepohyblivý obraz trvající 0,04 sekundy. A protože k vytvoření pohybového vjemu musíme promítnout na stínítko obrazovky 25 obrazů za sekundu, znamená to, že každou sekundu musí paprsek elektronů vytvořit celkem 25x442 000 = 11 050 000 bodů.
6
U barevné televize je situace mnohem složitější, ve zkratce lze její princip popsat takto: Každou barvu lze rozložit na složky barev červené, zelené a modré (RGB). V BTV jsou tři paprsky (jsou to elektronové paprsky, které při dopadu na luminiscenční vrstvu vytváří světlo , proto lze využít aditivního míchání barev), každý pro jednu barvu. Tyto paprsky pak vykreslují celou obrazovku. Na stínítku obrazovky je luminiscenční vrstva s filtrem a maska s jednotlivými body. Paprsky jsou vyslány směrem k obrazu a po průchodu maskou rozsvítí luminofor na dané pozici. Barevný filtr nad tímto místem pak určí výslednou barvu tohoto dílčího bodu. Každý barevný bod je tvořen vždy ze tří dílčích bodů, každý pro jednu složku barvy (červené, zelené a modré – RGB). Uspořádání bodů masky závisí na typu obrazovky (Delta,InLine,Trinitron). Paprsky pak vždy podle intenzity rozsvěcují příslušné červené, modré a zelené body a ty pak vytváří patřičné barvy.
2.3.
Prokládání a jeho kompenzace
Při promítání videa na televizních obrazovkách frekvencí 25 plných snímků za vteřinu bylo vypozorováno velmi nepříjemné blikání. To je způsobeno tím, že než se vykreslí celý obraz, uplyne určitá doba (vykreslení obrazu + vertikální synchronizace), a dříve vykreslené body a řádky vlivem krátké setrvačnosti informace mezitím pohasínají. Tento způsob vykreslování obrazu se nazývá progresivní. Pro omezení blikání se používá metoda prokládání, kde jeden snímek je rozdělen na dva. Nejdříve se vykreslují pouze liché řádky snímku a při dalším průchodu paprsku obrazovkou se vykreslují pouze sudé řádky snímku. Tímto se zvýší frekvence zobrazování na dvojnásobek, tedy na 50Hz (v normě PAL). Prakticky to znamená 25 půlsnímků s lichými řádky a 25 půlsnímků se sudými řádky. Samozřejmě se tím docílí i vyšší vzorkovací frekvence reality a tudíž se získá úplnější informace o dění v čase (prostorová informace zůstává stejná). Zvýšením frekvence promítání, ale i snímání, je každá dvojice půlsnímku s lichými řádky a půlsnímku se sudými řádky z jiného časového okamžiku. Půlsnímky jsou totiž mezi sebou vzdáleny o 0,02 sekundy. Při promítání na televizi to ovšem není vůbec na škodu. Luminescenční stínítko v obrazovce totiž plynule pohasíná a to, že jsou půlsnímky z jiného časového okamžiku vůbec nevadí. Obraz plynule přechází z jednoho půlsnímku do druhého atd. Iluze pohybu na obrazovce je tedy mnohem dokonalejší, protože video bylo nasnímáno frekvencí 50 půlsnímků za sekundu. Promítání prokládaného videa na počítačích skýtá drobné problémy. Obrazovky monitorů jsou mnohem dokonalejší zařízení, než televizní obrazovky. Nejenže zvládají mnohem vyšší snímkové (obnovovací) frekvence (75, 85, 100, některé až 150Hz), ale také vykreslují celý obraz najednou. Zachytávací karty, ale i video z digitálních kamer ukládají video frekvencí 25 snímků za vteřinu (standardně v běžném použití, obecně může být frekvence libovolně velká) a to tak, že zkombinují dva půlsnímky, jeden s lichými řádky a druhý se sudými řádky, do jednoho snímku. Při přehrávání obyčejným přehrávačem je přehrávání špatné, protože přehrávač zobrazuje 25 snímků za sekundu. Každý snímek ale obsahuje dva půlsnímky z jiného časového okamžiku a půlsnímky mohou být vůči sobě posunuty. Při přehrávání tedy dochází k nepříjemnému efektu proužkování (obrázek A.1b). Zde přichází využití video kodeků (které využívá daný přehrávač), které podporují přehrávání takto prokládaných videí. Důležité je také vědět, který půlsnímek je první, jestli je to půlsnímek s lichými nebo sudými řádky. Záleží totiž na zachytávacím hardware v jakém pořadí půlsnímky zachytává a kombinuje do složených snímků. Podle toho se pak snímky
7
začínající lichými řádky nazývají „Field A“ nebo „Top field first“ , nebo v druhém případě, když začíná půlsnímek se sudými řádky, pak „Field B“ nebo „Bottom field first“ . Neprokládané snímky se pak nazývají „Progresive frames“ . Prokládání není pro výsledné přehrávání videa na počítačích vhodné, a proto existuje několik metod k odstranění prokládání (deinterlacing): První metoda spočívá v duplikaci řádků (line doubling) někdy označována jako Bob. Každý půlsnímek je vždy rozšířen na celý snímek (zduplikují se řádky) a promítá se celých 50 půlsnímků rozšířených na celé snímky. Metoda se nazývá Bob, protože při přehrávání může docházet k nepatrnému efektu - poskakování o jeden řádek nahoru a dolů. To je způsobeno tím, že půlsnímek obsahující liché řádky je zduplikován i na sudé řádky a naopak. Tento efekt je ale zanedbatelný. U této metody dochází ke snížení rozlišení ve vertikálním směru na polovinu. Příklad snímku je na obrázku A.1a. Pozn.: Existuje i metoda kdy počet řádků je zachován (neduplikují se), výsledný obraz má vertikálně poloviční rozlišení i velikost. Označována je jako half-sizing. Další metoda Weaving je zobrazování 25 snímků složených vždy ze dvou půlsnímků. Při tomto způsobu zobrazování je při pohybech (změnách) pozorovatelné rušivé proužkování (obrázek A.1b), které je způsobeno zobrazením dvou půlsnímků, kde je každý z jiného časového okamžiku. Metoda zachovává plné vertikálního rozlišení. Pro přehrávání na počítačích je tato metoda nevhodná. Další metoda Blending vychází z metody Weaving . Existují dvě varianty této metody – blending a averaging (interpolation). Varianta blending zpracuje obraz tak, že se dva různé půlsnímky mezi sebou rozmažou a odstraní se tak rušivé proužkování. Nevýhodou je pak viditelné prolnutí dvou snímků – „duchové“ (ghosting) jak ukazuje obrázek A.1c. Druhá varianta metody averaging porovnává jasovou hodnotu bodů nad sebou v řádcích obou půlsnímků a pokud je rozdíl větší než nastavený limit, zduplikuje se (nebo zprůměruje) bod z jednoho řádku do druhého. Tato metoda přináší lepší výsledky, je ale náročnější na zpracování. Při této metodě dochází ke ztrátám vertikálního i časového (počtu snímků) rozlišení. Ztráta vertikálního rozlišení se kompenzuje roztažením obrazu, dochází však ke ztrátě kvality a vytrácejí se detaily obrazu. Příklad zpracovaného snímku je na obrázku A.1d. Kombinací metod Weaving a Blending vzniká metoda selective blending (nebo také motion adaptive blending) a porovnává rozdíly snímku s předchozím snímkem. Pokud je snímek beze změn použije se metoda weaving, v případě změn je použita metoda blending. Redukuje se tak počet vzniklých artefaktů popisovaných v jednotlivých metodách. Zohledňuje se také možnost výskytu vodorovné čáry, která by se při zpracování metodou blending ztratila. Výsledný snímek má plné vertikální rozlišení při 25 snímcích. Pro výsledné přehrávání videa na počítačích se nejvíce hodí pravděpodobně metoda averaging , případně metoda Bob. Samozřejmě existuje mnoho jiných způsobů pro odstranění prokládání. Liší se vždy svými výhodami, ale i nevýhodami. Pozn. Ideální metodou by bylo kompenzovat pohyb (změny) tak, že změny na následujícím půlsnímku by byly přesunuty v čase a na tyto snímky aplikovat metodu weaving, tím by se zachovaly všechny detaily. Musel by se ale řešit problém při příchodu kompletně rozdílného půlsnímku (scény). Metoda pro digitalizaci kinematografických filmů se nazývá Telecine (televisioncinema). Digitalizace probíhá naskenováním jednotlivých snímků v rozlišení příslušného
8
formátu. V normě PAL je to 720x576. Dále je nutné změnit počet snímků za vteřinu ze 24 na požadovaných 25 snímků/50 půlsnímků. V tomto případě se to provádí zrychleným přehráváním filmu (to je také důvod delší doby trvání filmu v kině než v TV). Jednotlivé půlsnímky se pak získají tak, že se liché řádky umístí do prvního půlsnímku a sudé do druhého. Přehrávání pak probíhá jako sekvence půlsnímků A1-A2-B1-B2-C1-C2, kde ABCD jsou původní snímky. Oba půlsnímky jsou tedy z jednoho časového intervalu a zobrazení na monitoru je bezproblémové. Zobrazení na TV je pak vzhledem k shodnosti časového intervalu obou půlsnímků svým způsobem neprokládané.
2.4.
Rozlišení
Rozlišení je dalším důležitým parametrem určující kvalitu zpracovávaných video dat. V analogových systémech byl dán pouze počet řádek, horizontální rozlišení pak bylo určeno frekvenční šířkou pásma a schopností zobrazovací jednotky. Digitální obraz je proti tomu definován přesně, rozlišením v počtech bodů horizontálně a vertikálně, např. 352x288. Při převodu analogového videa na digitální pak záleží pouze na vzorkovací frekvenci a kvalitě analogových dat. Takže informace o digitálním rozlišení analogového signálu je poměrně zavádějící. Mezi digitálním a analogovým rozlišením je ale přesto pevně definovaný vztah. U DV formátu se postupovalo (zjednodušeně) takto: Analogové systémy používají 625 řádek, z nichž viditelných je přibližně 576 řádek, takže vertikální rozlišení bylo ustanoveno na 576 řádků. V horizontálním směru potřebujeme dosáhnout stejné rozlišení jako v analogových systémech. Protože ideální rozlišení TV s nízkým zkreslením je přibližně 768 bodů na řádku a videokamery stejně většinou nepoužívají jako zdroj analogový signál (digitální CCD čip, jehož rozlišení je předem definované), bylo zvoleno jako kompromis 720 bodů, tedy rozlišení 720x576 – plný PAL (V americké normě NTSC je použito rozlišení 720x480). Zachytávací karty podporují také jiná rozlišení, především pak poloviční PAL, což je rozlišení 352x288 (norma MPEG-1). Toto rozlišení má poloviční počet řádků a vypadávají tak liché, či sudé řádky. Získáváme tedy poloviční snímkovou frekvenci pouze 25Hz. Taktéž v horizontálním směru máme poloviční vzorkovací frekvenci a to 352 bodů na řádek. Při úvaze nad rozlišením 720x576 dojdeme k tomu, že rozlišení není vůbec v poměru 4:3, což je poměr šířky a výšky klasických televizních obrazovek. Je to proto, že 576 řádků se na televizní obrazovce zobrazí jako 2x288 řádků (2 půlsnímky) a body na řádkách se pouze namodulují na širší pásmo, tedy se roztáhnou na celou šírku obrazovky. Obraz je tedy zobrazen v teoretickém rozlišení 768x576. U rozlišení 720x576 se říká, že má jiný „pixel aspect ratio“, což je poměr stran jednoho zobrazovaného bodu. Konkrétně je to 1,0667:1 (768/720).
2.5.
Barva
Barevné televize přišly až o několik desítek let později po černobílých televizích. Musel se tedy vyvinout systém, který by byl kompatibilní, aby bylo možné zobrazovat barevný obraz na černobílých televizích, a naopak aby bylo možné zobrazovat černobílý obraz na barevných televizích. Výsledkem byl systém, při němž se dále vysílá jasová složka stejně jako u černobílých televizích a navíc pro barevné televize je barevná složka namodulována s dvakrát nižší šířkou pásma (Důvod proč je poloviční, vychází z principu vnímání lidského oka – viz. výše). Barevná informace má tedy dvakrát nižší rozlišení než jasová složka, a proto jsou velké kontrasty zatíženy i „barevnou duhou“ . Při střídajících se svislých pruzích v obraze je pak
9
vidět barevné moiré (rušivé efekty). Toto je způsobeno právě principem přenosu obrazu (a jeho barevné složky). Z tohoto principu (z přenosu barev) vychází základní formáty pro ukládání video dat v počítačích. 2.5.1.
YUV
Před převodem do číslicové formy se nejprve oddělí jasová složka (Y) od barevné. Následuje převod pomocí rychlých A/D převodníků, každá složka zvlášť, přičemž barevné složky se vzorkují poloviční frekvencí než jasová, protože informace v signálu stejně není. Vetšinou se ještě používá oversampling (získá se tím vyšší přesnost navzorkovaného signálu a zmírňuje aliasing – změnu frekvence, použití má smysl do meze, kdy další informace v signálu již nejsou), tedy vzorkování vyšší frekvencí než potřebnou a následná digitální úprava do požadované velikosti. Ve výsledku pak máme pro jeden snímek 576 řádků po 720 jasových a 360 barevných bodech, což odpovídá šířce pásma (rozlišení) normy PAL. Máme tedy tři složky: jasovou Y a barevné U, V. Tomuto formátu se pak říká YUV (dosahuje se už mírné komprese – je vhodnější pro komprimaci). Zdigitalizovaný formát je vždy ve formátu YUV 4:2:2 (případně 4:2:0 - barevná složka se vzorkuje pouze každý druhý řádek). Udává poměr mezi počtem bodů barevné složky vůči jasové. V tomto případě je poměr 4:2 a barevná složka tedy obsahuje polovinu bodů vůči jasové - na dva jasové body odpovídá pouze jeden barevný. Při pozorování takto vytvořeného obrazu však vůbec nevadí, že obraz obsahuje 2x méně informací o barvě, protože jak z principu vnímání plyne, lidské oko je mnohem citlivější na změnu jasu, než na změnu barvy. S těmito formáty se ale pracuje špatně, protože je nelze jednoduše sčítat, průměrovat apod. - editovat. Převádí se proto do formátu RGB, kdy se přepočítá jasová a barevné složky na známou trojici červená R, zelená G a modrá B. S tímto formátem již lze provádět výpočty, které jsou potřeba například pro počítání přechodových efektů, korekci barev a jiné úpravy. Převody mezi formáty RGB a YUV ale nejsou přesné a při převodech dochází ke ztrátě informace, a proto je třeba se vyhnout zbytečným několikanásobným převodům mezi těmito formáty. 2.5.2.
RGB
Barevný formát RGB je nativním barevným formátem v počítačích. Pro video data se používá kvůli jednodušší (oproti formátu YUV) aritmetice barev obrazu a pracují s ním monitory. Obsahuje tři barevné složky - červenou R, zelenou G a modrou B, které tvoří dohromady vždy jeden obrazový bod. Standardní (nejběžnější) barevný formát RGB má označení RGB24 a udává počet bitů na jeden obrazový pixel. 24bitů, tedy 8 bitů pro každou barvu (R, G a B). Samozřejmě existuje více RGB formátů, ale liší se buď jinačím pořadím barev, nebo jiným počtem bitů na jeden obrazový bod.
2.6.
Zachytávání videa
Digitální video data se pro zpracování v počítačích získávají několika způsoby. Lze je rozdělit na dvě základní skupiny – tzv. „nativní“, v digitální podobě zaznamenaná a data do digitální podoby převedena digitalizací.
10
2.6.1.
Formáty a rozhraní
Digitální kamery (Digital8, MiniDV, DV) jsou v dnešní době špičkové zařízení, které ukládají video data na médium v digitálním formátu DV (Digital Video). Ukládá se již komprimované z důvodu vysokého datového toku. Ke kompresi obrazu se používá tzv. algoritmus DCT (diskrétní kosinová transformace – viz. kapitola 4) při němž se dosáhne přesného kompresního poměru 5:1 a datového toku 25Mbit/s. Obraz je ve formátu YUV 4:2:0. Jasová informace je vzorkována standardním způsobem, barevná informace Cr se vzorkuje každý lichý řádek a informace Cb se vzorkuje každý sudý řádek. Každá s poloviční vzorkovací frekvencí vůči jasové složce. Existuje několik formátů, jako je MiniDV, DVCAM, DVCPRO, Digital8 , využívající stejné kódování obrazu - DV kódování. Rozdíl je pouze v používaném médiu. Formáty DVCAM a DVCPRO jsou určeny pro poloprofesionální až profesionální využití a liší se tedy kvalitou a odolností úložného média. Formáty D-9 a DVCPRO50 používají klasickou DV kompresi, ale používají současně dva kodeky. Datový tok je pak dvojnásobný, ale i kvalita je vyšší. Využívání digitálního záznamu je zřejmý. Vlivem stárnutí, či přehrávání nedochází ke ztrátě kvality. Pro komunikaci osobních počítačů s digitálními kamerami bylo vybráno rozhraní FireWire (vzniklo ve spolupráci firem Apple a Hewlet Packard). Rozhraní bylo později patentováno pod označením IEEE 1394, přesto např. firma Sony jej nazývá rozhraní iLink. Rozhraní FireWire má vysokou podporu v hardware. Podporuje systém Plug and Play, a připojení k jednomu portu až 73 zařízení, jako jsou pevné disky, digitální kamery, digitální fotoaparáty, skenery a jiné multimediální zařízení. Bylo navrženo pro vysoké datové toky a dosahuje rychlosti 400Mbit/s. Digitální kamery pro amatérské využití mají konstantní datový 25Mbit/s. Přenesení záznamu z videokamery do počítače, či jiného zařízení pracující s digitálními video daty se pak děje 1:1. Celý záznam se přenese bez ztráty jakékoliv informace. Takto uložené video data lze pomocí daného softwaru editovat, střihat, převádět do jiných formátů apod. Některé digitální videokamery obsahují průchozí A/D a D/A převodník. Tímto způsobem lze získat digitální video data s dobrou výstupní kvalitou. Na vstup převodníku je přiveden kompozitní nebo SVHS analogový signál a na výstupu je 25Mbit tok dat v DV formátu. Výhody • •
video je již zdigitalizované v DV kodeku, tedy žádná další ztráta kvality konstantní 25Mbit datový tok
Nevýhody • •
ztráta kvality obrazu v případě poškození úložného média - pásky přesně definovaný formát DV 720x576 4:2:0 neumožňuje záznam v jiné (vyšší) kvalitě. Digitální HD (High Definition) kamery mají vyšší rozlišení - až 1920x1080 (využívají k tomu 3CCD čipy a také pro HDV video je z důvodu velkého objemu dat využíváno komprese MPEG-2)
11
2.6.2.
Zachytávací karty, TV-karty, A/D převodníky
Zachytávací karty a TV-karty obsahují A/D převodník, který provádí převod analogového signálu na digitální. Některé karty obsahují čip provádějící hardwarovou kompresi obrazu. Nejčastěji se používá hardwarové M-JPEG kódování, které je vhodná pro střih. Existují i karty provádějící MPEG1, MPEG2 a v současnosti i MPEG4 hardwarové kódování. Kvalita komprese je velice dobrá a zátěž systému je minimální (přesto díky různým optimalizacím nedosahují kvalit offline enkodérů, které umožňují i víceprůchodové zpracování). Nevýhodou často bývá závislost komprimovaného videa na hardwarovou kartu. Softwarová část kodeku bývá vázána na detekci hardwaru a nelze takto zachycené video přehrát na jiném počítači bez tohoto hardwaru. Řešením je konverze kompatibilnějšího formátu. Výhodou je, že softwarová část kodeku umí využívat hardware i k jiným účelům různé převody obrazu, aplikované efekty, hardwarově urychlované korekce barev apod. Převod video dat pak může být mnohonásobně rychlejší, než při použití méně výkonného procesoru k náročným výpočtům. HW komprese se většinou používá, pokud není vyžadováno další zpracování a video se přímo ukládá např. na DVD. Pro další střih a zpracování je lépe zachytávat bez komprese nebo s kodekem, který je určen pro další střih. Existují i externí zařízení připojitelné přes USB rozhraní. USB 1.1 má omezený datový tok a zařízení pak dokáže zachytávat pouze v polovičním rozlišení. USB 2.0 už tento problém nemá. Jejich výhodou je, že zpracování a digitalizace signálu probíhá vně počítače a nejsou jím tolik rušeny. Nevýhodou je, že při přenosu po USB dochází často ke komprimaci video dat, což je nevýhodné pro další zpracování. Jejich použití je vhodnější pro notebooky, pro stolní počítač jsou lepším řešením karty do PCI slotu. Nejvhodnějším a nejkvalitnější řešením pro další střih, ovšem také nejdražším, jsou zařízení pro zachytání v DV kodeku, používaný i DV kamerami. Tato zařízení jsou buď externí, připojují se na IEEE-1394 (Firewire) rozhraní a pracuje se s nimi stejně jako s digitálními miniDV kamerami. Existují i interní řešení do PCI slotu, které navíc obsahují Firewire řadič. Zařízení jsou určeny především pro střihové programy (Pinnacle Studio, Ulead Video Studio, Sony Vegas, Adobe Premiere apod.). Často je lze nahradit zmíněnými digitálními kamerami, které obsahují analogové a zároveň digitální vstupy. Práce s DV zachytávacími zařízeními je nejpohodlnější a kvalitativně převyšují předchozí řešení. Typickými výrobci těchto zařízení jsou např. Canopus nebo Pinnacle. Výhody • • •
digitalizace z jakéhokoliv analogového zdroje možný výběr kódování, rozlišení, snímkové frekvence a datového toku možnost použití HW k urychlení zakódování videa
Nevýhody • • • •
v případě použití kódování bez hardwarové podpory vysoké zatížení procesoru možná závislost hardwarově komprimovaného videa na daném HW horší kvalita obrazu amatérských zachytávacích karet komprimace při přenosu externích zařízení s USB rozhraním
12
3. Principy kódování
Pro hledání algoritmů efektivního kódování je výhodná interpretace obrazové informace v tzv. prostoru zpráv. Metoda vychází z představy, že vstupní obrazový tok B(x,y,t) je diskretizován na vzorky v diskrétních bodech na ploše obrazu a na časové ose a představuje konečný počet vzorků. Zmenšovat počet možných zpráv lze použitím hrubšího vzorkování, což ale vede ke zkreslení obrazového toku. Míra, s jakou diskretizovaný obraz odpovídá vstupnímu, je věrnost zobrazení. Pro kvantitativní vyjádření věrnosti je nutno zvolit kriterium, které by mělo respektovat vlastnosti vnímání (vidění). Cílem kódování bývá nalézt algoritmus, který minimalizuje objem zprávy. Čehož dosáhneme dvěma způsoby: 1. Volbou velkého kroku kvantování, 2. použitím zobecněného kvantování. Při použití obou způsobů je nutno dodržet, aby nedošlo ke snížení věrnosti reprodukce pod předem zvolenou míru. Zobecněné kvantování je vázáno s diskretizací argumentů obrazové funkce, tj. s diskretizací souřadnic x a y v rovině obrazu a času t. Pro zlepšení metody kvantování a tím k omezení objemu informace se daří využívat některé vlastnosti vidění: a) Zrak nevyhodnocuje absolutní velikost jasu, je to diferenční analyzátor, vnímá skoky jasu. b) Zrak sčítá vybuzení podél hran v obraze, tam vnímá i malé skoky jasu. c) Zrak sčítá v čase, tj. akumuluje. Počet kvantizačních úrovní jasu detailů může být výrazně zmenšen. Při hrubém kvantování je zkreslení viditelné jen na plynulých a pozvolných změnách jasu na ploše. Na strmých hranách je zkreslení neznatelné. Komprese datového (bitového) toku je založena na odstranění redundance nebo i irelevance. Typy redundance: 1. Prostorová a časová – data z obrazových prvků, které sousedí na ploše daného snímku, ale i ve snímcích předešlých a následujících jsou vzájemně informačně závislá. To dává možnost predikovat informační obsah obrazových prvků. K redukci prostorové redundance slouží (v současnosti nejvyužívanější) diskrétní kosinová transformace (DCT Discrete Cosinus Transformation) nebo diskrétní vlnková transformace (DWT - Discrete Wavelets Transformation). Časovou redundanci potlačuje pohybově kompenzovaná mezisnímková predikce. 2. Entropická – vychází z pravděpodobnosti většího počtu výskytu některých kódovaných hodnot než jiných. Je výhodné kódovat častěji se vyskytující hodnoty kratšími kódovými slovy. To je kódování s proměnnou délkou slova (VLC – Variable Length Coding). 13
Navíc posloupnost stejných hodnot lze zakódovat pomocí proudového kódování (RLE – Run Level Encoding).
3.1.
Redukce prostorové redundance a entropie (JPEG – DCT)
Využívá se DCT (diskrétní kosinová transformace) a celé kódování (obr. 3.1) [11, 17] lze rozdělit do několika kroků: 1. Digitalizace složkových signálů z kamery se zvoleným kvantováním. 2. Převod digitalizovaných složek R, G, B na přenosové signály – jasový Y a chrominační U, V podle pravidel televizní kolorimetrie (např. 4:2:2 poměr vzorkování složek). Fyziologie barevného vidění dovoluje podvzorkování signálů U a V čímž je podobně jako u analogových soustav (ořezává se frekvenční pásmo) odstraněna irelevantní složka chrominační informace – zrak vnímá nejjemnější barevné detaily černobíle a je také citlivější na jas než na barvu. 3. Rozklad obrazu na bloky 8 x 8 obrazových prvků (bodů). Tato velikost je to kompromis mezi velkým blokem, který zdůrazní soustředění energie do menšího počtu koeficientu transformace a malým blokem, který umožní zachytit prostorové změny obrazu při pohybu. Způsob rozdělení je znázorněn na obrázku A.2. 4. Aplikace DCT. Výsledkem DCT je blok(-y) 8 x 8 koeficientů. Jejich velikost udává váhu odpovídající kosinové složky vůči bloku. DCT potvrzuje, že energie signálu je soustředěna do nf oblasti, což je projevem existence prostorové korelace mezi prvky původního obrazového bloku. Koeficienty mají velkou dynamiku, je třeba je kvantovat velmi jemně až 12 bity. DCT sama neredukuje počet bitů, pouze změří míru korelace mezi obrazovými prvky tj. redundanci. DCT je v tomto případě ztrátová. Používá se proto, že se u ní výrazně projevuje koncentrace obrazové energie do malého počtu koeficientů a také se nejsnáze implementuje přímo i inverzně při digitálním zpracování. Výsledná matice má v levém horním rohu DC složku a zbylé hodnoty jsou AC složky zapsané cik-cak podle jejich významnosti. 5. Podělení koeficientů DCT kvantizační maticí – kvantování. Při minimalizaci počtu přenášených bitů se koeficienty DCT kvantizují. To produkuje kvantizační šum (ztráta informace) a jde tedy o ztrátový proces. Kvantování DCT koeficientů je důležitá operace pomocí které ovlivňujeme poměr mezi kvalitou a bitovým tokem výsledného obrazu. Po kvantizaci typicky zůstane jen málo nenulových koeficientů a zpravidla se odstraní pravý dolní roh matice, kde jsou méně významné frekvence (obrázek A.3). 6. Převedení kvantovaných DCT koeficientů na sériový bitový tok metodou „cik – cak“. Ta slouží k přeměně 2D pole na řetězec koeficientů, řazených od ss hodnoty vzestupně. Při čtení cik-cak mají nenulové koeficienty tendenci shlukovat se do skupin - obrázek A.4. 7. Pro redukci entropie se uplatní kódování v podobě VLC a RLE. Proudové kódování RLE nahrazuje posloupnost stejných symbolů takovým kódem, že po zakódování se počet bitů sníží. Kóduje každý koeficient jako dvojici hodnot (run,level) run-počet nul předcházející nenulové hodnotě, level-nenulová hodnota. To obvykle redukuje data bloku na krátkou posloupnost těchto dvojic. Po dekódování je posloupnost identická s původní a proto je RLE bezeztrátové. Kódování VLC dále odstraňuje entropickou redundanci. Cílem je snížení střední délky kódového slova tak, že se častěji se vyskytujícím hodnotám přiřadí kratší kódové slovo. Nejmenší možnou střední délku slova (počet bitů k zakódování libovolného slovo – počítá se jako suma pravděpodobností výskytu slov násobených
14
počtem bitů potřebných k zakódování daného slova) dosahuje Huffmannův kód (viz. odstavec 4.2.2) a umožňuje při kódování DCT koeficientů velkou kompresi dat (až na 40% původní velikosti). VLC je bezeztrátové kódování. Příklad RLE: Příchozí data Zakódované data
14, 3, 4, 0, 0, -3, 0, 0, 0, 0, 0, 14,… (0, 14) (0, 3) (0, 4) (2, -3) (5, 14)…
Toto kódování postačuje pro zpracování statických obrazů (JPEG). Je jím odstraněna přirozená redundance. Pro kódování sekvence pohyblivých obrázků je použit ve standardu MJPEG, kde je každý snímek zakódován bez další mezisnímkové predikce.
obrázek 3.1 - základní implementace kodéru s DCT
Dekódování je symetrické s kódováním => inverzní postup. Díky ztrátám informace při kompresi není rekonstruovaný obraz není identický s originálem. Čím větší komprese tím horší obraz – blokování (v obraze jsou viditelné artefakty), tzn. že jsou viditelné hrany jednotlivých bloků, tak jak byly rozděleny před diskrétní kosinovou transformací.
3.2.
Redukce prostorové redundance a entropie (JPEG 2000 – DWT)
Využívá se DWT (diskrétní vlnková transformace), která je mimo jiné v posledních několika letech široce využívána při zpracování signálů obecně. Kódování založené na wavelet transformaci poskytuje značné zlepšení obrazové kvality při vyšším kompresním poměru. Wavelety jsou funkce definované na konečném intervale a jejich průměrná hodnota je rovna nule. Základní myšlenkou waveletové transformace je reprezentace libovolných funkcí jako superpozice množiny waveletů (bázových funkcí). Tyto bázové funkce jsou získávány z jediného waveletu – mateřská funkce a to roztažením nebo změnou velikosti a posunutím. Průběh zpracování [15, 16] vstupního snímku je následovný: 1. Na vstupu kodéru jsou očekávána data (signál), jejichž průměrná hodnota je rovna nule. V případě odchylek jsou tyto data upraveny, tak aby odpovídaly vstupním hodnotám.
15
2. Rozložení vstupního snímku na jednotlivé komponenty (jednotlivé vzorky v komponentě mohou mít 1-38b/vzorek) a převod dat z RGB do YUV barevného prostoru. Tento převod může být reverzibilní „integer-to-integer“ (RCT – reversible color transform), nebo nereverzibilní „real-to-real“ (ICT – irreversible color transform). U vlnkové transformace se analyzuje celý obraz najednou. Pro zmenšení paměťové náročnosti se využívá technika rozdělení vstupního obrazu na menší části, označované jako dlaždice = "tile" a ty se komprimují zvlášť ( jedná se o tzv. "tiling"). Rozdělení snímku znázorňuje obrázek A.5. 3. Jednotlivé komponenty (dlaždice) jsou rozděleny do frekvenčních subpásem, což umoňuje efektivněji kódovat data (díky statistickým vlastnostem). Základním prvek pro toto rozdělení je 1-D 2-kanálový PR UMDFB (perfect-reconstruction uninformly-maximallydecimated filter bank). Aby se tento filtr mohl použít i pro obraz (2-D signál), používá se ve vertikálním i horizontálním směru. Tím se efektivně získá 2-D UMDFB. Za předpokladu, že je využívána R-úrovňová vlnková transformace (číslování od R-1 do 0), použije se UMDFB (R-1)-krát na data v komponentě/dlaždici. Výsledkem je počet vytvořených subpásem. Vstupní signál je soustředěn do LLR-1 pásma. Z každého průchodu vzniknou čtyři subpásma (horizontální a vertikální dolní propust LL , horizontální dolní a vertikální horní propust LH, horizontální horní a vertikální dolní propust HL, horizontální a vertikální horní propust HH). Nejhrubšího výsledku se dosáhne v úrovní 0 a nejjemnějšího v úrovni R-1. Každé subpásmo je identifikováno jeho orientací (LL, LH, HL, HH) a úrovní. Na každé úrovni je LL pásmo dále dekomponováno dokud se nedosáhne pásma LL0 (obrázek A.6 vlevo). Toto rozdělení hraje důležitou roli v chování kodeku. Speciálním případem je volba úrovně R=1, kdy nedochází k žádnému rozdělení. 4. Pro transformaci jsou v základní implementaci dvě varianty – 5/3 (biortogonální filtr) a 9/7 (Daubechiho filtr). Transformace 5/3 je reversibilní a může být využita pro ztrátové i bezztrátové kódování. Transformace 9/7 není reversibilní a může být využita pouze pro ztrátové kódování. Kodér může transformovat všechny, žádnou nebo podmnožinu komponent. Výběr je na rozhodnutí kodéru. 5. Kvantizace umožňuje dosáhnout větší komprese minimalizováním přesnosti transformačních koeficientů. Kvantizace je jedním z dvou hlavních zdrojů ztráty informace během kódování. Na každém subpásmu je využívána rozdílná kvantizace (mění se kvantizační krok) a je umožněn jeden kvantizační krok. Velikost kvantizačního kroku je ovlivňována řízením datového toku (úrovní kvality), na který má vliv dynamický rozsah subpásma. U RCT transformace je kvantizační krok nastaven v podstatě vždy na jedna (kvantizace se neuplatní – k zajištění bezztrátovosti). Pokud nejsou všechny kvantizační kroky menší nebo rovné jedné, budou při dekvantizaci některé informace chybět a výsledkem bude pouze aproximace hodnot. 6. Po kvantizaci je každé subpásmo rozděleno na kódové bloky (nepřekrývající se čtverce případně obdélníky) tvořící základní entity pro kódování entropie. Šířka a výška bloků musí být mocnina 2 a nesmí být větší než 4096, (typicky se volí velikost bloků 64x64). Bloky jsou pak seskupovány do čtvercových částí (precintcs). 7. Každý blok je rozdělen do horizontálních proužků o nominální velikosti čtyř vzorků. Jestliže velikost bloku není násobkem čtyř, velikost spodního proužku bude menší. Samotné kódování je tříprůchodové (significance, refinement, clean-up). Ve všech průchodech jsou proužky prohlíženy shora dolů, jednotlivé sloupce uvnitř proužků shora dolů a od levého sloupce k pravému (obrázek A.6 vpravo). Provádí se tzv. „bit-plane“ kódování (pro dané vzorky se vytvoří skupiny bitů, podle jejich významnosti). V každém průchodu se vždy procházejí postupně skupiny nejvýznamnějších bitů jednotlivých vzorků až po nejméně významné bity. Kterým průchodem bude daný bit zakódován, záleží na
16
důležitosti významu jeho pozice a sousedních bitů. Označení důležitosti vstupních dat vede ke zlepšení účinnosti kódování. U skupin vzniklých prvním a druhým průchodem se může kódovat entropie, u skupin vzniklých třetím průchodem se entropie kódovat musí. Ke kódování entropie je využíván aritmetický kodér (MQ kodér definovaný ve standardu JBIG2), kde obsah koeficientu je upravován podle jeho devíti sousedů v kódovém bloku. 8. Ze zakódovaných dat jsou vytvořeny pakety tvořící koncový tok dat. Zakódovaná data pro každou dlaždici jsou organizovány do L vrstev (0 - L-1). Nejnižší vrstvy obsahují nejvíce důležitá data a v nejvyšších vrstvách jsou data obsahující přesné detaily. Během dekódování se pak zlepšuje kvalita obrazu, tak jak jsou zpracovávány jednotlivé vrstvy. Otevírá se tak prostor pro škálovatelnost a progresivní rekonstrukci obrazu (s různou kvalitou a rozlišením). Při kódování mohou být v závislosti na datovém toku některá data nezpracována (při ztrátovém kódování). Tato fáze kódování je druhý hlavní zdroj ztrát informací.
obrázek 3.2 - základní implementace kodéru JPEG 2000
Výhody: • •
•
• • • • •
ztrátová i bezeztrátová komprese za použití stejného kodéru progresivní transmise umožňuje postupně přenášet data a zároveň zobrazovat obraz. V obraze se může postupně zlepšovat prostorové rozlišení, přibývat barevné komponenty nebo vrstvy. tzv. "oblast zájmu" = region of interest. Jedná se o uživatelem definované části obrazu, které jsou komprimovány v lepší kvalitě na úkor zbytku obrazu a mají prioritní umístění v datovém toku. vysoká odolnost vůči chybám. (U JPEG se při chybě obraz buď částečně nebo kompletně nenačte) schopnost kvalitního zpracování obrázků s nízkým poměrem bit/pixel (na rozdíl od JPEG lze dobře pracovat s obrázky o poměru nižším než je 0.25 bit/pixel) možnost zpracovávat obrázky větší než 64000 x 64000 pixelů (omezení současného JPEG), limitem jsou paměťové nároky schopnost komprese nejen přirozených obrazů, ale také s ostrými přechody (šedotónových, počítačové grafiky, medicínské grafiky) struktura umožňující s obrázkem ukládat nejrůznější metadata, mimo jiné informace pro práci s nastaveními barev (digitální fotoaparáty) a ochranu autorských práv
17
3.3.
Redukce časové redundance (MPEG kódování)
Je založena na mezisnímkové kompresi dat. Využívá podobnosti sousedních snímků, kde lze obsah aktuálního snímku předpovídat na základě obsahu snímku předchozího – mezisnímková predikce (obr. 3.3).
obrázek 3.3 - kodér DCT s mezisnímkovou predikcí
Principem je přenos rozdílu mezi aktuálně kódovaným snímkem vstupujícím do dekodéru a snímkem jemu předcházejícím (zbytkový obraz). Již zakódovaný snímek je v místním dekodéru rekonstruován obrázky a vzniklý obraz je přiveden na vstup prediktoru. Zde je tento obraz odečten od aktuálně kódovaného snímku. Výsledkem je rozdíl těchto dvou snímků – predikční chyba. Standard MPEG kombinuje mezisnímkovou predikci s prostředky redukce prostorové redundance a entropie. Predikční chyba se transformuje (DCT), koeficienty se kvantují a tyto hodnoty se kódují (VLC, RLE). Pro mezisnímkovou predikci je jasová složka obrazu rozdělena na makrobloky o velikosti 16x16 obrazových bodů. Při výrazném pohybu ve scéně obsahuje rozdílový makroblok mnoho nenulových hodnot a proto je výhodné doplnit mezisnímkovou predikci kompenzací pohybu (obr. 3.4) umožňující zjistit pozici zvoleného makrobloku již zakódovaného snímku v aktuálně kódovaném snímku. Princip kompenzace pohybu vychází z podobnosti snímků, kde jednotlivé objekty jsou jen v jiných polohách. Hledají se pohybové vektory, které určují kam se objekt na následujícím snímku posunul. Prostorová korelace mezi pohybovými vektory je velká a proto jeden vektor representuje pohyb celé skupiny prvků (makroblok 16x16). Jako u bloku pro DCT i rozměr makrobloku je kompromisem mezi minimalizací bitového toku (velký makroblok) a přesností predikce (malý makroblok). Rozměr makrobloku pro barevné složky závisí na poměru vzorkovacích kmitočtů jasové složky vůči barevným složkám. Pro dosažení lepších výsledků z hlediska kvality a kompresního poměru lze použít obousměrnou predikci z předchozího a následujícího snímku. Dosáhne se tím větší redukce časové redundance. Získají se dva rozdílové makrobloky a z nich lineární kombinace přenášená s dvojicí pohybových vektorů. K umožnění predikce z budoucího snímku musí kodér snímky přeskupit a přenášet v jiném pořadí. Tato operace způsobuje zpoždění (pozn. 18
v praxi lze pozorovat například při současném pozorování analogového a digitálního televizního vysílání, kdy digitální je právě vlivem kódování opožděné).
obrázek 3.4 - kodér DCT s pohybově kompenzovanou mezisnímkovou predikcí
Pro každý právě kódovaný makroblok volí kodér některý z uvedených predikčních módů s tendencí minimalizovat zkreslení v dekódovaném obraze s respektováním přípustného bitového toku. Informace o zvoleném módu se přenáší spolu s predikční chybou a pohybovými vektory. Algoritmus pro nalezení pohybových vektorů standard MPEG přímo neurčuje.
19
4. Popis srovnávaných kodeků
Při nahrávání videa je jedním z největších problémů objem dat. Pro plné rozlišení PAL 768x576 bodů, barevné hloubce 16 bitů a 25 snímcích za vteřinu dostáváme tok dat 22MB/s. Pokud bychom v této kvalitě chtěli nahrát celovečerní film v délce 100 minut, zabere nám na disku 132GB. Toto jen pro představu, proč se používají video kodeky. Kodeky ukládají data do zakódované formy (většinou za účelem přenosu, uchovávání nebo šifrování), ale častěji se používají naopak pro obnovení přesně nebo přibližně původní formy dat vhodné pro zobrazování, případně jinou manipulaci.
4.1. 4.1.1.
Rozdělení kodeků Druhy kodeků
Možným rozdělením kodeků je způsob kódování. Téměř každý kodek využívá vlastní způsob kódování, ale ve většině případů využívají obecně známé principy. Do jedné kategorie pak patří kodeky ztrátové, které pro redukci využívají převod do frekvenční oblasti a kde jsou následně nejméně důležité frekvence zanedbány. Nejznámější transformační metody, které se využívají jsou diskrétní kosinová transformace a diskrétní vlnková transformace (viz. Kapitola 3). Po tomto převodu může být využito ještě další redukce dat jako je Huffmanovo kódování, toto kódování lze využít i samostatně a kodek je pak bezeztrátový viz např HuffYUV a tyto kodeky tvoří druhou kategorii. Mezi ztrátovými kodeky jsou nejvýznamnější kodeky standardu MPEG (MPEG-1, -2, -4, -7). Hlavní trend jsou v současnosti kodeky založené na standardu MPEG-4, tento standard nedefinuje kódování přímo, ale pouze definuje vlastnosti, které by měl MPEG-4 kompatibilní kodek splňovat. Ze standardu jsou odvozené například kodeky DivX nebo XviD. Další skupinu tvoří kodeky H.261, H.263 a H.264 v podobě doporučení organizace ITU-T, kodek H.264 vzniknul ve spolupráci s organizací MPEG (Moving Picture Expert Group) a je také znám jako AVC nebo MPEG-4 part10. Dále sem patří běžně používané kodeky pro práci s domácím videem jako DV, MJPEG. 4.1.2.
Kontejnery
Kromě kodeků jako takových, které přímo kódují video data, existují také kontejnery, které sdružují různá multimediální data do jednoho „balíku“ a vybraným kodekem pak tyto data kódují. Tyto kontejnery můžeme dále dělit podle možnosti jejich využití: − možnost streamování obsahu (sledovat a přenášet data v reálném čase například přes internet, aniž bychom je museli mít uložené v PC) − otevřenost specifikace, tzn. uživatel je může libovolně používat, zvolit si vlastní kodek, případně je dále rozšiřovat.
20
Oddělenou kategorii tvoří kontejnery sdružující multimediální data, které jsou určeny pro mobilní zařízení. Zde je kladen důraz především na jednoduchost implementace, objem dat a efektivitu kódování. 4.1.3.
Nároky na kodeky
Další kriteria rozdělení jsou podle použití kodeků. První kategorií jsou kodeky určené pro zpracování a archivaci videa. Hlavním cílem je snížit velikost nekomprimovaných video dat bez znatelné degradace obrazu, tzn. redukovat užitečné informace na takovou míru, aby bylo pokud možno co nejvíce zachováno sdělení. Rovněž je vyžadována také velká rychlost komprese, pro umožnění kódování v reálném čase. Rychlost dekomprese (je vždy rychlejší než komprese, neprovádí se hledání redundantních informací) musí být rovněž dostatečná, pro rychlou práci při editaci. Do první kategorie lze zařadit kodeky, kde nejde jen o vizuální podobu obrazu originálu, protože při následné kompresi do jiného kodeku jsou i velmi malé, lidskému oku neviditelné změny, zatížením dalšího kompresoru. Do této kategorie patří všechny bezeztrátové kodeky (dekomprimovaný obraz je identický originálu) a také MJPEG a DV. Druhou kategorií jsou kodeky, jejichž cílem je co největší komprese, aby splňovaly požadavky pro dané použití (CD, DVD, TV přenos apod.). Kvalita video dat by měla zůstat vizuálně co nejvěrnější originálu. Zařazují se sem kodeky MPEG standardu, kodeky z nich vycházející jako DivX, XviD, H.264 a také Real Video apod. Do další kategorie spadají kodeky vhodné pro komerční a profesionální použití. Kodeky pro komerční použití by měly vyhovovat kriteriím, které na ně klade právě komerční využití. To je většinou jejich snadná implementace, díky které nemusí být příliš složitý hardware a rychlost zpracování video dat. Ať už kódování video dat, pro zachytávání videa v reálném čase, nebo dekódování pro přehrávání videa v reálném čase. Kodeky pro profesionální použití, musí splňovat požadavky vyšších nároků, jako je nelineární editace (úprava video dat bez zásahu do původních souborů) a práce s video daty v televizních studiích, kde je vyžadována vyšší kvalita obrazu, vyšší rozlišení obrazu, různá snímková frekvence apod. Nebo pro satelitní resp. terestriální přenos z hlediska zabezpečení, datového toku, aj. 4.1.4.
Zabezpečení dat a šifrování
V dnešní době se také klade důraz na autorská práva a z toho plynoucí požadavek na zabezpečení video dat proti kopírování. Do různých kodeků se začaly implementovat ochrany typu DRM (Digital Right Management). Například MPEG-4 umožňuje každé dílo označit unikátním identifikátorem (ISAN - International Audio-Visual Numbers nebo ISRC International Standard Recording Code), dále může k označení autorských práv použít klíčová slova (např. >>composer<>John Smith<<). S příchodem HDTV je implementován další způsob ochrany video dat v podobě HDCP šifrování. K přehrání zašifrovaných dat je potřebný patřičně uzpůsobený hardware a software.
21
4.2.
Bezeztrátové kodeky
4.2.1.
RAW
RAW není vlastně žádný kodek, ale bezeztrátový nekomprimovaný formát. Pro plný PAL (720x576) má datový tok 31,1 MB/s, pro poloviční PAL (352X288) má datový tok 7,6 MB/s 4.2.2.
HuffYUV
Tento kodek komprimuje video s použitím Huffmanova kódování. V nejlepším případě komprimuje až na 40% původní velikosti. Zvládá kompresi obrazu v barevném formátu RGB i YUV, je velmi rychlý a je zdarma. Konvertuje znaky vstupního souboru do bitových řetězců různé délky. Znaky, které se ve vstupním souboru vyskytují nejčastěji, jsou konvertovány do bitových řetězců s nejkratší délkou (nejfrekventovanější znak tak může být konvertován do jediného bitu), znaky, které se vyskytují velmi zřídka jsou konvertovány do delších řetězců (mohou být i delší než 8 bitů). Komprese probíhá ve dvou fázích. První analyzuje vstupní data a vytváří binární strom - graf (obrázek 4.1), popisující obsah vstupních dat. Znaky se seřadí podle jejich četnosti a ve stromu (grafu) spojí vždy dva s nejnižší četností. Spojnice se ohodnotí 0 a 1. Postup se opakuje a místo jednotlivých symbolů se používají nově vzniklé dvojice až vznikne graf, jehož hrany právě udávají kódování znaku.Ve druhé fázi probíhá komprese odpovídající modelu vytvořenému v první fázi. Dekomprese dekóduje řetězce proměnlivé délky podle binárního stromu. Vstupní data a b c d e 4 7 12 9 10
Výstup – kódy pro znaky a b c d e 111 110 0 101 100
obrázek 4.1 - HuffYUV - strom vytvořený po prvním průchodu
Výhody •
zachytávání videa – menší datový tok bez ztráty kvality obrazu
Nevýhody •
pro trvalé uložení dat není příliš vhodný (objem dat je stále načný)
22
4.3.
Ztrátové kodeky
4.3.1.
MJPEG
Kompresní kodek MJPEG (Motion JPEG) je založen na kompresi jednotlivých snímků použitím komprese JPEG (viz odstavec 3.1). Tento kodek má většinou volitelný kompresní poměr v rozmezí 6:1 do 16:1. Při kompresním poměru 1:8 je kvalita obrazu stále ještě velmi dobrá a datový tok se pohybuje kolem 4 MB/s a dosahuje tak dobrého poměru kvalita/velikost. Velikou předností tohoto kodeku je, že každý snímek je komprimován samostatně a je tedy vždy klíčový, tudíž nezávislý na jiném. Proto je tento kodek velmi vhodný pro střih videa na počítači. Zároveň je implementován hardwarově v mnoha poloprofesionálních zachytávacích kartách a zachytávání pak funguje bezproblémově i na pomalejších počítačích. Pro zachytávání video sekvencí je často implementován i v digitálních fotoaparátech. Častou nevýhodou takto hardwarově implementovaného kodeku je nemožnost přehrát zachycené video na jiném počítači bez tohoto hardware. Softwarový kodek komprimující video kodekem MJPEG je například PICVideo MJPEG Codec. Výhody • • • •
každý snímek je klíčový, ideální pro střih bývá implementován hardwarově podpora prokládaného obrazu poměrně vysoká kvalita obrazu
Nevýhody • •
4.3.2.
vysoké zatížení CPU velký datový tok
MPEG-1
MPEG je zkratkou pro Moving Pictures Experts Group. Cílem práce této skupiny je vývoj a standardizace kódování AV dat. Jeho hlavním kritériem bylo vytvořit ekvivalentní formát standardu VHS . Formát MPEG-1 [7] byl dokončen v roce 1991 a jako norma přijat roku 1992 - ISO/IEC-11172. Byl navržen pro práci s video daty o rozlišení 352x288 bodů a formátu vzorkování 4:2:0 (SIF – standard input format - poloviční počet řádků než VHS) a 25 snímků/s při datovém toku 1150 kbit/s s možností náhodného přístupu po půl vteřině. Formát MPEG-1 se stal součástí tzv. „White Book“ , což je definováno jako norma pro záznam pohyblivého obrazu na VideoCD (74 minut videa): Komprese Snímků/s Rozlišení Bitrate Zvuk
MPEG-1 (SIF combo) 25 (PAL) 352x288 (PAL) CBR 1150kbps MPEG-1 audio 224kbps
tabulka 4-1 - Parametry VideoCD
23
MPEG kódování vychází se z poznatku, že mezisnímková změna informace je v podstatě minimální a většina zůstává stejná. Toto kódování používá I, P a B snímky. I snímky (Intra Coded) jsou snímky klíčové (někdy označovány jako plné), jsou komprimovány obdobně jako JPEG a nejsou závislé na žádném z okolních snímků.. P-snímky (Forward Predicted) jsou kódovány s ohledem na nejbližší předchozí I nebo P-snímek (viz dále). B-snímky (Bidirectional Predicted) jsou pak dopočítávané jako rozdílové snímky mezi nejbližším předchozím I nebo P-snímkem a nebližším následujícím I nebo P-snímkem. Celá sekvence snímků (od jednoho I po další I snímek) se pak nazývá GOP (Group of Pictures – obrázek A.7 nahoře) a standardní MPEG stream (datový tok) pro VCD, SVCD používá například pořadí IBBPBBPBBPBB - 12 snímků (pořadí je voleno jako optimální mezi kvalitou dekódovaného obrazu a velikostí výsledného souboru, viz tabulka 4.2 - norma pro DVD má GOP dlouhý 15 snímků). Přesto MPEG standard neurčuje žádná pravidla a omezení pro vzdálenost I a P snímků a nechává prostor pro jednotlivé implementace, naopak určuje syntaxi a sémantiku bitových toků a dekódovací proces – to vede ke kompatibilitě jednotlivých implementací. Kódování navíc umožňuje kdykoliv ukončit GOP a předčasně tak použít další sekvenci GOP začínající snímkem I. Toto vede především ke zlepšení kvality videa. Komprimované video obsahující proměnlivé vzdálenosti mezi klíčovými snímky se pak nazývá VKI (Variable Keyframe Interval). Počet I, P a B snímků lze většinou nastavit, záleží na implementaci kompresoru. Z pohledu zabíraného místa pak I snímky zabírají nejvíce místa, po nich jsou P snímky a úplně nejméně místa zabírají snímky B. Vzhledem k závislosti P a B snímků na sousedních snímcích, je nelze izolované samostatně dekomprimovat. Komprese MPEG-1 se nehodí pro střih videa z důvodu vzdálených klíčových snímků (pro střih v jiných místech než jsou klíčové snímky, což prakticky nastává téměř vždy, by se video data musela dekomprimovat a po požadované úpravě opět zakódovat, což by vedlo ke ztrátě kvality a nárůstu nároku na výpočetní výkon). Většina střihových programů však umožňuje export do formátu MPEG-1. Tento formát je totiž jeden z nejrozšířenějších a lze jej softwarově přehrát téměř na každém počítači a stejně tak na 95% stolních DVD přehrávačích. Tento formát lze také streamovat (přenášet a zároveň přehrávat, aniž by byl soubor stažen celý). Bohužel v dnešní době je již tento kodek zastaralý a nedosahuje kvalit moderních kodeků jako jsou DivX nebo XviD. Kompenzace pohybu (P-snímky a B-snímky): Jak je popsáno v odstavci 3.3 princip kompenzace pohybu vychází z podobnosti snímků, kde jednotlivé objekty jsou jen v jiných polohách. Jestliže je v následujícím snímku zakódováno pouze přemístění objektů, zmenší se značně velikost takto zakódovaného snímku. Jasová složka každého snímku je rozdělena na makrobloky 16x16 obrazových bodů, pro které se v jejich okolí hledají pohybové vektory. Prohledávaná oblast bývá malá (přibližně 48x48 bodů) v jejíž středu se nachází referenční makroblok. Situaci přibližuje obrázek A.8. Existují různé implementace jak prohledávat danou oblast, které jsou založeny na porovnání rozdílu mezi hledaným a nalezeným makroblokem s nastavenou prahovou hodnotou určující zda se smí vektor použít. Velikost predikční chyby pro daný makroblok lze měřit pomocí střední kvadratické chyby (MSE – mean squared error) nebo jako suma absolutních rozdílu (SAD – sum of absolute differences) mezi predikovanými a aktuálními hodnotami všech pixelů prohledávané oblasti. Takto se získá vektor pohybu společný pro čtyři jasové a dva chrominanční bloky. Pokud nelze nalézt pro daný makroblok pohybový vektor (při velkých rozdílech mezi makrobloky), vypočte se rozdílový makroblok (ten je transformačně kódován a kvantován) jako rozdíl odpovídajících makrobloků mezi kódovaným a předcházejícím (predikčním) snímkem. Rozdíl mezi predikovaným (předcházejícím) a aktuálním snímkem je tzv. chybový snímek kompenzující chyby způsobené pohybem a obsahuje jak nové
24
makrobloky, tak kompenzované makrobloky vzniklé predikcí či informaci o pohybových vektorech. U B-snímků se odpovídající pohybové vektory hledají v obou vztažných snímcích. Vektor pohybu je dán dvakrát dvěma složkami v horizontálním a vertikálním směru. Případný rozdílový makroblok se vypočte jako rozdíl odpovídajících makrobloků mezi kódovaným snímkem a interpolací ze snímku předcházejícího a následujícího. Zbylé chyby po mezisnímkové interpolaci jsou kódovány jako u P-snímků. K umožnění predikce z budoucího snímku musí kodér snímky přeskupit a přenášet v jiném pořadí jak ukazuje obrázek A.7 dole. MPEG-1 může použít pohybové vektory s přesností určení jednoho pixelu (one pixel), nebo s přesností půl pixelu (half pixel). Hodnoty na neceločíselném rastru jsou získány bilineární interpolací. Ta způsobuje jako vedlejší efekt omezení kmitočtů vyšších frekvencí (vhodné pro potlačení šumu). Z důvodu závislosti typu snímků na obsahu scény, musí řídicí mechanismus datového toku rozhodnout jaký typ snímku aktuálně použít. Pokud se ve scéně vyskytuje mnoho změn nebo přechodů, snímky jsou obvykle hodně rozdílné a pohybové vektory nelze ve větší míře úspěšně hledat, jsou B-snímky nahrazeny P-snímky a jestliže také nevyhovují, použijí se snímky I (klíčové). Výhody • • •
vysoká podpora přehrávačů softwarových i hardwarových, kompresor i dekompresor je zdarma používá se pro Video CD vhodný i pro streaming videa
Nevýhody • • • •
4.3.3.
nepodporuje prokládané snímky nízká kvalita při nízkém datovém toku jen konstantní datový tok nevhodný pro střih
MPEG-2
Po dokončení MPEG1 standardu byla snaha jej používat i na vyšší rozlišení. Vyvstalo ovšem několik problémů, kvůli kterému byl MPEG1 nepoužitelný. Kódování MPEG1 zvládá komprimovat pouze celé snímky. Nepodporuje však snímky prokládané. Formát MPEG-2 [6] byl dokončen v roce 1994 a stal se standardem pro kódování digitálního videa. Byl navržen tak, aby dosahoval kvality videa televizního vysílání. Oproti MPEG-1 přináší kódování MPEG-2 podporu pro prokládané snímky, tedy půlsnímky. Dále proměnlivý datový tok (VBR), což umožňuje v náročnějších scénách videa použít více bitů pro kompresi a naopak v klidnějších scénách se použije méně bitů (tzn. že datový tok se mění podle dynamiky obrazu). Kódování probíhá ve dvou průchodech. V prvním průchodu si kodér vytvoří soubor informací o kódovaných video datech, při druhém průchodu kodér využívá získané informace k řízení datového toku. Výsledkem je díky rozložení datového toku rovnoměrná kvalita zakódovaného 25
videa při různých scénách a při zachování velikosti zakódovaných video dat. Samozřejmě dále podporuje i konstantní datový tok (CBR). Pohybové vektory používá s přesností půl pixelu (half pixel) Při stejném datovém toku a plném rozlišení (720x576) dosahuje MPEG-2 mnohem vyšší kvality obrazu než MPEG-1 komprese. Nevýhodou komprese MPEG-2, je na druhou stranu velmi vysoké zatížení procesoru při přehrávání, a prakticky žádný rozdíl v kvalitě oproti MPEG-1 kompresi při nízkých rozlišeních. MPEG-2 není optimální pro datový tok menší než 1Mbit/s. Pro streamování v nízké kvalitě je tedy vhodnější komprese MPEG-1, zatímco pro plné rozlišení a vysoké datové toky zase MPEG-2. Při prokládaném řádkování lze skládat makrobloky dvěma způsoby. V prvním případě makroblok tvoří čtveřice jasových bloků tak, že se v nich střídají řádky z lichých a sudých půlsnímků (makroblok s progresivním řádkováním). Druhá možnost je převádět liché řádky do jedné části makrobloku a sudé řádky do druhé části makrobloku. Toto rozdělení je důležité pro predikční obvody a výpočet vektorů pohybu. Pro výpočet predikčních vektorů existují dva módy – celosnímkový a půlsnímkový. Rozdělení makrobloků je znázorněno na obrázku A.9a resp. A.9b. Celosnímkový mód - pro určení vektorů pohybu je možná celosnímková nebo půlsnímková predikce. V prvním případě se pracuje s oběma časově posunutými půlsnímky jako s jedním snímkem. Při předpovědi na základě celého snímku je zapotřebí pouze jeden vektor pohybu pro snímky P (resp. dva pro snímky B). Makroblok je rozdělen na bloky na základě celých snímků. Vlivem časového posunutí obou půlsnímků, vzniká systematická chyba při pohybu svislých hran ve vodorovném směru (dochází zde k tzv. "vytrhávání" obrysů). Proto se tento způsob používá u statických scén. Existuje-li ve snímané scéně pohyb v horizontálním směru, používá se predikce na základě půlsnímku. Makroblok je rozdělen na bloky na základě půlsnímků. Určení pohybu ve snímku je přesnější, ale je zapotřebí dvojnásobný počet vektorů pohybu pro jednotlivé snímky P a B. Půlsnímkový mód - makrobloky jsou rozděleny na základě půlsnímků. Obě části takto rozděleného makrobloku jsou však kódovány jako samostatné snímky. Dual Prime predikce se používá v případech , kdy se zdvojnásobuje počet vektorů pohybu - celosnímkový mód s predikcí na základě půlsnímku a půlsnímkový mód. Predikce zmenšuje počet vektorů pohybu na polovinu zprůměrováním vektorů pohybu předchozího (např. lichého) a následujícího půlsnímku (tedy sudého). MPEG-2 umožňuje hierarchické kódování, kdy výstupní bitový tok se skládá z několika částí - základní datový tok a dále signály, které jej vylepšují. V praxi se např. používá rozdělení hlavního datového toku na část s nižším stupněm zabezpečení umožňující vyšší kvalitu obrazu a část s vysokým počtem redundantních zabezpečovacích bitů snižující kvalitu obrazové informace. Při zhoršení příjmu signálu televizor automaticky přepne na příjem signálu s vyšším stupněm zabezpečení. Vysílat je možné více datových signálů současně rozdělených podle stupně rozlišení, které lze přijímat SDTV, HDTV. Tento přístup je v současnosti překonán implementací standardu MPEG-4 umožňující vyšší úroveň škálovatelnosti datového přenosu (viz. MPEG-4). MPEG-2 definuje různé kvalitativní stupně, a to dvěma způsoby. Jeden způsob jsou profily, které určují komplexnost kódování - jaké části standardu jsou použity:
26
SP
Simple Profile používá pouze snímky typu I a P
MP
Main Profile
422P 4:2:2 Profile
nejpoužívanější (DVD, DVB, HDV), používá vzorkování barev 4:2:0 a všechny typy snímků IPB používán ve studiové produkci a jako jediný používá vzorkování 4:2:2
jako Main Profile, navíc umožňuje rozdělení bitrate podle odstupu signálu od šumu pomocí kvantizace jako Main Profile, ale zakódovává nejprve v nižším rozlišení a teprve Spatial Profile pak ve vyšším rozlišení
SNR SNR Profile SP HP
High Profile
umožňuje 4:2:2 samplování a navíc SNR a Spatial škálování
tabulka 4-2 - kvalitativní stupně MPEG-2 - Profile
Druhý způsob kvality určuje rozlišení a označuje se jako Level: LL
Low Level
ML
Main Level
H-14 High 1440 HL
High Level
nejnižší rozlišení 352x288 resp. 352x240, maximálně 4Mb/s nejpoužívanější s rozlišením 720x576 resp. 720x480 s maximálním bitrate 15Mb/s je používán HDV s rozlišením 1280×720p a 1440×1080i, maximálně 60Mb/s 1920x1080, maximální bitrate 80Mb/s, používán u ATSC HD s 19Mb/s
tabulka 4-3 - kvalitativní stupně MPEG-2 – Level
MPEG-1 (SIF combo) MPEG-2 (Main Profile @ Main Level) Snímků/s 25 4:3 (všechna rozlišení) Poměr stran 16:9 (všechna rozlišení kromě 352 bodů na řádek) Display mode pan & scan (oříznutí obrazu), letterbox (černé pruhy) Data VBI (vertical blanking interval – vertikální synchronizace) obrázky kódovány run-length metodou zobrazené přes video snímky Podobrázky pro titulky, karaoke, jednoduché animace maximum 32 streamů (jazykových verzí titulků) 720x576, 704x576, 352x576, 352x288 (PAL) Rozlišení (MPEG-1 pouze 352x288) GOP max 30 půlsnímků nebo 15 snímků (PAL) Vyrovnávací 1.8535008 Mbitů (MPEG-2) paměť 327689 bitů (MPEG-1) VBR nebo CBR pro MPEG-2 Metoda pouze CBR pro MPEG-1 Max. bitrate 9.8 Mbps PCM: 48/96kHz, 16/20/24bitů, max 8 kanálů, max 6.144Mbps Dolby AC-3: 48kHz, 16bitů (kompr.), max 5+1 kanálů, max 448kbps Zvuk MPEG-2 audio: 48kHz, 16bitů (kompr.), max 7+1 kanálů, max 640kbps
Komprese
tabulka 4-4 - DVD norma
27
Výhody • • • • •
používá se pro SVCD, DVD používá se pro digitální vysílání (DVB - Digital Video Broadcast) Vysoká kvalita při vysokém datovém toku (6Mbit/s a více) podpora proměnlivého datového toku podpora prokládaného videa
Nevýhody • • • •
4.3.4.
pro osobní počítače nutnost hardware či software přehrávače, při softwarovém přehrávání je vysoké zatížení procesoru nízká kvalita při nízkém datovém toku nevhodný pro střih (Vzdálené klíčové snímky) komerční kodeky
MPEG-3
Pro HDTV (High Definition TV) měl být určen MPEG-3. Jeho vývoj byl ale zastaven, protože pro požadavky HDTV plně postačuje formát MPEG-2.
4.3.5.
MPEG-4
MPEG-4 ve verzi 1 byl navržen jako standard (1998) pro kódování multimediálních dat a pro přenos těchto dat po internetu. Nespecifikuje přesně kódování a komprimační algoritmy, zahrnuje pouze množinu parametrů a vlastností, které musí kompresor splňovat. Existují různé implementace MPEG-4, které používají z definice MPEG-4 vždy to, co je pro danou implementaci vhodnější. Toto umožňuje jeho použití v různých aplikacích s různým využitím. Dále vyvinuty verze 2 a 3. Jednotlivé verze jsou vždy zpětně kompatibilní a nové vlastnosti byly vždy přidávány formou nových profilů (původní zůstávaly zachovány). Implementaci nových verzí zachycuje obrázek A.10. Standard MPEG-4 [5] je založen na BIFS (BInary Format for Scenes) objektovém kódování podobné podstaty jako VRML (Virtual Reality Modeling Language) a popisuje prostorově časové uspořádání objektů ve scéně. Nedívá se na obraz jako celek, ale rozděluje ho na pozadí a jednotlivé objekty, které jsou na tomto pozadí. Popis scény má hierarchickou strukturu a může být reprezentován jako acyklický graf (strom – obrázek A.11). Tato struktura nemusí být nutně statická, protože jednotlivé uzly mohou být odstraněny, přemístěny či přidány. Jednotlivé objekty jsou rozděleny do oddělených vrstev a ty jsou pak zakódovány. Objekty zde mohou kromě videa a audia být 2D a 3D objekty, animace, text, interaktivní prostředí, data atd. Tento způsob kódování přináší velice efektivní výsledky, je dobře škálovatelný a z hlediska nezávislosti objektů na scéně (viz. níže) přináší i zmíněný jistý způsob interaktivity. Divák pak může přesouvat objekty po scéně, v případě 3D scény měnit směr pohledu apod. MPEG-4 je poměrně složitý a je dále rozdělen do částí, které jej popisují a doplňují o další vlastnosti. MPEG-4 podobně jako MPEG-2 podporuje mnoho profilů a k nim vázaných levelů kvality. Mezi nejpoužívanější patří MPEG-4 SP (Simple 28
Profile), který byl určen pro aplikace s nízkým bitrate - internet, videokonference, streamované video a další aplikace, kde se vyskytuje jen velmi málo pohybu. Tento profil nepočítá s B-snímky, používá pouze I-snímky a P-snímky. Další byl MPEG-4 ASP (Advanced Simple Profile), přidává podporu B-snímků a detekci pohybu objektů po celém snímku (GMC – Global Motion Compensation), kde je určitá operace shodná pro většinu elementů ve scéně (např. zoom, rotace) nahrazena jedním společným vektorem. MPEG-4 umožňuje pro kompenzaci pohybu využít bloky o velikostech 8x8 nebo 16x16 pixelů. Dále přidává přesnost detekce pohybu na 1/4 pixelu (QPEL). Dále pak nabízí možnost volby vlastní kvantovací matice a vylepšenou adaptivní kvantizaci při VBR kódování (víceprůchodové), kde se rozpoznává obsah snímku (pohyb, obličej, pozadí atd.) a podle toho se určí kvantování. Dalším je verze MPEG-4 AVC (Advanced Video Coding), známá také jako Part 10 a přijatá jako standard ITU-T H.264. Umožňuje větší kompresi při srovnatelné kvalitě jako MPEG-2, není již určena pouze pro streamované video, ale jako náhrada za MPEG-2 v komerčních zařízeních. Mezi nejvýznamnější změny patří možnost predikce obrazu i přes více snímků, variabilní velikost částí v rámci makrobloků pro detekci pohybu od 4x4 bodů, vážená predikce, vylepšeno kódování I-snímků, postprocessing pro odstranění viditelného čtverečkování bloků a mnoho dalšího (H.264 je podrobněji popsán v odstavci 4.3.8 ). QPEL umožňuje přesný popis pohybující se části obrazu. U barevné složky tato přesnost vzrůstá na 1/8 pixelu, protože má většinou poloviční rozlišení (YUV 4:2:0). Pokud má vektor obě složky celočíselné, bod v referenčním snímku existuje a může se použít. Pokud nejsou celočíselné, provede se interpolace mezi nejbližšími body. Při interpolaci se nejdříve provede FIR (Finite Impulse Response Filter) filtrace na 1/2 pixely (vážený průměr okolních 6 bodů) a pak je každý 1/4 pixel vytvořen bilineární interpolací sousedních bodů a 1/2 bodů. U barevné složky se každý 1/8 pixel počítá lineární interpolací mezi sousedními body. Prakticky to má za následek zvýšení ostrosti obrazu. Příklad pohybového vektoru s přesností 1/4 pixelu pro kodek H.264 je na obrázku A.15. V rámci MPEG-4 může visuální scéna (Visual Object Sequence - VS) obsahovat libovolný počet objektů (Video Object - VO). Každý objekt není reprezentován pouze v jednom snímku, ale může být ve více snímcích, jeho polohu v čase určuje VOP (Video Object Plane), objekt pak stačí zakódovat pouze jednou. Jednotlivé VOP jsou zakódovány ve streamu, v struktuře nazývané Group of Video Object Planes (GOV) a určuje přístup k VOP ve streamu. Speciálním druhem VOP je Intra coded VOP (I-VOP), což je I-snímek, zakódovaný pomocí DCT s určitou kvantizací. Podobně existují také P-VOP a B-VOP. Vyhledání a popis objektů v obraze je nejdůležitějším a nejtěžším prvkem kódování, tzn. určení jejich tvaru a jejich zakódování - shape coding. Objekt je zakódován tak, že se určí pixely, které k objektu patří a jejich průhlednost. Je to ekvivalent černobílého obrázku s pixely o hodnotě 0-255, která určuje průhlednost. Opakem shape coding je sprite coding - jde o informaci, která náleží k okolí objektu, jde typicky o pozadí. V případě background sprite se jedná o celé pozadí - statický obrázek, který stačí zakódovat jen jednou. Jeví se pak někdy tak, že pozadí až nepřirozeně stojí, přestože se původně trochu pohybuje, enkoder ale vyhodnotil, že nejde o důležitou informaci a tento pohyb zanedbal (nejčastěji je možné si toho všimnout u WMV). Tento princip vyplývá z původního záměru určení MPEG-4 pro videokonferenci, kde je pozadí téměř neměnné Další důležitou vlastností je scalability, což je škálovatelnost, v tomto případě lze označit i jako interpolace či aproximace - jak objektů v prostoru (spatial), tak i v čase (temporal). Spatial scalability umožňuje měnit prostorové rozlišení. U temporal scalability
29
lze zvětšovat framerate a zlepšit tak plynulost pohybu, přestože v původním záznamu je framerate nižší. Dále pak lze jednotlivé objekty kódovat s různou úrovní kvality. Škálovatelnost je výhodná pro možnost volby různé kvality přehrávaného videa z jednoho zdroje video dat (např. pro mobilní telefony, ale i TV vysílání). MPEG-4 umisťuje objekty do elementárních streamů (ES - elementary stream). Každý objekt může mít jeden nebo více ES. Například škálovatelný objekt by měl mít jeden základní (basic) ES zahrhnující jednoduchý popis objektu a pak jednu nebo více vrstev (enhancement layer), kde každá by měla mít vlastní ES pro zlepšení kvality popisovaného objektu (např. jemnější detaily, rychlejší pohyb). MPEG-4 dále umožňuje multiplexování a synchronizaci dat příslušných objektů, která mohou být přenesena datovou sítí poskytující QoS (Quality of Service) odpovídající typu objektu. Hlavní části (Parts) MPEG-4: Part 1 – Systems: Popisuje vztahy mezi vizuálními a audio daty (tzn. synchronizace a multiplexování) MPEG-4 streamu. Využívá se BIFS a Ods (Object Descriptors). Ods přidává další informce jako URL k danému objektu, vlastnosti potřebného dekodéru a jiné. Dále pak zahrnuje podporu pro změnu a tvoření MPEG-4 obsahu, ukládání obsahu do souboru (MP4), vzájemnou interakci klient-server apod. Part 2 – Visual: Umožňuje kódovat běžné video data zároveň s daty vytvořenými počítačem (video, textury, animace, text, virtuální realita atd.). Je zde zahrnuto mnoho profilů, z nich nejznámější je ASP (Advanced Simple Profile) Part 3 – Audio: Skupina nastavení, díky kterým má MPEG-4 audio širokou oblast použití od mluvené řeči po multi-kanálový zvuk (AAC – Advanced Audio Coding). Umožňuje přirozeně vytvořený zvuk i syntetizovaný. Part 6 – DMIF (Delivery Multimedia Integration Framework): Rozhraní mezi aplikací a přenosovou cestou. Part 8 – Specifikuje přenos MPEG-4 obsahu po IP sítích Part 10 – AVC (Advanced Video Coding): Toto kódování přináší nová vylepšení. Je shodné se standardem ITU-T H.264. Part 11 – Definuje BIFS (BInary Format for Scenes) a popisuje audiovizuální obsah 2D nebo 3D scény. Part 12 – Tvoří základní ISO formát pro uložení mediálního obsahu do souboru Part 14 – Popisuje formát MPEG-4 souboru. Definuje kontejner, jehož základ tvoří Part12. Vychází z formátu QuickTime firmy Apple. Podobně jako QT, vytváří objektově orientované struktury – atomy, které jsou jednoznačně identifikované označením a délkou. Tento formát lze streamovat a je nezávislý na přenosovém protokolu. Part 15 – Popisuje uložení AVC (Part 10) do souboru. Vychází z Part 12.
30
Part 16 – AFX (Animation Framework eXtension): Poskytuje nástroj pro tvorbu výkonného počítačem tvořeného prostředí. Zahrnuje 6 kategorií, které jsou přizpůsobeny konkrétnímu mediálnímu obsahu. Part 17 – Timed text: Na tomto formátu jsou založeny titulky pro MPEG-4. Je streamovatelný a tvořil jeden z hlavních aspektů při tvorbě tohoto formátu. Je určen hlavně pro MP4 kontejnery, lze využít i pro formát 3GPP, který je téměř identický, ale je určen pro mobilní zařízení. MPEG-4 specifikace v současné době nabízí 22 těchto částí. Ne všechny vlastnosti mohou být použity. Také ne každý dekodér je schopný zpracovat všechny části streamu. Proto byly zavedeny stupně kompatibility (conformance points), které definují vlastnosti, které je možné použít. Dekodér určitého stupně je schopen dekódovat stream z enkodéru stejného stupně nebo nižšího. Stupeň je definován jako profile, který určuje vlastnosti, které je možné použít, a level, který definuje jejich parametry. Nejpoužívanější profily jsou: •
• • • •
Simple Visual Profile - je nejzákladnější profil, který umožňuje použít pouze obdelníkové objekty, každý blok může mít 4 pohybové vektory, celkový počet vektorů není omezen Simple Scalable Visual Profile - přidává podporu pro temporal a spatial scalability Advanced Simple Profile - přidaný dodatečně, založen na Simple Visual Profile s větší účinností komprese Core Visual Profile - přidává objekty libovolného tvaru a temporal scalability Main Visual Profile - umožňuje prokládaný obraz, průhledné objekty a sprite coding
umožňuje rozlišení až 352x288 a 15 snímků/s, half-pixel rozlišení pro kompenzaci pohybu ASP@L5 umožňuje rozlišení až 720x576 a 30 snímků/s a přidává Advanced podporu B-snímků, QPEL, GMC, možnost volby vlastní kvantovací ASP Simple Profile matice, vylepšenou adaptivní kvantizaci přináší rozlišení až 4096x2048, více snímkovou predikci, flexibilní Advanced AVC GOP, rozdělení makrobloku pro kompenzaci pohybu na části od 4x4 Video Coding do 16x16 pixelů, obsahově přizpůsobivé entropické kódování
SP
Simple Profile
tabulka 4-5 - vlastnosti vybraných MPEG-4 profilů
Dnešní kodeky nejčastěji využívají Advanced Simple Profile, mnohé jej ale rozvíjejí o další vlastnosti dle konkrétní implementace, přičemž se nedrží přesně doporučených stupňů kompatibility, proto bývají často nekompatibilní (DivX, XviD, 3ivX, WMV). Zmíním zde ještě Advanced Scaleable Texture Profile umožňující použít kódování založené na waveletové transformaci vhodné pro použití v aplikacích s velkým rozsahem škálovatelnosti. Postupný vývoj kodeků samozřejmě přináší zvýšení komprese při zachování kvality. Standardizované kodeky mají velikost zakódovaných dat vzhledem k MPEG-1 přibližně: MPEG-1
MPEG-2
MPEG-4 ASP
MPEG-4 AVC
100%
90%
50%
35%
tabulka 4-6 - porovnání velikostí zakódovaných dat pomocí různých verzí MPEG
Kodeky využívající způsoby kódování MPEG-4 jsou např. Microsoft MPEG-4 v1, v2 a v3, DivX 4, DivX 5, XviD a další. V budoucnu se počítá s jeho implementací pro digitální
31
vysílání, kde by nahradil stavájící MPEG-2. MPEG-4 video a souborový formát lze nalézt také ve formátu 3GPP, což je specifikace pro mobilní multimediální zařízení. Nespornou výhodou MPEG-4 je, že každý objekt na scéně může mít unikátní funkci. S touto objektově založenou architekturou, mohou být všechny objekty snadno tvořeny a spravovány (např. umístění objektu ve scéně, měnit geometrické nebo akustické parametry objektu, aplikovat datový tok na objekty za účelem změny jejich atributů, interaktivně měnit úhel pohledu). MPEG-4 umožňuje interaktivní programování, které je s jinou technologií nemožné (např. neobvyklé vysílání tv stanic). Největší výhodou je, že interaktivita může být lokální (např. sledování živého vysílání, uložení na CD nebo DVD a pak zpětné přehrávání) nebo vzdálená (např. při komunikaci s multimediálním serverem a výběrem pořadu). Výhody objektově orientované architektury: − −
− − − −
kompletně standardizovaná implementace => kompatibilita různých zařízení flexibilní a tvůrčí kontrola => uživatelské rozhraní může být kompletně kontrolováno tvůrcem obsahu, uživatel pak potřebuje pouze kompatibilní zařízení libovolná distribuce kdekoliv přenášení po libovolných síťových rozhraních přenos mezi různými zařízeními (PC, PDA, mobilní telefon atd.) integrované zabezpečení proti kopírování
Pro popis objektů na scéně nabízí MPEG-4 i textový formát XMT (eXtensible MPEG-4 Textual format). Dále pak BIFS ve verzi 2, která přináší nové funkce jako vylepšené modelování zvuku v interaktivní virtuální scéně, animaci postav (kdy se přenáší jen parametry o postavě a dekodér na základě určitého modelu vytvoří postavu), úpravy barev jako je průhlednost, zahrnutí 3D sítí do BIFS scény, předávání interaktivních příkazů serveru přes zpětný kanál pro specifické účely apod. Výhody • • • • • • • •
standard definuje (různé profily) co by měl kodér splňovat => kompatibilita kodeků v současnosti nejprogresivnější standard kódování vhodný i pro použití v Internetu a mobilních zařízeních video on demand (video na požádání) rozšiřuje možnosti digitálního televizního vysílání škálovatelnost zakódovaného videa profesionální studiové aplikace vhodný pro trvalé uložení dat
Nevýhody • • •
značné zatížení procesoru míra volnosti při implementaci kodeků může vést k nekompatibilitě kodeků komerční kodeky
32
4.3.6.
MPEG-7
Standard vznikl na základě požadavku orientace ve vzrůstajícím množství audiovizuálních (AV) dat. Aplikace a poskytované služby se stávají více multimediální a rovněž roste míra interaktivity. AV materiály jsou k dispozici na všech médiích a ve všech sítích (CD, DVD, DV, WWW, LAN, ATM sítě). Současný stav je takový, že je takřka nemožné najít hledané informace - nechybí materiál, ale informace o jeho obsahu nutná pro efektivní poskytování vyhledávacích a rešeršních služeb.(Pozn.: Pro text již vyhledávače existují) MPEG-7 standardizuje [4] popis audiovizuálních materiálů podle obsahu díla, dovolující rychlé a efektivní vyhledávání. Na rozdíl od standardů MPEG-1, MPEG-2 a MPEG-4 určujících digitální reprezentaci audiovizuálního díla, MPEG-7 normalizuje informaci o obsahu díla pomocí popisovačů (Descriptor). Descriptor může existovat odděleně od obsahu, nebo jako data multiplexovaná ve vlastním datovém toku. Je počítáno s většinou typů AV informací: audio, mluvená řeč; video data, obrázky, grafika, 3D modely, popisovače scény u MPEG 4. Popis může být spojen s jednotlivými objekty (v případě MPEG-4). Jsou zohledňovány současně platné algoritmy vyhledávání textu. Descriptor se skládá z informací, které lze automaticky získat z AV materiálu (u videa barva, textura, tvar, pozice, pohyb a u audia tón, rytmus) a z informací, které z obsahu získat nelze (autor, copyright, žánr). High level deskriptory jsou výkonné, ale nejsou příliš pružné. Naopak low level deskriptory jsou všeobecně použitelné, pružné a jejich nevýhodou je nutnost použít výkonný vyhledávací stroj. Standardizace usnadňuje rychlou a výkonnou identifikaci obsahu podle zájmu uživatele. Dovoluje, aby stejně popsaný obsah byl přístupný více vyhledávajícími stroji a filtry, a naopak jeden vyhledávací stroj může určit požadovaný obsah z více zdrojů. Způsob vzniku popisu objektu a způsob jeho využití, není standardem MPEG-7 definován. Definován je pouze samotný popis (t.j. syntaxe a sémantika). Definované minimum nutné pro spolupráci vyhledávačů a generátoru popisu vlastností je možnost využití zlepšení v oblastech, které MPEG-7 nepokrývá (rozpoznávání objektů). DS (Description Scheme) - určuje vztahy mezi svými složkami (Deskriptory nebo subDS). Deskriptor obsahuje pouze základní typy dat poskytovaných DDL (Definition Description Language) a neobsahuje souvislosti s jinými Deskriptory nebo (sub)DS. Na obrázku A.12 je příklad pohybového deskriptoru, který popisuje určitý audiovizuální materiál. Jemu je podřízený deskriptor scény (určitý záběr), který obsahuje (sub)DS snímku a Deskriptor doprovodného komentáře (dialogu). Samotný popis se skládá z DS (struktura) a souboru hodnot deskriptorů, popisujících data (konkrétní hodnoty). Popis se dále kóduje do binárního tvaru podle požadovaných vlastností jako např. chybová odolnost, stupeň komprese nebo náhodný přístup. DDL (Definition Description Language) je jazyk sloužící k popisu vlastností AV materiálů. Určuje syntaxi DS a Deskriptorů. Způsob využití popisu AV materiálu definovaný standardem MPEG-7, není definován. V principu může být libovolný typ pořadu získán prostřednictvím jakéhokoli typu dotazu (query). Vyhledávací stroj srovná dotaz a popis MPEG-7, přičemž uživatel získá odkaz na požadované dílo.
33
Výhody • • •
vyhledávání v AV databázi, multimediální prezentace výběr TV a radio pořadů, teleshoping použití v lékařství, při střežení objektů
Nevýhody •
v současnosti malé rozšíření
4.3.7.
ITU-T H.261, H.263 a H.263 verze 2 a 3, H.264
ITU-T (International Telecommunication Union, Telecommunication Section) – organizace definujicí standardy v podobě doporučení pro oblast telekomunikací. H.261 Standard pro videokonference a videotelefonii přes ISDN. Tento kodek je zaměřen na nízké zpoždění při kódování. Umožňuje regulovat tok dat v závislosti na propustnosti sítě. Používá rozdělení obrazu do bloků a jsou využívány pouze snímky typu I a P. Výstupní tok kodéru má hierarchickou strukturu o čtyřech úrovních: úroveň snímku, úroveň skupiny bloků GOB (Group Of Blocks), úroveň makrobloku a úroveň bloku. Každý snímek se v závislosti na jeho rozlišení skládá z určitého počtu GOB a každý GOB se skládá z určitého počtu makrobloků. Podobně jako u MPEG kódování se na částech makrobloků o velikostech 8x8 pixelů provede DCT, výsledné koeficienty jsou pak kvantovány kvantizační maticí a následně se kódují VLC metodou. Pro udržení konstantního datového toku se podle potřeby mění koeficienty kvantizační matice. Všechny implementace musí podporovat formát QCIF (Quarter Common Intermediate Format – 176x144 pixelů) a volitelně pak CIF (352x288 pixelů). Přenos dat je 64kbit/s nebo násobky (128kbit/s dva kanály ISDN). Výhody • •
vhodný pro přenos obrazu (standard pro video telefonii) v aplikacích nevyžadující vyšší nároky na kvalitu obrazu rychlost kódování
Nevýhody •
nízká úroveň komprese
H.263 Kodek používá velmi nízké přenosové rychlosti od 10kb/s do 2Mbps. Implementuje snímky typu B, vyšší přesnost při pohybu, kvantování a kódování než H.261. Při stejné kvalitě obrazu dosahuje o 30-50% menšího datového toku než H.261. Shodně jako MPEG-2 využívá pohybové vektory s přesností 1/2 pixelu. Hodnoty na neceločíselném rastru jsou 34
získány bilineární interpolací. Ta způsobuje jako vedlejší efekt omezení kmitočtů vyšších frekvencí, což je vhodné z hlediska potlačení šumu. Pro zvýšení komprese jsou navrženy čtyři zdokonalené kódovací volby: − neomezené pohybové vektory (Unrestricted Motion Vector Mode), kde pohybový vektor může ukazovat mimo obraz. Pro predikci „neexistujících“ pixelů jsou použity okrajové pixely. Volba má výrazný přínos, pokud existuje pohyb na a přes hranici obrazu. Umožňuje lepší predikci okrajových makrobloků. Je zde i možnost zvětšit velikost vektoru. To je vhodné zejména při pohybu kamery a pro větší obrazové formáty. − zdokonalený predikční mód (Advanced Prediction Mode), který umožňuje použití čtyř pohybových vektorů (namísto jednoho) na celý makroblok. Každý ze čtyř vektorů je použit na jeden jasový blok 8x8. Dosáhne se tím lepší predikce, ale zároveň se zvýší datový tok. Navíc je využito překryvné blokové pohybové kompenzace a vektory mohou ukazovat mimo obraz. Výsledkem je výrazné zlepšení subjektivní kvality obrazu snížením počtu blokových jevů. − aritmetické kódování (Syntax-Based Arithmetic Coding Mode), kdy VLC je nahrazeno účinnějším aritmetickým kódováním. − PB snímky (PB - frames Mode). Snímky typu P a B jsou kódovány jako jedna jednotka. To umožňuje v aplikacích s malým pohybem ve snímané scéně (typické pro videotelefonii) zdvojnásobit snímkovou rychlost, bez výrazného nárustu přenosové rychlosti. Tyto volby mohou být použity dohromady nebo jednotlivě. To umožňuje měnit velikost komprese a výpočetní nároky. H.263 podporuje pět formátů rozlišení (viz. tabulka 4-7). Jeho použití je pro monitorovací systémy a pro videokonference s velkou obrazovkou. Kodek H.263 verze 2 obsahuje vylepšení, která se projevují v efektivitě komprese, větší odolnosti proti chybám a větší škále výběru přenosových rychlostí, což je užitečné při přenosu dat v bezdrátových sítích a sítích založených na paketovém přenosu. Kodek je známý také pod označením H.263+. Vyvinuta byla i verze 3 - H.263v3 (někdy označována jako H.263++ nebo H.263 2000). Obrazový formát SUB - QCIF QCIF CIF 4CIF 16CIF
Rozlišení (pixely x řádky) Jasová složka Chrominanční složky 128 x 96 64 x 48 176 x 144 88 x 72 352 x 258 176 x 144 704 x 576 352 x 288 1408 x 1152 704 x 576
tabulka 4-7 - velikost formátů používaných u H.261 a H.263
Výhody • • •
vhodný pro videokonference a přenos obrazu dosahuje vyšší komprese než H.261 výběr z větší škály datových toků a rozlišení
35
H.264 (nebo také AVC, MPEG-4 part 10, H.264/MPEG-4 AVC) Kodek je vyvinut ITU-T Video Coding Experts Group (VCEG) ve spolupráci s MPEG (skupina je známa pod označením JVT - Joint Video Team). Finální verze [3] byla představena v roce 2003. Poskytuje výrazné zlepšení oproti předchozím verzím. Jeho cílem je podstatné snížení přenosové rychlosti (na polovinu a méně) oproti předchozím standardům (MPEG-2, H.263, MPEG-4 part-2) a jednoduchá implementace. Umožňuje nízký i vysoký datový tok při různě velkém rozlišení (kóduje i HD video). Využívá vzorkovaní YUV 4:2:0. Snímek je rozdělen na makrobloky o velikosti 16x16 pixelů jasové složky a 8x8 pixelů barevné složky. Snímek může být rozřezán na menší kusy, ty jsou dále rozděleny na makrobloky a mohou být zakódovány jako I/P/B/SP/SI snímek [1]. V roce 2004 byl standard rozšířen o FRExt (Fidelity Range Extension). Toto rozšíření přineslo větší kvalitu kódování použitím přesnějšího vzorkovaní (10 b a 12 b) a vyššího rozlišení barev (YUV 4:2:2 a 4:4:4). Mezi další vlastnosti, které toto rozšíření přineslo patří bezztrátové kódování mezi snímky, kódování na základě lidského vizuálního modelu, podpora pro doplňkový barevný prostor apod. Každý makroblok může být zakódován v intra nebo inter módu. V intra módu může být makroblok jasové složky kódován celý a lze použít jeden ze čtyř predikčních způsobů, nebo může být rozdělen na sub-bloky 4x4 pixelů a pak lze použít jeden z devíti predikčních způsobů. Barevné složky jsou rozděleny na sub-bloky 4x4 pixelů a lze použít jeden ze čtyř predikčních způsobů obdobně jako při kódování kompletního makrobloku. Predikční blok se získá dekódováním předešlých již zakódovaných bloků (rekonstrukce musí být provedena před filtrací), je odečten od aktuálního bloku před zakódováním a vzniklá predikční chyba je zakódována. V inter módu je predikční blok tvořen pohybovou kompenzací z jednoho nebo více referenčních snímků (viz. dále). Hlavní vlastnosti, které tento kodek přináší: −
více snímková predikce (kompenzace pohybu), umožňující použít až 32 předchozích zakódovaných snímků jako referenčních. To umožňuje zmenšit datový tok a kvalitu obrazu ve většině scén. V některých typických scénách jako jsou opakující se záblesky, odkryté pozadí atd. je redukce datového toku velmi významná. Zpomaluje ovšem kódování i dekódování. Tato metoda napomáhá lepšímu zotavení z chyb. B snímky používají dva různé seznamy referenčních snímků (list 0 a list 1). Predikce pak umožňuje čtyři varianty: list 0, list 1, obousměrná predikce, přímá predikce.
−
makroblok typu P může být zakódován v P-skip módu, kdy není přenášena predikční chyba ani pohybový vektor pro oblasti beze změn či s malým konstantním pohybem. Obdobně existuje B-skip mód, kdy se nepřenáší predikční chyba pro přímo zakódovaný makroblok.
−
flexibilní GOP – každý B snímek může být použit jako referenční pro ostatní snímky, použitím těchto snímků dále jako referenčních vznikají vrstvy. Vrstva na které jsou B snímky použity jako referenční následně ovlivňuje rozsah variací datového toku. Snímky na nižších vrstvách jsou nezávislé na vyšších. Tím je zajištěna odolnost proti vleklým chybám a právě možnost flexibilní volby datového toku. Závislost vrstev znázorňuje obrázek A.13 – snímky F1,F5 a F9 tvoří základní vrstvu, snímky F3 a F7 vrstvu druhou a zbylé snímky vrstvu třetí.
−
volitelné rozdělení základního makrobloku 16x16 pixelů jasové složky pro kompenzaci pohybu na části od velikosti 4x4 až do velikosti 16x16 pixelů umožňující 36
přesné rozdělení pohyblivých oblastí. Toto rozdělení se nazývá stromově strukturovaná kompenzace pohybu. Např. zvolený makroblok 16x16 lze rozdělit až na 4 části (4 x 8x8 pixelů), každá z těchto částí lze rozdělit na další 4 sub-části (4 x 4x4 pixelů). Velikost zvolených částí má významný vliv na velikost datového toku (menší části = více vektorů => více dat), zde hraje roli také obsah obrazu (homogenní plochy, detaily atd.). Protože barevná složka má poloviční rozlišení a rozdělení makrobloku probíhá stejně, mají všechny části poloviční rozlišení vůči jasové složce (z 8x4 -> 4x2 apod.). Obrázky A.14a a A.14b znázorňují varianty rozdělení makrobloků. Algoritmus rozdělení pracuje tak, že nejprve odhadne pohyb pro 16x16 makroblok, jestliže jeho cena je menší, než určitá hranice, ponechá se makroblok nerozdělený. Jinak se odhadne pohyb pro čtyři bloky 8x8 pomocí metody ADDS (Adaptive Diversity Search Strategy) [1], jestliže je cena všech menší než jiná určitá hranice, zůstane makroblok rozdělen na čtyři bloky 8x8. Pokud ne, provede se odhad pro dva bloky (8x16 a 16x8). Metoda ADDS spojuje na větší nebo rozděluje na menší již ohodnocené bloky 8x8. Při spojování vrací buď při shodě vektorů jeden vektor pro větší blok, nebo průměr predikovaného vektoru a nalezeného vektoru pro bloky 8x16,16x8,16x16. Při rozdělování na 8x4,4x8,4x4 použije vektor odpovídajícího většího bloku jako predikovaný a provede SDSP (Small Diamond Search Pattern). −
six-tap filtraci jasu FIR (Finite Impulse Response Filter), což umožňuje snížit koskatění obrazu a případně zvýšit ostrost obrazu. Jasová složka každého půl-bodu (half-pixel) je váženým průměrem sousedních 6 bodů.
−
přesnost pohybových vektorů (rozdíl mezi dvěma oblastmi v referenčním a aktuálním snímku) zvýšena na 1/4 pixelu (rozlišení vůči jasové složce) - QPEL. Obrázek A.15 znázorňuje případ pohybového vektoru s celočíselnými resp. Neceločíselnými souřadnicemi.
−
často se využívá vysoké korelace mezi pohybovými vektory sousedních částí. Kóduje se pak pouze rozdíl mezi predikovaným vektorem předchozí části a vektorem aktuální části. Metoda závisí na velikosti sousední části a dostupnosti sousedních vektorů.
−
vážená predikce umožňující kodéru škálování a vyvažování kompenzace pohybu a poskytující zlepšení ve speciálních případech jako jsou přechody do (z) černé, prolínací efekty apod (např. scéna je téměř stejná, jen je tmavší).
−
in-loop filtr, který pomáhá odstranit koskatění obrazu vzniklé obvykle při DCT. Aplikuje na rozdíl od jiných (post/pre-filtering) během kódování na každý zakódovaný snímek (z něj se ale musí předtím vytvořit reference na další snímek).
−
přídavná Hamardova transformace provedená na DC koeficienty základní prostorové transformace pro větší kompresi hladkých oblastí. Aplikuje se na intra-kódované bloky jasové složky a na všechny bloky barevné složky [2]. Rozdíl oproti MPEG-1, MPEG-2, MPEG-4, H.263, kde se využívala pouze DCT jako základní transformace.
−
prostorová predikce z okrajů sousedních bloků pro intra-kódování v rámci snímku (lepší než jen DC predikce v MPEG-2 part 2, MPEG-4 part 2 a H.263+)
−
pokročilejší entropické obsahově přizpůsobivé kódování - CAVLC (context-adaptive variable length coding) a CABAC (context-adaptive binary aritmethic coding), které je výkonnější o 10-15% než CAVLC (hlavně pak při vysokých datových tocích). Obě metody jsou bezeztrátové, ale zpomalují kódování i dekódování
−
síťová abstraktní vrstva (NAL – network abstraction layer) definující použití stejného videa v různých síťových vrstvách
37
−
SP/SI snímky umožňující dekodéru měnit datový tok (SP), zotavení ze ztrát a chyb, přetáčení a libovolný přístup k videu (SI). SI snímky používají prostorovou predikci podobně jako I snímky a SP snímky používají predikci založené na pohybové kompenzaci podobně jako P snímky. Na obrázku A.16 je znázorněn přechod mezi dvěma datovými toky. Snímky S1, S2 a S12 jsou kódovány jako SP snímky s malými rozdíly (S1, S2 jsou označovány jako primární a S12 jako sekundární). Při přechodu je místo snímku S1 přenesen snímek S12. Jeho dekódováním lze získat stejný referenční snímek jako by byl dekódovaný S2. Dekódování pak může pokračovat na jiném datovém toku.
−
FMO (Flexible macroblock ordering) a ASO (arbitrary slice ordering) je rozdělení makrobloků do skupin podle jejich obsahu či využití.
−
RDO (rate distortion optimisation), umožňuje kodéru lépe rozhodnout, pokud má na výběr mezi několika možnostmi (např. mezi inter/intra predikcí, hledání pohybů atd.).Není definován přímo ve specifikaci. Umí jej například XviD WHQ Mode.
Stejně jako pro MPEG jsou definovány pro H.264 profily určující, co ze standardu je využito: BP
Baseline Profile
MP
Main Profile
XP
Extended Profile
HiP
High Profile
High 10 Profile High 4:2:2 Hi422P Profile Hi10P
Hi444P
High 4:4:4 Profile
pro nenáročné aplikace disponující menším výpočetním výkonem, podporuje pouze I/P snímky, progresivní zobrazení a CAVLC původně určený jako hlavní profil pro vysílání a uchování dat, později nahrazen HiP, oproti Baseline pracuje i s B snímky, prokládaným zobrazením a CABAC určený pro streamování, má relativně velkou kompresi a odolnost proti ztrátě dat, oproti Baseline podporuje navíc i B/SP/SI snímky základní profil pro výsílání a uchování dat, zvláště pak pro HDTV (převzatý též pro HD DVD a Blue-Ray disky), vychází z Main profilu a přidává bezztrátové kódování, 8x8 pixel intrasnímkovou predikci navazuje na HiP, přidává podporu přesnějšího 10 bitového vzorkování určen pro profesionální aplikace s prokládaným videem, navazuje na Hi10P a přidává podporu pro YUV 4:2:2 přidává další vlastnosti k předchozímu profilu – YUV 4:4:4, 12 bitové vzorkování, podporu pro účinnější bezztrátové kódování oblastí obrazu a pro kódování RGB barevného prostoru .Tento profil je nahrazován vylepšeným 4:4:4.
tabulka 4-8 - kvalitativní profily H.264
Jednotlivé profily se pak dále dělí do levelů, jejichž škálovatelnost je veliká. Datový tok lze nastavit od 64 kb/s do 960 Mb/s (závislosti na profilu) a rozlišení od 128x96 do 4096x2048. Výhody • • •
profily definující vlastnosti zakódovaného videa vysoká účinnost komprese vhodný pro video data v HD kvalitě (HD-DVD, Blue-Ray)
38
Nevýhody • •
4.3.8.
značné zatížení procesoru komerční kodeky
DivX 3.11a Alpha
DivX 3.11a Aplha je nelegálně upravená verze kodeku ASF MS-MPEG-4v3. Microsoft v beta verzi tohoto kodeku umožňoval ukládání videa do formátu AVI, ale ve finální verzi toto zakázal. Přesto se podařilo upravit finální kodek tak, aby umožňoval dále kompresi do formátu AVI. Vznikem tohoto nelegálně upraveného kodeku byly také odstraněné některé špatné vlastnosti kodeku ASF. Tento kodek, přestože je nelegální, zahýbal světem digitálního videa na počítačích. Na 1 CD se s jeho pomocí podaří uložit až 1 hodina filmu ve velmi uspokojivé kvalitě. Snížením datového toku lze samozřejmě nahrát více, ale na úkor kvality. V dnešní době je ale tento kodek již překonán a není tedy důvod jej používat. 4.3.9.
DivX 4, DivX 5, DivX 6
Skupina lidí „majících prsty“ v upraveném kodeku DivX 3.11 Alpha se rozhodla vytvořit vlastní kodek. Z výchozího projektu nazvaný OpenDivX vyšla první verze nazvaná DivX 4, která byla sice dostupná i se zdrojovými kódy, ale kvalita kodeku nedosahovala kvalit kodeku DivX 3.11a. Kodek DivX 4 podporuje tři varianty kódování. Jednoprůchodové kódování zdrojového videa s pevně nastaveným datovým tokem, jednoprůchodové kódování s danou kvalitou a dvouprůchodové kódování. První zmíněná varianta komprese se snaží při kódování video dat dodržet daný datový tok. Mnohdy jej ale nedodrží a vytvoří zakódovaná video data mnohem větší než předpokládaná velikost (při náročných scénách kóduje snímky například jako I, čímž se nedosáhne požadované komprese a následkem je zvýšení datového toku). Varianta komprese s nastavenou kvalitou se snaží dosáhnout dané konstantní kvality. Nevýhodou je nepředvídatelná velikost souboru vlivem různorodosti scény. Poslední varianta je dvouprůchodová komprese. Provádí se dvěma průchody zdrojového videa. Při prvním průchodu se analyzuje zdrojové video a zapisují se získané informace do logovacího souboru. Při druhém průchodu se využívá informace z prvního průchodu ke kódování a predikci. Komprese DivX 4 používá I a P snímky. Podporuje také proměnlivou vzdálenost I-snímků (VKI). Od verze DivX 5 je již kodek uzavřený, bez zdrojových kódů. Kodek je kompatibilní s MPEG-4, komprimuje do formátu MPEG-4 Simple Profile a zvládá přehrávání předchozích verzí kodeku DivX, MPEG-4 Simple Profile, MPEG-4 Advanced Simple Profile a H.263 (videokonference). DivX 5 používá pokročilejší techniky při kompresi a oproti DivX verze 4 dosahuje zlepšení kvality až o 25% při zachování stávající velikosti souboru. DivX 5 má integrované některé nástroje/filtry v sobě a umožňuje tak přímo při kompresi změnit rozměry obrazu, aplikovat filtr prokládání, ořezat obraz a jiné. Dále implementuje algoritmy pro zvýšení komprese využitím tzv. psychovizuálního modelu. Při něm se dosahuje lepší komprese bez znatelné ztráty kvality (lidským okem nerozeznatelné ztráty) a to díky znalostem o lidském vizuálním systému. Implementuje obousměrnou predikci, tedy B39
snímky. Dále tzv. globální kompenzaci pohybu (GMC), což je algoritmus, který optimalizuje kompresi pro panorámování, roztmívání obrazu, přibližování, náhlé změny jasu (exploze), stagnující plochy (voda) a další. Podporuje QPEL pro přesnější kompenzaci pohybu. Kodek také umí export čistě do MPEG-4 formátu a konverzi mezi ním a AVI formátem. Jak je vidět kodek DivX 5 toho přinesl poměrně dost, ale jeho nevýhodou je placená/reklamová plná verze (za reklamovou verzi se nemusí platit, ale část plochy aplikace je vyhrazena pro reklamu). DivX 6 je rozšířen o kontejnerový multimediální formát souborů s příponou „.divx“. Jeho obsah zahrnuje podobu DVD – interaktivní video menu, vícejazyčné titulky a zvukové stopy, vylepšená správa jednotlivých kapitol, video tagy (v souborech, obsahující informace o názvu filmu, autorovi, specifikacích videa atd.). Tento nový formát je opět MPEG-4 kompatibilní (s jeho částí). V mnoha ohledech je tento nový formát shodný s AVI. Je zpětně kompatibilní, takže zařízení, která mají v současné době DivX Certifikaci nebudou mít s tímto novým formátem problém, jen nebudou plně podporovat všechna nová rozšíření tohoto formátu. Dle DivX, Inc. přináší až o 40 % lepší kvalitu výsledného obrazu i komprese ve srovnání s DivX verze 5. Výhody • • • • •
vysoká kvalita videa při nízkém datovém toku lze použít jakékoliv rozlišení dělitelné 4 (beze zbytku) až do 1920x1080 pokročilé kompresní techniky podpora barevných formátů YUV a RGB MPEG-4 kompatibilní
Nevýhody • •
vysoké zatížení CPU přehrávatelné jen na osobních počítačích
4.3.10. XviD V momentě, kdy se OpenDivX stal uzavřeným, se toto nelíbilo některým programátorům pracujícím na OpenDivXu, vzali si zdrojové kódy, ještě otevřeného OpenDivXu, a začali vyvíjet vlastní verzi kodeku nazvanou XviD. XviD je opět MPEG-4 kompatibilní kodek a implementuje mnoho vlastností MPEG-4. Kodek XviD obsahuje mnoho nastavení a je potřeba dobrá znalost tohoto kodeku pro jeho správné nastavení (to je poměrně obtížné pro nezkušené uživatele). V implicitním nastavení dosahuje kvalitních výsledků. Také umí produkovat MPEG-4 kompatibilní datové proudy. Podporuje tyto vlastnosti: − − − − − −
podpora profilů výběr kvantizační matice (H.263, MPEG nebo vlastní) adaptivní kvantizaci prokládané kódování QPEL a GMC dvouprůchodové kódování
40
− Cartoon mode - podpora pro animované filmy − rozdělení kódovaného video streamu do oblastí, kde každá může mít rozdílné nastavení − možnost klasifikovat více makrobloků jako statické a všechny vektory nastavit na nulu a vypustit malé mezisnímkové změny − možnost definovat jak důkladně se budou hledat pohybové vektory Výhody • • • • • •
kodek je zdarma vysoká kvalita videa při nízkém datovém toku lze použít jakékoliv rozlišení dělitelné 4 (beze zbytku) až do 1920x1088 velké množství nastavení kodeku podpora barevných formátů YUV a RGB MPEG-4 kompatibilní
Nevýhody • •
vysoké zatížení CPU zakódované video data přehrávatelné jen na osobních počítačích
4.3.11. DV V mnoha pramenech se píše, že je to kodek bezeztrátový, realita je ovšem jiná. Aby dosáhl konstantního poměru 5:1, tak dochází ke ztrátě informace. Přesto je kompresní algoritmus (DCT) velmi dokonalý a obraz lze srovnávat s kompresemi bezeztrátovými. Jiný než uvedený kompresní poměr nelze u tohoto systému nastavit a rovněž datový tok 25 Mbit/s je u tohoto systému konstantní. Rozhodně však kompresní formát DV není s MJPEG ani s MPEG2 totožný, i když vychází z podobných principů. DV se stal prvním plně digitálním komerčním digitálním formátem ve spotřební elektronice. Výhody • •
každý snímek je klíčový vysoká kvalita obrazu srovnatelná s profesionálními zařízeními
Nevýhody •
velký datový tok
4.3.12. Indeo® Video 5.10 Tento kodek byl vyvinut společností Intel. Má poměrně dobrou kvalitu obrazu. Lze nastavit, aby každý snímek byl klíčový. Při nastavení kvality na 100% je výsledný obraz téměř k nerozeznání od nekomprimovaného.
41
4.3.13. Microsoft Video 1 Tento kodek je standardní součástí všech operačních systémů firmy Microsoft od verze Windows 95. Kvalitou výsledného obrazu je ovšem velice špatný. I při nastavené 100% kvalitě je pozorovatelné čtverečkování a jiné nepříjemné vady v obraze. Kodek je navíc poměrně pomalý a takto zakódované video je dokonce větší než stejné video zkomprimované bezeztrátovým kodekem HuffYUV! Výhody •
kompatibilita a funkčnost i na starších počítačích
Nevýhody • •
4.4. 4.4.1.
špatná kvalita zakódovaného obrazu kodek je zastaralý a již se téměř nepoužívá
Kontejnery AVI
AVI (Audio/Video Interleaved – prokládá video data a zvuk po určitých časových okamžicích) je zřejmě nejstarší formát videa pro PC. Použil ho Microsoft v operačním systému Windows 3.11. Data byla původně bez komprese s rozměrem 160x120 bodů při 15 snímcích za vteřinu. Časem se tento formát stal multimediálním kontejnerem s možností volby kodeků pro snížení datového toku a to je důvod proč je zařazen až na konci tohoto přehledu. Jeho nepříjemností bylo omezení maximální délky souboru na 2GB kvůli sytému záznamu na disk FAT16. Toto omezení v současnosti padlo s použitím FAT32 (NTFS), ale mnoho programů přesto neumí pracovat se soubory AVI většími než 2GB. Existují celkem tři typy, zaváděné tak, jak se objevovala omezení předchozích verzí. −
− −
AVI 1.0 - umožňuje nahrávat pouze do velikosti 1GB, maximální počet snímků je 22500, tedy asi čtvrt hodiny záznamu pro 25sn/s, používal se ve Windows 3.1, již se nepoužívá AVI 1.1 - rozšířeno nahrávání a indexování do velikosti souborů 2GB, některé programy řeší překonání této bariéry pomocí nahrávání do více souborů AVI 2.0 - označuje se také OpenDML, má neomezenou velikost souboru, ale FAT32 omezuje maximální velikost na 4GB, na NTFS je (téměř) neomezeno (velikost disku)
Všechny jsou založeny na formátu RIFF (Resource Interchange File Format) a části jejich vnitřní struktury mají společné. Na začátku souboru je hlavička, která identifikuje soubor a obsahuje informace o video datech (framerate, rozlišení, kodek,...) a o zvuku (vzorkovací frekvence, kvantizace, kodek,...). Hlavička začíná řetězcem RIFF. Na konci souboru je tabulka, ve které jsou informace o pořadovém čísle jednotlivých snímků videa resp. audio paketu a jejich pozici v souboru. Toto řešení je však nevýhodné. Index na konci souboru neumožňuje streamování, protože nelze přehrát soubor dříve, než je k dispozici celý. Další nevýhodou indexace je, že čas snímku není určen absolutně a lze ho spočítat pouze z framerate videa a jeho indexu. To má za následek rozsynchronizování video obrazu a zvuku v případě, že mají rozdílnou délku z důvodu zachytávání videa a zvuku dvěmi
42
nesynchronními zařízeními (např. TV karty a zvukové karty), které ve skutečnosti mají mírně odlišné hodinové frekvence. Kontejnery, které nepoužívají index, ale přímo relativní čas pro popis polohy snímku a audio paketu v souboru, tuto negativní vlastnost nemají. Pokud převedete takový soubor na AVI, dojde opět k rozsynchronizování. AVI se stále používá ve většině zachytávacích zařízeních a je podporován velkým množstvím programů. Nejoblíbenější je DV AVI, což je AVI soubor s kompresí DV, používanou u digitálních kamer, kde je zaručena synchronizace obrazu a zvuku. Obsahuje buď pouze jeden stream, který nese video data i zvuk (ten se také přenáší po Firewire z kamery) a jde o DV AVI typ 1 (při přehrávání se pak musí demultiplexovat), nebo AVI obsahuje video data a zvukovou stopu zvlášť (FireWire stream je před přenosem demultiplexován), a jde o typ 2. Video a audio data jsou multiplexována po snímcích a audio paketech. Je to pravidelně například po snímku nebo po určitém čase (doporučená hodnota 500ms), ale obecně to může být jakékoliv, s tím souvislé nastavení prokládání při zachytávání (Full prokládá po nastaveném čase, None prokládá okamžitě po přijetí dat - není zaručeno pravidelné prokládání, Capture prokládá po nastaveném čase. Pokud by to narušilo tok dat, tak se nemusí prokládání dodržet). „Avíčka“ jsou známá hlavně jako kontejner pro komprimaci video dat a uložení na PC či CD, přesto není příliš známo, že se nejedná o samostatný kodek, ale že ke kompresi využívá některý z výše uvedených (např. DivX, Xvid, Mpeg-4, atd.), ovšem může být i bez komprese. Výhody • •
možnost volby kodeku softwarová podpora
Nevýhody • •
4.4.2.
nedá se streamovat může mít problémy se synchronizací při zachytávání audia a videa
ASF, WMV
Po úspěších na poli streamovaného videa, kterých dosahovaly společnosti Apple a RealNetworks svými formáty Quicktime, MOV a RM, vyvinula firma Microsoft vlastní formát ASF (Advanced Systems Format, dříve označovaný jako Advanced Streaming Format), určený především pro streamování videa. ASF je formát(?) i komprese. Jeho cílem bylo odstranit hlavní nedostatky formátu AVI a dovoluje použít pouze kodeky povolené Microsoftem (Microsoft MPEG-4). Firma Microsoft později uvedla i formát WMV (Windows Media Video), který je novější verzí ASF a má stejnou strukturu. ASF doplňuje velikosti snímků vždy na stejnou úroveň (většinou nulami) a tato data jsou nadbytečná a zvětšují velikost souboru. Není dovoleno pracovat se soubory přímo, ale jen za použití DirectShow filtrů (součást DirectX) Microsoftu. Struktura ASF (ve verzi 1.2) je založena na objektech. Objekt je základní složkou a je identifikován pomocí GUID (stejně jako vše v DirectShow, velikost 16 bytů) a existuje v několika vrstvách. Jeden objekt tedy může obsahovat jiný. Nejvyšší vrstva obsahuje tři objekty. Jako první objekt je v souboru povinně vždy hlavička - Header Object. Pomocí jejího 43
GUID se identifikuje typ souboru v DirectShow (prvních 16 bytů v souboru je vždy shodných). Dále obsahuje objekty druhé vrstvy, většinou nejsou povinné a jsou to: − − − − − − −
− − − − − − − − −
File Properties Object - základní statistika o souboru jako délka, velikost, datum vytvoření, jedinečné ID souboru atd. Stream Properties Object - povinně pro každý stream v souboru a obsahuje informace o typu streamu a formátu Header Extension Object - pro další možné rozšíření specifikace Codec List Object - zobrazitelné informace o kodecích, které jsou použity pro přehrání souboru Script Command Object - seznam příkazů synchronizovaných na určitý čas, obsahuje buď URL adresu nebo soubor Marker Object - jde o časové značky pro rychlý přesun v souboru, obdoba kapitol u DVD Bitrate Mutual Exclusion Object - identifikuje streamy, které jsou vůči sobě vylučující, např. video stopa v určitém čase nemůže být přehrávaná zároveň s jinou, umožňuje uživateli vybrat například video s různým bitrate apod. Error Correction Object - identifikuje metodu korekce chyb Content Description Object - popis obsahu jako autor, titul, copyright, apod., obdoba ID3 tagu u MP3 Extended Content Description Object - rozšíření Content Description o další informace Stream Bitrate Properties Object - informace o průměrném bitrate každého streamu Content Branding Object - je možné připojit značku/banner, který se bude zobrazovat při použití souboru, lze i pomocí URL Content Encryption Object - informace o použitém DRM (Microsoft® Digital Rights Manager) Extended Content Encryption Object - možnost chránit soubor pomocí Windows Media Rights Manager 7 Digital Signature Object - podpis, který chrání informace v hlavičce Padding Object - umožňuje zvětšit velikost hlavičky o libovolnou velikost, nenese žádná užitečná data
Dalším objektem je Data Object, který obsahuje multiplexované streamy ve formě Data Packets. Tyto pakety mají vždy stejnou velikost a obsahují informace pro jeden nebo i více streamů. Setříděny jsou podle času, kdy začínají a končí. Následuje index podobně jako u AVI souboru. Je to buď jednoduchý Simple Index Object, který obsahuje indexaci po fixním času podle videa nebo Index Object, který indexuje rovněž podle času, ale i podle čísla snímků (jako v AVI) nebo timecode.
Výhody •
vhodný pro stream (vysoká kvalita při nízkém datovém toku)
44
Nevýhody • •
4.4.3.
uzavřenost formátu, nemožnost využití jinými programy než firmy Microsoft, zakázáno převádění do jiného formátu z formátu ASF, omezený výběr kodeku kompresor zahazuje snímky aby dodržel datový tok; formát doplňuje soubor ASF o nadbytečná data, aby udržoval konstantní datový tok proudu, čímž se zvětšuje velikost celkového souboru až o 25% oproti přímé kopii video proudu
MPEG stream
MPEG stream je ISO/IEC standard, který definuje způsob multiplexování audio a visuálních streamů (nejen video) do jednoho streamu. Je určen především pro MPEG video a zvuk a umožňuje jak lokální uložení souboru na disk, tak streamování po internetu. Umožňuje i použití pro terestriální nebo satelitní vysílání, nebo i interaktivní obsah. Formát vytvořili výrobci spotřební elektroniky a hlavním požadavkem na něj byla především jednoduchost, aby mohl být snadno implementován v komerčních zařízeních. Definováno je několik aplikačních vrstev, které na sebe navazují. Nejnižší vrstvou je Elementary stream (ES), která definuje vytvoření samostatného streamu z jednoho zdroje - video, audio nebo jiného. Podle toho existuje několik forem ES: − − − −
Digital Control Data Digital Audio Digital Video Digital Data (synchronní nebo asynchronní)
Data u videa a zvuku jsou organizována do částí, tzv. access units (AE). U videa ho tvoří jeden enkódovaný snímek. ES je dále převeden na Packetised Elementary Stream (PES), který tvoří posloupnost paketů. V každém je několik AE. Maximální velikost PES paketu je 65536 bytů, obsahuje hlavičku s informacemi o streamu a data (ES stream). Pokud je PES uložen do souboru, používají se přípony .MPV (MPEG video), .M2V (MPEG-2 video), .MPA (MPEG Audio), .MP2 (MPEG Audio Layer 2), .MP3 (MPEG Audio Layer 3). Několik PES streamů je dále multiplexováno do jednoho streamu dvěma možnými metodami. Jednodušší je MPEG Program Stream (PS), který prostě bere PES pakety a skládá je za sebe, čas paketů je synchronizován ke stejné časové základně. Tento typ je používán v prostředí, kde je zaručena bezchybovost - u záznamových médií (DVD disky) a při přenosu po internetu (soubory .MPG, .M2P). Druhým způsobem je MPEG Transport Stream (TS), který je určen pro přenos v chybujícím prostředí, jako je DVB. Ten rozděluje PES pakety na menší části fixní velikosti a přenáší je ve svých paketech velikosti 188 bytů, které jsou dále zabezpečeny proti chybám při přenosu. Tento typ přenosu má konstantní datový tok a umožňuje multiplexovat více programů do jednoho streamu. Pokud nejsou žádná data k dispozici, vkládají se prázdné pakety. V PC se nejvíce používá Program stream (vyplývá z jeho určení), s kterým pracují všechny běžné programy, ať už jde o přímé nahrávání do MPEG, nebo jen export. V poslední době se využívá i k editaci, přestože se k tomu příliš nehodí kvůli přílišné ztrátovosti kodeku.
45
Výhody • • •
standard určený především pro streamování (ale i uložení) multimediálních dat zakódovaných dle standardu MPEG. jednoduchost implementace použitelný pro digitální televizní vysílání i záznamová media
4.4.4.
Quicktime (MOV)
Quicktime je multimediální kontejner (obálka pro uložení digitálních dat, která obsahuje informace o formátu uloženého videa, audia, použité kompresi,atd.) vyvinutý firmou Apple, který byl v době, kdy mu nekonkuroval MPEG, velmi zajímavý a používaný. V letech 1993-5 byl lepší variantou oproti AVI - lepší kvalita a funkce (umožňuje nést různé typy informací, například i Flash). Je přenositelný mezi PC a Macintosh platformami, používá kompresi od 5:1 až po 25:1. Dnes se používá například na prezentačních CD a pro video streaming (od verze 4). V dnešní době již tento formát zaostává za konkurencí. Firma Apple tvrdí, že Quicktime je plně kompatibilní MPEG-4 kodek, ale v přehrávači Quicktime verze 6.0 nebylo možné přehrát opravdový MPEG-4 stream. Aktuální verze 7.1.1 již standardu MPEG-4 vyhovuje. Podporuje také kodek H.264. Základní jednotkou souboru je atom, který může obsahovat další atomy. Atom začíná vždy velikostí a dále typem, obě mají 32bitů. Pro větší atomy je zde rozšířená velikost 64 bitů hned za typem, pokud je standardní velikost rovna 1. Ostatní informace jsou specifické pro různé typy atomů. Pro lepší orientaci v souboru je u novějších souborů zavedena jednotka QT atom, která má složitější strukturu, ale poskytuje informace o vnořených atomech. Jeden soubor je vždy jedním velkým atomem Movie atom, který má identifikaci moov, podle toho je možné soubor poznat i bez přípony. Uvnitř souboru je hlavička Movie header s identifikací mvhd, která je vždy také přítomna. Následuje Track atom, což je jedna stopa. Každá stopa je nezávislým elementem v souboru. Media atom specifikuje typ streamu (video/audio), jeho délku a specifické informace. Video Media information resp. Sound Media information pak charakteristiku videa resp. zvuku. Sample Table obsahuje tabulku pro konverzi času na příslušné datové vzorky (chunks) a pak samotná data. Výhody • •
Vhodný pro streamování i uložení audiovizuálních dat Přenositelnost mezi PC a MAC platformami
Nevýhody •
zaostává za konkurencí
46
4.4.5.
Real Media Format
Real Media Format (RMF) je multimediální kontejner vyvinutý firmou Real Networks. Pro kódování obsahu využívá formáty komprese vyvinuté firmou Real Networks (Real Video, Real Audio a Real System G2). Má podobné vlastnosti jako Quicktime, ale je více zaměřen na kompresi streamovaného videa. Tyto formáty byly navrženy speciálně pro použití na Internetu. Vyznačují se progresivním streamováním (malé balíčky dat se postupně stahují na disk uživatele, ten od začátku vidí celé video postupně) a kompresními volbami s nízkými poměry toku dat vzhledem k jejich velikosti. Zajímavostí videa je to, že se může měnit framerate videa v čase, k čemuž je uzpůsoben i formát kontejneru. Real Media Format využívá objektů, pokud přehrávač některé nezná, tak je může přeskočit. Na začátku je objekt File header, který obsahuje základní informace o souboru - typ, popis apod. a dále popis streamů - u videa rozlišení, bitrate apod. Součástí je i index, který odkazuje na uložení paketu dat s určitým timecode v souboru. Dále je objekt File sample data, který obsahuje pakety s daty pro dekodér. Paket obsahuje nejprve informaci o délce, k jakému streamu patří, timestamp a zda jde o klíčový snímek u videa. Formát je dovoleno používat pouze pro přehrávání, navíc jen dodávaným přehrávačem, což formát omezuje všestranněji použít. Vytvořit soubory RMF je možné v mnoha programech. Výhody • •
možnost snadného umístění (vzhledem k velikosti souborů) na internetové stránky volba kompresního poměru, datového toku a framerate v čase
Nevýhody • •
nekvalitní obraz (trhaný pohyb a pochybná kvalita daná kompresí - problémy vyřešeny verzí RV - G2) vyšší nároky na výkon počítače pro přehrávání
4.4.6.
Ogg Media
S rozvojem nových technologií a především kodeků na bázi MPEG-4 vznikal požadavek na alternativní multimediální kontejnery, které by netrpěly nevýhodou AVI a byly otevřené pro volné použití. První byl implementován formát Ogg Media (OGM). Byl vytvořen především kvůli nemožnosti použití audio kodeku Ogg Vorbis v AVI. Struktura OGM je velmi dobře koncipovaná pro video i audio kodeky a umožňuje multiplexovat i jakýkoliv jiný stream, například i obrázky nebo text (titulky). Zatím není příliš rozšířen. Pro DirectShow existuje demultiplexer i multiplexer, ale obsahují chyby (multiplexer například nedokáže správně multiplexovat nesynchronní streamy při zachytávání). Existuje také velmi malá podpora pro tvorbu a úpravu. Autorem formátu je Tobias Waldvogel, který už se dalšímu vývoji nevěnuje. Výhody • •
otevřený formát v širší míře je implementován audio kodek Ogg Vorbis 47
Nevýhody •
v současnosti není příliš rozšířen
4.4.7.
Matroška
Matroška je další otevřený formát. Vychází z binární verze jazyka XML Extensible Binary Meta Language (EBML). Obsahově umožňuje nést téměř cokoliv, ne jen video a zvuk. Zahrnuje podporu pro titulky, menu, kapitoly, tituly, lze přiložit i soubory. Strukturu souboru [29] vypadá následovně: na začátku je hlavička, která identifikuje typ EBML souboru a verzi, následuje segment, který tvoří datovou funkční část, typicky je jen jeden, ale může jich být i více. Segment se dále dělí na menší části (sekce), každá obsahuje jiný typ informace. Metaseek udává pozici těchto sekcí uvnitř segmentu. Segment Information obsahuje základní informace o souboru jako název titulu, dále unikátní ID a pokud je součástí více souborů, tak i ID dalšího souboru. Sekce Tracks je seznam stop, tedy video, audio, titulky a také informace o nich. Chapters obsahuje seznam kapitol a jejich umístění. V sekci Clusters jsou již samotná data - video snímky, zvukové pakety atd. Jejich pozice je vždy jako čas, což zabraňuje rozsynchronizování všech stop. Pro urychlení hledání pozice v souboru je zde ještě sekce Cueing Data, která slouží podobně jako index u AVI souboru, není však nezbytná, pouze urychluje vyhledávání. Do sekce Attachment lze přiložit jakýkoliv soubor. Poslední sekcí je Tagging, která nese související informace k titulu nebo jednotlivým stopám jako autor, účinkující apod., je to obdoba ID3 tagu u MP3. Lze říci, že jde o nejpropracovanější systém, který je možno přidáváním sekcí dále rozvíjet. Bohužel opět chybí širší podpora tohoto formátu, především pro editaci. Přehrávat lze jakoukoliv DirectShow aplikací po nainstalování příslušných filtrů. Podle obsahu se používá rozdílná přípona. U video souborů je to .MKV, u zvukových .MKA a u samotných titulků .MKS. Výhody •
otevřený formát
Nevýhody •
v současnosti není příliš rozšířen
48
5. Srovnání kodeků
Před samotným srovnáním kodeků je nejprve žádoucí zmínit několik aspektů, které se při srovnávání kodeků vyskytují: 1. Rozdílné kodeky jsou implementovány pro rozdílné typy video dat a použití. To znamená, že některé kodeky jsou optimalizovány pro vyšší datový tok, jiné přinášejí větší kompresi při nízkých datových tocích. Některé kodeky podávají lepší výkon při pohyblivých scénách, jiné zase při statických. Pro počítačové animace mohou být vhodnější jiné kodeky než pro realistické video. Video data obsahující šum mohou vyžadovat jiná nastavení kodeků než video data bez šumu. Při přehrávání se pak kodeky mohou jevit stejně, ale jejich vnitřní nastavení bylo odlišné a ve výsledku použily jinou kompresi a velikost výsledného souboru byla rovněž odlišná. Je tedy zřejmé, že pro dva téměř shodné kodeky, lze nalézt sekvenci, kdy bude lepší první, či druhý kodek (a to i při stejné video sekvenci, kdy jedna bude například použita z DVD a druhá zaznamenaná videokamerou). 2. Kvalita komprese může podstatně záviset na parametrech kódování. Zde mají významný vliv různá nastavení kodeků, které mohou podstatně ovlivnit proces kódování. Jeden z hlavních parametrů je strategie datového toku, specielně pak výběr mezi kvalitou výsledné komprese a velikostí datového toku. Důležité jsou také parametry pro prefiltraci jako odstranění prokládání, šumu, či prudkých změn v obraze. Dále pak nastavení frekvence výskytu klíčových snímků apod. To znamená, že výsledkem dvou v průměru shodných kodeků, kdy jeden je nastaven na maximální výkon a druhý na maximální kvalitu je video stejné velikosti, ale různé kvality. Což pak ale může zvýhodňovat jeden z kodeků při nějakém srovnání, kde není známo zdrojové video, nastavené parametry kódování a také doba trvání kódování (kdy jeden pracoval například 10x déle než druhý) a hodnotí se pouze výsledná kvalita obrazu. Jako minimum je tedy důležité pro srovnání použít rozdílné video sekvence s různými charakteristickými vlastnostmi (pohyb, animace, statická scéna apod.) a použití průměrných hodnot naměřených po celou dobu trvání video sekvence. Je totiž možné v každé dlouhé video sekvenci (dnes průměrně kolem 150000-200000 snímků) najít špatné i dobré snímky, zvláště pak při jednoprůchodové CBR kompresi a vyskytovalo-li se v daném videu množství pohybu.
5.1. 5.1.1.
Metriky využívané při srovnání kodeků Objektivní měření kvality videa
Objektivní měřící techniky úspěšně nahrazují subjektivní pohled na kvalitu video dat pomocí matematických modelů. Existuje mnoho metod se zaměřením na různé parametry zpracovaného obrazu. Je nutno podotknout, že tyto metody jsou časově (výpočetně) náročnější než subjektivní, což je nepraktické pro komerční použití a z tohoto důvodu je snaha o vývoj nových subjektivních metod. Kvalita je zde posuzovánu dle originálního video signálu, který je považován za vysoce kvalitní, proti rekonstruovanému obrazu po zakódování. 49
PSNR (peak signal to noise ratio) je jediná obecně akceptovaná veličina, která se dnes využívá při srovnání kodeků. Metoda vychází z MSE (mean square error), která je počítána pro dva monochromatické obrazy o velikosti m x n, kde u jednoho je odhadnut šum vůči druhému (rozdílový snímek). Bere se zde v úvahu počet možných hodnot, které může jeden pixel nabýt (při 8b vzorkování je to 255). Vyjadřuje odstup maximálního možného výkonu signálu od výkonu šumu v decibelech (je to proto, že signál může mít velmi dynamický rozsah). Oproti jiným metodám, které uvažují zrakové vnímání (ať už více či méně) lze dosáhnout výsledku rychleji (až 10x).
obrázek 5.1 - PSNR vzorec
(n - počet pixelů; x, y - aktuální hodnoty v referenčním resp. zakódovaném snímku) MSAD, Delta výsledkem těchto měření je rozdíl mezi barevnými složkami odpovídajících bodů na snímku před kódováním a na rekonstruovaném snímku po kódování. Metody jsou obdobné a používají se pro testování kodeků a filtrů. Měření blokování – (důvod vzniku těchto artefaktů popsán v odstavci 3.1) v kontrastních oblastech není blokování znatelné, ve větších oblastech se shodným obsahem je už viditelné. Metoda využívá heuristické analýzy pro detekci hran, které se nacházejí mezi jednotlivými bloky. Může se využít informace z předchozího snímku pro zlepšení přesnosti. SSIM Index je založen na měření tří komponent (podobnosti jasu, podobnosti kontrastu a strukturální podobnosti). Výsledek je kombinací těchto měření. VQM využívá diskrétní kosinové transformace pro srovnání s lidským vnímáním. Měření rozmazání porovnává rozmazání obrazu dvou shodných snímků.
5.1.2.
Subjektivní měření kvality videa
Hlavním cílem objektivního měření je automaticky vytvořit náhled na zpracovaná video data. Subjektivní metody se naopak zabývají tím, jak jsou daná video data vnímána diváky a jejich názor (mean opinion score) pak tvoří hodnocení kvality. Při měření, by se měl dodržovat následující postup: -
vybrat vhodné video sekvence pro testování (označován jako SRC) vybrat nastavení systému, který se bude testovat (označován jako HRC) vybrat testovací metodu (jaké sekvence se budou prezentovat a jaké posudky zaznamenávat) pozvat dostatečný počet specialistů pro testování (doporučený počet je minimálně 15 osob) provést testování 50
-
vyhodnotit průměrné výsledky na základě jednotlivých posudků pozorovatelů (případně pro každé HRC). Některé posudky nemusí být započítávány, pokud se například výrazně liší od ostatních.
Do výsledků je nutno zahrnout také další okolnosti jako osvětlení místnosti, typ obrazovky, jas, kontrast, rozlišení, pozorovací vzdálenost, věk a vzdělání specialistů atd. Metod jak zobrazovat video sekvence pozorovatelům existuje mnoho, ale jen málo je jich standardizovaných. Ty jsou popsány například v ITU-T doporučení BT.500. DSIS (Double Stimulus Impairment Scale), kdy je nejdříve prezentována neporušená referenční video sekvence, před stejnou, ale poškozenou. Ve výsledku jsou pak pozorovatelé dotázáni na míru zhoršení kvality poškozené video sekvence. DSCQS (Double Stimulus Continuous Quality Scale) typ1 a 2, referenční i poškozená video sekvence jsou přehrávány v páru a to opakovaně. U typu 1 jsou video sekvence přehrávány v jednom okně a pozorovatel může mezi nimi libovolně přepínat. U typu 2 jsou obě sekvence přehrávány současně (tento typ je využíván častěji). Pozorovatel neví, která sekvence je referenční a na konci je vyzván k ohodnocení obou sekvencí. SCACJ (Stimulus Comparison Adjectival Categorical Judgement), tato metoda je obdobná předchozí (typ 2), s tím rozdílem, že pozorovatel je na konci dotazován, která sekvence byla kvalitativně lepší a o jaký rozdíl. SAMVIQ (Subjective Assessment Method for Video Quality evaluation), během testování může pozorovatel přepínat mezi libovolnými sekvencemi zařazenými do testu (včetně refernční) a hodnotí je body (0-100). Standard podle EBU. MSUCQE (MSU Continuous Quality Evaluation), metoda je založena na postupném ohodnocování dvou sekvencí přehrávaných zároveň a pokud si pozorovatel během přehrávání myslí, že jedna je lepší než druhá, v daném bodě ji označí.
5.2.
Srovnání MPEG-4 kodeků
Před samotnými výsledky testů bych rád upozornil na rozhodnutí využít měření [26] uskutečněné týmem pracujícím v grafické laboratoři Moskevské Státní Univerzity (MSU). Takto jsem se rozhodl na základě úvahy o časové náročnosti těchto testů a získaný čas tak věnovat hlubšímu rozboru a implementačním záležitostem testovaných kodeků, zejména pak kodeků vycházejících ze standardu MPEG-4. Tato volba v tomto případě umožňuje přinést kvalitnější a obsáhlejší výsledky. Nespornou výhodou je pak objektivnost měření, ve kterém jsou zahrnuty i komerční kodeky (volně nedostupné). Práci týmu považuji za celkově kvalitní, důvěryhodný a dobře zdokumentovaný zdroj informací. Nevýhodou je nemožnost popsat veškeré postřehy, které mohly nastat během měření.
51
5.2.1.
H.264/AVC kodeky
Metoda: Objektivní porovnání kvality – Y-PSNR Měřící nástroj: MSU Video Quality Measurement Tool [26] Použité kodeky: • • • • • • • •
DivX 6.0 verze 6.0 (není to H.264 kodek, je použitý s kodekem MPEG-4 ASP a je zde použit jako referenční kodek) ArcSoft H.264 verze 19.09.05 Ateme H.264 verze 1.2.1.6 ATI H.264 verze 3.1.2 Elecard H.264 verze 09.09.05 Fraunhofer IIS H.264 verze 20.09.05 VSS H.264 verze 3.0.2.7 x264 revision 293
Video sekvence: •
•
•
•
•
•
„foreman“ − standardní sekvence, progressive, rozlišení 352 x 258 − nekomprimovaná data, barevný prostor YV12 − na scéně jsou zachyceny detaily obličeje bez výrazného pohybu, obraz je zatížen chvěním kamery a nakonec je přejezd kamerou, kde zůstane v ustáleném stavu (z výrazného pohybu do statické scény) „susi“ − standardní sekvence, smart deinterlace, rozlišení 704 x 576 − MPEG-2 (40Mbit/s), barevný prostor YV12 − scéna je charakteristická velkým šumem a pomalými pohyby,po téměř statickém začátku nastane prudší pohyb, který opět přejde do statické scény „bbc“ − standardní sekvence, smart deinterlace, rozlišení 704 x 576 − nekomprimovaná data, barevný prostor YV12 − scéna je charakteristická rotujícím pohybem, kde se v průběhu mění obrázky. Kvalita kódování pak záleží na detailech těchto obrázků „battle“ − úsek z filmu Terminátor 2, FlaskMPEG deinterlace, rozlišení 704 x 288 − MPEG-2 (DVD), barevný prostor YV12 − Pro scénu jsou podstatné tři věci: změny jasu (např. výbuchy), rychlý pohyb a časté změny scény. „simpsons“ − úsek z kresleného seriálu Simpsonovi, progressive, rozlišení 720 x 480 − MPEG-2 (DVD), barevný prostor YV12 − typický reprezentant kresleného filmu: trhaný pohyb, velký počet jednobarevných oblastí a náhlé prolínání mezi nimi „matrix“ − úsek z filmu Matrix, smart deinterlace, rozlišení 720 x 416 − MPEG-2 (DVD), barevný prostor YV12
52
•
− V této scéně je jednoduchý pohyb, tmavé nejasné barvy a malé rozlišení. „concert“ − úsek z filmu v HDTV kvalitě, smart deinterlace, rozlišení 1644 x 1088 − MPEG-2 (DVD), barevný prostor YV12 − Scéna má velké plošné rozlišení, občas se vyskytuje složitější pohyb a změny scény
Pravidla pro testování: • • • • •
testování je prováděno pouze s nastavením dostupném v daném kodeku, jinak je kodek pro danou sekvenci vynechán kodeky jsou testovány v módu „Best Quality“ (vyšší kvalita komprese) a „Best Speed“ (kratší doba zpracování) pokud to umožňují kodeky jsou omezeny na použití MPEG-4 H.264/AVC Main Profile a jednoprůchodové kódování. každý kodek je testován třikrát a výsledek tvoří průměr naměřených hodnot testováno je 10 datových toků (kb/s): 100, 225, 340, 460, 700, 938, 1140, 1340, 1840, 2340
Výsledky měření Best Quality (BQ):
obrázek 5.2 - měření Y-PSNR H.264 BQ – sekvence „foreman“
53
obrázek 5.3 - měření Y-PSNR H.264 BQ – sekvence (shora) „susi“, „bbc“, „battle“
54
obrázek 5.4 - měření Y-PSNR H.264 BQ – sekv. (shora) „simpsons“, „matrix“, „concert“
55
Best Speed (BS):
obrázek 5.5 - měření Y-PSNR H.264 BS – sekvence (shora) „foreman“, „susi“, „bbc“
56
obrázek 5.6 - měření Y-PSNR H.264 BS – sekvence (shora) „battle“, „simpsons“, „matrix“
57
obrázek 5.7 - měření Y-PSNR H.264 BS – sekvence „concert“
Zhodnocení Navzdory výraznému zlepšení kompresní kvality kodeku DivX, není dle těchto testů nejlepším kodekem. Navíc v některých sekvencích zaostává za ostatními kodeky. Dokonce tato verze ukazuje horší výsledky než DivX 5.21 u sekvence „bbc“. V této kategorii není jasně vedoucí kodek, avšak v mnoha případech jsou nejlepší kodeky x264 a Ateme. Kodek Elecard nedokáže zvládnout při nízkých datových tocích sekvenci „concert“ (jak je jasně vidět z grafu). V rychlosti (čas potřebný k zakódování dané video sekvence) je jasným vedoucím kodek od firmy ATI. Průměrně pracoval několikrát rychleji než nejbližší VSS kodek a při tom není horší než zaostávající kodeky. 5.2.2.
MPEG-4 SP/ASP kodeky
Metoda: Objektivní porovnání kvality – Y-PSNR Měřící nástroj: MSU Video Quality Measurement Tool [26] Použité kodeky: • • • • • • •
DivX 5.21 build b1338 DivX 4.12 build 307 DivX 3.22 MS MPEG-4 3688 v3 XviD 1.03 3ivx D4 4.5.1 OpenDivx 0.3 4.0 alpha 50
Video sekvence: •
„foreman“
58
• • •
„susi“ „bbc“ „battle“
Pravidla pro testování: •
•
• •
testování je prováděno pouze s defaultním nastavením v daném kodeku, kromě datového toku a vzdálenost I-snímků (výchozí nastavení jednotlivých kodeků se liší) vzdálenost I-snímků je nastavena na 300 (maximum) pro všechny kodeky (u MS MPEG-4 a DivX 3.22, kde se nastavuje časová vzdálenost, je nastavena odpovídající časová hodnota) DivX 5.2.1 má povoleno GMC (Global Motion Compensation) a „Quarter Pixel“ testováno je 10 datových toků (kb/s): 100, 225, 340, 460, 700, 938, 1140, 1340, 1840, 2340
Výsledky měření
obrázek 5.8 - měření Y-PSNR MPEG-4 SP-ASP – sekvence (shora) „foreman“, „susi“
59
obrázek 5.9 - měření Y-PSNR MPEG-4 SP-ASP – sekvence (shora) „bbc“, „battle“
Zhodnocení V sekvenci „foreman“ je vedoucím kodekem XviD a DivX 4.12. První je lepší při nízkých datových tocích a druhý při vysokých. DivX 4.12 při kódování 340 kb/s zakódoval sekvenci hůře při zachování stejné výsledné velikosti. V sekvenci „susi“ vychází nejlépe DivX 5.21, výsledky při povoleném GMC a Qpel byly horší než při zakázaném. V sekvenci „bbc“ se choval zvláštně XviD. Při datových tocích menších než 938 kb/s byla komprimovaná sekvence větší, než by měla být a kvalita byla horší (graf tuto situaci znázorňuje). DivX 3.22 a MS MPEG-4 pro nízké datové toky používali techniku vynechávání snímků. DivX 5.21 se jeví jako nejlepší, specielně pak při datových tocích mezi 460-700 kb/s. Po povolení GMC a Qpel se zařadil mezi nejhorší, to je způsobeno rotací v této sekvenci. DivX 4.12 nedokázal tuto sekvenci zakódovat menším datovým tokem než 1500 kb/s. V sekvenci „battle“ je opět nejlepší DivX 5.21, naopak nejhorší je 3ivx. OpenDivX byl testován pouze na této sekvenci a jeho výsledky jsou velice špatné (jak je také vidět na grafu). 60
6. Závěr
Cíle práce: • •
vytvořit přehled o principech kódování video dat – video kodeků porovnat jednotlivé implementace video kodeků
Oba uvedené cíle jsem postupně plnil v celém textu práce. V první části práce jsem se snažil vysvětlit základní pojmy týkající se zadané problematiky, zahrnuty jsou zde principy lidského vnímání a shrnuty poznatky ovlivňující implementace a vývoj kódovacích algoritmů. Dále je popsána problematika přenosu televizního obrazu, jeho digitalizace, využité barevné modely a upozornění na vyskytující se problémy zahrnující i fakt prokládaného videa. Další část práce je zaměřena na základní principy kódování obrazu. Popsal jsem zde jakých faktů se využívá při kódování a vysvětlil metody redukce prostorové (DCT, DWT) a časové redundance (principy kompenzace pohybu). Následující část se týká popisu vlastních kodeků, jsou rozděleny na bezeztrátové a ztrátové. Zaměřil jsem se zejména na kodeky standardu MPEG a kodeky z nich odvozené například DivX nebo XviD, dále jsou popsány kodeky v podobě doporučení organizace ITU-T a běžně používané kodeky pro práci s domácím videem jako DV, HuffYUV či MJPEG. Druhá polovina této části obsahuje popis multimediálních kontejnerů kódující svůj obsah zmíněnými kodeky. Téma je velmi rozsáhlé a nejsou zde popisovány detaily jednotlivých kódovacích algoritmů, snažil jsem se popsat hlavní rysy, vlastnosti a inovace, které jednotlivé implementace kodeků přináší. Jednotlivé výhody, nevýhody a možnosti uplatnění kodeků jsou vždy shrnuty na konci popisovaného kodeku. V poslední části jsou popsány měřící metody pro zjištění kvality zakódovaných video dat. Opět zdůrazním, že po uvážení jsem z důvodu časové náročnosti, kvality a objektivity testů využil měření týmu pracujícím v grafické laboratoři Moskevské Státní Univerzity. Z naměřených hodnot je vidět, že různé kodeky mají rozdílné výsledky na různých video sekvencích. Je to důsledkem toho, že používané sekvence mají odlišný charakter (pohyb, šum, rozlišení atd.). Tento fakt umožňuje definovat, které kodeky jsou vhodné pro dané druhy video sekvencí a získávat tak pouze kvalitní výsledky. Bylo by zajímavé zjistit obecné vlastnosti pro každý kodek na celou řadu testů, protože průměrné hodnoty nemusí být vždy korektní a odpovídající. Z práce je vidět, že v současné době jsou nejrozšířenější kodeky založené na standardu MPEG-4. Domnívám se, že tento trend bude pokračovat i v příštích letech. Se vzrůstajícím rozvojem a rozšířením různých mobilních zařízení, přechod na digitální televizní vysílání a vzrůstajícími nároky na kvalitu video dat v podobě HDTV vzniká potřeba přehrávat shodná zdrojová data na různých koncových zařízeních. Bylo by velice neúsporné kódovat a hlavně pak ukládat shodná data v různé kvalitě a datových tocích. Jak z textu vyplývá, zde je bod, kde nacházejí uplatnění právě kodeky vycházející ze standardu MPEG-4, které tuto situaci umožňují vyřešit. Dle mého odhadu se vývoj kodeků bude nadále ubírat směrem objektově založených kodeků, přičemž se bude stále více využívat diskrétní vlnkové transformace (DWT). Tyto technologie umožňují široký rozsah škálovatelnosti kódovaných video dat a tedy i možnost přehrávat jej na koncových zařízeních v různých aplikačních oblastech.
61
Podle použití bych kodeky rozdělil do následujících skupin: − kodeky pro zakódování a následné zpracování (editace, střih) video dat − kodeky pro trvalé zakódování a uložení video dat − kodeky vhodné pro přenos video dat v reálném čase Do první skupiny patří bezeztrátové kodeky HuffYUV, RAW (jen formát pro uložení dat, neprobíhá žádné kódování) a kodeky DV, MJPEG. Do druhé skupiny patří kodeky s dostatečně velkou kompresí (dle použití video dat) a patří sem všechny kodeky MPEG standardu a kodeky z nich odvozené například DivX a Xvid a kodeky v podobě doporučení ITU-T organizace. Do třetí skupiny patří všechny multimediální kontejnery kromě formátu AVI, který vzhledem ke své koncepci pro streamování použít nelze. Zahrnuje formáty QuickTime, RealMedia, ASF/WMV, MPEG stream, OggMedia, Matroska. V současnosti existuje mnoho dalších implementací kodeků (komerční i nekomerční) založených zejména na standardu MPEG-4, které se liší svými specifickými vlastnostmi. Jmenovitě jsou to například 3ivx, ffmpeg, Ogg theora nebo Nero digital. Nejnovější standardy typu MPEG-4 a MPEG-7 mají širokou oblast použití a možnosti, které nabízejí, nebyly zcela ještě vyčerpány. Praktické využití samozřejmě existuje, ale je zde problém implementačního rázu. Důvodem je nedostatečná hardwarová podpora na straně uživatelů a důsledkem je malý zájem ze strany tvůrců kodeků. Nedostatečné množství a rozšíření implementací kodeků umožňujících využít více možností zmíněných standardů, pak nemotivuje výrobce hardwaru k jejich implementaci (příkladem je kodek DivX, kdy po jeho rozšíření je implementován ve většině zařízeních pracujících s video daty). Bylo by myslím zajímavé tuto problematiku použít jako téma pro samostatnou práci. Nicméně standardy MPEG-1, -2, -4, -7 a z nich kodeky odvozené tvoří dohromady kompletní, výkonnou a úspěšnou sadu nástrojů pro zpracování multimediálních dat. Domnívám se, že práce poslouží všem uživatelům pracujícím nebo zajímajícím se o zpracování video dat. Čtenář ji může například použít jako zdroj při rychlém hledání informací nebo se může dozvědět i méně známá fakta. V neposlední řadě jsem si prohloubil vlastní znalosti o principech a vlastnostech jednotlivých kodeků. Musím podotknout, že hledání odpovídajících zdrojů bylo místy obtížné a celkově byla práce časově náročná.
62
7. Seznam literatury
[1] ÖZBEK, N., TUNALI, T. A survey on the h.264 / AVC standard. Turkish journal of electrical engineering & computer sciences. No.3 2005, vol.13. [2] RICHARDSON, I. E. G. H.264 / mpeg-4 part 10 tutorials [online]. 2002 - 2003. Url: http://www.vcodex.org. [3] JOINT VIDEO TEAM. ITU-T recommendation h.264 | ISO/IEC 14496-10 AVC. 2003. [4] INTERNATIONAL Overview. 2004
ORGANISATION
FOR
STANDARDISATION.
Mpeg-7
[5] INTERNATIONAL ORGANISATION FOR STANDARDISATION. Overview of the Mpeg-4 Standard. 2002. [6] INTERNATIONAL ORGANISATION FOR STANDARDISATION. ISO/IEC 13818 mpeg-2. 1996 - 2000. [7] INTERNATIONAL ORGANISATION FOR STANDARDISATION. ISO/IEC 11172 mpeg-1. 1993 - 1998. [8] MPEG-4 INDUSTRY FORUM. Mpeg-4 – the media standard. 2002 [9] TUDOR, P. N. Mpeg-2 video compression. Electronics & Communication Engineering Journal, December 1995. [10] ŽÁRA, J. Moderní počítačová grafika. 2. vyd. Praha: Computer Press, 2005. ISBN 80251 0454-0 [11] ČADÍK, M. Human perception and computer graphics. Postgraduate Study Report. 2004. [12] KOŠŤÁL, E. Obrazová a televizní technika I. 3. vyd. Praha: Vydavatelství ČVUT, 2000. [13] TURČAJOVÁ, R. Barevné vidění: druhý pohled. Paladix: foto-on-line [online]. 2003. Url: http://www.paladix.cz. [14] DZIK, P. Teorie barevného vidění. Paladix: foto-on-line [online]. 2001. Url: http://www.paladix.cz. [15] MARCELLIN, M.W., GORMISH, M. J., BILGIN, A., BOLIEK, M.P. An overview of JPEG-2000. In proceedings of IEEE data compression conference. Pp.523-541, 2000. [16] ADAMS, M. D. The JPEG-2000 still image compression standard. 2001. [17] WALLACE, K. G., The JPEG still picture compression standard. IEEE Transactions on Consumer Electronics, December 1991. [18] BODEČEK, K. Komprese rozměrných obrazů pomocí JPEG 2000. Elektrorevue [online]. 2005, č.11-22.2. Url: http://www.elektrorevue.cz. [19] GRAPS, A. An introduction to Wavelets. [20] SAHA, S. Image compression – from DCT to wavelets.
63
[21] RICHARDSON, I. E. G. Introduction to image and video coding [online]. 2002. Url: http://www.vcodex.org. [22] DAVIS, A. Video compression overview. TechOnLine [online]. February 1998. Url: http://www.techonline.com. [23] DAVIS, A. An overview of video compressions algorithms. TechOnLine [online]. February 1998. Url: http://www.techonline.com. [24] Quinnell, R. A. Introduction to mpeg-4 video compression. TechOnLine [online]. September 2004. Url: http://www.techonline.com. [25] VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ - FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ. Komprimace multimediálních signálů. [26] COMPRESSION PROJECT: Testování a měření kvality kodeků [online]. Url: http://www.compression.ru. [27] WIKIPEDIA: Otevřená encyklopedie [online]. Url: http://www.wikipedia.org. [28] TV-FREAK: Informace o zpracování video dat [online]. Url: http://www.tvfreak.cz. [29] DOOM9: Informace o kodecích [online]. Url: http://www.doom9.org. [30] MATROSKA: Oficiální stránky [online]. Url: http://www.matroska.org. [31] DIVX: Oficiální stránky [online]. Url: http://www.divx.com.
64
A Obrázky obrázek A.1 - deinterlacing (příklady jednotlivých metod)
a) metoda bob
b) metoda weaving
c) metoda blending
d) metoda averaging
obrázek A.2 - DCT - rozdělení snímku na bloky
65
obrázek A.3 - DCT - zbylé koeficienty po kvantizaci
obrázek A.4 - DCT - čtení cik-cak
obrázek A.5 - DWT - rozložení snímku na komponety a dlaždice LL0
HLR-2 HLR-1
LHR-2
HHR-2
LHR-1
HHR-1
obrázek A.6 - DWT – frekvenční subpásma (vlevo) a průchod čtení blokem (vpravo)
66
obrázek A.7 - MPEG-1 skupina snímků GOP
obrázek A.8 - MPEG - hledání pohybových vektorů
a) na základě celého snímku
b) na základě půlsnímků
obrázek A.9 - MPEG-2 rozdělení makrobloku při prokládaném kódování
67
obrázek A.10 - MPEG-4 - verze standardu a zpětná kompatibilita
obrázek A.11 - MPEG-4 logické uspořádání scény
obrázek A.12 - MPEG-7 příklad pohybového deskriptoru
68
obrázek A.13 - H.264 - flexibilni GOP (3 vrstvy)
a) rozdělení makrobloku na části
b) rozdělení částí makrobloku na subčásti obrázek A.14 - H.264 - rozdělení makrobloku pro pohybovou kompenzaci
obrázek A.15 - H.264 pohyb. vektor s celočíselným (b) a neceločíselnými (c) souřadnicemi
69
obrázek A.16 - H.264 - přechod mezi dvěma datovými toky
70
B Obsah přiloženého CD
obrázek B.1 - Obsah přiloženého CD
V kořenovém adresáři se nacházejí soubory: − index.html – výchozí stránka projektu − readme.txt – popis jednotlivých adresářů a účel jednotlivých souborů V adresáři data se nachází: − adresář literatura – dostupná literatura a informační zdroje použité v BP − adresář obrazky – použité obrázky v BP V adresáři html se nachází: − adresář abstractEN – HTML podoba abstraktu v anglickém jazyce − adresář abstraktCZ – HTML podoba abstraktu v českém jazyce V adresáři text se nachází: − BP.doc – vlastní bakalářská práce ve zdrojovém formátu − BP.pdf - vlastní bakalářská práce v portabilním formátu
71