aspose.info
HU

JPEG - Képfájl formátum

Frissítve

Mi az a JPEG fájl?

A JPEG egy olyan képformátum, amelyet veszteséges tömörítési módszerrel mentenek el. A kimeneti kép a tömörítés eredményeként kompromisszumot jelent a tárhely mérete és a képminőség között. A felhasználók beállíthatják a tömörítési szintet a kívánt minőségi szint eléréséhez, ugyanakkor csökkenthetik a tárhely méretét. A képminőséget elhanyagolható mértékben befolyásolja, ha 10:1-es tömörítést alkalmaznak a képen. Minél nagyobb a tömörítési érték, annál nagyobb a képminőség romlása.

Fájlformátum specifikációi

A JPEG képfájlformátumot a Joint Photography Experts Group szabványosította, és innen ered a JPEG név. A formátum a fényképfelvételek internetes tárolása és továbbítása volt. Szinte minden operációs rendszer rendelkezik olyan megjelenítőkkel, amelyek támogatják a JPEG képek megjelenítését, amelyeket gyakran JPG kiterjesztéssel is tárolnak. Még a webböngészők is támogatják a JPEG képek megjelenítését. Mielőtt belemennénk a JPEG fájlformátum specifikációiba, meg kell említeni a JPEG létrehozásához szükséges lépések általános folyamatát.

JPEG tömörítési lépések

Átalakítás: A színes képeket a rendszer RGB-ből fénysűrűség/chrominancia képpé alakítja (a szem a fénysűrűségre érzékeny, nem a színárnyalatra, így a színárnyalati rész sok adatot veszíthet, és így erősen tömöríthető.

Lefelé mintavétel: A lefelé irányuló mintavétel a színes komponensre, nem pedig a fénysűrűség komponensre történik. Így a kép mérete csökken, mivel az ‘y’ komponenst nem érintik meg, és nincs észrevehető képminőség romlás.

Rendezés csoportokba: Az egyes színösszetevők képpontjai 8×2 pixeles csoportokba vannak rendezve, amelyeket „adategységeknek” neveznek, ha a sorok vagy oszlopok száma nem 8 többszöröse, az alsó sor és a jobb szélső oszlopok duplikálva vannak.

Diszkrét koszinusz-transzformáció: Diszkrét koszinusz-transzformációt (DCT) alkalmazunk minden adategységre, hogy létrehozzuk a transzformált komponensek 8×8-as térképét. A DCT bizonyos információvesztéssel jár a számítógépes aritmetika korlátozott pontossága miatt. Ez azt jelenti, hogy a térkép nélkül is csökken a képminőség, de általában kicsi.

Kvantálás: Az adategységben lévő 64 transzformált komponens mindegyikét elosztják egy külön számmal, amelyet „kvantálási együtthatónak (QC)” neveznek, majd egész számra kerekítik. Itt az információ helyrehozhatatlanul elveszik, a nagy minőségellenőrzés pedig több veszteséget okoz. Általánosságban elmondható, hogy a legtöbb JPEG eszköz lehetővé teszi a JPEG szabvány által javasolt minőségellenőrzési táblázatok használatát.

Kódolás: Az egyes adategységek 64 kvantált transzformált együtthatója (amelyek most egész számok) az RLE és a Huffman kódolás kombinációjával vannak kódolva.

Fejléc hozzáadása: Az utolsó lépés hozzáadja a fejlécet és az összes használt JPEG-paramétert, és kiadja az eredményt.

A JPEG dekóder a lépéseket fordított sorrendben használja az eredeti kép létrehozásához a tömörített képből.

Fájlszerkezet

A JPEG kép szegmensek sorozataként jelenik meg, ahol minden szegmens egy markerrel kezdődik. Minden marker 0xFF bájttal kezdődik, majd ezt követi a marker flag, amely a marker típusát jelzi. A marker által követett hasznos teher markertípusonként eltérő. A leggyakoribb JPEG markertípusok az alábbiak:

Rövid névBájtokPayloadNévMegjegyzések
SOI0xFF, 0xD8nincsKép eleje
S0F00xFF, 0xC0változó méretűKeret eleje
S0F20xFF, 0xC2változó méretűKere indítása
DHT0xFF, 0xC4változó méretHuffman-táblázatok meghatározása
DQT0xFF, 0xDBváltozó méretKvantálási táblázat(ok) meghatározása
DRI0xFF, 0xDD4 bájtÚjraindítási intervallum meghatározása
SOS0xFF, 0xDAváltozó méretűSzkennelés kezdete
RSTn0xFF, 0xD//n//(/hu//n//#0..7)nincsÚjraindítás
APPn0xFF, 0xE//n//változó méretAlkalmazásfüggő
COM0xFF, 0xFEváltozó méretűMegjegyzés
EOI0xFF, 0xD9nincsKép vége

Az entrópiakódolt adatokon belül minden 0xFF bájt után a kódoló egy 0x00 bájtot szúr be a következő bájt elé, így nem jelenik meg jelölő ott, ahol egyiket sem szánják, megelőzve ezzel a keretezési hibákat. A dekódolóknak ki kell hagyniuk ezt a 0x00 bájtot. Ezt a byte-töltés technikát (lásd a JPEG specifikáció F.1.2.3. szakaszát) csak az entrópiakódolt adatokra alkalmazzák, a hasznos adatok jelölőire nem. . Megjegyzendő azonban, hogy az entrópiakódolt adatoknak van néhány saját markere; konkrétan a Reset markerek (0xD0 – 0xD7), amelyek az entrópiakódolt adatok független darabjainak elkülönítésére szolgálnak, hogy lehetővé tegyék a párhuzamos dekódolást, és a kódolók szabadon beilleszthetik ezeket az alaphelyzetbe állítási jelzőket rendszeres időközönként (bár nem minden kódoló teszi ezt).

Lásd még