| |
 |
| Рис. 1. Компрессия
DV |
Цифровая магнитная видеозапись.
Формат DV
Продолжение. Начало в №3
Константин Гласман
Иллюстрации Маргариты Покопцевой
Обработка видеосигнала
Видеокомпрессия
Квантование: принципы
 |
| Рис. 2. Структура
дискретизации 4:1:1 |
 |
| Рис. 3. Структура
дискретизации 4:2:0 (MPEG-2) |
 |
| Рис. 4. Структура
дискретизации 4:2:0 с совмещенными отсчетами яркостного и
цветоразностных сигналов |
Дискретно-косинусное преобразование декоррелирует
отсчеты изображения и позволяет описать изображение с помощью меньшего
количества чисел, в качестве которых используются коэффициенты DCT
(многие коэффициенты для типичных изображений обращаются в ноль, что
иллюстрируют рис. 7, 10). Дискретно-косинусное преобразование обратимо,
т.е. уменьшение объема данных за счет исключения нулевых коэффициентов
DCT не связано с искажениями. Но достигаемая при этом степень
компрессии, не вносящей искажений, невелика. Надо также иметь в виду,
что для уменьшения ошибок округления при вычислении коэффициентов DCT и
достижения практической прозрачности процесса "прямое косинусное
преобразование - обратное косинусное преобразование" количество
двоичных разрядов, используемое в вычислениях, должно быть увеличено на
несколько единиц в сравнении с длиной слова, используемого для
представления пикселей исходного изображения. Например, при
восьмиразрядном кодировании видеоданных надо использовать
десятиразрядные (как минимум!) слова для представления коэффициентов
DCT. За счет декорреляции, достигаемой с помощью дискретно-косинусного
преобразования, и последующего энтропийного кодирования матрицы
коэффициентов DCT, можно уменьшить объем данных, необходимых для
описания типичных телевизионных изображений, приблизительно в 1,5…2
раза. Для достижения заданной скорости потока в 25 Мбит/с и,
соответственно, степени компрессии 5:1 стандарт DV предлагает
уменьшение числа уровней квантования коэффициентов DCT. В стандарте
этот процесс называется просто квантованием (не надо путать это второе
квантование, заключающееся в округлении коэффициентов DCT, с
квантованием, выполняемым при аналого-цифровом преобразовании
видеосигнала).
 |
| Рис. 5. Макроблок
формата 4:1:1 |
 |
| Рис. 6. Макроблок
формата 4:2:0 |
 |
Рис. 7. Блок
статического изображения, содержащий перепад яркости (а)и его частотный
спектр (б)
(fh, fv – пространственные частоты
горизонтального и вертикального направлений;
С(fh, fv) – коэффициенты дискретно-косинусного
преобразования 8-8-DCT) |
Квантование осуществляется на практике путем деления
коэффициентов DCT на целые числа, большие единицы. Например, деление
коэффициента DCT на четыре приводит к уменьшению величины коэффициента
и, соответственно, к уменьшению числа уровней квантования в четыре
раза. Конечно, при воспроизведении этот коэффициент умножается на
четыре, и его величина восстанавливается, но лишь приблизительно,
поскольку действия с коэффициентами производятся как операции с целыми
числами, т.е. деление связано с округлением. Процедура деления и
умножения равносильна увеличению в четыре раза шага квантования и
округлению величин рассчитанных коэффициентов. Для разных коэффициентов
устанавливаются различные значения шагов квантования. Таблица чисел, на
которые делятся и умножаются коэффициенты DCT и которые показывают
получаемое при квантовании значение шага квантования, часто называется
матрицей квантования. Конечно, при таком квантовании происходит
увеличение шумов квантования. Но оптимизация матрицы квантования
позволяет минимизировать заметность искажений, возникающих при
квантовании коэффициентов DCT. Такая возможность обусловлена свойствами
зрительного анализатора человека. Известно, что шумы квантования
наиболее заметны на крупных деталях изображения (где они проявляются в
виде ложных контуров), а на мелких деталях и контурах ошибки
квантования заметны гораздо меньше. Поэтому в системах компрессии на
базе дискретно-косинусного преобразования числа матрицы квантования
принимают наибольшие значения для самых высокочастотных коэффициентов
DCT, располагающихся в правом нижнем углу блока DCT.
Квантование: взвешивание и масштабирование
Вычисленные коэффициенты DCT подвергаются квантованию с
различными весовыми коэффициентами, учитывающими свойства зрительного
анализатора. Одна строка матрицы весовых коэффициентов показана на рис.
11. Весовые коэффициенты представляют собой постоянные величины, т.е.
они не меняются в зависимости от структуры изображения. Однако
остальные параметры квантования являются адаптивными, их значения
зависят от свойств кодируемого изображения. Взвешенные коэффициенты DCT
преобразуются в девятибитовые слова в процессе начального
масштабирования. Для представления рассчитанной в процессе
дискретно-косинусного преобразования постоянной составляющей DC (DC -
Direct Current) блока изображения используются девять битов: b8, b7, …
, b1, b0. Постоянная составляющая DC расположена в верхнем левом углу
матрицы коэффициентов DCT, она вычисляется в дополнительном коде.
Таблица 1. Пример классификации блоков
| Блок |
Максимальная абсолютная величина
коэффициентов DCT |
| 0…11 |
12…23 |
24…25 |
>35 |
| Y |
0 |
1 |
2 |
3 |
| Cr |
1 |
2 |
3 |
3 |
| Cb |
2 |
3 |
3 |
3 |
 |
