Введение
Технология сжатия видео, используемая для эффективного предсказания и генерации видеокадров.
Компенсация движения в вычислительной технике – это алгоритмический метод, используемый для предсказания кадра в видео на основе предыдущих и/или будущих кадров с учетом движения камеры и/или объектов в видео. Она применяется при кодировании видеоданных для сжатия видео, например, при создании файлов MPEG-2. Компенсация движения описывает изображение как преобразование опорного изображения в текущее изображение. Опорное изображение может быть взято из прошлого или даже из будущего. Когда изображения могут быть точно синтезированы на основе ранее переданных/сохраненных изображений, эффективность сжатия повышается. Компенсация движения является одним из двух ключевых методов сжатия видео, используемых в стандартах кодирования видео, наряду с дискретным косинусным преобразованием (DCT). Большинство стандартов кодирования видео, таких как форматы H.26x и MPEG, обычно используют гибридное кодирование, сочетающее DCT и компенсацию движения.
После предсказания кадров с помощью компенсации движения кодировщик определяет разностный сигнал (остаток), который затем сжимается и передается.
Компенсация движения с изменяемым размером блока
Компенсация движения с переменным размером блока (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 соседних блока. Подобная схема реализована в режиме расширенного предсказания Annex F стандарта H.263.
blocks are typically twice as big in each dimension and overlap quadrant wise with all 8 neighbouring blocks. Thus, each pixel belongs to 4 blocks. In such a scheme, there are 4 predictions for each pixel which are summed up to a weighted mean. For this purpose, blocks are associated with a window function that has the property that the sum of 4 overlapped windows is equal to 1 everywhere. Studies of methods for reducing the complexity of OBMC have shown that the contribution to the window function is smallest for the diagonally adjacent block. Reducing the weight for this contribution to zero and increasing the other weights by an equal amount leads to a substantial reduction in complexity without a large penalty in quality. In such a scheme, each pixel then belongs to 3 blocks rather than 4, and rather than using 8 neighboring blocks, only 4 are used for each block to be compensated. Such a scheme is found in the H.263 Annex F Advanced Prediction mode
Компенсация движения четверть пикселя (QPel) и полпикселя
В компенсации движения четверть или половина отсчетов фактически являются интерполированными подвыборками, обусловленными дробными векторами движения. На основе векторов и полных отсчетов подвыборки могут быть вычислены с использованием бикубической или билинейной 2D-фильтрации. См. подраздел 8.4.2.2 "Процесс интерполяции дробных отсчетов" стандарта H.264.
Методы кодирования 3D-изображений
Компенсация движения используется в стереоскопическом кодировании видео. Во многих видеоматериалах время часто рассматривается как третье измерение. Однако методы кодирования изображений могут быть расширены и на это дополнительное измерение. JPEG 2000 использует вейвлеты, которые также могут быть использованы для адаптивного кодирования движения без разрывов между блоками. Дробнопиксельные аффинные преобразования приводят к растеканию между соседними пикселями. Если не используется более высокое внутреннее разрешение, разностные изображения в основном борются с размытием. Разностное изображение также может быть закодировано вейвлетами, чтобы границы адаптивных блоков совпадали. Методы кодирования 2D+Delta используют кодирование, совместимое с H.264 и MPEG 2, и могут применять компенсацию движения для сжатия между стереоскопическими изображениями.
История
Предшественник концепции компенсации движения восходит к 1929 году, когда Р. Д. Келл в Великобритании предложил передавать только те части аналоговой видеосцены, которые изменялись между кадрами. В 1959 году концепция компенсации движения между кадрами была предложена исследователями NHK Y. Taki, M. Hatori и S. Tanaka, которые предложили предсказывающее межкадровое кодирование видео во временной области.
ДВТ с компенсацией движения
Практическая компрессия видео с компенсацией движения появилась с развитием кодирования DCT с компенсацией движения (MC DCT), также называемого компенсацией движения блоков (BMC) или компенсацией движения на основе DCT. Это гибридный алгоритм кодирования.
В 1974 году Али Хабиби из Университета Южной Калифорнии представил гибридное кодирование, сочетающее в себе предсказательное кодирование и трансформатное кодирование. Однако его алгоритм изначально был ограничен внутрикадровым кодированием в пространственной области. В 1975 году Джон А. Роуз и Гуннер С. Робинсон расширили гибридный алгоритм кодирования Хабиби до временной области, используя трансформатное кодирование в пространственной области и предсказательное кодирование во временной области, разработав межкадровое гибридное кодирование с компенсацией движения. Для пространственного трансформатного кодирования они экспериментировали с DCT и быстрым преобразованием Фурье (FFT), разрабатывая межкадровые гибридные кодеры для обоих, и обнаружили, что DCT является наиболее эффективным благодаря своей меньшей сложности, способным сжимать данные изображения до 0,25 бит на пиксель для сцены видеотелефона с качеством изображения, сопоставимым с внутрикадровым кодером, требующим 2 бит на пиксель. В 1979 году Анил К. Джайн и Джасвант Р. Джайн дополнительно развили компрессию видео DCT с компенсацией движения. Стандарт H.120 использовал кодирование DPCM с компенсацией движения, которое было неэффективно для кодирования видео, и поэтому H.120 оказался непрактичным из-за низкой производительности. Стандарт H.261 был разработан в 1988 году на основе компрессии DCT с компенсацией движения и стал первым практическим стандартом кодирования видео. С тех пор компрессия DCT с компенсацией движения была принята всеми основными стандартами видеокодирования (включая форматы H.26x и MPEG), которые последовали.