Test MPEG-4 kodeků: 2. část
26.2.2008, Radek Jahoda, recenze
Konečně se dostáváme ke druhé části našeho testu MPEG-4 kodeků. V první části jsme komprimovali čisté nezašuměné video, ve druhé části to bude video horší kvality se šumem, kde budeme testovat kodeky na jejich maximu. Oproti první části bude ale několik změn.
Kapitoly článku:
- Test MPEG-4 kodeků: 2. část
- Testované video
- DivX
- libavcodec
- VP7
- WMV9
- x264
- XviD
- 500kbit/s
- 750kbit/s
- 1000kbit/s
- 1500kbit/s
- 2000kbit/s
- 2500kbit/s
- 3000kbit/s
- 3500kbit/s
- 4000kbit/s
- Zhodnocení
Tak za prvé vezmeme v úvahu připomínky vás čtenářů a všechny obrázky budou i ve větším rozlišení, takže je můžete zkoumat do hloubky. Také jejich rozsah bude upraven podle minimálních a maximálních hodnot, aby na grafu bylo vše lépe vidět. Každý bitrate tak bude mít svůj vlastní rozsah. Upozorněme ještě na to, že graf je tvořen průměrováním hodnot. Aby byly vidět na grafu všechny snímky, tak pro deset minut videa je to 10*60*25=15000 snímků, přičemž stejnou šířku by pak musel mít i graf, což není příliš reálné. Šířka je tedy omezena a sousedící hodnoty jsou na grafu příslušně zprůměrovány. U malých obrázků se ale průměruje větší počet bodů, a tak mohou být hodnoty v grafu mírně odlišné, což ale není na závadu. U dnešních kodeků mají totiž různé typy snímků jinou velikost - I snímky jsou velké, P jsou typicky menší a B nejmenší, klidně i stokrát menší než u I-snímků. Ani to ale není pravidlem, záleží na konkrétním snímku i na těch okolních.
Druhá změna je zařazení dalšího kodeku do testu na žádost jednoho čtenáře z diskuze. Je jím MPEG-4 kodek z libavcodec projektu. Nevím sice, kdo ho používá, ale pro naše srovnání je jeho zařazení určitě zajímavé.
Testu se tedy zúčastní tyto kodeky:
Ne všechny kodeky ale pracují v YV12, výjimkou je např. VP7, který jede v RGB, což je pro něj určitě výhoda. Dekodér tohoto kodeku dokonce odmítá provést dekompresi do YV12 formátu, takže není to tak jednoduché. Konverze samotná je sice exaktní výpočet, který ale lze provést různými způsoby, jež jsou různě přesné. Lze např. počítat v plovoucí řádové čárce, což je nejpřesnější, ale nejpomalejší, nebo v celých číslech, což je nejrychlejší, ale zase méně přesné. Výpočet pak mohou usnadnit MMX, 3DNow! nebo SSE instrukce, které výpočet urychlují, jde ale také o celočíselné výpočty. Toto v minulém testu pravděpodobně nenahrávalo kodeku Windows Media Video 9, který ukázal velmi špatné výsledky u maximálních rozdílových hodnot.
V našem druhém testu tedy rovněž poskytneme data kodeku v RGB formátu, porovnávat ale budeme v YV12. Vstupní video si převedeme do YV12, dekodér nám poskytne data rovněž v YV12, teprve poté je oba převedeme do RGB a v něm budeme porovnávat. Výjimkou je VP7 kodek, který nám poskytne data v RGB, které si převedeme do YV12 sami. Zbytek bude shodný. Nabízí se otázka, proč nedat kodekům rovnou video v YV12 formátu, ale jak již bylo řečeno, RGB je standard a ne každý kodek podporuje na vstupu YV12.
Metodika testu je jinak shodná, rozdíl bude v použitém videu, což jsme si již řekli. Jak se ukáže, výsledky budou ještě zajímavější než v prvním díle. Možná by stálo za to první test provést ještě jednou s nově nastavenými podmínkami, co myslíte?
Druhá změna je zařazení dalšího kodeku do testu na žádost jednoho čtenáře z diskuze. Je jím MPEG-4 kodek z libavcodec projektu. Nevím sice, kdo ho používá, ale pro naše srovnání je jeho zařazení určitě zajímavé.
Testu se tedy zúčastní tyto kodeky:
- DivX Pro 6.8
- libavcodec MPEG-4 z MEncoderu 1.0 RC2 z SVN z 7.12.2007
- VP7 Personal Edition 7.0.10.0
- WMV9
- x.264 svn-714 z 27. prosince 2007
- XviD 1.1.3
Ne všechny kodeky ale pracují v YV12, výjimkou je např. VP7, který jede v RGB, což je pro něj určitě výhoda. Dekodér tohoto kodeku dokonce odmítá provést dekompresi do YV12 formátu, takže není to tak jednoduché. Konverze samotná je sice exaktní výpočet, který ale lze provést různými způsoby, jež jsou různě přesné. Lze např. počítat v plovoucí řádové čárce, což je nejpřesnější, ale nejpomalejší, nebo v celých číslech, což je nejrychlejší, ale zase méně přesné. Výpočet pak mohou usnadnit MMX, 3DNow! nebo SSE instrukce, které výpočet urychlují, jde ale také o celočíselné výpočty. Toto v minulém testu pravděpodobně nenahrávalo kodeku Windows Media Video 9, který ukázal velmi špatné výsledky u maximálních rozdílových hodnot.
V našem druhém testu tedy rovněž poskytneme data kodeku v RGB formátu, porovnávat ale budeme v YV12. Vstupní video si převedeme do YV12, dekodér nám poskytne data rovněž v YV12, teprve poté je oba převedeme do RGB a v něm budeme porovnávat. Výjimkou je VP7 kodek, který nám poskytne data v RGB, které si převedeme do YV12 sami. Zbytek bude shodný. Nabízí se otázka, proč nedat kodekům rovnou video v YV12 formátu, ale jak již bylo řečeno, RGB je standard a ne každý kodek podporuje na vstupu YV12.
Metodika testu je jinak shodná, rozdíl bude v použitém videu, což jsme si již řekli. Jak se ukáže, výsledky budou ještě zajímavější než v prvním díle. Možná by stálo za to první test provést ještě jednou s nově nastavenými podmínkami, co myslíte?