Межкадровый

редактировать

Межкадровый переход - это кадр в потоке сжатия видео, который выражается в термины одного или нескольких соседних кадров. «Межкадровая» часть термина относится к использованию межкадрового предсказания. Этот вид прогнозирования пытается использовать преимущества временной избыточности между соседними кадрами, обеспечивая более высокую степень сжатия.

Содержание
  • 1 Межкадровое предсказание
  • 2 Типы кадров
    • 2.1 P-кадр
    • 2.2 B-кадр
  • 3 Типичная структура группы изображений (GOP)
  • 4 H.264 Улучшения межкадрового прогнозирования
    • 4.1 Более гибкое разделение блоков
    • 4.2 Разрешение компенсации движения до ¼ пикселя
    • 4.3 Множественные ссылки
    • 4.4 Расширенный макроблок прямого / пропуска
  • 5 Дополнительная информация
  • 6 См. также
  • 7 Ссылки
Межкадровое предсказание

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

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

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

Процесс межкадрового предсказания. В этом случае, имело место изменения освещенности между блоком на опорной раме и блоком, который кодируемый:. Эта разница будет ошибкой предсказания к этому блоку

Этого вида предсказания имеют некоторые достоинства и недостатки:

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

Из-за этих недостатков должен быть надежный и периодический по времени опорный кадр. использоваться для того, чтобы этот метод был эффективным и полезным. Этот опорный кадр известен как внутрикадровый, который строго внутренне кодирован, поэтому его всегда можно декодировать без дополнительной информации.

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

Типы кадров

Разница между P-кадрами и B-кадрами - это опорный кадр, который им разрешено использовать.

P-кадр

P-кадр - это термин, используемый для определения прогнозируемых изображений вперед. Прогнозирование производится на основе более раннего изображения, в основном I-кадра или P-кадра, поэтому требуется меньше данных кодирования (≈50% по сравнению с размером I-кадра).

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

B-кадр

B-кадр - это термин для изображений с двунаправленным предсказанием. Этот вид метода прогнозирования обычно занимает меньше данных кодирования, чем P-кадры (≈25% по сравнению с размером I-кадра), потому что прогнозирование выполняется либо из более раннего кадра, либо из более позднего кадра, либо из обоих. (B-кадры также могут быть менее эффективными, чем P-кадры в определенных случаях, например: кодирование без потерь)

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

Типичная структура группы изображений (GOP)
Иллюстрация зависимостей схемы группы изображений IBBPBB... Время идет слева направо.

Типичная Группа изображений Структура (GOP) - это IBBPBBP... I-кадр используется для прогнозирования первого P-кадра, и эти два кадра также используются для прогнозирования первого и второго B-кадров. Второй P-кадр прогнозируется также с использованием первого I-кадра. Оба P-кадра объединяются, чтобы предсказать третий и четвертый B-кадры. Схема показана на следующем рисунке:

Эта структура предполагает проблему, потому что четвертый кадр (P-кадр) необходим для прогнозирования второго и третьего (B-кадры). Таким образом, нам нужно передать P-кадр раньше, чем B-кадры, и это задержит передачу (необходимо будет сохранить P-кадр). Эта структура имеет сильные стороны:

  • Она сводит к минимуму проблему возможных непокрытых областей.
  • P-кадры и B-кадры требуют меньше данных, чем I-кадры, поэтому меньше данных передается.

Но это имеет слабые места:

  • Это увеличивает сложность декодера, что может означать больший объем памяти, необходимый для переупорядочивания кадров, и немного большую вычислительную мощность.
  • B-кадры могут вызывать зависимость декодирования, которая неизбежно увеличивается задержка декодирования.
Улучшения межкадрового предсказания H.264

Наиболее важными улучшениями этого метода по сравнению с предыдущим стандартом H.264 являются:

  • Более гибкое разбиение блоков
  • Разрешение компенсации движения до ¼ пикселя
  • Множественные ссылки
  • Улучшенный макроблок прямого / пропуска

