Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
359.94 Кб
Скачать

Квантование каждого блока

Прежде чем отбросить определенный объем информации, компрессор делит каждое выходное значение DCT на "коэффициент квантования", округляя результат до целого. Чем больше коэффициент квантования, тем больше данных теряется, поскольку реальное DCT-значение представляется все менее и менее точно. Каждая из 64 позиций выходного блока DCT имеет собственный коэффициент квантования. Причем термы большего порядка квантуются с большим коэффициентом, чем термы меньшего порядка. Кроме того, для данных яркости и цветности применяются отдельные таблицы квантования, позволяющие квантовать данные цветности с большими коэффициентами, чем данные яркости. Таким образом, JPEG использует различную чувствительность глаза к яркости и цветности изображения.

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

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

Кодирование результирующих коэффициентов

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

Расширения JPEG (Часть 1)

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

Постепенное наращивание изображения

Постепенное наращивание изображений — это тип расширения, используемого в программах, которые принимают потоки данных JPEG и отображают их по мере поступления. Изображение, сжатое основным методом JPEG, может быть полностью отображено лишь после того, как будут приняты и декодированы все его данные. Однако некоторые приложения требуют, чтобы изображение появлялось уже после получения какой-то части данных. Если реализовать такую технологию на базе общего метода сжатия, то можно отобразить (после декодирования) несколько первых строк развертки изображения. Однако в этом случае, даже если эти строки развертки будут связаны, для того чтобы хоть как-то отразить содержание изображения, необходимо иметь хотя бы 50% данных. Расширение JPEG, предназначенное для постепенного наращивания изображения, предлагает лучшее решение.

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

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

Относящееся к JPEG расширение позволяет хранить одно и то же изображение с разными разрешениями в порядке иерархии. Например, изображение может быть сохранено с разрешениями 250х250, 500х500, 1000х1000 и 2000х2000 пикселей, что позволяет поддерживать его отображение на экранах с низким разрешением, лазерных принтерах со средним разрешением и на устройствах печати с высоким разрешением. Изображения с более высоким разрешением хранятся в виде отклонений от изображения с низким разрешением, что требует меньше места. Однако не следует путать этот способ с постепенным наращиванием, поскольку каждое изображение может воспроизводиться отдельно и с заранее определенным качеством.

Соседние файлы в папке Лекции по компьютерной графике