Laboratorio de compresión
Comparar LZ77, Huffman y la codificación por rachas, examinar los pasos y decodificar el resultado.
About this tool
Compara cómo las subcadenas repetidas, las frecuencias y las rachas largas afectan a la compresión sin pérdida. Elige un ejemplo o introduce texto y pulsa Comparar. Cambiar el texto descarta el resultado anterior; las pestañas examinan la misma entrada calculada.
La comparación usa el tamaño UTF-8 y estimaciones simplificadas de bits. Menos del 100 % significa más pequeño; más del 100 %, más grande. Huffman incluye su diccionario: un texto corto puede crecer pese a pocos datos. Son formatos didácticos, no archivos ZIP, gzip o DEFLATE.
LZ77 busca entre los 32 símbolos Unicode anteriores y examina hasta 16 por delante. Las coincidencias de al menos tres símbolos se representan como distancia/longitud/símbolo siguiente; se permiten copias solapadas. Las posiciones empiezan en cero. Un literal cuesta un bit de bandera y sus bytes UTF-8; una copia cuesta 11 bits de control y el posible símbolo siguiente.
Huffman combina los dos nodos menos frecuentes. Las aristas 0 y 1 forman los códigos prefijo mostrados. Un único símbolo recibe el código 0. La estimación añade 32 bits para el número de entradas y, por símbolo, los bytes UTF-8 más 16 bits de longitud. Estas longitudes permiten reconstruir códigos canónicos; el árbol puede mostrar otras palabras de igual longitud. Se excluyen el marco del archivo y el relleno de bytes.
RLE agrupa símbolos iguales consecutivos: 16 bits por cantidad y los bytes UTF-8 del símbolo. ABABABA produce en LZ77 A, B y una copia de cinco símbolos a distancia dos: 29 bits estimados frente a 56 bits de entrada. Sus siete rachas RLE cuestan 168 bits. Texto decodificado muestra la reconstrucción real.
Se aceptan hasta 1024 puntos de código Unicode y 64 símbolos distintos. Las marcas combinadas cuentan por separado, no como grafemas. ⎵ indica espacio, \n salto de línea y \t tabulación; otros controles usan U+. Las tablas y el árbol se desplazan localmente. Sin subidas ni texto guardado. LZ77 usa una ventana fija; Huffman ordena una lista para este alfabeto pequeño.