Введение

Глобальная компенсация движения (GMC) — это метод компенсации движения, применяемый при сжатии видео для снижения битрейта, необходимого для его кодирования. Чаще всего он используется в MPEG-4 ASP, например, в кодеках DivX и Xvid.

Операция

Глобальная компенсация движения описывает движение в сцене на основе одной инструкции аффинного преобразования. Ориентировочное изображение панорамируется, вращается и масштабируется в соответствии с точками искажения GMC для создания прогноза того, как будет выглядеть следующий кадр. Поскольку эта операция выполняется над отдельными пикселями (а не блоками), она способна создавать прогнозы, недостижимые при использовании блочных методов. Каждый макроблок в таком кадре может быть компенсирован с использованием глобального движения (дальнейшая информация о движении при этом не передается) или, альтернативно, локального движения (как если бы GMC был отключен). Этот выбор, хотя и требует дополнительного бита на макроблок, может повысить качество прогнозирования и, следовательно, уменьшить остаток. Поскольку преобразования, используемые в глобальной компенсации движения, добавляются в поток кодирования только при их применении, они не создают постоянных накладных расходов по битрейту. Кадр, предсказанный с использованием GMC, называется S-кадром (sprite frame), а кадр, предсказанный без GMC, называется либо P-кадром, если он был предсказан исключительно на основе предыдущих (прошлых) кадров, либо B-кадром, если он был предсказан совместно с прошлыми и будущими кадрами (кадр, закодированный как целое изображение без предсказания, называется I-кадром).

Реализация

DivX предлагает кодирование GMC с одной точкой варпа: это облегчает аппаратную поддержку в сертифицированных и несертифицированных устройствах DivX. Однако, поскольку 1 точка варпа GMC ограничивает глобальное преобразование только операцией панорамирования (так как панорамирование можно описать блоками), эта реализация редко улучшает качество видео. Xvid предлагает кодирование GMC с 3 точками варпа: в результате, в настоящее время аппаратная поддержка отсутствует.

Критика

GMC не оправдал ожиданий значительного улучшения компенсации движения, и в результате он был исключен из спецификации H.264/MPEG 4 AVC, разработанной как преемник MPEG 4 ASP. Большинство преимуществ GMC можно было достичь благодаря более точному прогнозированию векторов движения. GMC также требует значительных вычислительных ресурсов при кодировании, что дает лишь небольшое улучшение качества. Из-за дополнительной нагрузки на процессор при декодировании с глобальной компенсацией движения, большинство аппаратных проигрывателей не поддерживают эту функцию.