07/07/2009 di Redazione

Video con CUDA e Badaboom, scelta della scheda grafica

Convertire video per iPhone e PSP non è mai stato così veloce.

immagine.jpg

Introduzione

La proliferazione dei dispositivi portatili, in grado di riprodurre musica e video, aumenta la necessità di trovare un metodo veloce e affidabile con cui adattare la propria collezione di film e video ai nuovi supporti.

Il processo di trasformazione di un film DVD o un video, nel formato supportato da una determinata console portatile o uno smartphone, implica due principali barriere: la conoscenza tecnica dei codec AV (formati, bit-rate, risoluzioni, etc) e il tempo necessario per la transcodifica.

Grazie a una massiccia semplificazione dei software, la prima barriera è stata sorpassata. Con molti programmi è ora necessario solo identificare il file da "adattare", e scegliere il supporto finale (PSP, iPhone, iPod, etc), per avviare la transcodifica, senza dover conoscere il formato o altri dati tecnici.

Per quanto riguarda il fattore tempo, se vi avvicinate per la prima volta a questo settore, dovete sapere che la transcodifica audio/video è uno dei lavori più complicati che un PC deve gestire. Tutti i calcoli necessari sono gestiti dalla CPU che, in base alla codifica e dimensione del filmato, può impiegare anche diverse ore per transcodificare un video. Inoltre, in questo lasso di tempo la CPU rimarrà impegnata al massimo delle sue possibilità, rendendo di fatto il PC inutilizzabile per altre attività.

La potenza delle CPU moderne accorcia i tempi di transcodifica, mentre le soluzioni multi-core permettono di effettuare altri lavori mentre il software dedicato tratta il video. Tuttavia, per molti utenti, i tempi necessari sono ancora inaccettabili, specialmente se trattano video molto grandi o molti filmati.

Badaboom!

Abbiamo già parlato di CUDA, la soluzione Nvidia che permette di trasferire i calcoli richiesti da alcuni software sulla GPU, sgravando la CPU dal lavoro. Le GPU moderne sono altamente parallele, e costituite da molti core - fino a 240 sul chip GT200 - in grado di effettuare molti calcoli paralleli, massimizzando le prestazioni e tagliando i tempi necessari per ultimare un lavoro.

Uno dei software di transcodifica video, sviluppati unicamente per funzionare con CUDA, è Badaboom, di Elemental Technology.

Nell'articolo Test Nvidia CUDA, la scheda grafica batte la CPU, abbiamo provato alcuni software ottimizzati per CUDA, tra cui Badaboom, rilevando interessanti incrementi prestazionali quando si mette al confronto una CPU con una GPU: potete aspettarvi un'accelerazione di almeno il 30% passando dalla CPU alla GPU.

Per quest'articolo, vogliamo dare uno sguardo più da vicino a Badaboom. Mostreremo la facilità d'uso del software, così da convincere anche i più scettici che vantaggiarsi di CUDA per la transcodifica video è molto semplice. Metteremo poi a confronto le differenze prestazionali riscontrate tra schede grafiche di differenti generazioni e fasce di prezzo. Infine, vi daremo un'idea generale del tempo necessario per la transcodifica di differenti file video, per vari supporti.

Questioni tecniche

Badaboom utilizza CUDA per transcodificare video, da molte fonti, in formato H.264 compatibile con i lettori multimediali più diffusi. Ovviamente, essendo una tecnologia Nvidia, funzionerà solo schede grafiche Nvidia, a partire dalla serie GeForce 8.

I file video di input accettati sono: MPEG2, H.264, RAW, HDV, AVCHD, MPEG1, VC-1, DivX, Xvid, WMV, FRAPS. Quelli audio: MP2, PCM, AAC, Dolby Digital. Sono supportati anche vari contenitori: M2V, MPG, VOB, AVI, TRP, M2T, M2TS, MPEG, MTS, TS, MKV, WMV, MOV, MP4.

Per quanto riguarda l'output, come abbiamo detto, Badaboom crea file MP4, basati su codifica H.264, dalla risoluzione massima di 1920x1080 pixel.


Logo Badaboom

Dall'iPhone a quello che vuoi tu

La conversione video è ottimizzata per i seguenti dispositivi:

  • iPod nano e Classic: 320 x 240
  • iPod Touch e iPhone: 480 x 320
  • Apple TV: 960 x 540
  • Xbox 360: 1280 x 720
  • Sony Playstation 3: 1280 x 720
  • Sony PSP: 480 x 272
  • Microsoft Zune: 320 x 240
  • YouTube: 640 x 360
  • Blackberry Bold: 480 x 320

