# Codificació de vídeo

La codificació de vídeo és el procés per aconseguir passar d'un senyal de vídeo analògic a un senyal de vídeo digital, en el qual es perdi la menor quantitat d'informació. La majoria de codificadors comprimeixen aquesta informació perquè pugui ser emmagatzemada o transmesa ocupant el mínim espai possible. Per aconseguir-ho s'aprofita que les seqüències de vídeo tenen redundància en les dimensions espacial i temporal. Per a la correcta optimització de la codificació de vídeo per al seu emmagatzematge i/o transmissió, calen unes conversions prèvies, que es duen a terme gràcies als còdecs de vídeo, que no són més que mòduls de programari que poden codificar un senyal i recuperar-lo, per la reproducció o la manipulació del vídeo.

## Funcionament
### Espai de color i mostreig

En general els codificadors de vídeo comencen per realitzar la conversió del senyal de chroma, passen del format RGB al format de color YCbCr la qual cosa permet la realització d'un mostreig ortogonal, els més comuns són:
* 4:4:4: Les tres components es mostregen amb la mateixa freqüència. És la que s'aplica en aplicacions lossless.
* 4:2:2: Cada dos mostres de luma (Y) en horitzontal, es prenen una mostra de Croma (Cb) i una altra de Croma (Cr).
* 4:1:1: Cada quatre mostres de luma (Y) en horitzontal, es pren una mostra per a cada tipus de Croma, Cb o bé Cr.
* 4:2:0: Cada dos mostres de luma (Y) en horitzontal i en vertical, es pren un per Cb i un altre per Cr, però en punts intermedis com podem veure a la figura.
La conversió a aquest nou format genera dos avantatges:
* Millora la compressió disminuint la correlació entre els senyals de color.
* Separa el senyal de luminància de la de croma, ja que aquesta última és menys important a efectes del sistema visual humà (SVH), per tant es pot representar a partir d'un mostreig de menor resolució.

### Redundància i quantificació

La redundància és una magnitud que ens proporciona l'índex d'ordenació o aleatorietat de les seqüències de vídeo. Tenim dos tipus de redundància, dins la codificació de vídeo:
* Redundància temporal: Que és la que es refereix a la semblança entre dues imatges consecutives d'una seqüència.
* Redundància espacial: Que fa referència a l'evolució del senyal en la dimensió espacial.
Per a predir la redundància en imatges consecutives d'una escena el que es fa se segmenta regular de cada imatge (frame), el procés més utilitzat és el de dividir la imatge en blocs, normalment 8x8 o 16x16 anomenats macroblocs, i llavors se separen els senyals de luma (Y) i croma (C) de cada bloc. Es busca l'error d'estimació i es fa la Transformada Cosinus Discreta. Els coeficients es quantifiquen i es codifiquen entròpicament (VLC). Es multiplexen els coeficients i es passen a la memòria intermèdia, que controla la qualitat de senyal (amb això el que es busca és que el flux de bits sortint del memòria intermèdia no sigui variable, ja que el senyal està pensat per a ser transmès en un canal amb una velocitat estable). La imatge quantificada es reconstrueix mitjançant Q-1 (quantificació inversa) i la IDCT (transformada inversa discreta del cosinus), per a futures referències de predicció i estimació de moviment. La realització de la transformada Cosinus Discreta i la quantificació sobre els blocs independents, poden ocasionar discontinuïtats visibles en les vores dels blocs provocant el conegut efecte bloc. Per eliminar aquestes discontinuïtats existeixen diferents tècniques, per exemple, en el nou estàndard de codificació de vídeo H.264/MPEG-4 AVC s'utilitza un filtre anomenat Adaptive in-loop deblocking filter capaç d'eliminar l'efecte bloc correctament.Per això, els nous estàndards de codificació de vídeo, incorporen algorismes de filtratge capaços de disminuir aquest efecte.

### Compensació de moviment

