A Flash player CPU-t eszik, mint minden más. Hogy mennyit, az a benne lévő dolgoktól függ. Engem elsősorban az érdekel, hogy az általam gyártott iMectPlayer H264-es videóval hogyan muzsikál.
Az alapállás eddig az volt, hogy a Flash mindent szoftveresen oldott meg különösebb hardvertámogatás nélkül. Ez a H264 esetében igen komoly hátrány, egyetlen videó lejátszása egy öreg gépet képes teljesen leterhelni.
Kaptunk rá (marketing) ígéretet, hogy a 10-es player már képes lesz a fejlettebb grafikai képességeket kihasználni. Itt van a végleges verzió, leteszteltem.
Sajnos a H264-et továbbra is szoftveresen dekódolja, pedig a legtöbb operációs rendszerben van erre már fejlettebb megoldás, hardveres képességeket kihasználó kodek, akármi. Sőt, a 10-es player a 9-eshez képest 5%-kal több CPU-t eszik a H264 lejátszásakor az én gépemen.
Az újdonság az, hogy az embed kód wmode paraméterével többféle stratégia közül lehet választani és bekapcsolni mindenféle hardverközeli trükköket. Azért van többféle mód, mert sajnos kompromisszumokat kell kötni.
Normal mód: az operációs rendszer által kínált sztenderd API-val rajzol.
Transparent mód: a Flash objektum alatt/fölött lévő HTML (és egyéb) tartalmakat is megjeleníti, úgy viselkedik (legalábbis megpróbál), mint egy sima HTML elem. Mivel az alpha (átlátszóság) csatornát keveri, ez a mód a normálnál CPU igényesebb.
Opaque mód: csak Windows alatt van, olyan, mint a transparent, csak az objektum alatti elemekkel nem foglalkozik. Más OS alatt egyenlő a normal móddal.
Direct mód: a lehető legdirektebb módon kezeli a videókártyát, a saját területét direktben kezeli.
GPU mód: használja a videókártya néhány funkcióját, kompromisszum a normal és a direct mód között. Csak akkor ajánlják, ha egyetlen Flash objektum használja a weboldalon.
A videókártyával való viszony eltérése miatt a webes videók kissé másképpen, más színezettel, élességgel mutatkozhatnak meg az egyes módokban.
A tesztelést a saját gépemen végeztem (alu iMac, 2 GHz Core 2 Duo, 3 GB RAM). A videólejátszóban (iMectPlayer, mi más) be van kapcsolva minden trükk a lehető legjobb képminőség érdekében (pl. smoothing). Az utolsó sor egy sokkoló összehasonlító adat, ott Flash helyett ugyanazt a videót Quicktime-mal játszottam le.
| mód | CPU terhelés normál méretben | teljes képernyőn |
|---|---|---|
| normal | 35 | 100 |
| transparent, opaque | 42 | 95 |
| gpu | 28 | 95 |
| direct | 25 | 95 |
| Quicktime | 18 | 30 |
A fenti számokból kitűnően látszik, hogy a Flash nem használja ki megfelelően hardverünk képességeit. Ha lesz H.264-et lejátszó Silverlight (lesz, jövőre), akkor azzal is megnézem majd.
Sajnos a Webcsatornán a transparent módot használjuk, pedig nem kéne. Azért tesszük ezt, mert a player alsó két sarka lekerekített és átlátszó. Azt hiszem, hogy a teljesítmény oltárán ezt a kis designt be kellene áldoznunk.
iMect means internet, media and other cool things. iMect is a small company in Budapest, Hungary. We’ve a big footer on every page where you can discover what we do and what happens with us.
Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis budapesti cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.