Глобальная компенсация движения в видеокодеках MPEG-4 ASP: Принцип работы и недостатки
Global motion compensation
Глобальная компенсация движения (GMC) в видео: снижение битрейта при сжатии видео MPEG 4 ASP (DivX, Xvid). Точное предсказание кадров, улучшенное качество.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Глобальная компенсация движения (GMC) — это метод компенсации движения, применяемый при сжатии видео для снижения битрейта, необходимого для его кодирования. Чаще всего он используется в MPEG-4 ASP, например, в кодеках DivX и Xvid.
Global motion compensation (GMC) is a motion compensation technique used in video compression to reduce the bitrate required to encode video. It is most commonly used in MPEG 4 ASP, such as with the DivX and Xvid codecs.
Операция
Глобальная компенсация движения описывает движение в сцене на основе одной инструкции аффинного преобразования. Ориентировочное изображение панорамируется, вращается и масштабируется в соответствии с точками искажения GMC для создания прогноза того, как будет выглядеть следующий кадр. Поскольку эта операция выполняется над отдельными пикселями (а не блоками), она способна создавать прогнозы, недостижимые при использовании блочных методов. Каждый макроблок в таком кадре может быть компенсирован с использованием глобального движения (дальнейшая информация о движении при этом не передается) или, альтернативно, локального движения (как если бы GMC был отключен). Этот выбор, хотя и требует дополнительного бита на макроблок, может повысить качество прогнозирования и, следовательно, уменьшить остаток. Поскольку преобразования, используемые в глобальной компенсации движения, добавляются в поток кодирования только при их применении, они не создают постоянных накладных расходов по битрейту. Кадр, предсказанный с использованием GMC, называется S-кадром (sprite frame), а кадр, предсказанный без GMC, называется либо P-кадром, если он был предсказан исключительно на основе предыдущих (прошлых) кадров, либо B-кадром, если он был предсказан совместно с прошлыми и будущими кадрами (кадр, закодированный как целое изображение без предсказания, называется I-кадром).
Global motion compensation describes the motion in a scene based on a single affine transform instruction. The reference frame is panned, rotated and zoomed in accordance to GMC warp points to create a prediction of how the following frame will look. Since this operation works on individual pixels (rather than blocks), it is capable of creating predictions that are not possible using block based approaches. Each macroblock in such a frame can be compensated using global motion (no further motion information is then signalled) or, alternatively, local motion (as if GMC were off). This choice, while costing an additional bit per macroblock, can improve prediction quality and therefore reduce residual. Because the transforms used in global motion compensation are only added to the encoding stream when used, they do not have a constant bitrate overhead. A predicted frame which uses GMC is called an S frame (sprite frame) while a predicted frame encoded without GMC is called either a P frame, if it was predicted purely by previous (past) frames, or a B frame if it was predicted jointly with past and future frames (an unpredicted frame encoded as a whole image is referred to as an I frame).
Реализация
DivX предлагает кодирование GMC с одной точкой варпа: это облегчает аппаратную поддержку в сертифицированных и несертифицированных устройствах DivX. Однако, поскольку 1 точка варпа GMC ограничивает глобальное преобразование только операцией панорамирования (так как панорамирование можно описать блоками), эта реализация редко улучшает качество видео. Xvid предлагает кодирование GMC с 3 точками варпа: в результате, в настоящее время аппаратная поддержка отсутствует.
DivX offers 1 warp point GMC encoding: This enables easier hardware support in DivX certified and non certified devices. But as 1 warp point GMC limits the global transform to panning operation only (since panning can be described using blocks), this implementation rarely improves video quality. Xvid offers 3 warp point GMC encoding: As a result, it currently has no hardware support.
Критика
GMC не оправдал ожиданий значительного улучшения компенсации движения, и в результате он был исключен из спецификации H.264/MPEG 4 AVC, разработанной как преемник MPEG 4 ASP. Большинство преимуществ GMC можно было достичь благодаря более точному прогнозированию векторов движения. GMC также требует значительных вычислительных ресурсов при кодировании, что дает лишь небольшое улучшение качества. Из-за дополнительной нагрузки на процессор при декодировании с глобальной компенсацией движения, большинство аппаратных проигрывателей не поддерживают эту функцию.
GMC failed to meet expectations of dramatic improvements in motion compensation, and as a result it was omitted from the H.264/MPEG 4 AVC specification designed as a successor to MPEG 4 ASP. Most of GMC's benefits could be obtained via better motion vector prediction. GMC also represents a large computational cost during encoding which yields relatively minor quality improvements. Due to the extra decoding CPU cost of global motion compensation, most hardware players do not support global motion compensation.