Sie sind Hier:
Startseite
Netzwerke
Komprimierung
Komprimierung von Daten:
Es ist oftmals zweckmäßig, Daten vor Ihrer Übertragung
zu komprimieren, da so die verfügbare Bandbreite
besser ausgenutzt werden kann.
Klassische Komprimierungsverfahren suchen in
den Ausgangsdaten nach Redundanzen, sprich nach
sich wiederholenden Mustern. So ein Muster wird
dann nur einmal gespeichert, zusammen mit der
Information, wie oft es zu wiederholen ist.
Auf diese Art arbeiten Kompressionsprogramme
für Dateien wie z.B. pkzip, arj (DOS / Windows),
gzip oder compress (Unix).
Ebenso arbeitet das Bildformat gif. Es setzt
ein Palettenbild voraus, d.h. im ganzen Bild
können nur maximal 256 verschiedene Farben vorkommen.
Nun wird zeilenweise vorgegangen und gleichfarbige
Bildpunkte oder Punktemuster werden wie oben
beschrieben komprimiert. Deswegen komprimiert
gif bei großen einfarbigen Flächen am besten.
Für Musik und "natürliche" Bilder erweist sich
ein anderes Verfahren als günstiger. Hier muss
das ursprüngliche Signal nicht zwingend exakt
reproduziert werden. Es genügt, dass das Ohr
bzw. Auge keinen Unterschied wahrnehmen kann.
Dazu macht man sich den Effekt zunutze, dass
z.B. bei einem Gemisch lauter und leiser Töne
das Gehör die leisen sowieso nicht wahrnimmt.
Man kann sie folglich auch gleich weglassen.
Dies nennt man "verlustbehaftete Komprimierung".
Erstmals populär wurde sie im Audiobereich bei
der Einführung der MiniDisc (MD). Im Bereich
von Kommunikationssystemen ist z.B. Real Audio
im Internet populär, bei Musikdateien ist "MP3"
momentan sehr angesagt.
Die verlustbehaftete Komprimierung von Audiosignalen
läuft folgendermaßen ab:
Das Tonsignal wird einer Spektralanalyse unterzogen,
d.h. zu jedem Abtastzeitpunkt wird die Intensität
aller im Signal enthaltenen Frequenzanteile
ermittelt. Nach einem psychoakustischen Modell
(d.h. basierend auf Forschungen über die Gehörfunktion
des Menschen) werden nicht hörbare Frequenzanteile
ausgefiltert. So können Tonsignale ohne merkliche
Verluste auf ca. 10% komprimiert werden. Bei
Fotos oder Gemälden funktioniert die Komprimierung
ähnlich wie bei Tönen. Das Bild wird dazu in
Zonen zerlegt und die Spektralanalyse auf diese
angewendet. Auch hier werden schwach ausgeprägte
Frequenzanteile verworfen.
Eine Schwäche hat das Verfahren an Kanten mit
harten Kontrasten. Hier können unregelmäßige
Streumuster auftreten, die man als "Artefakte"
bezeichnet.
Bei der Komprimierung von Videos kann zusätzlich
zur verlustbehafteten Komprimierung eir Vergleich
aufeinander folgender Bilder miteinander eine
zusätzliche Datenreduktion bringen.
ASCII:
Für Texte gibt es einen einfachen Code, der
Buchstaben, Ziffern und Sonderzeichen einfach
bestimmte Zahlenwerte fest zuweist. Dieser Code
heißt "ASCII" (American Standard Code for Information
Interchange). Das Problem dabei ist, dass dieser
Code nur 128 Zeichen definiert, obwohl mit einem
Byte 256 verschiedene möglich wären. Zudem enthält
er weder Umlaute noch andere nationale Sonderzeichen
noch mathematische oder wissenschaftliche Sonderzeichen.
In der Folge entwickelten sich zahlreiche unterschiedliche
Erweiterungen von ASCII, die die übrigen 128
Zeichen nutzen. Leider passen diese nicht zusammen,
so dass Sonderzeichen verfälscht werden, wenn
Sender und Empfänger verschiedene ASCII‑Varianten
verwenden. Eine Erweiterung ist allerdings bei
weitem die verbreitetste. 1S0 Latin‑ 1 " wird
nicht nur von Windows verwendet, sondern auch
von den meisten Unix‑Varianten.
Leitungscodes:
Leitungscodes werden verwendet, um Übertragungsfehler
erkennen und gegebenenfalls korrigieren zu können.
Dabei wird aus den reinen Nutzdaten redundante
Information berechnet und hinzugefügt. Am Ziel
kann dann die gleiche Berechnung nochmals vorgenommen
und das Ergebnis mit den angehängten Informationen
verglichen werden. Ergibt sich eine Abweichung,
wurden die Daten sicherlich fehlerhaft übertragen.
Bei manchen Übertragungsmedien werden Anforderungen
an die Struktur der übermittelten Daten gestellt,
z.B. kann es eine Maximalzahl aufeinander folgender
1 ‑ oder 0 ‑ Bits geben oder aus den übertragenen
Signalen muss ein Taktsignal extrahiert werden
können.
Die Qualität eines Leitungscodes ist abhängig
von:
-
Störfestigkeit: Wie robust ist die Erkennung
eines fehlerhaften Bits, mehrerer zufällig verteilter
Fehler, mehrerer fehlerhafter Bits hintereinander
(Blockfehler)?
-
Korrektur: Welche Fehler können sicher korrigiert
werden?
Prüfsummen:
normale Prüfsummen:
Über eine gewisse Anzahl von Werten wird die
Summe gebildet, bei Kommunikationssystemen typischerweise
über ein ganzes Datenpaket. Da die Prüfsumme
sehr groß werden kann, typischerweise aber mögliche
Abweichungen sich nur auf den letzten Stellen
abspielen, wird oftmals eine Modulorechnung
auf die Prüfsumme angewendet, d.h. die Prüfsumme
wird durch einen festen Wert dividiert und nur
der Divisionsrest wird übertragen. Bei byteorientierten
Systemen ist z.B. eine Rechnung Modulo 256 naheliegend.
Die Sicherheit von Prüfsummen bei Bitfehlern
auf Übertragungsmedien ist nicht besonders groß,
da sich mehrere Fehler sehr leicht aufheben
können.
Gewichtete Prüfsummen:
Bei der Bildung der Prüfsumme werden die einzelnen
Werte abwechselnd unverändert addiert oder zunächst
mit einem festen Wert multipliziert. Das Verfahren
hat den Nutzen, dass vertauschte Zahlen erkannt
werden, die bei einer normalen Prüfsumme nicht
auffallen würden. Solche Vertauschungen kommen
leicht vor, wenn Zahlen eingetippt werden, in
Kommunikationsnetzen sind sie fast ausgeschlossen.
Eine gewichtete Prüfsumme verwendet beispielsweise
der EAN‑Code:
Die letzte Stelle der Summe plus die Prüfstelle
(letzte Ziffer des EAN‑Codes) muss 10 ergeben.
Parität:
Im Grunde eine Prüfsumme über die Bits eines
Binärwortes, z.B. eines Bytes, die Modulo 2
genommen wird. Anders ausgedrückt: Man Rügt
eine Binärstelle hinzu, und zwar so, dass insgesamt
eine ungerade Anzahl Bits in dem Wort gesetzt
sind (ungerade Parität). Es kann natürlich auch
eine gerade Anzahl Bits sein, dann spricht man
von einer geraden Parität. Eine Paritätsprüfung
scheitert, wenn in einem Wort eine gerade Anzahl
Bits verfälscht werden. Früher war eine Paritätsprüfung
in fast jedem RAM‑Modul für PCs eingebaut, bei
der Übertragungstechnik ermöglicht z.B. die
serielle RS‑232‑Schnittstelle eine Paritätsprüfung.
Fehlerkorrigierende Codes:
Man kann sich Binärzahlen als so genannten Coderaum
vorstellen, in dem jede mögliche Zahl einen
Punkt darstellt. Zwischen den Zahlen besteht
überall dort eine Verbindung, wo die Veränderung
nur eines Bits eine Zahl in die andere verwandelt.
Für maximal drei Bits ist dies sehr leicht mit
einem Würfel visualisierbar, bei längeren Binärzahlen
kann man mit dem Coderaum zwar rechnen, ihn
aber nicht mehr übersichtlich darstellen.
Paketierung:
In nahezu allen Netzwerken werden die zu übertragenen
Daten in Pakete zerteilt, die eine festgelegte
Maximalgröße nicht überschreiten.
-
Für jedes Paket kann eine Prüfsumme gebildet
werden, damit festgestellt werden kann, ob die
Daten beschädigt sind. Kommen die Daten am Stück,
müsste bei einem Fehler die Übertragung neu
beginnen
-
Könnte ein Teilnehmer beliebig viele Daten am
Stück übertragen, wäre das Netz in dieser Zeit
für alle anderen Teilnehmer blockiert.
-
Aufgaben des Senders:
o
Die Daten in Pakete zerteilen
o
Mit fortlaufenden Nummern Identifikationen versehen
o
Bestätigung des Empfängers über korrekt empfangene
Pakete.
o
Bei Übertragungsfehlern oder fehlender Bestätigung
das Paket nochmals senden
-
Aufgaben des Empfängers:
o
Empfang der Pakete bestätigen
o
Bei fehlerhafter Übertragung von Paketen nochmalige
Anforderung
|