«Стандартный стандарт сжатия видео H.264» от Iain Richardson является стандартной книгой. Для получения полной информации можно ознакомиться на сайте specification.
Каждый пиксель получается путем объединения предсказания с остаточным.
Внутри кадра прогнозирование квадратного блока пикселей производится путем копирования пикселей влево или выше этого блока. (Какие пиксели для копирования задаются битами в битовом потоке, а в некоторых режимах предсказание формируется из фильтрованной версии пикселей вместо прямой копии.)
Для самого первого кадра на изображении есть нет предварительно декодированных пикселей, поэтому для предсказания установлено значение 128.
Как только у вас есть прогноз, к нему добавляется значение (называемое остатком), чтобы сформировать окончательное значение для пикселя (при условии, что деблокировка отключена) , Значение остатка содержится в потоке битов (фактически преобразованная версия остатка, так как преобразование означает, что для кодирования остатка требуется меньшее количество бит).
Итак, в итоге, бит-бит сначала указывает число, которое указывает, какой метод использовать для копирования/фильтрации ранее декодированных пикселей для формирования предсказания, а также другой набор чисел, которые определяют, какое значение добавить к этому предсказанию, чтобы получить конечные пиксели.
Цель состоит в том, что предсказание очень близко к фактическому изображению, поэтому для остатка необходимо потратить несколько бит.
Не приведет ли это к тому, что все пиксели будут установлены на 128? – puk
Да, предсказание для всех пикселей в первом блоке (например, 4x4 пикселей в левом верхнем углу изображения) будет 128, но тогда они обычно будут иметь ненулевой остаток, добавленный к ним, поэтому конечный пиксель значение может быть больше или меньше 128, даже для первого пикселя изображения. –
Что означает «ненулевой остаток» в этом контексте? Вот что я пытаюсь понять здесь, все нюансы, которые люди блестят. – puk