FELICS - FELICS

FELICS , que significa Fast Efficient & Lossless Image Compression System, es un algoritmo de compresión de imágenes sin pérdidas que funciona 5 veces más rápido que el códec JPEG original sin pérdidas y logra una relación de compresión similar .

Historia

Fue inventado por Paul G. Howard y Jeffrey S. Vitter del Departamento de Ciencias de la Computación de la Universidad Brown en Providence, Rhode Island, EE. UU., Y se presentó por primera vez en la Conferencia de compresión de datos IEEE de 1993 en Snowbird, Utah. Se implementó con éxito en hardware y se implementó como parte de HiRISE en el Mars Reconnaissance Orbiter.

Principio

Barrios de predicción de píxeles.

Al igual que otros códecs sin pérdida para imágenes de tono continuo, FELICS opera descorrelacionando la imagen y codificándola con un codificador de entropía . La decorrelación es el contexto donde y dónde están los dos vecinos más cercanos del píxel ( causales , ya codificados y conocidos en el decodificador) utilizados para proporcionar el contexto para codificar el píxel actual . Excepto en los bordes superior e izquierdo, estos son el píxel de arriba y el píxel de la izquierda. Por ejemplo, los vecinos del píxel X en el diagrama son A y B, pero si X estuviera en el lado izquierdo, sus vecinos serían B y D.

P se encuentra dentro del intervalo cerrado [L, H] aproximadamente la mitad del tiempo. De lo contrario, está por encima de H o por debajo de L. Estos se pueden codificar como 1, 01 y 00 respectivamente (p. 4). La siguiente figura muestra el histograma (idealizado) de los píxeles y sus valores de intensidad a lo largo del eje x, y la frecuencia de aparición a lo largo del eje y. FELICS predictor.png

La distribución de P dentro del rango [L, H] es casi uniforme con un pico menor cerca del centro de este rango. Cuando P cae en el rango [L, H], P - L se codifica usando un código binario ajustado de modo que los valores en el centro del rango usan bits de piso (log 2 (Δ + 1)) y los valores en los extremos usan ceil (log 2 (Δ + 1)) bits (pág. 2). Por ejemplo, cuando Δ = 11, los códigos para P - L en 0 a 11 pueden ser 0000, 0001, 0010, 0011, 010, 011, 100, 101, 1100, 1101, 1110, 1111.

Fuera del rango, P tiende a seguir una distribución geométrica en cada lado (pág. 3). Está codificado usando un código Rice con parámetros elegidos en base a elecciones anteriores. Para cada Δ y cada posible parámetro k del código de Rice , el algoritmo realiza un seguimiento del número total de bits que se habrían utilizado para codificar píxeles fuera del rango. Luego, para cada píxel, elige el código de Rice con el basado en Δ en el píxel.

Mejoras

Las mejoras de FELICS incluyen métodos para estimar Δ y estimar k . Por ejemplo, el artículo de Howard y Vitter reconoce que las áreas relativamente planas (con un Δ pequeño, especialmente donde L = H) pueden tener algo de ruido, y el rendimiento de compresión en estas áreas mejora al ampliar el intervalo, aumentando el Δ efectivo. También es posible estimar la k óptima para un Δ dado en base a la media de todos los residuos de predicción vistos hasta ahora, que es más rápido y usa menos memoria que calcular el número de bits usados ​​para cada k .

Ver también

Referencias