WikiDer > Datenkomprimierung

Datacompressie

Datenkompression ist zu vertreten DigitalDaten mit weniger Bits als die ursprüngliche Darstellung. Dieser Artikel würde beispielsweise weniger Platz beanspruchen, wenn wir überall das Wort "comp" statt "compression" schreiben könnten. Dadurch könnte es beispielsweise schneller über ein Netzwerk gesendet werden.

Das Komprimieren von Daten ist nützlich, da es hilft, Ressourcen zu verkleinern und dadurch eine höhere Speicherkapazität oder Übertragungskapazität bereitzustellen. Die gleiche Datenmenge kann in weniger Bytes gesendet und gespeichert werden. Komprimierte Daten müssen zuerst extrahiert werden, was Zeit und Rechenleistung erfordert. Dies erfordert einen Kompromiss zwischen Platzersparnis und Zeitverlust.

Es gibt zwei Formen der Datenkomprimierung; Hardware- und Software. Die Hardwarekomprimierung wird von spezialisierten Geräten durchgeführt, wie beispielsweise einer dedizierten Grafikkarte. Dadurch wird die Komprimierung erheblich beschleunigt. Die Softwarekomprimierung erfolgt durch ein Computerprogramm, diese Lösung ist billiger und universeller.[1]

Arten der Datenkomprimierung

Es gibt verschiedene Arten der Datenkomprimierung:

  1. genau reversibel (Deutsch: verlustfrei, ohne Qualitätsverlust)
  2. nicht genau reversibel (Deutsch: verlustbehaftet, mit Qualitätsverlust)

Exakt reversible Kompression

Bei exakt reversibler Komprimierung ist die dekomprimierte (entpackte) Datei eine exakte Kopie der Originaldatei. Dies ist beispielsweise für Textdokumente, Tabellenkalkulationen und Datenbankdateien unerlässlich. Der Komprimierungsgrad (die Verringerung der Byteanzahl der komprimierten Datei im Vergleich zur Originaldatei) liegt in der Praxis zwischen 30% und 70%. Ein häufig verwendetes Werkzeug, um eine exakte reversible Kompression zu erreichen Wavelets.

Textdateien

Bei Textdateien kommen beispielsweise einige Buchstaben viel häufiger vor als andere (vergleiche e und q In Holländisch). Ein Kompressionsverfahren besteht daher darin, eindeutige Buchstabencodierungen unterschiedlicher Bitlängen zu wählen, wobei den gängigsten Buchstaben die kürzesten Codes zugeordnet werden. Dies ist die Grundlage der Huffman-Codierung, ein Algorithmus, der den optimalen Code für diese Methode basierend auf der Häufigkeitstabelle der Zeichen in der Datei generiert. Auch in der Morse-Code Dieses Prinzip, dass die häufigsten Buchstaben die kürzesten Codes haben, wird verwendet, obwohl die Theorie bei der Erfindung des Morsecodes nicht so formal ausgearbeitet wurde, jedoch können bei Textdateien mit anderen Algorithmen viel höhere Kompressionsraten erreicht werden. (Das Kompressionsrate ist das Verhältnis zwischen der Größe der Datei nach und vor der Komprimierung: Ein Komprimierungsverhältnis von 0,8 bedeutet, dass die komprimierte Datei 80 % der Größe der Originaldatei beträgt.)

Normaler niederländischer Text kann mit optimalen Techniken exakt reversibel auf etwa 25 bis 30 Prozent seiner ursprünglichen Größe komprimiert werden. Oft muss ein Optimum zwischen dem theoretisch möglichen Kompressionsgrad und der dafür benötigten Zeit bzw. Menge an Speicherplatz gefunden werden, wobei für die Geschwindigkeit eine etwas weniger gute Kompression ausreicht.

Bei viel Text können (lange) Wörter und Phrasen durch einen kürzeren Code ersetzt werden. Bei Anwendung wird die Komprimierung besser, je mehr Text vorhanden ist. Es kann auch eine Standard-Wortbibliothek verwendet werden, sodass nur der spezielle Code Platz benötigt.

Exakte reversible Komprimierung spart einige Dateien länger machen

Eine exakt reversible Komprimierung kann nicht alle möglichen Dateien komprimieren. Es wird auch Dateien geben, die aufgrund der verwendeten Komprimierungsmethode gleich bleiben oder größer werden. Mit anderen Worten, jeder (exakt umkehrbare) Komprimierungsalgorithmus muss notwendigerweise eine Ausgabedatei für bestimmte Eingabedateien erzeugen, die länger ist die Eingabedatei.

