¿Cuáles son los algoritmos clásicos de compresión sin pérdidas en lenguaje C?
Algoritmo de Huffman:
La codificación de Huffman es un algoritmo de codificación desarrollado por David A. Huffman para satisfacer un algoritmo de codificación inventado en 1952.
El algoritmo de Huffman utiliza información de frecuencia para construir un árbol binario. Las frecuencias altas están cerca del nodo raíz (longitud de codificación corta) y las frecuencias bajas están lejos del nodo raíz (longitud de codificación larga). El método de construcción es ordenar las letras de menor a mayor en frecuencia, luego seleccionar continuamente los dos nodos con los pesos más pequeños sin nodos principales, construir un nuevo nodo principal y agregar el valor del nodo principal a los valores de estos dos nodos. hasta que se construye un árbol binario.
Algoritmo LZ:
El algoritmo LZ y sus algoritmos de deformación derivados son una familia de algoritmos de compresión. Los algoritmos LZ77 y LZ78 fueron creados en 1977 y 1978 respectivamente. Aunque los nombres son similares, los enfoques algorítmicos son completamente diferentes. Esta serie de algoritmos es adecuada principalmente para información con un número limitado de letras, como texto, código fuente, etc. Las imágenes en formato GIF y PNG actualmente populares utilizan un espacio de color con un número limitado de colores, y estos dos algoritmos se comprimen mediante la aplicación de deformaciones flexibles.