Proyecto de formación
Compresor de Huffman
Comprimir con un árbol y volver al mismo texto
Una aplicación de escritorio que comprime texto con codificación de Huffman, dibuja el árbol con Graphviz y devuelve el archivo idéntico al descomprimir.
De qué se trata
Uno de los proyectos de Arquitectura de hardware fue un compresor de datos. DataCompressor implementa la codificación de Huffman en Python, con una interfaz de escritorio en PyQt5 y el árbol de cada archivo dibujado con Graphviz.
El formato .slo guarda el árbol junto a los datos codificados, así que el mismo programa descomprime sin otra información y el resultado coincide byte a byte con el original.
Qué hace
- Una ventana en PyQt5 donde se suelta un archivo .txt para comprimirlo o un .slo para descomprimirlo.
- Cuenta la frecuencia de cada carácter, arma el árbol de Huffman, genera los códigos y escribe el resultado en binario con el árbol dentro del archivo.
- Dibuja el árbol de cada archivo con Graphviz, y un instalador incluye los binarios de Graphviz y los agrega al PATH.
- Con un texto de 3.215.616 bytes, el .slo pesa 1.712.850 (53,3 %) y al descomprimirlo vuelve idéntico al original.
- El repositorio de la materia también tiene prácticas en ESP32 con MicroPython, simulaciones en Wokwi y ensamblador ARM en QtARMSim.
Decisiones y sus costos
Guardar el árbol dentro del archivo
Sin el árbol no hay forma de leer los códigos.
Compararlo con 7-Zip y RAR
Huffman solo acorta los caracteres frecuentes, y eso no se ve sin un punto de comparación.
Repositorios
Cada repositorio público del proyecto, con lo que contiene.
- 2024Python, MicroPython, ARM Assembly, ESP32
ARQHEngineeringSebastian-s
Arquitectura de hardware, con un compresor de Huffman, ensamblador ARM en QtARMSim y un ESP32 en Wokwi con MicroPython y un bot de Telegram.
Stack
Elige una tecnología para ver qué proyectos la usan.







