JPEG sin pérdidas es una adición al estándar JPEG de 1993 por parte del Grupo Conjunto de Expertos en Fotografía para permitir la compresión sin pérdidas . Sin embargo, el término también puede usarse para referirse a todos los esquemas de compresión sin pérdidas desarrollados por el grupo, incluidos JPEG 2000 , JPEG LS y JPEG XL .
JPEG sin pérdidas se desarrolló como una adición tardía a JPEG en 1993, utilizando una técnica completamente diferente al estándar JPEG con pérdidas. Utiliza un esquema predictivo basado en los tres vecinos más cercanos (causales) (superior, izquierdo y superior izquierdo), y se utiliza codificación de entropía en el error de predicción. Las bibliotecas estándar del Independent JPEG Group no pueden codificarlo ni decodificarlo, pero Ken Murchison de Oceana Matrix Ltd. escribió un parche que extiende la biblioteca IJG para manejar JPEG sin pérdidas. [ 1 ] JPEG sin pérdidas tiene cierta popularidad en imágenes médicas y se utiliza en DNG y algunas cámaras digitales para comprimir imágenes sin procesar, pero por lo demás nunca fue ampliamente adoptado. El SDK DNG de Adobe proporciona una biblioteca de software para codificar y decodificar JPEG sin pérdidas con hasta 16 bits por muestra.
El Grupo Conjunto de Expertos en Fotografía ISO/IEC mantiene una implementación de software de referencia que puede codificar tanto JPEG base (ISO/IEC 10918-1 y 18477-1) como extensiones JPEG XT (ISO/IEC 18477 Partes 2 y 6-9), así como JPEG LS (ISO/IEC 14495). [ 2 ]
Modo de funcionamiento sin pérdidas



JPEG sin pérdidas [ 3 ] es en realidad un modo de operación de JPEG. Este modo existe porque la forma basada en la transformada discreta del coseno (DCT) no puede garantizar que la entrada del codificador coincida exactamente con la salida del decodificador. A diferencia del modo con pérdidas, que se basa en la DCT, el proceso de codificación sin pérdidas emplea un modelo de codificación predictiva simple llamado modulación diferencial por codificación de pulsos (DPCM). Este es un modelo en el que las predicciones de los valores de muestra se estiman a partir de las muestras vecinas que ya están codificadas en la imagen. La mayoría de los predictores toman el promedio de las muestras inmediatamente por encima y a la izquierda de la muestra objetivo. DPCM codifica las diferencias entre las muestras predichas en lugar de codificar cada muestra de forma independiente. Las diferencias de una muestra a la siguiente suelen ser cercanas a cero. Un codificador DPCM típico se muestra en la Fig. 1. El bloque en la figura actúa como un almacenamiento de la muestra actual, que luego será una muestra anterior.
Los pasos principales del modo de operación sin pérdidas se muestran en la Fig. 2. En el proceso, el predictor combina hasta tres muestras vecinas en A, B y C mostradas en la Fig. 3 para producir una predicción del valor de la muestra en la posición etiquetada por X. Las tres muestras vecinas deben ser muestras ya codificadas. Cualquiera de los predictores mostrados en la tabla a continuación puede usarse para estimar la muestra ubicada en X. [ 4 ] Cualquiera de los ocho predictores enumerados en la tabla puede usarse. Tenga en cuenta que las selecciones 1, 2 y 3 son predictores unidimensionales y las selecciones 4, 5, 6 y 7 son predictores bidimensionales. El primer valor de selección en la tabla, cero, solo se usa para codificación diferencial en el modo de operación jerárquico. Una vez que todas las muestras se predicen, las diferencias entre las muestras se pueden obtener y codificar entropía de manera sin pérdidas usando codificación Huffman o codificación aritmética .
Por lo general, las compresiones que utilizan el modo de operación sin pérdidas pueden lograr una relación de compresión de alrededor de 2:1 para imágenes en color. [ 5 ] Este modo es bastante popular en el campo de las imágenes médicas y está definido como una opción en el estándar DNG, pero por lo demás no se usa muy ampliamente debido a la complejidad de realizar aritméticas en valores de 10, 12 o 14 bpp en un procesador típico integrado de 32 bits y una pequeña ganancia resultante en espacio.
JPEG LS
Descripción general
JPEG LS es un estándar de compresión sin pérdidas o casi sin pérdidas para imágenes de tono continuo. [ 6 ] Su designación oficial es ISO-14495-1/ITU-T.87. [ 7 ] Es un algoritmo base simple y eficiente que consta de dos etapas independientes y distintas llamadas modelado y codificación. JPEG LS se desarrolló con el objetivo de proporcionar un estándar de compresión de imágenes sin pérdidas y casi sin pérdidas de baja complejidad que pudiera ofrecer una mejor eficiencia de compresión que JPEG sin pérdidas. Se desarrolló porque en ese momento, el estándar sin pérdidas JPEG basado en codificación Huffman y otros estándares tenían limitaciones en su rendimiento de compresión. La decorrelación total no se puede lograr mediante la entropía de primer orden de los residuos de predicción empleados por estos estándares inferiores. JPEG LS, por otro lado, puede obtener una buena decorrelación. [ 8 ] [ 9 ] La Parte 1 de este estándar se finalizó en 1999. La Parte 2, publicada en 2003, introdujo extensiones como la codificación aritmética . El núcleo de JPEG LS se basa en el algoritmo LOCO-I, [ 10 ] que se basa en la predicción, el modelado de residuos y la codificación contextual de los residuos. La mayor parte de la baja complejidad de esta técnica proviene de la suposición de que los residuos de predicción siguen una distribución geométrica bilateral (también llamada distribución discreta de Laplace ) y del uso de códigos tipo Golomb , que se sabe que son aproximadamente óptimos para distribuciones geométricas. Además de la compresión sin pérdidas, JPEG LS también proporciona un modo con pérdidas ("casi sin pérdidas") donde el error absoluto máximo puede ser controlado por el codificador.
Actuación
- La compresión para JPEG LS es generalmente mucho más rápida que JPEG 2000 y mucho mejor que el estándar JPEG sin pérdidas original.
- La compresión para JPEG LS suele ser ligeramente peor que la de JPEG 2000, pero esto depende en gran medida del contenido de la imagen.
- La descompresión de JPEG LS suele ser mucho más rápida que la de JPEG 2000, pero esto depende de la implementación exacta del decodificador de software.
- Esta afirmación es válida para implementaciones de código abierto.
Soporte de aplicaciones
- El visor y editor de imágenes IrfanView ofrece compatibilidad total de lectura y escritura para el códec de imagen JPEG LS (extensión de archivo .jls).
- El visor y editor de imágenes XnView afirma tener la capacidad de leer archivos JPEG LS (.jls).
- Sin embargo, XnViewMP v0.98.1 no puede leer archivos JPEG LS creados por IrfanView v4.54.
- CharLS : un códec JPEG LS de código abierto.
- libjpeg de Thomas Richter : un códec JPEG LS de código abierto.
- Códec UBC JPEG LS
- Códec JPEG LS de David Clunie
- Codificador de referencia JPEG-LS de Hewlett-Packard v1.00 (enlace directo al archivo zip)
Algoritmo LOCO-I
Antes de la codificación, hay dos pasos esenciales que deben realizarse en la etapa de modelado: la decorrelación (predicción) y el modelado de errores .
Decorrelación/predicción
En el algoritmo LOCO-I, la detección primitiva de bordes horizontales o verticales se logra examinando los píxeles vecinos del píxel actual X, como se ilustra en la Fig. 3. El píxel etiquetado con B se utiliza en el caso de un borde vertical, mientras que el píxel ubicado en A se utiliza en el caso de un borde horizontal. Este predictor simple se denomina predictor de detección de bordes medianos (MED) [ 11 ] o predictor LOCO-I. El píxel X es predicho por el predictor LOCO-I de acuerdo con las siguientes suposiciones:
Los tres predictores simples se seleccionan de acuerdo con las siguientes condiciones: (1) tiende a elegir B en los casos en que existe un borde vertical a la izquierda de X, (2) A en los casos de un borde horizontal por encima de X, o (3) A + B − C si no se detecta ningún borde.
Modelado de contexto
El algoritmo JPEG LS estima las expectativas condicionales de los errores de predicción.utilizando las medias de muestra correspondientesdentro de cada contexto Ctx . El propósito del modelado de contexto es que las estructuras de orden superior, como los patrones de textura y la actividad local de la imagen, pueden ser explotadas mediante el modelado de contexto del error de predicción. Los contextos se determinan obteniendo las diferencias de las muestras vecinas que representan el gradiente local :
El gradiente local refleja el nivel de actividades como la suavidad y la arista de las muestras vecinas. Nótese que estas diferencias están estrechamente relacionadas con el comportamiento estadístico de los errores de predicción. Cada una de las diferencias encontradas en la ecuación anterior se cuantifica en regiones aproximadamente equiprobables y conectadas. Para JPEG LS, las diferencias g1, g2 y g3 se cuantifican en 9 regiones y la región se indexa de -4 a 4. El propósito de la cuantificación es maximizar la información mutua entre el valor de la muestra actual y su contexto de manera que se puedan capturar las dependencias de orden superior. Se pueden obtener los contextos basándose en la suposición de que
Después de fusionar contextos de signos tanto positivos como negativos, el número total de contextos esContextos. Se puede obtener una estimación del sesgo dividiendo los errores de predicción acumulados dentro de cada contexto por el número de ocurrencias del contexto. En el algoritmo LOCO-I, este procedimiento se modifica y mejora de manera que se reduce el número de restas y sumas. HP Labs demuestra el procedimiento de cálculo del sesgo sin divisiones. [ 12 ] El refinamiento de la predicción se puede realizar aplicando estas estimaciones en un mecanismo de retroalimentación que elimina los sesgos de predicción en diferentes contextos.
Codificación de residuos de predicción corregidos
En el modo estándar de JPEG LS, se utilizan códigos de Golomb-Rice para codificar secuencias de longitud no negativa. Su caso especial, con un valor de codificación óptimo de 2k, permite procedimientos de codificación más sencillos.
Codificación de longitud de ejecución en áreas uniformes
Dado que los códigos de Golomb-Rice son bastante ineficientes para codificar distribuciones de baja entropía porque la tasa de codificación es de al menos un bit por símbolo, puede producirse una redundancia significativa porque las regiones suaves de una imagen pueden codificarse con menos de 1 bit por símbolo. Para evitar que la longitud del código supere la entropía, se puede utilizar la extensión del alfabeto, que codifica bloques de símbolos en lugar de símbolos individuales. Esto distribuye la longitud de codificación sobrante entre muchos símbolos. Este es el modo "run" de JPEG LS y se ejecuta una vez que se detecta una región de contexto plana o suave caracterizada por gradientes cero. Se espera una secuencia del símbolo oeste "a" y el final de la secuencia ocurre cuando aparece un nuevo símbolo o se llega al final de la línea. Se codifica la longitud total de la secuencia y el codificador vuelve al modo "regular".
JPEG 2000
JPEG 2000 incluye un modo sin pérdidas basado en un filtro de ondículas enteras especial (biorthogonal 3/5). El modo sin pérdidas de JPEG 2000 es más lento y suele tener peores índices de compresión que JPEG LS en imágenes artificiales y compuestas [ 13 ] [ 14 ] , pero ofrece mejores resultados que la implementación de JPEG LS de la UBC en fotografías de cámaras digitales. [ 15 ] JPEG 2000 también es escalable, progresivo y está más ampliamente implementado.
JPEG XT
JPEG XT incluye un modo de transformación DCT de entero a entero sin pérdidas, basado en la compresión wavelet de JPEG 2000.
JPEG XL
JPEG XL incluye un modo sin pérdidas/casi sin pérdidas/adaptable llamado Modular que opcionalmente utiliza una transformada de Haar modificada (llamada "squeeze") y que también se utiliza para codificar la imagen DC (escala 1:8) en modo VarDCT, así como varias imágenes auxiliares, como campos de cuantificación adaptativa o canales adicionales como alfa . [ 16 ]
Referencias
- ↑ Murchison, Ken (4 de abril de 1999). "Soporte JPEG sin pérdidas para libjpeg" . Grupo de noticias : comp.protocols.dicom . Usenet: 372618DE.969A19D9@oceana.com . Consultado el 12 de diciembre de 2017 .
Varias personas se han interesado en mi parche que añade compatibilidad con JPEG sin pérdidas (según la especificación original, no JPEG-LS) a libjpeg v6b. He decidido poner este parche a disposición a través de mi sitio FTP.
- ↑ "JPEG – JPEG XT" . jpeg.org .
- ↑ Pennebaker, WB; Mitchell, JL (1993). Estándar de compresión de datos de imágenes fijas JPEG . Nueva York: Van Nostrand Reinhold. ISBN 978-0-442-01272-4.
- ↑ ITU-T. ISO DIS 10918-1 Compresión y codificación digital de imágenes fijas de tono continuo (JPEG). Recomendación T.81.
- ↑ Wallace, CK (1992). "El estándar de compresión de imágenes fijas JPEG". IEEE Transactions on Consumer Electronics . 38 (1): xviii– xxxiv. Bibcode : 1992ITCE...38D..18W . CiteSeerX 10.1.1.318.4292 . doi : 10.1109/30.125072 .
- ↑ "Página principal de HP Labs LOCO-I/JPEG-LS" . Hewlett-Packard Development Company. 13 de mayo de 2005. Consultado el 24 de octubre de 2011 .
- ↑ "T.87: Tecnología de la información – Compresión sin pérdidas y casi sin pérdidas de imágenes fijas de tono continuo – Línea base" . Unión Internacional de Telecomunicaciones . Consultado el 24 de octubre de 2011 .
- ↑ MJ Weinberger, G. Seroussi y G. Sapiro, “LOCO-I: Un algoritmo de compresión de imágenes sin pérdidas, basado en contexto y de baja complejidad”, en Proc. 1996 Data Compression Conference, Snowbird, UT, marzo de 1996, págs. 140–149.
- ↑ M. Weinberger, G. Seroussi y G. Sapiro, “El algoritmo de compresión de imágenes sin pérdidas LOCO-I: Principios y estandarización en JPEG-LS”, IEEE Trans. Image Processing, vol. 9, n.° 8, págs. 1309–1324, agosto de 2000, originalmente como Informe técnico de Hewlett-Packard Laboratories n.° HPL-98-193R1, noviembre de 1998, revisado en octubre de 1999. Disponible en.
- ↑ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf Archivado el 26/12/2019 en Wayback Machine Algoritmo LOCO-I
- ↑ Memon, Nasir D.; Wu, Xiaolin; Sippy, V. y Miller, G. (1997). "Extensión de codificación interbanda del nuevo estándar JPEG sin pérdidas". En Biemond, Jan y Delp III, Edward J. (eds.). Visual Communications and Image Processing '97 . Actas de SPIE. Vol. 3024. págs. 47–58 . Bibcode : 1997SPIE.3024...47M . doi : 10.1117/12.263270 . S2CID 58232715 .
- ↑ "Página principal de HP Labs LOCO-I/JPEG-LS" . Hewlett-Packard Development Company. 2009. Archivado del original el 20 de agosto de 2022.
- ↑ "Copia archivada" (PDF) . Archivado del original (PDF) el 2 de julio de 2006. Consultado el 17 de junio de 2006 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ "Copia archivada" . Archivado del original el 22/02/2007 . Consultado el 07/02/2007 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ "Punto de referencia de compresión de fotos sin pérdidas" . imagecompression.info .
- ↑ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami; Szabadka, Zoltan; Bruse, Martín; Comsa, Iulia-Maria; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gómez, Sebastián; Obryk, Robert; Potempa, Krzysztof; Rhatushnyak, Alejandro; Sneyers, Jon; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, enero (6 de septiembre de 2019). "Herramientas de codificación y arquitectura de compresión de imágenes de próxima generación JPEG XL". En Tescher, Andrew G; Ebrahimi, Touradj (eds.). Aplicaciones del Procesamiento Digital de Imágenes XLII . vol. 11137. pág. 20. Código Bib : 2019SPIE11137E..0KA . doi : 10.1117/12.2529237 . ISBN 9781510629677.
Enlaces externos
- Codificación de imágenes fijas JPEG 2000 frente a otros estándares
- JPEG2000, JPEG LS y otros códecs sin pérdida en imágenes en escala de grises
- Página principal de JPEG LS
- Página principal de LOCO-I
- Página principal de HP Labs LOCO-I/JPEG-LS
- Condiciones de licencia para la tecnología LOCO de HP en JPEG-LS (requiere registro gratuito; no se puede sublicenciar; disponible solo para empresas).
- Enlaces a diversas implementaciones
- Algoritmo de codificación JPEG LS de tono único/escala de grises
- Evaluación de JPEG-LS, IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING, VOL. 39, NO. 10, OCTUBRE DE 2001
- JPEG
- formatos de archivos gráficos
- Compresión de imágenes
- Algoritmos de compresión sin pérdidas