La compensació de moviment s'utilitza principalment per eliminar la redundància temporal anteriorment explicada entre dues imatges consecutives en una seqüència de vídeo. El sistema s'encarrega de trobar si alguna part es repeteix entre aquestes dues imatges, si això succeeix, tan sols s'enviarà la informació d'on es troba aquestes parts de la imatge en qüestió, en comptes de tornar a enviar tota la imatge sencera, lo qual comportaria un major cost computacional i temporal, i d'aquesta manera aconseguim un major factor de compressió. Existeixen dos tipus de compensació de moviment, compensació forward i compensació backward com podem veure següent esquema:

### Descodificació

El procés de descodificació consisteix bàsicament en el procés invers de cada pas realitzat en la codificació. L'únic pas que no pot ser invertit exactament és el de quantificació. Per això, s'ha realitzat un procés d'aproximació anomenat quantificació invertida o dequantificació capaç de simular el procés invers, abans ho hem descrit amb un Q-1.

## Estandardització

Hi ha dues organitzacions que dominen l'estandardització de codificadors de vídeo són:
* ITU-T: Grup d'Experts de Codificació de Vídeo (VCEG)
Unió Internacional de les Telecomunicacions – Sector de l'Estandardització de les Telecomunicacions
* ISO/IEC: Grup d'Experts d'Imatges en Moviment (MPEG)
Organització Internacional de l'Estandardització i Comissió Electrotècnica Internacional

## Tipus de còdecs de vídeo

La majoria de còdecs de vídeo, comprimeixen la informació, aprofitant, com abans s'ha esmentat, la redundància espacial i temporal. D'aquesta manera si s'elimina informació redundant, podrem enviar amb una major optimització i compressió el vídeo. Els còdecs de vídeo han estat els següents:
* H.120(SVEG): el primer còdec de vídeo estandarditzat (1984).
* H.261(SVEG): va ser el primer estàndard pràctic. Va suposar un esforç pioner i tots els estàndards que han aparegut després s'han basat en el seu disseny (1988).
* MPEG-1(MPEG): esdevingué norma pels CD de vídeo i inclou el popular format de compressió d'audio MP3 (1990).
* H.262(SVEG) / MPEG-2(MPEG): el van desenvolupar conjuntament. Normes d'àudio i vídeo per a la difusió amb qualitat de televisió. Utilitzat per les operadores de televisió per satèl·lit i cable, i adaptat pels DVD de vídeo (1993).
* DV: Códec de vídeo creat l'any 1995 que suposa una revolució en el món de l'enregistrament de vídeo.
* H.263(SVEG): finalitzat el 1995 suposa una millora considerable respecte als predecessors.
* H.263v2(SVEG): la segona versió es va completar a principis de 1998.
* H.264(SVEG) / MPEG-4 Part10(MPEG) / AVC: ha estat desenvolupat pel Joint Video Team (JVT) que va ser creat el 2001. Aquest equip està format per experts de MPEG i SVEG treballant conjuntament. Completat el 2004, actualment (2006) és el millor estàndard, ja que proporciona un gran equilibri entre l'eficàcia de la codificació, la complexitat alhora de posar-lo en pràctica i el cost de la tecnologia de disseny del VLSI.
* H.265/HEVC: actualment està en vies d'investigació però pot ser tota una revolució en el món de la compressió de vídeo, ja que pot duplicar la compressió del H.264 (MPEG-4) i quadruplicar la compressió del H.262 (MPEG-2).
* DivX: Creat per DivXNetworks Inc., és conegut per la seva capacitat de comprimir llargs vídeos en arxius petits.
* XviD: És el popular còdec de vídeo de programari lliure, desenvolupat per programadors voluntaris d'arreu del món. Està basat en l'estàndard MPEG-4 ASP.
* Dirac: Ofereix eines de compressió i descompressió de vídeo per a propòsits generals, a resolucions que van des de QCIF (180x444) fins a HDTV (1920x1080), tant progressiu com entrellaçat.

## Enllaços externs

* Pàgina web oficial de la ITU
* Pàgina web sobre còdecs de vídeo
* Metodologias de Compressió d'Imatges i Vídeo