Сжатие изображений без потерь, методы
Мода без потери данных. В этой моде метод JPEG использует комбинации разностей пикселов для уменьшения их значений перед тем, как они будут сжаты. Эти разности называются прогнозами. Величины некоторых близких пикселов вычитаются из данного пиксела для получения малого числа, которое будет сжиматься по методу Хаффмана или с помощью арифметического кодирования. В моде без потерь пользователь может самостоятельно выбрать подходящий прогноз, а декодер вычтет эту комбинацию из пиксела X. Результатом, как правило, является малое число, для которого будет производиться энтропийное кодирование, очень близкое методу, использованному при кодировании коэффициентов DC.
Прогноз 0 используется только в иерархической моде JPEG. Прогнозы 1, 2 и 3 называются «одномерными», а прогнозы 4, 5, 6 и 7 - «двумерными». Следует отметить, что мода без потерь не может быть очень эффективной. Ее фактор сжатия обычно находится около 2, и в этом он значительно проигрывает другим методам сжатия изображений без потерь. По этой причине, многие популярные приложения, в которые встроен JPEG, не предусматривают возможность этой моды. Даже базелинная мода JPEG, если в ней задать в виде параметра минимальную потерю информации, работает недостаточно эффективно. В результате основные приложения не позволяют устанавливать этот параметр в минимальное значение.
Достоинство метода JPEG прежде всего заключается в произведении сильно сжатых изображений, которые практически невозможно отличить от оригинала. Поняв это, ISO решило выпустить другой стандарт для сжатия без потерь непрерывно-тоновых изображений. Это хорошо известный метод JPEG-LS.
Сжатый файл. JPEG создает сжатый файл, в котором находятся все параметры, маркеры и, конечно, сжатые единицы данных изображения. Параметры состоят из слов длины 4 бита (объединяемых в пары), из одного байта или из двух байт. Маркеры необходимы для разделения файла на части. Маркеры имеют длину 2 байта. Первый байт равен 'FF'X, а второй - не ноль и не 'FF'X. Перед маркером может стоять несколько байтов с 'FF'X. Сжатые единицы данных комбинируются в минимальные единицы данных (MCU, minimal data unit), где MCU состоит или из одной единицы (мода без чередования) или из трех единиц данных всех цветных компонент (мода с чередованием).
Файл начинается с маркера SOI и кончается маркером EOI. Между этими маркерами сжатый образ делится на кадры. В иерархической моде может быть несколько кадров, а во всех других модах имеется только один кадр. В каждом кадре информация об изображении хранится в одном или нескольких сканах; у кадра также имеется заголовок, перед которым могут находиться таблицы (которые, в свою очередь, могут иметь маркеры). За первым сканом может следовать сегмент DNL (define number of lines, определение числа строк), который начинается маркером DNL. В нем записано число строк сжатого образа, содержащегося в кадре.
Скан начинается с таблицы (которая может отсутствовать), за которой идет заголовок скана, после которого размещается несколько сегментов энтропийного кода (ECS, entropy-coded segment), которые разделяются маркерами рестарта RST (restart). Каждый ECS состоит из одного или нескольких MCU, где MCU - это или одна единица данных, или три такие единицы.
- RSS
Наши услуги: