JPEG slika (.jpg)

ISO/IEC Standard

JPEG je najrasprostranjeniji standard gubitne kompresije za digitalnu fotografiju i veb-slike, koji koristi veću osetljivost ljudskog oka na osvetljenost nego na hrominansu.

Konvertujte PNG u JPG

Besplatan konvertor PNG u JPG u pregledaču. Konvertujte datoteke odmah na svom uređaju.

Kompresujte JPG na mreži

Privatno - datoteke nikada ne napuštaju vaš uređaj

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju JPG datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju JPG datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

FF D8 FF

ASCII REPREZENTACIJA: ÿØÿ

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

Tehničke specifikacije

Arhitektura kontejneraBinarni tok razgraničen markerima (sa 0xFF prefiksom) upakovan u JFIF ili EXIF zaglavlja
KompresijaGubitna diskretna kosinusna transformacija (DCT) + kodiranje dužine niza i Hafmanovo entropijsko kodiranje
Bajtni redosled (Endianness)Big-Endian za dužine markera i tabele kvantizacije; Exif može biti Little (II) ili Big (MM)
Prostori bojasRGB, Adobe RGB, CMYK, Y'CbCr, Sivi tonovi
Kanali i struktura8 bita po kanalu (24-bitna puna boja) ili 8-bitni sivi tonovi
Maksimalne dimenzije65.535 x 65.535 piksela (2-bajtni neoznačeni celi brojevi)
TransparentnostNema (samo neprovidno; nema podrške za alfa kanal)
Strimovanje i progresivno učitavanjeProgresivno JPEG kodiranje čuva višestruke spektralne prolaze od niske do visoke rezolucije

Tehnička matrica poređenja: JPG u odnosu na konkurente

Tehnički atributJPG (Trenutno)WebPAVIFPNG
Paradigma kompresijeKompresija sa gubicima pomoću DCT-a i Hafmanovog kodiranjaKompresija sa gubicima (VP8) i kompresija bez gubitakaKompresija sa gubicima (AV1) i kompresija bez gubitakaDeflate bez gubitaka
Alfa providnostNema podrške za alfa kanal (uvek neprovidno)8-bitna alfa providnost8-bitna / 10-bitna / 12-bitna alfaPuna 8-bitna / 16-bitna alfa
Hardversko dekodiranjePodrška za namensko hardversko dekodiranje JPEG-a zavisi od čipa i uređaja.Rasprostranjeno hardversko dekodiranje u modernim SoC-ovimaNaglo širenje hardverskog dekodiranja u modernim GPU-ovimaBrzo dekodiranje zasnovano na CPU-u
Efikasnost kompresijeDobar osnovni nivo za fotografijeMože biti manji od JPEG-a; rezultat zavisi od slike i enkodera.Može biti manji od JPEG-a; rezultat zavisi od slike i enkodera.Neefikasno za fotografski sadržaj
Dubina bojaStandardnih 8-bit po kanalu (24-bit Truecolor)8-bit po kanalu10-bit i 12-bit HDR široki spektar boja8-bit i 16-bit po kanalu

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Preglednik slika prikazuje poruku da je kraj JPEG fajla prerano nastupio ili je donji deo fotografije jednobojno sivi ili ima šarene pruge.

Osnovni uzrok: Prekinuto preuzimanje ili nepotpuno upisivanje u skladište, zbog čega nedostaju završni marker 0xFFD9 (EOI) i podaci skeniranja slike.

Oporavak: Dodajte marker 0xFFD9 na kraj skraćenog toka kako biste omogućili dekoderima da prikažu neoštećeni gornji deo fotografije.

Boje slike izgledaju jako pomerene, obrnute ili psihodelične.

Osnovni uzrok: Zaglavlje CMYK prostora boja je obrnuto ili je ugrađeni ICC profil nevažeći.

Oporavak: Konvertujte prostor boja iz CMYK u sRGB koristeći ImageMagick ('magick broken.jpg -colorspace sRGB fixed.jpg').

Fajl odbija da se otvori i javlja grešku da je pronađen nevažeći marker.

Osnovni uzrok: Oštećenje bitova unutar zaglavlja tabele kvantizacije (DQT 0xFFDB) ili Hafmanove tabele (DHT 0xFFC4).

