2015-10-30 2 views
0

Я читал множество статей по алгоритму H.264 (см H.264 codec explained), и все они делают определенные допущения, которые делают понимание алгоритма невозможно, например, Александра Германа H.264/MPEG-4 Advanced Video CodingВсестороннее определение H.264 Алгоритм

Внутрикадровое предсказание прогнозирует значения блока, используя ранее декодированные данные в кадре.

Но это не объясняет, что предсказание является

  • ли мы случайным образом выбрать номер?
  • Неужели мы случайно скопировали ранее предсказанные значения?
  • Закройте ли мы глаза и дождитесь, пока к нам придет значение?

Есть ли там хороший документ, который подробно объясняет H.264?

ответ

5

«Стандартный стандарт сжатия видео H.264» от Iain Richardson является стандартной книгой. Для получения полной информации можно ознакомиться на сайте specification.

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

Внутри кадра прогнозирование квадратного блока пикселей производится путем копирования пикселей влево или выше этого блока. (Какие пиксели для копирования задаются битами в битовом потоке, а в некоторых режимах предсказание формируется из фильтрованной версии пикселей вместо прямой копии.)

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

Как только у вас есть прогноз, к нему добавляется значение (называемое остатком), чтобы сформировать окончательное значение для пикселя (при условии, что деблокировка отключена) , Значение остатка содержится в потоке битов (фактически преобразованная версия остатка, так как преобразование означает, что для кодирования остатка требуется меньшее количество бит).

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

Цель состоит в том, что предсказание очень близко к фактическому изображению, поэтому для остатка необходимо потратить несколько бит.

+0

Не приведет ли это к тому, что все пиксели будут установлены на 128? – puk

+0

Да, предсказание для всех пикселей в первом блоке (например, 4x4 пикселей в левом верхнем углу изображения) будет 128, но тогда они обычно будут иметь ненулевой остаток, добавленный к ним, поэтому конечный пиксель значение может быть больше или меньше 128, даже для первого пикселя изображения. –

+0

Что означает «ненулевой остаток» в этом контексте? Вот что я пытаюсь понять здесь, все нюансы, которые люди блестят. – puk

Смежные вопросы