Главная > Сжатие данных, изображений и звука
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

3.7. JPEG

JPEG является очень изощренным методом сжатия изображений с потерей и без потери информации. Он применим как к цветным, так и к полутоновым изображениям (но не к мультфильмам и анимациям). Этот алгоритм не очень хорошо сжимает двухуровневые черно-белые образы, но он прекрасно обрабатывает изображения с непрерывными тонами, в которых близкие пикселы обычно имеют схожие цвета. Важным достоинством метода JPEG является большое количество настраиваемых параметров, которые пользователь может выбирать по своему усмотрению, в частности, он может регулировать процент теряемой информации, а, значит, и коэффициент сжатия, в широком диапазоне. Обычно глаз не в состоянии заметить какого-либо ущерба даже при сжатии этим методом в 10 или 20 раз. Имеется две основные моды: с потерей (называемая также базелиной) и без потерь информации (которая не слишком эффективна и обычно дает фактор сжатия около 2). Большинство приложений прежде всего используют моду с потерей данных. Эта мода также содержит прогрессирующее и иерархическое кодирование.

JPEG является прежде всего методом сжатия. Его нельзя рассматривать в качестве полноценного стандарта представления изображений. Поэтому в нем не задаются такие специфические параметры изображения как геометрический размер пиксела, пространство цветов или чередование битовых строк.

JPEG был разработан как метод сжатия непрерывно-тоновых образов. Основные цели метода JPEG состоят в следующем:

1. Высокий коэффициент сжатия, особенно для изображений, качество которых расценивается как хорошее или отличное.

2. Большое число параметров, позволяющих искушенному пользователю экспериментировать с настройками метода и добиваться необходимого баланса сжатие/качество.

3. Хорошие результаты для любых типов непрерывно-тоновых изображений независимо от их разрешения, пространства цветов, размера пикселов или других свойств.

4. Достаточно изощренный метод сжатия, но не слишком сложный, позволяющий создавать соответствующие устройства и писать программы реализации метода для компьютеров большинства платформ.

5. Несколько мод операций: (а) Последовательная мода: все цветные компоненты сжимаются в виде простого сканирования слева неправо и сверху вниз; (b) Прогрессирующая мода: изображение сжимается в виде нескольких блоков (называемых «сканами»), позволяющими делать декомпрессию и видеть сначала грубые, а потом все более четкие детали изображения; (с) Мода без потерь информации (нужная на случай, если пользователь желает сохранить пикселы без изменений; при этом приходится расплачиваться низкой степенью сжатия); и (d) Иерархическая мода, когда изображение сжимается со множеством разрешений, позволяющая создавать блоки низкого разрешения, которые можно наблюдать перед блоками высокого разрешения.

Сокращение JPEG произведено от Joint Photographic Experts Group (объединенная группа по фотографии). Проект JPEG был инициирован совместно комитетом CCITT и ISO (the International Standard Organization, международная организация по стандартам). Он начался в июне 1987 года, а первый черновой алгоритм JPEG был разработан в 1991 году. Стандарт JPEG доказал свою эффективность и стал широко применяться для сжатия изображений, особенно во всемирной паутине.

Основные шаги сжатия метода JPEG, которые будут подробно описываться в следующих параграфах, состоят в следующем.

1. Цветное изображение преобразуется из RGB в представление светимость/цветность (§ 3.7.1; для полутоновых черно-белых изображений этот шаг опускается). Глаз чувствителен к малым изменениям яркости пикселов, но не цветности, поэтому из компоненты цветности можно удалить значительную долю информации для достижения высокого сжатия без заметного визуального ухудшения качества образа. Этот шаг не является обязательным, но он очень важен, так как остальная часть алгоритма будет независимо работать с каждым цветным компонентом. Без преобразования пространства цветов из компонентов RGB нельзя удалить существенную часть информации, что не позволяет сделать сильное сжатие.

178.jpg

Рис. 3.48. 2h2v и 2h1v укрупнение пикселов.

2. Цветное изображение разбивается на крупные пикселы (этот шаг делается, если необходимо иерархическое сжатие; он всегда опускается для полутоновых изображений). Эта операция не делается для компоненты яркости. Укрупнение пикселов (рис. 3.48) делается или в соотношении 2:1 по горизонтали и вертикали (так называемое укрупнение 2h2v или «4:1:1» ) или в пропорциях 2:1 по горизонтали и 1:1 по вертикали (укрупнение 2h1v или «4:2:2»). Поскольку это делается для двух компонентов из трех, 2h2v сокращает изображение до  его размера, a 2h1v до  его размера. Компонента светимости не затрагивается, поэтому не происходит заметной потери качества изображения.

