De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

JPEG sin pérdidas es una adición de 1993 al estándar JPEG del 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érdida desarrollados por el grupo, incluidos JPEG 2000 y JPEG-LS.

JPEG sin pérdida se desarrolló como una adición tardía a JPEG en 1993, utilizando una técnica completamente diferente del estándar JPEG con pérdida. Utiliza un esquema predictivo basado en los tres vecinos más cercanos (causales) (superior, izquierda y superior izquierda), y la codificación de entropía se utiliza 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 las imágenes médicas y se utiliza en DNG y algunas cámaras digitales para comprimir imágenes en bruto, pero por lo demás nunca se adoptó ampliamente. Adobe 's DNG SDK proporciona una biblioteca de software para codificar y decodificar JPEG sin pérdidas con hasta 16 bits por muestra.

ISO / IEC Joint Photography Experts Group mantiene una implementación de software de referencia que puede codificar 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). [2]

Modo de funcionamiento sin pérdidas [ editar ]

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 discreta (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 el 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 impulsos.(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 arriba 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. En la figura 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 previa.

Los pasos principales del modo de funcionamiento sin pérdidas se muestran en la figura 2. En el proceso, el predictor combina hasta tres muestras vecinas en A, B y C que se muestran en la figura 3 para producir una predicción del valor de la muestra en la posición etiquetada con X. Las tres muestras vecinas deben ser muestras ya codificadas. . Cualquiera de los predictores que se muestran en la tabla siguiente 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, solo se utiliza para la 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 entropía sin pérdidas utilizando la codificación de 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 aritmética en valores de 10, 12 o 14 bpp en los típicos 32 bits integrados. procesador y una pequeña ganancia de espacio resultante. [ cita requerida ]

JPEG-LS [ editar ]

Descripción general [ editar ]

JPEG-LS es un estándar de compresión sin pérdida / casi sin pérdida para imágenes de tono continuo. [6] Su designación oficial es ISO-14495-1 / ITU-T.87. [7] Es un algoritmo de línea de 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 podría ofrecer una mejor eficiencia de compresión que JPEG sin pérdidas. Fue desarrollado porque en ese momento, el estándar sin pérdidas JPEG basado en codificación de Huffman y otros estándares tenían un rendimiento de compresión limitado. Descorrelación totalno puede lograrse 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 descorrelación. [8] [9] La Parte 1 de esta norma 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 de dos lados (también llamada distribución discreta de Laplace ) y del uso de Golomb-como códigos, 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") en el que el codificador puede controlar el error absoluto máximo.

Rendimiento [ editar ]

  • 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érdida original.
  • La compresión para JPEG-LS es generalmente un poco peor que JPEG 2000, pero esto depende en gran medida del contenido de la imagen.
  • La descompresión para JPEG-LS es generalmente mucho más rápida que JPEG 2000, pero esto depende de las implementaciones exactas del decodificador de software.
    • Esta declaración es válida para implementaciones de código abierto.

Soporte de aplicaciones [ editar ]

  • El visor y editor de imágenes IrfanView tiene soporte completo 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 Hewlett-Packard JPEG-LS v1.00
    • Nota: Enlace directo al archivo.

Algoritmo LOCO-I [ editar ]

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

Descorrelación / predicción [ editar ]

En el algoritmo LOCO-I, la detección de bordes primitivos de bordes horizontales o verticales se logra examinando los píxeles vecinos del píxel X actual, como se ilustra en la figura 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 sencillo predictor 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 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 la 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 [ editar ]

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 tales como suavidad y nerviosismo de las muestras vecinas. Tenga en cuenta 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 luego en regiones conectadas y equiprobables aproximadamente. 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 pueden capturar las dependencias de orden superior. Se pueden obtener los contextos partiendo del supuesto de que

Después de fusionar contextos de signos tanto positivos como negativos, el número total de contextos son contextos. Se podría obtener una estimación de sesgo dividiendo los errores de predicción acumulados dentro de cada contexto por un recuento de ocurrencias de contexto. En el algoritmo LOCO-I, este procedimiento se modifica y mejora de manera que se reduce el número de restas y adiciones. El procedimiento de cálculo de sesgo sin división se demuestra en [2] . 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 [ editar ]

En el modo regular 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.

Ejecute la codificación de longitud en áreas uniformes [ editar ]

Dado que los códigos Golomb-Rice son bastante ineficaces para codificar distribuciones de baja entropía porque la tasa de codificación es de al menos un bit por símbolo, se puede producir una redundancia significativa porque las regiones suaves en una imagen se pueden codificar a menos de 1 bit por símbolo. Para evitar tener una longitud de código excesiva sobre la entropía, se puede usar la extensión del alfabeto que codifica 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 cero gradientes. Se espera un recorrido del símbolo "a" del oeste y el final del recorrido se produce cuando aparece un nuevo símbolo o se alcanza el final de la línea. La ejecución total de la longitud está codificada y el codificador volvería al modo "normal".

JPEG 2000 [ editar ]

JPEG 2000 incluye un modo sin pérdidas basado en un filtro de ondículas de enteros especiales (biortogonal 3/5). El modo sin pérdida de JPEG 2000 se ejecuta 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 más implementado. [ cita requerida ]

JPEG XT [ editar ]

JPEG XT incluye un modo de transformación DCT de entero a entero sin pérdidas basado en la compresión de ondículas de JPEG 2000.

Referencias [ editar ]

  1. ^ Murchison, Ken (4 de abril de 1999). "Soporte JPEG sin pérdida para libjpeg" . Grupo de noticias :  comp.protocols.dicom . Usenet:  [email protected] . Consultado el 12 de diciembre de 2017 . Varias personas se han interesado 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 ).
  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 tono continuo (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 de 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érdida y casi sin pérdida de imágenes fijas de tono continuo - 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 el contexto y de baja complejidad", en Proc. Conferencia de compresión de datos de 1996, Snowbird, UT, marzo de 1996, págs. 140-149.
  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, no. 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 Algoritmo LOCO-I
  11. ^ Memon, Nasir D .; Wu, Xiaolin; Sippy, V. y Miller, G. (1997). "Extensión de codificación entre bandas del nuevo estándar JPEG sin pérdidas". Procedimientos de SPIE . 3024 (47): 47–58. Código Bibliográfico : 1997SPIE.3024 ... 47M . doi : 10.1117 / 12.263270 .
  12. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 2 de julio de 2006 . Consultado el 17 de junio de 2006 . 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 .CS1 maint: archived copy as title (link)
  14. ^ "Benchmark de compresión de fotos sin pérdida" . www.imagecompression.info .

Enlaces externos [ editar ]

  • 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 de inicio de JPEG-LS
  • Página de inicio de LOCO-I
  • Página de inicio de HP Labs LOCO-I / JPEG-LS
  • Términos de la licencia para la tecnología LOCO de HP en JPEG-LS (se requiere registro gratuito; no se puede sublicenciar; disponible solo para empresas)
  • Enlaces a varias implementaciones
  • Algoritmo codificador JPEG-LS de tono único / escala de grises
  • Evaluación de JPEG-LS, TRANSACCIONES IEEE SOBRE GEOCIENCIA Y SENSACIÓN REMOTA, VOL. 39, NO. 10 DE OCTUBRE DE 2001