stringtranslate.com

Formato de intercambio de archivos JPEG

El formato de intercambio de archivos JPEG ( JFIF ) es un estándar de formato de archivo de imagen publicado como Recomendación ITU-T T.871 e ISO/IEC 10918-5. Define especificaciones complementarias para el formato contenedor que contiene los datos de imagen codificados con el algoritmo JPEG . Las especificaciones básicas para un formato contenedor JPEG se definen en el Anexo B del estándar JPEG, conocido como Formato de intercambio JPEG (JIF). JFIF se basa en JIF para resolver algunas de sus limitaciones, incluida la complejidad innecesaria, el registro de muestras de componentes, la resolución, la relación de aspecto y el espacio de color . Debido a que JFIF no es el estándar JPG original, uno podría esperar otro tipo MIME . Sin embargo, todavía está registrado como "imagen/jpeg" (lo que indica su formato de datos principal en lugar de la información modificada).

JFIF es mutuamente incompatible con el nuevo formato de archivo de imagen intercambiable (Exif).

Objetivo

JFIF define una serie de detalles que no se especifican en el estándar JPEG Parte 1 ( ISO / IEC 10918-1, Recomendación ITU-T T.81.) [1]

Registro de muestra de componentes

JPEG permite que múltiples componentes (como Y, Cb y Cr ) tengan diferentes resoluciones, pero no define cómo se deben alinear esas diferentes matrices de muestra (que representan mapas de bits). Esta información que produce píxeles se representa con la expectativa de indicar rectángulos por su centroide , en lugar de ser datos de píxeles directamente o ser "primera esquina e inundación", etc., lo cual es poco común.

Resolución y relación de aspecto

El estándar JPEG no incluye ningún método para codificar la resolución o relación de aspecto de una imagen. JFIF proporciona información de resolución o relación de aspecto mediante una extensión de segmento de aplicación a JPEG. Utiliza el segmento de aplicación n.º 0, con un encabezado de segmento que consta de la cadena terminada en nulo que se escribe "JFIF" en ASCII seguida de un byte igual a 0, y especifica que este debe ser el primer segmento del archivo, lo que simplifica reconocer un archivo JFIF. Las imágenes Exif grabadas con cámaras digitales generalmente no incluyen este segmento, pero normalmente cumplen en todos los demás aspectos con el estándar JFIF.

Espacio de color

El estándar JPEG utilizado para la codificación de compresión en archivos JFIF no define qué codificación de color se utilizará para las imágenes. JFIF define el modelo de color que se utilizará: Y para escala de grises o YCbCr derivado de colores primarios RGB como se define en CCIR 601 (ahora conocido como Rec. UIT-R BT.601), excepto con una escala diferente de "gama completa" de los componentes Y, Cb y Cr. A diferencia del "rango de estudio" definido en CCIR 601, en el que el negro está representado por Y=16 y el blanco por Y=235 y los valores fuera de este rango están disponibles para el procesamiento de señales "headroom" y "footroom", JFIF utiliza los 256 niveles. de la representación de 8 bits, de modo que Y=0 para negro e Y=255 para pico blanco. Los colores primarios RGB definidos en JFIF mediante CCIR 601 también difieren algo de lo que se ha convertido en una práctica común en aplicaciones más nuevas (por ejemplo, difieren ligeramente de los colores primarios definidos en sRGB ). Además, CCIR 601 (antes de 2007) no proporcionaba una definición precisa de los colores primarios RGB; en cambio, se basó en las prácticas subyacentes de la industria de la televisión.

La interpretación del color de una imagen JFIF se puede mejorar incorporando un perfil ICC , metadatos del espacio de color o una etiqueta sRGB y utilizando una aplicación que interprete esta información.

Estructura de formato de archivo

Un archivo JFIF consta de una secuencia de marcadores o segmentos de marcadores (para obtener más información, consulte JPEG, Sintaxis y estructura ). Los marcadores están definidos en la parte 1 del estándar JPEG . [1] Cada marcador consta de dos bytes: un FFbyte seguido de un byte que no es igual a 00o FFy especifica el tipo de marcador. Algunos marcadores son independientes, pero la mayoría indica el inicio de un segmento de marcador que contiene bytes de datos según el siguiente patrón:

FF xx s1 s2 [data bytes]

Los bytes s1 y s2 se toman juntos para representar un entero big-endian de 16 bits que especifica la longitud de los siguientes "bytes de datos" más los 2 bytes utilizados para representar la longitud. En otras palabras, s1 y s2 especifican el número de los siguientes bytes de datos como .

Según la parte 1 del estándar JPEG, las aplicaciones pueden utilizar segmentos marcadores de APP y definir un significado específico de los datos para la aplicación. En el estándar JFIF, se definen los siguientes segmentos marcadores de APP:

Se describen a continuación.

El estándar JFIF requiere que el segmento marcador JFIF APP0 siga inmediatamente al marcador SOI. Si se utiliza un segmento marcador APP0 de extensión JFIF, debe seguir inmediatamente al segmento marcador JFIF APP0. [2] Entonces un archivo JFIF tendrá la siguiente estructura:

