Martin Hyndrich HYN039
Hardwarová akcelerace HD videa v návaznosti na architektury čipu grafických karet 1.Úvod Na úvod bych se chtěl zmínit, nebo spíše popsat nynější standardní formáty videa. Dále také popsat formáty kterými se zobrazuje video ať už na monitor počítače nebo na plazmovou televizi nebo lcd displej. Tento přehled by měl nějakým způsobem ukázat motivaci k hardwarové akceleraci přehrávání videa. A dále nastínit problémy z přehráváním videa.
Přehled zobrazovaných formátů: U přehrávání hraje důležitou roli rozlišení videa, rozlišení je hlavním důvodem ke stále vyšším hardwarovým nárokům. Trend je takový že čím větší a detailnější obraz máme tak tím lépe. Video se dá jednoduše rozlišit na dva druhy, analogové a digitální. U analogového videa se rozlišení určuje počtem řádků, technologie se však dostala co se týče detailnosti a kvality na své hranice a proto ji nahradilo digitální video u něj se úroveň udává počtem zobrazených pixelů. Rozlišení NTSC a PAL jsou hlavni formáty analogového videa. V Severní Americe a Japonsku je dominantním standardem pro analogové video NTSC (National Television System Committee), zatímco v Evropě je to PAL (Phase Alternation by Line). Oba standardy pochází z televizního průmyslu. NTSC má rozlišení 480 horizontálních řádků a frekvenci 30 snímků za vteřinu. PAL má vyšší rozlišení 576 horizontálních řádek, ale nižší počet snímků za sekundu - 25. Celkové množství informací za sekundu je u obou standardů stejné. Když je analogové video digitalizováno, záleží na množství pixelů, které mohou být vytvořeny, na množství řádek analogového obrazu. V případě NTSC je maximální velikost digitalizovaného obrazu 704×480 pixelů, u standardu PAL je to 704×576 pixelů. VGA je zkratka pro Video Graphics Array je systém zobrazování grafiky původně vyvinutý IBM pro PC. Rozlišení je definováno na 640×480 pixelů, což je velikost velmi podobná NTSC a PAL. Rozlišení MPEG MPEG rozlišení obvykle nabývá těchto velikostí: — 704×480 pixelů (TV NTSC) — 704×576 pixelů (TV PAL) — 720×480 pixelů (DVD-Video NTSC) — 720×576 pixelů (DVD-Video PAL) Co se ale týče těchto rozlišení není nutné vyhledávat nějak zvláště výkonný hardware. Situace se však změnila z nástupem takzvaného hd videa, tedy videa ve vysokém rozlišení.
HDTV Ted už k hlavním důvodům, proč dochází k akceleraci videa hardwarově. High-definition television (HDTV) označuje formát vysílání televizního signálu s výrazně vyšším rozlišením, než jaké umožňují tradiční formáty (PAL, SECAM, NTSC). HDTV se vysílá digitálně, a může tak být použita jako jeden z formátů digitální televize DVB. V současné době je HDTV definována pro rozlišení 1080 prokládaných nebo neprokládaných (progresivních) řádků, případně 720 neprokládaných řádků. Rozměry obrazu jsou v poměru 16:9. Pro označení formátů obrazu HDTV se používají tři údaje: Počet řádků: 720 nebo 1080 Prokládání: i jako interlaced (prokládáno) nebo p jako progressive (neprokládáno neboli progresivní skenování) Počet snímků za sekundu: 23,976; 24; 25; 30; 50 nebo 60 První údaj o počtu řádků udává rozlišení obrazu - 720 řádků znamená rozlišení 1280 na 720 pixelů, 1080 řádků se rovná 1920 krát 1080 pixelů. Druhý údaj říká, jestli má obraz prokládané či progresivní skenování - rozdíl spočívá v tom, že progresivní video vykreslí za sekundu např. 25 kompletních snímků, kdežto prokládané video vykreslí za sekundu 50 půlsnímků, tj. vždy jen sudé, respektive liché řádky, takže divák uvidí zhruba stejné množství obrazové informace, jako kdyby se díval na progresivně skenované video s 25 snímky za sekundu. Prokládání je pro lidské oko méně příjemné než progresivní skenování, ale je technicky méně náročné, pročež se prosadilo jak v normě PAL (576i každou sekundou 50 půlsnímků v rozlišení 720x576 pixelů), tak v normě HDTV (ale jen u rozlišení 1920x1080 pixelů, 1280x720 se vysílá progresivně a jelikož se v nové generaci nosičů Blu-ray prosadilo progresivní skenování i u rozlišení 1920x1080, tak se pravděpodobně dočkáme této špičkové kvality obrazu i u HDTV). Technika prokládání se využívá hlavně při digitalizaci filmového materiálu do HD kvality, například když se skenuje film z celuloidového filmového pásu (tento proces se nazývá telecine a jelikož je velmi nákladný, tak se digitalizují pouze filmové materiály, které za to stojí, jako je třeba Casablanca z roku 1942). Třetí údaj udává počet snímků, které se vykreslí za jednu sekundu, pro prokládaný obraz se používají jen frekvence 50 a 60, jenž v tomto případě označují počet půlsnímků za sekundu.Příklad: označení 720p23.976 se použije pro progresivní obraz s rozlišením 1280 x 720 bodů a 23,976 snímky za sekundu. 1080i50 znamená rozlišení prokládaného obrazu 1920 x 1080 bodů s 50 půlsnímky (25 snímky) za sekundu, někdy se ale tento formát HDTV označuje také jako 1080i25, protože označování formátů s prokládanými řádky není jednotné. Údaj o počtu snímků za sekundu se často vynechává a většinou se předpokládá hodnota 50 u prokládaného videa a hodnota 23,976 u videa progresivního. Vhodný formát závisí na typu zdrojového média a také na druhu obsahu. Rozlišení a počet snímků za sekundu by měly být voleny s ohledem na rozlišení a počet snímků za sekundu zdroje, je možné vhodně využít transformací těchto parametrů přímo v set-top boxech. Vysoké rozlišení vyžaduje velký datový tok, a tak se používá ztrátová komprese, která zmenší nároky na přenos dat, ale zároveň zhorší kvalitu v porovnání s nekomprimovaným obrazem. Kinofilm používaný v kinematografii má rozlišení srovnatelné s formáty Full HDTV, nebo větší a 24 snímků za sekundu. Pro naskenování takovéhoto filmu se v závislosti na možnostech rychlosti datového přenosu a požadovaném množství detailů v obraze jako ideální jeví formáty 720p24 a 1080p24. Pokud se takový film vysílá ve standardu PAL, je nutné ho převést na 25 snímků za sekundu zrychlením o 4,1 procenta. Pro vysílání ve standardu NTSC (30 snímků za sekundu) se používá převod „3:2
pulldown“.Nahrávky určené přímo pro HDTV vysílání se pořizují ve formátu 720p nebo 1080i. Použitý typ závisí na televizní stanici, nicméně platí, že formát 720p se více hodí pro záznamy obsahující rychlý pohyb (např. sporty). 1080i naproti tomu nabídne více detailu při statických nebo málo pohyblivých obrázcích. 720p se také hodně používá pro distribuci HD videa na Internetu, neboť počítačové monitory nepoužívají prokládání. Dalším důvodem je rozšíření 17- a 19-palcových LCD panelů, které používají rozlišení 1280*1024 a formát 720p tak dokážou zobrazit v plném rozlišení. Naproti tomu jen málokterý domácí uživatel má možnost zobrazit video v rozlišení 1920 x 1080. V USA používají formát 720p stanice Fox, ABC a ESPN, ve formátu 1080i vysílají NBC, Universal HD, CBS, HBO-HD, INHD, HDNet a TNT. Evropské HD stanice Premiere, Sky, Anixe HD, Sat1 a ProSieben používají formát 1080i.
Hlavní problémy při přehrávání videa Protože donedávna byla akcelerace přehrávání videa a čistě softwarovou záležitostí. CPU je univerzální nástroj, který zvládne veškeré výpočty a samozřejmě i přehrávání videa. Problém ovšem je že při přehrávání dochází k velikým datovým tokům, což značně zatěžuje procesor. Dalo by se říci že poslední typy procesorů si poradí z přehráváním hd videa, ale dá se říci že tímto ztrácí uživatel pořád docela velkou část z jeho výkonu kterou by mohl použít k jiné práci. Co se týče starších procesorů tak tam už je situace v podstatě bezvýchodná, procesor prostě přehrávání nezvládne. Toto můžu potvrdit z vlastních zkušeností, kdy jsem se snažil přehrávat Blu-ray rip zaznamenaný v 1080p na svém starém notebooku P4 2,8GHz. V podstatě ať sem se snažil jak chtěl, video jsem nerozběhl. I když jsem zkoušel různé kodekpacky a střídal multimediální přehrávače.
Jak je vidět z obrázku tak řešení pomocí GPU je velice efektivní. Je vidět že dochází ke značnému poklesu vytížení procesoru. Spolu s tímto se ještě přidává další jev a to pokles spotřeby systému. Toto je také velice užitečný jev.
2. Technologie firmy nVidia PureVideo Firma nVidia vyrábějící grafické karty používá technologii akcelerace HD videa zvano PureVideo. Společnost nVidia nabízí tuto aakceleraci na svých starších grafických kartách sérií 6600 až 7950. Ta funguje s kodeky MPEG-2, WMV-9/VC-1 i H.264 a ve všech přehrávačích, které používají rozhraní Microsoft DirectShow (Windows Media Player, Media Center, WinDVD, Nero Showtime atd.). PureVideo se ale netýká videa ve vysokém rozlišení a filmů na HD discích. PureVideo HD Nutnost akcelerace dekódování videa se uplatňuje hlavně u těchto kodeků. Jsou to MPEG-2 HD (starší Blu-ray filmy), H.264 (nové Blu-ray filmy) a VC-1 (většina HD DVD). Grafická karta ovšem nepřebírá kompletní iniciativu nad dekódováním videa, jak by se mohlo na první pohled zdát. Kodeky mají různou úroveň podpory od výrobců karet. Kompletně jsou podporovány kodeky MPEG-2 a H.264. Při dekódováni kodeku VC-1 je ještě zapotřebí z určité části procesor. Na obrázku níže je vidět rozdíl mezi dvěma druhy grafických karet. Karta obsahuje navích videoprocesor a BSP (bitstream procesor), jednotku která speciálně zajišťuje akceleraci funkcí spjatých s H.264/VC-1.
Na následujícím obrázku je znázorněn různý způsob zpracovávání videa grafickou kartou, mající různou úroveň použití hardwarové akcelerace. Zde se také potvrzuje velké ulehčení procesoru při plné akceleraci. Zpracovávání by se dalo rozdělit na čtyři úrovně podle obrázku. V první fázi musí procesor, pokud se jedná o akceleraci grafikou kartou , zpracovávat datový tok. Datový tok muže dosahovat vcelku úctyhodných hodnot, u videa ve vysokém rozlišení je to až 40MB/s. Dále se stará o dekompresi videa. Používají se tyto metody, CABAC (Context-adaptive binary arithmetic coding,
postup založený na bezztrátové kompresi pomocí aritmetického kódování), kterou ale zvládne jen silný hardware. S ohledem na běžný hardware se často používá méně efektivní metoda CAVLC (Context-adaptive variable-length coding, bezztrátová komprese v obecnějším pojetí – např. Huffmanovo či Lempel-Ziv kódování).
Zpracování HD videa v H.264 na Core 2 Duo E6400 Bez akcelerace (vše počítá procesor) CAVLC & CABAC Bitstream Processing
Invers Transform
Motion Compensation
Vysoké vytížení CPU Deblocking
100%
S PureVideo(série GeForce 7) CAVLC & CABAC Bitstream Processing
Invers Transform
Motion Compensation
Nižší zátěž CPU Deblocking
63%
S PureVideo HD( GeForce 8600/8500) CAVLC & CABAC Bitstream Processing
Invers Transform
Motion Compensation
Nízká zátěž CPU Deblocking
25%
Při dekompresi obrazu musí procesor provést inverzní kosinovou transformaci (iDCT), aby rekonstruoval jednotlivé bloky obrazu (při kosinové transformaci se nastavuje stupeň komprese, který odpovídá počtu vynechaných koeficientů a tato metoda je tak ztrátová). Pod pojmem Motion compensation se skrývají postupy, které při rekonstrukci snímku využívají faktu, že tento na nějaké snímky navazuje a nějakým naopak předchází. Této znalosti je využito už ke kompresi, MC je tedy opět inverzní operací. Deblocking je filtr, který se používá pro vyhlazení hran a schodů, které se mohou vytvořit mezi bloky rekonstruovaného videa (kosinová transformace pracuje v blocích). Pracuje také v blocích, analyzuje rozdíly a případně mění pixely pro dosažení obrazu s méně chybami (nebo lépe se jevícího pro lidské oko). Na závěr kapitoly ještě přidám pár grafů, které ukazují vliv výkonnosti procesoru.
Na obrazcích je znatelné odlehčení procesoru při akceleraci grafickou kartou. Co se týče vide na Bluray discích na kterých je video kódováno pomocí kodeků MPEG 4 AVC a MPEG 2 HD je ulehčení markantní. U HDDVD nosiče kde se používá kodek VC-1 je situace mírně horší ale také znatelná. Na tento jev se nabízí odpověď vcelku povrchní a to že jak je mi známo vývoj nosičů HDDVD byl ukončen a výrobci se dohodli pro použití Blu-ray médií.
3. Technologie firmy ATI
AVIVO AVIVO je technologie firmy ATI. Jedná se také o hardwarovou akceleraci dekódování videa. Na obrázku jsou vidět jednotlivé fáze zpracování videa. Referát má za úkol zmonitorovat fázi přehrávání tedy dekódování videa, nebudu tedy popisovat fázi zpracování videa. Dekódování Entropy Encoding: Při komprimování videa se vyhodnocuje četnost vzorů, pokud se vyhodnotí častější výskyt tak dochází k omezení těchto výskytů, dochází tedy ke zmenšení velikosti videa. Při dekompresi je tedy nutné nějakým způsobem vrátit video do původní podoby, tento proces se nazývá „Reverse Entropy“. Stejne jako u technologie firmy Nvidia se používá varianta CABAC (Context-based Adaptive Binary Arithmetic Coding). Variable Block Sizes: Další metoda je založena na proměnné velikosti bloků. Metoda MPEG 2 ma velikost bloků pevně nastavenou na velikost bloku 16x16 pixelů. U kodeku H.264 je tato velikost škálovatelná a to v rozmezí 4×4 až 16×16. Díky tomuto je tedy možné rozlišovat určitou úroveň zachování detailů v obraze. Tento rozdíl je nejvíce viditelný na rozhraní objektů ve videu. Největších rozdílů je dosaženo pří velmi nízkých datových tocích. Z hlediska dekódování pak proměnná velikost bloků přináší vyšší nároky na dekodér/dekompresní algoritmus.
In-loop Deblocking: Tato metoda se stará o odstranění viditelných bloků ve videu. Tento jev je známý z videí které prošli větší kompresí. Jedná se třeba o velice oblíbené dvd ripy. Na následujícím obrázku je vidět podíl prací, které přebírá grafická karta procesoru.
Použitá literatura 1. Skúsenosti s nVidia PureVideo HD: Nalejme si čistého videa http://www.zive.sk/spravy/skusenosti-s-nvidia-purevideo-hd-nalejme-si-cisteho-videa 2. Wikipedia - http://cs.wikipedia.org/wiki/High-definition_television 3. ATI představuje AVIVO technologii - http://www.cdr.cz/a/15368