Компенсация движения

редактировать
Визуализация компенсации движения блока MPEG. Блоки, которые перемещались из одного кадра в другой, показаны белыми стрелками, что делает четко видимыми движения различных платформ и персонажа.

Компенсация движения - это алгоритмический метод, используемый для прогнозирования кадра в видео с учетом предыдущих и / или будущих кадров с учетом движения камеры и / или объектов в видео. Он используется при кодировании видеоданных для сжатия видео, например, при создании файлов MPEG-2. Компенсация движения описывает изображение с точки зрения преобразования опорного изображения в текущее изображение. Эталонное изображение может быть предыдущим во времени или даже из будущего. Когда изображения могут быть точно синтезированы из ранее переданных / сохраненных изображений, эффективность сжатия может быть повышена.

Компенсация движения - это один из двух ключевых методов сжатия видео, используемых в стандартах кодирования видео, наряду с дискретным косинусным преобразованием (DCT). Большинство стандартов кодирования видео, таких как форматы H.26x и MPEG, обычно используют гибридное кодирование DCT с компенсацией движения, известное как компенсация движения блока (BMC) или DCT с компенсацией движения (MC DCT).

СОДЕРЖАНИЕ
  • 1 Функциональность
  • 2 Иллюстрированный пример
  • 3 MPEG
  • 4 Глобальная компенсация движения
  • 5 DCT с компенсацией движения
    • 5.1 Компенсация движения блока
    • 5.2 Компенсация движения переменного размера блока
    • 5.3 Компенсация движения перекрывающегося блока
  • Компенсация движения 6 четверть пикселей (QPel) и половина пикселей
  • 7 методов кодирования 3D-изображений
  • 8 История
    • 8.1 DCT с компенсацией движения
  • 9 См. Также
  • 10 приложений
  • 11 Источники
  • 12 Внешние ссылки
Функциональность

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

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

Иллюстрированный пример

Ниже приводится упрощенное иллюстрированное объяснение того, как работает компенсация движения. Два последовательных кадра были сняты из фильма « Сон слонов». Как видно из изображений, нижняя (с компенсацией движения) разница между двумя кадрами содержит значительно меньше деталей, чем предыдущие изображения, и поэтому сжимается намного лучше, чем остальные. Таким образом, информация, которая требуется для кодирования скомпенсированного кадра, будет намного меньше, чем с разностным кадром. Это также означает, что также возможно кодировать информацию с использованием разностного изображения за счет меньшей эффективности сжатия, но за счет экономии сложности кодирования без кодирования с компенсацией движения; Фактически, кодирование с компенсацией движения (вместе с оценкой движения, компенсацией движения) занимает более 90% сложности кодирования.

Тип Пример кадра Описание
Оригинал Пример компенсации движения-original.jpg Полный исходный кадр, как показано на экране.
Разница Пример компенсации движения-difference.jpg Различия между исходным кадром и следующим кадром.
Разница с компенсацией движения Компенсация движения, пример-компенсированная разница.jpg Различия между исходным кадром и следующим кадром, сдвинутым вправо на 2 пикселя. Сдвиг кадры компенсируют для панорамирования камеры, таким образом, существует большая перекрытие между двумя кадрами.
MPEG

В MPEG изображения предсказываются из предыдущих кадров ( P-кадры ) или двунаправленно из предыдущих и будущих кадров ( B-кадры ). B-кадры более сложны, потому что последовательность изображений должна передаваться и храниться не по порядку, чтобы будущий кадр был доступен для генерации B-кадров.

После прогнозирования кадров с использованием компенсации движения кодер находит остаток, который затем сжимается и передается.

Компенсация глобального движения

При глобальной компенсации движения модель движения в основном отражает движения камеры, такие как:

  • Dolly - перемещение камеры вперед или назад
  • Трек - перемещение камеры влево или вправо
  • Стрела - перемещение камеры вверх или вниз
  • Панорама - вращение камеры вокруг оси Y, перемещение обзора влево или вправо.
  • Наклон - поворот камеры вокруг оси X, перемещение обзора вверх или вниз
  • Roll - вращение камеры вокруг оси обзора

Лучше всего он работает для неподвижных сцен без движущихся объектов.

Есть несколько преимуществ глобальной компенсации движения:

  • Он моделирует доминирующее движение, обычно встречающееся в видеопоследовательностях, всего с несколькими параметрами. Доля в битрейте этих параметров ничтожна.
  • Он не разделяет фреймы. Это позволяет избежать артефактов на границах раздела.
  • Прямая линия (во времени) пикселей с равными пространственными положениями в кадре соответствует непрерывно движущейся точке в реальной сцене. В других схемах MC возникают разрывы во времени.

MPEG-4 ASP поддерживает GMC с тремя опорными точками, хотя некоторые реализации могут использовать только одну. Единственная опорная точка допускает только поступательное движение, которое из-за относительно больших затрат на производительность дает небольшое преимущество перед компенсацией движения на основе блоков.

Движущиеся объекты в кадре недостаточно представлены глобальной компенсацией движения. Таким образом, также необходима оценка местного движения.

DCT с компенсацией движения

Компенсация движения блока

Блочная компенсация движения (BMC), также известная как дискретное косинусное преобразование с компенсацией движения (MC DCT), является наиболее широко используемым методом компенсации движения. В BMC кадры разделяются на блоки пикселей (например, макроблоки размером 16 × 16 пикселей в MPEG ). Каждый блок предсказывается из блока равного размера в опорном кадре. Блоки никоим образом не преобразуются, кроме смещения в позицию предсказанного блока. Этот сдвиг представлен вектором движения.

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

Можно сдвинуть блок на нецелое число пикселей, что называется субпиксельной точностью. Промежуточные пиксели генерируются путем интерполяции соседних пикселей. Обычно используется полупиксельная или четвертьпиксельная точность ( Qpel, используемая H.264 и MPEG-4 / ASP). Вычислительные затраты на точность субпикселей намного выше из-за дополнительной обработки, необходимой для интерполяции, а на стороне кодера - гораздо большего количества потенциальных исходных блоков, которые необходимо оценить.

Основным недостатком компенсации движения блока является то, что она вносит разрывы на границах блока (блокирующие артефакты). Эти артефакты проявляются в виде резких горизонтальных и вертикальных краев, которые легко обнаруживаются человеческим глазом, и создают ложные края и эффекты звона (большие коэффициенты в высокочастотных поддиапазонах) из-за квантования коэффициентов преобразования Фурье, используемого для кодирование с преобразованием из остаточных кадров

Блок компенсация движения делит текущий кадр в неперекрывающиеся блоки, и вектор компенсации движения о том, где этих блоках приходят из (общего заблуждение состоит в том, что предыдущий кадр делится на неперекрывающиеся блоки, а векторы компенсации движения сказать, где эти блоки перемещаются в). Исходные блоки обычно перекрываются в исходном кадре. Некоторые алгоритмы сжатия видео собирают текущий кадр из частей нескольких различных ранее переданных кадров.

Кадры также можно предсказать из будущих кадров. В таком случае будущие кадры необходимо кодировать до предсказанных кадров, и, таким образом, порядок кодирования не обязательно соответствует реальному порядку кадров. Такие кадры обычно прогнозируются с двух направлений, то есть из I- или P-кадров, которые непосредственно предшествуют или следуют за прогнозируемым кадром. Эти кадры с двунаправленным предсказанием называются B-кадрами. Схема кодирования может, например, быть IBBPBBPBBPBB.

Кроме того, для компенсации движения также было предложено использование треугольных плиток. По этой схеме кадр выложен треугольниками, а следующий кадр создается путем выполнения аффинного преобразования этих треугольников. Записываются / передаются только аффинные преобразования. Это способно работать с масштабированием, вращением, перемещением и т. Д.

Компенсация движения переменного размера блока

Компенсация движения с переменным размером блока (VBSMC) - это использование BMC с возможностью кодера динамически выбирать размер блоков. При кодировании видео использование больших блоков может уменьшить количество битов, необходимых для представления векторов движения, в то время как использование меньших блоков может привести к меньшему количеству остаточной информации предсказания для кодирования. В других областях работы изучалось использование метрик функций переменной формы за пределами блоков, на основе которых могут быть вычислены межкадровые векторы. В более старых проектах, таких как H.261 и MPEG-1 видео, обычно используется фиксированный размер блока, в то время как в более новых, таких как H.263, MPEG-4 Part 2, H.264 / MPEG-4 AVC и VC-1, кодировщик возможность динамически выбирать, какой размер блока будет использоваться для представления движения.

Компенсация движения перекрывающегося блока

Компенсация движения перекрывающихся блоков (OBMC) является хорошим решением этих проблем, поскольку она не только увеличивает точность прогнозирования, но и позволяет избежать артефактов блокировки. При использовании OBMC блоки обычно в два раза больше в каждом измерении и перекрываются по квадрантам со всеми 8 соседними блоками. Таким образом, каждый пиксель принадлежит 4 блокам. В такой схеме есть 4 прогноза для каждого пикселя, которые суммируются до взвешенного среднего. Для этой цели блоки связаны с оконной функцией, которая имеет свойство, состоящее в том, что сумма 4 перекрывающихся окон везде равна 1.

Исследования методов уменьшения сложности OBMC показали, что вклад в оконную функцию наименьший для диагонально смежного блока. Уменьшение веса этого вклада до нуля и увеличение других весов на равную величину приводит к существенному снижению сложности без большого ухудшения качества. В такой схеме каждый пиксель тогда принадлежит 3 блокам, а не 4, и вместо использования 8 соседних блоков используются только 4 для каждого блока, подлежащего компенсации. Такая схема находится в режиме расширенного прогнозирования, приложение F H.263.