| Рис. 8. Базисные
функции дискретно-косинусного преобразования |
Для представления коэффициентов матрицы DCT,
определяющих значения амплитуд остальных базисных функций, т.е.
амплитуд переменных составляющих AC (AC - Alternating Current), сначала
используются десять битов: S, b8, b7, … , b1, b0, где S - бит знака, bi
- двоичные разряды абсолютной величины амплитуды. Затем блок DCT
относится к одному из четырех классов в соответствии со значениями
амплитуд базисных функций (примером правила классификации блоков может
служить таблица 1). Класс "0" характеризуется наименьшими амплитудами
базисных функций, составляющих блок изображения, и, соответственно,
наибольшей заметностью шумов квантования. Наименьшая заметность шумов
квантования будет для блока, относящегося к классу "3". Для блока
класса "0" у десятибитовых слов S, b8, b7, … , b1, b0 в процессе
начального масштабирования отбрасывается старший бит абсолютной
величины b8, и формируется девятибитовое слово S, b7, … , b1, b0. Для
блоков остальных трех классов отбрасывается младший значащий бит
десятибитового числа, т.е. в результате начального масштабирования
опять образуется девятибитовое число, но с другими составляющими его
разрядами: S, b8, b7, … , b1.
 |
Рис. 9. Блок
динамического изображения, содержащий перепад яркости (а) и его
частотный спектр (б)
(fh, fv – пространственные частоты
горизонтального и вертикального направлений; С(fh, fv)
– коэффициенты дискретно-косинусного преобразования 8-8-DCT) |
 |
| Рис. 10.
Дискретно-косинусное преобразование 2-4-8-DCT |
Квантование: области, таблицы и число
квантования
 |
 |
Рис. 11. Весовые
коэффициенты частотного спектра дискретно-косинусного преобразования
8-8-DCT (при fv = 0) |
Рис. 13.
Относительное изменение коэффициентов 8-8-DCT в соответствии
с таблицей квантования d |
 |