É possibile comunque modificare a piacimento i parametri di codifica, per una risoluzione massima in uscita di 1920x1080 pixel.

Impariamo a usare Badaboom

Dalla versione 1.2, Badaboom è disponibile anche in lingua italiana. Potete scaricare la versione Trial del software dal sito http://www.badaboomit.com/, che vi permette di effettuare, gratuitamente, 30 transcodifiche, dopodiché dovrete acquistare la licenza al prezzo di 20 euro circa (21.46 euro per la precisione).


Badaboom, schermata principale - Clicca sull'immagine per ingrandirla

La schermata principale del software è molto intuitiva. La finestra è divisa in tre aree; sulla sinistra, c'è la fonte, la posizione dove è presente il filmato da transcodificare. Sulla destra l'output, cioè il dispositivo su cui poi caricheremo il nuovo filmato codificato per la visione. Al centro ci sono i parametri di controllo del processo di transcodifica.

Scegliamo il file

Dalla colonna di sinistra, scegliamo la posizione in cui è presente il file da trasformare. Possiamo selezionare un filmato memorizzato all'interno dell'hard disk, o in un supporto esterno - chiavetta USB, Hard disk esterno, etc (è sempre meglio far partire la decodifica dall'hard disk, quindi, nel caso, copiate il contenuto sull'hard disk di sistema) - cliccando sull'icona a forma di cartella. Se abbiamo una collezione di file VOB (per esempio un DVD rippato sull'hard disk), possiamo selezionare la cartella VIDEO_TS. Se invece, all'interno del lettore ottico, avete inserito un DVD video, potete avviare la transcodifica attingendoci direttamente.

Scegliamo l'output

Dopo aver scelto il file da transcodificare, scegliamo dalla colonna di destra il formato in uscita. Qui la scelta è molto semplice se volete riprodurre il film su uno dei dispositivi pre-configurati in Badaboom (PSP, iPhone, etc), mentre se avete le necessità di una risoluzione prestabilita, dovrete optare per l'ultima opzione. In questo caso, molto probabilmente sarete già abbastanza esperti, quindi non perdiamo ulteriore tempo su questa opzione.


Badaboom, le periferiche di destinazione della transcofica.

Impariamo a usare Badaboom, continua

Le opzioni di modifica

Nella finestra centrale viene mostrato il video in anteprima, mentre uno slide superiore permette di cambiare il rapporto dimensione file/qualità.

Cliccando sul bottone "avanzate", appariranno quattro TAB: decodificatore video, codificatore video, impostazioni immagine, impostazioni audio. Inoltre, sarà possibile scegliere la cartella di destinazione dell'output, il nome del file finale, se aggiungerlo automaticamente alla lista di iTunes (per facilitare il trasferimento file con i prodotti compatibili) e la GPU che si dovrà occupare della codifica, nel caso sia installata una scheda dual-gpu o più schede. In questo caso, potrete avviare più istanze di Badaboom, selezionare una GPU differente per ogni istanza, e avviare più transcodifiche in contemporanea.

Decodificatore video: da questa schermata è possibile scegliere se decodificare l'intero video o solo una parte.


Badaboom, TAB decodificatore video - Clicca sull'immagine per ingrandirla.

Codificatore video: qui sono raggruppate tutte le opzioni per la codifica, come il controllo VBR o fisso del bitrate, il livello qualitativo, la dimensione del file, etc.


Badaboom, TAB codificatore video - Clicca sull'immagine per ingrandirla.

Impostazione immagine: qui potete scegliere la risoluzione finale del video, le proporzioni (se mantenerle inalterate o far si che occupino tutto lo spazio dello schermo) e il deinterlacciamento.


Badaboom, TAB impostazione immagine - Clicca sull'immagine per ingrandirla.

Impostazioni audio: da questo menù, ovviamente, regolerete i parametri dell'audio. Potrete trasformare un audio multicanale in stereo o mono e scegliere il livello qualitativo.


Badaboom, TAB impostazione audio - Clicca sull'immagine per ingrandirla.

Si tratta di opzioni avanzate, che nella maggior parte dei casi potranno essere lasciate inalterate. Il software, in base al file video selezionato e la destinazione, imposta tutti i parametri in automatico, prediligendo il miglior rapporto qualità/dimensioni finali, sia per quanto riguarda l'audio che il video.

Pronti, via!

Dopo aver scelto la fonte e il dispositivo di output, basterà cliccare su "Avvia", nella barra inferiore, per iniziare la transcodifica. Durante il lavoro, il filmato verrà visualizzato nella schermata centrale. A lavoro ultimato, verrà salvato nella directory scelta o, nel caso abbiate lasciato il parametro di default, nella cartella Video di Windows.

Formati personalizzati

È possibile definire ulteriori formati personalizzati, modificando, tramite un editor di testo, il file "defaults.xml" - sul sito www.badaboomit.com potrete trovare nuove configurazioni scaricabili.

La procedura non è molto complicata, anche se dovrete conoscere il significato di alcuni parametri. Riassumendo velocemente la procedura, dovrete aprire il file "defaults.xml" e copiare e incollare uno dei formati esistenti da “<OUTPUT Name” e fino a “AudioBitRate=”128” />”. Questo è un esempio del codice:

<OUTPUT Name="iPhone" Icon="Graphics/iPhone-icon.png" Bitmap="Graphics/iPhone-large.png" Window="72, 14, 280, 194" MinimalBitmap="Graphics/iPhone-small.png" MinimalWindow="23, 5, 82, 56" AppleDevice="True" MinVideoBitRate="500000" MaxVideoBitRate="2500000" MinAudioBitRate="16000" MaxAudioBitRate="160000" DecodeCodec="Auto" NumOfFrames="0" EncodeProfile="Auto" CabecEnable="False" EncodeLevel="Auto" VariableBitRateEnable="True" VideoBitRate="1500000" ConstBitRate="Medium" AutoKeyFrameEnable="True" KeyFrameInterval="0" SizeRes="480x320" AspectRatio="Fill Screen" FilmModeDetect="Auto" AudioMix="Auto" AudioBitRate="128" />

Successivamente procederete nel variare i parametri necessari. Siccome si tratta, in poche parole, di aggiungere una nuova icona tra i dispositivi di output, per accedere velocemente alla transcodifica per un determinato formato non presente nella lista, i parametri veramente necessari da variare sono pochi: aspect ratio, risoluzione, bit rate audio, e poco altro.

Questo procedura è utile, comunque, nel momento in cui dovrete effettuare molte transcodifiche in una risoluzione particolare, non presente di default, e non volete ogni volta cambiare manualmente i parametri.

Per gli interessati, la spiegazione del significato di tutti i parametri è presente nella guida di Badaboom.

Schede grafiche utilizzate

Ora passiamo all'analisi tecnica. Come abbiamo mostrato nell'articolo Test Nvidia CUDA, la scheda grafica batte la CPU , il guadagno di velocità, rispetto a software tradizionali, è indiscusso. Ora vogliamo ampliare lo studio del nostro articolo precedente, dove mettevamo a confronto le prestazioni ottenibili con una scheda 9600 GT rispetto a una 9800 GTX, aggiungendo al lotto altre sei schede grafiche, e usando una piattaforma moderna basata su Intel Core i7 920.

Abbiamo quindi provato, in differenti scenari, le seguenti schede: 8500GT, 8600 GT, 8800 GTX, 9600 GT, 9800 GTX, GTX 260, GTX 280 e GTX 295.

  8500GT 8600GT 9600 GT 8800 GTX 9800 GTX GTX 260 GTX 280 GTX 295
Core G86 G84 G94 G80 G92 GT200 GT200 2 x GT200
Frequenza core 450 MHz 540 MHz 650 MHz 575 MHz 675 MHz 576 MHz 602 MHz 576 MHz
Frequenza memoria 800 MHz 700 MHz 900 MHz 900 MHz 1100 MHz 999 MHz 1107 MHz 999 MHz
Frequenza shader 900 MHz 1180 MHz 1625 MHz 1350 MHz 1688 MHz 1242 MHz 1296 MHz 1242 MHz
Numero unità shader 16 32 64 128 128 192 240 240 x 2
Memoria DDR2 GDDR3 512 MB 768 MB 512 MB 896 MB 1024 MB 1792 MB
Tipo di memoria 512-256 MB 256 MB GDDR3 GDDR3 GDDR3 GDDR3 GDDR3 GDDR3
Interfaccia memoria 128 bit 128 bit 256 bit 384 bit 256 bit 448 bit 512 bit 448 bit x 2

