Formatul de format JPEG de transfer al fișierelor în format Gff

cerere
Se utilizează în principal în programele grafice și de procesare a imaginilor.

Există specificații pentru acest format.

Există surse pentru acest format.







Sub acronimul JPEG (Joint Photographic Experts Group) se înțelege organizația-dezvoltator al standardului, metoda de comprimare, precum și formatul fișierului. De fapt, specificația formatului JPEG, descris în capitolul 9. Nu definește un mod comun pentru stocarea și schimbul de date JPEG între diferite platforme și sisteme de operare. Formatul format JPEG (JFIF) - dezvoltarea corporației C-Cube Microsystems pentru stocarea datelor, codificate în JPEG. Formatul JFIF este conceput pentru a face schimb de date codate JPEG între diferite sisteme și aplicații incompatibile.

Ambele date JPEG și JFIF reprezintă un flux de octeți care stochează un cuvânt de 16 biți în formatul "înfricoșător la cel mai mic". De obicei, datele JPEG sunt înregistrate ca un flux de blocuri, fiecare dintre acestea fiind identificat printr-o valoare de marker.

Primii 2 octeți din orice flux JPEG stochează valoarea marcatorului "Start of Image" (SOI) - FFh D8h. În fișierul format JFIF există un marker (aplicație) "JFIF APP0" urmând SOI și constând din valoarea codului markerului FFh E0h și a simbolurilor JFIF în marcajele de date. Pe lângă segmentul marker JFIF, pot fi prezente unul sau mai multe segmente de jetoane de extensie JFIF, urmate de date grafice reale.

Deși antetul fișierului JFIF nu este definit formal, marcajele SOI și JFIF APP0, luate împreună, pot fi considerate ca un antet:

Câmpul SOI este marcatorul Image Start. conținând întotdeauna valoarea codului token - FFh D8h.

Câmpul APP0 este markerul aplicației. conținând întotdeauna valoarea codului marker - FFh E0h.

Câmpul "Lungimea segmentului APP0", pe lângă lungimea segmentului, include dimensiunile câmpului "Lungime" și datele imaginii miniatură din segmentul APP0. Prin urmare, valoarea acestui câmp este (16 + 3) x (XThumbnail) x (YThumbnail).

Câmpul "Identificator" conține valoarea 4Ah 46h 49h 46h 00h (JFIF), indicând faptul că fluxul de date aparține specificației JFIF.

Câmpul "Versiune" specifică versiunea specificației JFIF, primul octet conține numărul versiunii, iar al doilea - numărul expirării. În versiunea 1.02, de exemplu, valorile octeților câmpului "Versiune" vor fi 01h 02h, respectiv pentru cele mai vechi - 01h 00h sau 01h 01h.

Câmpurile "Unități", "Xdensitate" și "Ydensity" definesc unitățile de rezoluție ale formatului.

Câmpul "Unități" poate avea următoarele valori:
  • 01h - puncte pe inch
  • 02h - puncte pe centimetru
  • 00h este o valoare fără dimensiuni (raportul de compresie pixel). Câmpurile Xdensity și Ydensity determină rezoluția datelor orizontal și vertical. Dacă unitățile = 00h, atunci Xdensity și Ydensity conțin raportul de compresie pixel în direcția orizontală și verticală (Xdensity / Ydensity) în loc de rezoluție. Pentru a evita incompatibilitatea, pixelii non-pătrat nu sunt utilizați, adică Xdensitatea și Ydensitatea conțin o valoare de 1.






În prezent, puțini oameni utilizează marcatorul JFIF APP0 pentru a stoca imagini miniatură, deși este acceptat pentru compatibilitate înapoi. În versiunea 1.02, JFIF alocă un marker de extensie separat pentru acest lucru, ceea ce este mult mai convenabil, deoarece Imaginile miniaturale vin în diferite dimensiuni. În versiunea 1.02, împreună cu miniaturile de 256 de coli, comprimate cu compresie JPEG, sunt acceptate. Astfel de imagini miniaturale sunt limitate la 64K, deoarece acestea trebuie să fie plasate în marcatorul APP0.

Prin marcare JFIF segment poate fi urmat de unul sau mai mulți markeri suplimentari extensie segmente JFIF, folosite pentru a stoca informații suplimentare și prezente numai în versiunea JFIF 1.02 și mai mare. Structura acestor segmente este după cum urmează:

Câmpul APP0 conține valorile FFh E0h.

Câmpul Lungime conține lungimea segmentului de extensie în octeți.

Câmpul Identificator conține valorile 4Ah 46h 58h 58h 00h (JFXX).

Câmpul ExtensionCode indică tipul de informații care se află în marcajul extensiei. In versiunea 1.02 definește trei cod de dispersie: 10h (miniatură codificate JPEG), 11h (o imagine miniatură este înregistrată ca o paletă de 1 octet și pixeli) și 13h (o imagine miniatură este înregistrată într-un 3 octeți RGB pixeli).

Decodorul JFIF trebuie să ignore jetoanele de extensie nerecunoscute și segmentele APPn. Anumiți markeri APPn care nu sunt recunoscuți de decodorul JPEG pot fi pur și simplu omiteți utilizând câmpul lungimii markerului.

De fapt, datele JPEG din fișierul JFIF sunt localizate după toate marcatorii APP0 și corespund formatului specificat în documentația JPEG. Datele de imagine din fișierul JFIF sunt recomandate a fi codificate cu algoritmul JPEG, asigurând astfel o compatibilitate maximă în schimbul de date.

Pentru a recunoaște un fișier JFIF sau un flux de date, scanați datele la valorile FFh D8h FFh care identifică marcatorul SOI, urmat de un alt marcator. În fișierul JFIF corect, următorul octet va avea valoarea E0h, indicând segmentul markerului JFIF APP0. Deși este posibil ca una sau mai multe alte segmente de markeri pot fi înregistrate în mod eronat între markeri SOI JFIF APP0 (JFIF specificație încălcare). Dar decodorul, așa cum sa spus mai devreme, ar trebui să încerce să citească fișierul.

Următorii 2 octeți (lungimea segmentului APP0) pot lua valori diferite, de obicei 00h 10h, urmate de 5 octeți: 4Ah 46h 49h 46h 00h (JFIF). Dacă se găsesc aceste valori, markerul SOI (FFh D8h) indică începutul fluxului de date JFIF. Dacă sunt detectate numai valorile FFh DFD FFh și lipsesc datele rămase, atunci acesta este fluxul de date JPEG original. Toate fluxurile de date JFIF și JPEG se termină cu marcatorul "sfârșitul imaginii" (FFh D9h).

Doar 2 formate neprotejate împreună cu JFIF suportă codarea JPEG. Cea mai recentă versiune a formatului Macintosh PICT atașează antetul PICT la fluxul de date JFIF. Dacă eliminăm totul înainte de marcatorul SOI și după marcatorul EOI, obținem un fișier JFIF echivalent. Un alt format care acceptă codarea JPEG, TIFF 6.0, este descris în detaliu în capitolul despre TIFF.

Cum să contactați C-Cube Microsystems:

C-Cube Microsystems
Prenume: Scott St. Clair
Comunicări corporative
Bulevardul McCarthy din 1778
Milpitas, CA 95035

Consultați și Capitolul 9 pentru informații despre compresia JPEG. Sunt disponibile și întrebări și răspunsuri despre JPEG și compresie care conțin informații despre JPEG.

Institutul Național American de Standarde, Inc.
Attn: Vânzări
1430 Broadway
New York, NY 10018

Standardul este împărțit în două părți: Partea 1 este specificația actuală. Acum partea 1 a atins deja nivelul standardului internațional. Consultați și următorul document:

Compresie și codare digitală a imaginilor capturate continuu, Partea 1: Cerințe și orientări. Numărul documentului este ISO / IEC - 10918-1.

Partea 2 este încă în stadiul de proiect. Vedeți următorul document:

Compresie digitală și codare a imaginilor capturate continuu, Partea 2: Testarea. Numărul documentului este ISO / IEC - 10918-2.

Consultați și discuția despre JPEG din Capitolul 9 pentru recomandări suplimentare, inclusiv cărți disponibile pentru achiziționare cu specificații, întrebări și răspunsuri de la JPEG. De asemenea, sunt disponibile mai multe programe JPEG și biblioteci.







Trimiteți-le prietenilor: