Imatges I, P i B: diferència entre les revisions

De la Viquipèdia, l'enciclopèdia lliure
Contingut suprimit Contingut afegit
m Robot substituint el text: (-Imatge: +Fitxer:, -Image: +Fitxer:)
Línia 52: Línia 52:


[[Fitxer:matriz_16.jpg|thumb|right|300px|Matriu de quantificació [[inter-trama]] per a la component de [[luminància]]]]
[[Fitxer:matriz_16.jpg|thumb|right|300px|Matriu de quantificació [[inter-trama]] per a la component de [[luminància]]]]
La missió del codificador és triar, d'entre les diferents possibilitats de codificar un macrobloc, aquella que proporcioni la millor opció. Generalment, les decisions no són evidents i han de provar-se diverses possibilitats abans de prendre a una decisió. Les [[Matriu (matemàtiques)||matrius]] de [[Quantificació (processament d'imatge)|quantificació]] utilitzades en el cas de realitzar codificació mitjançant predicció tenen un pas de quantificació uniforme per a tots els coeficients. Això és degut al fet que el contingut [[freqüència|freqüencial]] dels senyals d'error no mostra cap preferència per a concentrar la seva energia en unes [[freqüència|freqüències]] particulars i en principi tots els coeficients tenen la mateixa importància en la reconstrucció de les imatges. En la figura es mostra la matriu de quantificació per defecte que s'utilitza en la codificació inter-trama.
La missió del codificador és triar, d'entre les diferents possibilitats de codificar un macrobloc, aquella que proporcioni la millor opció. Generalment, les decisions no són evidents i han de provar-se diverses possibilitats abans de prendre a una decisió. Les [[Matriu (matemàtiques)|matrius]] de [[Quantificació (processament d'imatge)|quantificació]] utilitzades en el cas de realitzar codificació mitjançant predicció tenen un pas de quantificació uniforme per a tots els coeficients. Això és degut al fet que el contingut [[freqüència|freqüencial]] dels senyals d'error no mostra cap preferència per a concentrar la seva energia en unes [[freqüència|freqüències]] particulars i en principi tots els coeficients tenen la mateixa importància en la reconstrucció de les imatges. En la figura es mostra la matriu de quantificació per defecte que s'utilitza en la codificació inter-trama.


===Imatges B: ''Bi-predicted/Bi-directional''===
===Imatges B: ''Bi-predicted/Bi-directional''===

Revisió del 10:21, 9 gen 2009

Les imatges I, P i B resulten de la compressió del senyal de vídeo en els estàndards ITU-T o MPEG. Aquestes imatges poden ser dels següents tipus:

  • Les imatges I: són les que es codifiquen per si mateixes.
  • Les imatges P: són les predites per extrapolació.
  • Les imatges B: són les predites per interpolació.

Context general

En els estàndards de compressió de vídeo com MPEG, s'utilitzen aquests tipus d'imatges per a comprimir les dades. De fet, en lloc de codificar cada imatge que conforma el vídeo, es pot codificar una imatge totalment i després les diferències entre aquesta imatge i les imatges següents, explotant així la redundància en relació a les imatges veïnes.

Per exemple, en una seqüència de vídeo amb un segon pla fix, podem representar solament les parts que es mouen, per a no codificar cada vegada el segon pla que no canvia i guanyar així molt en capacitats de compressió. En aquests tipus d'algorismes, es codifiquen algunes imatges per si mateixes i es prediuen les altres. Les imatges són dividides en macroblocs (en general de 16 X 16 píxels) i segueixen el concepte de compensació de moviment per a la predicció: per cada macrobloc d'una imatge que volem codificar a partir d'una imatge de referència (que pot ser una anterior o una posterior), es busca on està en la imatge de referència, i es defineix un vector de moviment que dóna el moviment relatiu entre els dos macroblocs que es corresponen. Per descomptat, entre dues imatges, no es poden trobar sempre macroblocs completament idèntics, i s'utilitza una tècnica de comparació entre els macroblocs per a buscar els que són més correlacionats entre ells. Es pot predir una imatge a partir de la imatge de referència i els vectors de moviment, i així obtenim la diferència entre aquesta imatge predita i la imatge original que volem codificar.

