Asiakirjan JPG-kuva (.jpg)
ISO/IEC StandardiJPEG on laajimmin käytetty häviöllinen pakkausstandardi digitaalisessa valokuvauksessa ja verkkokuvissa. Se hyödyntää ihmissilmän suurempaa herkkyyttä valoisuudelle värisävyihin verrattuna.
Muunna tiedostot muodosta PNG muotoon JPG
Ilmainen selaimessa toimiva muunnin, jolla voit muuntaa tiedostoja muodosta PNG muotoon JPG. Muunna tiedostot hetkessä laitteellasi.
Pakkaa JPG verkossa
Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi
Tarkastele tiedostoa ja sen metatietoja
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat JPG-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Otsaketunniste tavutasolla (tunnistetavut)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat JPG-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):
FF D8 FFASCII-ESITYSTAPA: ÿØÿ
Standardointi: ISO/IEC 10918-1 / ITU-T T.81
Tekniset tiedot
| Säiliöarkkitehtuuri | Merkinnöillä rajattu binäärivirta (0xFF-etuliite) käärittynä JFIF- tai EXIF-otsikoihin |
| Pakkaus | Häviöllinen diskreetti kosinimuunnos (DCT) + juoksunpituus- ja Huffman-entropiakoodaus |
| Tavujärjestys (Endianness) | Big-endian (suurin tavu ensin) merkintöjen pituuksille ja kvantisointitaulukoille; Exif voi olla little-endian (II) tai big-endian (MM) |
| Väriavaruudet | sRGB, Adobe RGB, CMYK, Y'CbCr, Harmaasävy |
| Kanavat ja rakenne | 8 bittiä kanavaa kohden (24-bittinen täysväri) tai 8-bittinen harmaasävy |
| Suurimmat mitat | 65 535 x 65 535 pikseliä (2 tavun etumerkittömät kokonaisluvut) |
| Läpinäkyvyys | Ei ole (kuva on aina läpinäkymätön; alfakanavaa ei tueta) |
| Suoratoisto ja progressiivinen lataus | Progressiivinen JPEG-koodaus tallentaa useita spektripasseja matalasta korkeaan tarkkuuteen |
Tekninen vertailumatriisi: JPG vs. kilpailijat
| Tekninen attribuutti | JPG (Nykyinen) | WebP | AVIF | PNG |
|---|---|---|---|---|
| Pakkausparadigma | Häviöllinen DCT + Huffman-koodaus | Häviöllinen (VP8) ja häviötön | Häviöllinen (AV1) ja häviötön | Häviötön Deflate |
| Alfaläpinäkyvyys | Ei alfakanavan tukea (aina läpinäkymätön) | 8-bittinen alfa-läpinäkyvyys | 8-bittinen / 10-bittinen / 12-bittinen alfa | Täysi 8-bittinen / 16-bittinen alfa |
| Laitteistopurku | Erillisen JPEG-laitteistodekoodauksen tuki riippuu piiristä ja laitteesta. | Laaja laitteistopurku nykyaikaisissa SoC-piireissä | Nopeasti laajeneva laitteistopurku nykyaikaisissa näytönohjaimissa | Suoritinpohjainen nopea purku |
| Pakkauksen tehokkuus | Hyvä perustaso valokuville | Voi tuottaa JPEG:iä pienemmän tiedoston; tulos vaihtelee kuvan ja koodaimen mukaan. | Voi tuottaa JPEG:iä pienemmän tiedoston; tulos vaihtelee kuvan ja koodaimen mukaan. | Tehoton valokuvamateriaalille |
| Värisyvyys | Tavallinen 8 bittiä kanavaa kohden (24-bittinen RGB-väri) | 8 bittiä kanavaa kohden | 10- ja 12-bittinen HDR ja laaja väriavaruus | 8 ja 16 bittiä kanavaa kohden |
Yleiset vioittumistavat ja heksadesimaalinen palautusopas
Kuvankatseluohjelma näyttää virheen 'Premature end of JPEG file' tai valokuvan alareuna on täysin harmaa tai täynnä värikkäitä juovia.
Perussyy: Katkennut lataus tai keskeneräinen tallennus, josta puuttuu 0xFFD9 (EOI) -päätemerkintä ja kuvatiedon hyötykuorma.
Korjaus: Lisää merkintä 0xFFD9 katkaistun tietovirran loppuun, jotta dekooderit voivat näyttää valokuvan ehjän yläosan.
Kuvan värit vaikuttavat voimakkaasti siirtyneiltä, käänteisiltä tai psykedeelisiltä.
Perussyy: CMYK-väriavaruuden otsikko on käänteinen tai upotettu ICC-profiili on virheellinen.
Korjaus: Muunna väriavaruus CMYK:sta sRGB:hen ImageMagickin avulla ('magick broken.jpg -colorspace sRGB fixed.jpg').
Tiedosto ei avaudu ja ilmoittaa virheestä 'Invalid marker found'.
Perussyy: Bittivirhe kvantisointitaulukon (DQT 0xFFDB) tai Huffman-taulukon (DHT 0xFFC4) otsikoissa.
Korjaus: Korvaa vahingoittuneet otsikkomerkinnät standardin mukaisilla JFIF:n Huffman- ja kvantisointitaulukoilla, jotka on poimittu ehjästä JPEG-tiedostosta.
Tietoturva-analyysi ja tiedostojäsentimien hyökkäysvektorit
JPEG-turvallisuudessa on kyse ensisijaisesti metatietojen yksityisyysvuodoista (EXIF) ja puskurin ylivuodoista vanhoissa C-kielisissä dekoodereissa (libjpeg).
Tunnetut hyökkäysvektorit
- Arkaluonteisten metatietojen paljastuminen: Poistamattomat EXIF-otsikot, jotka sisältävät GPS-koordinaatteja, kameran sarjanumeroita ja esikatselukuvia.
- Puskurin lukualueen ylitykset ja kokonaislukujen ylivuodot vanhan libjpeg-kirjaston jäsennyskoodissa voivat turmella uudelleenkäynnistysmerkintöjä (RST) tai progressiivisen skannauksen skriptejä.
- Polyglottitiedostot, joissa yhdistetään JPEG-otsikot suoritettaviin ZIP- tai RAR-arkistoihin.
Tietoturvan parhaat käytännöt: Poista aina EXIF- ja GPS-sijaintimetatiedot julkaistessasi käyttäjien kuvia käyttäjien yksityisyyden suojaamiseksi. Käytä nykyaikaisia muistiturvallisia dekoodereita (kuten Rustin image-rs) tai hiekkalaatikossa toimivia WebAssembly-dekoodereita.
Historia ja virstanpylväät
Tärkeimmät edut
- Monet kuvankäsittelyohjelmat ja laitteet tukevat JPEG-dekoodausta, mutta yhteensopivuus vaihtelee laitteen ja sovelluksen mukaan.
- Valokuvien jatkuville sävyille saadaan erinomaisia pakkaussuhteita (10:1:n ja 20:1:n välillä).
- Pieni tiedostokoko ja progressiivinen hahmotuskyky.
Tekniset rajoitukset
- Häviöllinen pakkaus aiheuttaa pakkausartefakteja (rengasmaisia ja lohkomaisia vääristymiä) terävien reunojen ympärille.
- Ei alfa-kanavan tukea.
- Sukupolvikato tapahtuu joka kerta, kun tiedosto puretaan, muokataan ja tallennetaan uudelleen.
Mielenkiintoisia teknisiä faktoja
- Klassinen 'Lenna'-testikuva, jota käytettiin JPEG-pakkauksen kehittämiseen, skannattiin Playboy-lehden marraskuun 1972 numerosta.
- JPEG 4:2:0 -alinäytteistys puolittaa krominanssitarkkuuden sekä vaaka- että pystysuunnassa lähes olemattomalla havainnollisella laadun heikkenemisellä.
- Jokainen standardi JPEG alkaa merkinnällä 0xFFD8 (kuvan alku) ja päättyy merkintään 0xFFD9 (kuvan loppu).
Usein kysytyt tekniset kysymykset
Miksi JPEG-tiedoston tallentaminen useita kertoja heikentää kuvan laatua?
JPEG on peruuttamattomasti häviöllinen pakkausmuoto. Aina kun JPEG puretaan ja tallennetaan uudelleen, DCT-kvantisointivaihe hylkää korkeataajuisia yksityiskohtia ja approksimoi 8x8 pikselin lohkot uudelleen, mikä aiheuttaa kumuloituvia sukupolvikatoartefakteja.
Mikä on progressiivinen JPEG ja miksi siitä on hyötyä?
Tavallinen baseline-JPEG purkaa kuvan skannausrivi kerrallaan ylhäältä alas. Progressiivinen JPEG koodaa kuvatiedot useissa spektripasseissa, jolloin selaimet voivat näyttää koko kuvan heti epätarkkana ja terävöittää sitä asteittain tavujen latautuessa.
Mitä on krominanssin alinäytteistys (4:2:0 vs 4:4:4)?
Ihmissilmän verkkokalvolla on enemmän sauvasoluja (luminanssi/kirkkaus) kuin tappisoluja (väri). JPEG hyödyntää tätä säilyttämällä täyden kirkkaustarkkuuden (Y) ja puolittamalla samalla väritarkkuuden (Cb, Cr) vaaka- ja pystysuunnassa (4:2:0). Näin raakadatasta karsiutuu 50 % ennen pakkausta ilman havaittavaa laadun heikkenemistä.
Voiko JPEG-kuvalla olla läpinäkyvä tausta?
Ei voi. Standardissa JPEG-määrittelyssä ei ole alfa-kanavan käsitettä. Jos läpinäkyvyys on tarpeen, kuva on muunnettava muotoon WebP, AVIF tai PNG.
Aiheeseen liittyvät JPG-muunnosparit
PNG-rasterikuvien muuntaminen JPEG-muotoon pienentää tiedostokokoa soveltamalla häviöllistä pakkausta, minkä ansiosta kuvat latautuvat verkkosivustoilla nopeammin ja vievät vähemmän tallennustilaa.
Häviöllisen JPEG-kuvan muuntaminen häviöttömäksi PNG-kuvaksi estää laadun heikkenemisen edelleen ja lisää tuen alfakanavan läpinäkyvyydelle.
JPEG-kuvien muuntaminen WebP-muotoon voi pienentää tiedostokokoa kuvanlaadun pysyessä vastaavana, mutta tulos vaihtelee kuvan sisällön ja koodausasetusten mukaan.
WebP-kuvan muuntaminen JPEG-muotoon voi helpottaa still-kuvan käyttöä ohjelmistossa, joka ei tue WebP:tä. JPEG ei säilytä läpinäkyvyyttä eikä animaatiota.
HEIC-kuvien muuntaminen JPEG-kuviksi muuttaa Applen oletusarvoisen kameramuodon rasterikuviksi, jotka ovat luettavissa vanhemmissa ohjelmistoissa ja verkkoselaimissa.
AVIF-kuvien muuntaminen JPEG-muotoon voi auttaa vanhojen ohjelmistojen kanssa, jos ne eivät tue AV1 Image File Format -muotoa.
Perinteisen JPEG-kuvan muuntaminen AVIF-muotoon pienentää tiedostokokoa merkittävästi säilyttäen samalla korkean visuaalisen laadun edistyneen modernin videokoodaustekniikan avulla.
Muunna suuret Adobe Photoshop PSD -sommitelmat pieniksi JPEG-kuviksi, joita voi katsella kaikkialla.