Oporavak: Zamenite oštećene markere zaglavlja standardnim JFIF Hafmanovim tabelama i tabelama kvantizacije za osnovni režim, preuzetim iz neoštećenog JPEG-a.

Bezbednosna analiza i vektori napada parsera

Bezbednost JPEG formata prvenstveno uključuje curenje privatnosti metapodataka (EXIF) i prekoračenja bafera u starijim C dekoderima (libjpeg).

Poznati vektori napada

  • Otkrivanje osetljivih metapodataka: Nečišćena EXIF zaglavlja koja sadrže GPS koordinate, serijske brojeve kamera i sličice pregleda.
  • Prekoračenja čitanja bafera i prelivanja celih brojeva u starijoj libjpeg analizi koja kvare markere ponovnog pokretanja (RST) ili skripte progresivnog skeniranja.
  • Poliglot fajlovi koji kombinuju JPEG zaglavlja sa izvršnim ZIP ili RAR arhivama.

Najbolje prakse za zaštitu: Uvek uklonite EXIF i GPS metapodatke o lokaciji prilikom objavljivanja korisničkih fotografija radi zaštite njihove privatnosti. Koristite savremene dekodere bezbedne u pogledu memorije (kao što je image-rs u programskom jeziku Rust) ili WebAssembly dekodere u sigurnom okruženju (sandboxed).

Istorijat i prekretnice

1998JFIF i EXIF standardi kontejnera uspostavljaju dominaciju digitalnih fotoaparata.
1992JPEG specifikacija ratifikovana kao ISO/IEC 10918-1.
1986Grupa Joint Photographic Experts Group osnovana pod okriljem ISO i CCITT organizacija.

Ključne prednosti

  • Dekodiranje JPEG-a široko podržavaju softver i uređaji za slike, ali kompatibilnost zavisi od uređaja i aplikacije.
  • Odlični odnosi kompresije (10:1 do 20:1) za fotografije sa kontinuiranim tonovima.
  • Mala veličina prenesenog fajla sa mogućnošću progresivnog renderovanja.

Tehnička ograničenja i nedostaci

  • Gubitna kompresija stvara artefakte (zvonjenje i blokove) duž oštrih ivica.
  • Nema podrške za kanal providnosti.
  • Gubitak kvaliteta nastaje svaki put kada se datoteka dekompresuje, uredi i ponovo sačuva.

Zanimljivosti

  • Klasična probna slika 'Lenna' korišćena za razvoj JPEG kompresije skenirana je iz izdanja magazina Playboy iz novembra 1972. godine.
  • JPEG 4:2:0 poduzorkovanje prepolovljuje rezoluciju hroma i horizontalno i vertikalno uz skoro nultu perceptivnu degradaciju.
  • Svaki standardni JPEG počinje markerom 0xFFD8 (Početak slike) i završava se sa 0xFFD9 (Kraj slike).

Često postavljana tehnička pitanja

Zašto višestruko čuvanje JPEG datoteke smanjuje kvalitet slike?

JPEG je nepovratno gubitni format kompresije. Svaki put kada dekompresujete i ponovo sačuvate JPEG, korak DCT kvantizacije odbacuje visokofrekventne prostorne detalje i ponovo aproksimira blokove od 8x8 piksela, što uzrokuje kumulativne artefakte „generacijskog gubitka“.

Šta je progresivni JPEG i zašto je koristan?

Standardni osnovni JPEG dekodira liniju skeniranja po liniju skeniranja od vrha do dna. Progresivni JPEG kodira podatke slike u višestrukim spektralnim prolazima, omogućavajući preglednicima da odmah prikažu zamućenje niske rezolucije cele slike i da je postepeno izoštravaju kako se bajtovi preuzimaju.

Šta je poduzorkovanje hroma (4:2:0 naspram 4:4:4)?

Ljudska mrežnjača ima više štapićastih ćelija (osvetljenost/luminansa) nego čepićastih ćelija (boja). JPEG to koristi čuvajući punu rezoluciju osvetljenosti (Y) dok prepolovljuje rezoluciju boja (Cb, Cr) horizontalno i vertikalno (4:2:0), uklanjajući 50% sirovih podataka pre kompresije bez primetnog gubitka.

Može li JPEG slika imati providnu pozadinu?

Ne. Standardna JPEG specifikacija nema koncept alfa kanala. Ako je potrebna providnost, morate konvertovati sliku u WebP, AVIF ili PNG.