Compresión RLE (Run Length Encoding): qué es, cómo funciona

Compresión RLE (Run Length Encoding): qué es, cómo funciona

La compresión de píxeles es un método que permite almacenar píxeles de forma óptima: para una imagen monocromática hay, por definición, sólo dos colores. Por lo tanto, se puede codificar un punto de la imagen en un solo bit para ganar espacio en la memoria.

El método de compresión RLE (Run Length Encoding, a veces escrito RLC por Run Length Coding) es utilizado por muchos formatos de imagen (BMP, PCX, TIFF). Se basa en la repetición de elementos consecutivos.

El principio fundamental consiste en codificar un primer elemento al dar el número de repeticiones de un valor y después el valor que va a repetirse. Por lo tanto, según este principio, la cadena “AAAAAHHHHHHHHHHHHHH” cuando está comprimida da como resultado "5A14H". La ganancia de compresión es (19-5) / 19, es decir, aproximadamente 73,7%. Por otro lado, para la cadena "CORRECTLY", donde hay poca repetición de caracteres, el resultado de la compresión es “1C1O2R1E1C1T1L1Y”. Por lo tanto, la compresión genera un costo muy elevado y una ganancia de compresión negativa de (9-16) / 9, es decir, ¡-78%!

En realidad, la compresión RLE está regida por reglas particulares que permiten que se ejecute la compresión cuando sea necesario y que se deje la cadena como está cuando la compresión genere pérdida. Las reglas son las siguientes:

  • Si se repiten tres o más elementos consecutivamente, se utiliza el método de compresión RLE.
  • De lo contrario, se inserta un carácter de control (00) seguido del número de elementos de la cadena no comprimida y después la última.
  • Si el número de elementos de la cadena es extraño, se agrega el carácter de control (00) al final.
  • Finalmente, se definen los caracteres de control específicos según el código:
    • un final de línea (00 01)
    • el final de la imagen (00 00)
    • un desplazamiento de puntero sobre la imagen de XX columnas e YY filas en la dirección de lectura (00 02 XX YY).

Por lo tanto, no tiene sentido utilizar la compresión RLE excepto para datos con diversos elementos repetidos de forma consecutiva, en imágenes particulares con áreas grandes y uniformes. Sin embargo, la ventaja de este método es que es de fácil implementación. Existen alternativas en las que la imagen está codificada en bloques de píxeles, en filas o incluso en zigzag.

La compresión RLE
© Libre de derechos
Compresión RLE
© Libre de derechos
Compresión RLE
© Libre de derechos

Enciclopedia