Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
301
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава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.6. H.264/MPEG-4 часть 10 AVC — улучшенное видеокодирование

В стандарте Н.264/AVC преобразование применяется к блокам 4 × 4, и вместо дискретного косинусного преобразования (ДКП) используется сепарабельное целочисленное преобразование, близкое по свойствам к ДКП.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задаваемое стандартом преобразование входного массива Xразмером 4 × 4

имеет следующий вид:

2 1

 

1 −2 [X]

 

 

 

 

 

 

 

 

 

 

Y = C X CT

E =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

×

 

 

 

 

 

 

 

 

 

 

 

1

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

a

2

ab

a

2

ab

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

2

 

2

,

 

 

 

 

×

1

 

 

1

 

 

 

 

 

2

ab

a2

ab

 

 

 

 

 

 

 

1 2

 

 

 

a2

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ab

2

ab

2

 

 

 

 

 

 

 

1

 

 

2

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

1

 

 

 

 

 

2

 

 

 

2

4

2

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

2

4

 

 

 

 

 

 

 

 

1

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ab

b

ab

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b = +

 

 

 

 

 

 

 

 

 

 

 

 

 

(14.12)

 

 

 

 

 

a =

 

,

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

5

 

 

 

 

 

 

 

 

 

Это преобразование обеспечивает почти такую же степень сжатия, что и ДКП, но обладает целым рядом преимуществ:

T

«ядро» преобразования C X C может быть выполнено в целочисленной арифметике при помощи только операций суммирования, вычитания и сдвига (умножение на 2);

динамический диапазон результата действий данного преобразования такой, что везде может быть использована 16-разрядная арифметика без риска выхода за пределы диапазона ±255;

масштабирование при помощи матрицы E требует только одного умножения для каждого коэффициента, которое может быть «включено» в процесс квантования.

Обратное преобразование определяется следующим соотношением:

 

 

 

 

Cˆ =

1

 

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

X˜ = CˆT

Y

 

Eˆ

1

 

 

 

−1 −1

 

 

 

 

 

 

 

 

 

 

 

 

21

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

1 −2

 

−1 11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[Y ]

 

 

a

2

ab

a

2

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

ab

 

 

 

 

 

 

 

 

ab b2

ab b2

1

1

1

−1

 

 

×

 

 

 

 

a2

 

ab a2

ab

 

 

1

 

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ab

 

b

2

ab

b

2

 

 

1

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. (14.13)

 

 

ˆ

Здесь матрица Y вначале масштабируется матрицей E путем поэлементного умно-

ˆ

ˆT

могут быть выполнены без потери точности,

жения. Операции матрицами C

и C

потому что коэффициенты матрицы вначале подвергаются масштабированию.

Y

Прямое и обратное преобразования являются ортогональными, т. е.

T−1(T(X)) = X.

Основной процесс кодирования с преобразованием очень похож на процесс в предшествующих стандартах. На стороне кодера процесс включает прямое пре-

Глава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. H.264/MPEG-4 часть 10 AVC — улучшенное видеокодирование

для каждого приращения QP на 6; Qstep увеличивается на 12,5% для каждого единичного приращения параметра QP . Широкий диапазон значений шага квантования позволяет кодирующему устройству точно и гибко управлять обменом между количеством передаваемых битов и качеством закодированных динамических изображений.

Таблица 14.29. Позиции коэффициентов квантования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение коэффициента P F

 

 

 

 

 

 

Позиции в блоке X

 

 

 

 

 

 

 

(0,0), (2,0), (0,2) и (2,2)

 

 

 

 

a2

 

 

 

 

 

 

 

 

 

(1,1), (1,3), (3,1) и (3,3)

 

 

 

b2/4

 

 

 

 

 

 

 

 

 

В остальных случаях

 

 

 

ab/2

 

 

 

 

 

 

Таблица 14.30. Размер шага квантования в кодеке H.264/AVC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

QP

0

1

2

3

4

 

5

6

7

 

8

9

10

11

12

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Qstep

0,625

0,6875

0,8125

0,875

1

 

1,125

1,25

1,375

 

1,625

1,75

2

 

2,25

2,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

QP

. . .

18

. . .

24

. . .

 

30

. . .

36

 

. . .

42

. . .

 

48

. . .

51

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Qstep

 

5

 

10

 

 

20

 

40

 

 

80

 

 

160

 

224

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для исключения операции деления в соотношении (14.14) стандарт преду-

сматривает преобразование:

 

 

 

 

 

.

 

 

P F

=

M F

, qbits = 15 + floor

QP

(14.15)

 

 

 

 

 

Qstep

2qbits

6

Здесь floor(v) — целое числа v. При этом операция квантования

 

 

 

 

Zij = round Wij

M F

 

 

 

 

 

 

 

 

 

 

 

 

(14.16)

 

 

 

2qbits

 

 

 

преобразуется так, что коэффициенты Wij умножаются на коэффициент-фактор M F , а затем производится сдвиг вправо на величину qbits. В целочисленной арифметике (14.16) может быть выполнено следующим образом:

Zij = (Wij M F + f ) > > qbits,

(14.17)

где знак >> определяет логический сдвиг вправо, а f = 2qbits/3 для Intpa-блоков и f = 2qbits/6 для Inter-блоков. Величины M F для первых шести значений QP приведены в табл. 14.31.

Таблица 14.31. Коэффициент-фактор M F

QP

Позиции (0,0), (2,0), (0,2) и (2,2)

Позиции (1,1), (1,3), (3,1) и (3,3)

В остальных случаях

0

13107

5243

8066

 

 

 

 

1

11916

4660

7490

 

 

 

 

2

10082

4194

6554

3

9362

3647

5825

 

 

 

 

4

8192

3355

5243

 

 

 

 

5

7282

2893

4559

Для значений QP > 5 коэффициенты умножения M F будут повторяться в соответствии с табл. 14.31, а делитель 2qbits будет увеличиваться в два раза для каждого приращения QP на 6. Например, qbits = 16 для 6 QP 11, qbits = 17

Глава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, полученного в результате обработки кадра, кодируемым