Full HD videa ve Flashi: GPU akcelerace konečně tady

17. 11. 2009

Sdílet

 Autor: Redakce

Flash Player 10.1 a 1080p YouTube jsou tady

Flash Player 10.1 a 1080p YouTube jsou tady

Včera jsme vás informovali o tom, že YouTube tento týden
spouští streamovaná videa i v rozlišení 1080p. Hned v první bodě jsme
vytkli, že špatně optimalizovaný Flash Player dává v takovém případě
zabrat i slabším dvoujádrovým procesorům, nedejbože úsporným Atomům, VIA Nano,
AMD Neo, Intel CULV… Přitom většina GPU už několik let disponuje speciálními
videodekodéry, které při přehrávání online obsahu nebyly vůbec využity.

Zároveň si možná pamatujete zprávu o chystaném Flash Player
10.1, který možnost GPU akcelerace měl přinést ještě před koncem letošního
roku. Jak bylo slibováno, je i splněno. Adobe a Nvidia dnešním dnem 17.11.
nový Flash Player v betaverzi uvádějí.

Flash Player 10.1 beta je zatím uveden jen pro PC. Verze pro
mobilní zařízení, PDA, MID včetně platforem Nvidia Tegra, Creative Zii bude
dostupná později. V první polovině roku 2010 se dočkáme finální verze pro
všechny platformy.

Tip: První informace o Flash Player 10.1 a Open Screen Project

Nejpopulárnější video server tedy tento týden přináší Full
HD video a zároveň Adobe vydalo novou verzi přehrávače, na kterém je YouTube
postaven. Že by náhoda, nebo dobře připravený plán? Tyhle konspirační teorie se
většinou týkají negativních věcí, pokud GPU akcelerace opravdu funguje, je
opravdu jedno, zda se jedná o náhodu.

Betaverzi Flash Player 10.1 můžete stahovat i vy. Aktuální
sestavení 10.1.54.45 je dostupné na webu Adobe jako Active-X prvek pro Internet
Explorer nebo plugin pro ostatní prohlížeče. Podmínkou je operační systém Windows
XP 32b, Windows Vista/7 32b i 64b. Další podmínky a omezení naleznete v Release
notes nebo v dalších kapitolách článku.

Kdo umí, kdo ne a proč

Kdo umí, kdo ne a proč

V době psaní článku máme informace o funkčnosti
akcelerace pouze s Nvidia GPU. V tuto chvíli, tj. 15:00 už možná
podporu ohlásili i další výrobci, doplníme to případně později. Potěšující je,
že v materiálech Nvidie se píše o akceleraci skrz standardní rozhraní DXVA,
tedy věc v offline přehrávání už dobře známou a dlouho zavedenou. Vyvrátily
se tak spekulace, že by se mohly o výpočty starat stream procesory a například proprietární
rozhraní CUDA. DXVA probouzí naději i pro GPU AMD/ATI, Intelu a S3.

Nvidia

Nvidia uvádí podporu u všech karet GeForce 8000 a novějších
(včetně IGP, mobilních variant a Ionu, Ionu LE), kromě GeForce 8800
GTS/GTX/Ultra s jádrem G80, ty neobsahuje VP2 dekodér s plnou
akcelerací H.264. U Ionu, Ionu LE a GeForce 8400 GS je uvedena poznámka, že
akcelerace nemusí být funkční u videa s nestandardním rozlišením. Opravy
se dočkáme buď s novější verzí Flashe nebo ovladačů GeForce. U Ionu ještě
zůstaňme, Nvidia upozorňuje, že může dojít k vypadávání snímků u 1080p
v případě, že bude použit jednojádrový Atom (těch asi bude v miniboocích
většina) a zároveň pouze jednokanálový přístup do paměti.

V dodaných materiálech k Flash Playeru se
kalifornský výrobce na několika stranách chlubí, že oni HD i ve flashi zvládnou
na všech v současnosti prodávaných kartách, včetně nettopů s Ionem a
miniboocích Samsung N510, Lenovo S12 a HP Mini 311 (kdy přijdou ostatní
výrobci, a proč se u nás ještě žádný Ion minibook neprodává?).

