Изображение JPEG (.jpg)

ISO/IEC Стандарт

JPEG: самый распространенный стандарт сжатия с потерями для цифровой фотографии и веб-графики; он использует более высокую чувствительность человеческого глаза к яркости, чем к цветности.

Конвертировать из PNG в JPG

Бесплатный конвертер из PNG в JPG прямо в браузере. Конвертируйте файлы мгновенно на Вашем устройстве.

Сжатие JPG онлайн

Конфиденциально - файлы никогда не покидают ваше устройство

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы JPG по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы JPG по начальной двоичной последовательности байтов:

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

FF D8 FF

ПРЕДСТАВЛЕНИЕ ASCII: ÿØÿ

Стандартизация: ISO/IEC 10918-1 / ITU-T T.81

Технические спецификации

Архитектура контейнераБинарный поток с разделителями-маркерами (префикс 0xFF), упакованный в заголовки JFIF или EXIF
СжатиеДискретное косинусное преобразование с потерями (DCT) + кодирование длин серий и энтропийное кодирование Хаффмана
Порядок байтов (Endianness)Старший байт первым (Big-Endian) для длин маркеров и таблиц квантования; Exif может использовать младший байт первым (II) или старший байт первым (MM)
Цветовые пространстваsRGB, Adobe RGB, CMYK, Y'CbCr, Градации серого
Каналы и структура8 бит на канал (24-битный Truecolor) или 8-битные оттенки серого
Максимальные размеры65 535 x 65 535 пикселей (2-байтовые беззнаковые целые числа)
ПрозрачностьОтсутствует (только непрозрачные изображения; поддержка альфа-канала отсутствует)
Потоковая передача и прогрессивная загрузкаПри прогрессивном кодировании JPEG сохраняет несколько спектральных проходов, постепенно повышая разрешение изображения.

Техническая матрица сравнения: JPG с конкурентами

Технический атрибутJPG (Текущий)WebPAVIFPNG
Способ сжатияDCT с потерями + кодирование ХаффманаС потерями (VP8) и без потерьС потерями (AV1) и без потерьБез потерь (Deflate)
Альфа-прозрачностьАльфа-канал не поддерживается (изображение всегда непрозрачное)8-битная альфа-прозрачность8-, 10- и 12-битная альфаПолная 8-битная / 16-битная альфа
Аппаратное декодированиеПоддержка аппаратного декодирования JPEG зависит от чипа и устройства.Широкое аппаратное декодирование в современных SoCАппаратное декодирование быстро распространяется в современных GPU.Быстрое декодирование на базе ЦП
Эффективность сжатияХороший базовый уровень для фотографийНа 25-35% меньше, чем JPEG, при равном качествеНа 40-55% меньше, чем JPEG, при равном качествеНеэффективно для фотографического контента
Цветовая глубинаСтандартные 8 бит на канал (24-битный Truecolor)8 бит на канал10- и 12-битный HDR с широким цветовым охватом8 и 16 бит на канал

Распространенные сценарии повреждения и руководство по восстановлению в HEX

Просмотрщик изображений показывает ошибку «Premature end of JPEG file» (Преждевременный конец файла JPEG), либо нижняя часть фотографии залита сплошным серым цветом или цветными полосами.

Первопричина: Загрузка прервана или запись на диск выполнена не полностью, отсутствуют маркер конца файла 0xFFD9 (EOI) и данные сканирования изображения.

Восстановление: Добавьте маркер 0xFFD9 в конец обрезанного потока, чтобы декодеры смогли отобразить неповрежденную верхнюю часть фотографии.

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

Первопричина: Заголовок цветового пространства CMYK инвертирован или встроенный профиль ICC поврежден.

Восстановление: Преобразуйте цветовое пространство из CMYK в sRGB с помощью ImageMagick («magick broken.jpg -colorspace sRGB fixed.jpg»).

Файл не открывается, сообщая об ошибке «Invalid marker found» (Обнаружен недействительный маркер).

Первопричина: Повреждение битов внутри заголовков таблицы квантования (DQT 0xFFDB) или таблицы Хаффмана (DHT 0xFFC4).

Восстановление: Замените поврежденные маркеры заголовков стандартными базовыми таблицами Хаффмана и квантования JFIF, извлеченными из неповрежденного файла JPEG.

Анализ безопасности и векторы атак на парсер

Безопасность JPEG в первую очередь связана с утечками конфиденциальных метаданных (EXIF) и переполнением буфера в устаревших декодерах на C (libjpeg).

