Volver a la página principal
Volver al Web de Duiops
Google 
 
En Internet En duiops.net

 

 Portada - Enciclopedia - MPEG-4 Parte 10 (H.264/AVC)

MPEG-4 Parte 10 (H.264/AVC)

Añadir/Modificar términos
Ultima modificación de "MPEG-4 Parte 10 (H.264/AVC)": 26/12/07

0-9 ] A ] B ] C ] D ] E ] F ] G ] H ] I ] J ] K ] L ] M ] N ] O ] P ] Q ] R ] S ] T ] U ] V ] W ] X ] Y ] Z ]

Macrovision ] Máscara de sombra ] MB ] Metadatos ] MHz ] Midrange ] Midwoofer ] Minidisc ] MJPEG ] MLP ] Mono, monofónico o monaural ] Motor de compresión ] MP3 ] MPEG o MPEG-1 ] MPEG-2 ] MPEG-4 ] [ MPEG-4 Parte 10 (H.264/AVC) ] MSB ] Muestra ]

MPEG-4 Parte 10 (H.264/AVC) - El H.264 (también llamando MPEG-4 parte 10), es un codec de vídeo digital utilizado para alcanzar una alta compresión de datos. Fue realizado por la ITU-T Video Coding Experts Group (VCEG) junto con la ISO/IEC Moving Picture Experts Group (MPEG) como el producto de un esfuerzo de sociedad colectiva conocida como el Joint Video Team (JVT). También es conocido como MPEG-4 AVC (Advanced Video Coding, Codificación Video Avanzada) , ofrece una compresión perceptiblemente mayor que sus precursores.

Puede proporcionar vídeo de calidad DVD con una tasa binaria 40% inferior a la de MPEG-2. Se considera prometedor para vídeo a imagen completa terrestre, satélite y conexiones de banda ancha en Internet. Es también uno de los codecs de video que se han elegido para el Blu-ray y el HD-DVD.

H.264 hace uso las redundancias espaciales, temporales, y psico-visuales para mejorar la eficiencia de la codificación de video.

 

Codificación inter-frame


Como novedad frente a las normas anteriores, H.264 propone nuevas formas de partición de bloques. De este modo, se proporciona una mayor exactitud en la estimación de movimiento, a lo que se suma una precisión que puede llegar hasta un cuarto de píxel

Antes, se realizaban particiones de 8x8. En el H.264, de cada a disminuir información residual y el número de vectores de movimiento, se asignan bloques de diferentes tamaños según sea la cantidad de movimiento que exista entre los distintos frames. A las zonas que cambian menos se le asignan los macrobloques de mayor tamaño (16x16 píxeles), mientras que las zonas con más movimiento estos bloques puede ser descompuestos en sub-bloques de 16x8, 8x16 ó 8x8 píxeles. En este último caso, es posible descomponer a su vez cada sub-bloque de 8x8 píxeles en particiones de 8x4, 4x8 ó 4x4 píxeles.

Aquí podemos ver el proceso de compensación de movimiento en la codificación inter-frame. Cuanto mejor sea la predicción, menos información contendrá el residuo.


Frame de entrada

 


Frame reconstruido a partir de la predicción

 


Diferencia frame de entrada y reconstruido (residuo)

Vectores de movimiento de bloques 16x16

 

Codificación intra-frame


Como novedades frente al MPEG-2, tenemos los slices SP y SI además de los I, P y B

Tipo de Slice

Descripción

Perfil

I (Intra)

Contiene sólo macrobloques I
(predichos de datos codificados previamente dentro del mismo slice, lista 0 ó pasados cercanos)

Todos

P (Predictivo)

Contiene macrobloques P
(predichos  desde una imagen de referencia) y/o macrobloques I

Todos

B  (Bi-Predictivo)

Contiene macrobloques B y/o macrobloques I
(predichos desde listas 0 – pasados cercanos y 1 – futuros cercanos)

Extendido y Principal

SP (Switching P)
Novedad frente a MPEG-2

Facilita transición entreflujos o streams codificados, contiene macrobloques P y/o I

Extendido

SI (Switching I)
Novedad frente a MPEG-2

Facilita transición entre flujos o streams codificados, contiene  macrobloques SI (un tipo especial intra frame)

Extendido

En el modo intraframe, un bloque P está formado de bloques reconstruidos a partir de otros anteriormente codificados. Un bloque puede tener numerosos modos de ser predicho. El codificador generalmente selecciona el que menor diferencia tenga entre el P y el bloque que será codificado

Un frame B se predice ponderando desde múltiples referencias, desde dos listas (0 y 1) que pueden contener frames pasados y futuros. Por ello, el orden en que se transmiten los frames no es el mismo que con el que se reproducen.

Orden de reproducción: I0 B1 B2 B3 P4 B5 B6 ...
Orden del flujo de bits: I0 P4 B1 B3 B2 P8 B5 ...

La novedad frente a MPEG-2 son los frames SP e SI. Han sido ideados para conmutar de manera eficaz entre diferentes flujos de vídeo para un acceso aleatorio en los decodificadores de vídeo más eficiente. En otras palabras, por ejemplo, en un material codificado en distintos bitrates y transmitido a través de Internet, cambiará de manera más suave a un bitrate inferior o superior según sea la capacidad del medio de transmisión en ese momento. Otro ejemplo, es su uso en el avance rápido del video.


Cambio de flujo sin slices SP

 


Cambio de flujo con slices SP

 


Avance rápido con slices SP

 

Codificación por transformada en H.264


