Al momento, poche persone ci pensanocome funziona la compressione dei file. Rispetto al passato, utilizzare un personal computer è diventato molto più semplice. E quasi tutti coloro che lavorano con il file system utilizzano gli archivi. Ma poche persone pensano a come funzionano e a come vengono compressi i file. La primissima versione di questo processo erano i codici Huffman, e sono utilizzati fino ad oggi in vari archiviatori popolari. Molti utenti non pensano nemmeno a quanto sia facile comprimere un file e come funziona. In questo articolo vedremo come si verifica la compressione, quali sfumature aiutano ad accelerare e semplificare il processo di codifica e scopriremo anche qual è il principio di costruzione di un albero di codifica.
Storia dell'algoritmo
Il primo algoritmo per la conduzione efficacela codifica delle informazioni elettroniche divenne un codice proposto da Huffman a metà del ventesimo secolo, precisamente nel 1952. È lui che al momento è l'elemento di base principale della maggior parte dei programmi creati per comprimere le informazioni. Attualmente, alcune delle fonti più popolari che utilizzano questo codice sono ZIP, ARJ, archivi RAR e molti altri.
Il principio della codifica efficiente
L'algoritmo di Huffman si basa sullo schemaconsente di sostituire i caratteri più probabili e comuni con codici binari. E quelli meno comuni vengono sostituiti con codici più lunghi. Il passaggio a codici Huffman lunghi avviene solo dopo che il sistema ha utilizzato tutti i valori minimi. Questa tecnica consente di ridurre al minimo la lunghezza del codice per ogni carattere del messaggio originale nel suo complesso.
Esempio di codice di Huffman
Per illustrare l'algoritmo, prendiversione grafica della creazione di un albero del codice. Affinché l'uso di questo metodo sia efficace, vale la pena chiarire la definizione di alcuni dei valori necessari per il concetto di questo metodo. L'insieme di un insieme di archi e nodi diretti da nodo a nodo è chiamato grafo. L'albero stesso è un grafico con un insieme di proprietà specifiche:
- ogni nodo non può includere più di uno degli archi;
- uno dei nodi deve essere la radice dell'albero, cioè gli archi non devono assolutamente entrarvi;
- se inizi a muoverti lungo gli archi dalla radice, questo processo dovrebbe consentirti di raggiungere assolutamente uno qualsiasi dei nodi.
Algoritmo di costruzione di alberi di Huffman
La creazione di un codice Huffman viene eseguita dalle lettereinserire l'alfabeto. Viene creato un elenco di quei nodi che sono liberi nel futuro albero del codice. Il peso di ogni nodo in questo elenco dovrebbe essere lo stesso della probabilità di occorrenza della lettera del messaggio corrispondente a quel nodo. In questo caso, tra diversi nodi liberi dell'albero futuro, viene selezionato quello che pesa di meno. Inoltre, se gli indicatori minimi vengono osservati in più nodi, è possibile scegliere liberamente una delle coppie.
Miglioramento dell'efficienza di compressione
Per migliorare l'efficienza di compressione, è necessarioQuando si crea un albero del codice, utilizzare tutti i dati relativi alla probabilità che le lettere appaiano in un particolare file allegato all'albero e non consentire che vengano disperse su un numero elevato di documenti di testo. Se si scorre prima questo file, è possibile calcolare immediatamente le statistiche sulla frequenza con cui vengono trovate le lettere dell'oggetto da comprimere.
Accelera il processo di compressione
Per velocizzare l'algoritmo, identificare le letteredovrebbe essere eseguito non in base agli indicatori della probabilità di comparsa di una particolare lettera, ma in base alla frequenza della sua comparsa. Questo rende l'algoritmo più semplice e molto più veloce con cui lavorare. Inoltre evita le operazioni di divisione e virgola mobile.
conclusione
Codici Huffman: semplici e consolidatiun algoritmo che è ancora utilizzato da molti noti programmi e aziende. La sua semplicità e chiarezza consentono di ottenere risultati efficaci di compressione di file di qualsiasi dimensione e di ridurre notevolmente lo spazio su disco di archiviazione. In altre parole, l'algoritmo di Huffman è uno schema studiato ed elaborato a lungo, la cui rilevanza non diminuisce fino ad oggi.