Diesen Monat schreibe ich über die Datenkompression.
Ich
habe dieses Thema gewählt, weil wir es in der Schule behandelt haben,
ich es sehr interessant fand und daher auch noch etwas dazulernen
möchte.
Datenkompression
Die
Datenkompression ist ein Vorgang, bei dem die Menge der digitalen Daten
einer Datei (wie z.B. ein Bild) reduziert wird. Durch diesen Vorgang
soll der benötigte Speicherplatz minimiert und die Übertragungszeit
dadurch verkürzt werden
Grundsätzlich versucht man bei der Datenkompression immer, überflüssige Informationen zu entfernen.
Eine
verlustfreie Datenkompression liegt vor, wenn man aus den komprimierten
Daten wieder das Original gewinnen kann. Das ist vor allem bei der
Kompression ausführbarer Programmdateien der Fall.
Von
einer verlustbehafteten Kompression spricht man, wenn die Originaldaten
nicht mehr aus den komprimierten Daten zurückgewonnen werden können und somit ein Teil der Informationen verloren gegangen ist.
Die
Datenkompression findet bei jeglicher Übertragung statt. Sie dient dazu, Ressourcen bei der Übertrtagung (Bandbreite, Speicherplatz, ...) zu
sparen, indem die Daten in einer möglichst minimalen Form übertragen
werden. Allerdings ist vom Sender und Empfänger ein erheblicher
Berechnungsaufwand nötig, um wieder die ursprünglichen Daten zu
erhalten.
Kompressionsverfahren
können, abhängig von ihrer Anwendung, auf Datendurchsatz, Energiebedarf
oder Datenreduktion optimiert sein.
Zum
Beispiel ist es bei mobilen Geräten unerwünscht, Daten auf ihr Minimum
zu komprimieren, da der Aufwand (vor allem der Energiebedarf) um die
ursprünglichen Daten wiederherzustellen zu groß ist. Ebenso ist dies bei
Audio- und Video-Streams unerwünscht, um die Verzögerung gering zu
halten.
Verlustlose Kompression
Bei
der verlustlosen Kompression können aus den komprimierten Daten die
exakten Originaldaten wiederhergestellt werden. Dabei gehen keinerlei
Informationen verloren.
Im
Wesentlichen wird bei der verlustlosen Kompression die Redundanz von
Daten ausgenutzt. Dabei spricht man auch von der Redundanzreduktion.
Beispiel: Text
Die
Datei muss ein richtiger Text sein, d.h. es darf nicht ein Scan eines
Dokuments, das als Bild abgespeichert wurde, oder ähnliches sein. Dieser
Text braucht eigentlich nicht viel Speicherplatz, lässt sich aber durch
ein Verfahren auf 20% bis 10% des ursprünglichen Speicherplatzes reduzieren.
Bei
diesem Text wurde erkannt, das es die beiden Wörter "EIN" und "BEITRAG"
mehrmals gebraucht werden, deshalb wurden sie kodiert als "-4" und
"-3", was auf einen langen Text viel ausmachen kann.
Wenn man es noch genauer nimmt, könnte das "EIN" in "KLEINER" auch noch kodiert und so noch mehr Speicherplatz gespart werden.
Es gibt ein verwandtes Verfahren, bei dem häufig wiederkehrende Schlüsselwörter durch Abkürzungen ersetzt werden.
Bei
Programmdateien ist es schon kritischer, dass sie nach der
Dekomprimierung wieder im ursprünglichen Zustand sind. Wäre dies nicht
der Fall, wäre eine fehlerfrei Ausführung mit hoher Wahrscheinlichkeit
nicht möglich. Daher sind komprimierte Programmdateien meist selbst
wieder ausführbare Dateien, die das Ziel verfolgen, den Programmcode
wieder vollständig zu dekomprimieren.
Verlustbehaftete Kompression
Bei
der verlustbehafteten Kompression werden irrelevante Informationen
entfernt. Dabei geht ein Teil der Informationen aus den Originaldaten
verloren, das Original kann also aus den komprimierten Daten nicht vollständig zurückgewonnen werden.
Welcher
Anteil nun irrelevant ist, wird anhand eines Modells entschieden. Die
verlustbehaftete Kompression wird meist in der Bild-, Video- und
Audio-Übertragung eingesetzt. Als Modell liegt hier die menschliche
Wahrnehmung zugrunde.
Ein gutes Beispiel ist das Audio-Format MP3, hier werden für den Menschen nicht wahrnehmbare Frequenzen einfach weggelassen.
Bild-,
Video- , und Tonaufnahmen, sind Einsatzgebiete der verlustbehafteten
Kompression. Anders könnten die meist enormen Mengen an Daten nur sehr
schwer gehandhabt werden. Schon die Aufnahmegeräte an sich begrenzen das
Volumen der Daten. Wie bereits erwähnt, orientiert sich die Reduktion der
gespeicherten Daten an den Wahrnemungseingenschaften des Menschen.
Bei
der akkustischen Wahrnemung des Meschen werden Frequenzen oberhalb von
ungefähr 20kHz nicht mehr wahrgenommen, daher werden genau diese
Informationen bereits im Aufnahmesystem weggelassen. Auch werden
unhörbare Frequenzen (z. B. Töne, die eigentlich wahrgenommen werden
können, aber wegen anderen lauten Geräusche für den Menschen kaum hörbar sind)
weggelassen.
Bei
den Filmen muss man bedenken dass ein Film aus mehreren Bildern
besteht. Bei der Kodierung wird nun jedes Bild in kleinere Kästchen
(zwischen 4x4 und 16x16 Pixel) zerlegt und es werden dann ähnliche Kästchen
in den schon übertragenen Bildern gesucht und als Vorlage verwendet. Die
Einsparung hierbei ergibt sich daraus, dass statt des gesamten
Bildinhalts immer nur noch der Unterschied der Kästchen übertragen
werden muss.
Mit dem Programm "GIMP" kann man als Beispiel ein Bild auf 5% der originalen Qualität komprimieren, dadurch wird die Qualität zwar schlechter, das Bild braucht aber nur noch ca 3.7% des ursprünglichen Speicherplatzes.
Beispiel
Original
Qualität: 100%
Speicherbedarf: 780'831 Bytes
Komprimiert
Qualität: 5%
Speicherbedarf: 28'973 Bytes
Temporärer Speicherbedarf
Bereits
heute gibt es Verfahren, die sehr gute Werte bei der Kompression
erzielen. Meist geschieht dies aber wie schon vorher kurz erwähnt auf Kosten eines enormen temporären Speicherbedarfs (Arbeitsspeicher),
damit ist ein Speicherbedarf von mehr als 768 MB (Megabyte) bei
mittelgroßen Dateien gemeint. Aus diesem Grund ist es notwendig, die
vermeintlich alten Verfahren der Datenkompression nicht zu vergessen.
Denn vor allem die älteren Verfahren wurden zu Zeiten entwickelt, in
denen es neben guten Werten in der Kompression auch sehr wichtig war, den
temporären Speicherbedarf gering zu halten.