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

Арифметическое кодирование

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

Арифметическое кодирование имеет ряд недостатков:

• Не все декодеры JPEG поддерживают арифметическое декодирование. В частности, декодеры, базирующиеся на основном стандарте JPEG, поддерживают только алгоритм Хаффмена.

• Арифметический алгоритм медленнее алгоритма Хаффмена и при кодировании, и при декодировании.

• Арифметический кодировщик, используемый JPEG (так называемый Q-кодировщик), является собственностью компаний IBM и AT&T (патент на него имеет и фирма Mitsubishi), поэтому на применение данного кодировщика в какой-либо реализации JPEG необходимо получить лицензию у соответствующего производителя.

Сжатие jpeg без потерь

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

Стандарт JPEG предлагает специальный режим сжатия без потерь. Он не имеет ничего общего с алгоритмами на базе DCT и в настоящее время применяется лишь в нескольких коммерческих приложениях. JPEG-сжатие без потерь является одной из форм кодирования с предсказанием, используемого схему двухмерной дифференциальной импульсно-кодовой модуляции (DPCM). Основан он на том, что значение каждого пикселя объединяется со значениями соседних (до 3) пикселей для формирования значения прогнозирующего параметра. Затем величина последнего вычитается из оригинального пиксельного значения. После обработки всего растра результирующие значения сжимаются либо с помощью алгоритма Хаффмена, либо методом двоичного арифметического статистического кодирования, описанными в стандарте JPEG.

Сжатие по схеме JPEG без потерь применяется для обработки изображений, пиксельная глубина которых составляет от 2 до 16 битов, но более эффективно обрабатывает изображения, пиксельная глубина которых превышает 6 битов. Степень сжатия таких изображений обычно равна 2:1. Для обработки данных изображения меньшей пиксельной глубины целесообразнее применять другие схемы сжатия.

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

В части 3 спецификации JPEG описаны следующие типы расширения.

Переменное квантование

Переменное квантование является расширенным вариантом процесса квантования DCT, которое можно исполь­зовать в любых DCT-процессах, определенных алгоритмом JPEG (за исключением базового JPEG).

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

При использовании переменного квантования коэффициенты квантования в сжатом потоке данных могут быть масштабированы. В начале каждого блока размером 8х8 пикселей стоит коэффициент, применяемый для масштаби­рования значений таблицы квантования в компоненте изображения и постановки в соответствие этим значениям АС-коэффициентов, записанных в сжатых данных. Таким образом обеспечивается возможность поиска и изменения коэффициентов квантования.

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

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

Метод переменного квантования, кроме того, дает возможность алгоритму JPEG записывать данные изображения, изначально закодированные по какой-либо другой схеме переменного квантования, например с использованием MPEG. Чтобы MPEG-данные были точно перекодированы в другой формат, последний должен поддерживать переменное квантование, обеспечивающее высокую степень сжатия. Это расширение позволяет JPEG поддерживать поток данных, изначально полученный из переменного квантованного источника, например из 1-фрейма MPEG

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