Segmento marcador JFIF APP0

En el segmento marcador JFIF APP0 obligatorio se especifican los parámetros de la imagen. Opcionalmente, se puede incrustar una miniatura sin comprimir.

Segmento marcador APP0 de extensión JFIF

Inmediatamente después del segmento marcador JFIF APP0 puede haber un segmento marcador APP0 de extensión JFIF. Este segmento solo puede estar presente en las versiones 1.02 y superiores de JFIF. Permite incrustar una imagen en miniatura en 3 formatos diferentes.

Los datos de la miniatura dependen del formato de miniatura de la siguiente manera:

Compatibilidad

El nuevo formato de archivo de imagen intercambiable (Exif) es comparable a JFIF, pero los dos estándares son mutuamente incompatibles. Esto se debe a que ambos estándares especifican que su segmento de aplicación particular (APP0 para JFIF, APP1 para Exif) debe seguir inmediatamente al marcador SOI. En la práctica, muchos programas y cámaras digitales producen archivos que incluyen ambos segmentos de aplicación. Esto no afectará la decodificación de imágenes para la mayoría de los decodificadores, pero es posible que los analizadores JFIF o Exif mal diseñados no reconozcan el archivo correctamente.

JFIF es compatible con las extensiones JPEG "Bloque de recursos de información" de Adobe Photoshop y los metadatos del modelo de intercambio de información IPTC , ya que JFIF no excluye otros segmentos de aplicaciones y no es necesario que las extensiones de Photoshop sean las primeras en el archivo. Sin embargo, Photoshop generalmente guarda los buffers CMYK como "Adobe JPEG" de cuatro componentes que no son conformes con JFIF. Dado que estos archivos no están en un espacio de color YCbCr, normalmente los navegadores web y otros programas de Internet no los pueden descodificar.

Historia

El desarrollo del documento JFIF estuvo dirigido por Eric Hamilton de C-Cube Microsystems , y se llegó a un acuerdo sobre la primera versión a finales de 1991 en una reunión celebrada en C-Cube en la que participaron unos 40 representantes de varias empresas de informática, telecomunicaciones e imágenes. Poco después, se publicó una revisión menor: JFIF 1.01. [3] Durante casi 20 años, la última versión disponible fue la v1.02, publicada el 1 de septiembre de 1992. [2]

En 1996, RFC 2046 especificó que el formato de imagen utilizado para transmitir imágenes JPEG a través de Internet debería ser JFIF. El tipo MIME de "image/jpeg" debe estar codificado como JFIF. En la práctica, sin embargo, prácticamente todo el software de Internet puede decodificar cualquier imagen JIF básica que utilice componentes Y o YCbCr, sea compatible con JFIF o no.

Con el paso del tiempo, C-Cube se reestructuró (y finalmente pasó a formar parte de Harmonic , LSI Logic , Magnum Semiconductor , Avago Technologies , Broadcom y GigOptix, GigPeak, etc.), perdió interés en el documento y la especificación no tenía editor oficial. hasta que fue recogido por Ecma International y el Grupo Conjunto de Expertos en Fotografía UIT-T/ISO/IEC alrededor de 2009 para evitar que se pierda en la historia y proporcionar una manera de citarlo formalmente en publicaciones estándar y mejorar su calidad editorial. Fue publicado por ECMA en 2009 como Informe Técnico número 98 para evitar la pérdida del registro histórico, [3] y fue estandarizado formalmente por ITU-T en 2011 como su Recomendación T.871 [4] y por ISO/IEC en 2013. como ISO/IEC 10918-5, [5] Las publicaciones más nuevas incluyeron mejoras editoriales pero no cambios técnicos sustanciales.

Ver también

Referencias

  1. ^ ab "Recomendación UIT-T T.81: Tecnología de la información - Compresión y codificación digital de imágenes fijas de tonos continuos - Requisitos y directrices" (PDF) . UIT-T (anteriormente CCITT) . 18 de febrero de 1992 . Consultado el 15 de junio de 2015 .
  2. ^ ab Hamilton, Eric (12 de septiembre de 1992). "Formato de intercambio de archivos JPEG, versión 1.02" (pdf, 0,02 MB) . Consultado el 15 de junio de 2015 .
  3. ^ ab "Formato de intercambio de archivos JPEG (JFIF)". ecma-international.org . 2009 . Consultado el 15 de junio de 2015 .
  4. ^ "Recomendación UIT-T T.871: Tecnología de la información - Compresión y codificación digital de imágenes fijas de tonos continuos: formato de intercambio de archivos JPEG (JFIF)" (PDF) . UIT-T. 14 de mayo de 2011 . Consultado el 15 de junio de 2015 .
  5. ^ "ISO/IEC 10918-5:2013: Tecnología de la información - Compresión y codificación digital de imágenes fijas de tonos continuos: formato de intercambio de archivos JPEG (JFIF)". ISO/Comisión Electrotécnica Internacional. 1 de mayo de 2013 . Consultado el 15 de junio de 2015 .

Otras lecturas

Libros

Estándares