Zstandard en la práctica (parte 1): conceptos clave

Fuentes: Zstandard Worked Example Part 1: Concepts

Zstandard (Zstd), definido en el RFC 8478 y publicado por primera vez en 2015, es un algoritmo de compresión moderno que ofrece mejor relación de compresión y mayor velocidad que el veterano Zlib/Deflate (RFC 1950 y 1951, de 1995). Su implementación de referencia, de calidad de producción, es de código abierto y dispone además de un decodificador educativo que prioriza la claridad sobre el rendimiento, lo que facilita su estudio. El propio RFC 8478 describe el formato de archivo con claridad.

Esta entrada abre una serie de siete artículos en los que el autor desglosa, byte a byte, un archivo .zst real para aprender el formato desde dentro, ya que no encontró un ejemplo guiado de ese tipo. Como entrada usa el fragmento de Romeo y Julieta (acto II, escena II) del fichero romeo.txt, con 942 bytes. Aplicando Zstandard con los parámetros por defecto se obtiene romeo.txt.zst, de 559 bytes, el 59 % del tamaño original.

Como Zlib y a diferencia de Bzip2, Zstandard se basa en la familia de algoritmos LZ77 ideada por Lempel y Ziv. La idea central consiste en particionar los bytes de entrada en dos categorías: literales y coincidencias (también llamadas copias o referencias hacia atrás). El codificador reduce la entrada a una secuencia de operaciones de esos dos tipos; el decodificador las ejecuta y emite los bytes originales actualizando el estado interno. En el ejemplo, los 942 bytes se descomponen en 551 literales y 391 bytes de coincidencia, con los saltos de línea representados como '@' para distinguirlos visualmente de espacios y puntos. La serie continuará analizando cada parte del formato en detalle.