JPEG pentru documente (.jpg)

ISO/IEC Standard

JPEG este cel mai răspândit standard de compresie cu pierderi pentru fotografia digitală și imaginile web, exploatând sensibilitatea mai mare a ochiului uman la luminanță în detrimentul cromanței.

Convertește din PNG în JPG

Convertor gratuit din PNG în JPG direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Comprimă JPG online

Privat - fișierele nu părăsesc niciodată dispozitivul tău

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele JPG prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele JPG prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

FF D8 FF

REPREZENTARE ASCII: ÿØÿ

Standardizare: ISO/IEC 10918-1 / ITU-T T.81

Specificații tehnice

Arhitectură containerFlux binar delimitat prin marcaje (prefix 0xFF) încapsulat în antete JFIF sau EXIF
CompresieTransformata cosinus discretă (DCT) cu pierderi, codificare entropică Run-length și Huffman
Ordinea octețilorBig-Endian pentru lungimile marcajelor și tabelele de cuantizare; Exif poate fi Little (II) sau Big (MM)
Spații de culoaresRGB, Adobe RGB, CMYK, Y'CbCr, Tonuri de gri
Canale și structură8 biți pe canal (24 biți culori reale) sau 8 biți în tonuri de gri
Dimensiuni maxime65.535 × 65.535 pixeli (întregi fără semn pe 2 octeți)
TransparențăNiciuna (imaginile sunt opace; nu există suport pentru canal alfa)
Streaming și progresivCodificarea JPEG progresivă stochează mai multe treceri spectrale, de la rezoluție mică la mare

Matrice de comparație tehnică: JPG vs. concurenți

Atribut tehnicJPG (Curent)WebPAVIFPNG
Paradigmă de compresieDCT cu pierderi + codare HuffmanCu pierderi (VP8) și fără pierderiCu pierderi (AV1) și fără pierderiDeflate fără pierderi
Transparență alfaFără suport pentru canal alfa (întotdeauna opac)Transparență alfa pe 8 bițiAlfa pe 8 biți / 10 biți / 12 bițiCanal alfa complet pe 8 biți / 16 biți
Decodare hardwareSuportul pentru decodare JPEG hardware dedicată depinde de cip și dispozitiv.Decodare hardware răspândită în SoC-urile moderneDecodare hardware în plină expansiune în GPU-urile moderneDecodare rapidă bazată pe CPU
Eficiența compresieiValoare de referință bună pentru fotografiiPoate fi mai mic decât JPEG; rezultatul variază în funcție de imagine și codificatorPoate fi mai mic decât JPEG; rezultatul variază în funcție de imagine și codificatorIneficient pentru conținut fotografic
Adâncimea de culoare în bițiStandard de 8 biți pe canal (24 biți Truecolor)8 biți pe canalGamă largă de culori HDR pe 10 biți și 12 biți8 biți și 16 biți pe canal

Moduri comune de corupție și ghid de recuperare hexazecimală

Vizualizatorul de imagini afișează „Premature end of JPEG file” sau partea inferioară a fotografiei este complet gri ori prezintă benzi colorate.

Cauză principală: Descărcare trunchiată sau scriere incompletă pe dispozitivul de stocare, căreia îi lipsesc marcajul de final (EOI) 0xFFD9 și datele de scanare a imaginii.

Recuperare: Adaugă marcajul 0xFFD9 la sfârșitul fluxului trunchiat pentru ca decodoarele să poată afișa partea superioară intactă a fotografiei.

Culorile imaginii par puternic deplasate, inversate sau psihedelice.

Cauză principală: Antetul spațiului de culoare CMYK inversat sau profil ICC încorporat nevalid.

Recuperare: Convertește spațiul de culoare din CMYK în sRGB cu ImageMagick („magick broken.jpg -colorspace sRGB fixed.jpg”).

Fișierul nu se deschide și raportează „Invalid marker found".

Cauză principală: Coruperea biților din antetul tabelului de cuantizare (DQT 0xFFDB) sau al tabelului Huffman (DHT 0xFFC4).

Recuperare: Înlocuiește marcajele de antet deteriorate cu tabele standard JFIF de cuantizare și Huffman de bază, extrase dintr-un JPEG intact.

Analiză de securitate și vectori de atac asupra parserului

Securitatea JPEG implică în principal scurgeri de confidențialitate ale metadatelor (EXIF) și depășiri de tampon în decodoarele C vechi (libjpeg).

Vectori de atac cunoscuți

  • Dezvăluirea de metadate sensibile: antete EXIF neeliminate care conțin coordonate GPS, numere de serie ale camerelor și previzualizări în miniatură.
  • Citiri în afara limitelor bufferului și depășiri de întregi în analizarea fișierelor cu versiuni vechi de libjpeg, care corup marcajele de repornire (RST) sau scripturile de scanare progresivă.
  • Fișiere poliglote care combină antete JPEG cu arhive ZIP sau RAR executabile.

