Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labrab_Shulgin_Osnovi_szhatiya_izobrazhenij_i_v...docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

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 раз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]