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ů. NTSC a PAL jsou hlavni formáty analogového videa. NTSC (National Television System Committee) je formát používaný v Severní Americe a Japonsku. U druhého formátu PAL je to Evropa. V dobách vzniku těchto formátů, se počítalo s uplatněním v televizním průmyslu. Rozlišení formátu NTSC je 480 horizontálních řádků, frekvence snímků je 30 za vteřinu, u formátu PAL je situace taková, video je zobrazováno v 576 horizontálních řádcích z 25 snímky za sekundu. Množství informací které oba formáty předávají za vteřinu je stejné. Při digitalizaci videa je důležitým faktorem počet pixelů, které dostaneme v závislosti na počtu řádků analogového obrazu. Situace je taková že NTSC obsahuje 704x480 pixelů a PAL je to 704x576 pixelů. Dalším formátem je VGA (Video Graphics Array) firmy IBM. Tento formát se využívá k zobrazení obrazu na PC a jeho rozlišení je 640x480 pixelů. MPEG rozlišení obvykle nabývá těchto velikostí: - 704x480 pixelů (TV NTSC) - 704x576 pixelů (TV PAL) - 720x480 pixelů (DVD-Video NTSC) - 720x576 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 s nástupem takzvaného hd videa, tedy videa ve vysokém rozlišení.
HDTV V poslední době se začíná i u nás objevovat i u nás televizní vysílání ve vysokém rozlišení(HDTV). Oproti výše popsaným formátům jde o video v mnohem vyšším rozlišení. Rozlišení HDTV je v kvalitnějším provedení 1080 řádků, které se ještě dělí na progresivní a neprogresivní. Rozdíl je v tom jestli jsou snímky prokládány nebo ne, tedy tak ze pokud se používá progresivní(neprokládaný) systém vykreslí se za sekundu 25 kompletních snímků a u prokládaného je zobrazeno 50 půlsnímků. Lidské oko lépe přijímá neprokládané video, oproti tomu prokládané je méně hardwarově náročné. Při digitalizaci je použita technologie prokládání .V poslední době je ale trendem přecházet kompletně k progresivnímu skenování což tedy odpovídá vývoji v tomto odvětví. Dále se dá použít formát z menším počtem řádků a to 720. Při zobrazování se používají tyto snímkové frekvence 23,976 , 24, 25, 30, 50, 60. Jestliže je použito prokládání používají se pouze frekvence 50 a 60 snímků za sekundu. Ze všeho řečeného je jasné že video ve vysokém rozlišení je velice náročné nejakým způsobem přenášet, z důvodů jeho velkého datového toku. Proto aby se zmenšil datový tok se používá ztrátová komprese. A tato je právě hardwarově náročná. Při nahrávání na kinofilm se používá velkého rozlišení a je dosahováno plného hd rozlišení a někdy i většího frekvence snímku je 24 za sekundu. Pokud chceme takovýto film naskenovat pochopitelně se jako nevhodnější jeví formáty 1080p a 720p při frekvenci 24 snímků za sekundu. Pro standard PAL je potřeba použít frekvenci snímků 25 za sekundu čehož se docílí zrychlením o 4,1 %. 3:2 pulldown je název převodu použitý pro převod do formátu NTSC který se vysíla 30 snímků za sekundu. Princip tohoto převodu je následující, jeden snímek se dá do tří půlsnímků a druhý snímek do dvou půlsnímků. Při získávání nahrávek pro hdtv se používají formáty 720p nebo 1080p. A to tímto způsobem, jestliže jde například o sportovní záznam nebo záznam z rychlými pohyby použivá se 720p. 1080i se používá pro detailnější přenos, s minimem rychlých pohybů. Pro vysílání hd videa na internetu se také používá formát 720p a to z toho důvodu že pc monitory neumějí prokládat obrázky a také to že monitory které mají rozlišení 17 a 19 palců jsou schopny takovéto video zobrazit v plném rozlišení.
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 akceleraci 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%
Inverzní kosinovu transformaci používá procesor k rekonstrukci jednotlivé bloky obrazu. U tohoto postupu se vždy nastavuje stupeň komprese, a ten odpovídá počtu vynechaných koeficientů. Díky tomuto postupu se dá hovořit o ztrátové kompresi. Při použítí funkce Motion Compensation, které se používají pří dekompresi(rekonstrukci) snímku, jde o to že všechny snímky mají své předchůdce a následníky. Tato funkce se používá, jak už bylo řešeno k dekompresi tedy zpětné rekonstrukci, a tedy inverzní operaci. Při rekonstrukci videa může docházet mezi jednotlivými bloky k tvorbě schodů a hranán což je nežádoucí. Proto se aplikuje deblocking filtr který tomuto jevu zabrání. Kosinova transformace pracuje v blocích, a proto tedy i deblocking filtr pracuje v blocích a analyzuje rozdíly nebo mění pixely aby zamezil chybám v obraze. 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