O que é um macrobloco?
Um macrobloco é um grupo retangular de amostras de luma e croma processado como uma unidade em codecs mais antigos baseados em blocos, como MPEG-2 e H.264. Um macrobloco típico abrange 16×16 amostras de luma.
Como funcionam os macroblocos
Um macrobloco agrupa amostras vizinhas para que um codec possa tomar decisões de predição, transformada, quantização e sinalização em uma região de tamanho gerenciável. A área de luma costuma ser dividida em blocos menores de predição ou transformada, e a cobertura de croma associada depende do formato de amostragem. Os codificadores comparam modos de codificação e usam mais bits onde a predição é fraca ou o detalhe é importante. Os decodificadores reconstroem as mesmas regiões e podem filtrar seus limites para reduzir descontinuidades visíveis.
Informações essenciais
- No H.264, um macrobloco abrange 16×16 amostras de luma, mas pode usar partições menores de predição de movimento; a quantidade de amostras de croma associadas varia conforme a subamostragem de croma.
- Os limites dos blocos podem se tornar evidentes após uma quantização grosseira, pois regiões vizinhas são reconstruídas de forma independente. A filtragem de desbloqueio dentro do ciclo de codificação reduz esse artefato e afeta referências posteriores.
- O HEVC substituiu a estrutura centrada em macroblocos por unidades de árvore de codificação que podem ser divididas recursivamente. As ferramentas de diagnóstico precisam usar a terminologia e o modelo de particionamento do codec efetivamente utilizado.
Quando os macroblocos são importantes
A análise de macroblocos ajuda a diagnosticar a predição de movimento, a alocação de taxa de bits e artefatos de compressão em forma de blocos. Codecs mais recentes podem usar unidades de codificação diferentes, por isso as ferramentas precisam ser compatíveis com o formato codificado.