JPEG sin pérdidas


Lossless JPEG es una adición de 1993 al estándar JPEG 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 del estándar JPEG con pérdida. 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 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] Lossless JPEG tiene cierta popularidad en imágenes médicas y se usa en DNG y algunas cámaras digitales para comprimir imágenes sin procesar, pero por lo demás nunca fue ampliamente adoptado. SDK DNG de Adobe proporciona una biblioteca de software para codificar y descodificar JPEG sin pérdidas con hasta 16 bits por muestra.

El Grupo Conjunto de Expertos en Fotografía de ISO/IEC mantiene una implementación de software de referencia que puede codificar JPEG base (ISO/IEC 10918-1 y 18477-1) y extensiones JPEG XT (ISO/IEC 18477 Partes 2 y 6-9), así como JPEG-LS (ISO/IEC 14495). [2]

Lossless JPEG [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érdidas que se basa en DCT, el proceso de codificación sin pérdidas emplea un modelo de codificación predictivo simple llamado modulación de código de pulso diferencial.(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 ya la izquierda de la muestra objetivo. DPCM codifica las diferencias entre las muestras previstas 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 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 con X. Las tres muestras vecinas ya deben ser muestras 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 en la tabla, cero, solo se usa para la codificación diferencial en el modo de operación jerárquico. Una vez que se predicen todas las muestras, se pueden obtener las diferencias entre las muestras y codificarlas en entropía sin pérdidas utilizando la codificación de Huffman o la codificación aritmética .

Por lo general, las compresiones que utilizan el modo de funcionamiento 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 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 hacer cálculos aritméticos en valores de 10, 12 o 14 bpp en típicos integrados de 32 bits. procesador y una pequeña ganancia resultante en el espacio. [ cita requerida ]


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