Riproduzione video e schede video: la verità

La capacità di gestire grafica tridimensionale non è il solo aspetto da valutare in un processore grafico. Una schiera di utenti sempre più folta, infatti, rivolge particolare attenzione anche ad un altro aspetto: la riproduzione video. In questo articolo saggiamo qualità e prestazioni delle più diffuse soluzioni ATI e NVIDIA in questo campo.
di Raffaele Fanizzi pubblicato il 20 Gennaio 2006 nel canale Schede VideoNVIDIAATI
Overlay, VMR e DirectX Video Acceleration
Quando si parla di accelerazione video gli elementi di valutazione sono molto diversi rispetto a quelli che coinvolgono solitamente i test tridimensionali per le schede video. In questo caso, infatti, non abbiamo una serie di vertici poligonali da trasformare, illuminare, proiettare sullo schermo e disegnare con texture ed effetti grafici più o meno complessi, ma un flusso di dati da elaborare per arrivare ad una serie di fotogrammi che compongono il filmato.
Si tratta, quindi, di una problematica da affrontare in maniera differente ed è per questo motivo che fino a non molto tempo fa i processori grafici avevano al loro interno un'unità dedicata allo svolgimento di questa operazione. La crescente programmabilità delle unità di pixel shading delle GPU ha, tuttavia, consentito di soppiantare questa unità e di supportare funzionalità avanzate sfruttando le medesime capacità di calcolo impiegate nella generazione di una scena tridimensionale.
Anche dal punto di vista software esiste un trend evolutivo relativo alla riproduzione video scandito essenzialmente da Microsoft.
La modalità di riproduzione storica è denominata Overlay e consente di definire una determinata regione dello schermo entro la quale visualizzare un flusso di dati video. Questa modalità risulta essere relativamente leggera da sostenere in termini computazionali, escludendo naturalmente i calcoli relativi alla decompressione del formato video riprodotto, ed è supportata da tutti i sistemi operativi Microsoft (attraverso un filtro DirectShow chiamato Overlay Mixer) e da tutte le schede video compatibili con questi.
Con l'avvento di Windows XP Microsoft ha rinnovato il proprio supporto alla riproduzione video introducendo una nuova modalità denominata Video Mixing Renderer (o VMR) e, in particolare, inizialmente è stata prevista la versione 7 attraverso il filtro DirectShow Video Mixing Renderer.
La principale innovazione in questa nuova modalità di riproduzione è nell'uso esclusivo dell'API DirectDraw 7 per generare la superficie video, contro la modalità Overlay che invece da questo punto di vista risultava essere decisamente più caotica creando un mix tra chiamate GDI e chiamate a vecchie versioni del DirectDraw. Tuttavia il VMR 7 non è stato introdotto solo per questioni di robustezza, ma anche per poter avere accesso ad una serie di funzionalità non supportate dalla modalità Overlay come la visualizzazione di più flussi video fusi in alpha blending, la cattura di screenshots, il supporto ad un numero di monitor non limitato dal numero di overlay hardware della scheda video. Inoltre sfruttando il DirectDraw che è un'API accelerata in hardware, la riproduzione attraverso il VMR 7 ha un accesso più immediato alle funzionalità di accelerazione video in hardware. In generale, quindi, la modalità Video Mixing Renderer risulta essere più moderna e più adatta a sfruttare le capacità della scheda video per la riproduzione video.
Una ulteriore evoluzione da parte di Microsoft è arrivata con l'introduzione delle DirectX 9 e di Windows XP con Service Pack 2. In questa occasione è nata la modalità Video Mixing Renderer 9. Come è possibile immaginare, questa nuova modalità, invece di basarsi sull'API DirectDraw 7, si poggia interamente sul Direct 3D 9. Ciò comporta una serie di benefici: innanzitutto è possibile integrare al meglio la riproduzione video all'interno dei videogames, ma l'aspetto più interessante consiste nel poter accedere direttamente alle potenzialità delle unità di pixel shading del processore grafico. E' garantito, inoltre, anche un miglior approccio al problema del deinterlacciamento.
Naturalmente tali innovazioni non sono prive di controindicazioni: la modalità VMR 7 è disponibile solo sui sistemi operativi Microsoft Windows XP Home Edition, Windows XP Professional, Windows Server 2003 e Windows Media Center, mentre VMR 9 è supportata da tutti i sistemi operativi provvisti di DirectX 9. Inoltre è necessaria la capacità di gestire texture “non power of 2” , cioè le cui dimensioni in altezza ed ampiezza non debbano essere necessariamente potenza di due, così come almeno 16 MB di memoria video (requisito minimo, ma che dipende molto dalla risoluzione e dal formato del video riprodotto), e naturalmente il supporto all'API DirectX Video Acceleration (normalmente abbreviata in DXVA). La totalità di questi elementi rende i requisiti di sistema per l'uso della modalità VMR leggermente più onerosi rispetto alla modalità Overlay.
Con il nome DirectX Video Acceleration si indica un'API sviluppata da Microsoft con l'intento di organizzare tutti i processi legati alla riproduzione video in una serie di fasi espresse in macroblocchi. Ogni blocco raggrupperà una serie di operazioni che, a seconda delle capacità dell'hardware grafico, potranno essere eseguite dal processore grafico o dal processore di sistema. E' bene chiarire che, benché DXVA si sposi perfettamente con la modalità VMR per le ragioni spiegate precedentemente, è pienamente supportata anche in modalità Overlay. E' quindi possibile sfruttare l'accelerazione hardware della scheda video sia in modalità Overlay, che in modalità VMR, a patto che sia i driver della GPU, che il software di riproduzione, supporti il tutto.