Гибкий заказ макроблоков


Гибкое упорядочение макроблоков или FMO — это один из нескольких инструментов устойчивости к ошибкам, определенных в базовом профиле стандарта сжатия видео H.264/MPEG-4 AVC .

Одной из характеристик стандарта H.264/AVC является возможность разделения изображения на области, называемые слайсами, каждая из которых содержит последовательность макроблоков и может декодироваться независимо от других слайсов. Эти макроблоки обрабатываются в порядке сканирования, обычно слева направо, начиная сверху. Кадр может состоять из одного или нескольких фрагментов для параллельной обработки и устойчивости к ошибкам, поскольку ошибки в фрагменте распространяются только внутри этого фрагмента.

Гибкое упорядочение макроблоков расширяет эту возможность, позволяя группировать и отправлять макроблоки в любом направлении и порядке, а также может использоваться для создания фигурных и несмежных групп фрагментов. [1] Таким образом, FMO позволяет более гибко решать, к каким макроблокам слайса принадлежат, чтобы распределить ошибки [2] и не допустить, чтобы ошибки в одной части кадра скомпрометировали другую часть кадра. FMO построен на основе другого инструмента устойчивости к ошибкам, произвольного порядка срезов , поскольку каждая группа срезов может быть отправлена ​​в любом порядке и при необходимости может быть декодирована в порядке получения, а не в обычном порядке сканирования.

Отдельные фрагменты по-прежнему должны представлять собой непрерывные горизонтальные области макроблоков, но с помощью групп фрагментов FMO компенсация движения может осуществляться внутри любых смежных макроблоков по всей группе; по сути, каждая группа фрагментов рассматривается как один или несколько фрагментов непрерывной формы для целей компенсации движения.

Почти все видеокодеки допускают кодирование области интереса , при котором определенные макроблоки нацелены на получение более или менее качества, каноническим примером является голова диктора, которой присваивается более высокое соотношение битов, чем фон. Основное преимущество FMO в сочетании с кодированием RoI — это возможность предотвратить распространение ошибок из одного региона в другой регион. Например, если фрагмент фона утерян, фон может быть поврежден в течение некоторого времени, но лицо диктора это не повлияет, и становится проще отправлять регулярные обновления наиболее важного фрагмента, чтобы компенсировать любые ошибки в нем.

Срезы, используемые с FMO, не являются статичными и могут меняться по мере изменения обстоятельств, например, при отслеживании движущегося объекта. Структура, называемая MBAmap , сопоставляет каждый макроблок с группой фрагментов и может быть обновлена ​​в любое время с помощью определенных шаблонов по умолчанию, таких как чередование фрагментов (группы чередуются в каждой строке сканирования) или разбросанные фрагменты (группы чередуются в каждом блоке). [3] Благодаря этим шаблонам FMO позволяет лучше сохранить локализованный визуальный контекст, чтобы алгоритмы сокрытия ошибок могли восстановить недостающий контент. [3]