Aquí hay un desglose de cómo funciona la codificación de píxeles y los diferentes enfoques:
Idea básica: El objetivo fundamental es representar los datos de píxeles con menos bits que la representación original sin comprimir (por ejemplo, 24 bits por píxel para una imagen de color verdadero). Esto se logra explotando redundancias y patrones en los datos de píxeles.
Técnicas de codificación de píxeles comunes:
* codificación de longitud de ejecución (RLE): Esta es una técnica simple efectiva para imágenes con grandes áreas de color uniforme. Reemplaza secuencias de píxeles idénticos con un solo valor que indica el valor de píxel y la longitud de la ejecución. Por ejemplo, "AAAAAAABBBCC" se convierte en "A6B3C2". Es altamente efectivo para gráficos o imágenes simples con muchas regiones sólidas, pero menos efectivo para imágenes complejas con muchos detalles y variaciones.
* Codificación de entropía (codificación de Huffman, codificación aritmética): Estas técnicas asignan códigos más cortos a valores de píxeles que ocurren con mayor frecuencia y códigos más largos a los menos frecuentes. Aprovechan la distribución estadística de los valores de píxeles en la imagen para lograr la compresión. La codificación de Huffman utiliza códigos de longitud variable basados en una tabla de código sin prefijo, mientras que la codificación aritmética representa la secuencia completa de símbolos como un número fraccional único. Ambos son muy efectivos para reducir el tamaño del archivo.
* Cuantización: Esto implica reducir el número de valores de píxeles posibles. En lugar de representar cada píxel con, digamos, 256 niveles de gris (8 bits), podría representarse con menos niveles (por ejemplo, 16 niveles, usando solo 4 bits). Esto reduce la precisión de la imagen pero logra una compresión significativa. La cuantización se usa comúnmente junto con otras técnicas de compresión. La pérdida de precisión contribuye a la compresión con pérdida.
* Codificación predictiva: Este enfoque predice el valor de un píxel basado en los valores de los píxeles vecinos. Solo se codifica la diferencia (error de predicción) entre el valor de píxel real y el valor predicho, lo que reduce la cantidad de datos necesarios para representar la imagen. La modulación del código de pulso diferencial (DPCM) es una forma común de codificación predictiva.
Relación con otros métodos de compresión:
La codificación de píxeles a menudo no se usa solo. Por lo general, es un paso final * después de * otras transformaciones. Por ejemplo:
* jpeg: Utiliza transformación de coseno discreta (DCT) para transformar los bloques de píxeles en coeficientes de frecuencia. Luego, la cuantización reduce la precisión de estos coeficientes, y finalmente, la codificación de entropía (Huffman o similar) se usa para codificar eficientemente los coeficientes cuantificados. Por lo tanto, la codificación de píxeles (cuantización y codificación de entropía) funciona en los datos transformados.
* png: Utiliza una combinación de filtrado (codificación predictiva) y desestima la compresión (basada en LZ77, una forma de codificación de diccionario) para comprimir los datos de la imagen sin procesar de manera más eficiente después de aplicar un método de filtrado adecuado.
En resumen, la codificación de píxeles es una familia de técnicas que manipula directamente los valores de píxeles para reducir la cantidad de datos necesarios para almacenar o transmitir una imagen. Su eficiencia depende en gran medida de las características de la imagen y a menudo se usa junto con otros métodos de compresión para resultados óptimos.