Lempel-Ziv

Es muy popular. Lo podemos encontrar usado en UNIX por la orden compress y la utilidad de MSDOS arc. El factor de compresión medio es 2 en un fichero largo: reducción del 50% (para almacenar o transmitir es bueno).
La idea básica es no repetir trozos de texto, sino indicar la localización de inicio de la primera instancia de ese texto y la longitud.

  • Si este capítulo comenzara con “Es muy popular” se sustituiría el principio de esta página con {1,14}.

Para sustituir un texto dado se busca en todo el texto la cadena más larga que coincide con la que vamos a sustituir.

  • Si “Es muy popular. Lo podemos ...” está antes en el texto (posición 200) se sustituye por {200,26}.

El puntero y el indicador ocupan menos que el texto. La eficiencia aumenta con la longitud del texto (pues existen cadenas más largas repetidas).

  • “the other one is the oldest” the o{1,3}r{4,2}n{3,2}is{3,1}{1,5}ld{3,1}{16,1}{1,1}

Las implementaciones reales difieren un poco para hacerlo fácil de codificar al coste de que comprima un poco menos. En lugar de buscar en todo el texto la secuencia más larga que encaja se mantiene un diccionario con las cadenas ya encontradas. Se busca en el diccionario la cadena más larga que encaja y se añade a él las cadenas más largas cuando se encuentran.

   
../Compresión de datos/Lempel Ziv