El macrobloque es una unidad de procesamiento en formatos de compresión de imagen y vídeo basada en transformaciones de bloques lineales, típicamente la transformada discreta del coseno (DCT). Un macrobloque generalmente consta de 16×16 muestras y se subdivide en bloques de transformación, que a su vez pueden subdividirse en bloques de predicción. Los formatos que se basan en macrobloques incluyen JPEG , donde se denominan bloques MCU , H.261 , MPEG-1 Parte 2 , H.262/MPEG-2 Parte 2 , H.263 , MPEG-4 Parte 2 y H.264/MPEG-4 AVC . [ 1 ] [ 2 ] [ 3 ] [ 4 ] En H.265/HEVC , el macrobloque como unidad de procesamiento básica ha sido reemplazado por la unidad de árbol de codificación . [ 5 ]
Detalles técnicos
bloques de transformación
Un macrobloque se divide en bloques de transformación, que sirven como entrada para la transformación de bloque lineal, por ejemplo, la DCT. En H.261, el primer códec de vídeo que utilizó macrobloques, los bloques de transformación tienen un tamaño fijo de 8×8 muestras. [ 1 ] En el espacio de color YCbCr con submuestreo de croma 4:2:0 , un macrobloque de 16×16 consta de 16×16 muestras de luminancia (Y) y 8×8 muestras de croma (Cb y Cr). Estas muestras se dividen en cuatro bloques Y, un bloque Cb y un bloque Cr. Este diseño también se utiliza en JPEG y en la mayoría de los demás códecs de vídeo basados en macrobloques con un tamaño de bloque de transformación fijo, como MPEG-1 Parte 2 y H.262/MPEG-2 Parte 2. En otros formatos de submuestreo de croma , por ejemplo, 4:0:0, 4:2:2 o 4:4:4, el número de muestras de croma en un macrobloque será menor o mayor, y la agrupación de las muestras de croma en bloques diferirá en consecuencia.
En los estándares de codificación de vídeo basados en macrobloques más modernos, como H.263 y H.264/AVC, los bloques de transformación pueden tener tamaños distintos a 8×8 muestras. Por ejemplo, en el perfil principal de H.264/AVC, el tamaño del bloque de transformación es de 4×4. [ 4 ] En el perfil alto de H.264/AVC, el tamaño del bloque de transformación puede ser de 4×4 u 8×8, adaptándose a cada macrobloque. [ 4 ]
Bloques de predicción
A diferencia de la división en bloques de transformación, un macrobloque puede dividirse en bloques de predicción. En estándares antiguos como H.261, MPEG-1 Parte 2 y H.262/MPEG-2 Parte 2, la compensación de movimiento se realiza con un vector de movimiento por macrobloque. [ 1 ] [ 2 ] En estándares más modernos como H.264/AVC, un macrobloque puede dividirse en múltiples bloques de predicción de tamaño variable, llamados particiones. [ 4 ] En un macrobloque de predicción inter en H.264/AVC, se especifica un vector de movimiento separado para cada partición. [ 4 ] Correspondientemente, en un macrobloque de predicción intra, donde las muestras se predicen extrapolando desde los bordes de los bloques vecinos, la dirección predicha se especifica por partición. [ 4 ] En H.264/AVC, el tamaño de la partición de predicción varía de 4×4 a 16×16 muestras tanto para la predicción inter (compensación de movimiento) como para la predicción intra. [ 4 ]
Representación del flujo de bits
A continuación se muestra una posible representación en flujo de bits de un macrobloque en un códec de vídeo que utiliza compensación de movimiento y codificación de transformación . [ 6 ] Es similar al formato utilizado en H.261 . [ 1 ]
+------+------+-------+--------+-----+----+----+--------+ | DIRECCIÓN | TIPO | CANTIDAD | VECTOR | CBP | b0 | b1 | ... b5 | +------+------+-------+--------+-----+----+----+--------+
- ADDR — dirección del bloque en la imagen
- TIPO : identifica el tipo de macrobloque ( intraframe , interframe , interframe bidireccional )
- CUANT : valor de cuantización para variar la cuantización
- VECTOR — vector de movimiento
- CBP — Patrón de Bloque Codificado, esta es una máscara de bits que indica para qué bloques están presentes los coeficientes.
- bN — los bloques (4 Y, 1 Cr, 1 Cb)
Macrobloqueo
El término macrobloqueo se usa comúnmente para referirse a artefactos de codificación por bloques.
Véase también
Referencias
- 1 2 3 4 UIT-T (marzo de 1993). "Códec de vídeo para servicios audiovisuales a 64 kbit/s por píxel" . Consultado el 28 de abril de 2013 .
- 1 2 UIT-T (febrero de 2012). "Codificación de vídeo avanzada para servicios audiovisuales genéricos" . Recuperado el 28 de abril de 2013 .
- ↑ UIT-T (enero de 2005). "Codificación de vídeo para comunicaciones de baja velocidad de bits" . Consultado el 28 de abril de 2013 .
- 1 2 3 4 5 6 7 UIT-T (abril de 2013). "Tecnología de la información : codificación genérica de imágenes en movimiento e información de audio asociada: vídeo" . Recuperado el 28 de abril de 2013 .
- ↑ GJ Sullivan; J.-R. Ohm; W.-J. Han; T. Wiegand (25 de mayo de 2012). "Descripción general del estándar de codificación de vídeo de alta eficiencia (HEVC)" (PDF) . IEEE Transactions on Circuits and Systems for Video Technology . Consultado el 26 de abril de 2013 .
- ↑ Marshall, Dave (10 de abril de 2001). "Codificación intra-fotograma" . Módulo multimedia n.º CM0340 . Consultado el 13 de febrero de 2014 .
- Compresión de vídeo
- Compresión de imágenes
- Compresión de datos