Зображення JPEG (.jpg)

ISO/IEC Стандарт

JPEG: це найпоширеніший стандарт стиснення з втратами для цифрової фотографії та вебзображень, який використовує вищу чутливість людського ока до яскравості, ніж до кольоровості.

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

Безкоштовний конвертер з PNG у JPG у браузері. Миттєво конвертуйте файли на своєму пристрої.

Стиснути JPG онлайн

Приватно - файли ніколи не залишають ваш пристрій

Аналіз та метадані

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

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

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

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

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

FF D8 FF

ПОДАННЯ В ASCII: ÿØÿ

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

Технічні характеристики

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

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

Технічний атрибутJPG (Поточний)WebPAVIFPNG
Парадигма стисненняDCT з втратами + кодування ХаффманаЗ втратами (VP8) та без втратЗ втратами (AV1) та без втратDeflate без втрат
Альфа-прозорістьНемає підтримки альфа-каналу (завжди непрозорий)8-бітова альфа-прозорість8-біт / 10-біт / 12-біт альфаПовна 8-біт / 16-біт альфа
Апаратне декодуванняПідтримка апаратного декодування JPEG залежить від чипа та пристрою.Апаратне декодування широко підтримується в сучасних SoC.Підтримка апаратного декодування в сучасних графічних процесорах швидко зростає.Швидке декодування на основі CPU
Ефективність стисненняХороший базовий рівень для фотографійМоже бути меншим за JPEG; результат залежить від зображення та кодераМоже бути меншим за JPEG; результат залежить від зображення та кодераНеефективно для фотографічного контенту
Глибина кольоруСтандартні 8 біт на канал (24-бітне повноколірне зображення)8 біт на канал10-біт та 12-біт HDR з широким колірним охопленням8 біт та 16 біт на канал

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Переглядач зображень показує помилку «Premature end of JPEG file» або нижня частина фотографії є суцільно сірою чи кольоровою смугою.

Першопричина: Завантаження обірвалося або запис у сховище був неповним, через що відсутні кінцевий маркер 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Створено Об'єднану групу експертів з фотографії (JPEG) під егідою ISO та CCITT.

Основні переваги

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

Технічні обмеження та недоліки

  • Стиснення з втратами спричиняє артефакти (ореоли й блоки) уздовж чітких контурів.
  • Відсутність підтримки каналу прозорості.
  • Якість зображення погіршується щоразу після розпакування, редагування та повторного збереження файлу.

Цікаві технічні факти

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

Поширені технічні запитання

Чому багаторазове збереження файлу JPEG зменшує якість зображення?

JPEG: це формат стиснення з незворотними втратами. Щоразу, коли ви розпаковуєте та повторно зберігаєте JPEG, крок квантування DCT відкидає високочастотні просторові деталі та повторно апроксимує блоки пікселів 8x8, спричиняючи накопичення артефактів погіршення якості з кожним збереженням.

Що таке прогресивний 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, які зручно переглядати на будь-яких пристроях.