Návod: jak na GPU/DXVA akceleraci videa

  • Jiří Ptáčník
    Kategorie: Návody, HTPC
    Črv 18, 2009
    10× Komentováno

    O přesunu zátěže při přehrávání videa na grafickou kartu se mluví už minimálně rok až dva. Ale teprve nyní začíná být tato technologie více dostupná. Respektive s trochou snahy ji lze zprovoznit a nemusí to být ani přehnaně náročné na nastavování. Ideální to tedy zatím není, ale šetřit energii nebo přehrávat HD video i na slabších sestavách lze.

    Měli byste znát: Přehrávání videa na PC: kodeky, formáty, filtry

    Pojmy GPU akcelerace nebo také DXVA (Direct X Video Acceleration) označují postup, kdy je přehrávání videa na počítači řešeno hardwarově grafickou kartou, nikoli softwarově, kdy práci obstará hlavní procesor. Rozdíl spočívá v tom, že hlavní procesor CPU je universální, zvládne vše, ale nikoli s optimálním poměrem výkon/spotřeba. Zatímco grafická karta je na manipulaci s videodaty specializovaná, takže má pro práci s videem k dispozici mnohem větší výkon při nižší spotřebě. Rozdíl ve spotřebě a zátěži HTPC s akcelerací a bez ní můžete vidět v tomto článku.

    Jen některé karty a jen některá videa

    Pro využívání DXVA je v prvé řadě potřeba grafická karta, která má potřebné funkce. Grafické karty s DXVA se navíc liší v tom, jaké druhy formátů videa zvládnou akcelerovat. Obecně se dá říci, že novější karty bez potíží akcelerují například originální Blu ray filmy (komprese MPEG-2, H.264/MPEG-4 AVC nebo VC-1).

    U HD videa z internetu (nejčastěji právě Blu ray nebo HD DVD ripy), například v oblíbeném kontejneru MKV, někdy pochodíte, někdy zase ne. Záleží, jak je daný videosoubor vytvořen. Třeba u komprese H.264/MPEG-4 AVC se udávají takzvané levely – podle nich lze víceméně zjistit, zda půjde video akcelerovat či nikoli. Široce je podporovaný level High@L4.1.

    Podle MediaInfa je zkoumaný soubor vytvořen jako High@L4.1. I praxe následně ukázala, že akcelerace u něj funguje bez potíží.

    Informace o vašich videosouborech vám sdělí například MediaInfo. Zda vaše karta podporuje DXVA umí odhalit program DXVA Checker. Mezi karty s dobrou podporou DXVA patří AMD ATI HD48x0, HD47x0, HD38x0, HD36x0, HD3200, od nVidie potom 8500GT, 8800GTS512, 8800GT, 9300M, 8400M GS, GTX260, IGP 8200. Obecně snad můžeme konstatovat, že všechny novější karty AMD a nVidie DXVA podporují. U karet Intel je situace mnohem horší (omezeně snad Intel G45, plně u nové GMA X4500HD).

    Nástroj DXVA Checker zobrazuje podporu GPU akcelerace. Na obrázku je zaškrtnuta pozitivní podpora u formátu h264 a VC-1.

    Než začnete akcelerovat

    Přijměte několik tipů, než se do akcelerace videa pustíte: 

    • Nainstalujte nejnovější ovladače grafické karty
    • Odinstalujte nebo odstavte další filtry, které zpracovávají nebo upravují video při přehrávání (zejména VobSub na titulky, QuickTime, ffdshow a podobně)
    • Čím méně kodeků máte nainstalováno, tím lépe. Ideální je používat jen ty, které potřebujete. Balíčky kodeků často napáchají více škody, než užitku. 
    • V novějších operačních systémech je podpora akcelerace propracovanější, než ve starších.

    Akcelerace videa grafickou kartou skoro na jedno kliknutí – MPC HC

    Nejjednodušší způsob, jak provozovat akceleraci HD videa spočívá v použití universálního přehrávače MPC-HC. Ten navíc obsahuje všechny potřebné dekodéry (nemusíte mít nainstalovány kodeky a filtry) v sobě a je dostupný na mnoho operačních systémů, včetně 64bitových verzí.

    MPC-HC si stáhněte z domovské stránky http://mpc-hc.sourceforge.net/download-media-player-classic-hc.html. Vyberte si 32 nebo 64bitovou verzi podle vašeho systému. 32bitová verze funguje i v 64bitovém systému. Program se neinstaluje, stačí jej rozbalit do vlastní složky. Po spuštění lze v menu Zobrazit-Language nastavit češtinu.

    Dále přejděte do menu Zobrazit-Možnosti… Zde na záložce Interní filtry zaškrtněte všechny filtry. Tím zajistíte, že pokud to půjde, budou dekódovány přímo v MPC-HC. Současně v pravém poli můžete (nemusíte) podrobněji nastavovat DXVA při dvojkliku na filtr (například na H264/AVC (DXVA)).

    Další důležité nastavení spočívá ve volbách v Zobrazit-Možnosti… na záložce Přehrávání-Výstup. To nastavte podle obrázku. Zobrazeno je nastavení pro Vista/Windows 7; pro XP nastavte DirectShow video na VMR9 (renderless)**.

    MPC-HC umí akcelerovat i video s titulky. V menu je třeba mít nastaveno automatické zpracování titulků (Zobrazit-Možnosti-Přehrávání-Automaticky načíst titulky. Pozornost věnujte také samostatné záložce Zobrazit-Možnosti-Titulky. Zde je volba Maximální rozlišení textury, která ovlivňuje také zátěž procesoru.

    Další možnosti akcelerace (CoreAVC, MCE)

    Akcelerovat HD video umí i další přehrávače, byť většinou nejsou zdarma. Jedním z nich je Cyberlink PowerDVD 8 a novější. Pokud si chcete zajistit akceleraci pro celý systém, tak zbývá využít například kodek CoreAVC. Ten se navíc chlubí, že je nejrychlejší v dekódování videa bez DXVA. Nevýhodou CoreAVC je jeho cena a využití akcelerace jen na některých nVidia kartách (využívá CUDA). 

    Pokud chcete využívat akceleraci například na HTPC v Media Center, musíte mít v systému funkční dekodér s podporou DXVA (CoreAVC, Cyberlink aj.) a musíte mít jistotu, že MCE bude tento dekodér využívat. Jeho funkci nesmí „rušit“ žádný další filtr. Pokud je mi známo, samostatný free dekodér s DXVA a snadnou instalací a konfigurací neexistuje.

    Krajní možnost nabízí opět MPC-HC: jeho filtr MPCVideoDec.ax lze zkusit vnutit i jiným přehrávačům - údajně funkční s KMplayer, nebo DVBViewer Pro (s ním využijete akceleraci nejen při sledování HD videa ze satelitu).

    Pořádek v kodecích vám pomůže udělat Radlight Filter Manager, ve kterém si nastavíte, který dekodér se použije na dané video. V nástroji GraphEdit potom můžete ověřit, zda je priorita dekodérů nastavena správně. 

     

    Vlevo neakcelerované video, vpravo akcelerované. Vidět můžete i vypis z MediaInfa a vytížení procesoru CPU a GPU. Neakcelerované video má profil L5.0 a akcelerované L4.0. Informace o videu zapnete v MPC-HC zkratkou Ctrl+J.

    Omezení nemusí být překážkou

    Má akcelerace vzhledem k omezením na vytovřená videa smysl? Často ke každému filmu, který vyjde, lze dohledat i DXVA akcelerovatelnou verzi. U 720p bývá pravidlem, že se používá High@L4.1 (tedy to, co akcelerují karty často) a výjimek moc není. Nově i 1080p lze najít s podporou DXVA. Zaměřit se dá na HD ripy od skupiny EuReKA, která má slůvko dxva v názvu každého filmu. EuReKu začínají napodobovat i jiné skupiny a celkově se v případě 1080p situace dále zlepšuje.

    PŘIDAT KOMENTÁŘ

    10 Komentáře

    1. Moc pěkný návod pane Ptáčník. Takový článek by měl být placený zlatem :o). Já jsem zkontrolovat asi 10 ripu (720 i 1080p) a u všech byla použit level High@L4.1. Ani jeden nebyl od EuReKy. Takže se akcelerace pomocí DXVA už nebojím.

    2. Podivejte se jeste na pocet Ref Frames, je znamo, ze ATi karty akceleruji pouze do 4-5 Ref Frames, kdezto nVidia s nekolika poslednimi ovladaci zvladne i 16. Vypise to Mediainfo.

    3. Zdravím, jelikož sleduji filmy pouze s titulky + titulky nechci umístěné v obrazu, ale pod obrazem ve spodním ČERNÉM PRUHU, tak by mě zajímalo jak k tomu přemluvit MPC. Jde mi o to, abych video přehrál akcelerovaně a zároveň dokázal titulky vykreslit do jiné vrstvy než je video. Doma u stolního pc se mi to proste nepodařilo a tak raději přehrávám filmy s titulky neakcelerovaně přes bsplayer.

      A proč mi vůbec vadí titulky přímo ve videu? Jednak se mi v černém pruhu lépe čtou a taky když jsou přímo ve videu tak jsou v MPC jaksi rozmazané, neostré a nejsou úplně 100% bílé... sice se mi je už několikrát podařilo dostat dolů pod video, ale to zase přestala fungovat akcelerace nebo se video divně trhalo.

      Důležitá informace je, že mám winXP a bude si to nejspíše chtít pohrát nějak s nastavením filtrů a renderu... u grafiky problém určitě není, stejný problém jsem zaznamenal jak u Radeonu hd3850 tak u nynějšího hd4870.

      tady je co mám nastaveného http://i46.tinypic.com/111m9uf.png

      budu nesmírně vděčný za jakékoli podněty a návrhy :)

    4. Jsou dnes dva běžné způsoby vykreslování titulků (ono jich je víc, ale jsou už pak víceméně analogické).

      Jeden je použít filtr zvaný DirectVobSub (=VSFilter), který titulky sám načítá ze souboru se stejným jménem jako je jméno souboru s videem (s jinou příponou samozřejmě) a těmito titulky potom při renderování upravuje obraz. U takové titulky se kódují do obrazu před zvětšením obrazu na celou obrazovku, proto když jsou vykresleny v nízkém rozlišení se potom jeví hodně rozmazané a splývající. Proti tomuto jde v jejich nastavení nalézt volbu Doubled resolution, díky které vykresluje titulky při dvojnásobném zvětšení. Pokud jde o umístění do černého pruhu pod videem. Na to je zde volba Vertical padding které umožní fyzicky video osadit černými pruhy které se vykreslují jakoby navíc a tak se do nich mohou kreslit i titulky. Tato volba má však poměrně omezená přednastavení a nelze to tedy používat univerzálně. Samozřejmě v tomto nastavení si jde hrát i s fontem, velikostí, barvami a průhledností (která je od začátku trochu nastavena).

      Druhá možnost je nepoužívat DirectVobSub ale spolehnout se na přehrávač, aby titulky vykreslil sám. K tomu je potřeba zvolit v MPC správný renderer. Nejlepší je Overlay Mixer, který má jen dvě vady, nefunguje na Win Vista/7 a neumí vykreslovat titulky. Umí to VMR7/9 renderless, ale ten je považován naopak za nejhorší co do rychlosti i kvality obrazu. Rozumná volba je Haali Renderer a minimálně na Win Vista/7 se důrazně doporučuje EVR Custom Pres. Pak načtete titulky přes volbu file přímo v programu (případně přetažením do okna) a měli by se vykreslovat titulky maximálně ostře za všech okolností. Jejich posun pod video spočívá v navštívení nastavení MPC pod Subtitles > Default Style, tam v pravém horním rohu najdete nastavení Margins, tak do položky Bottom vepište záporné číslo (pro titulky velikosti 18 tam mám -38). Opět si tu můžete hrát s barvami a průhledností, která tady tuším přednastavená není.

      Doufám, že jsem pomohl, bohužel co do akcelerace, nemám žádné zkušenosti, takže to musíte zjistit sám s kterou z variant dosáhnete dobré výsledky.

    5. Myslím, že tohle je dost zastaralé, řešil jsem to před půl rokem. Stačí nainstalovat Vista Codec Package a akceleruje i mediaplayer

    6. To radeji stahnu MPC HC nez si za*irat PC nejakym codec packem. Od vzniku MPC HC nepotrebuji ffdshow ani nic dalsiho, ma to vsechno v sobe, navic bez instalace.

    7. na xp jsem s HD filmy nemel problem, po reinstalaci na win 7 jsou HD videa kostkovana a kvalita neni jak byvala...ani tato akcelerace vubec nic nezmenila,vse zustalo jak bylo a sum a kosticky stale pretrvavaji...aktualni ovladace od ATI HD 4800 taky nainstalovane