stringtranslate.com

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

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

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

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

Функциональность

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

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

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

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

MPEG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компенсация движения с переменным размером блока (VBSMC) — это использование BMC с возможностью кодера динамически выбирать размер блоков. При кодировании видео использование блоков большего размера может уменьшить количество битов, необходимых для представления векторов движения, тогда как использование блоков меньшего размера может привести к меньшему объему остаточной информации прогнозирования для кодирования. В других областях работы изучалось использование метрик объектов переменной формы за пределами границ блоков, на основе которых можно рассчитать межкадровые векторы. [6] В старых конструкциях, таких как видео 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. Такая схема находится в режиме расширенного прогнозирования H.263 Приложение F.

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

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

Методы кодирования 3D-изображений

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

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

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

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

История

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

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

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

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

В 1977 году Вен-Сюн Чен разработал быстрый алгоритм DCT вместе с CH Smith и SC Fralick. [15] В 1979 году Анил К. Джайн и Джасвант Р. Джайн продолжили разработку сжатия видео DCT с компенсацией движения, [16] [7] также называемого блочной компенсацией движения. [7] Это привело к тому, что в 1981 году Чен разработал практический алгоритм сжатия видео, названный DCT с компенсацией движения или адаптивным кодированием сцены. [7] DCT с компенсацией движения позже стал стандартным методом кодирования для сжатия видео, начиная с конца 1980-х годов. [17] [2]

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

Смотрите также

Приложения

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

  1. ^ Чен, Цзе; Коч, Ут-Ва; Лю, Кей Джей Рэй (2001). Проектирование систем кодирования цифрового видео: комплексный подход к сжатой области. ЦРК Пресс . п. 71. ИСБН 9780203904183.
  2. ^ abcde Ли, Цзянь Пин (2006). Материалы Международной компьютерной конференции 2006 г. по вейвлет-активным медиа-технологиям и обработке информации: Чунцин, Китай, 29-31 августа 2006 г. World Scientific . п. 847. ИСБН 9789812709998.
  3. ^ «Часто задаваемые вопросы по MPEG-2» . 20 февраля 2009 г. Архивировано из оригинала 20 февраля 2009 г.
  4. ^ Цзэн, Кай и др. «Описание артефактов восприятия в сжатых видеопотоках». Электронная визуализация IS&T/SPIE. Международное общество оптики и фотоники, 2014.
  5. ^ Айзава, Киёхару и Томас С. Хуан. «Кодирование изображений на основе моделей, передовые методы кодирования видео для приложений с очень низкой скоростью передачи данных». Труды IEEE 83.2 (1995): 259-271.
  6. ^ Гарнхэм, Найджел В. (1995). Кодирование видео с компенсацией движения — кандидатская диссертация (PDF) . Университет Ноттингема. ОСЛК  59633188.
  7. ^ abcdefghi «История сжатия видео». МСЭ-Т . Объединенная группа по видео (JVT) ISO/IEC MPEG и ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 и ITU-T SG16 Q.6). Июль 2002. стр. 11, 24–9, 33, 40–1, 53–6 . Проверено 3 ноября 2019 г.
  8. ^ Аб Леа, Уильям (1994). Видео по запросу: Исследовательский доклад 94/68. Библиотека Палаты общин . Архивировано из оригинала 20 сентября 2019 года . Проверено 20 сентября 2019 г.
  9. ^ Ахмед, Насир (январь 1991 г.). «Как я придумал дискретное косинусное преобразование». Цифровая обработка сигналов . 1 (1): 4–5. Бибкод : 1991DSP.....1....4A. дои : 10.1016/1051-2004(91)90086-Z.
  10. ^ Хабиби, Али (1974). «Гибридное кодирование графических данных». Транзакции IEEE в области коммуникаций . 22 (5): 614–624. дои : 10.1109/TCOM.1974.1092258.
  11. ^ Чен, З.; Он, Т.; Джин, X.; Ву, Ф. (2020). «Изучение сжатия видео». Транзакции IEEE по схемам и системам видеотехнологий . 30 (2): 566–576. arXiv : 1804.09869 . дои : 10.1109/TCSVT.2019.2892608. S2CID  13743007.
  12. ^ Ом, Йенс-Райнер (2015). Кодирование и передача мультимедийных сигналов. Спрингер. п. 364. ИСБН 9783662466919.
  13. ^ Аб Роуз, Джон А.; Робинсон, Гунер С. (30 октября 1975 г.). Тешер, Эндрю Г. (ред.). «Комбинированное пространственное и временное кодирование последовательностей цифровых изображений». Эффективная передача графической информации . 0066 . Международное общество оптики и фотоники: 172–181. Бибкод : 1975SPIE...66..172R. дои : 10.1117/12.965361. S2CID  62725808.
  14. ^ Хуанг, ТС (1981). Анализ последовательности изображений. Springer Science & Business Media . п. 29. ISBN 9783642870378.
  15. ^ Чен, Вэнь-Сюн; Смит, Швейцария; Фралик, Южная Каролина (сентябрь 1977 г.). «Быстрый вычислительный алгоритм дискретного косинусного преобразования». Транзакции IEEE в области коммуникаций . 25 (9): 1004–1009. дои : 10.1109/TCOM.1977.1093941.
  16. ^ Чианчи, Филип Дж. (2014). Телевидение высокой четкости: создание, развитие и внедрение технологии HDTV. МакФарланд. п. 63. ИСБН 9780786487974.
  17. ^ abcd Ганбари, Мохаммед (2003). Стандартные кодеки: от сжатия изображения до расширенного кодирования видео. Институт техники и технологий . стр. 1–2. ISBN 9780852967102.
  18. ^ abc «Инфографика истории форматов видеофайлов». РеалНетворкс . 22 апреля 2012 года . Проверено 5 августа 2019 г.

Внешние ссылки