Более гибкое разделение блоков

Разделение блоков яркости 16 × 16 (MPEG-2 ), 16 × 8, 8 × 16 и 8 × 8. Последний случай позволяет разделить блок на новые блоки 4 × 8, 8 × 4 или 4 × 4.

H.264 block Division.svg

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

Разрешение компенсации движения до пикселя

Пиксели в положении полупикселя получаются путем применения фильтра длиной 6.

H = [1 -5 20 20 -5 1]

Например:

b = A - 5B + 20C + 20D - 5E + F

Пиксели в положении четверти пикселя получаются посредством билинейной интерполяции.

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

Subpel interpolation.jpg

Множественные ссылки

Множественные ссылки на оценку движения позволяют найти лучшую ссылку в 2 возможных буферах (Список 0 для прошлых изображений, Список 1 для будущих изображений), которые в общей сложности содержат до 16 кадров. Блок предсказания выполняется посредством взвешенной суммы блоков из опорного изображения. Это позволяет улучшить качество изображения в сценах, где есть изменения плоскости, масштабирования или при обнаружении новых объектов.

Multiple references.jpg

Расширенный макроблок прямого / пропуска

Режим пропуска и прямой переход очень часто используются, особенно с B-кадрами. Они значительно сокращают количество кодируемых битов. Эти режимы упоминаются, когда блок кодируется без отправки остаточной ошибки или векторов движения. Кодировщик запишет только то, что это макроблок пропуска. Декодер выведет вектор движения блока, закодированного в режиме прямого / пропуска, из других уже декодированных блоков.

Есть два способа вывести движение: Direct skip.jpg

Временное
Он использует вектор движения блока из кадра Списка 1, расположенный в той же позиции, чтобы вывести вектор движения. Блок List 1 использует в качестве ссылки блок List 0.
Spatial
Он прогнозирует перемещение от соседних макроблоков в том же кадре. Возможным критерием может быть копирование вектора движения из соседнего блока. Эти режимы используются в однородных зонах изображения, где нет большого движения.

Block partition.jpg

На рисунке выше розовые блоки являются блоками, закодированными в режиме прямого / пропуска. Как видим, они используются очень часто, в основном в B-кадрах.

Дополнительная информация

Хотя термин «кадр» широко используется в неформальной обстановке, во многих случаях (например, в международных стандартах для кодирования видео по MPEG и VCEG ) применяется более общая концепция с использованием слова «изображение», а не «кадр», где изображение может быть либо полным кадром, либо одним с чересстрочной разверткой поле.

Видео кодеки, такие как MPEG-2, H.264 или Ogg Theora уменьшите объем данных в потоке, следуя ключевым кадрам одним или несколькими промежуточными кадрами. Эти кадры обычно можно кодировать с использованием более низкой скорости передачи, чем требуется для ключевых кадров, поскольку большая часть изображения обычно аналогична, поэтому необходимо кодировать только изменяющиеся части.

См. Также
Ссылки
  1. ^https://forum.doom9.org/showpost.php?p=1228631postcount=12
  2. ^http: // www. ramugedia.com/hierarchical-b-frames-or-b-pyramid
  3. ^https://web.archive.org/web/20141118124738/http://mewiki.project357.com/w/X264_Settings#b-pyramid
  4. ^https://forum.doom9.org/showthread.php?t=129364
  5. ^"Вывод статистики X264, часть" ref B L1 ". Архивировано из оригинала 22 ноября 2014 г.
  • Программное обеспечение H.264: http://iphome.hhi.de/suehring/tml/download/
  • T.Wiegand, ГДж Салливан, Г. Бьёнтегаард, А. Лутра: Обзор стандарта кодирования видео H.264 / AVC. IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, июль 2003 г.
Последняя правка сделана 2021-05-24 04:06:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте