stringtranslate.com

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

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

Описание

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

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

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

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

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

Некоторые передовые методы кодирования могут имитировать некоторые преимущества FMO. В H.264/AVC кадры P (предсказанные) и B (двухпрогнозированные) могут содержать I (внутрипредсказанные) блоки, в которых хранится независимое изображение. Вместо того, чтобы создавать срез для периодического полного обновления кадрами I или IDR, I-блоки можно отправлять в любом желаемом шаблоне, в то время как прогнозируемые блоки составляют остальную часть изображения. Хотя ошибки по-прежнему будут распространяться горизонтально, I-блоки можно отправлять по шаблонам, например, в пользу интересующей области или разбросанной шахматной доски, чтобы имитировать обновления фигурных срезов. При двунаправленной связи с клиентом потерянные фрагменты могут быть обновлены сразу после их обнаружения, но это невозможно для более широкой трансляции.

Компромиссы

FMO разрешен только в базовом и расширенном профилях. Гораздо более распространенные профили Constrained Baseline, Main и All High не поддерживают его, а программное обеспечение, которое может его создать или декодировать, встречается редко. Его используют некоторые устройства видеоконференцсвязи; в противном случае основной поддержкой является эталонное программное обеспечение JM. [4]

Использование нескольких фрагментов на изображение всегда снижает эффективность кодирования, и FMO может еще больше повлиять на это. Чем более разбросаны фрагменты, тем хуже становится, причем худшим является шахматный узор (см. «Разбросанные фрагменты» ниже). Цели распространения ошибок и эффективности кодирования находятся в прямом противоречии. FMO позволяет выполнять взаимное предсказание для ближайших соседних срезов в одной группе, эффективно заставляя непрерывный регион действовать почти как один срез; в некоторых ситуациях, когда группы срезов формируются в область интереса, это действительно может немного повысить эффективность по сравнению с простыми стандартными срезами, но польза редка и невелика. По этой причине FMO следует использовать только там, где потери пакетов являются обычным и ожидаемым явлением.

Помимо повышенной сложности кодирования и декодирования и снижения эффективности, внутрицикловая деблокировка также создает проблему: срезы можно отправлять в любом порядке, но для деблокирования требуются все файлы . Либо деблокер должен выполнять несколько проходов всякий раз, когда принимается другой фрагмент, либо все изображение необходимо буферизовать перед началом деблокирования, что может создать дополнительную задержку, если фрагменты задерживаются достаточно долго, чтобы фрагменты следующего изображения начали поступать первыми. [3]

Детали реализации

При использовании FMO изображение можно разделить на различные шаблоны сканирования макроблоков, при этом несколько встроенных шаблонов, определенных в спецификации, обозначаются как 0–5 в единице среза_группы_map_type , а также одна опция для включения всей явно назначенной MBAmap, сигнализируемой как 6. Тип карты и новую карту MBAmap можно отправить в любое время. [5]

(На изображении выше «Тип 0» показывает стандартные фрагменты H.264, а не чередующиеся группы фрагментов.)

Рекомендации

  1. ^ Венгер, Стефан; Горовиц, Майкл. «FMO: Гибкий заказ макроблоков».
  2. ^ «Устойчивость к ошибкам и сокрытие в H.264 MPEG-4, часть 10» .
  3. ^ abc Венгер, Стефан; Горовиц, Майкл. «ФМО 101».
  4. ^ «Справочное программное обеспечение H.264» .
  5. ^ Виганд, Томас; Салливан, Гэри. «Проект Рекомендации МСЭ-Т и окончательный проект международного стандарта совместной спецификации видео (Рекомендация МСЭ-Т H.264 / ISO/IEC 14496-10 AVC)» (PDF) .