Алгоритм JPEG
JPEG расшифровывается как Joint Photographic Experts Group, комитет по стандартизации. Также так называется алгоритм сжатия, разработанный этим комитетом.
Есть два алгоритма сжатия JPEG: более старый на этой странице называется просто 'JPEG'. Более новый алгоритм JPEG 2000 описан ниже на этой странице. Обратите внимание на разницу между алгоритмом JPEG, описанном на этой странице, и соответствующим форматом файлов JFIF, который многие путают с JPEG и который описан на этой странице.
JPEG - алгоритм сжатия с потерями, ориентированный на сжатие фотореалистичных полноцветных изображений настолько, насколько это возможно без видимых глазу потерь качества. Мы различаем малые изменения в яркости более четко, чем малые изменения в цвете. На этом аспекте человеческого цветовосприятия и основан алгоритм JPEG.
Как работает JPEG
Алгоритм JPEG выполняет сжатие в четыре фазы:
Сначала изображение разбивается на блоки, размером 8х8 пикселов. Так как алгоритм основан на восприятии освещенности/цветности, значения RGB или CMYK цветов не анализируются, а вместо этого изображение преобразуется в цветовое пространство, основанное на этих параметрах, и называемое YUV. Это позволяет производить отдельное сжатие по этим факторам. Так как освещенность более важна при визуальном восприятии, алгоритм уделяет больше внимания этому фактоору.
На следующем шаге процесса сжатия применяется Дискретное Косинусное Преобразование (DCT) ко всему блоку. DCT это комплексный процесс, в ходе которого теряется информация о каждом отдельном пикселе. Он заменяет данные цвета каждого пиксела на значения, которые усреднены по всей анализируемой матрице. Эта операция не сжимает файл, она просто заменяет матрицу значений пикселов на матрицу коэффициентов преобразования.
После этого начинается процесс собственно сжатия. Программа сжатия определяет качество изображения, заданное пользователем (вспомните, в Фотошопе 'low quality', 'medium quality',...) и вычисляет две таблицы констант квантизации, одну для освещенности и вторую для цветности, которые используются для квантизации коэффициентов DCT. Каждый коэффициент делится на соответствующую константу и округляется до ближайшего целого. Малозначащие коэффициенты обнуляются, а большие теряют точность. Это и приводит к потерям в изображении.
Результатом является список пересчитанных DCT коэффициентов. Последним шагом будет сжатие этих коэффициентов по алгоритму Хаффмана или арифметической схеме. Это второе сжатие уже не приводит к дополнительным потерям.
Достоинства
Применяя два алгоритма компрессии один за другим, JPEG достигает больших коэффициентов сжатия. Даже для использования в препрессе, вы можете сжимать файлы до одной пятой от исходного размера. Для использования в Интернет и для пересылки по электронной почте, можно сжимать файлы в двадцать раз.
JPEG декомпрессия поддерживается в PostScript level 2 и 3 RIP. Это означает, что более короткие файлы могут быть посланы в RIP по сети, что минимизирует загрузку сервера печати и ускоряет его работу.
Недостатки
Недостатком является то, что алгоритм создан для фотореалистичных изображений (вспомните о букве P в аббревиатуре JPEG). Он не подходит для изображений с резкими переходами в тонах. Вот типичные изображения, которых следует избегать при сжатии в JPEG:
- изображения, имеющие маски и теневые эффекты, примененные к ним в программах, таких как PhotoShop.
- скриншоты и диаграммы.
- градиенты созданные в PhotoShop.
- изображения, содержащие 256 (или меньше) цветов.
- изображения, созданные CAD-CAM программами или 3D приложениями, такими как Maya или Bryce.
- изображения, не содержащие одного или нескольких триадных цветов. Иногда встречаются изображения, содержащие, например, только черный и голубой каналы. Если такое изображение сжать по алгоритму JPEG, то могут появиться артефакты в двух оставшихся каналах.
Из-за своей природы, JPEG может применяться только на финишной стадии процесса (вывод PostScript или PDF, спуск полос, цветопроба, вывод на печать). Во время работы над файлом, каждая новая команда SAVE будет приводить к дополнительным потерям качества при использовании JPEG.
Где используется JPEG сжатие
JPEG сжатие используется в различных форматах файлов:
- EPS-files
- EPS DCS-files
- JFIF-files
- PDF-files
Замечания: JPEG 2000
Комитет по стандартизации ISO разработал новую версию сжатия JPEG под названием JPEG 2000. Этот стандарт был выпущен в январе 2001, но до сих пор широко не применяется.
В алгоритме JPEG 2000 добавлены три важные вещи к существующему стандарту:
- Добавлен алгоритм вейвлет-преобразования. Этот алгоритм улучшает качество изображения при очень высоком коэффициенте сжатия.
- JPEG2000 на 20% эффективнее, чем текущий JPEG формат.
- Добавлен опциональный режим сжатия без потерь. Такие файлы примерно вдвое меньше оригинала.
Алгоритм JPEG 2000 разрабатывался для Интернет. Он не используется в препрессе. При коэффициенте сжатия 25:1, он дает менее разбитые на блоки, но и менее детализированные изображения, что не сделает его применимым в препрессе. Возможно только лишь использование его сжатия без потерь будет для нас интересным.