7.1 Quellenkodierung

Ziel:

Das Ziel einer Quellenkodierung wie in Abb. 7.1.1 ist die zu übertragenden Nachrichtensymbole möglichst optimal in eine Folge von Zeichen zu kodieren.1


PIC
Abbildung 7.1.1: Kommunikationsstrecke mit Quellenkodierung

Verlustfreie Datenkompression mit Reduzierung der Redundanz erfolgt ohne Informationsverlust.

Verlustbehaftete Datenkompression mit Reduzierung der Irrelevanz (nicht benötigter Teil der Information) ergibt Informationsverlust.

Definition:

Als Kodierung (siehe auch Abb. 7.1.2) bezeichnet man eine injektive Abbildung, die jedem Zeichen x einer Quelle X ein Kodewort c zuordnet2

c : ∀x ∈ X ∃w ∈ Y  |c(x) = w
                  m
(7.1.1)

Injektiv: Aus c(x1) = c(x2) folgt x1 = x2.

Kodewort:

Y = {y1,yr} ist dabei ein weiteres Alphabet und w Y Y = Y i ein Wort des Alphabets mit der Menge aller Worte

      m⋃
Ym =     Yi
      i=1
(7.1.2)


PIC
Abbildung 7.1.2: Kodierung als injektive Abbildung von X in Y m

Wortlänge:

Die mittlere Wortlänge einer Kodierung kann aus der einzelnen Länge der Kodewörter l(wi) = li bestimmt werden zu

                   N
L (c) = E {l(w)} =  ∑  pili
                   i=1
(7.1.3)

Das Shannon’sche Kodierungstheorem besagt, dass die mittlere Wortlänge einer Kodierung größer oder bestenfalls gleich der maximalen Entropie der Quelle ist

H    (X ) ≤ L (c)
  max
(7.1.4)

Effizienz:

Mit der Effizienz eines Kodes c für die Quelle X

         H (X )
E (c) =  ----------
        L(c) ⋅ ld r
(7.1.5)

wird die Redundanz R = L(c) ld(r) H(X) der Kodierung c erfaßt3, wobei L(c) ld(r) die maximale Entropie des Kodes mit r Buchstaben ist.

Idealer Kode:

Da bei decodierbaren Kodes die gesammte Quelleninformation erhalten bleibt, gibt es einen optimalen oder idealen Kode mit der Effizienz E(c) = 1.

Es gibt keinen anderen Kode mit demselben Kodealphabet, der für dieselbe Quelle eine kleinere mittlere Kodelänge aufweist.

Morsezeichen:

Der bekannteste Kode ist das Morsealphabet, das international genormte Telegraphenalphabet4. Benannt nach dem Erfinder Samuel Morse (1791 – 1872), der 1838 das Morsealphabet entwickelte für den von ihm 1 Jahr zuvor konstruierten elektromagnetischen Schreibtelegraphen.

Die Länge der Kodes aus Punkten („di“), Strichen („dat“ = 3 „dit“) korreliert mit der Häufigkeit der Buchstaben in der englischen Schriftsprache (siehe auch Tab. 7.1). Als zusätzliche Trennzeichen ist noch die Pause notwendig: einfach zwischen Zeichen (Länge = „dit“), 3-fach zwischen Kodeworten und 6-fach zwischen Worten des Eingangsalphabets.
















E- 16,9312,60 T 5,799,37














I - - 8,02 6,71 M 2,552,53
A- 5,58 8,34 N - 10.536,80














S - - - 6,42 6,11 O 2,247,70
U- - 3,83 2,85 G - 3,021,92
R - - 6,89 5,68 K - 1,320,87
W- 1,78 2,34 D - - 4,984,14














H- - - - 4,98 6,11CH
V- - - 0,84 1,06 Ö - 0,30
F - - - 1,49 2,03 Q - 0,020,02
Ü- - 0,65 Z - - 1,210,06
L - - - 3,60 4,24 Y - 0,052,04
Ä- - 0,54 C - - 3,162,73
P - - 0,67 1,66 X - - 0,050,20
J - 0,24 0,23 B - - - 1,961,54















Tabelle 7.1: Kodierung der Buchstaben im Morsealphabet

Kodebaum:

Kodebäume,wie in Abb. 7.1.3, sind Hilfsmittel zur optischen Verdeutlichung von Kodeeigenschaften


Xp(xi)c(xi)



x1 0,18 11
x2 0,15 101
x3 0,09 100
x4 0,25 01
x5 0,33 00
PIC

Abbildung 7.1.3: Kodebaum zur Kodierung der Smbole {x1, …, x5}

Dekodierbarkeit:

Ein Kode ist dekodierbar, wenn aus einer beliebigen Folge von Kodewörtern die ursprünglichen Zeichen der Quelle wiedergewonnen werden können. Maßnahmen dazu sind:

  • Bei einem Präfixkode ist kein Kodewort Anfang eines anderen Kodewortes.
  • Bei einem Blockkode hat jedes Kodewort die gleiche Wortlänge.
  • Bei einem Kommakode wird ein Kommazeichen zur Trennung der Kodewörter verwendet um eine eindeutig Dekodierbarkeit zu erreichen.6