Известные векторы атак

  • Раскрытие конфиденциальных метаданных: неудаленные заголовки EXIF, содержащие GPS-координаты, серийные номера камер и миниатюры изображений.
  • Чтение за пределами буфера и переполнения целых чисел при разборе данных в устаревших версиях libjpeg могут повреждать маркеры перезапуска (RST) или скрипты прогрессивного сканирования.
  • Полиглот-файлы, объединяющие заголовки JPEG с архивами ZIP или RAR, содержащими исполняемые файлы.

Лучшие практики защиты: При публикации пользовательских фотографий всегда удаляйте EXIF-данные и геолокацию GPS, чтобы защищать конфиденциальность пользователей. Используйте современные декодеры, безопасные с точки зрения управления памятью (например, image-rs на Rust), или декодеры WebAssembly в изолированной среде.

История происхождения и ключевые этапы

1998Стандарты контейнеров JFIF и EXIF закрепили широкое распространение цифровых камер.
1992Спецификация JPEG ратифицирована как ISO/IEC 10918-1.
1986Группа Joint Photographic Experts Group создана при ISO и CCITT.

Ключевые преимущества и плюсы

  • Декодирование JPEG широко поддерживается программами и устройствами для работы с изображениями, но совместимость зависит от устройства и приложения.
  • Отличная степень сжатия (от 10:1 до 20:1) для непрерывных фотографических тонов.
  • Небольшой объем данных и возможность постепенной отрисовки.

Технические ограничения и минусы

  • Сжатие с потерями приводит к артефактам: ореолам и блокам: на резких границах изображения.
  • Отсутствие поддержки альфа-канала прозрачности.
  • Качество изображения снижается при каждой распаковке, редактировании и повторном сохранении файла.

Интересные технические факты

  • Классическое тестовое изображение «Лена», использовавшееся при разработке сжатия JPEG, было отсканировано из ноябрьского выпуска журнала Playboy за 1972 год.
  • Субдискретизация цвета JPEG 4:2:0 уменьшает разрешение цветности вдвое как по горизонтали, так и по вертикали практически без видимого ухудшения качества.
  • Каждый стандартный JPEG начинается с маркера 0xFFD8 (Начало изображения) и заканчивается маркером 0xFFD9 (Конец изображения).

Часто задаваемые технические вопросы

Почему многократное сохранение файла JPEG снижает качество изображения?

JPEG: формат сжатия с необратимыми потерями. При каждой распаковке и повторном сохранении JPEG этап квантования DCT отбрасывает высокочастотные пространственные детали и заново аппроксимирует блоки пикселей размером 8×8, из-за чего накапливаются артефакты потери качества при повторном сохранении.

Что такое прогрессивный JPEG и для чего он нужен?

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

Что такое субдискретизация цветности (4:2:0 против 4:4:4)?

Сетчатка человека содержит больше палочек (отвечающих за яркость), чем колбочек (отвечающих за цвет). Формат JPEG использует это, сохраняя полное разрешение яркости (Y) и уменьшая разрешение цветности (Cb, Cr) вдвое по горизонтали и вертикали (4:2:0), отбрасывая 50% исходных данных перед сжатием без видимых потерь.

Может ли изображение JPEG иметь прозрачный фон?

Нет. Стандартная спецификация JPEG не поддерживает концепцию альфа-канала. Если требуется прозрачность, необходимо конвертировать изображение в WebP, AVIF или PNG.

Связанные конвертации для JPG

PNG в JPG

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

JPG в PNG

Конвертация растрового изображения JPEG с потерями в растровое изображение PNG без потерь предотвращает дальнейшее ухудшение качества и добавляет поддержку прозрачности альфа-канала.

JPG в WEBP

Преобразование JPEG в WebP может уменьшить размер файла при сопоставимом визуальном качестве, однако результат зависит от содержимого изображения и настроек кодирования.

WEBP в JPG

Преобразование WebP в JPEG может упростить работу со статичным изображением в программах без поддержки WebP; JPEG не сохраняет прозрачность и анимацию.

HEIC в JPG

Конвертация фотографий HEIC в изображения JPEG преобразует используемый по умолчанию в камерах Apple формат в растровые файлы, которые можно открыть в старых программах и веб-браузерах.

AVIF в JPG

Преобразование изображений AVIF в JPEG может упростить работу со старыми программами, не поддерживающими формат AV1 Image File Format.

JPG в AVIF

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

PSD в JPG

Конвертируйте объемные композиции Adobe Photoshop PSD в компактные, широко поддерживаемые фотографии JPEG.