La 8500 GT è la scheda più lenta, basata sulla GPU della famiglia G80 (G86), e rappresenta la prima generazione di schede supportate da CUDA. È un modello ancora presente sul mercato, e acquistabile a circa 50 euro. La 9600 GT, costa circa 70 euro, e condivide l'architettura con la 9800 GTX, che però dispone del doppio delle unità shader processor. Siccome ogni unità si comporta come un core, in grado di effettuare le operazioni di transcodifica, questo è il dato più importante da considerare. La GTX 260 dispone invece di 192 unità shader, mentre la GTX 280 porta questo numero al massimo, cioè 240. La GTX 295 raddoppia questo numero, ma siccome è l'abbinamento di due GPU, le prestazioni dovrebbero essere identiche, tranne per il fatto che con due GPU a disposizione è possibile avviare due istanze di Badaboom, ed effettuare la transcodifica simultanea di due video.

Configurazione di prova e test

Configurazione sistema di prova
CPU
Intel Core i7 920 (Bloomfield)- 2.66 GHz, 8.0 MB Cache
CPU Cooler
Swiftech Apogee GTZ Liquid Cooling
Motherboard
Asus P6T (LGA 1366) X58/ICH10
Hard Disk
Western Digital VelociRaptor WD30000HLFS
0.3 TB, 10,000 RPM, 16 MB Cache
Audio
Integrated HD Audio
Rete
Integrated Gigabit Networking
Alimentatore
Coolermaster RS850-EMBA
850W, ATX12V v2.2, EPS12V
Lettore
Lite-On LH-20A1L, 20X DVD±R
Software
Sistema operativo
Microsoft Windows Vista Ultimate x64 SP1
Grafica NVidia Forceware 186.18
Chipset
Intel INF 9.1.0.1007

Per il test prestazionale, abbiamo selezionato differenti file video, a diverse risoluzioni:

  • SharkTale Trailer: MPEG4, DivX 5. Risoluzione 720x384. Dimensione: 62 MB
  • GetOut Las Vegas: MPEG 2, Audio AC3. Risoluzione 1920x1080. Dimensione: 380 MB
  • Animation: MPEG 2. Risoluzione 1280x720. Dimensione: 190 MB

Con il Trailer di SharkTale mettiamo alla prova Badaboom con un file già compresso in formato DivX, dalla risoluzione media. Con gli altri due file, testiamo le due risoluzioni HD più diffuse, 720p e 1080p, in formato 16:9.

Abbiamo poi utilizzato una collezione di file VOB, estratti da un DVD, per simulare la compressione di un intero DVD da 4.3 GB.

Infine, abbiamo preso un file MKV, formato che sta prendendo sempre più piede tra gli appassionati, dalle dimensioni di 4.5 GB.

Le ultime due prove servono ad indicare i tempi medi che un utente impiegherebbe per la transcodifica di un film o un file MKV dalle medesime dimensioni.

Come periferiche di destinazione abbiamo scelto due rappresentanti dei dispositivi portatili che permettono di vedere filmati, cioè la PSP e l'iPhone (abbiamo escluso l'iPod, in quanto crediamo che la dimensione dello schermo sia insufficiente per gustare a fondo un contenuto video), e poi YouTube, come mezzo di distribuzione dei video in rete.

La transcodifica di un intero DVD l'abbiamo effettuata sia per iPhone che PSP, mentre la transcodifica del file MKV solo per PSP, anche se per l'iPhone i risultati sono comparabili.

Risultati dei test - PSP e iPhone

PSP

iPhone

Risultati dei test -YouTube, VOB e MKV

YouTube

Da DVD a iPhone

Da DVD a PSP

Da MKV a PSP

Analisi risultati

Dai risultati dei test notiamo che Badaboom, come abbiamo già mostrato, è molto sensibile al numero di shader processor, e in parte, anche se minima, è sensibile alla loro velocità di funzionamento. La differenza che si riscontra tra le diverse generazioni di schede grafiche, mostra l'ottimizzazione apportata agli shader con i chip più recenti.

Per quanto riguarda i chip GT200, la differenza è sostanzialmente trascurabile. Nella transcodifica di un intero DVD, nel peggiore dei casi, la differenza, a favore della GTX 280, è pochi punti percentuale, che si traduce in un guadagno di meno di un minuto. La GTX 295 segue da molto vicino la GTX 280, poiché ha lo stesso numero di stream processor, ma sono leggermente più lenti.

La grande differenza si ha nel passaggio dalla 8500 alla 8600 e poi alla 9600, cioè da 16 a 32 e poi 64 processori stream - le architetture delle schede della serie 8 e 9 sono comparabili. Il passaggio a 128 unità shader porta a un incremento prestazionale minore. Le prestazioni della 9800 GTX sono invece comparabili con quelle delle schede GT200. Parlando d'incremento velocistico, il passaggio dalla 8500 alla 8600 risulta in un incremento della velocità di più del doppio, che porta la transcodifica di un DVD da 1 ora e un quarto a mezz'ora. Il passaggio alla 9600 GT fa guadagnare ancora 12 minuti, mentre passando a una scheda con 128 shader processor si guadagnano ulteriori 4 minuti.

