- •Основы сжатия изображений и видео
- •Структура пзс-матрицы
- •Формирование цветного изображения
- •Аналого-цифровое преобразование
- •Сжатие цифрового телевизионного сигнала
- •Краткий обзор стандартов сжатия видео
- •Требования к алгоритму
- •Описание алгоритма сжатия mpeg
- •Устранение цветовой избыточности и подготовка макроблоков
- •8Х8 пикселей с сохранением шага дискретизации, а цветоразностные компоненты u
- •Сжатие независимых кадров (I – кадров)
- •Алгоритм jpeg
- •1991 Году в качестве одного из стандартов сжатия изображений, является одной
- •8Х8 (то есть, как средняя яркость блока).
- •Сжатие кадров с предсказанием (p-кадров и b-кадров)
- •Использование векторов смещений блоков
- •Структурная схема алгоритма mpeg
- •Повышение степени сжатия и качества видеоизображений
- •Алгоритм сжатия кадра на основе jpeg-2000
- •1992 Году. В 1997 стало ясно, что необходим новый, более гибкий и мощный стандарт, который и был доработан к 2000 году.
- •Идея алгоритма
- •Предобработка
- •Дискретное вэйвлет-преобразование. Идея алгоритма
- •Дискретное вэйвлет-преобразование в jpeg-2000
- •Квантование
- •Стандарт сжатия видео mpeg-4
- •Кодированное представление медийных объектов
- •Состав медийных объектов
- •Описание и синхронизация потоков данных для медийных объектов
- •Описание сцен
8Х8 (то есть, как средняя яркость блока).
Следующая по порядку базисная функция u = 1 изображена ниже, и представляет собой половину периода косинусоиды по одной координате и константу – по другой. Применительно к двумерному ДКП это означает, что спектральная
составляющая с координатами (1,0) представляет собой сумму всех пикселей блока слева от середины блока, минус сумму всех пикселей справа (разность яркостей левой и правой части блока 8х8). И так далее.
При этом, чем ниже и правее в матрице DCT его компонента, тем более
высокочастотным деталям изображения она соответствует.
В приведенной ниже таблице в качестве примера
представлены
числовые
значения пикселей для одного из блоков изображения
и значения ДКП-спектра
для этого блока.
Таблица 3
Отсчеты изображения в блоке 8х8
139
144
149
153
155
155
155
155
144
151
153
156
159
156
156
156
150
155
160
163
158
156
156
156
159
161
161
160
160
159
159
159
159
160
161
162
162
155
155
155
161
161
161
161
160
157
157
157
161
162
161
163
162
157
157
157
162
162
161
161
163
158
158
157
Результат ДКП блока 8х8
235,6
-1
-12,1
-5,2
2,1
-1,7
-2,7
1,3
-22,6
-17,5
-6,2
-3,2
-2,9
-0,1
0,4
-1,2
-10,9
-9,3
-1,6
1,5
0,2
-0,9
-0,6
-0,1
-7,1
-1,9
0,2
1,5
0,9
-0,1
0
0,3
-0,6
-0,8
1,5
1,6
-0,1
-0,7
0,6
1,3
1,8
-0,2
1,6
-0,3
-0,8
1,5
1
-1
-1,3
-0,4
-0,3
-1,5
-0,5
1,7
1,1
-0,8
-2,6
1,6
-3,8
-1,8
1,9
1,2
-0,6
-0,4
Обратите внимание на очень интересную особенность полученного ДКП спектра:
наибольшие его значения сосредоточены в левом верхнем углу табл. 3 (это низкочастотные составляющие). Правая нижняя же его часть (высокочастотные составляющие) заполнена относительно небольшими числами. Чисел этих столько
же, сколько и в блоке изображения: 8х8 = 64. Если выполнить обратное ДКП, то будет получен абсолютно тот же самый блок изображения. Правда, закодировать ДКП
спектр можно уже меньшим числом бит, поскольку правая нижняя часть таблицы состоит из чисел с гораздо меньшими величинами, чем раньше.
То есть, перевод изображения их пространственной области в спектральную
позволил сосредоточить основную часть энергии блока изображения в относительно
небольшом количестве низкочастотных спектральных коэффициентов, отвечающих за крупные детали изображения, хорошо различаемые глазом. Высокочастотные же коэффициенты, которые отвечают за мелкие детали изображения, имеют гораздо
меньшую величину.
Этот этап кодирования, по сути, устраняет пространственную избыточность,
поскольку, чем более похожими друг на друга (коррелированными) будут значения пикселей в блоке, тем большая часть энергии блока будет сконцентрирована в
компоненте DCT(0,0) и тем меньшими будут значения высокочастотных компонент. В
идеале, когда яркость всех точек блока 8х8 одинакова, в ДКП останется только один ненулевой элемент – DCT(0,0), все остальные элементы блока будут равны нулю.
Сжатие блока при этом будет максимальным.
Следующим этапом работы алгоритма JPEG является квантование (округление)
коэффициентов ДКП.
Зачем нужно квантование? Посмотрите на результат ДКП табл. 3. Коэффициент
DCT(0,0) равен 235,6. Для преобразования такого числа (с точностью до десятых) в
двоичный формат понадобится 13 бит. Если это число округлить до целого (шаг квантования равен 1), то для его представления в двоичной форме нужно уже 8 бит.
Если взять шаг квантования еще больше, то получится еще меньшая длина кода.
Квантование заключается в целочисленном делении каждого коэффициента ДКП на некоторое число.
Этот делитель может быть одним и тем же для всего блока, или индивидуальным для каждого ДКП-коэффициента блока. Чем больше делитель, тем более грубым является квантование. Обычно для низкочастотных компонент (на которых сильнее
заметны искажения), берется меньший шаг квантования (меньший коэффициент
деления), а для высокочастотных – больший шаг. Ниже приведен пример таблицы квантования, используемой на практике.
Таблица 4
3
5
7
9
11
13
15
17
5
7
9
11
13
15
17
19
7
9
11
13
15
17
19
21
9
11
13
15
17
19
21
23
11
13
15
17
19
21
23
25
13
15
17
19
21
23
25
27
15
17
19
21
23
25
27
29
17
19
21
23
25
27
29
31
Чем больше числа, на которые происходит деление, тем больше в результате
деления будет нулевых значений в блоке ДКП, а значит, сильнее сжатие. Но будут и более заметными искажения.
Пример квантования результатов ДКП приведен в таблице 5.
Таблица 5
Ранее полученный результат ДКП
235,6
-1
-12,1
-5,2
2,1
-1,7
-2,7
1,3
-25,6
-17,5
-6,2
-3,2
-2,9
-0,1
0,4
-1,2
-10,9
-9,3
-1,6
1,5
0,2
-0,9
-0,6
-0,1
-7,1
-1,9
0,2
1,5
0,9
-0,1
0
0,3
-0,6
-0,8
1,5
1,6
-0,1
-0,7
0,6
1,3
1,8
-0,2
1,6
-0,3
-0,8
1,5
1
-1
-1,3
-0,4
-0,3
-1,5
-0,5
1,7
1,1
-0,8
-2,6
1,6
-3,8
-1,8
1,9
1,2
-0,6
-0,4
Результат квантования (целочисленное деление на 15)
16
0
-1
0
0
0
0
0
-2
-1
0
0
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Именно на этом этапе алгоритма формируется основной эффект сжатия неподвижной картинки.
Следующим этапом работы алгоритма JPEG является преобразование 8х8
блока квантованного ДКП спектра в линейную последовательность.
Делается это таким образом, чтобы сгруппировать по возможности вместе все большие и все нулевые значения спектра. Для этого нужно прочесть элементы
матрицы коэффициентов ДКП в порядке, подобном изображенному ниже, то есть зигзагообразно – из левого верхнего угла к правому нижнему.
Эта
процедура называется зигзаг-сканированием
(Z-сканированием).
В результате такого преобразования квадратная
матрица 8х8 квантованных коэффициентов ДКП
превратится в линейную последовательность из 64
чисел, большая часть из которых – это идущие
подряд нули. То есть, в этой последовательности имеет место существенная статистическая
избыточность - наличие большого числа и повторяемость одинаковых элементов.
Такого рода избыточность очень эффективно сжимается с помощью кодирования
длин повторений (RLE).
Таким образом, очередным этапом сжатия является кодирование длин повторений
для исключения длинных цепочек нулей.
Наконец, последним этапом работы алгоритма JPEG, который применяется уже ко всем блокам I-кадра, является кодирование получившейся последовательности
статистическим алгоритмом Хаффмена. Это делается, поскольку частота встречаемости разных чисел в последовательности неодинакова, и чаще встречающиеся значения можно кодировать более короткими кодами, а редко
встречающиеся – более длинными.
Декодирование данных, сжатых согласно алгоритму JPEG, проводится точно так же,
как и кодирование, но все операции следуют в обратном порядке.
После неразрушающей распаковки методом Хаффмана и RLE и расстановки
линейной последовательности в блоки размером 8х8 спектральные компоненты деквантуются путем умножения на те же коэффициенты, на которые выполнялось деление при квантовании. После этого каждый блок подвергается обратному косинусному преобразованию, процедура которого совпадает с прямым и различается только знаками в матрице преобразования. Последовательность действий при декодировании и полученный результат иллюстрируются приведенной
ниже табл. 6.
Таблица 6
Квантованные данные
16
0
-1
0
0
0
0
0
-2
-1
0
0
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Деквантованные данные
240
0
-15
0
0
0
0
0
-30
-15
0
0
0
0
0
0
-15
-15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Результат обратного ДКП (для сравнения – исходные данные)
144 139
146 144
149 149
152 153
154 155
156 155
156 155
156 155
148 144
150 151
152 153
154 156
156 159
156 156
156 156
156 156
155 150
156 155
157 160
158 163
158 158
157 156
156 156
155 156
160 159
161 161
161 161
162 160
161 160
159 159
157 159
155 159
163 159
163 160
164 161
163 162
162 162
160 155
158 155
156 155
163 161
164 161
164 161
164 161
162 160
160 157
158 157
157 157
160 161
161 162
162 161
162 163
162 162
161 157
159 157
158 157
158 162
159 162
161 161
161 161
162 163
161 158
159 158
158 157
Перечисленная выше последовательность действий, применяются ко всем составляющим цветного изображения – яркостной компоненте Y, и цветоразностным
компонентам U и V.
Таким образом, мы кратко описали процесс сжатия I-кадра - неподвижной картинки без ссылок на предыдущий и последующий кадры (без учета межкадровой зависимости изображения). Степень сжатия I-кадров, в связи с этим, не может быть очень большой, и в среднем составляет не более 10 – 20 раз. Для изображений, на которых содержатся только крупные детали с плавными переходами, коэффициент сжатия I-кадра может составлять до 40 – 50 раз.