Cele mai bune practici de securitate: Elimină întotdeauna metadatele EXIF și geolocația GPS din fotografiile utilizatorilor înainte de publicare, pentru a le proteja confidențialitatea. Folosește decodoare moderne sigure pentru memorie (precum image-rs în Rust) sau decodoare WebAssembly izolate.

Origini istorice și repere

1998Standardele de formate container JFIF și EXIF consacră dominația camerelor digitale.
1992Specificația JPEG este ratificată ca ISO/IEC 10918-1.
1986Joint Photographic Experts Group este fondat sub egida ISO și CCITT.

Avantaje cheie și beneficii

  • Decodarea JPEG este acceptată pe scară largă de programele și dispozitivele de imagistică, dar compatibilitatea depinde de dispozitiv și aplicație.
  • Rapoarte excelente de compresie (10:1 până la 20:1) pentru tonuri fotografice continue.
  • Dimensiune redusă a datelor cu capacitate de randare progresivă.

Limitări tehnice și dezavantaje

  • Compresia cu pierderi provoacă artefacte (efect de halou și aspect blocat) de-a lungul marginilor ascuțite.
  • Fără suport pentru canalul de transparență.
  • Pierderea calității prin resalvare are loc de fiecare dată când un fișier este decomprimat, editat și salvat din nou.

Curiozități tehnice interesante

  • Imaginea de test clasică „Lenna”, folosită la dezvoltarea compresiei JPEG, a fost scanată din numărul din noiembrie 1972 al revistei Playboy.
  • Subeșantionarea JPEG 4:2:0 înjumătățește rezoluția cromatică atât pe orizontală, cât și pe verticală, cu o degradare perceptivă aproape nulă.
  • Fiecare fișier JPEG standard începe cu marcajul 0xFFD8 (Start of Image) și se termină cu 0xFFD9 (End of Image).

Întrebări tehnice frecvente

De ce salvarea unui fișier JPEG de mai multe ori reduce calitatea imaginii?

JPEG este un format de compresie cu pierderi ireversibile. De fiecare dată când decomprimi și salvezi din nou un JPEG, pasul de cuantizare DCT elimină detaliile spațiale de înaltă frecvență și aproximează din nou blocurile de 8 × 8 pixeli, provocând artefacte cumulative de pierdere a calității.

Ce este JPEG progresiv și de ce este util?

Un JPEG standard cu codare de bază se decodifică linie cu linie, de sus în jos. JPEG-ul progresiv codifică datele imaginii în mai multe treceri spectrale, permițând browserelor să afișeze instantaneu o versiune neclară, de rezoluție joasă, a întregii imagini și să o clarifice treptat pe măsură ce se descarcă octeții.

Ce este subeșantionarea cromatică (4:2:0 vs 4:4:4)?

Retina umană are mai multe celule cu bastonașe (luminanță/luminozitate) decât celule cu conuri (culoare). JPEG exploatează acest lucru păstrând rezoluția completă a luminanței (Y), în timp ce înjumătățește rezoluția crominanței (Cb, Cr) pe orizontală și verticală (4:2:0), eliminând 50% din datele brute înainte de compresie, fără pierderi perceptibile.

Poate o imagine JPEG să aibă un fundal transparent?

Nu. Specificația JPEG standard nu definește un canal alfa. Dacă ai nevoie de transparență, convertește imaginea în WebP, AVIF sau PNG.

Perechi de conversie JPG conexe

PNG în JPG

Conversia imaginilor raster PNG în format JPEG reduce dimensiunea fișierului prin aplicarea unei compresii cu pierderi, ceea ce face ca imaginile să se încarce mai repede pe site-uri web și să utilizeze mai puțin spațiu de stocare.

JPG în PNG

Conversia unei imagini raster JPEG cu pierderi de date într-o imagine raster PNG fără pierderi previne degradarea suplimentară a imaginii și adaugă suport pentru transparența canalului alfa.

JPG în WEBP

Conversia imaginilor JPEG în WebP poate reduce dimensiunea fișierului la o calitate vizuală comparabilă, deși rezultatele variază în funcție de conținutul imaginii și de setările de codificare.

WEBP în JPG

Conversia din WebP în JPEG poate facilita folosirea unei imagini statice în programele care nu acceptă WebP; JPEG nu păstrează transparența sau animația.

HEIC în JPG

Conversia fotografiilor HEIC în JPEG transformă formatul implicit al aparatelor foto Apple în fișiere raster lizibile de mai multe programe mai vechi și browsere web.

AVIF în JPG

Conversia imaginilor AVIF în JPEG poate fi utilă în programele mai vechi care nu acceptă formatul AV1 Image File Format.

JPG în AVIF

Conversia unei imagini JPEG în AVIF poate reduce dimensiunea fișierului la o calitate vizuală comparabilă, însă rezultatul depinde de conținutul imaginii și de setările de codificare.

PSD în JPG

Convertește compozițiile Adobe Photoshop PSD voluminoase în fotografii JPEG compacte, ușor de vizualizat pe scară largă.