stringtranslate.com

JPEG sin pérdida

Lossless JPEG es una adición al estándar JPEG en 1993 realizada por el Joint Photographic Experts Group 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 y JPEG-LS.

Lossless JPEG 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 (causales) más cercanos (superior, izquierdo y superior izquierdo), y se utiliza codificación de entropía en el error de predicción. Las bibliotecas estándar de Independent JPEG Group no pueden codificarlo ni decodificarlo, pero Ken Murchison de Oceana Matrix Ltd. escribió un parche que amplía la biblioteca IJG para manejar JPEG sin pérdidas. [1] JPEG sin pérdida 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 se adoptó ampliamente. DNG SDK 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 operación sin pérdidas

Figura 1: modelo de codificador DPCM
Figura 2: Diagramas de bloques simplificados para el modo sin pérdidas
Figura 3: Tres muestras vecinas alrededor de la muestra a predecir

JPEG sin pérdida [3] es en realidad un modo de funcionamiento de JPEG. Este modo existe porque la forma basada en la transformada de coseno discreto (DCT) no puede garantizar que la entrada del codificador coincida exactamente con la salida del decodificador. A diferencia del modo con pérdida que se basa en DCT, el proceso de codificación sin pérdidas emplea un modelo de codificación predictivo simple llamado modulación diferencial de código de pulso (DPCM). Este es un modelo en el que las predicciones de los valores de la 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 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 entre una muestra y otra suelen ser cercanas a cero. En la Fig.1 se muestra un codificador DPCM típico. El bloque de 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 que se muestran 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 que se muestran en la siguiente tabla se puede utilizar para estimar la muestra ubicada en X. [4] Se puede utilizar cualquiera de los ocho predictores enumerados en la tabla. 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 de la tabla, cero, sólo se utiliza para codificación diferencial en el modo de funcionamiento jerárquico. Una vez que se predicen todas las muestras, las diferencias entre las muestras se pueden obtener y codificar por entropía sin pérdidas utilizando la codificación Huffman o la codificación aritmética .

Normalmente, las compresiones que utilizan el modo de funcionamiento sin pérdidas pueden alcanzar 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 se define como una opción en el estándar DNG, pero por lo demás no se usa mucho debido a la complejidad de realizar operaciones aritméticas con valores de 10, 12 o 14 bpp en sistemas integrados típicos de 32 bits. procesador y una pequeña ganancia de espacio resultante. [ cita necesaria ]

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 tonos continuos. [6] Su designación oficial es ISO-14495-1/ITU-T.87. [7] Es un algoritmo de referencia 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 de baja complejidad, sin pérdidas y casi sin pérdidas, que pudiera ofrecer una mejor eficiencia de compresión que el JPEG sin pérdidas. Se desarrolló porque en ese momento, el estándar JPEG sin pérdidas basado en codificación Huffman y otros estándares tenían un rendimiento de compresión limitado. La descorrelació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 el contrario, puede obtener una buena descorrelació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 de los residuos basada en el contexto. La mayor parte de la baja complejidad de esta técnica proviene del supuesto 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 codificador puede controlar el error absoluto máximo.

Actuación

Soporte de aplicaciones

Algoritmo LOCO-I

Antes de la codificación, hay dos pasos esenciales que se deben realizar en la etapa de modelado: descorrelación (predicción) y modelado de errores.

Descorrelació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 X actual, como se ilustra en la Fig.3. El píxel etiquetado con B se usa en el caso de un borde vertical, mientras que el píxel ubicado en A se usa en el caso de un borde horizontal. Este predictor simple se denomina predictor de detección de borde medio (MED) [11] o predictor LOCO-I. El predictor LOCO-I predice el píxel X de acuerdo con las siguientes conjeturas:

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 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 correspondientes dentro 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, puedan explotarse 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 el nerviosismo de las muestras vecinas. Observe que estas diferencias están estrechamente relacionadas con el comportamiento estadístico de los errores de predicción. Luego, 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 muestra actual y su contexto de manera que se pueden capturar las dependencias de alto orden. Se pueden obtener los contextos basándose en el supuesto de que

