CoreAVC 2.0 – dekódování videa pomocí CUDA

19. 12. 2009

Sdílet

Ilustrační obrázek Autor: loriklaszlo – Depositphotos
Ilustrační obrázek

Bystří fanoušci digitálního videa už možná dávno vědí, že dekódování grafickou kartou (ve světě Windows) nemusí probíhat jen skrz běžné rozhraní DXVA, ale tento rok přibyl nový způsob – Nvidia CUDA. Jeden z nejpokročilejších softwarových dekodérů CoreAVC letos všechny překvapil, když od začátku roku slíboval GPU akceleraci a vybral si nakonec méně rozšířené API CUDA. Funguje tedy pouze na kartách Nvidia, ale nemůžeme mluvit o záměrné odstřihnutí konkurečních karet, protože CoreAVC je stále jeden z nejlepších softwarových (pomocí CPU) dekodérů. Ostatně nechci se opakovat a raději si přečtěte předchozí bleskovky o CoreAVC 1.9.0 a CoreAVC 1.9.5. Snad jen připomenu, že AVC v názvu značí, že se jedná pouze o dekodér formátu MPEG-4 AVC (H.264).

A aby nedošlo k omylům. CUDA v celém řetězci dekódování má zřejmě úlohu stejnou jako ono DVXA. Slouží pouze pro přístup ke specializovaným obvodům v GPU (v případě GeForce je to VP2/VP3/VP4). Ne tedy k dekódování za pomocí stream procesorů (CUDA jednotek). Vývojáři CoreCodec se o tom sice nezmiňují, ale nasvědčuje tomu několik indicií.

  • mezi podporovanými kartami jsou všechny GeForce 8 a novější mimo ty s čipem G80 (ty totiž nemají ani VP2)
  • u náročnějšího obsahu rychlejší GPU neškálují (testováno na více přehrávaných souborech současně nebo třeba supernáročného High@L5.1 s rozlišením 2160p, které se přepne na CPU dekódování)
  • spotřeba sestavy je zhruba stejná jako u DXVA
Výhoda CUDA je tak v lepších možnostech oproti DXVA. Ve Windows XP jste v DXVA1 omezeni počtem referenčních snímků videa (13?), ve Vista/7 už DXVA2 zvládne i maximálních 16 u H.264. Ale obecně pro DXVA platí, že si nemůžete vybrat libovolný renderer videa nebo titulkový filtr (třeb VobSub), který není na renderer napojený přímo, ale stojí v cestě mezi filtrem pro dekódování videa a filtrem s rendererem. Taková akcelerace s DXVA není možná a proto se třeba v oblíbeném MPC HC používá pro výstup s titulkama EVR Custom nebo VMR7/9 Renderless.

Dnes vyšel CoreAVC 2.0. Konečně. Původní plány počítaly s vydáním zároveň s Windows 7, ale tvůrci se nakonec přes dva měsíce vymlouvali na nedostatečnou kvalitu a vylepšovali/opravovali až zřejmě do včerejška (podle data v changelogu 20091218). Čekání se ale vyplatilo, seznam změn (changelog zde) je opravdu dlouhý.

Jen namátkou: optimalizace všech generací instrukcí MMX i SSE, přidána podpora 64bitových procesorů, nově může dekódovat až 16 jader CPU, s tím souvisí i zvýšené maximální možné rozlišení na QuadHD (4096 × 4096 px). Rychlejší je i deblocking, Motion Compensation i CAVLC/CABAC dekódování, přidána podpora mobilních procesorů ARM Cortex A8 (iPhone a další smart přístroje).

Příjemná je i cena. Předchozí verze stály 15 dolarů, CoreAVC 2.0 je za 12,95 a do Vánoc navíc s akcí – slevou 3 dolary (celkem tedy 9,95). Ti, kteří si koupili starší verzi 1.9.5 maximálně 60 dní od vydání 2.0, mají nárok na update zdarma, majitelé starších licencí dostanou e-mail s nabídkou výhodného přechodu za 4,95 dolarů. Zkušební trial zatím bohužel není dostupný.

S CoreAVC 2.0 přímo souvisí i nový Haali Media Splitter (také od tvůrců CoreCodec), který by měl být schopný přebrat prioritu systémovým filtrům z Windows Vista/7 a CoreAVC 2.0 bude možné používat i ve WMP12 a Media Centeru. To tady zatím nebylo. Haali Media Splitter je navíc i součástí instalace CoreAVC, stejně jako 64b verze dekodéru.

Autor článku

Kvíz týdne

Tyto konektory zná každý. Ale víte, co jejich zkratky doopravdy znamenají?
1/9 otázek