Inter-frame

De Viquipèdia
Dreceres ràpides: navegació, cerca

Inter frame prediction és una tècnica que explota la correlació temporal entre frames consecutius per poder codificar amb el mínim nombre de bits possibles. Per codificar, el que es fa és predir un frame a partir de frames anteriors i/o futurs, aplicant sobre aquests un moviment dictat per uns vectors de moviment. Aquesta tècnica ja s'utilitzava en anteriors estàndards com MPEG-2.


Context[modifica | modifica el codi]

H.264 és el futur estàndard de codificació de vídeo que substituirà el present MPEG-2. H.264 és una part de MPEG-4 (part 10) que només s'ocupa de la part de codificació de vídeo.


Millores de la predicció inter-frame en H.264[modifica | modifica el codi]

Les millores més importants d'aquesta tècnica en H.264 respecte a anteriors estàndards són:

  1. Particions de bloc més flexibles
  2. Resolució de fins a un quart de pixel en la compensació de moviment
  3. Múltiples referències
  4. Direct/Skip Macroblock millorat


1) Particions de bloc més flexibles[modifica | modifica el codi]

Particions dels blocs de luminància de 16x16(MPEG2),16x8,8x16, 8x8; en aquest últim cas se'ns permet dividir-ho en nous blocs de 4x8,8x4,4x4.

Particions de bloc

El frame a codificar es divideix en blocs de mida igual a algun dels mostrats a la figura. La predicció de cada bloc seran blocs del mateix mida de les imatges referència aplicant-s'hi un cert desplaçament.


2) Resolució de fins a un quart de pixel en la compensació de moviment[modifica | modifica el codi]

Resolució dels vectors de moviment de fins a un quart de píxel (MPEG-2 permetia una resolució de ½ píxel ). Això vol dir que podem buscar un bloc del frame a codificar en altres frames de referència o podem interpolar píxels que no existeixen per a trobar blocs que s'adaptin encara millor al bloc actual. Quan el vector de moviment és un nombre d'unitats enter de mostres significa que el bloc compensat en moviment el podem trobar en les imatges referència. Si el vector de moviment no és enter, la predicció l'obtindrem a partir de píxels interpolats aplicant un filtre interpolador en la direcció horitzontal i vertical.

Interpolació de subpíxel

Els pixels a les half-pixel posicions s'obtenen aplicant un filtre de longitud 6:

H=[1 -5 20 20 -5 1]

Per exemple:

b=A - 5B + 20C+20D+E

Els píxels a les quarter-pixel posicions s'obtenen per interpolació bilineal.


3) Múltiples referències[modifica | modifica el codi]

Múltiples referències per estimar el moviment. Permet buscar la millor referència en els 2 possibles buffers (List0 per a imatges passades, List1 per a imatges futures) que tenen fins a 16 frames.

La predicció del bloc es faria mitjançant una suma ponderada dels blocs de les imatge referència. Permet millorar la qualitat de la imatge en escenes on hi ha canvis de pla, zooms, o quan es descobreixen nous objectes en la seqüència.

Múltiples referències


4) Direct/Skip Macroblock millorat[modifica | modifica el codi]

Els modes Skip Mode i Direct Mode s'usen molt freqüentment, sobretot amb les B-pictures, i permeten reduir molt la taxa de bits a codificar. Ens referirem a aquests modes quan codifiquem un bloc sense enviar error residual ni vectors de moviment, el codificador només senyalarà que es tracta d'un Skip macroblock. El decodificador deduirà el vector de moviment del bloc codificat amb Direct/Skip Mode a partir d'altres macroblocks ja decodificats.

Hi ha dos modes de deduir el moviment:

  • TEMPORAL:

Utilitza el vector de moviment del bloc del frame de List 1 situat a la mateixa posició per deduir el vector de moviment. El bloc de List 1 tindrà com a referència un bloc de List 0.

Direct/Skip

Dedueix els vectors MV1,MV2 a partir de MV aplicant les ponderacions temporals necessàries.

  • ESPACIAL:

Prediu el moviment a partir dels macroblocks veïns dins del mateix frame. Un possible criteri seria copiar el vector de moviment d'un bloc veí. Aquests modes s'utilitzen en zones de la imatge uniformes on no hi ha gaire moviment.

Particions de macroblock en H.264

Els blocs de color rosa corresponen a blocs codificats amb Direct/Skip Mode. Com es pot observar s'utilitzen molt freqüentment, sobretot amb les B-pictures.

Vegeu també[modifica | modifica el codi]

  1. Còdec de vídeo
  2. Vector de moviment
  3. H.264/MPEG-4 AVC
  4. SNR (enllaç en anglès)
  5. Video compression (enllaç en anglès)

Referències[modifica | modifica el codi]

  1. Software H.264: http://iphome.hhi.de/suehring/tml/download/
  2. T.Wiegand, G.J. Sullivan, G. Bjøntegaard, A.Luthra: Overview of the H.264/AVC Video Coding Standard. IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, July 2003 (referència en anglès)


Enllaços externs[modifica | modifica el codi]