Das obige ist leicht mit a . zu beweisen Gegenargument. Die Anzahl der Binärdateien von bis zu Nein Bit ist endlich. Der exakte reversible Komprimierungsalgorithmus bildet diese endliche Anzahl von Dateien eindeutig auf sich selbst ab. Liegt eine kleinere Datei in komprimierter Form vor, können nicht mehr alle Dateien dieser kleineren Größe für sich allein angezeigt werden, so dass mindestens eine durch die Komprimierung größer wird.

In einer ähnlichen Weise Claude Shannon 1948 bewiesen, dass es eine Grenze ist an verlustfrei Kompression. Aus diesem Grund ist die nie realisierte "Erfindung" von Jan Slot, wo 16 zufällige Spielfilme verlustfrei in 64 Kilobyte passen würden, theoretisch unmöglich.

So jeder genau reversibler Komprimierungsalgorithmus kann eine Datei erzeugen, die länger ist die Originaldatei. Ein guter Komprimierungsalgorithmus muss daher auf die Eigenschaften wie Statistik usw. der zu komprimierenden Dateien zugeschnitten sein. Weicht die Realität von den Annahmen ab, die dem Kompressor zugrunde liegen, kann es zu großen Enttäuschungen kommen.

Sollte sich nach der Komprimierung herausstellen, dass die Ausgabedatei länger ist als die Eingabedatei, sollte natürlich auf die Komprimierung verzichtet werden. Ob die Komprimierung angewendet wurde oder nicht, wird an den Empfänger weitergegeben. Das kostet mindestens ein bisschen mehr.

Ungenaue reversible Kompression

Verlustbehaftete Kompression wird für digitale Formate verwendet, die ein analoges Signal darstellen, beispielsweise Bild und Ton.

Da das digitale Format eine Darstellung eines analogen Signals ist, ist es nicht erforderlich, das ursprüngliche digitale Signal rekonstruieren zu können, und die Anforderung, dass keine Informationen verloren gehen sollen, kann entfallen. Dadurch ist eine viel höhere Komprimierung möglich, ohne dass der Zuschauer oder Hörer nur das rekonstruierte analoge Signal wahrnimmt und merkt, dass das Original nicht mit dem wieder dekomprimierten Signal identisch ist. Bei ungenau reversiblen Komprimierungsalgorithmen sind je nach zu komprimierenden Daten Komprimierungen von mehr als 99% möglich, sodass die komprimierte Datei eine Größe hat, die kleiner als 1% der Größe der unkomprimierten Datei ist.

Häufig verwendete nicht umkehrbare Komprimierungsalgorithmen sind:

Methodik

Beispiel von Lauflängenkodierung.

Die Datenkompression entfernt das sogenannte Redundanz (wörtl.: „Redundanz“) der in Dateien enthaltenen Informationen. Dateien mit mehr Nullen als Einsen oder mehr Einsen als Nullen weisen beispielsweise Redundanz auf, die durch Komprimierung entfernt werden kann. Eine komprimierte Datei weist bei erfolgreicher Komprimierung wenig oder keine Redundanz auf. Aus diesem Grund ist es oft wenig sinnvoll, eine Komprimierung mit der Erwartung zu wiederholen, dass die Datei noch weiter komprimiert wird. Komprimierung beliebiger Daten (z. B. Zahlen aus einem idealen Zufallsgenerator) und daher nicht redundant, ist nicht möglich. Für eine gute Wahl des Kompressionsalgorithmus (Codec) ist es sehr wichtig, die Art der zu komprimierenden Dateien zu kennen, sonst besteht eine gute Chance, dass wir am Ende eine längere 'komprimierte' Datei erhalten.

Der Erfolg der Komprimierung hängt von der internen Struktur der Informationen ab. Sich wiederholende Muster lassen sich im Allgemeinen leichter komprimieren, während Dateien, bei denen bereits eine Komprimierung vorgenommen wurde, nicht oder kaum weiter komprimiert werden können. Letzteres ist beispielsweise bei vielen digitalen Medien der Fall, wie z MP3, JPEG und verschiedene Videoformate.

Einige gute Komprimierungsmethoden sollten nicht von jedem verwendet werden, da es eine Patent im Ruhezustand.

Anwendungen

Heutzutage wird die Datenkomprimierung für verschiedene Anwendungen verwendet, wie zum Beispiel:

Algorithmen

Es gibt verschiedene Algorithmen zur Datenkompression, zum Beispiel:

Programme

sehen Liste der Datenkomprimierungssoftware für den Hauptartikel zu diesem Thema.

Viele Leute arbeiten mit Datenkomprimierung und verwenden allgemeine Komprimierungsprogramme. Bekannte Beispiele hierfür sind:

Siehe auch

Externe Links