Aufgaben:Aufgabe 2.6: Zur Huffman-Codierung: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
K (Guenter verschob die Seite 2.6 Huffman-Codierung nach 2.6 Zur Huffman-Codierung)
Zeile 3: Zeile 3:
 
}}
 
}}
  
[[Datei:P_ID2451__Inf_A_2_6.png|right|]]
+
[[Datei:P_ID2451__Inf_A_2_6.png|right|Baumdiagramm des Huffman–Verfahrens]]
Wir betrachten hier eine Quellensymbolfolge &#9001;<i>q<sub>&nu;</sub></i>&#9002; mit dem Symbolumfang <i>M</i> = 8:
+
Wir betrachten hier eine Quellensymbolfolge $\langle q_\nu \rangle$ mit dem Symbolumfang $M = 8$:
 
:$$q_{\nu} = \{ \hspace{0.05cm}q_{\mu} \} = \{ \boldsymbol{\rm A} \hspace{0.05cm}, \boldsymbol{\rm B}\hspace{0.05cm}, \boldsymbol{\rm C}\hspace{0.05cm}, \boldsymbol{\rm D}\hspace{0.05cm}, \boldsymbol{\rm E}\hspace{0.05cm}, \boldsymbol{\rm F}\hspace{0.05cm}, \boldsymbol{\rm G}\hspace{0.05cm}, \boldsymbol{\rm H}\hspace{0.05cm}
 
:$$q_{\nu} = \{ \hspace{0.05cm}q_{\mu} \} = \{ \boldsymbol{\rm A} \hspace{0.05cm}, \boldsymbol{\rm B}\hspace{0.05cm}, \boldsymbol{\rm C}\hspace{0.05cm}, \boldsymbol{\rm D}\hspace{0.05cm}, \boldsymbol{\rm E}\hspace{0.05cm}, \boldsymbol{\rm F}\hspace{0.05cm}, \boldsymbol{\rm G}\hspace{0.05cm}, \boldsymbol{\rm H}\hspace{0.05cm}
 
\}\hspace{0.05cm}.$$
 
\}\hspace{0.05cm}.$$
Sind die Symbole gleichwahrscheinlich, also wenn gilt
+
Sind die Symbole gleichwahrscheinlich, also gilt $p_{\rm A} =  p_{\rm B} =$ ... $ = p_{\rm H} = 1/M$, so macht Quellencodierung keinen Sinn. Bereits mit dem Dualcode <b>A</b> &#8594; <b>000</b>, <b>B</b>&nbsp;&#8594;&nbsp;<b>001</b>, ... , <b>H</b> &#8594; <b>111</b>, erreicht nämlich die mittlere Codewortlänge $L_{\rm L}$ ihre untere Schranke $H$ gemäß dem Quellencodierungstheorem ($H$ bezeichnet hierbei die <i>Quellenentropie</i>):
:$$p_{\rm A} =  p_{\rm B} = ... \hspace{0.05cm} = p_{\rm H} = 1/M \hspace{0.05cm},$$
 
so macht Quellencodierung keinen Sinn. Bereits mit dem Dualcode <b>A</b> &#8594; <b>000</b>, <b>B</b>&nbsp;&#8594;&nbsp;<b>001</b>, ... , <b>H</b> &#8594; <b>111</b>, erreicht die mittlere Codewortlänge <i>L</i><sub>M</sub> ihre untere Schranke <i>H</i> gemäß dem Quellencodierungstheorem:
 
 
:$$L_{\rm M,\hspace{0.08cm}min} = H = 3 \hspace{0.15cm}{\rm bit/Quellensymbol} \hspace{0.05cm}.$$
 
:$$L_{\rm M,\hspace{0.08cm}min} = H = 3 \hspace{0.15cm}{\rm bit/Quellensymbol} \hspace{0.05cm}.$$
<i>H</i> bezeichnet hierbei die <i>Quellenentropie</i>.
 
  
 
Die Symbolwahrscheinlichkeiten seien aber in dieser Aufgabe wie folgt gegeben:
 
