63
Младшие биты всех трансформант каждого блока суммируются по модулю 2. При получении значения ‘0’ младший бит трансформанты S*(7, 7) инвертируется.
Над трансформантами S*(m, п) каждого блока осуществляется ОДКП с получением ошибок предсказания DPY*(x, y), DPCR (x', y'), DPCg (x', y'), которые округляются до ближайших целых и вводятся в диапазон [-256, +255].
Вычисленные ошибки предсказания блока суммируются с соответствующими элементами ранее сформированного для него прогноза pY(x, y), pCR(x', y'), pCB(x', y') и вводятся в диапазон [-128, +127], в результате чего формируются смещенные отсчеты:
Y1*(x, y) = DPY* (x, y) + pY(x, y),
C1R (x' y') = DPCR (x' y') + pCr (x' y'),
C1B (x' y') = DPCB (x' y') + рСв (x', y').
На приемной стороне для формирования несжатых цифровых сигналов ЦТВЧ-2, ЦТВЧ-3:
- все декодированные блоки отсчетов представляются в пригодной для вывода форме (полевой для ЦТВЧ-2 и кадровой для ЦТВЧ-3);
- значения отсчетов вводятся в диапазон [-127, +126], а затем преобразуются к виду целых без знака путем инвертирования старшего бита;
- формат субдискретизации цвета 4:2:0 преобразуется в формат 4:2:2.
А.6 Кодирование с двунаправленным предсказанием
Для макроблока B-кадра (поля) поиск наиболее удачного прогноза производится по двум ближайшим опорным кадрам (полям) I- или P-типа (рисунок А.14). Частным случаем является предсказание только вперед или только назад, когда прогноз формируется соответственно из предыдущего или следующего по времени опорного кадра (поля).
Формирование прогнозов для B-макроблока по каждому опорному кадру (полю) может быть осуществлено любым из способов, применяемых для предсказания вперед, кроме прогноза двойной опоры.
При двунаправленном предсказании итоговый прогноз pY(x, y), pCR(x', y'), pCB(x', y') формируется усреднением частных прогнозов "вперед" и "назад".
Для B-макроблока, использующего предсказание только вперед или только назад, число векторов движения такое же, как и для P-макроблока (1 или 2). Для B-макроблока с двунаправленным предсказанием число векторов движения удваивается.
Пример формирования двунаправленного полевого прогноза для B-макроблока с начальными координатами (x1, 2y1) показан на рисунке А.15.
Из-за существенного увеличения количества возможных альтернативных прогнозов обычно используется упрощенный подход к кодированию B-макроблоков. Для текущего макроблока ищутся два наилучших прогноза во встречных направлениях: один «вперед», другой «назад». Затем макроблок кодируется четырьмя разными способами:
- с предсказанием вперед на основе наилучшего прогноза из предшествующего I- или P-кадра (поля);
- с предсказанием назад на основе наилучшего прогноза из последующего I- или P-кадра (поля);
- с двунаправленным предсказанием (по усредненному прогнозу);
- без предсказания (I-макроблок).
Из четырех полученных результатов в качестве оптимального выбирается тот, которому соответствует фрагмент элементарного потока наименьшей длины.