Codec Video
pag. 1
1. Codec video
1.1 I codec in generale.
Un codec è un programma o un dispositivo che si occupa di codificare e/o decodificare
digitalmente un segnale (tipicamente audio o video) perché possa essere salvato su un supporto di
memorizzazione o richiamato per la sua lettura.
Tale programma può essere installabile/aggiornabile (su personal computer o apparecchiature
multimediali predisposte) oppure essere integrato in un componente hardware dedicato (ad es. nei
lettori CD o DVD casalinghi o in alcune schede video/audio per PC).
I codec hanno due funzioni principali:
• “digitalizzazione” del segnale, ovvero la trasformazione di un segnale analogico in un flusso
di dati numerici (binari)
• compressione (e/o decompressione in lettura) dei dati ad esso relativi, in modo da poter
ridurre lo spazio di memorizzazione occupato a vantaggio della portabilità o della
trasmissività del flusso codificato.
La compressione dei dati segue due diversi approcci, a seconda dei dati da comprimere:
a. con perdita di informazione (lossy)
b. senza perdita di informazione (lossless)
Per realizzare tale compressione con perdita di informazione (lossy) si fa ricorso:
• alla riduzione della precisione dei colori dei singoli pixel (codec video) o delle frequenze da
riprodurre (in alcuni codec audio vengono soppresse le frequenze non udibili dall'orecchio
umano),
• alla eliminazione delle ridondanze o alla scrittura delle sole differenze (codec video) rispetto
ad una immagine di riferimento.
Esistono vari tipi di codec, differenti tra loro per
• il tipo di segnale su cui devono operare
• l’algoritmo di codifica/compressione che utilizzano
1.2 I codec video
Un codec video è un programma o un dispositivo sviluppato per descrivere un flusso video sotto
forma di dati numerici adatti ad essere memorizzati su un supporto digitale.
Usualmente i codec video effettuano anche una compressione dei dati in modo da ridurre l'elevata
quantità di dati che compone un flusso video. La maggior parte dei codec video adottano tecniche di
compressioni lossy (a perdita di informazioni) in modo da poter ridurre, anche di 20 volte, i dati
necessari per trasmettere i flussi video.
Esistono, tuttavia, codec utilizzati per applicazioni professionali che utilizzano compressioni
lossless (senza perdita di informazione).
Codec Video
pag. 2
1.2.1. Codifica intraframe e codifica interframe
A seconda della diversa tecnica di codifica del flusso video, i codec video si dividono in due grandi
famiglie:
• a codifica intraframe
• a codifica interframe.
La codifica intraframe contraddistingue i codec che codificano e decodificano un flusso video
descrivendo ogni singolo fotogramma che compone la sequenza video, rispettando quindi un
approccio tradizionale alla quantizzazione video come sequenza di immagini statiche.
Nella codifica interframe invece i codec video si occupano di descrivere i cambiamenti che si
verificano tra un fotogramma ed il successivo.
La diversa dinamica dei due approcci fa si che la codifica intraframe è più adatta alla riproduzione
di sequenze video particolarmente movimentate; descrivendo ogni singolo fotogramma infatti, un
codec a codifica intraframe potrà degradare la qualità delle singole immagini all'aumentare del
rapporto di compressione, ma tenderà comunque a lasciare inalterata la dinamica del movimento.
I codec a codifica interframe risultano invece meno adatti alla codifica di sequenze movimentate
con grandi cambiamenti tra i fotogrammi. Al contrario, in sequenze video statiche, ovvero con
pochi elementi che cambiano nella scena, la codifica interframe risulta di notevole efficienza.
1.2.2. Approfondimenti sulla compressione
La compressione dati lossy è quella classe di algoritmi di compressione che porta a perdita di
informazioni durante la fase di compressione/decompressione delle informazioni.
Decomprimendo un file compresso con un metodo "lossy" la copia ottenuta sarà peggiore
dell'originale per quanto riguarda il livello di precisione delle informazioni codificate, ma in genere
comunque abbastanza simile da non comportare perdita di informazioni irrinunciabili. Ciò è
possibile poiché i metodi di compressione a perdita di informazioni in genere tendono a scartare le
informazioni poco rilevanti, archiviando solo quelle essenziali: per esempio comprimendo un brano
audio secondo la codifica dell'MP3 non vengono memorizzati i suoni non udibili, consentendo di
ridurre le dimensioni dei file senza compromettere in modo sostanziale la qualità dell'informazione.
La compressione dei dati con perdita di qualità è ampiamente usata in molti settori dell'informatica:
su Internet, nell'ambito dello streaming dei media, nella telefonia, per la compressione di immagini
o altri oggetti multimediali, ecc.
La compressione dati lossless è quella classe di algoritmi di compressione che non porta a perdita
di informazioni durante la fase di compressione/decompressione delle informazioni. Un esempio di
questo tipo di compressione è dato dai formati Zip, Gzip, Bzip2, Rar, 7z. I file per cui non è
accettabile una perdita di informazione, come i testi o i programmi, utilizzano questo metodo. Per le
immagini fotografiche generalmente non si usano algoritmi lossless in quanto sarebbero veramente
poco efficienti, ma per le immagini che contengono schemi o disegni realizzati al PC spesso la
compressione lossless non solo è applicabile, ma anche conveniente (GIF, PNG, MNG, TIFF).
Esistono diversi algoritmi di compressione lossless. Citiamo a titolo di esempio la codifica
“Huffman”, le codifiche LZ77, LZ78, LZW, e la codifica mista “DEFLATE”