Intel podporu akcelerace ve svých miniboocích, nettopech ani
noteboocích založených na GPU GMA 900/950/3000/3100 nenabízí, neobsahují totiž
potřebné obvody. Teoreticky to zvládne X4500 HD a GMA 500 v čipsetu
Poulsbo. Nvidia však tvrdí, že X4500 HD nemusí nutně znamenat plynulé video
v případě, že se použije příliš slabý procesor (to však platí i pro Ion a
Atom). Navíc má prý horší kvalitu obrazu (štiplavá poznámka Nvidie – „Intel
vyměnil kvalitu videa za vyšší framerate“). Osobně s tímto GPU zkušenost
nemám, snad to vyvrátí některý z čtenářů.

AMD/ATI

Adobe release notes hovoří jasně. Akcelerace je funkční s ovladači
Catalyst 9.11 a Radeony s čipem UVD2.

V tabulce podporovaných tedy najdete Radeon HD 4000,
Mobility Radeon HD 4000, IGP Radeon HD 3000, FirePro V3750, V5700, V7750,
V8700, V8750 a novější. V případě IGP jde nejspíš o překlep, protože
Radeony HD 3200 a HD 3300 v čipsetech AMD 780G respektive 790GX obsahují
pouze UVD první generace. UVD2 je součástí pouze nové sady AMD 785G.

Není jisté, jestli je to chyba Adobe nebo AMD, každopádně si
to zaslouží obrovský černý puntík. Zrovna tam, kde je síla GPU nejvíce potřeba
(slabší notebooky, subnotebooky), se UVD2 nepoužívá. Úsporné platformy AMD Yukon nebo novější AMD Congo si musí o
podpoře zatím nechat zdát, stejně tak notebooky s čipsetem RS780G.

Aktualizováno: na webu se už objevilo stanovisko AMD a
potvrzuje to předchozí zprávy. Flash Player 10.1 není v případě AMD
akcelerován přes DXVA rozhraní, ale ATI Stream. Prý je to jednodušší, lepší a
lze využívat výhod CPU i GPU. Inu, proč dělat věci jednoduše, když to jde
složitě. Podmínky UVD2 nicméně platit mohou, ATI Stream může klidně volat funkce UVD2 podobně, jako to dělá API DXVA. Podrobnosti v další kapitole.

Doplněny nové informace ve zvláštním článku.

Informace a tipy jsou na AMD blogu, případě můžete shlédnout (stylově) video na YouTube.

Intel

V materiálech Adobe (Intel nic neposkytl) se nepíše o
konkrétních GPU, se kterými HD Flash bude pracovat, požadavky odbyli jen
uvedením ovladačů 15.16.2.1986 pro Windows Vista/7 v 32b i 64b verzi a
grafik Intel 4 Series.

Ano, v XP akcelerace fungovat nebude. Dekódovací
jednotka Intel Clear Video pracuje pouze s DXVA2 v novějších systémem.
Starší DXVA neumí a byli za to už několikrát kritizování v souvislosti s uváděním
minibooků s XP a schopným čipsetem Intel GL40. Zodpovědnost v tom případě
však nesl výrobce notebooku.

Čtvrtá série GMA se bude bezpochyby týkat pouze GPU X4500HD
a mobilního varianty X4500MHD, tyto jediné potřebné obvody pro H.264 formát
mají, obyčejná GMA X4500 ne. S těmito GPU se setkáte v čipsetech Intel
G45 a mobilních Intel GL40, GS45, GM45 a Atomovém GN40. Akcelerace je
teoreticky schopný i GMA 500 v čipsetu Poulsbo (US15W) v pro Atomy
Zxxx, zmíněna však nikde není a vzhledem ke katastrofickým ovladačům této
platformy bych se ani nedivil, kdyby to možné nebylo.

Ovladače pro Windows Vista/7 32b a Vista/7 64b.

Broadcom

Broadcom není výrobce GPU, ale jeho dekodéry videa naleznete
kromě stolních set top boxů i v některých miniboocích. Nejvíce se asi
mluvilo o produktech HP. Některé mají v základu nebo volitelně možnost
připojit kartičku do Mini PCIe slotu, na které se nachází čip Broadcom Crystal
HD Enhancer (přesněji BCM70012). Podobný čip BCM70015 zatím podporován není. Ostatně
zkušenosti s Broadcom HD vám už v našem diskuzním fóru přinesl Lazar.

Ovladače jsou dostupné jen pro 32bitové systémy Windows XP,
Vista a 7.

S3 Graphics

Adobe se o podpoře S3 Graphics nezmiňuje a samotný výrobce
zatím ani není členem Open Screen Project – konsorcia, které se bude starat
o budoucí vývoj webu, flashe, multimédií apod. S3 procesory podporující technologii
ChromotionHD 2.0 (a vyšší) jsou DXVA akcelerace schopné (myšleno offline
přehrávání). Online stream bohužel nemáme jak vyzkoušet a zastoupení mezi
čtenáři asi nebude vysoké, spíš možná nulové.

Každopádně pokud máte kartu s čipem Chrome 530 GT, 540
GTX, 430 GT, 440 GTX případně na desce integrovaný Embedded Chrome 4000/5000,
můžete akceleraci vyzkoušet a podělit se se zkušenostmi.

Jak jsme testovali

Jak jsme testovali

Flash Player (nebo
spíš YouTube) v poslední verzích umí zobrazit podrobnosti o přehrávaném
videu. U mě se volba zobrazila až ve verzi 10.1. Pravým kliknutím na video
vyberete položku „Show Video Info„ a v pravém horním rohu se zobrazí nový
boxík. Jednotlivé údaje snad není třeba podrobněji vysvětlovat a jsou všem
jasné. Pro nás je důležité rozlišení, počet fps a vypadnutých snímků (drop
frames).

Testy proběhly
v prohlížeči Firefox 3.5.5, který je doporučován. Bez větších problémů se
to týká i Internet Exploreru (o tom si ještě povíme) a zkoušel jsem úspěšně i
Google Chrome 4. Předpokládám, že Opera bude fungovat také.

Tip: Adobe umí vytvořit log
přehrávaného videa. Bude třeba v textovém editoru (stačí notepad) vytvořit
soubor „mms.cfg“, do kterého zapíšete „EnableFileLogging=2“ (bez uvozovek) a
uložíte do složky \Windows\System32\Macromed\Flash, pokud používáte 64b systém,
tak raději i do \Windows\SysWOW64\Macromed\Flash.

Po restartování
prohlížeče by se měl zapisovat log při každém přehrávání videa. Logy se
nacházejí ve složce:

XP a Vista – \Documents
and Setting\Jméno_uživatele\Application Data\Macromedia\Flash Player\Logs\extvideo.txt

Windows 7 – \Users\Jméno_uživatele\AppData\Roaming\Macromedia\Flash
Player\Logs\extvideo.txt

Záznam se ukládá ve
tvaru:

avgfps=30.24,codec=h264,bitrate=1632,url=http://v18.lscache7.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=905207&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1258434000&key=yt1&signature=A4C69036B84F8A2C63C9B83C41057E8AEFF768F0.823FCA4A0A95E484A384EDB209CFA65ECF04AD04&factor=1.25&id=fe2d910816b797e8&

Důležitá je první
hodnota, která udává průměrný počet snímků za vteřinu. V Internet
Exploreru však logování nemusí fungovat.

