L’arrivo delle nuove CPU Intel Sandy Bridge ha creato un certo entusiasmo attorno a diversi temi grazie, quasi esclusivamente, alle caratteristiche ed alle performance del controller grafico integrato on chip . Un processore Core di seconda generazione è infatti in grado di fare molto bene sfruttando la potenza combinata di CPU e GPU, garantendo al contempo consumi relativamente limitati.
La presenza di un core grafico in un sempre crescente numero di modelli di processore (AMD con le APU ed Intel con Sandy Bridge, per ora) fa sì che quello GPGPU resti un argomento di scottante attualità. E quando si parla di General Purpose Computing abbinato ai chip grafici, le prime applicazioni che vengono in mente sono quelle che ruotano attorno al settore della transcodifica video . Forse non tanto perché sia l’utente a fare simili richieste, quanto perché sono i produttori stessi a sottolinearne continuamente i vantaggi.
Tornando con la mente al passato recente quando NVIDIA, pioniera in questo senso, svelò al mercato l’esistenza di CUDA, uno dei primi software commerciali che si affacciavano sulla scena portava il nome di Badaboom . Uno strumento per la transcodifica video che permette di sfruttare la potenza di calcolo delle GPU NVIDIA per trasformare un flusso video da un formato all’altro.
Il processo di transcodifica
In realtà il processo di trasformazione dei flussi video , sia nelle fasi di codifica che decodifica, è stato sempre a cuore dei tre principali produttori di schede grafiche. Intel, NVIDIA ed AMD, facendo forza sulle estreme doti di potenza di calcolo parallelo delle rispettive soluzioni, hanno dapprima pensato di integrare moduli che potessero accelerare la decodifica, incaricando la VGA di svolgere nuovi compiti del processo stesso ad ogni nuova revisione rilasciata sul mercato. Alla logica di General Purpose , che man mano è stata migliorata, sono stati invece lasciati i compiti di codifica.
Ci teniamo a precisare che, nonostante i seri sforzi, il processo di transcodifica video non può essere reso completamente parallelo. Ci sono delle operazioni, come quelle di entropy encoding , sintax encoding , entropy decoding e sintax decoding , che vanno eseguite nella maniera tradizionale seriale e dunque devono essere assegnate alla CPU.
Per accelerare le operazioni di codifica video, AMD e NVIDIA si rifanno alle loro rispettive tecnologie proprietarie APP e CUDA . Intel passa invece per Quick Sync Video che utilizza blocchi funzionali del core grafico integrato nelle CPU Sandy Bridge, per accelerare via hardware tutte le operazioni necessarie al processo di transcodifica video. Purtroppo questo garantisce il funzionamento di tale tecnologia solo con le schede madri con chipset H67 e solo se si sta effettivamente utilizzando il core grafico integrato in Sandy Bridge: sarebbe stato molto più interessante avere sempre a disposizione la stessa tecnologia anche nel caso di utilizzo di una scheda grafica discreta (probabilmente tale possibilità verrà offerta con l’introduzione dei prossimi chipset Z68 ).
Le funzioni del processo di transcodifica video possono essere riassunte in tre blocchi principali: la decodifica del flusso dal formato nativo, la fase di preprocessing e poi la codifica nel nuovo formato richiesto dall’utente.
Implementazione Intel Quick Sync Video
Con Sandy Bridge Intel ha introdotto il supporto via hardware per tutte le fasi di elaborazione video garantendo così, almeno sulla carta, maggiori prestazioni ed efficienza. Con APP e CUDA, il processo risulta sulla carta meno efficiente in quanto deve necessariamente essere eseguito sulla CPU e sulla GPU e deve prevedere uno scambio di dati e comandi fra le due entità. In generale la CPU prende in carico il flusso video e lo invia alla GPU ordinando di eseguire la decodifica. Il risultato viene poi rimandato alla CPU che eventualmente esegue le operazioni di preprocessing e poi lo prepara nuovamente per la GPU che esegue il processo di codifica. Questo scambio di dati non è necessario nel caso di Sandy Bridge grazie alla presenza di un modulo completamente dedicato e della cache L3 condivisa per lo scambio dei dati.
In ogni caso è sempre necessario che, chi sviluppa un software di transcodifica, lo scriva appositamente per ognuna di queste tecnologie. Di certo non si tratta della situazione ideale, tanto che più volte abbiamo auspicato si facesse riferimento agli standard esistenti (leggasi Direct Compute 11 ) in modo da semplificare la vita tanto agli sviluppatori quanto agli utenti finali. Per poter valutare correttamente l’impatto delle tecnologie appena citate nelle operazioni di transcodifica video ci siamo serviti di un certo numero di file video sorgenti che sono stati trasformati in altrettanti flussi video di differente formato utilizzando più piattaforme e più strumenti software. Guardiamo singolarmente le caratteristiche dei file sorgenti, le configurazioni hardware e gli strumenti software a nostra disposizione.
File sorgenti utilizzati per le prove
Video 720P H.264
- Formato: MPEG-4 profilo QuickTime
- Formato video: AVC profilo Baseline@L3.1
- Dimensioni del file: 381 MB
- Durata: 5 minuti
- Bitrate: 10,6 Mbps
- Risoluzione: 1.280 x 720 pixel, 16:9
- Audio: AAC con BitRate pari a 64 Kbps
Video 1080i MPEG 2
- Formato: MPEG-PS
- Formato video: MPEG 2
- Dimensioni del file: 449 MB
- Durata: 4 minuti
- Bitrate: 15,7 Mbps
- Risoluzione: 1.920 x 1.080 pixel, 16:9
- Audio: AC-3 con BitRate pari a 384 Kbps
DVD Codice Swordfish
- Formato: DVD Video
- Formato video: MPEG 2
- Bitrate: VBR
- Risoluzione: 720 x 576 pixel, 16:9
- Audio: AC-3 6 canali
Configurazioni di prova
Configurazioni di prova
Programmi software
- Arcsoft Media Converter 7 : permette di effettuare la conversione fra più formati video in maniera davvero semplice e garantisce supporto a tutte le ultime tecnologie in fatto di accelerazione GPGPU come NVIDIA CUDA, AMD APP ed Intel Quick Sync.
- Cyberlink Media Espresso : anche in questo caso ci troviamo di fronte ad un software che rende molto semplici le operazioni di transcodifica. Media Espresso permette di gestire due modalità di conversione con Quick Sync (Qualità Migliore e Conversione Rapida) e decidere se accelerare via hardware le fasi di codifica e decodifica o una sola di esse.
Effettuiamo una prima valutazione quantitativa della potenza degli algoritmi di transcodifica guardando ai tempi impiegati dal sistema desktop e confrontando i risultati ottenuti sfruttando le GPU Intel, AMD e NVIDIA rispetto al caso di utilizzo della sola CPU.
Arcsoft Media Converter 7
Media Converter 7: MPEG2 -> iPad. Tempi di esecuzione (inferiore è meglio)
Nella conversione di un file MPEG2 in formato adatto al tablet Apple iPad (3GPP AVC) notiamo che le maggiori performance sono quelle offerte dalla tecnologia AMD APP integrata nella scheda grafica Radeon HD 5850. Rispetto ai tempi di codifica software si risparmia circa il 30 per cento. Gli algoritmi Intel Quick Sync e NVIDIA CUDA implementati in Media Converter 7 non sembrano sortire effetti ottenendo tempi solo leggermente migliori rispetto alla codifica software.
Media Converter 7: H.264 -> Xbox 360. Tempi di esecuzione (inferiore è meglio)
Situazione completamente rovesciata nel caso in cui la transcodifica avviene dallo spezzone di video H.264 in un formato digeribile dalle console Microsoft Xbox 360 (3GPP AVC). Questa volta, infatti, i tempi minori sono da imputare alla codifica software effettuata mediante la sola CPU. Attivando la modalità Quick Sync si ottengono gli stessi tempi mentre sfruttando la codifica mediante NVIDIA CUDA o AMD APP le operazioni si allungano notevolmente.
Media Converter 7: DVD -> WMV. Tempi di esecuzione (inferiore è meglio)
Media Converter 7: DVD -> iPad. Tempi di esecuzione (inferiore è meglio)
Se come sorgente prendiamo in considerazione un intero DVD MPEG2 per convertirlo in formato WMP o AVC ci rendiamo conto che i tempi di transcodifica restano circa gli stessi in tutti i casi. Stavolta risulta controproducente utilizzare la tecnologia NVIDIA CUDA che, nella conversione per iPad, impiega un tempo leggermente superiore. Il software Media Converter 7 purtroppo non offre le opzioni per eseguire le suddette operazioni sfruttando la tecnologia CUDA nel primo caso e quella Quick Sync nel secondo.
Cyberlink Media Espresso
Media Espresso: MPEG2 -> Youtube. Tempi di esecuzione (inferiore è meglio)
Anche cambiando software di transcodifica siamo costretti a spiegare una situazione dai risvolti differenti. Nel caso di transcodifica di un video MPEG2 in formato per Youtube (MPEG4) l’applicazione della tecnologia AMD APP crea un importante allungamento dei tempi rispetto al solo utilizzo della CPU (software). Da bocciare. Attivando invece la tecnologia NVIDIA CUDA si riesce ad ottenere un piccolo guadagno mentre è la soluzione firmata Intel ad avere la meglio. Se lasciamo attivata la casella Qualità Migliore allora il risparmio in termini di tempo è pari a ben il 50 per cento per raggiungere addirittura un 75 per cento nel caso di Conversione Rapida .
Media Espresso: H.264 -> PS3. Tempi di esecuzione (inferiore è meglio)
La situazione appena descritta è applicabile anche al caso in cui stiamo trasformando un video H.264 in uno in formato adatto alla console Sony Playstation 3 (MPEG-TS). Spostiamoci ora su sistemi che non dispongono di processori molto potenti come invece lo è il modello Core i7-2600K quad-core incluso nella nostra configurazione desktop. I due nettop che useremo per eseguire queste ulteriori prove, infatti, prevedono una CPU low-cost dual core, Atom D510 in un caso e AMD E-350 nell’altro.
Arcsoft Media Converter 7
Media Converter 7: MPEG2 -> iPad. Tempi di esecuzione (inferiore è meglio)
La conversione del solito video MPEG2 in formato per Apple iPad (3GPP AVC) mostra una sostanziale parità nei tempi impiegati dalle due piattaforme via software (utilizzando dunque solo la potenza della CPU). La tecnologia APP del core grafico integrato Radeon HD 6310 risulta essere però notevolmente superiore a quella CUDA della GPU Ion 2 che addirittura causa un peggioramento dei tempi. Da evitare!
Media Converter 7: H.264 -> Xbox 360. Tempi di esecuzione (inferiore è meglio)
Passando alla conversione da H.264 ad un formato per Xbox 360 la situazione non muta. Le prestazioni delle due CPU (software) rimangono quasi le stesse con un lieve vantaggio della piattaforma Intel Atom mentre CUDA e APP sono agli antipodi: la prima con un peggioramento di un minuto circa e la seconda con un miglioramento dei tempi superiore ai 3 minuti.
Media Converter 7: DVD -> WMV. Tempi di esecuzione (inferiore è meglio)
Media Converter 7: DVD -> iPad. Tempi di esecuzione (inferiore è meglio)
Nel caso di conversione da DVD verso formati WMV e AVC (iPad), viene ricalcato lo scenario già visto con il sistema desktop: sostanziale parità fra i casi di transcodifica software e hardware ma ovviamente tempi decisamente più lunghi. Unica eccezione l’esecuzione mediante NVIDIA CUDA della conversione da DVD verso iPad che mostra un tempo superiore rispetto alle altre situazioni.
Cyberlink Media Espresso
Media Espresso: MPEG2 -> Youtube. Tempi di esecuzione (inferiore è meglio)
Anche Media Espresso continua a bocciare l’implementazione che passa per la tecnologia NVIDIA CUDA premiando invece quella APP presente nella GPU della APU AMD E-350.
Media Converter 7: H.264 -> PS3. Tempi di esecuzione (inferiore è meglio)
Finalmente troviamo anche un caso favorevole alla piattaforma del camaleonte verde: nelle operazioni di transcodifica da formato H.264 a formato MPEG-TS per Playstation 3, i tempi registrati sono molto simili e pari a circa 30 minuti tranne nel caso in cui la gestione sia fatta tramite Ion 2 che riesce a dimezzare i tempi. La fretta non è buona consigliera, e questa è cosa nota. Ma le operazioni di transcodifica fatte velocemente possono essere considerate frettolose oppure efficienti? Per capirlo siamo “costretti” ad analizzare la qualità dei file video prodotti dai diversi processi di transcodifica.
Possiamo considerare come riferimento la qualità del risultato della transcodifica software e verificare se quelle fatte via hardware (sia per la fase di decodifica che di codifica) sono simili. Non analizzeremo tutti i casi ma cercheremo di prendere quelli più significativi.
Destkop – Arcsoft Media Converter 7
Cominciamo con l’analizzare la diversa qualità dei risultati ottenuti con le operazioni di transcodifica software effettuate sul sistema desktop.
L’uscita dal software Arcsoft Media Converter 7 mostra una qualità video notevolmente diversa a seconda di quale algoritmo venga utilizzato. La tecnologia Quick Sync di Intel è quella che mostra un risultato il più simile a quanto ottenuto con codifica software. Effettuando la stessa operazione mediante la tecnologia AMD APP il risultato è davvero scadente (forte pixellatura) mentre vanno meglio le cose passando per CUDA anche se ci si discosta lo stesso dall’originale (colori meno vividi).
Riepilogo risultati ottenuti con sistema desktop e Arcsoft Media Converter 7
Dal sunto della situazione possiamo vedere come la pessima qualità dell’algoritmo basato su AMD APP implementato da Arcsoft viene compensata da tempi di transcodifica più rapidi e da una dimensione del file molto inferiore rispetto alle altre.
Desktop – Cyberlink Media Espresso
Utilizzando gli algoritmi implementati in Cyberlink Media Espresso la situazione cambia radicalmente. Le differenze continuano a persistere ma stavolta sono molto meno marcate. Rispetto all’immagine di riferimento (software) la tecnologia Quick Sync di Intel denota solo un leggero decadimento della qualità e solo in modalità Conversione Rapida (CR) . Gli algoritmi CUDA e APP non riescono a produrre un risultato fedele a quello software con la seconda che mostra di essere ancora una volta la peggiore, ma le differenze sono molto meno marcate rispetto a quanto osservato in precedenza.
Riepilogo risultati ottenuti con sistema desktop e Cyberlink Media Espresso
Volendo riassumere questa nuova situazione, possiamo notare come la dimensione del file di uscita sia più o meno la stessa in tutti i casi tranne che in quello di Conversione Rapida con Quick Sync. I tempi impiegati invece variano molto premiando la tecnologia Intel (stavolta la scelta più azzeccata potrebbe essere quella basata su Intel Quick Sync con impostazione Qualità Migliore).
Nettop – Arcsoft Media Converter 7
Come accaduto nel caso desktop, il software Arcsoft Media Converter 7 continua ad andare poco d’accordo con la tecnologia APP di AMD. Sfruttando tale algoritmo, infatti, si ottiene un video di pessima qualità rispetto a quanto si vede in altri casi. Il confronto fra le due codifiche software, effettuate mediante la APU E-350 o la CPU Atom D510, non mostra alcuna differenza mentre notiamo una maggiore “durezza” delle ombre nella transcodifica effettuata mediante NVIDIA CUDA.
Riepilogo risultati ottenuti con sistema nettop e Arcsoft Media Converter 7
Anche stavolta un rapido sguardo alla tabella riepilogativa mostra come il peggioramento della qualità video in uscita dall’algoritmo AMD APP sia compensato da una minore dimensione del file e da tempi ridotti. Al contrario, l’algoritmo NVIDIA CUDA crea un file di dimensioni quasi doppie rispetto a quello ottenuto dalla transcodifica software.
Nettop – Cyberlink Media Espresso
Il tool Cyberlink Media Espresso implementa sicuramente algoritmi migliori per la transcodifica con tecnologie GPGPU. Le differenze che notiamo rispetto alla situazione software sono infatti molto meno marcate, come d’altro canto avevamo già visto anche nel caso desktop. Purtroppo ad uscirne peggio è sempre l’implementazione basata su AMD APP ma anche nel caso di CUDA non siamo ancora vicini alla perfezione.
Riepilogo risultati ottenuti con sistema nettop e Arcsoft Media Converter 7
Ancora una volta, tirando le somme l’operazione di transcodifica mediante CPU risulta essere quella tutto sommato più accettabile per tempi, dimensioni e qualità del file di uscita. Ormai da tempo NVIDIA, seguita a ruota da AMD, pubblicizza la sua tecnologia CUDA grazie alla quale sarebbe possibile eseguire determinati compiti in tempi molto più brevi rispetto a quelli necessari ad una tradizionale CPU, sfruttando i chip grafici della famiglia GeForce. L’implementazione APP di AMD si basa sugli stessi concetti e, almeno sulla carta, offre identici vantaggi sfruttando, però, i chip grafici Radeon.
Abbiamo moltissimi esempi di campi dove tecnologie capaci di lavorare in maniera massicciamente parallela riescono a fare in pochi minuti cose per le quali potrebbero essere necessari giorni se non mesi. Ma come vanno le cose nel caso della decodifica e codifica video? Questo è un settore in cui non tutte le fasi del doppio processo possono essere eseguite in parallelo, e perciò non si può richiedere la massima efficienza assegnando il compito ad una GPU.
Ora che anche Intel è della partita, però, si è reso necessario fare delle prove per scoprire quando e come queste piattaforme possono essere utili all’utente finale. Pur non potendo abbracciare la totalità dei casi, dalle prove effettuate abbiamo capito che le operazioni di transcodifica video necessitano di un mix di tecnologie che possono interagire in maniera diversa a seconda di numerosi fattori.
Per scendere nel concreto, i risultati che abbiamo ottenuto sono influenzati dal software utilizzato, dall’implementazione al suo interno dei singoli algoritmi di codifica e decodifica e da quanto efficientemente essi sfruttano le tecnologie a disposizione, dalla piattaforma GPGPU considerata e, non ultimo, dal singolo componente hardware (processore e/o chip grafico).
Variando l’intervento di ognuno dei suddetti fattori in maniera più o meno importante all’interno del processo di transcodifica si ottengono talvolta risultati completamente diversi: tempi più lunghi o più corti, file di dimensioni superiore ma con qualità peggiore o viceversa, ed in alcuni casi qualità video assolutamente inaccettabile.
Restando all’interno delle condizioni di test da noi simulate con i soli due applicativi software Arcsoft Media Converter 7 e Cyberlink Media Espresso (ci sono numerosi tool di conversione video che probabilmente sfruttano meglio o peggio le piattaforme GPGPU), possiamo affermare che chi fa meglio di tutti il proprio lavoro è la tecnologia Intel Quick Sync : la qualità finale resta molto vicina a quella che si otterrebbe con un tradizionale processo di transcodifica software, mentre i tempi sono quasi sempre inferiori (o nel peggiore dei casi non superiori) a quelli ottenuti con l’utilizzo della sola CPU.
Dal confronto delle due tecnologie rivali APP e CUDA nasce una duplice situazione: dobbiamo premiare la seconda per la qualità della conversione, e la prima per la velocità di esecuzione. Per essere corretti, però, dovremmo premiare o bocciare, non le due piattaforme AMD e NVIDIA bensì gli algoritmi che le software house hanno scritto. In soldoni, se volete utilizzare la tecnologia AMD APP, lasciate perdere il software Arcsoft Media Converter 7 che funziona bene solo con Quick Sync e CUDA e scordatevi di ottenere vantaggi tangibili nella velocità di esecuzione con Media Espresso.