JPEG XT (ISO/IEC 18477) es un estándar de compresión de imágenes que especifica extensiones compatibles con versiones anteriores del estándar JPEG base (ISO/IEC 10918-1 e ITU Rec. T.81).
JPEG XT amplía JPEG con compatibilidad con mayores profundidades de bits enteros, imágenes de alto rango dinámico y codificación de punto flotante, codificación sin pérdida, codificación de canal alfa y un formato de archivo extensible basado en JFIF . También incluye una implementación de software de referencia y especificaciones de pruebas de conformidad.
Las extensiones JPEG XT son compatibles con versiones anteriores del formato de archivo JPEG/JFIF base: el software existente es compatible con versiones posteriores y puede leer el flujo binario JPEG XT, aunque solo decodificaría la imagen base con pérdida de 8 bits. [1]
Los estándares JPEG se denominan formalmente Tecnología de la información: compresión y codificación escalables de imágenes fijas de tono continuo . La norma ISO/IEC 18477 consta de las siguientes partes:
La Parte 1 del estándar define las especificaciones JPEG de uso común en la actualidad, como ISO/IEC 10918-1 (formato base), 10918-5 JPEG File Interchange Format (JFIF) y 10918-6 (aplicaciones de impresión). Restringe los modos de codificación JPEG a Huffman de línea base, secuencial y progresivo, e incluye definiciones JFIF de transformaciones del espacio de color Rec. 601 con submuestreo de croma YCbCr . [2] [1] La primera especificación fue escrita por Thomas Richter de Alemania, Tim Bruylants y Peter Schelkens de Bélgica y el ingeniero suizo-iraní Touradj Ebrahimi. [2]
Parte 3 El formato de archivo Box define un formato extensible que es compatible con versiones anteriores de JFIF. Las extensiones se basan en "boxes": fragmentos de 64 KB etiquetados por el marcador de aplicación 11 ("APP11"), que contienen capas de datos de mejora y metadatos binarios adicionales que describen cómo combinarlos con la capa base de 8 bits para formar una imagen de precisión total. [3] La Parte 3 se basa en el formato de archivo multimedia base ISO utilizado por JPEG 2000 ; se empleó una disposición similar en el formato JPEG-HDR anterior de Dolby Labs , que está estandarizado en JPEG XT Parte 2. [2]
La Parte 7 incluye herramientas de codificación HDR de punto flotante que producen una capa de imagen de mejora a partir de una imagen de precisión total y una capa de imagen base de 8 bits con mapa de tonos corregido por gamma. Estas herramientas están destinadas a imágenes de alto rango dinámico con múltiples exposiciones fotográficas e imágenes generadas por computadora que superan la precisión lineal de 16 bits enteros. [2]
Define tres algoritmos principales para reconstruir la imagen HDR: el perfil A utiliza un factor de escala logarítmico común para el mapeo de tonos inverso de la capa base; el perfil B utiliza una capa de extensión de imagen divisoria escalada por el valor de exposición común; el perfil C es similar al A pero utiliza factores de escala por componente y espacio logarítmico con funciones lineales por partes, lo que permite una codificación sin pérdidas. El perfil A se basa en el formato de imagen Radiance RGBE [2] y el perfil B se basa en el formato XDepth de Trellis Management. [4]
El perfil D utiliza un algoritmo simple que no genera una imagen de mejora: la capa de mejora se utiliza para almacenar la precisión extendida de los coeficientes de transferencia de la transformada discreta del coseno (DCT), y se aplica una función de transferencia no gamma para aumentar el rango dinámico a 12 bits. La compatibilidad con versiones anteriores es limitada porque los decodificadores antiguos no entienden las nuevas curvas EOTF y producen colores subsaturados. [2] El perfil D no está implementado en el software de referencia.
JPEG XT también permite mezclar varios elementos de diferentes perfiles en el flujo de código, lo que permite una precisión DCT extendida y una codificación sin pérdidas en todos los perfiles (el "Perfil completo"). [1]
La Parte 6, Codificación de enteros de imágenes de rango dinámico intermedio (IDR), es una extensión para codificar muestras de enteros de 9 a 16 bits típicas de los datos de sensores RAW ; sus herramientas de codificación son idénticas a las del Perfil C de la Parte 7. [2]
La Parte 2 define una implementación de imágenes HDR basada en el formato JPEG-HDR de Dolby. [5] Utiliza el formato de imagen RGBE definido por la Parte 7 Perfil A, que admite muestras de números enteros y de punto flotante; el formato de archivo se basa en la Parte 3, pero utiliza una sintaxis de metadatos basada en texto patentada. [2]
La codificación sin pérdida de la Parte 8 es una extensión de la codificación de números enteros y de punto flotante basada en el Perfil C de la Parte 7, que permite una compresión escalable con pérdida a sin pérdida. Para una precisión de 10 y 12 bits, se utiliza una DCT de entero a entero sin pérdida, que reemplaza cada espacio de rotación con tres cortes (similar a la transformada wavelet en JPEG2000). Para una precisión de 16 bits, el estándar especifica una aproximación DCT de punto fijo con pérdida y es necesaria para que la implementen los decodificadores. Esto permite que el codificador prediga errores de codificación y los almacene en la capa de mejora, lo que permite una reconstrucción sin pérdida. Los residuos de error en la capa de mejora pueden estar sin comprimir o comprimidos con una DCT de entero a entero sin pérdida. [1] El rendimiento de compresión y calidad de imagen de la Parte 8 es comparable al de PNG . [2] [3]
La extensión del canal alfa de la Parte 9 permite la codificación con y sin pérdida de imágenes transparentes e imágenes de formas arbitrarias. Utiliza una capa de opacidad (transparencia), codificada con precisión de números enteros o de punto flotante, y metadatos para especificar si el contenido se multiplicó previamente con alfa o se multiplicó previamente y se mezcló con el color de fondo. [1] [2]
En el futuro, las extensiones de seguridad y protección de la privacidad permitirían codificar regiones de imágenes privadas (o imágenes completas) con resolución reducida, con capas de mejora cifradas digitalmente para restaurar la resolución completa de la imagen solo para aquellos que tengan la clave de descifrado privada. Solo las regiones públicas serán visibles para aquellos que no tengan la clave. [1] [2]
La codificación HDR de JPEG XT Part 2 se basa en el formato Dolby JPEG-HDR, [5] creado en 2005 por Greg Ward [6] de BrightSide Technologies y Maryann Simmons de Walt Disney Feature Animation como una forma de almacenar imágenes de alto rango dinámico dentro de un archivo JPEG estándar . BrightSide Technologies fue adquirida por Dolby Laboratories en 2007.
La codificación de la imagen se basa en el formato de imagen RGBE de dos capas utilizado por el renderizador Radiance , ambos creados por Ward. La reducción del tamaño del archivo se logra convirtiendo primero la imagen en una versión con mapa de tonos y luego almacenando una imagen multiplicadora reconstructiva en marcadores APP11 en el mismo archivo JPEG/JFIF. El software de visualización común ignorará la imagen multiplicadora, lo que permitirá que cualquiera pueda ver la versión con mapa de tonos de la imagen presentada en un rango dinámico y una gama de colores estándar.
El formato de archivo JPEG-HDR es similar al formato de archivo JPEG XT Parte 3 Box pero utiliza metadatos basados en texto. [2]
Los programas que admiten JPEG-HDR incluyen Photosphere de Greg Ward [7] y pfstools. [8]
El grupo de expertos en fotografía ISO/IEC mantiene una implementación de software de referencia para las extensiones JPEG base (ISO/IEC 10918-1 y 18477-1) y JPEG XT (ISO/IEC 18477 Partes 2 y 6-9), así como JPEG-LS (ISO/IEC 14495). Una versión reducida sin JPEG-LS, codificación aritmética y un codificador progresivo jerárquico similar a mozjpeg está disponible bajo la licencia ISO. [9] Como concursante del Gran Desafío ICIP, el autor también incluye algunas técnicas de optimización JPEG existentes conocidas como "JPEG con esteroides" en la biblioteca. [10]
Dolby Labs proporciona un codificador de software JPEG-HDR; XDepth/Trellis Management proporciona el software JPEG XT Part 7 Profile B; la implementación de todas las partes restantes fue proporcionada por la Universidad de Stuttgart .