(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy
.pdf
Глава14. Стандарты кодирования динамических изображений
Рис. 14.37. Порядок сканирования составляющих блоков макроблока
–Для блоков размером 8×16 вектор MVp для левого блока размером 8×16 прогнозируется по вектору блока A, а для правого блока размером 8×16 - по вектору блока С.
14.6.5.Преобразование, масштабирование
иквантование
Аналогично предшествующим стандартам видеокодирования Н.264/AVC использует кодирование с преобразованием остатков предсказания.
Стандарт определяет три вида преобразования в зависимости от типа обрабатываемых блоков:
–преобразование блока размером 4 × 4 нулевых (DC) яркостных коэффициентов, полученных из яркостных макроблоков размером 16 × 16, сформированных в режиме Intra;
–преобразование блока размером 2 ×2 нулевых (DC) цветоразностных коэффициентов, полученных из цветоразностных блоков любого типа;
–преобразование для всех остальных разностных блоков размером 4 × 4.
Данные в пределах макроблока передаются в порядке, показанном на рис. 14.37. Если макроблок размером 16 × 16 обрабатывается в режиме Intra, то вначале передается блок DC-коэффициентов размером 4 × 4. Он маркируется значением «–1». Затем передаются остальные (0–15) яркостные блоки в порядке, показанном на этом рисунке (с обнуленными DC-коэффициентами). Блоки 16 и 17 содержат массивы размером 2 × 2 DC-коэффициентов, полученных из цветоразностных Cb и Cr составляющих соответственно. Наконец, передаются оставшиеся
цветоразностные блоки 18 и 25 (с обнуленными DC-коэффициентами).
Глава14. Стандарты кодирования динамических изображений
образование, z-упорядочивание, масштабирование и округление (процесс квантования), за которыми следует энтропийное кодирование. На стороне декодера осуществляются обратные операции за исключением округления.
Уже было отмечено, что режимы предсказания Intra_16 ×16 и режимы внутрикадрового предсказания цветности предназначены для кодирования гладких областей. По этой причине DC-коэффициенты подвергаются второму преобразованию, что приводит к тому, что преобразуются коэффициенты всего макроблока. Дополнительное преобразование 2 × 2 также применяется к DC-коэффициен- там четырех блоков 4 × 4 каждой компоненты цветности.
Есть несколько причин использования меньшего размера преобразования:
–Одно из основных улучшений нового стандарта — это улучшенный процесс предсказания как для внутрикадрового, так и для межкадрового кодирования. Следовательно, остаточный сигнал имеет меньшую пространственную корреляцию. Это в целом означает, что преобразование меньше дает в плане декорреляции. Это также означает, что преобразование 4 × 4 так же эффективно в плане устранения статистической корреляции, как и большие преобразования.
–При близких объективных возможностях компрессии, меньшее преобразование 4 ×4 имеет визуальное преимущество, приводящее к меньшим шумам возле границ (известным как «эффект комаров», mosquito noise, или «окантовки», ringing).
–Меньшее преобразование обладает меньшей вычислительной сложностью. Так как процесс преобразования в стандарте Н.264/AVC включает только сложения и сдвиги, он определен таким образом, что устраняется несовпадение между кодированием и декодированием (это было проблемой в более ранних стандартах, использовавших ДКП 8 × 8).
Квантование
Стандарт H.264/AVC предполагает использование скалярного квантования, реализующего требования:
–исключить деление и арифметику с плавающей точкой;
–включить в процесс квантования масштабирование при помощи матриц E
ˆ
и E.
|
|
Входной блок X |
сначала преобразуется с использованием соотношения W = |
T
=C X C (см. формулу 14.11), и блок сформированных промежуточных коэф-
фициентов Wij квантуется и масштабируется при помощи одной операции: |
|
|
|
|||||||||
Zij = round Wij |
P F |
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
(14.14) |
||||||
Qstep |
|
|
|
|
||||||||
|
|
√ |
|
|
, |
b2 |
|
|
|
|
||
где обозначенные P F коэффициенты масштабирования a2 = 1 |
, ab = |
10 |
|
= |
1 |
|
||||||
4 |
2 |
20 |
|
4 |
|
|
10 |
|
||||
включены в прямое квантование и используемые в соответствии с табл. 14.29, а Qstep — шаг квантования.
Общее количество значений шага квантования Qstep равно 52, они передаются как параметр QP , приведенный в табл. 14.30. Значение Qstep удваивается
Глава14. Стандарты кодирования динамических изображений
для 6 QP 17, и т. д. Следует сказать, что изменение шага квантования приблизительно на 12% также в первом приближении означает уменьшение битовой скорости примерно на 12%.
Преобразование и квантование яркостных DC-коэффициентов блока размером 4×4
Это преобразование осуществляется только для моды Intra. Если макроблок
размером 16 × 16 обрабатывается в Intra-режиме, тоTкаждый остаточный блок |
|
размером 4 × 4 |
|
сначала преобразуется «ядром» C X C , описанным выше. Полу- |
|
ченные яркостные DC-коэффициенты каждого блока размером 4 ×4 выделяются в отдельный блок и обрабатываются в соответствии с преобразованием Адамара:
YD = 1 |
|
1 |
1 |
−1 |
−1 |
|
[WD ] |
1 |
1 |
−1 |
−1 |
. |
(14.18) |
||||
|
|
|
1 |
1 |
1 |
1 |
|
|
1 |
1 |
1 |
1 |
|
|
|||
|
|
1 |
−1 1 |
|
1 |
1 |
|
1 1 |
|
1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
1 |
− |
|
− |
|
|
|
1 |
− |
|
|
− |
|
|
|
|
|
1 |
−1 1 |
|
|
−1 |
−1 1 |
|
|
|||||||||
Матрица [WD ] представляет собой блок DC-коэффициентов размером 4×4, а мат-
рица D — блок коэффициентов после преобразования и округления. После этого
Y
коэффициенты YD(i, j) квантуются по формуле:
|ZD(i, j)| = (|YD(i, j)| · M F (0, 0) + 2f ) (qbits + 1),
(14.19)
sign [(ZD(i, j)] = sign [(YD(i, j)] ,
где M F — множитель с координатами (0,0) из табл. 14.31, f и qbits определяются как обычно (см. соотношения (14.14) и (14.16)).
Преобразование и квантование DC-коэффициентов блоков цветности размером 2 × 2
Каждая составляющая цветности в макроблоке состоит из четырех блоков размером 4 × 4. DC-коэффициенты каждого такого блока группируются в блок размером 2 × 2 (WD ), а затем полученный блок преобразуется следующим об-
разом: |
1 |
−1 |
3 [WD ] |
2 |
1 |
−1 |
3 . |
(14.20) |
YD = 2 |
||||||||
|
1 |
1 |
|
|
1 |
1 |
|
|
Квантование такого блока [YD] выполняется в соответствии с соотношением: |
||||||||
|ZD(i, j)| = [|YD(i, j)| · M F (0, 0) + 2f ] > >(qbits + 1), |
(14.21) |
|||||||
sign [ZD(i, j)] = sign [YD (i, j)] , |
|
|
|
|
|
|||
где коэффициенты M F (0, 0) определены в табл. 14.31, f и qbits |
определяются |
|||||||
как было приведено выше. |
|
|
|
|
|
|
|
|
Обратное квантование
Масштабирующие множители обратного преобразования из матрицы ˆ со-
P F E
отношения (14.12) приведены в табл. 14.32.
Эти масштабирующие множители встроены в операцию обратного квантования вместе с постоянным множителем масштаба 64 во избежание ошибок округ-
14.6. H.264/MPEG-4 часть 10 AVC — улучшенное видеокодирование
ления: |
Wij = Zij · QstepP F · 64. |
|
|
|
|
(14.22) |
|||
ij |
преобразуются базовым обратным преобразованием CˆT W |
|
Cˆ. |
|
Коэффициенты W |
|
|||
Значения полученных коэффициентов делятся на 64, чтобы компенсировать предварительное масштабирование (это осуществляется только операциями суммирования и сдвига вправо)
Таблица 14.32. Позиции коэффициентов обратного квантования
Позиции в блоке WD |
Значение коэффициента P F |
||
(0,0), (0,2), |
(2,0) |
и (2,2) |
a2 |
(1,1), (1,3), |
(3,1) |
и (3,3) |
b2 |
В остальных случаях |
ab |
||
Стандарт не специфицирует значения Qstep и P F . Вместо этого определяется параметр V = (Qstep × P F × 64) для 0 QP 5, и операция масштабирования принимает вид:
|
|
|
Wij |
= Zij · Vij · 2floor(QP/6). |
(14.23) |
||
Величины коэффициентов V приведены в табл. 14.33. |
|
|
|||||
|
|
Таблица 14.33. Коэффициенты V |
|
|
|||
|
|
|
|
|
|
||
|
QP |
Позиции (0,0), (2,0), (0,2) и (2,2) |
Позиции (1,1), (1,3), (3,1) и (3,3) |
В остальных случаях |
|
||
|
|
|
|
|
|
|
|
|
0 |
|
10 |
|
16 |
13 |
|
|
1 |
|
11 |
|
18 |
14 |
|
|
|
|
|
|
|
|
|
|
2 |
|
13 |
|
20 |
16 |
|
|
|
|
|
|
|
|
|
|
3 |
|
14 |
|
23 |
18 |
|
|
4 |
|
16 |
|
25 |
20 |
|
|
|
|
|
|
|
|
|
|
5 |
|
18 |
|
29 |
23 |
|
|
|
|
|
|
|
|
|
Коэффициент 2floor(QP/6) в соотношении (14.20) увеличивает результат в два раза при каждом приращении величины QP на 6.
Обратное преобразование и квантование DC-коэффициентов блока яркости размером 4 × 4
В декодере применяется обратное преобразование Адамара (отметим, что поря-
док умножения не изменен): |
|
−1 |
[ZD] |
|
|
|
|
−1 |
−1 |
. |
|
|
||||||||
|
Wˆ D = |
|
1 |
|
1 |
−1 |
1 |
1 |
|
(14.24) |
||||||||||
|
|
|
1 |
|
1 |
1 |
1 |
|
|
1 |
1 |
1 |
1 |
|
|
|
||||
|
|
1 |
|
−1 1 |
|
1 |
1 |
|
1 1 |
|
1 |
|
|
|||||||
|
|
|
|
|
− |
|
|
− |
|
|
|
|
− |
|
|
− |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
||||
|
|
|
|
1 |
−1 1 |
|
|
−1 |
−1 1 |
|
|
|
||||||||
Обратное квантование выполняется следующим образом: |
|
|
|
|
|
|||||||||||||||
W |
(i, j) = W |
(i, j) |
· |
V (0, 0) |
· |
2floor(QP/6)−2 |
при QP 12, |
|
|
|
|
|
||||||||
D |
D |
|
|
|
|
|
|
|
|
[2 − floor(QP/6)] |
|
|
||||||||
|
|
|
|
|
|
|
|
1 |
floor(QP/6) |
|
< 12. |
|||||||||
WD(i, j) = WD (i, j) · V (0, 0) + 2 − |
|
|
при QP |
|||||||||||||||||
|
|
(14.25) |
||||||||||||||||||
Коэффициенты V определяются табл. 14.33. Полученная после процедуры обратного квантования матрица [WD ] является блоком DC-коэффициентов, которые
Глава14. Стандарты кодирования динамических изображений
Рис. 14.38. Процесс прямого и обратного преобразования и квантования
вставляются в соответствующие блоки, и выполняется «ядро» обратного преоб-
разования ˆT ˆ ˆ
C WD C.
В макроблоке 16 × 16 в моде Intra большая часть энергии концентрируется в DC коэффициентах каждого блока 4 × 4, которые зачастую сильно коррелированы. После дополнительного преобразования энергия концентрируется в малом наборе существенных коэффициентов.
Обратное преобразование и квантование DC-коэффициентов блока цветности размером 2 × 2
Обратное преобразование осуществляется по формуле: |
3 . |
|
|||||||||||
|
Wˆ D = |
2 |
1 |
−1 3 |
[ZD] 2 |
1 |
−1 |
(14.26) |
|||||
|
|
|
|
|
1 |
1 |
|
|
1 |
1 |
|
|
|
Обратное квантование выполняется следующим образом: |
|
||||||||||||
W (i, j) = W |
D |
(i, j) |
· |
V (0, 0) |
· |
2floor(QP/6)−1 |
при QP 6, |
|
|||||
D |
|
|
|
|
+ 21−floor(QP/6) 1 при QP < 6. |
|
|||||||
WD (i, j) = WD(i, j) · V (0, 0) |
|
||||||||||||
Коэффициенты, полученные после обратного квантования, размещаются в соответствующих цветоразностных блоках размером 4 × 4, которые затем обраба-
тываются преобразованием ˆT ˆ ˆ. Как и в случае с кодированием яркостных
C WDC
DC-коэффициентов в Intra-режиме, применяется дополнительное преобразование, помогающее декоррелировать блок размером 2 × 2 DC-коэффициентов компонент цветности и, следовательно, увеличивающее степень сжатия.
Квантованные коэффициенты преобразования блока обычно переупорядочиваются зигзагообразным сканированием и передаются с помощью методов энтропийного кодирования. 2 × 2 DC коэффициенты цветностных компонент упорядочиваются в порядке сканирования растра. Все операции обратных преобразований в Н.264/AVC могут быть выполнены с помощью только сложений и сдвигов 16-битных целых величин. Аналогично, только 16-битный доступ к памяти требуется для хорошей реализации процессов прямого преобразования и квантования в кодере.
На рис. 14.38 приведена структура полного процесса прямого и обратного преобразования и квантования от момента поступления на вход обрабатываемого блока X до получения на выходе восстановленного блока X .
14.6. H.264/MPEG-4 часть 10 AVC — улучшенное видеокодирование
Рис. 14.39. Порядок фильтрации границ макроблока
14.6.6. Деблокирующая фильтрация
Деблокирующий фильтр применяется после обратного преобразования в кодере (при восстановлении и сохранении макроблока для формирования прогноза следующего кадра) и в декодере (при восстановлении и отображении макроблока).
Фильтр используется для сглаживания блочных артефактов. При этом:
–границы блока сглаживаются, улучшая зрительное восприятие декодированных изображений (особенно при больших коэффициентах сжатия);
–отфильтрованный макроблок используется в режиме компенсации движения деталей изображения в кодере, что значительно уменьшает величину остаточных коэффициентов.
Необходимо отметить, что в режиме Intra макроблоки фильтруются, но для формирования прогноза не используются, кроме этого границы кадра не фильтруются в любом режиме.
Фильтрация применяется к вертикальным или горизонтальным границам блоков размером 4 × 4 в следующем порядке:
–фильтрация четырех вертикальных границ яркостной компоненты (в порядке a, b, c, d на рис. 14.39);
–фильтрация четырех горизонтальных границ яркостной компоненты (в порядке e, f, g, h на рис. 14.39);
–фильтрация двух вертикальных границ каждой цветоразностной компоненты (i, j);
–фильтрация двух горизонтальных границ каждой цветоразностной компоненты (k, l).
Каждая операция фильтрации использует до четырех пикселов с обеих сторон границы (рис. 14.40). В зависимости от величины текущего шага квантования, режима кодирования соседних блоков и градиента выборок изображения поперек границы используются четыре варианта фильтрации.
Глава14. Стандарты кодирования динамических изображений
Рис. 14.40. Использование смежных пикселов при деблокинговой фильтрации
Параметры деблокирующего фильтра зависят от типа границ между блоками:
–при кодировании блоков P и/или Q границей является граница между блоками яркости 16 × 16 или блоками цветности 8 × 8;
–при кодировании блоков P и/или Q границей не является граница между блоками яркости 16 × 16 или блоками цветности 8 × 8;
–ни блок P, ни блок Q не кодируются непосредственно, но используются кодированные коэффициенты;
–ни блок P, ни блок Q не кодируются, но имеют различные ссылки;
–во всех прочих случаях деблокинговая фильтрация не используется.
На рис. 14.41 показан пример применения деблокирующей фильтрации [5.70]. Деблокирующий фильтр увеличивает эффективность сжатия незначительно: скорость выходного битового потока уменьшается не более чем на 1–3%, а пиковое отношение сигнал/шум (PSNR) увеличивается примерно на 1%. Однако субъективное качество восстановленной видеопоследовательности с деблокирующей фильтрацией значительно выше. Увеличение эффективности кодирования, обеспечиваемое деблокирующим фильтром, зависит от содержания последовательности и требуемой выходной скорости закодированного потока.
14.6.7.Энтропийное кодирование
Встандарте Н.264/AVC определено несколько алгоритмов кодирования, которые применяются к различным элементам передаваемой информации. Так, элементы синтаксиса, относящиеся к кодированию кадра в целом, кодируются кодами фиксированной или переменной длины, а элементы, относящиеся непосредственно к кодированию остаточных коэффициентов, кодируются кодом переменной длины, или арифметическим кодом.
Использование кодов переменной длины
В стандарте определены два вида кодирования с переменной длиной кодового слова:
14.6. H.264/MPEG-4 часть 10 AVC — улучшенное видеокодирование
Рис. 14.41. Пример применения деблокирующего фильтра: а) — восстановленный кадр без фильтрации; б) — восстановленный кадр с деблокирующей фильтрацией
–экспоненциальное кодирование кодами Голомба (ExpGolomb coding);
–кодирование переменной длины с адаптацией на основе контекста (CAVLC – context-adaptive variable length coding).
Экспоненциальные коды переменной длины с регулярной структурой
используются для передачи служебных элементов синтаксиса: информации о коэффициенте квантования, режиме кодирования, данных о векторах движения и т. д.
Кодовое слово в данном случае имеет следующую структуру: |
|
[M ][1][INFO], |
(14.27) |
где INFO — информационное поле, состоящее из M битов, M — последовательность нулей «0», также состоящая из M битов.
Кодовое слово создается в соответствии с формулами:
M = log 2(code_num + 1), INFO = code_num + 1 − 2M, |
(14.28) |
где code_num — кодируемое значение. Декодирование этой информации происходит по следующему алгоритму:
–считать M начальных нулей, заканчивающихся 1;
–считать M -разрядное поля INFO;
–определить кодируемое значение по формуле:
code_num = 2M + INFO − 1.
Следует отметить, что для кодируемого значения «0», поля INFO и M имеют нулевую длину.
Кодируемое значение не является непосредственно тем параметром, который получен в результате обработки кадра. Стандартом определены три способа замены параметра v, полученного в результате обработки кадра, кодируемым