Recordemos que la DCT (Transformada Discreta del Coseno) es un algoritmo muy empleado, que convierte los dastos de una imagen o un residuo de compensación de movimiento de un dominio al de la transformada. Los datos ese nuevo dominio, deberían estar:

  • Decorrelados (poca relación entre sí)
  • Compactos (la mayor parte de la energía concentrada en pequeños valores)
  • Reversible (para poder volver al dominio antiguo)
  • Algoritmo computacionalmente eficaz (poco requerimiento en número de operaciones y ocupación en memoria).

Cada macrobloque ha de estar transformado, cuantizado y codificado. En los estándares anteriores (MPEG-1, MPEG-2, 9 primeras partes de MPEG-4 y H.263) se hace uso de la DCT 8x8 como transformada básica. El perfil básico de H.264 usa tres transformadas dependiendo del tipo de datos que serán codificados:

  • Transformada “Hadamard” para matrices 4x4 de luminancia
  • Transformada “Hadamard” para matrices 2x2 de crominancia
  • Transformada DCT para todos los demás bloques 4x4 de datos residuales.

Si se utilizan bloques de diferentes tamaños (4x8, 8x4, 8x8, 16x8) deberán realizarse pequeñas variaciones de la transformada respecto a cada uno de ellos.

Orden de recorrido en la transmisión

Ecuaciones de una matriz 4x4 de luminancia


 

Filtro de "deblocking"


H.264 también integra un “filtro antibloques” que se aplica tanto en el codificador (antes de almacenar macrobloques para futuras predicciones) como en el decodificador (antes de reconstruir y mostrar macrobloques). De este modo, se mejora la compresión.

Visualmente, este filtro suaviza los bordes de los bloques, mejorando la apariencia de los frames y, por tanto, también mejora la calidad de las secuencias de vídeo.

Componente de luminancia de un macrobloque 16x16, con 4 bloques 4x4 señalados.

En este caso, el filtro afectaría a los bloques a y b, dado que el valor de sus pixeles es muy cercano. Se evita en ellos la distorsión visual por bloques.

En los c y d, el filtro se desconectaría, para preservar la nitidez de los bordes de la imagen, dado que en ellos el cambio es más brusco

Ahora veamos una comparación de una imagen reconstruida con y sin filtro deblocking:

 

Cuantificación


La operación básica es:

Zi j = round(Yi j /Qstep)

  • Yij = coeficiente de la transformada
    Qstep = tamaño de cada paso o salto de nivel de cuantización
    Zij = coeficiente cuantizado

El estándar soporta 52 niveles de cuantización, que representa un aumento respecto a estándares anteriores. Gracias a la fórmula, más eficaz que redondear al entero más cercano, hay un pequeño aumento de calidad visual, puesto que dicho redondeo se efectúa cada vez de manera diferente. Cada paso del parámetro de cuantificación (QP) incrementa un 12,5% el intervalo de cuantificación, lo que equivale a duplicarlo por cada 6 pasos.

 

Codificación


Existen dos modos de exploración de los coeficientes transformados: "zig-zag" y "zig-zag inverso". El segundo modo de exploración permite en particular la lectura del macrobloque en sentido contrario para poder funcionar con la codificación de entropía adaptativa.

El primer tipo de recorrido hace referencia a la codificación Huffman. El segundo, a codificación aritmética. En el MPEG-2 únicamente tenemos el primero de ellos.

La codificación de entropía se puede realizar de tres formas diferentes.:

  • UVLC (Universal Variable Length Coding). Este tipo de codificación es utilizado para codificar la gran mayoría de los elementos de sincronización y cabeceras.
  • VLC (Variable Length Coding) de forma adaptativa, para codificar el resto de elementos sintácticos (coeficientes, vectores de movimiento). Existen dos variantes:
    • CAVLC (Context Adaptative Variable Length Coding)
    • CABAC (Context Adaptative Binary Arithmetic Coding)

 

Esquema general H.264


 

Tabla resumen de comparación de características entre formatos


  MPEG-2 MPEG-4 ASP
(parte 2)
MPEG-4 H.254
(parte 4)
Frames I, P, B
Codificación Huffmann Huffmann Huffmann o aritmética
Tamaño del bloque 16 x 16 16 x 16 Variable (4x4 - 16x16)
Resolución de cuarto de píxel No
Filtro deblocking No No
Predicción de movimiento basada en slices No No
Frames con referencias múltiples No No
Predicción ponderada No No
Conmutación de imágenes No No
Comparación de bitrate 100% 60% 40%

 

Comparación de curvas R-D (Ratio de compresión vs. Distorsión


Se ve cómo la curva R-D (ratio de bits – distorsión, dada ésta última en dB de relación señal/ruido, de ahí la forma logarítmica) del H.264 es mucho más óptima que las demás.

Por ejemplo, para una S/N de 30 dB, H.264 necesita unos 180 kb/s mientras que MPEG-2 necesita unos 450 kb/s.

Bitrate necesario, por años

Comparación entre MPEG-2, H.263, MPEG-4 y H.264.

 

Resumen final


  • El H.264 es un estándar nacido a partir de otros anteriores, pero con importantes diferencias y mejoras respecto a ellos.
  • Las nuevas características son:
    • Codificación de entropía mejorada
    • Compensación/predicción de movimiento mejorada
    • Pequeños bloques para la codificación por transformada
    • Filtro “deblocking” mejorado
  • Ahorros sustanciales de bitrate (hasta un 50%) respecto a otros estándares, manteniendo la misma calidad de imagen
  • Mejora de calidad de imagen manteniendo la misma relación S/N
  • La complejidad del codificador triplica la de los anteriores
  • La complejidad del decodificador duplica la de los anteriores
Términos relacionados:

0-9 ] A ] B ] C ] D ] E ] F ] G ] H ] I ] J ] K ] L ] M ] N ] O ] P ] Q ] R ] S ] T ] U ] V ] W ] X ] Y ] Z ]

     
 

Volver arriba Volver arriba

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto