Anar al contingut

JFIF

De L'Enciclopèdia, la wikipedia en valencià

El JFIF (en anglés: JPEG File Interchange Format, en espanyol: format d'intercanvi de fichers JPEG) és un format de ficher estàndar d'image. Definix especificacions complementàries per al format de contenidor que conté les senyes d'image codificats en l'algoritme JPEG. Les especificacions bàsiques per a un format de contenidor JPEG es definixen en l'anex B de l'estàndart JPEG, conegut com format d'intercanvi JPEG (JIF). JFIF es basa en JIF resolent algunes de les seues llimitacions, com a complexitat innecessària, registre de mostres de components, resolució, relació d'aspecte i espai de color. Com JFIF és un estàndart suplementari, el format de ficher resultant es pot cridar "JPEG / JFIF".

JFIF és incompatible mútuament en el nou format de ficher d'image intercanviable ( EXIF ).

Propòsit

JFIF definix una série de detalls que no s'especifiquen segons la norma JPEG Part 1 ( ISO / IEC 10918-1, Recomanació UIT-T T.81). )[1]

Registre d'eixemple de components

JPEG permet que varis components (com I, Cb i Cr ) tinguen resolucions diferents, pero no definix cóm es deuen alinear estes matrius de mostra diferents. L'estàndart JFIF requerix que les mostres se situen " intersticial ", és dir, el decodificador pot tractar cada matriu de components com una matriu de píxels rectangulars de tamany igual muestreados en els seus centres, en cada matriu els mateixos llímits exteriors que l'image. Açò és convenient per als usuaris d'ordenadors, pero no és l'alliniació que s'utilisa en MPEG-2 i en la majoria d'aplicacions de vídeo.

Resolució i relació d'aspecte

L'estàndart JPEG no inclou cap método per a codificar la resolució ni la relació d'aspecte d'una image. JFIF proporciona informació de resolució o relació d'aspecte per mig d'una extensió de segment d'aplicació a JPEG. Utilisa el segment d'aplicació # 0, en una capçalera de segment que consistix en l'ortografia de cadena de finalisació nul "JFIF" en ASCII seguida d'un byte igual a 0, i especifica que este deu ser el primer segment del ficher, per lo que és més senzill reconéixer un ficher JFIF. Les imàgens Exif registrades per càmares digitals generalment no inclouen este segment, pero normalment complixen en el restant de la norma JFIF.

Espai de color

L'estàndart JPEG utilisat per a la codificació de compressió en fichers JFIF no definix qué codificació de color es deu utilisar per a les imàgens. JFIF definix el modele de color a utilisar: ya siga I per a escala de grises o YCbCr derivat primàries de color RGB tal com es definixen en CCIR 601 (ara conegut com Rec. UIT-R BT.601), llevat en una escala de "ranc complet" diferent dels components I, Cb i Cr. A diferència de el "ranc d'estudi" definit al CCIR 601, en el que el negre està representat per I = 16 i el blanc per a I = 235 i els valors fòra d'este ranc estan disponibles per al processament de la senyal "espai lliure" i "espai lliure", JFIF utilisa els 256 nivells de la representació de 8 bits, per lo que i = 0 per al negre i i = 255 per al blanc màxim. Les primàries de color RGB definides a JFIF per mig de CCIR 601 també diferixen una miqueta de lo que s'ha convertit en pràctica habitual en aplicacions més recents (per eixemple, diferixen llaugerament de les primàries de color definides en sRGB ). Ademés, CCIR 601 (abans del 2007) no proporcionava una definició precisa de les primàries de color RGB; en canvi, es basava en les pràctiques subjacents de l'indústria televisiva.

L'interpretació del color d'una image JFIF es pot millorar incrustant un perfil ICC, metadatos de l'espai de colors o una etiqueta sRGB i per mig d'una aplicació que interpreta esta informació.

Estructura del format de ficher

Un ficher JFIF consistix en una seqüència de marcadors o segments de marcadors (per a obtindre més informació, consulte JPEG, sintaxis i estructura ). Els marcadors es definixen en la part 1 de l'estàndart JPEG.[2] Cada marcador consta de dos bytes: un FF seguit d'un byte que no és igual a 00 o FF i especifica el tipo de marcador. Alguns marcadors són independents, pero la majoria indiquen l'inici d'un segment de marcador que conté grups de bytes de senyes segons el següent patró:

FF xx s1 s2 [bytes de senyes]

Els bytes s1 i s2 es prenen junts per a representar un sancer de 16 bits en format big-endian que especifica la llongitut dels següents "bytes de senyes" més els 2 bytes utilisats per a representar la llongitut. En atres paraules, s1 i s2 especifiquen el número dels bytes de senyes com 256⋅s1+s2−2.

Segons la part 1 de l'estàndart JPEG, les aplicacions poden utilisar segments de marcador APP i definir un significat específic de l'aplicació de les senyes. En l'estàndart JFIF, es definixen els següents segments de marcador APP, que es descriuen a continuació.:

  • Segment de marcador APP0 JFIF (segment abreviat de JFIF) (obligatori)
  • Segment de marcador d'extensió JFIF APP0 (segment JFXX per a abreviar) (opcional)


L'estàndart JFIF requerix que el segment del marcador JFIF APP0 seguixca immediatament el marcador SOI. Si s'utilisa un segment de marcador APP0 d'extensió JFIF, deu seguir immediatament el segment de marcador APP0 JFIF.[3] Per lo tant, un ficher JFIF tindrà la següent estructura:

Estructura de fichers JFIF
segment còdic Descripció
SOI FF D8 Inici de l'image
JFIF-APP0 FF E0 s1 s2 4A 46 49 46 00... vore més avall
JFXX-APP0 FF E0 s1 s2 4A 46 58 58 00... opcional, vore més avall
... segments de marcador adicionals

(per eixemple, SOF, DHT, COM)

SOS FF DA Inici de l'escanejat
senyes d'image comprimits
EOI FF D9 Final de l'image

Segmente de marcador JFIF APP0

En el segment obligatori del marcador JFIF APP0 s'especifiquen els paràmetros de l'image. Opcionalmente, es pot insertar una miniatura sense comprimir.

Segment de marcador JFIF APP0
camp Tamany (bytes) Descripció
marcador APP0 2 FF E0
llarc 2 Llongitut del segment excloent el marcador APP0
identificador 5 4A 46 49 46 00 = "JFIF" en ASCII, finalisat per un byte nul
versió JFIF 2 Primer byte per a versió major, segon byte per a versió menor (per a 1:02) 01 02
Unitats de densitat 1 Unitats per als següents camps de densitat de píxels
  • 00 : Sense unitats; ample: altura proporció de píxels = Ydensity: Xdensityy
  • 01 : Píxels per polzada (2,54 cm)
  • 02 : Píxels per centímetro
Xdensity 2 Densitat horisontal de píxels. No deu ser zero
Ydensity 2 Densitat de píxels verticals. No deu ser zero
Xthumbnail 1 Reconte horisontal de píxels de la següent miniatura RGB incrustada. Pot ser zero
Ythumbnail 1 Reconte de píxels vertical de la següent miniatura RGB incrustada. Pot ser zero
Senyes en miniatura 3 × n Senyes de miniatures RGB de 24 bits sense comprimir (8 bits per canal de color) en l'orde R0, G0, B0,... Rn-1, Gn-1, Bn-1; en n = Xthumbnail × Ythumbnail

Segmente de marcador APP0 d'extensió JFIF

Immediatament despuix del segment de marcador APP0 JFIF pugues haver un segment de marcador APP0 d'extensió JFIF. Este segment només pot estar present per a versions JFIF 01:02 i posteriors. Permet incrustar una image en miniatura en 3 formats diferents.

Segment de marcador APP0 d'extensió JFIF
camp Tamany (bytes) Descripció
marcador APP0 2 FF E0
llarc 2 Llongitut del segment excloent el marcador APP0
identificador 5 4A 46 58 58 00 = "JFXX" en ASCII, finalisat per un byte nul
Format de miniatura 1 Especifica quin format de senyes s'utilisa per a la miniatura incrustada següent:
  • 10 : Format JPEG
  • 11 : Format paletizado d'1 byte per píxel
  • 13 : Format RGB de 3 byte per píxel
Senyes en miniatura variable Depén del format de la miniatura, vore més avall

Les senyes de miniatures depenen del format de miniatura de la següent manera:

Miniatura almagasenada per mig de la codificació JPEG
camp Tamany (bytes) Descripció
SOI 2 FF D8
variable Deu ser en format JIF utilisant YCbCr o simplement I, i no deu contindre segments JFIF o JFXX
EOI 2 FF D9
Miniatura almagasenada en un byte per píxel
camp Tamany (bytes) Descripció
Xthumbnail 1 Reconte horisontal de píxels de la següent miniatura incrustada. No deu ser zero
Ythumbnail 1 Reconte de píxels verticals de la miniatura incrustada següent. No deu ser zero
Paleta de miniatures 768 256 entrades de paleta, cada una en un valor de color RGB de 24 bits
Senyes en miniatura n Un byte per píxel que conté l'índex del color dins de la paleta,

en n = Xthumbnail × Ythumbnail

Miniatura almagasenada en tres byte per píxel
camp Tamany (bytes) Descripció
Xthumbnail 1 Reconte horisontal de píxels de la següent miniatura incrustada. No deu ser zero
Ythumbnail 1 Reconte de píxels verticals de la miniatura incrustada següent. No deu ser zero
Senyes en miniatura 3 × n Senyes de miniatures RGB de 24 bits sense comprimir (8 bits per canal de color) en l'orde R0, G0, B0,... Rn-1, Gn-1, Bn-1; en n = Xthumbnail × Ythumbnail

Vore també

Referències

Bibliografia

Llibres

Estàndarts


Referències