Chi segue il mondo delle schede video e, più in generale, il mondo della riproduzione video su personal computer, conosce bene la battaglia che si è combattuta e che si sta ancora oggi combattendo per fare in modo che gran parte del lavoro di decodifica durante la riproduzione video venga affidato alle schede video e non al processore.
Le motivazioni sono le medesime di coloro che vogliono usare la potenza di calcolo delle GPU nel più ampio numero possibile di applicazioni: scaricare il processore di sistema dalle elaborazioni che possono essere potenzialmente eseguite più agevolmente dal processore grafico.
ATI e NVIDIA sono indubbiamente i protagonisti della corsa alla migliore accelerazione video lato hardware e la loro competizione, unita all’enorme esperienza che hanno in questo campo, ha prodotto indubbi risultati. Possiamo, infatti, affermare che contrariamente a quanto accade con alcune piattaforme Intel, sia ATI che NVIDIA offrono un’ottimo supporto all’accelerazione in hardware di svariati formati video, dallo storico MPEG2 e MPEG4 Simple Profile, ai più recenti Windows Media Video 9, MPEG4 Advanced Simple Profile e Advanced Video Coding o H.264.
L’aspetto più interessante dei prodotti dei due maggiori competitors nel campo dei processori grafici (almeno di quelli dedicati al gaming) è che anche nelle loro implementazioni di fascia più bassa o nei chipset integrati, garantiscono comunque un’ottimo supporto alla decodifica video in hardware e una conferma di tale punto di forza arriva dalla piattaforma ION messa a punto da NVIDIA per coniugare la vocazione multimediale dei suoi chipset con i bassi consumi dei processori Atom di Intel.
Gli appassionati sanno bene che quando si parla di accelerazione in hardware di una qualsiasi applicazione sono due le componenti che devono incastrarsi tra loro: supporto lato hardware e lato software. Dal punto di vista hardware sappiamo che esiste un ampio parco di configurazioni in grado di dare il loro apporto, ma quale è la situazione dal punto di vista software?
Esistono diversi codec, anche gratuiti, che consentono di sfruttare l’accelerazione in hardware delle GPU attraverso API come le DirectX Video Acceleration (DXVA) di Microsoft con i formati video più comuni, compreso il blasonato H.264. Tuttavia, trattandosi di codec che si installano sui computer che riproducono i video, è possibile avvalersi delle loro funzionalità solo utilizzando riproduttori multimediali come Windows Media Player, Winamp, Media Player Classic, PowerDVD, ecc…
E chi pensa alla riproduzione video sul web? Osservando la situazione attuale la risposta a questa domanda è “nessuno”. Al momento attuale, infatti, il più importante veicolo dei video in streaming sul web, vale a dire il Flash Player, supporta solo ed esclusivamente l’accelerazione in hardware del video scaling. Tutte le operazioni di compensazione del moto, trasformata iDTC e quant’altro sono, quindi, eseguite dalla CPU e questo è naturalmente un grosso freno alla diffusione dei contenuti multimediali ad alta definizione in video streaming.
A tal proposito si aprono due prospettive. La prima è quella tracciata insieme da Adobe, NVIDIA e Broadcom (e che a mio parere verrà percorsa anche da Microsoft con Silverlight) e consiste nel portare avanti lo sviluppo di una versione futura del flash player che possa avvalersi della decodifica in hardware per la riproduzione di diversi formati video. Tale iniziativa si chiama Open Screen Project e sembrerebbe che una prima versione possa vedere la luce entro la prima metà del 2010.
La seconda via è quella dell’HTML 5. Nella nuova versione del markup language utilizzato per la definizione delle pagine web è prevista, infatti, l’introduzione di un nuovo tag “video” che consentirà di riprodurre video in una pagina web senza l’ausilio di plugin come il Flash Player o il runtime di Silverlight. In quest’ultimo caso saranno, quindi, i browser a doversi sobbarcare l’onere di accelerare in hardware la riproduzione video e a tal proposito durante la definizione dello standard HTML 5 non sono mancate le difficoltà.
Sembra infatti che Apple, Google, Mozilla Foundation e Microsoft non si siano messe d’accordo su quale codec video individuare come standard di riferimento per il web. L’idea iniziale è stata quella di utilizzare il codec opensource Ogg Theora dalla qualità simile ai codec MPEG4 Advanced Simple Profile (ad esempio Xvid e DivX 6), ma anche lo standard H.264 è stato proposto. Purtroppo Apple non ha intenzione di supportare Theora e punta su H.264, Mozilla non supporta H.264 perché non opensource, Google li supporta entrambi in Chrome, ma non può supportare H.264 in Chrominium, la versione opensource di Chrome, mentre Microsoft non ha espresso una sua preferenza (perché probabilmente vorrebbe usare il suo Windows Media Video?).
Il risultato, non ancora definitivo, di questi dissapori è che al momento attuale lo standard HTML 5 non include un formato video di riferimento e si lascia al programmatore la scelta del formato video sottostante (in maniera analoga al tag “img”). Speriamo solo che l’ennesimo scontro tra i big non porti ai risultati disastrosi che abbiamo già visto in altri ambiti come quello dei DVD in formato -R e +R, oppure la più recente battaglia tra Blu Ray e HD DVD. In fin dei conti quello che vogliamo è solo poterci godere video in alta definizione sul web sfruttando al meglio l’hardware a disposizione. Chiederemo forse troppo?