Макроблока представляет собой модуль обработки, в изображения и сжатия видео форматов, основанных на линейных блок преобразования, как правило, дискретного косинусного преобразования (DCT). Макроблок обычно состоит из 16 × 16 отсчетов и дополнительно подразделяется на блоки преобразования и может дополнительно подразделяться на блоки прогнозирования. Форматы, основанные на макроблоках, включают JPEG, где они называются блоками MCU, H.261, MPEG-1 Part 2, H.262 / MPEG-2 Part 2, H.263, MPEG-4 Part 2 и H.264. / MPEG-4 AVC. В H.265 / HEVC макроблок как базовый блок обработки заменен блоком дерева кодирования.
Макроблок делится на блоки преобразования, которые служат входными данными для линейного блочного преобразования, например DCT. В H.261, первом видеокодеке, использующем макроблоки, блоки преобразования имеют фиксированный размер 8 × 8 отсчетов. В цветовом пространстве YCbCr с субдискретизацией цветности 4: 2: 0 макроблок 16 × 16 состоит из 16 × 16 отсчетов яркости (Y) и 8 × 8 отсчетов цветности (Cb и Cr). Эти выборки разделены на четыре блока Y, один блок Cb и один блок Cr. Эта конструкция также используется в JPEG и большинстве других видеокодеков на основе макроблоков с фиксированным размером блока преобразования, таких как MPEG-1 Part 2 и H.262 / MPEG-2 Part 2. В других форматах субдискретизации цветности, например 4: 0: 0, 4: 2: 2 или 4: 4: 4, количество отсчетов цветности в макроблоке будет меньше или больше, и группировка отсчетов цветности в блоки будет соответственно отличаться.
В более современных стандартах кодирования видео на основе макроблоков, таких как H.263 и H.264 / AVC, блоки преобразования могут иметь размеры, отличные от 8 × 8 отсчетов. Например, в основном профиле H.264 / AVC размер блока преобразования составляет 4 × 4. В профиле H.264 / AVC High размер блока преобразования может быть 4 × 4 или 8 × 8, адаптированный для каждого макроблока.
В отличие от разделения на блоки преобразования, макроблок может быть разделен на блоки прогнозирования. В ранних стандартах, таких как H.261, MPEG-1 Part 2 и H.262 / MPEG-2 Part 2, компенсация движения выполняется с одним вектором движения на макроблок. В более современных стандартах, таких как H.264 / AVC, макроблок может быть разделен на несколько блоков прогнозирования переменного размера, называемых разделами. В макроблоке с внешним предсказанием в H.264 / AVC для каждого раздела указывается отдельный вектор движения. Соответственно, в макроблоке с внутренним предсказанием, где выборки предсказываются экстраполяцией от краев соседних блоков, направление предсказания задается для каждого раздела. В H.264 / AVC размер раздела прогнозирования находится в диапазоне от 4 × 4 до 16 × 16 выборок как для внешнего прогнозирования (компенсация движения), так и для внутреннего прогнозирования.
Возможное представление битового потока макроблока в видеокодеке, в котором используется компенсация движения и кодирование с преобразованием, приведено ниже. Он похож на формат, используемый в H.261.
+------+------+-------+--------+-----+----+----+--------+ | ADDR | TYPE | QUANT | VECTOR | CBP | b0 | b1 |... b5 | +------+------+-------+--------+-----+----+----+--------+
Термин макроблокирование обычно используется для обозначения артефактов блочного кодирования.