Jestli jste četli
podrobně, dozvěděli jste se, že Ion, Ion LE a GeForce 8400 GS nemusí přehrát
některá videa s nestandardním rozlišením plynule. Týká se to streamů,
které jako výchozí využívají SD rozlišení s 854 pixely
v horizontálním směru místo obvyklých 640. I když pak video přepnete na
HD, GPU akcelerace zřejmě dále nebude fungovat, musí se restartovat prohlížeč.
Zamezit tomu můžete nastavením brokeru tak, aby si historii ani cache stránek
nepamatoval, nebo před každým spuštěním násilně zvolit režim přehrávání
z tabulky kódů doplněných do URL v adresním řádku prohlížeče.

název kód rozlišení video audio audio kontejner
    320 × 240 H.263, 200 kbps 64 kbps, mono MP3, 22 kHz .FLV
HQ &fmt=6 480 × 360 H.263, 900 kbps 96 kbps, mono MP3, 44,1 kHz .FLV
SD &fmt=18 480 × 360 H.264, 1000 kbps 128 kbps, stereo AAC, 44,1 kHz .MP4
HD &fmt=22 1280 × 720 H.264, 2000 kbps 230 kbps, stereo AAC, 44,1 kHz .MP4
HD &fmt=37 1920 × 1080 H.264, 3500 kbps 230 kbps, stereo AAC, 44,1 kHz .MP4

V případě, že Full HD 1080p vynutíte zapsáním &fmt=37, tlačítkem HD můžete přepnout i do menšího 720p.

Testovací sestava

  • PC – AMD 780G, Athlon
    X2 4850e (2,5 GHz), GeForce 9600 GT, 2× 2 GB RAM 800 MHz, Windows 7 64b
  • Asus N10J – Atom N270
    (1,6 GHz), GeForce 9300M GS, 1× 2 GB RAM 667 MHz, Windows Vista 32b

Stolní sestava je nižší main-stream, vyzkoušíme i IGP Radeon HD 3200. Asus N10J je zajímavější a pro náš test i důležitější – jednojádrový Atom se single-channel přístupem do paměti může být brzdou systému, zároveň je diskrétní karta GeForce 9300M GS podobná GPU v Ionu. Velkou výhodou je ovšem vlastní 256MB frame-buffer.

Výsledky na různých platformách

Výsledky na různých platformách

GeForce 9600 GT + Athlon 4850e

Nvidia doporučuje
použít ovladače GeForce 195.50 beta (neveřejná), funkčnost jsem ale vyzkoušel i
s certifikovanými WHQL GeForce 191.07. Jako testovací video posloužil
trailer k filmu Avatar (1080p). Video, které jsme použili ve včerejší
novince nebylo příliš vhodné. U domácího záznamu natočeného ruční kamerou bez
stabilizace lze těžko poznat, jestli je špatná plynulost na straně zdroje nebo
přehrávání. Při rozlišení 720p jsem dosáhl stejných výsledků.

V případě počítače
s GeForce 9600 GT byla akcelerace pozorovatelná i na tomto videu. Ve Flash Player 10, který jsem použil včera se zatížení pohybovalo nad 80 procenty – screenshot.

Trailer k filmu Avatar
byl také přehráván bez obtíží, CPU load se pohyboval mezi 20-30 procenty.
Aktivní CnQ procesoru způsobovalo neustálou změnu taktů, většinu času ale běžel
na nejnižších 1000 MHz. Stejné chování včetně zatížení procesoru jsem pozoroval
i při offline přehrávání stejného videa staženého na PC v přehrávači WMP12,
který DXVA akceleraci také umí.

Klikněte pro zvětšení. Všimněte si nulové hodnoty u vypadnutých snímků, přehrávání bylo plynulé, framerate se držel okolo 30 fps (tedy stejně jako zdrojové video). Při rozlišení 720p je výsledek shodný.

Atom N270 + GeForce 9300M GS

Mirek Jahoda vyzkoušel
důležitější test na minibooku Asus N10J. Zatímco stolní PC zvládlo 1080p video
i silou procesoru, Atom N270 v žádném případě. Diskrétní grafika GeForce
9300M GS fungovala také. Nvidia se může právem chlubit nejlepší podporou videa
na všech platformách.

První obrázek: se starou verzí Flash Playeru neběží plynule ani SD video, byť ve formátu H.264. Druhý obrázek: akcelerace úspěšně zapojena, 720p video s několika vypadnutými snímky. Klikněte pro zvětšení.

Z Mirkových fraps logů jsme sestavili průběhové grafy fps.


1080p GPU akcelerace na snímku | 1080p CPU akcelerace zde

720p GPU akcelerace na snímku | 720p CPU akcelerace zde

Asus N10J
    Atom N270 GeForce 9300M GS
SD 480p min. fps 16 21
max. fps 26 30
avg. fps 21,5 24,8
       
HD 720p min. fps 1 19
max. fps 20 27
avg. fps 10,4 22,9
       
HD 1080p min. fps 0 12
max. fps 4 22
avg. fps 1 17,7

 

Testování proběhlo na SD 480p, HD 720p a HD 1080p. Z tabulky a průběhů fps lze vidět, že samotný Atom si s přihmouřeným okem poradí se standardním rozlišení ve formátu H.264. Vyšší 720p už je pak doménou pouze GPU a při Full HD jsou trochu problémy i s grafickou kartou. Průměrný framerate necelých 18 fps není ideální a vlastně to potvrzuje obavy Nvidie, že jednojádrový Atom a single-channel RAM jsou brzdou. Výsledek bude zřejmě ovlivněn i kompozitním desktopem Windows Vista Aero, který u slabších diskrétních karet a IGP způsobuje propady počtu fps.

AMD/ATI

Z legrace jsem
vyzkoušel i IGP Radeon HD 3200, ostatně je zmíněn i v Adobe release notes.
Přehrávání mě překvapilo. Zatížení se pohybovalo mezi 40-60 procenty (spíš
okolo 50). AMD GPU Clock Tool, který monitoruje UVD jednotku hlásil, že se
nepoužívá. Přesto bylo přehrávání relativně dobré (pár vypadnutých snímků) a
zatížení procesoru bylo nižší než ve starších verzích Flash Playeru.

Klikněte pro zvětšení

Lazar vyzkoušel
akceleraci na systému Windows Vista 64b s procesorem Intel Core 2 Quad
QX6700 a kartou Radeon HD 4870. Výsledky jsou trochu zneklidňující, s Flash
Player 9 (10 %) byl CPU load nižší než v případě verze 10.1 beta (18 %).
Adobe zmiňuje jako podmínku verzi ovladačů Catalyst 9.11, Lazar použil ovladače z ATI Stream SDK 2.0 beta4 (v CCC označeny jako Catalyst 9.11, nemusí jít o finální verzi).

Výsledky Radeonu HD 4870 ve Windows Vista 64b, Catalyst 9.10: Flash Player 9 | Flash Player 10.1

Zvláštní výsledky
hlásí i Anandtech. Radeon HD 3200 nezvládá akceleraci vůbec a zátěž dosahuje
100 procent. Procesorem je jednojádrový Sempron LE-1150. Výsledek tedy odpovídá
našemu testu s dvoujádrovým Atomem a loadem 50 %.

Redaktoři ovšem
zkusili i test na novince Radeon HD 5850. Sempron se vůbec nechytá, Athlon II
X2 240 pak s Flash Player 10 způsobuje 80% zatížení, s verzí 10.1
pak 72% zátěž (!). Později Anandtech dodal, že také netestovali s Catalyst
9.11. V tom může být jádro pudla.

Aktualizace: před chvílí AMD/ATI vydali finální ovladače Catalyst 9.11. Uživatele v diskuzích uvádějí, že GPU akcelerace je opravdu funkční. Potvrzuje to i screenshot z Lazarova systému. Pořád platí, že akcelerace je možná jen s GPU Radeon HD 4000 a novějšími.

Další platformy

Už zmíněný Anandtech
vyzkoušel GPU akceleraci i na podporovaném Intelu GMA X4500MHD. Zlepšení s Flash
Player 10.1 beta je znatelné u YouTube, ale na videích Hulu.com přesto k problémům
dochází (10 fps).

Redaktoři zkusili (úspěšně)
i minibook HP Mini 311 s čipovou sadou Ion LE. Dále píší o alternativních
OS. GNU/Linux podporu zatím nemá a Mac OS X není dostatečně otevřený vývojářům
(Apple nezpřístupnil požadované API). V případě linuxových systémů ale
existuje možnost alternativního flashového přehrávače Gnash (info na Phoronixu).

Lazar na poslední
chvíli vyzkoušel kombinaci Broadcom Crystal HD a Flash Player 10.1 beta,
akcelerace se však nekonala. Broadcom možná koncovým zákazníkům neposkytuje
ovladače, ty jsou dostupné až na webu výrobce příslušného notebooku, starší
verze si ale zřejmě akceleraci (online streamů) neumí.

Vítězové a poražení

Vítězové a poražení

Nová verze Flashe je konečně venku, funguje. Zbývá jen pochválit či pokárat zainteresované společnosti, jak k věci přistupovaly. Berte na vědomí dnešní datum testu i beta stádium Flash Playeru. Budoucí verze mohou leccos změnit, určitě vás budeme informovat.

Adobe – i když už betaverze přehrávače v některých případech funguje, vydání přišlo pozdě, velmi pozdě. Online video ve Flashi je i v HD rozlišení přístupné rok nebo dva. Grafické karty disponují potřebnými obvody let už několik. Pozdě ale přece v tomto případě neplatí, pořád je ještě co opravovat. V betě vlastně ani není jasné, které problémy způsobují ovladače a které nefinální software Adobe. Pokud bychom měli známkovat jako ve škole, je to nejlépe trojka.

Nvidia – úkolu se zhostila výborně, spolupráce s Adobe nejspíš probíhala bez problémů. Kalifornská společnost umí GPU akceleraci využít na největším počtu GPU, relativně bez problémů (Atomy a nestandardní rozlišení) a vlastně potvrdila pozici lídra v oblasti multimédií a videa (nemyslím teď hry). Za jedna.

AMD/ATIvazba na UVD2 a ATI Stream, proč? Nejsou vydány funkční ovladače pro Flash Player, proč?Podpora jen pro silnější grafiky (a vlastně i systémy), ale na pomalé úsporné platformy se zapomnělo? Proč? K dnešnímu dni je to jasná pětka a měli by zůstat po škole.

S vydáním finálních Catalyst 9.11 se funkčnost potvrdila na kartách s UVD2. Výtka ale stále platí. Tam, kde je akcelerace nejvíce potřeba (na úsporných platformách) a IGP (kromě AMD 785G), akcelerace v současné době není možná. Známku tedy přepisuji, stále je to ale trojka, maximálně dvě mínus.

Novému hodnocení je věnován zvláštní článek, akcelerace je potvrzena i na starších Radeonech s UVD první generace, včetně IGP. Známka 1–.

Intel – v podstatě stejné výtky jako u ATI. Intel ale vždycky hodnotu HD videa na svých řešeních snižoval, na miniboocích přece HD nebylo třeba. Vzhledem k výsledků Anandtechu je to aspoň čtyřka.

S3 a VIA – obrovský počet neomluvených hodin, ročník si budou muset zopakovat.

Další skupinou by mohl být ještě YouTube (a podobné servery), internetoví provideři a filmoví/televizní producenti. Především poslední dva čelí kritice v souvislosti s uváděním novinek už od počátku broadbandu. Ze slušnosti je ale dnes necháme být.

bitcoin_skoleni

Poznámka na závěr:
Adobe Flash Player 10.1 beta umí využít GPU akcelerace přehrávání videa. Nvidia
slibuje, že v budoucích verzích bude možná počítat i Flash animace. Na
tohle je DXVA rozhraní krátké, osobně tipuji, že akcelerace bude probíhat na
bázi DirectCompute, které Adobe plánuje použít i v nových aplikacích Adobe
CS5.

Za poskytnutí výsledků a screenshotů patří díky Lazarovi