Llavors, només cal enviar les imatges codificades per si mateixes, les matrius de vectors de moviment i les diferències entre les imatges de referència i les altres per a codificar la seqüència vídeo.

  • Les imatges I poden ser codificades, per exemple, amb el format JPEG, i s'utilitzen per a descodificar les altres imatges que componen el vídeo (poden ser utilitzades com punts d'accés aleatori per a començar a descodificar els vídeos a partir de qualsevol moment). En general, la codificació d'aquestes imatges ocupa més espai que les altres.
  • Les imatges P són les imatges predites amb referència a una imatge que pot ser de tipus I o P anterior en el temps, així que necessiten la decodificació prèvia de la imatge de referència de poder ser descodificades.
  • Les imatges B són les imatges predites amb referència a dues imatges que poden ser de tipus I o P, una anterior i una posterior (o diverses), així que necessiten la decodificació de les dues imatges de referència a part de la reordenació de les imatges per a poder ser descodificades.

Alguns macroblocs de les imatges P o B poden ser codificats per si mateixos per a refrescar-los i per a evitar errors massa importants que es poden produïr si hi ha moltes imatges predites entre la imatge I anterior i la imatge actual.

Seqüència d'imatges. Els vectors inferiors indiquen les referències predictives que hi ha entre elles. S'ha escollit una ordenació IBBPBBPBBI a mode d'exemple, ja que permet establir llaços de predicció força usuals.

Explicació detallada

Imatges I: Intra

  • És una imatge codificada sense referència a cap imatge anterior, sinó referida exclusivament a ella mateixa.
  • Pot ser generada pel codificador per a crear un punt d'accés aleatori, és a dir, un punt que permeti al decodificador començar la descodificació adequadament en referència a aquesta marca (localització d'imatge).
  • Típicament, requereixen major nombre de bits per a la seva codificació que l'altre tipus d'imatges (B o P).
  • Aquestes imatges són freqüentment utilitzades com punt de referència per a la descodifcació d'altres imatges. Períodes de refresc d'aproximadament mig segon s'usen típicament en aplicacions de 'broadcast' de televisió digital i en emmagatzematge en DVD. Per altra banda, períodes de refresc superiors a l'anteior poden ser utilitzats en mitjans com sistemes de videoconferència, on és molt habitual l'enviament de les imatges I.
Fitxer:ImI.jpg
Estructura jeràrquica de la trama JPEG
  • La codificació de les imatges I és molt semblant a la que s'utilitza en JPEG. La diferència radica en les taules de quantificació i en els procediments que s'utilitzen per a realitzar canvis sobre les escales de quantificació.

Imatges P: Predicted

La codificació de les imatges P és una mica més complexa que les imatges intra-trama, car ha de realitzar-se l'estimació de moviment i decidir quin és la forma més eficient de codificar un macrobloc en funció dels resultats obtinguts. En aquest apartat es defineixen els diferents tipus de macroblocs que poden aparèixer en la codificació de les imatges P. Una de les primeres peculiaritats de les imatges P és que pot saltar-se la codificació d'alguns macroblocs (skipped macroblock). Això ocorre quan el processador considera que no és necessari codificar un macrobloc, ja que la informació que conté pot aproximar-se amb prou precisió basant-nos en la informació que tenim en la mateixa posició en la imatge de referència anterior. En aquest cas, els 4 blocs que formen el macrobloc se substituïxen pels mateixos píxels que teníem en la imatge anterior, el que significa que, en el fons, estem realitzant una compensació de moviment amb un vector de moviment nul i que l'error de predicció obtingut és suficientment pròxim a zero com perquè no calgui codificar-lo. A més dels macroblocs skipped és possible tenir 7 tipus addicionals que es denoten com predmc, pred-c, pred-m, intra-d, pred-mcq, pred-cq i intra-q. Les abreviatures que s'utilitzen per a identificar els possibles tipus de macrobloc corresponen a:

  • pred: Macrobloc codificat utilitzant predicció. La codificació no és intra-trama.
  • m: Macrobloc codificat utilitzant compensació de moviment forward. Es transmet el vector de moviment associat.
  • c: Com a mínim es transmet la informació d'error associada a un dels blocs que formen el macrobloc.
  • d: S'utilitza el quantificador per defecte.
  • q: Es realitza un canvi en l'escala del cuantificador.
  • skipped: Macroblocs que no són transmesos.
Matriu de quantificació inter-trama per a la component de luminància

La missió del codificador és triar, d'entre les diferents possibilitats de codificar un macrobloc, aquella que proporcioni la millor opció. Generalment, les decisions no són evidents i han de provar-se diverses possibilitats abans de prendre a una decisió. Les matrius de quantificació utilitzades en el cas de realitzar codificació mitjançant predicció tenen un pas de quantificació uniforme per a tots els coeficients. Això és degut al fet que el contingut freqüencial dels senyals d'error no mostra cap preferència per a concentrar la seva energia en unes freqüències particulars i en principi tots els coeficients tenen la mateixa importància en la reconstrucció de les imatges. En la figura es mostra la matriu de quantificació per defecte que s'utilitza en la codificació inter-trama.

Imatges B: Bi-predicted/Bi-directional

  • Les imatges B requereixen descodificació prèvia d'altres imatges de la seqüència per a ser descodificades correctament.
  • Poden contenir tant dades d'imatge com vectors de desplaçament, o també combinacions dels dos elements.
  • Inclouen alguns mètodes de predicció que obtenen la predicció d'una regió en moviment (per exemple, un macrobloc o una regió d'àrea menor) portant a terme un promitjat de les prediccions obtingudes usant dues regions de referència prèviament descodificades.
  • En estàndards de codificació més antics (com MPEG-2), les imatges B no s'utilitzen mai com referències per a la predicció d'altres imatges. El resultat és una codificació amb menys qualitat (producte de la utilització de menys bits) que pot ser utilitzada en les imatges B, ja que la pèrdua de detall no perjudicarà la qualitat de la predicció de les imatges subsegüents.
  • En H.264, hi ha l'opció d'utilitzar-les o no com a referències per a la descodificació d'altres imatges (a discreció del codificador).
  • En estàndards de codificació més antics (com MPEG-2), s'utilitzen exactament dues imatges prèviament codificades com a referencies durant la codificació, i solament es requereix una d'aquestes dues imatges per a precedir la imatge B en el monitor i l'altra per a seguir-la.
  • En H.264, es pot utilitzar una, dues o més imatges prèviament descodificades com referencies durant la codificació, i poden tenir qualsevol ordre de reproducció arbitrari, relatiu a la imatge/es utilitzades en a la seva predicció.
  • Típicament, es requereixen menys bits per a codificar una imatge B que amb les I o P.

Agrupació de fotogrames: GOP

Generalment, en una seqüència de vídeo, els fotogrames s'agrupen en un Grup de Fotogrames, un GOP (Group of Pictures). Es tracta de la unitat d'accés aleatori més petita. En el seu interior hi trobem:

  • Un fotograma I (el primer).
  • Un o varis fotogrames P.
  • Varis fotogrames B intercalats.

El més típic és trobar 12 fotogrames en un GOP, però el codificador pot canviar-ho dinàmicament. En el cas de detectar un canvi d’escena, forçaria un fotograma I que donaria inici a un nou GOP.

Així podríem ordenar la seqüència de fotogrames des de dos punts de vista diferents:

  • Ordre de visualització, com ho veu l'usuari.
  • Ordre de bitstream, com es generen els fotogrames.

S'explica en la següent taula:

Ordre de visualització
I B B P B B P B B P B B I
1 2 3 4 5 6 7 8 9 10 11 12 13
Ordre de bitstream
I P B B P B B P B B I B B
1 4 2 3 7 5 6 10 8 9 13 11 12

Referències

Enllaços externs

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Imatges I, P i B