Компенсация движения четверть пикселя (QPel) и половина пикселя

При компенсации движения четверть или половина отсчетов фактически интерполируются подвыборками, вызванными дробными векторами движения. На основе векторов и полных выборок подвыборки могут быть рассчитаны с использованием бикубической или билинейной двумерной фильтрации. См. Подпункт 8.4.2.2 «Процесс дробной интерполяции отсчетов» стандарта H.264.

Методы кодирования трехмерных изображений

Компенсация движения используется в стереоскопическом кодировании видео.

В видео время часто рассматривается как третье измерение. Методы кодирования неподвижных изображений могут быть расширены до дополнительного измерения.

JPEG 2000 использует вейвлеты, и их также можно использовать для адаптивного кодирования движения без промежутков между блоками. Дробные аффинные преобразования пикселей приводят к растеканию между соседними пикселями. Если не используется более высокое внутреннее разрешение, дельта-изображения в основном борются с размытием изображения. Дельта-изображение также можно кодировать как вейвлеты, чтобы границы адаптивных блоков совпадали.

Методы кодирования 2D + Delta используют кодирование, совместимое с H.264 и MPEG-2, и могут использовать компенсацию движения для сжатия между стереоскопическими изображениями.

История
Основная статья: Формат кодирования видео

Предшественник концепции компенсации движения восходит к 1929 году, когда Р. Д. Келл в Великобритании предложил концепцию передачи только тех частей аналоговой видеосцены, которые менялись от кадра к кадру. Концепция компенсации межкадрового движения восходит к 1959 году, когда исследователи NHK Ю. Таки, М. Хатори и С. Танака предложили прогнозирующее межкадровое кодирование видео во временном измерении.

DCT с компенсацией движения

Практическое сжатие видео с компенсацией движения стало возможным благодаря развитию кодирования DCT с компенсацией движения (MC DCT), также называемого компенсацией движения блока (BMC) или компенсацией движения DCT. Это гибридный алгоритм кодирования, который сочетает в себе два метода сжатия ключевых данных : кодирование с дискретным косинусным преобразованием (DCT) в пространственном измерении и прогнозирующую компенсацию движения во временном измерении. DCT-кодирование - это метод кодирования с преобразованием и сжатием блоков с потерями, который впервые был предложен Насиром Ахмедом, который изначально предназначал его для сжатия изображений, в 1972 году.

В 1974 году Али Хабиби из Университета Южной Калифорнии представил гибридное кодирование, которое сочетает в себе кодирование с предсказанием и кодирование с преобразованием. Однако его алгоритм изначально был ограничен внутрикадровым кодированием в пространственном измерении. В 1975 году Джон А. Роуз и Ганер С. Робинсон расширили алгоритм гибридного кодирования Хабиби до временного измерения, используя кодирование с преобразованием в пространственном измерении и кодирование с предсказанием во временном измерении, разработав межкадровое гибридное кодирование с компенсацией движения. Для кодирования с пространственным преобразованием они экспериментировали с DCT и быстрым преобразованием Фурье (FFT), разрабатывая межкадровые гибридные кодеры для обоих, и обнаружили, что DCT является наиболее эффективным из-за его меньшей сложности, способного сжимать данные изображения. до 0,25 бита на пиксель для сцены видеотелефона с качеством изображения, сравнимым с внутрикадровым кодером, требующим 2 бита на пиксель.

В 1977 году Вен-Сюн Чен вместе с Ч. Смитом и С. К. Фраликом разработал быстрый алгоритм DCT. В 1979 году Анил К. Джайн и Джасвант Р. Джайн усовершенствовали сжатие видео DCT с компенсацией движения, также называемое компенсацией движения блоков. Это привело к тому, что в 1981 году Чен разработал практический алгоритм сжатия видео, названный DCT с компенсацией движения или адаптивным кодированием сцены. DCT с компенсацией движения позже стал стандартным методом кодирования для сжатия видео с конца 1980-х годов.

Первым стандартом кодирования цифрового видео был H.120, разработанный CCITT (ныне ITU-T) в 1984 году. H.120 использовало кодирование DPCM с компенсацией движения, которое было неэффективным для кодирования видео, и H.120, таким образом, был непрактичным из-за низкая производительность. Стандарт H.261 был разработан в 1988 году на основе сжатия DCT с компенсацией движения, и это был первый практический стандарт кодирования видео. С тех пор сжатие DCT с компенсацией движения было принято всеми последующими основными стандартами кодирования видео (включая форматы H.26x и MPEG ).

Смотрите также
Приложения
использованная литература
внешние ссылки
Последняя правка сделана 2023-03-19 07:56:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте