Vector de moviment
El vector de moviment indica la magnitud i direcció del moviment que es produeix entre la imatge actual i la informació rebuda.
Taula de continguts |
Context [modifica]
En el cas de compressió MPEG existeixen dos tipus de codificació, codificació tipus intra i codificació tipus inter. En aquesta última, la informació és relativa a les imatges enviades anteriorment. El codificador no ha d'enviar tota la informació de cada imatge, només haurà d'enviar les variacions respecte la imatge anterior, és a dir, un vector que representi el moviment entre imatges successives.
Explicació detallada [modifica]
Per imatges en moviment, com en el cas de vídeo, existeix una redundància temporal afegida a les imatges en general. Com que en els sistemes actuals de televisió es transmeten unes 25 imatges per segon, les imatges successives són molt semblants excepte en els canvis de pla. En televisió digital, es transmeten únicament les variacions entre imatges estalviant bits en la transmissió.
La imatge es divideix en macroblocs de 16 píxels x 16 píxels i per a cada bloc s'indica mitjançant dos valors el desplaçament horitzontal i vertical entre imatge i imatge.
Quan un macrobloc pren un cert valor, es busca a les imatges anteriors si existeix alguna zona d'idèntic contingut i s'assumeix que el macrobloc s'ha mogut. En tal cas, s'envia únicament la informació del moviment. Per a cada macrobloc es busca la zona de la imatge de referència que mes s'assembli. (Aquesta zona ha de ser de mateixes dimensions que un macrobloc.) El macrobloc queda per tant definit a partir d'una zona de la qual la informació es troba a la memòria del descodificador. Un cop codificats, la idea de macroblocs desapareix. La cerca de porcions d'imatge de referència es fa píxel a píxel lo que millora la precisió.
Codificació [modifica]
Buscant la zona que presenti màxima coincidència, el codificador ha d'escollir per cada macrobloc la forma de codificar depenent del nivell de coincidència:
- Coincidència total: Existeix una zona a la imatge de referència idèntica al macrobloc actual i a més es troba exactament a la mateixa posició. En aquest cas quan codifiquem el macrobloc anterior al que no pateix cap modificació, incrementem en 2 el comptador seqüencial de macroblocs per indicar que s'ha de saltar un macrobloc. Així per cada macrobloc que no canvia respecte la imatge anterior el comptador sumarà 2. El receptor pot reconstruir sense problemes aquesta porció de imatge ja que es troba a la memòria de la imatge anterior.
- Coincidència parcial: Existeix una zona idèntica a la imatge de referència però no es troba a la mateixa posició. En aquest cas, s'introdueix el vector de moviment a la capçalera del macrobloc i la zona de dades roman buida ja que el descodificador obté les dades de la imatge de referència.
- Coincidència mínima: Existeix una zona a la imatge de referència que no es idèntica però supera el nivell de coincidència establert com el mínim. En aquest cas, s'envia el vector de moviment o informació del desplaçament entre el macrobloque actual i la zona semblant a la capçalera. A la zona de dades s'envia únicament la informació de les diferencies que existeixen entre la imatge actual i la de referència.
- Coincidència nul·la: No existeix ninguna zona de la qual la informació superi el nivell mínim de coincidència amb el macrobloc actual. En aquest cas, la codificació d'aquest bloc es de tipus Intra, és a dir que serà una imatge I i no tindrà cap vector de moviment a la capçalera.
Descodificació [modifica]
El descodificador llegeix la capçalera de cada porció de imatge i en funció del contingut procedeix a la descodificació corresponent que és diferent per Fitxers I, P i B. En el cas d'imatges de tipus I, la descodificació es immediata. En canvi, als altres casos, es necessita de la descodificació prèvia de la imatge de referència per la codificació de la imatge actual. Pel cas de les imatges P que tenen un únic vector de moviment, es necessita la descodificació de la imatge anterior i pel cas de les imatges B, es necessiten l'anterior i la posterior. En aquest últim cas, hi hauran dos vectors de moviment, un que indica el moviment que ha patit el macrobloc respecte la imatge anterior i un altre per el desplaçament respecte la imatge següent.
Predicció [modifica]
Un aspecte a tenir en compte en vídeo és quan es produeix únicament una panoràmica de la càmera, tots els macroblocs pateixen el mateix desplaçament respecte la imatge anterior. En aquest casos, és útil aprofitar aquesta redundància i no enviar tots el vectors de moviment. Per tant, només s'haurà d'enviar la diferència de moviment de cada macrobloc respecte l'anterior (que a la majoria dels casos serà nul·la). En molts casos, s'envien alguns vectors repartits per la imatge i la resta es prediuen. En el cas de compressió MPEG, se prediu el vector de moviment abans de que aquest sigui enviat gràcies als vectors dels macroblocs veïns. La informació de la predicció es suma amb la informació dels vectors de moviment enviats i el resultat és el vector de moviment real.
Vegeu també [modifica]
- FMO - Flexible Macroblock Ordering
- Inter-frame
- Fitxers I, P i B
Referències [modifica]
- Televisión Digital Vol.1, Compresión MPEG, Alfonso Martín Marcos, Editorial Ciencia 3
- Intraframe versus interframe compresion (article en anglès)