Huffman-Codes: Beispiele, Anwendungen
Im Moment denken nur wenige Leute darüber nach,wie funktioniert die Komprimierung? Im Vergleich zu früher ist die Verwendung eines Personal Computers viel einfacher geworden. Und praktisch jede Person, die mit dem Dateisystem arbeitet, benutzt Archive. Aber nur wenige denken darüber nach, wie sie funktionieren und nach welchem Prinzip sie Dateien komprimieren. Die allererste Version dieses Prozesses waren die Huffman-Codes, und sie werden immer noch in verschiedenen populären Archivern verwendet. Viele Benutzer denken nicht einmal darüber nach, wie einfach es ist, die Datei zu komprimieren und nach welchem Schema sie funktioniert. In diesem Artikel werden wir uns ansehen, wie die Komprimierung durchgeführt wird, welche Nuancen dazu beitragen, den Enkodierungsprozess zu beschleunigen und zu vereinfachen, und wir werden herausfinden, was das Prinzip des Aufbaus eines Kodierungsbaums ist.
Geschichte des Algorithmus
Der allererste Algorithmus für eine effektiveKodierung elektronischer Information war der von Huffman in der Mitte des zwanzigsten Jahrhunderts, nämlich 1952, vorgeschlagene Code. Es ist derzeit das wichtigste Grundelement der meisten Programme, die zum Komprimieren von Informationen erstellt wurden. Im Moment sind eine der beliebtesten Quellen, die diesen Code verwenden, ZIP-, ARJ-, RAR-Archive und viele andere.
Das Prinzip der effizienten Codierung
Die Grundlage für den Huffman-Algorithmus ist ein Schema,Es erlaubt, die wahrscheinlichsten, am häufigsten vorkommenden Symbole durch Codes eines binären Systems zu ersetzen. Und diejenigen, die weniger häufig sind, werden durch längere Codes ersetzt. Der Übergang zu langen Huffman-Codes erfolgt erst, nachdem das System alle Mindestwerte verwendet hat. Mit dieser Technik können Sie die Länge des Codes für jedes Zeichen der ursprünglichen Nachricht als Ganzes minimieren.
Huffmans Code, Beispiel
Um den Algorithmus zu veranschaulichen, nehmen wir aneine grafische Version des Aufbaus eines Codebaums. Um diese Methode effektiv zu nutzen, lohnt es sich, die Definition einiger für das Konzept dieser Methode notwendiger Werte zu klären. Die Gruppe von Bögen und Knoten, die von Knoten zu Knoten gerichtet sind, wird üblicherweise als Graph bezeichnet. Der Baum selbst ist ein Graph mit einer Reihe bestimmter Eigenschaften:
- in jedem Knoten kann nicht mehr als einer der Bögen eingeben;
- einer der Knoten muss die Wurzel des Baumes sein, dh kein Bogen sollte überhaupt in ihn eintreten;
- Wenn von der Wurzel ausgehend, sich entlang von Bögen zu bewegen, sollte dieser Prozess es erlauben, vollständig in irgendeinen der Knoten zu gelangen.
Algorithmus zum Konstruieren eines Baumes nach Huffman
Die Konstruktion des Huffman-Codes besteht aus Buchstabendes eingegebenen Alphabets. Eine Liste der Knoten, die in der zukünftigen Codebaumstruktur frei sind, wird erstellt. Das Gewicht jedes Knotens in dieser Liste sollte mit der Wahrscheinlichkeit des Auftretens des Buchstabens der Nachricht übereinstimmen, die diesem Knoten entspricht. In diesem Fall wird unter den wenigen freien Knoten des zukünftigen Baums derjenige gewählt, der am wenigsten belastet. Wenn gleichzeitig die minimalen Indikatoren in mehreren Knoten beobachtet werden, ist es möglich, jedes der Paare frei zu wählen.
Verbesserung der Kompressionseffizienz
Um die Kompressionseffizienz zu erhöhen, ist es notwendig,die Zeit für den Aufbau eines Codebaums, um alle Daten bezüglich der Wahrscheinlichkeit zu verwenden, dass Buchstaben in einer bestimmten Datei erscheinen, die an einen Baum angehängt ist, und nicht zulassen, dass sie über eine große Anzahl von Textdokumenten verstreut sind. Wenn Sie diese Datei zum ersten Mal durchgehen, können Sie sofort die Statistik berechnen, wie oft Buchstaben von einem zu komprimierenden Objekt auftreten.
Beschleunigung des Komprimierungsprozesses
Um den Algorithmus zu beschleunigen, die Definition von BuchstabenEs ist nötig, nicht nach den Kennziffern der Wahrscheinlichkeit des Entstehens dieses oder jenes Briefes, und nach der Frequenz seines Erscheinens durchzuführen. Dank dessen wird der Algorithmus einfacher und die Arbeit damit wird erheblich beschleunigt. Dies vermeidet auch die Operationen, die mit Fließkommas und Division verbunden sind.
Fazit
Huffmans Codes - einfach und altbewährtAlgorithmus, der immer noch von vielen bekannten Programmen und Firmen verwendet wird. Seine Einfachheit und Klarheit erlaubt, effektive Ergebnisse der Komprimierung von Dateien beliebiger Volumes zu erzielen und den von ihnen belegten Speicherplatz auf der Speicherplatte erheblich zu reduzieren. Mit anderen Worten, der Huffman-Algorithmus ist ein lange untersuchtes und gut durchdachtes Schema, dessen Relevanz bis heute nicht abnimmt.