¿Qué es un macrobloque?
Un macrobloque es un grupo rectangular de muestras de luma y croma que se procesa como una unidad en códecs antiguos basados en bloques, como MPEG-2 y H.264. Un macrobloque típico abarca 16×16 muestras de luma.
Cómo funcionan los macrobloques
Un macrobloque agrupa muestras vecinas para que un códec pueda tomar decisiones de predicción, transformada, cuantización y señalización sobre una región manejable. El área de luma suele dividirse en bloques de predicción o de transformada más pequeños, y la cobertura de croma asociada depende del formato de muestreo. Los codificadores comparan modos de codificación y destinan más bits a las regiones donde la predicción es poco precisa o el detalle es importante. Los decodificadores reconstruyen las mismas regiones y pueden filtrar sus límites para reducir las discontinuidades visibles.
Datos clave
- En H.264, un macrobloque abarca 16×16 muestras de luma, pero puede utilizar particiones más pequeñas para la predicción de movimiento; la cantidad de muestras de croma asociadas varía según el submuestreo de croma.
- Los límites de los bloques pueden hacerse notorios tras una cuantización gruesa porque las regiones vecinas se reconstruyen de forma independiente. El filtrado de desbloqueo dentro del bucle reduce este artefacto y afecta a las referencias posteriores.
- HEVC sustituyó el diseño centrado en macrobloques por unidades de árbol de codificación que pueden dividirse de forma recursiva. Las herramientas de diagnóstico deben utilizar la terminología y el modelo de partición del códec real.
Cuándo son importantes los macrobloques
El análisis de macrobloques ayuda a diagnosticar la predicción de movimiento, la asignación de tasa de bits y los artefactos de compresión con forma de bloque. Los códecs más recientes pueden utilizar unidades de codificación diferentes, por lo que las herramientas deben corresponder al formato codificado.