Se non si usassero sistemi di compressione per i dati, un solo minuto di video registrato su un hard disk o DVD come sequenza di immagini occuperebbe ben 1.270 MB. Questo significa che un comune film di 95 minuti (1h e 35′) a 25 fotogrammi/sec occuperebbe 120 GB e un comune DVD da 4.7 GB potrebbe contenere solo 4 minuti di video.
Per ridurre il filmato a dimensioni accettabili si deve far ricorso ad un codec (DivX è uno di questi). Codec sta per Codificatore-Decodificatore ed è un sofware che a basso livello indica al programma che registra il filmato (l’Encoder) come effettuare la compressione. Lo stesso codec indica al programma di visualizzazione (il Player) come va decompressa la sequenza dei fotogrammi per essere visualizzata.
Il Moving Pictures Expert Group, da cui viene la sigla MPEG, è un consorzio di esperti dell’ISO (Industry Standard Organization) che rilascia le specifiche di compressione per il video e l’audio digitale. Gli algoritmi MPEG sono di tipo “distruttivo” lossy ossia applicano una compressione che rimuove alcuni dettagli meno significativi dalle immagini.
I formati di compressione MPEG1, 2 e 4 si basano sulla codifica IDCT (Inverse Discrete Cosine Transform – Trasformata discreta inversa del coseno).
Come funziona la compressione video
L’immagine presente nel singolo fotogramma viene suddivisa in blocchi di 16×16 pixel ed ognuno di essi in successivi sottoblocchi di 8×8. L’algoritmo IDCT tenta di fondere la struttura ed il colore dei blocchi 8×8 in un solo pixel per poi applicare la stessa procedura ai macroblocchi. A seconda del livello di compressione applicato tale fusione può essere elevata, media o lieve con relativa qualità di immagine scarsa, media od ottima. Nelle zone di colore uniforme, per esempio una strada sgombra con lo sfondo del cielo, l’MPEG1 risulta efficace, la compressione è bassa con minima perdita di dettaglio mentre in una scena ricca di dettagli, come la visione dell’interno di un bosco, si può percepire una certa “blocchettizzazione” dell’immagine ed artefatti attorno agli oggetti dovuti alla compressione elevata.
Ma non ogni singolo fotogramma subisce la stessa compressione. Nelle specifiche MPEG si individuano tre tipi di fotogrammi: esistono gli I-frame (Intra frame), i fotogrammi chiave di riferimento meno compressi, quindi i P-frame (Predictive Frame), più compressi e ricavati per interpolazione dalle differenze di struttura con l’I-frame, e infine i B-frame (Bidirectional predictive frame) la cui struttura è ricavata sia dal fotogramma precedente che da quello successivo e sui quali è applicata la massima compressione.
In MPEG2 per esempio le sequenze di fotogrammi si presentano in modo ciclico IBBPBBPBBPBB a gruppi di 12. Dopo il dodicesimo B frame inizierà un nuovo I-frame; ogni gruppo di fotogrammi è detto GOP (Group Of Pictures). L’algoritmo IDTC viene usato per la compressione degli I-frame mentre per stimare le differenze strutturali sui P-frame e sui successivi B-frame si applicano anche gli algoritmi di Motion Compensation (compensazione del moto) e Motion Estimation (stima del moto). Se tra un fotogramma e l’altro c’è stato uno spostamento di una parte dell’immagine, questi algoritmi tentano di prevedere come si sposteranno i vari blocchi in modo da ricostruire correttamente la struttura del fotogramma successivo.
La maggior parte delle schede video attuali implementa in hardware le funzioni IDTC e Motion Compensation per favorire la visione dei file MPEG1/2 dei VideoCD e DVD senza gravare sul processore di sistema.
Le differenze di compressione in MPEG
MPEG2 rispetto a MPEG1 può operare in dual-pass: dall’esame del film si crea un database delle scene statiche e dinamiche e poi successivamente si applica una compressione mirata alle varie parti, si passa quindi da un valore di compressione costante (CBR, Constant BitRate) a uno variabile (VBR, Variable BitRate).
L’ultima specifica MPEG4 oltre alle caratteristiche di MPEG2 vanta nuovi algoritmi di matematica frattale e una struttura ad oggetti disposti su livelli di uno spazio 3D virtuale. La compressione avviene usando usando GMC (Global Motion Compensation) che tiene conto della struttura dell’intero fotogramma e migliora la nitidezza nelle scene di movimento in cui la telecamera si sposta in una direzione continua.
SA-DCT (Shape Adaptive DCT) è invece una evoluzione dell’algoritmo DCT descritto prima. Nei nuovi codec MPEG4 è presente anche la funzione PsychoVisual Enanchement, attraverso essa sono compressi moltissimo gli sfondi e poco gli oggetti in primo piano, i più percepiti dal cervello umano.
Il risultato è una compressione fino ad otto volte maggiore rispetto a MPEG2 ma con una perdita qualitativa molto limitata. Il formato MPEG4 è oggi disponibile gratuitamente attraverso il codec DivX e sarà probabilmente la base di sviluppo per i futuri DVD-video ad altissima definizione.
Il rapporto compressione/risoluzione/qualità
Se la compressione è elevata il file video occupa poco spazio ma si ha una significativa perdita qualitativa; al contrario se la compressione è bassa si ha un file video di ottima qualità ma con una occupazione di spazio su disco maggiore.
Facciamo un esempio: vogliamo far rientrare su un CD da 700 MB un video di un’ora con risoluzione di 720×576 (PAL) e che occupa nativamente 5.600 MB, per esempio un film DVD o il video delle nostre vacanze ripreso con una videocamera DV. Potremo agire su due fronti: applicare un’elevata compressione MPEG o diminuire la risoluzione oppure, cosa ancora migliore, effettuare tutte e due le cose. è chiaro a questo punto che il miglior codec di compressione sarà quello che ci darà, a parità di spazio occupato su disco, la migliore qualità visiva, ci permetterà cioè di tenere una risoluzione abbastanza alta e un’ottima qualità di immagine pur usando un fattore di compressione elevato che ridurrà a 700 MB, ossia di ben otto volte, la dimensione del nostro video.
Il flusso di bit compressi in encoding (o decompressi in playing) nel file video nell’unita di tempo (1 secondo) è chiamato bitrate. Stabilendo per il codec un bitrate elevato la qualità sarà alta e la compressione bassa, viceversa impostando un bitrate basso si avrà una perdita di dettagli delle immagini a causa della elevata compressione dei fotogrammi.
Da DVD a DivX
La codifica MPEG1: nasce il VideoCD
La prima specifica MPEG1 è stata rilasciata alla fine del 1993 ed è stata usata per realizzare una compressione su un video a risoluzione medio-bassa: 352×288 punti a 25 FPS con un bitrate di 1.150 Kbit/s per il video e di 224 Kbit/s per l’audio. Il risultato è stato denominato VideoCD (o VCD); questo supporto anche se non molto diffuso in Europa ha visto però un boom nei paesi asiatici, Cina in particolare.
La qualità dell’immagine è simile a quella della cassetta VHS nelle scene statiche. Nelle scene dinamiche, ossia quelle in cui la telecamera ruota o fa degli zoom, la qualità è invece inferiore. Un VideoCD è masterizzato su un semplice CD-R/RW da 74 o 80 minuti, può contenere dai 72 ai 78 minuti di filmato ed è compatibile con la quasi totalità dei lettori DVD-video domestici. Molti lettori Dvd-video leggono anche VideoCD realizzati con bitrate di 2.000 Kbit/s che però avranno necessariamente durata inferiore (45-50 minuti). Nel caso che invece si aumenti anche la risoluzione (es. 512×384) si produrrà un XVCD (Extendend VideoCD) ma lo stesso, a parte rarissimi casi, non è letto dai DVD-video ma solo dal PC.
DVD video o SVCD, per il formato MPEG2
Dalla nascita del supporto DVD (Digital Versatile Disc) si è avuta la possibilità di memorizzare su disco ottico una quantità di dati dalle 7 alle 28 volte superiore rispetto al CD. Il DVD infatti può contenere 4,38 GB (4.700.000 byte) per ogni faccia ma può essere anche a doppio strato con la possibilità di avere quindi fino a 7,95 GB; proprio questi due sono i formati più diffusi. La maggiore capacità è dovuta al fatto che nel DVD le tracce della spirale che contengono i dati misurano solo 0.4 micron contro 1.6 micron del CD e anche i punti incisi dal laser di scrittura (i Pit) possono avere dimensione minima di 0.74 micron contro gli 0.83 del CD. Oltre a ciò va considerata che la lunghezza d’onda del laser che nel DVD è di 650 nanometri contro i 780 del CD.
Data l’elevata capacità in Gbyte il DVD-video è stato realizzato usando la compressione MPEG2 con risoluzione di 720×576 punti ossia la massima consentita dal formato televisivo PAL per l’Europa e un bitrate elevato che può variare da 5.000 a 15.000 Kbit/s. Ricordiamo che negli USA vige invece lo standard NTSC che ha un numero di linee orizzontali inferiori (720×480 punti). Per l’audio è stata invece adottata la compressione digitale AC3 (o la DTS) che può fornire l’effetto surround della sala cinematografica a 5+1 canali ricreabile tra le mura domestiche dotandosi dell’apposito kit di altoparlanti. Lo svantaggio del formato DVD sta nei costi del supporto e nella sua delicatezza.
Ultimamente si sono andati diffondendo anche i SuperVideoCD o SVCD. Si tratta di VideoCD registrati usando MPEG2 (invece di MPEG1) con un bitrate di 2.254 Kbit/s e una risoluzione superiore pari a 480×576 punti. Lo stiramento verticale dell’immagine viene poi compensato dal player video in fase di riproduzione. Un SVCD fornisce una qualità visiva decisamente superiore al VCD ma può contenere solo dai 35 ai 40 minuti di video e solo una parte dei lettori DVD-video domestici legge questo formato.
Cosa è il DIVX e perché è importante
Abbiamo visto che il DVD presenta un’eccellente qualità delle immagini ma è un supporto delicato e costoso la cui diffusione nei masterizzatori DVD è rallentata dalla guerra dei formati tra DVD-R/RW, DVD+R/RW e DVD-RAM, anche se sembra un punto di svolta l’introduzione dei multiformato. Il VideoCD ha una qualità d’immagine appena soddisfacente mentre il SuperVideoCD ha il problema della capacità limitata a soli 35 minuti.
In questa situazione si è inserita la codifica DivX, vediamo di tracciarne la storia: quando fu introdotto il DVD-video nel 1995 le case cinematografiche e i distributori pretesero che il supporto fosse protetto in modo da impedirne la copia. Furono così adottate delle chiavi di crittografia a 10 cifre sui file video compressi in MPEG2 del DVD (i file Vob).
Tali chiavi erano basate sull’algoritmo CSS (Content Scramble System) che ne impediscono la visione su un supporto copiato. Fu inoltre applicata la tecnica Macrovision (usata anche in VHS) che disturba la visione post-copia con diminuzioni repentine di colore, contrasto e audio.
Ebbene, le chiavi di crittografia ressero per quattro anni, fino a quando nel 1999 il geniale diciottene norvegese Jon Johansen, poi finito in tribunale, ideò e distribuì sul Web il programmino DECSS che consente la decifratura delle chiavi associate ai file video dei DVD. E’ pur vero che all’epoca i masterizzatori DVD-RAM costavano ancora 10 milioni di lire e su un hard disk si poterono tenere due o tre DVD al massimo ma ecco che l’anno successivo un gruppo di hacker francesi guidati da Jerome Rota riesce a “craccare” il nuovo codec MPEG4 di Microsoft.
Microsoft aveva realizzato questo codec per il formato ASF (Advanced Streaming Format), un formato nato per la distribuzione di filmati via Web ma vi aveva inserito una protezione che ne impediva la codifica nel comune formato di distribuzione AVI (Audio Video Interleaved). Così nasceva il DivX 3.11 che rendeva possibile trasportare un film DVD compresso in MPEG2 in file AVI su uno o due CD-R usando la compressione MPEG4 con una perdita qualitativa limitatissima. Diversi analisti parlarono del fenomeno DivX come dell’MP3 del video. In seguito il DivX venne “regolarizzato”, naque il sito www.divx.com ed iniziarono le prime modifiche nel DivX 3.22 e DivX 4 per scavalcare il copyright Microsoft. Le successive versioni di DivX 4.12, 5.01, 5.02, 5.03, 5.05, 5.1 sono tutte compatibili a ritroso ma non è vero il viceversa: un PC con installato un codec DivX 3 non può vedere filmati DivX 4 che a sua volta non può leggere i DivX 5.
I produttori di DVD-video non avevano finora supportato questo formato, anche spinti da azioni delle case cinematografiche di Hollywood. Moltissimi utenti hanno però già eseguito backup dei loro DVD su CD-R usando DivX ed altri scaricano, servendosi di connessioni a banda larga, filmati da Internet utilizzando generalmente software P2P (Peer-to-peer) come WinMX, Kazaa, e-Mule: è proprio per questo motivo che oggi iniziano a diffondersi i primi lettori DVD-video compatibili DivX.
L’ultima versione del codec DivX è scaricabile gratuitamente da questa pagina.
Video analogico e video digitale
La maggior parte dei dispositivi di registrazione/riproduzione come il videoregistratore VHS di casa sono dispositivi detti analogici. Ciò significa che le varie sequenze di immagini sono convertite in segnali elettrici e poi memorizzate sul nastro magnetico della videocassetta.
Il vantaggio è il basso costo della procedura, lo svantaggio è una perdita qualitativa susseguente alla registrazione e soprattutto a seguito della rielaborazione del filmato. Se, per esempio, da un film volessimo eliminare la pubblicità, paradossalmente la cosa migliore sarebbe prendere le forbici e tagliare il nastro della videocassetta nei punti giusti e quindi ricomporlo con nastro adesivo: è l’unico modo per non perdere qualità. Passando infatti il film su un altro videoregistratore tramite cavo Scart riusciremmo a togliere gli spot, ma avremo perso una parte della qualità del video originale che sulla seconda cassetta sarà più sfocato, avrà più drop-out (punti neri e sporco che compaiono sulle vecchie pellicole).
Alla seconda elaborazione video il prodotto sarà ancora più scadente. Questo accade per via delle dispersioni di segnale nei vari cavi di collegamento, per la non perfetta resa dei nastri della cassetta, per la dispersione magnetica della testina e così via.
Il formato analogico più diffuso al mondo è senza dubbio il VHS (Video Home System): è lo standard di costruzione delle comuni videocassette con risoluzione di 280 linee. Il SuperVHS migliora la risoluzione dell’immagine a 400 linee ma è poco diffuso così come i formati Video 8 e Video 8Hi di Sony. Dal lato professionale abbiamo invece il formato Betacam ancora usato per diverse produzioni televisive broadcast.
Nel video digitale invece l’immagine reale viene convertita in base alle sue componenti di luminosità e colore (Luma e Chroma) in una serie di bit (numeri 0 e 1), questi bit vengono quindi registrati producendo un file di dati su un hard disk, un CD, un DVD o un qualsiasi altro supporto dati.
Il processo è detto digitalizzazione e avviene prendendo il film da una videocamera o da una scheda di acquisizione e convertendolo tramite un programma encoder nel file di dati. Questo file di dati potrà poi essere letto da un decoder che si occuperà di decodificare il file e riconvertire i bit in immagini.
Il vantaggio del digitale sta quindi in una perdita qualitativa pari a zero sia nella registrazione e, soprattutto, nella successiva rielaborazione del film. Tale rielaborazione avverrà infatti via software senza nessun degrado qualitativo in quanto il software per l’elaborazione video – ad esempio Adobe Premiere o Virtual Dub (software distribuito gratuitamente) – può tagliare o modificare le varie parti del film (per esempio la pubblicità) operando la rimozione e la ricomposizione di una semplice serie di numeri. Il video digitale inoltre, essendo un comune file di dati, ha il vantaggio di poter essere trasmesso attraverso linee dedicate come quelle esistenti tra le stazioni televisive via satellite oppure attraverso il Web usando connessioni a banda larga.
VirtualDub: rielaborare e suddividere sequenze video
VirtualDub è un programma (completamente gratuito) che permette di acquisire e rielaborare sequenze video provenienti da una qualsiasi periferica di acquisizione (ad esempio una scheda l’acquisizione video od una scheda tv tuner) o già memorizzate all’interno di file su disco fisso.
Il programma permette di creare file AVI2 (OpenDML) che consentano di superare la barriera dei 2 GB per i normali file AVI nonché consente l’uso di file multipli che permettano di superare il limite dei file da 4GB imposto dalle specifiche del file system FAT32.
VirtualDub offre un sistema integrato per la gestione del volume in ingresso, strumenti per aggiustare il livello di compressione, una serie di filtri e tanto altro ancora; integra un decoder MPEG-1 e Motion-JPEG.
Spesso gli appassionati di video sentono la necessità di dover suddividere in più parti un
filmato che, su disco fisso, occupa parecchi MB di spazio. Tale esigenza è piuttosto
comune qualora si voglia masterizzare un filmato di grandi dimensioni suddividendolo in
più CD ROM da 650-700 MB ciascuno.
Come primo passo prelevate VirtualDub da questa pagina. Il software è distribuito in modo assolutamente gratuito; per utilizzarlo non si dovrà pagare neppure una quota di registrazione.
Estraete, quindi, il contenuto del file compresso zip in una cartella su disco fisso;
eseguite il file VirtualDub.exe.
Cliccate, a questo punto, sul menù File , Open video file… di VirtualDub e scegliete il filmato che desiderate suddividere in più spezzoni.
Provate a visualizzare i fotogrammi di cui è costituito il vostro filmato agendo sui piccoli pulsanti Key previous e Key next raffiguranti una chiave gialla e posizionati nella parte bassa della finestra principale di VirtualDub.
Per suddividere automaticamente il vostro filmato in più parti, selezionate, prima di
tutto, dal menù Video la voce Direct stream copy. Selezionate Direct stream copy anche all’interno del menù Audio. In questo modo VirtualDub creerà rapidamente un nuovo file video senza applicare ulteriori compressioni audio/video: quello che otterrete sarà uno o più file video AVI facenti uso degli stessi codec audio/video del filmato originale.
Cliccate ora sul menù File quindi su Save segmented Avi…, indicate il nome del file da assegnare ai vari spezzoni quindi ricordatevi di specificare che dimensioni massime deve avere ogni singolo spezzone (file) del film in megabyte (file segment size limit in megabytes).
Cliccando sul pulsante Salva verrà avviato il processo di suddivisione dei file in più parti.
Qualora desideriate tagliare delle parti ben precise di un filmato, VirtualDub è, anche in
questo caso, lo strumento che fa per voi. Servendovi dei pulsanti Key previous/Key
next e della barra di scorrimento orizzontale, portatevi all’inzio dello spezzone di
filmato che desiderate tagliare, cliccate sul pulsante Mark in (il penultimo a partire da sinistra). Agendo sempre su Key previous/Key next e sulla barra di scorrimento orizzontale, individuate la fine dello spezzone che desiderate eliminare e premete Mark out. Per eliminare lo spezzone del filmato selezionato premete il tasto CANC sulla tastiera.
A questo punto selezionate dal menù Video la voce Direct stream copy. Selezionate Direct stream copy anche all’interno del menù Audio. Dal menù File scegliete il comando Save as Avi ed indicate il nome del file all’interno del quale desiderate venga memorizzata la versione da voi modificata del vostro filmato.