Mancano alcuni risultati relativi alla 8800 GTX. Purtroppo, con questa scheda, Badaboom si è bloccato più volte, non portando a termine il lavoro. Abbiamo provato a risolvere il problema reinstallando il software/driver, ma il problema si ripresentava.

Questo panorama mostra che Badaboom riesce a utilizzare in maniera ottimizzata una scheda fino a 128 processori shader, mentre salire con questo numero porta a un incremento solo marginale.

Per quanto riguarda il carico sul sistema, con un processore Core i7, con tutte le schede il carico si è sempre assestato sul 10-15%, scaricando, di fatto, il processore dal lavoro, permettendo l'utilizzo di altre applicazioni, anche complesse.

Confronto con la CPU

Per valutare le prestazioni di CUDA in confronto con quelle ottenibili dalla transcodifica delle CPU, abbiamo effettuato alcune prove aggiuntive. Non abbiamo inserito i valori nei grafici poiché, prima di tutto non era l'obiettivo principale dell'articolo, inoltre, Badaboom non permette di disabilitare CUDA ed effettuare la transcodifica su CPU, quindi abbiamo dovuto usare un software differente, che non rende i risultati confrontabili al cento per cento, ma da comunque un'idea sulle prestazioni. Il software usato è stato Cyberlink Mediashow Espresso.

Con un processore moderno, come l'i7 920 che abbiamo usato per i test con Badaboom, la transcodifica di un intero DVD si assesta su un tempo pari a 15 minuti e 31 secondi. Guardando i risultati ottenuti con le schede grafiche, appare chiaro che CUDA può offrire dei vantaggi solo quando viene usata una scheda grafica moderna, a partire da un modello come la 9800 GTX, dotata di 128 stream processor. In questo caso, il guadagno di CUDA va dal 20 al 35% circa, passando da una 9800 GTX a una GTX 280, percentuale che si traduce, su un tempo di transcodifica di 15 minuti, in 3-4 minuti in meno.

Considerando CPU più vecchie, con un Core 2 Quad (Q6600), il guadagno si nota già dall'utilizzo di una scheda grafica come la 9600 GT, nell'ordine del 20%, mentre usando un processore dual-core, scalando a ritroso la classifica, una 8600 GT offre un vantaggio più o meno simile, pari a circa il 15-20%.

Conclusioni

Badaboom è un software elementare, confrontabile direttamente con altri prodotti, come il Cyberlink Mediashow, nel momento in cui il vostro fabbisogno principale è la transcodifica semplice in formati gestibili dalle periferiche presenti di default nel menù del software. Se vi ritrovate nel profilo appena descritto, il prezzo di Badaboom rispetto ad altri prodotti può considerarsi conveniente - ovviamente dovete avere una scheda grafica Nvidia, altrimenti il software sarà inutilizzabile.

Per quanto riguarda la scheda grafica da abbinare a Badaboom per la transcodifica, ci sono alcune raccomandazioni da fare. Prendere una scheda molto vecchia, magari perché vi è rimasta dal vostro vecchio sistema, non porta particolari benefici, tranne lo sgravo dal processore del lavoro di codifica. Se inoltre possedete un processore moderno quad-core, e volete accelerare il lavoro di transcodifica, non suggeriamo di scegliere una scheda inferiore a un modello dotato di 128 stream processor. Solo se il vostro sistema è equipaggiato con un processore dual-core, ha senso dedicare al lavoro di transcodifica una scheda come la 8600 GT (32 SP), anche se in questo caso una 9600 GT, dotata di 64 SP è la scelta più adatta.

In ogni caso, usare modelli meno potenti non porta ad alcun beneficio, a meno che non abbiate per le mani un sistema molto datato.

Optare invece per un modello più potente, come una GTX 26x o GTX 28x, per l'utilizzo con CUDA e Badaboom, si avrà un vantaggio minimo rispetto a un modello inferiore, come la 9800 GTX.

Allo stato attuale, la scelta più ponderata, in grado di sfruttare CUDA e Badaboom con il miglior rapporto prezzo/prestazioni, ricade su una scheda grafica di fascia media.

scopri altri contenuti su

ARTICOLI CORRELATI