/ / Códigos Huffman: ejemplos, aplicaciones

Códigos Huffman: ejemplos, aplicaciones

Por el momento, pocas personas piensan en¿Cómo funciona la compresión de archivos? En comparación con el pasado, usar una computadora personal se ha vuelto mucho más fácil. Y casi todas las personas que trabajan con el sistema de archivos usan archivos. Pero pocas personas piensan en cómo funcionan y por qué principio se produce la compresión de archivos. Los códigos de Huffman se convirtieron en la primera versión de este proceso, y todavía se usan en varios archivadores populares. Muchos usuarios ni siquiera piensan en lo simple que es la compresión de archivos y en qué esquema funciona. En este artículo, consideraremos cómo se produce la compresión, qué matices ayudan a acelerar y simplificar el proceso de codificación, y también entenderemos cuál es el principio de construir un árbol de codificación.

Algoritmo Historia

El primer algoritmo para llevar a cabo eficazLa codificación de información electrónica fue el código propuesto por Huffman a mediados del siglo XX, es decir, en 1952. Es él quien en este momento es el principal elemento básico de la mayoría de los programas diseñados para comprimir información. Actualmente, una de las fuentes más populares que utilizan este código son ZIP, ARJ, RAR y muchos otros.

códigos huffman
Este algoritmo de Huffman también se usa paraCompresión de imágenes JPEG y otros objetos gráficos. Bueno, todos los faxes modernos también usan codificación, inventada en 1952. A pesar del hecho de que ha pasado tanto tiempo desde la creación del código, hasta el día de hoy se utiliza en las más recientes shells y en equipos de los tipos antiguos y modernos.

El principio de codificación efectiva

В основу алгоритма по Хаффману входит схема, lo que le permite reemplazar los caracteres más comunes y más probables con códigos de sistema binarios. Y los que son menos comunes se reemplazan con códigos más largos. La transición a códigos largos de Huffman ocurre solo después de que el sistema usa todos los valores mínimos. Esta técnica le permite minimizar la longitud del código para cada carácter del mensaje original como un todo.

algoritmo de huffman
Важным моментом является то, что в начале La codificación de la probabilidad de aparición de letras ya debería ser conocida. De ellos se compilará el mensaje final. En base a estos datos, se está construyendo el árbol de códigos de Huffman, sobre la base del cual se llevará a cabo el proceso de codificación de letras en el archivo.

Ejemplo de código de Huffman

Para ilustrar el algoritmo, tomeVersión gráfica de la construcción del árbol de códigos. Para utilizar este método para que sea efectivo, vale la pena aclarar la definición de algunos valores necesarios para el concepto de este método. El conjunto de muchos arcos y nodos que se dirigen de nodo a nodo se llama gráfico. El árbol en sí es un gráfico con un conjunto de propiedades específicas:

  • cada nodo puede incluir no más de uno de los arcos;
  • uno de los nodos debe ser la raíz del árbol, es decir, no debe incluir arcos en absoluto;
  • Si comienza a moverse a lo largo de arcos desde la raíz, este proceso debería permitirle llegar a cualquiera de los nodos.

ejemplo de código huffman
Существует также такое понятие, входящее в коды Huffman es como la hoja de un árbol. Es un nodo del cual no deben salir arcos. Si dos arcos están conectados por un arco, uno de ellos es un padre, el otro es un hijo, dependiendo del nodo desde el que sale el arco y hacia el que ingresa. Si dos nodos tienen el mismo nodo padre, generalmente se denominan nodos hermanos. Si, además de las hojas, emergen varios arcos en los nodos, entonces este árbol se llama binario. Así es el árbol Huffman. Una característica de los nodos de esta construcción es que el peso de cada padre es igual a la suma del peso de todos sus hijos nodales.

Algoritmo del árbol Huffman

El código de Huffman está hecho de letrasAlfabeto de entrada. Se forma una lista de los nodos que están libres en el árbol de código futuro. El peso de cada nodo en esta lista debe ser el mismo que la probabilidad de aparición de una letra de mensaje correspondiente a este nodo. Además, entre los pocos nodos libres del árbol futuro, se selecciona el que pesa menos. Además, si se observan los indicadores mínimos en varios nodos, puede elegir libremente cualquiera de los pares.

construyendo un código huffman
Después de lo cual la creación del padrenodo, que debería pesar tanto como la suma de este par de nodos. Después de eso, el padre se envía a la lista con nodos libres, y los hijos se eliminan. En este caso, los arcos obtienen los indicadores, unidades y ceros correspondientes. Este proceso se repite exactamente el tiempo necesario para dejar solo un nodo. Luego, los dígitos binarios se escriben en la dirección de arriba a abajo.

Aumentar la eficiencia de compresión

Чтобы повысить эффективность сжатия, нужно во Es hora de construir el árbol de códigos para utilizar todos los datos sobre la probabilidad de que aparezcan letras en un archivo particular adjunto al árbol y no permitir que se distribuyan en una gran cantidad de documentos de texto. Si primero revisa este archivo, puede calcular inmediatamente las estadísticas de la frecuencia con la que se encuentran las letras del objeto a comprimir.

Acelerar el proceso de compresión

Para acelerar el algoritmo, la definición de letrases necesario llevar a cabo no mediante indicadores de la probabilidad de aparición de una letra, sino por la frecuencia de su aparición. Gracias a esto, el algoritmo se vuelve más simple y el trabajo con él se acelera significativamente. Esto también evita operaciones de coma flotante y división.

código dinámico de huffman
Además, trabajando en este modo, dinámicoel código Huffman, o más bien el algoritmo en sí, no está sujeto a ningún cambio. Esto se debe principalmente al hecho de que las probabilidades son directamente proporcionales a las frecuencias. Vale la pena prestar especial atención al hecho de que el peso final del archivo o el llamado nodo raíz será igual a la suma del número de letras en el objeto a procesar.

Conclusión

Códigos Huffman - Simple y de larga creaciónUn algoritmo que todavía utilizan muchos programas y empresas conocidos. Su simplicidad y comprensión hacen posible lograr resultados efectivos de compresión de archivos de cualquier tamaño y reducen significativamente el espacio que ocupan en el disco de almacenamiento. En otras palabras, el algoritmo de Huffman es un esquema estudiado y desarrollado durante mucho tiempo, cuya relevancia no disminuye hasta nuestros días.

Codificación Huffman
Y gracias a la capacidad de reducir el tamaño del archivo,su transmisión a través de la red o de otras formas se vuelve más fácil, más rápida y más conveniente. Al trabajar con el algoritmo, puede comprimir absolutamente cualquier información sin dañar su estructura y calidad, pero con el máximo efecto de reducir el peso del archivo. En otras palabras, la codificación de Huffman ha sido y sigue siendo el método más popular y relevante para comprimir el tamaño del archivo.

Me gustó:
0
Publicaciones populares
Desarrollo Espiritual
Comida
yup