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

19. 12. 2009

Sdílet

 Autor: Redakce

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).

bitcoin_skoleni

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