Che cosa è codifica di Huffman?

January 29

Codifica di Huffman - conosciuto anche come Huffman codifica, o la compressione Huffman - è un algoritmo, o un insieme di regole, per la compressione senza perdita di dati sviluppato da David Albert Hoffman nel 1952. Lossless compressione dei dati comporta la codifica dei dati per risparmiare spazio di archiviazione o tempo di trasmissione in modo tale che tutte le informazioni nei dati può essere recuperato perfettamente da decompressione.

Codifica di statistica

codifica Huffman è un metodo di codifica statistica. La frequenza con cui ogni simbolo si verifica nel file viene compresso determina il modo in cui simbolo è rappresentato. In qualsiasi tipo di file, alcuni simboli o caratteri, si verificano più frequentemente di altri. In codifica Huffman, si verifica il simbolo più frequentemente, le cifre binarie meno, o "bit", vengono utilizzati per rappresentare il simbolo.

ASCII contro codifica di Huffman

In American Standard Code for Information Interchange (ASCII) codifica, che viene utilizzato da alcuni linguaggi di programmazione, ogni carattere è codificato con un codice a lunghezza fissa con 7 o 8 bit per carattere. I personaggi comuni, come caratteri alfanumerici e punteggiatura, uso di 7 bit per carattere. codifica Huffman, invece, assegna codici brevi per caratteri utilizzati di frequente e codici lunghi per i caratteri meno utilizzate per ridurre la dimensione del file viene compresso.

Binary Huffman Albero

Codifica di Huffman in sostanza prevede la costruzione di un singolo albero binario da un gruppo, o foresta, di alberi. Inizialmente, tutti gli alberi hanno un singolo nodo, con un carattere e il peso del personaggio, in base al numero di volte che il carattere si verifica in un file. Il più spesso si verifica un carattere, maggiore il suo peso. Gli alberi, o nodi, sono ordinati in peso e le due alberi disponibilità ponderati sono combinati in un unico albero, riducendo il numero totale di alberi di uno. Questo processo viene ripetuto finché solo binario resti albero di Huffman, con un unico elemento alla radice. codifica Huffman utilizza i due nodi più piccoli in ogni passaggio per produrre un albero codifica globalmente ottimale. Per questo motivo è conosciuto come un algoritmo "greedy".

codice Huffman

Per generare un codice di Huffman, trovare il valore desiderato nella albero binario Huffman e attraversare l'albero all'indietro. Questo processo si basa la stringa Huffman binaria. Ogni volta che si prende un ramo di sinistra, l'uscita a "0" bit e ogni volta che si prende un ramo di destra, l'uscita di un "1" bit fino a raggiungere la cima dell'albero, così appare il primo bit nella stringa in cima.