JPEG изображение (.jpg)
ISO/IEC СтандартJPEG е най-широко възприетият стандарт за компресия със загуби за дигитална фотография и уеб изображения, който се възползва от по-високата чувствителност на човешкото око към яркостта спрямо цветността.
Конвертиране от PNG към JPG
Безплатен конвертор от PNG към JPG в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Компресирайте JPG онлайн
Поверително - файловете никога не напускат устройството ви
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират JPG файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират JPG файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
FF D8 FFASCII ПРЕДСТАВЯНЕ: ÿØÿ
Стандартизация: 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, Сива скала |
| Канали и структура | 8 бита на канал (24-битов пълен цвят) или 8-битови нюанси на сивото |
| Максимални размери | 65 535 x 65 535 пиксела (2-байтови беззнакови цели числа) |
| Прозрачност | Няма (изображенията са само непрозрачни; няма поддръжка на алфа канал) |
| Поточно предаване и прогресивно зареждане | Прогресивното JPEG кодиране съхранява множество спектрални проходи, които постепенно повишават разделителната способност |
Техническа сравнителна матрица: JPG спрямо конкуренти
| Технически атрибут | JPG (Текущ) | WebP | AVIF | PNG |
|---|---|---|---|---|
| Парадигма на компресия | 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, изпълнявани в изолирана среда.
Исторически произход и етапи
Основни предимства
- Декодирането на JPEG се поддържа широко от софтуер и устройства за изображения, но съвместимостта зависи от устройството и приложението.
- Отлични коефициенти на компресия (от 10:1 до 20:1) за фотографски непрекъснати тонове.
- Малък обем на полезния товар с възможност за постепенно визуализиране.
Технически ограничения и минуси
- Компресията със загуби води до артефакти при компресия (назъбване и накъсване на блокове) по острите ръбове.
- Липса на поддръжка за канал за прозрачност.
- Влошаване на качеството при всяко декомпресиране, редактиране и повторно запазване на файла.
Интересни технически факти
- Класическото тестово изображение „Лена“, използвано за разработване на 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 растерни изображения в JPEG формат намалява размера на файла чрез прилагане на компресия със загуба, което прави изображенията по-бързи за зареждане в уеб сайтове и заема по-малко място за съхранение.
Конвертирането на растерно JPEG изображение със загуба на данни в запазващ качеството PNG формат предотвратява последващо влошаване на детайлите и добавя поддръжка на прозрачност чрез алфа канал.
Конвертирането на JPEG в WebP може да намали размера на файла при сходно визуално качество, но резултатите зависят от съдържанието на изображението и настройките за кодиране.
Конвертирането на WebP в JPEG може да улесни използването на неподвижно изображение в програми, които не поддържат WebP; JPEG не запазва прозрачността и анимацията.
Конвертирането на HEIC снимки в JPEG изображения преобразува стандартния формат на камерата на Apple в растерни файлове, които се поддържат навсякъде, включително в по-стар софтуер и уеб браузъри.
Конвертирането на AVIF в JPEG може да улесни работата със стар софтуер, който не поддържа формата AV1 Image File Format.
Конвертирането на старо JPEG изображение в AVIF формат значително намалява размера на файла, като същевременно запазва високо визуално качество чрез модерни технологии за видео кодиране.
Конвертирайте големи композиции във формат PSD, създадени с Adobe Photoshop в компактни JPEG снимки, които могат да се преглеждат навсякъде.