3. Пикселы каждой цветной компоненты собираются в блоки 8x8, которые называются единицами данных. Если число строк или столбцов изображения не кратно 8, то самая нижняя строка и самый правый столбец повторяются нужное число раз. Если мода с чередованием выключена, то кодер сначала работает со всеми единицами данных первой цветной компоненты, затем второй компоненты, а потом третьей компоненты. Если мода с чередованием включены, то кодер обрабатывает три самых верхних левых единицы данных трех компонентов (#1), затем три единицы данных (#2) справа от них и так далее.

4. Затем применяется дискретное косинус-преобразование (DCT, § 3.5.3) к каждой единице данных, в результате чего получаются блоки 8x8 частот единиц данных (§ 3.7.2). Они содержат среднее значение пикселов единиц данных и следующие поправки для высоких частот. Все это приготавливает данные для основного шага выбрасывания части информации. Поскольку DOT использует трансцендентную функцию косинус, на этом шаге происходит незначительное изменение информации из-за ограниченности точности машинных вычислений. Это означает, что даже без основного шага потери данных (шаг 5 далее), происходит небольшое, крайне слабое искажение изображения.

5. Каждая из 64 компонент частот единиц данных делится на специальное число, называемое коэффициентами квантования (QC), которая округляется до целого (§ 3.7.4). Здесь информация невосполнимо теряется. Большие коэффициенты QC вызывают большую потерю, поэтому высокочастотные компоненты, обычно, имеют большие QС. Все 64 коэффициента QC являются изменяемыми параметрами, которые, в принципе, пользователь может регулировать самостоятельно. Однако большинство приложений используют таблицу QC, рекомендуемую стандартом JPEG для компонентов светимости и цветности (табл. 3.50).

6. Все 64 квантованных частотных коэффициента (теперь это целые числа) каждой единицы данных кодируются с помощью комбинации RLE и метода Хаффмана (§ 3.7.5). Вместо кодирования Хаффмана может также применяться вариант арифметического кодирования, известный как кодер QM [Salomon 2000].

7. На последнем шаге добавляется заголовок из использованных параметров JPEG и результат выводится в сжатый файл. Сжатый файл может быть представлен в трех разных форматах: (1) формат обмена, когда файл содержит сжатый образ и все необходимые декодеру таблицы (в основном это таблицы квантования и коды Хаффмана), (2) сокращенный формат для сжатого изображения, где файл может не содержать всех таблиц, (3) сокращенный формат для таблиц, когда файл содержит только таблицы спецификаций без сжатых данных. Второй формат применяется, если при сжатии некоторые параметры и таблицы использовались по умолчанию, поэтому декодер их знает. Третий формат бывает полезен, если сжимается много однотипных изображений с помощью одних и тех же параметров. Если необходимо раскрыть эти изображения, то декодеру сначала направляется файл со спецификациями.

Декодер JPEG совершает обратные действия. (Значит, JPEG является симметричным методом сжатия.)

Прогрессирующая мода является опционной для JPEG. В этой моде высокочастотные коэффициенты DCT записываются в сжатый файл блоками, называемыми «сканами». Каждый прочитанный декодером скан дает возможность подправить и уточнить картинку. Идея заключается в том, что несколько первых сканов используются для быстрого показа изображения низкого качества. Далее происходит или декодирование следующих сканов, или отказ от дальнейшего декодирования. Плата за это заключается в том, что кодер должен хранить в буфере все коэффициенты всех единиц данных до того, как их послать в скан (так как они посылаются в скан в обратном порядке, а не в порядке их генерации, см. 176). Кроме того приходится делать весь процесс декодирования для каждого скана, что замедляет прогрессирующее декодирование.

На рис. 3.49а показан пример изображения с разрешением 1024х512. Это изображение разделено на 128х64=8192 единиц данных, каждая из которых преобразована с помощью DCT в блок из 64 чисел по 8 бит. На рис 3.49b изображен параллелепипед, длина которого равна 8192 единицам данных, высота равна 64 коэффициентам DCT (коэффициент DC расположен наверху с номером 0), а ширина равна 8 битам каждого коэффициента.

После представления всех единиц данных в буфере памяти, кодер записывает их в сжатый файл одним из двух способов: с помощью отбора спектра или методом последовательных приближений (рис. 3.49c,d). В обоих случаях первый скан состоит из коэффициентов DC.

181.jpg

Рис. 3.49. Сканы в прогрессирующей моде JPEG.

Если делается отбор спектра, то каждый следующий скан состоит из нескольких последовательных коэффициентов (полосы) АС. При выборе метода последовательных приближений, второй скан состоит из 4 самых значимых битов всех коэффициентов АС, а каждый следующий скан, имеющий номер от 3 до 6, добавляет по одному значащему биту (от третьего до нулевого).

В иерархической моде кодер сохраняет изображение в выходном файле несколько раз с разными разрешениями. Однако, каждая часть высокого разрешения использует части низкого разрешения, поэтому общее количество информации меньше, чем потребуется для раздольного хранения одинаковых изображений с разным разрешением. Каждая иерархическая часть может декодироваться прогрессирующим образом.

Иерархическая мода бывает полезной, если изображение с высоким разрешением требуется отобразить на устройстве визуализации с низким разрешением. Примером таких устройств могут служить устаревшие матричные принтеры, которые еще используются в работе.

Мода без потери данных в JPEG (§ 3.7.6) вычисляет «прогнозируемые» значения всех пикселов, берет разность между пикселом и его «прогнозом» для относительного кодирования. Кодирование производится как в шаге 5 методом Хаффмана или с помощью арифметического кодирования. Прогнозируемые величины вычисляются с использованием значений пикселов выше и (лева от текущего (тех, которые уже закодированы). В следующих параграфах все шаги алгоритма будут разбираться более подробно.

Если есть сомнения, то прогнозируйте сохранение текущей тенденции.
- Максим Меркин

 

1
Оглавление
email@scask.ru