Después de fusionar contextos de signos positivos y negativos, el número total de contextos es contextos. Se podría obtener una estimación de sesgo dividiendo los errores de predicción acumulativos dentro de cada contexto por un recuento de ocurrencias de contexto. En el algoritmo LOCO-I, este procedimiento se modifica y mejora de modo que se reduce el número de restas y sumas. El procedimiento de cálculo del sesgo sin división se demuestra en [2]. Luego se puede refinar la predicción 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 normal de JPEG-LS, el estándar utiliza códigos Golomb-Rice , que son una forma de codificar longitudes de ejecución no negativas. Su caso especial con el valor de codificación óptimo 2 k permite procedimientos de codificación más simples.

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 velocidad de codificación es de al menos un bit por símbolo, se puede producir una redundancia significativa porque las regiones suaves de una imagen se pueden codificar a menos de 1 bit por símbolo. Para evitar un exceso de longitud de código sobre la entropía, se puede utilizar una extensión alfabética que codifique bloques de símbolos en lugar de codificar símbolos individuales. Esto distribuye el exceso de longitud de codificación entre muchos símbolos. Este es el modo de "ejecución" 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 un recorrido del símbolo oeste “a” y el final del recorrido ocurre cuando aparece un nuevo símbolo o se alcanza el final de la línea. Se codifica la longitud total y el codificador volverá al modo "normal".

JPEG 2000

JPEG 2000 incluye un modo sin pérdidas basado en un filtro wavelet entero especial (biortogonal 3/5). El modo sin pérdidas de JPEG 2000 funciona más lentamente y, a menudo, tiene peores relaciones de compresión que JPEG-LS en imágenes artificiales y compuestas [12] [13], pero funciona mejor que la implementación UBC de JPEG-LS en imágenes de cámaras digitales. [14] JPEG 2000 también es escalable, progresivo y está más ampliamente implementado. [ cita necesaria ]

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. [ cita necesaria ]

JPEG-XL

JPEG XL incluye un modo sin pérdidas/casi sin pérdidas/con capacidad de respuesta 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 varios imágenes auxiliares como campos de cuantificación adaptativos o canales adicionales como alfa . [15]

Referencias

  1. ^ Murchison, Ken (4 de abril de 1999). "Compatibilidad con JPEG sin pérdidas para libjpeg". Grupo de noticias : comp.protocols.dicom. Usenet:  [email protected] . Consultado el 12 de diciembre de 2017 . Varias personas han estado interesadas en mi parche que agrega compatibilidad con JPEG sin pérdidas (según la especificación original, no JPEG-LS) a libjpeg v6b. He decidido que este parche esté disponible a través de mi sitio ftp (ftp://ftp.oceana.com/pub/ljpeg-6b.tar.gz). {{cite newsgroup}}: Enlace externo en |quote=( ayuda )
  2. ^ "JPEG - JPEG XT". jpeg.org .
  3. ^ Pennebaker, WB y 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.
  4. ^ UIT-T. ISO DIS 10918-1 Compresión y codificación digital de imágenes fijas de tonos continuos (JPEG). Recomendación T.81.
  5. ^ Wallace, CK (1991). "El estándar de compresión de imágenes fijas JPEG". Comunicaciones de la ACM . 34 (4): 31–44. CiteSeerX 10.1.1.318.4292 . doi :10.1109/30.125072. 
  6. ^ "Página de inicio de HP Labs LOCO-I/JPEG-LS". Compañía de desarrollo Hewlett-Packard. 13 de mayo de 2005 . Consultado el 24 de octubre de 2011 .
  7. ^ "T.87: Tecnología de la información - Compresión sin pérdidas o casi sin pérdidas de imágenes fijas de tonos continuos - Línea de base". Unión Internacional de Telecomunicaciones . Consultado el 24 de octubre de 2011 .
  8. ^ 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. Conferencia sobre compresión de datos de 1996, Snowbird, UT, marzo de 1996, págs.
  9. ^ 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. Procesamiento de imágenes, vol. 9, núm. 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 [1].
  10. ^ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf Archivado el 26 de diciembre de 2019 en elalgoritmo LOCO-I de Wayback Machine
  11. ^ 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". Actas de SPIE . 3024 (47): 47–58. Código Bib : 1997SPIE.3024...47M. doi :10.1117/12.263270. S2CID  58232715.
  12. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 2 de julio de 2006 . Consultado el 17 de junio de 2006 .{{cite web}}: CS1 maint: archived copy as title (link)
  13. ^ "Copia archivada". Archivado desde el original el 22 de febrero de 2007 . Consultado el 7 de febrero de 2007 .{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^ "Punto de referencia de compresión de fotografías sin pérdidas". www.imagecompression.info .
  15. ^ 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