Рис.
12. Области квантования коэффициентов дискретно-косинусного
преобразования
8-8-DCT и 2-4-8-DCT |
После масштабирования девятибитовые слова подвергаются
собственно квантованию. Один и тот же шаг квантования устанавливается
для коэффициентов, принадлежащих к одной области (рис. 12). Надо
отметить, что постоянная составляющая DC квантованию не подвергается.
Всего может использоваться девять различных таблиц - матриц квантования
(их типы, или коды обозначены в таблице 2 буквами от a до i),
характеризующихся различными сочетаниями шагов квантования в различных
областях квантования. Шаг, равный единице, означает сохранение величин
амплитуд базисных функций неизмененными, шаг 16 - увеличение интервала
квантования в 16 раз, т.е. амплитуды коэффициентов в процессе
квантования делятся на 16 и затем округляются. На рис. 13 показано
относительное изменение коэффициентов DCT после квантования,
выполняемого в соответствии с таблицей типа d. Устройство оценки
энтропии (рис. 1) должно оптимальным образом установить значения чисел
квантования QNO (Quantization Number) из диапазона 0..15 для пяти
макроблоков видеосегмента. Выбор таблицы квантования подчинен
ограничению объема данных, занимаемого пятью макроблоками одного
видеосегмента, на уровне 385 байтов (размер области компрессированного
видеосегмента). То, что единое число квантования задается для
макроблока, не означает единообразного квантования всех блоков DCT
этого макроблока. Из таблицы 3 следует, что если, например, для
некоторого макроблока задано число квантования, равное пяти, а в
составе макроблока есть блоки всех четырех классов, то для блока с
номером класса "0" будет выполняться квантование в соответствии с
таблицей d (таблица 2), для блока класса "1" - e, для блока класса "2"
- g, для блока класса "3" - f. Режим дискретного косинусного
преобразования может выбираться для каждого блока DCT независимо от
режимов других блоков макроблока, что обеспечивает необходимую гибкость
квантования стандарта DV.
Таблица 2. Таблицы квантования
коэффициентов дискретно-косинусного преобразования
| Таблица |
Область квантования |
| 0 |
1 |
2 |
3 |
| a |
1 |
1 |
1 |
1 |
| b |
1 |
1 |
1 |
2 |
| c |
1 |
1 |
2 |
2 |
| d |
1 |
2 |
2 |
4 |
| e |
2 |
2 |
4 |
4 |
| f |
2 |
4 |
4 |
8 |
| g |
4 |
4 |
8 |
8 |
| n |
4 |
8 |
8 |
16 |
| i |
8 |
8 |
16 |
16 |
Таблица 3. Число квантования как функция
класса блока и таблицы квантования
Таблица
квантования |
Клас блока |
| 0 |
1 |
2 |
3 |
| a |
15 |
|
|
|
| 14 |
|
|
|
| 13 |
|
|
|
| 12 |
15 |
|
|
| 11 |
14 |
|
|
| 10 |
13 |
|
15 |
| 9 |
12 |
15 |
14 |
| b |
8 |
11 |
14 |
13 |
| c |
7 |
10 |
13 |
12 |
| 6 |
9 |
12 |
11 |
| d |
5 |
8 |
11 |
10 |
| 4 |
7 |
10 |
9 |
| e |
3 |
6 |
9 |
8 |
| 2 |
5 |
8 |
7 |
| f |
1 |
4 |
7 |
6 |
| 0 |
3 |
6 |
5 |
| g |
|
2 |
5 |
4 |
| |
1 |
4 |
3 |
| n |
|
0 |
3 |
2 |
| |
|
2 |
1 |
| i |
|
|
1 |
0 |
| |
|
0 |
|
Энтропийное кодирование
 |
Рис. 14. Порядок
сканирования матрицы коэффициентов
8-8-DCT |
 |
Рис. 15. Порядок
сканирования матрицы коэффициентов
2-4-8-DCT |
Квантованные коэффициенты каждого блока DCT
переписываются в порядке, повышающем эффективность энтропийного
кодирования (рис. 14, 15). Первой следует постоянная составляющая
блока, но энтропийному кодированию подвергается только
последовательность амплитуд базисных функций дискретно-косинусного
преобразования, описывающих переменную составляющую яркости в пределах
блока. Для каждого ненулевого коэффициента DCT определяется пара чисел
(run, amp): число элементов серии из предшествующих коэффициентов с
нулевым значением (run) и абсолютная величина ненулевого коэффициента
(amp). Пары (run, amp) кодируются кодовыми словами переменной длины, к
которым добавляется бит знака ненулевого коэффициента S. Если все
оставшиеся до конца блока коэффициенты имеют нулевую величину, то
процесс энтропийного кодирования прекращается, и последним следует
кодовое слово символа EOB (End Of Block - конец блока).
Данные шести компрессированных блоков макроблока
объединяются в структуру из 76 байтов, называемую компрессированным
макроблоком (рис. 16). На каждый из четырех блоков яркостного
компонента Y отводится по 14 байтов, на блоки цветоразностных сигналов Сr
и Сb - по 10 байтов. Первые полтора байта каждого
компрессированного блока занимает постоянная составляющая DC (девять
байтов), дополненная битом m0 режима дискретно-косинусного
преобразования (m0=0 для режима 8-8 DCT, m0=1 для
режима 2-4-8 DCT) и двумя битами c1 и c0,
представляющими номер класса блока в двоичном коде. Оставшееся
пространство в области, отведенной для каждого компрессированного
блока, заполняется кодированной последовательностью коэффициентов -
амплитуд базисных функций, заканчивающейся кодовым словом символа конца
блока EOB.
Упаковка компрессированного видеосегмента
 |
| Рис. 16. Структура
компрессированного макроблока |
Пять компрессированных макроблоков объединяются в
компрессированный видеосегмент (рис. 17). Объем данных
компрессированного видеосегмента не может превышать 385 байтов. К
каждому компрессированному макроблоку из 76 байтов добавляется байт,
содержащий четырехбитовый код числа квантования QNO данного макроблока,
и четыре бита, представляющих код статуса компрессированного макроблока
STA (Status of the compressed macro block). Слово статуса STA может
содержать сообщение об ошибке в данном компрессированном макроблоке или
о способе маскирования. Оно может сообщать, что макроблок заменен таким
же макроблоком из предшествующего или последующего телевизионного
кадра. Слово STA может также нести информацию о том, сохраняется ли в
данном макроблоке непрерывность потока данных компрессированного
видеосегмента.
Стандарт DV не требует, чтобы последовательность кодовых
слов коэффициентов AC каждого блока укладывалась в пределах областей,
показанных на рис. 16, хотя это является желательным. Более того,
пространство, выделенное для конкретного макроблока компрессированного
видеосегмента, может содержать также данные других макроблоков данного
видеосегмента. Только постоянная составляющая DC, а также биты c1 и
c0 кодового слова класса блока размещаются в четко
определенных на рис. 16 и 17 местах.
 |
| Рис. 17. Структура
компрессированного видеосегмента |
Кодированные слова коэффициентов AC размещаются в
пределах компрессированного видеосегмента за три прохода. Сначала
данные блоков размещаются в основных отведенных для них областях,
показанных на рис. 16 и 17 (проход 1). После прохода 1 области блоков,
представляющие собой фрагменты изображения без мелких деталей, окажутся
занятыми лишь частично (см. рис. 7). Но если блок находится на участке
с динамичными мелкими деталями, то соответствующие матрицы
коэффициентов DCT будут содержать большое число значимых коэффициентов
и объем данных, полученных после энтропийного кодирования, может быть
больше, чем допускает отведенная основная область блока. За проход 2
эти избыточные данные распределяются по свободным участкам того же
макроблока, в котором они находятся. Если после прохода 2 остались
нераспределенные данные, то они размещаются на свободных участках
других макроблоков компрессированного видеосегмента на проходе 3. После
прохода 3 нераспределенные данные отбрасываются. Устройство оценки
энтропии (рис. 1) решает две важные задачи. Необходимо, с одной
стороны, не допустить необратимой потери данных, поскольку в этом
случае возможны очень грубые искажения изображения. С другой стороны,
надо обеспечить близкое к предельному заполнение области, отведенной
для компрессированного видеосегмента, так как неполное заполнение
говорит о чрезмерно грубом квантовании и большем, чем возможно, уровне
шумов квантования. Таким образом, устройство оценки энтропии должно
находить оптимальную комбинацию чисел квантования для макроблоков
видеосегмента.
Данные AC компрессированных макроблоков распределяются в
пределах всего компрессированного видеосегмента. Но это означает, что
данные AC, попавшие во время третьего прохода в "чужие" макроблоки,
могут быть потеряны в случае замены этого "чужого" макроблока при
маскировании. Впрочем, это не означает катастрофы. О нарушении
непрерывности потока данных компрессированного видеосегмента будет
свидетельствовать слово STA статуса компрессированного макроблока.
Действия, которые надо предпринять в этом случае, стандарт DV не
регламентирует. Однако, как было отмечено выше, в стандарте
предусмотрена передача сведений, необходимых для принятия решения о
возможных действиях в случае потери части компрессированных данных.
Как будет показано в следующем разделе, в кадре
телевизионного изображения образуется 324 видеосегмента при стандарте
разложения 625/50 и 270 - при стандарте 525/60. Так как объем данных
компрессированного сегмента составляет 385 байтов, то компрессированный
кадр изображения содержит 8x385x324=997920 битов в системе 625/50 и
8x385x270=831600 битов - в системе 525/60. Это позволяет найти скорость
потока компрессированных видеоданных, равную в обоих случаях
997920x25=831600x30=24,948 Мбит/с. Найденный показатель определяет
точное значение степени видеокомпрессии, устанавливаемой форматом DV:
124,416/24,948=4,987.
|