Формат сжатия изображений JPEG¶
JPEG (сокр. от англ. Joint Photographic Experts Group) — это стандарт сжатия цифровых изображений с потерями, а также одноимённый формат файлов, используемый для хранения фотографий и сложных цветных картинок. Формат был разработан одноимённой рабочей группой экспертов МЭК (Международная электротехническая комиссия) и ISO в начале 1990-х годов и с тех пор стал одним из наиболее распространённых форматов хранения растровых изображений в цифровой фотографии и интернете.
¶История создания
Рабочая группа Joint Photographic Experts Group была создана в 1986 году совместно МЭК и ISO для разработки стандарта сжатия изображений, пригодного для передачи фотографий по каналам связи с ограниченной пропускной способностью. Руководство проектом осуществляли Джеймс Купер (James D. Cooper) и Ганс Мюллер (Hans Müller).
Первая версия стандарта, известная как JPEG ISO/IEC 10918-1, была утверждена в 1992 году. Стандарт описывал метод сжатия изображений, основанный на психовизуальных свойствах зрения человека, а также формат контейнера для хранения сжатых данных. Формат файлов с расширением .jpeg (или .jpg, .jfif) стал де-факто стандартом для фотографий в цифровых камерах, интернете и мультимедийных приложениях.
¶Принцип работы
Сжатие JPEG основано на нескольких ключевых идеях:
- Преобразование цветового пространства. Исходное изображение, обычно хранящееся в формате RGB, преобразуется в модель YCbCr, где Y — яркость (luminance), а Cb и Cr — цветовые разности (chrominance). Человеческий глаз гораздо чувствительнее к изменениям яркости, чем к изменениям цвета, что позволяет сильнее сжимать цветовые компоненты без заметной потери качества.
- Блочное дискретное косинусное преобразование (DCT). Изображение разбивается на блоки размером 8×8 пикселей, и для каждого блока выполняется DCT — математическое преобразование, переводящее пиксельные значения в частотные коэффициенты. Большая часть энергии изображения концентрируется в низкочастотных коэффициентах.
- Квантование. Коэффициенты DCT делятся на значения из таблицы квантования, что приводит к округлению и потере менее значимых (высокочастотных) данных. Именно на этом этапе происходит основная потеря информации. Степень квантования определяет баланс между размером файла и качеством изображения — параметр, известный как «качество JPEG» (quality factor).
- Энтропное кодирование. Оставшиеся коэффициенты кодируются с использованием методов Хаффмана или арифметического кодирования, что обеспечивает дальнейшее уменьшение размера файла без дополнительных потерь.
¶Характеристики
JPEG поддерживает изображения с разрешением до 65 535 × 65 535 пикселей и глубиной цвета до 32 бит на пиксель, хотя наиболее распространённым является 24-битный цвет (8 бит на канал RGB). Формат поддерживает как прогрессивную (строчную), так и последовательную (поскадровую) развертку, что позволяет отображать изображение сначала в низком разрешении, а затем постепенно улучшать его.
Потери при сжатии необратимы: каждый повторный цикл сжатия-распаковки приводит к дальнейшему ухудшению качества. При высоких степенях сжатия на изображении появляются характерные артефакты — блочность (появление видимых границ блоков 8×8) и размытие мелких деталей.
¶Применение
JPEG является стандартом де-факто для хранения фотографий в цифровых камерах, смартфонах и интернете. Формат широко используется в веб-дизайне, электронной почте, социальных сетях и мессенджерах. Большинство цифровых камер записывают фотографии именно в JPEG, хотя многие профессиональные модели также поддерживают форматы с потерями (RAW) для последующей обработки.
В вебе JPEG обычно используется для фотографий и сложных изображений с плавными градиентами. Для изображений с резкими границами, текстом или прозрачностью чаще применяются форматы PNG или WebP.
¶Ограничения
JPEG не поддерживает прозрачность (альфа-канал) и не оптимален для изображений с плоскими областями однородного цвета, текстом или линейной графикой — в таких случаях более эффективны форматы PNG, GIF или SVG. Для фотографий с высокими требованиями к качеству (профессиональная печать, архивное хранение) предпочтительнее использовать форматы без потерь (PNG, TIFF) или формат JPEG 2000, основанный на вейвлет-преобразовании.
¶Развитие стандарта
В 2000 году была опубликована стандартизация JPEG 2000 (ISO/IEC 15444-1), использующая вейвлет-преобразование вместо DCT. Несмотря на технические преимущества, JPEG 2000 не получил широкого распространения из-за отсутствия поддержки в браузерах и сложности реализации. В 2017 году был опубликован стандарт JPEG XL, разработанный для замены классического JPEG с улучшенным сжатием и поддержкой прозрачности, однако его внедрение остаётся ограниченным.
¶Интересные факты
- Изначально расширение .jpeg сокращали до трёх символов .jpg в операционных системах с ограничением на длину расширения в три буквы (например, в ранних версиях Windows).
- Формат .jfif (JPEG File Interchange Format) является частным случаем JPEG и описывает конкретный способ упаковки сжатых данных в файл.
- Несмотря на «потерность», при разумных настройках качества (75–85 %) JPEG обеспечивает визуально неотличимое от оригинала изображение при размере файла в 10–20 раз меньше исходного.
¶Источники
- ISO/IEC 10918-1:1994 — Information technology — Digital compression and coding of continuous-tone still images: Requirements and guidelines
- Pennebaker W. B., Mitchell J. L. JPEG Still Image Data Compression Standard. — New York: Van Nostrand Reinhold, 1993
- Ресурсы МЭК (International Electrotechnical Commission)
- Материалы W3C по форматам изображений в вебе
