Ricerca

sabato 20 settembre


Editing video: formati, compressione e guida all'uso di VirtualDub

Editing video: formati, compressione e guida all'uso di VirtualDub

di Michele Nasi e Redazione di PC Open (17/09/2003)


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 16x16 pixel ed ognuno di essi in successivi sottoblocchi di 8x8. L'algoritmo IDCT tenta di fondere la struttura ed il colore dei blocchi 8x8 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 720x576 (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.
Articolo seguente: Corso Java - Seconda lezione
Articolo precedente: Corso Java - Prima lezione
224969 letture
Ultimi commenti
inviato da grillor > pubblicato il 10/09/2009 10:03:41
Per una inesperta come me è un articolo incoraggiante. Ora provo, poi vi saprò dire se riesco a suddividere il filmato: sembra facile da come dite voi. Grazie e buon lavoro :o , :D Grillor


Leggi tutti i commenti

Commenta anche su Facebook

Link alla home page de IlSoftware.it

P.IVA: 02472210547 | Copyright © 2001 - 2014

Pubblicità | Contatti | Informazioni legali | Cookies | Storia | Supporta | Credits

Segui i nostri Feed RSS de IlSoftware.it Segui i nostri Feed RSS