Huffman:

Der Huffman-Kode mit variabler Wortlänge liefert bei kleinster mittlere Wortlänge einen optimalen Präfixkode. Er ist ohne Kommazeichen eindeutig dekodierbar.

Einsatz in der Bildkodierung (JPEG, MPEG) und Kodierung von digitalen Audio-Signalen.

Gruppen:

Für die Berechnung der Entropie ist die Kenntnis der Wahrscheinlichkeitsverteilung der Symbole notwendig. Man unterscheidet daher bei der Quellenkodierung 3 Gruppen entsprechend den Wahrscheinlichkeiten (Ernst, 2000, Seite 59):

  1. statistische Wahrscheinlichkeiten

    Die Symbole werden entsprechend ihrer bekannten (statischen) Wahrscheinlichkeiten unterschiedlich langen Kodewörtern zugeordnet.

    Huffman-Kodierung, Morse-Kodierung

  2. adaptive Wahrscheinlichkeiten

    Die unbekannte Wahrscheinlichkeit der Symbole wird durch eine Häufigkeitsanalyse vor der Kodierung messtechnisch bestimmt.

    Modifizierte Huffman-Kodierung, Lauflängenkodierung

  3. dynamische Wahrscheinlichkeiten

    Die unbekannte Wahrscheinlichkeit der Symbole wird erst während der Kodierung (dynamisch) erstellt.

    • Die Lempel- Ziv-Kodierung (LZW, von Lempel, Ziv und Welch) verwendet ein dynamisches Wörterbuch auf Zeichenfolgen an.
    • Bei der Arithmetischen Kodierung7 wird einem Quellwort eine Gleitpunktzahl zugeordnet.

Beispiel 7.1.1
(Kodierung 1)

Gegeben ist ein Alphabet Q = {a,b,c}. Das Wort „baacbacba“ soll mit dem LZW-Algorithmus kodiert werden, wobei das dynamische Wörterbuch mit a = 1, b = 2 und c = 3 inialisiert ist.

Das rekursive Kodierungsverfahren dazu ist:

  1. Start: Setze i = 0 und w0 = x0
  2. Loop: Setze i = i + 1 und w1 = w0 + xi
  3. Ist w1 im Wörterbuch enthalten?
    Ja:

    w0 = w1

    Nein:

    Schreibe w1 in das Wörterbuch

    Ausgabe: Index(w0),

    w0 = xi

  4. Gehe zu Loop, falls Eingabe nicht zu Ende
  5. Ausgabe: Index(w0)

Lösung:

Die Lösung wird in der Vorlesung erarbeitet. Ausgabe:

2, 1,1,3,4,7,1

Beispiel 7.1.2
(Kodierung 2)

Es ist das Wort TESTSTEINE mit Arithmetischer Kodierung zu Kodieren. Die dynamischen Häufigkeiten der Buchstaben für dieses Wort sind:

xi T E S I N






pabs(xi) 3 3 2 1 1
prel(xi) 0,30,30,20,10,1
Intervall Lo(xi)0,00,30,60,80,9
Intervall Hi(xi)0,30,60,80,91,0

Das rekursive Kodierungsverfahren dazu ist:

  1. Start: Setze i = 0, Lo(0) = 0.0 und Hi(0) = 1.0
  2. Loop: Setze i = i + 1 und nehme Symbol xi
    • Berechne Interval In(i) = Hi(i1) Lo(i1)
    • Setze Lo(i) = Lo(i1) + Lo(x i) In(i)
    • Setze Hi(i) = Lo(i1) + Hi(x i) In(i)
  3. Gehe zu Loop, falls Symbolwort nicht zu Ende
  4. Kodewort sind alle Zahlen im letzten Intervall

Lösung:

Die Lösung wird in der Vorlesung erarbeitet. Zahlenwerte sind:

c(T EST ST  EIN  E) = 0,147424-
                      ---------

1Ein Maß für die Optimierung (Güte) ist die im Mittel zu erwartende Länge der Zeichenfolge.

2Mengenlehre: Für jedes x aus X gibt es ein w aus Y m mit der Eigenschaft c(x) = w.

3Man sieht hier direkt, dass E(c) = 1 ist, wenn die Redundanz R = 0 ist: Einsetzen von L(c)ld(r) = R + H(X) in die Formel der Effizienz.

4Quelle: https://www.sttmedia.de/buchstabenhaeufigkeit-deutsch. Kodierung der Buchstaben nach der relativer Häufigkeit in Texten: links für deutsch und rechts für englisch.

5Jeder präfixfreie Kode ist eindeutig decodierbar, aber nicht alle eindeutig decodierbaren Kodes sind präfixfrei!

6Beispiel Morsekode: Einfache Pause zwischen den Kodebuchstaben und zweifache Pause zwischen den Kodewörtern

7Das Verfahren der Arithmetischen Kodierung wird aktuell selten eingesetzt, da es patentrechtlich geschützt ist für die Firmen IBM, AT&T und Mitsubishi