Die Symbolwahrscheinlichkeiten seien aber in dieser Aufgabe wie folgt gegeben:
Zeile 18: Zeile 15:
 
:$$p_{\rm E} \hspace{-0.05cm}= \hspace{-0.05cm} 0.24  \hspace{0.05cm},\hspace{0.1cm}p_{\rm F} \hspace{-0.05cm}= \hspace{-0.05cm} 0.12  \hspace{0.05cm},\hspace{0.1cm}p_{\rm G} \hspace{-0.05cm}= \hspace{-0.05cm} 0.10  \hspace{0.05cm},\hspace{0.1cm}
 
:$$p_{\rm E} \hspace{-0.05cm}= \hspace{-0.05cm} 0.24  \hspace{0.05cm},\hspace{0.1cm}p_{\rm F} \hspace{-0.05cm}= \hspace{-0.05cm} 0.12  \hspace{0.05cm},\hspace{0.1cm}p_{\rm G} \hspace{-0.05cm}= \hspace{-0.05cm} 0.10  \hspace{0.05cm},\hspace{0.1cm}
 
p_{\rm H} \hspace{-0.05cm}= \hspace{-0.05cm} 0.03  \hspace{0.05cm}.$$
 
p_{\rm H} \hspace{-0.05cm}= \hspace{-0.05cm} 0.03  \hspace{0.05cm}.$$
Es liegt hier also eine redundante Nachrichtenquelle vor, die man durch Huffman&ndash;Codierung komprimieren kann. Der Algorithmus wurde 1952 &ndash; also kurz nach Shannons bahnbrechenden Arbeiten zur Informationstheorie &ndash; von David Albert Huffman veröffentlicht und erlaubt die Konstruktion von optimalen präfixfreien Codes.
+
Es liegt hier also eine redundante Nachrichtenquelle vor, die man durch Huffman&ndash;Codierung komprimieren kann. Der Algorithmus wurde 1952 &ndash; also kurz nach Shannons bahnbrechenden Arbeiten zur Informationstheorie &ndash; von [https://de.wikipedia.org/wiki/David_A._Huffman David Albert Huffman] veröffentlicht und erlaubt die Konstruktion von optimalen präfixfreien Codes.
  
 
Der Algorithmus soll hier ohne Herleitung und Beweis angegeben werden, wobei wir uns auf Binärcodes beschränken (die Codesymbolfolge besteht nur aus Nullen und Einsen):
 
Der Algorithmus soll hier ohne Herleitung und Beweis angegeben werden, wobei wir uns auf Binärcodes beschränken (die Codesymbolfolge besteht nur aus Nullen und Einsen):
Zeile 34: Zeile 31:
 
Oft wird dieser Algorithmus durch ein Baumdiagramm veranschaulicht. Die obige Grafik zeigt dieses für den vorliegenden Fall. Sie haben folgende Aufgaben:
 
Oft wird dieser Algorithmus durch ein Baumdiagramm veranschaulicht. Die obige Grafik zeigt dieses für den vorliegenden Fall. Sie haben folgende Aufgaben:
  
:* (a): Zuordnung der Symbole <b>A</b>, ... , <b>H</b> zu den mit [1], ... , [8] bezeichneten Eingängen.
+
: (a): Zuordnung der Symbole <b>A</b>, ... , <b>H</b> zu den mit [1], ... , [8] bezeichneten Eingängen.
  
:* (b): Bestimmung der Summenwahrscheinlichkeiten <i>U</i>, ... , <i>Z</i> sowie <i>R</i> (<i>Root</i>).
+
: (b): Bestimmung der Summenwahrscheinlichkeiten <i>U</i>, ... , <i>Z</i> sowie <i>R</i> (<i>Root</i>).
  
:* (c) Zuordnung der Symbole <b>A</b>, ... , <b>H</b> zu den entsprechenden Huffman&ndash;Binärfolgen; eine rote Verbindung im Baumdiagramm entspricht einer <b>1</b> und eine blaue Verbindung einer <b>0</b>.
+
: (c) Zuordnung der Symbole <b>A</b>, ... , <b>H</b> zu den entsprechenden Huffman&ndash;Binärfolgen; eine rote Verbindung im Baumdiagramm entspricht einer <b>1</b> und eine blaue Verbindung einer <b>0</b>.
  
 
Sie werden feststellen, dass die mittlere Codewortlänge
 
Sie werden feststellen, dass die mittlere Codewortlänge
 
:$$L_{\rm M} =  \sum_{\mu = 1}^{M}\hspace{0.05cm} p_{\mu} \cdot L_{\mu} $$
 
:$$L_{\rm M} =  \sum_{\mu = 1}^{M}\hspace{0.05cm} p_{\mu} \cdot L_{\mu} $$
bei Huffman&ndash;Codierung nur unwesentlich größer ist als die Quellenentropie <i>H</i>. In dieser Gleichung gelten für den vorliegenden Fall folgende Werte:
+
bei Huffman&ndash;Codierung nur unwesentlich größer ist als die Quellenentropie $H$. In dieser Gleichung gelten für den vorliegenden Fall folgende Werte: $M = 8$,  $p_1 = p_{\rm A}$, ... , $p_8 = p_{\rm H}$. Die jeweilige Bitanzahl der Codesymbole für <b>A</b>, ... , <b>H</b> ist mit $L_1$, ... , $L_8$ bezeichnet.
  
:* <i>M</i> = 8 &nbsp;&nbsp;sowie&nbsp;&nbsp; <i>p</i><sub>1</sub> = <i>p</i><sub>A</sub>, ... , <i>p</i><sub>8</sub> = <i>p</i><sub>H</sub>,
 
 
:* <i>L</i><sub>1</sub>, ... , <i>L</i><sub>8</sub>:&nbsp;&nbsp; Jeweilige Bitanzahl der Codesymbole für <b>A</b>, ... , <b>H</b>.
 
  
 
:<b>Hinweis:</b> Die Aufgabe bezieht sich auf das Themengebiet von Kapitel 2.3.
 
:<b>Hinweis:</b> Die Aufgabe bezieht sich auf das Themengebiet von Kapitel 2.3.

Version vom 23. Mai 2017, 13:25 Uhr

Baumdiagramm des Huffman–Verfahrens

Wir betrachten hier eine Quellensymbolfolge $\langle q_\nu \rangle$ mit dem Symbolumfang $M = 8$:

$$q_{\nu} = \{ \hspace{0.05cm}q_{\mu} \} = \{ \boldsymbol{\rm A} \hspace{0.05cm}, \boldsymbol{\rm B}\hspace{0.05cm}, \boldsymbol{\rm C}\hspace{0.05cm}, \boldsymbol{\rm D}\hspace{0.05cm}, \boldsymbol{\rm E}\hspace{0.05cm}, \boldsymbol{\rm F}\hspace{0.05cm}, \boldsymbol{\rm G}\hspace{0.05cm}, \boldsymbol{\rm H}\hspace{0.05cm} \}\hspace{0.05cm}.$$

Sind die Symbole gleichwahrscheinlich, also gilt $p_{\rm A} = p_{\rm B} =$ ... $ = p_{\rm H} = 1/M$, so macht Quellencodierung keinen Sinn. Bereits mit dem Dualcode A000, B → 001, ... , H111, erreicht nämlich die mittlere Codewortlänge $L_{\rm L}$ ihre untere Schranke $H$ gemäß dem Quellencodierungstheorem ($H$ bezeichnet hierbei die Quellenentropie):

$$L_{\rm M,\hspace{0.08cm}min} = H = 3 \hspace{0.15cm}{\rm bit/Quellensymbol} \hspace{0.05cm}.$$

Die Symbolwahrscheinlichkeiten seien aber in dieser Aufgabe wie folgt gegeben:

$$p_{\rm A} \hspace{-0.05cm}= \hspace{-0.05cm} 0.04 \hspace{0.05cm},\hspace{0.1cm}p_{\rm B} \hspace{-0.05cm}= \hspace{-0.05cm} 0.08 \hspace{0.05cm},\hspace{0.1cm}p_{\rm C} \hspace{-0.05cm}= \hspace{-0.05cm} 0.14 \hspace{0.05cm},\hspace{0.1cm} p_{\rm D} \hspace{-0.05cm}= \hspace{-0.05cm} 0.25 \hspace{0.05cm},$$
$$p_{\rm E} \hspace{-0.05cm}= \hspace{-0.05cm} 0.24 \hspace{0.05cm},\hspace{0.1cm}p_{\rm F} \hspace{-0.05cm}= \hspace{-0.05cm} 0.12 \hspace{0.05cm},\hspace{0.1cm}p_{\rm G} \hspace{-0.05cm}= \hspace{-0.05cm} 0.10 \hspace{0.05cm},\hspace{0.1cm} p_{\rm H} \hspace{-0.05cm}= \hspace{-0.05cm} 0.03 \hspace{0.05cm}.$$

Es liegt hier also eine redundante Nachrichtenquelle vor, die man durch Huffman–Codierung komprimieren kann. Der Algorithmus wurde 1952 – also kurz nach Shannons bahnbrechenden Arbeiten zur Informationstheorie – von David Albert Huffman veröffentlicht und erlaubt die Konstruktion von optimalen präfixfreien Codes.

Der Algorithmus soll hier ohne Herleitung und Beweis angegeben werden, wobei wir uns auf Binärcodes beschränken (die Codesymbolfolge besteht nur aus Nullen und Einsen):

1. Man ordne die Symbole nach fallenden Auftrittswahrscheinlichkeiten.
2. Man fasse die zwei unwahrscheinlichsten Symbole zu einem neuen Symbol zusammen.
3. Man wiederhole Schritt 1 und 2, bis nur zwei (zusammengefasste) Symbole übrig bleiben.
4. Die wahrscheinlichere Symbolmenge wird mit 1 binär codiert, die andere Menge mit 0.
5. Man ergänze schrittweise (von unten nach oben) die aufgespaltenen Teilcodes mit 1 bzw. 0.

Oft wird dieser Algorithmus durch ein Baumdiagramm veranschaulicht. Die obige Grafik zeigt dieses für den vorliegenden Fall. Sie haben folgende Aufgaben:

(a): Zuordnung der Symbole A, ... , H zu den mit [1], ... , [8] bezeichneten Eingängen.
(b): Bestimmung der Summenwahrscheinlichkeiten U, ... , Z sowie R (Root).
(c) Zuordnung der Symbole A, ... , H zu den entsprechenden Huffman–Binärfolgen; eine rote Verbindung im Baumdiagramm entspricht einer 1 und eine blaue Verbindung einer 0.

Sie werden feststellen, dass die mittlere Codewortlänge

$$L_{\rm M} = \sum_{\mu = 1}^{M}\hspace{0.05cm} p_{\mu} \cdot L_{\mu} $$

bei Huffman–Codierung nur unwesentlich größer ist als die Quellenentropie $H$. In dieser Gleichung gelten für den vorliegenden Fall folgende Werte: $M = 8$, $p_1 = p_{\rm A}$, ... , $p_8 = p_{\rm H}$. Die jeweilige Bitanzahl der Codesymbole für A, ... , H ist mit $L_1$, ... , $L_8$ bezeichnet.


Hinweis: Die Aufgabe bezieht sich auf das Themengebiet von Kapitel 2.3.


Fragebogen

1

Welche Eingänge im Baumdiagramm stehen für

Symbol A: Eingang =

Symbol B: Eingang =

Symbol C: Eingang =

Symbol D: Eingang =

2

Welche Zahlenwerte sollten bei den Knoten im Baumdiagramm stehen?

Knoten U =

Knoten V =

Knoten W =

Knoten Z =

Root R =

3

Welche Binärcodes (darzustellen mit Nullen und Einsen) ergeben sich für

Symbol A: Binärcode =

Symbol B: Binärcode =

Symbol C: Binärcode =

Symbol D: Binärcode =

4

Wie groß ist die mittlere Codewortlänge?

$L_M$ =

$bit/Quellensymbol$

5

Wie groß ist die Quellenentropie H? Hinweis: Es gibt genau eine Lösung.

H = 2.71 bit/Quellensymbol.
H = 2.75 bit/Quellensymbol.
H = 3.00 bit/Quellensymbol.


Musterlösung

1.  Vor dem Huffman–Algorithmus müssen die Symbole nach ihren Auftrittswahrscheinlichkeiten sortiert werden. Da die zwei unwahrscheinlichsten Symbole schon im Schritt 1 zusammengefasst werden, nehmen die Auftrittswahrscheinlichkeiten von oben nach unten ab (in der unteren Grafik zu dieser Musterlösung von links nach rechts). Durch Vergleich mit dem Angabenblatt erhält man:

Symbol A: Eingang 7, Symbol B: Eingang 6,
Symbol C: Eingang 3, Symbol D: Eingang 1.

2.  Der Knoten R ist die Baumwurzel (Root). Unabhängig von den Auftrittswahrscheinlichkeiten ist dieser stets mit R = 1 belegt. Für die weiteren Werte gilt:

Schritt 1:    U = pA + pH = 0.04 + 0.03 = 0.07,
Schritt 2:    V = U + pB = 0.07 + 0.08 = 0.15,
Schritt 3:    W = pF + pG = 0.12 + 0.10 = 0.22,
Schritt 4:    X = V + pC = 0.15 + 0.14 = 0.29,
Schritt 5:    Y = W + pE = 0.22 + 0.24 = 0.46,
Schritt 6:    Z = X + pD = 0.29 + 0.25 = 0.54.

Damit lässt sich das Baumdiagramm auch wie folgt angeben.

P ID2452 Inf A 2 6a.png

3.  Den Huffman–Code für das Symbol A erhält man, wenn man den Weg von der Root (gelber Punkt) zum Symbol A zurückverfolgt und jeder roten Verbindungslinie eine „1” zuordnet, jeder blauen eine „0”.

  • Symbol A:    rot–rot–rot–blau–rot → 11101,
  • Symbol B:    rot–rot–rot–rot → 1111,
  • Symbol C:    rot–rot–blau → 110,
  • Symbol D:    rot–blau– → 10,
  • Symbol E:    blau–rot → 01,
  • Symbol F:    blau–blau–rot → 001,
  • Symbol G:    blau–blau–blau → 000,
  • Symbol H:    rot–rot–rot–blau–blau → 11100.

4.  Die Codierung unter Punkt 3) hat ergeben, dass

  • die Symbole D und E mit 2 Bit,
  • die Symbole C, F und G mit 3 Bit,
  • das Symbol B mit 4 Bit, und
  • die Symbole A und H mit 5 Bit

dargestellt werden. Damit erhält man:

$$L_{\rm M} \hspace{0.2cm} = \hspace{0.2cm} (p_{\rm D} + p_{\rm E}) \cdot 2 + (p_{\rm C} + p_{\rm F} + p_{\rm G}) \cdot 3 + p_{\rm B} \cdot 4 +(p_{\rm A} + p_{\rm H}) \cdot 5 = \\ \hspace{0.2cm} = \hspace{0.2cm} 0.49 \cdot 2 + 0.36 \cdot 3 +0.08 \cdot 4 +0.07 \cdot 5 \hspace{0.15cm}\underline{= 2.73\,{\rm bit/Quellensymbol}}\hspace{0.05cm}.$$

5.  Die mittlere Codewortlänge LM kann nicht kleiner sein als die Quellenentropie H. Damit scheiden die Antworten 2 und 3 aus. Richtig ist allein Antwort 1.

Man erkennt, dass die vorliegende Huffman–Codierung die durch das Quellencodierungstheorem vorgegebene Grenze LM, min = H = 2.71 bit/Quellensymbol nahezu erreicht.