Aufgaben:Aufgabe 2.5: Restredundanz bei LZW-Codierung: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
Zeile 89: Zeile 89:
 
===Musterlösung===
 
===Musterlösung===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
:<b>1.</b>&nbsp;&nbsp;Die Näherung <i>r'</i><sup> </sup>(<i>N</i>) stimmt definitionsgemäß für die Eingangsfolgenlänge  <i>N</i> = 10000 mit der per Simulation ermittelten Restredundanz <i>r</i>(<i>N</i>) = 0.265 exakt überein. Damit ist
+
'''(1)'''&nbsp; Die Näherung <i>r'&nbsp;</i><sup> </sup>(<i>N</i>) stimmt definitionsgemäß für die Eingangsfolgenlänge  <i>N</i> = 10000 mit der per Simulation ermittelten Restredundanz <i>r&nbsp;</i>(<i>N</i>) = 0.265 exakt überein. Damit ist
 
:$$A = 4 \cdot  r(N = 10000) =4 \cdot {0.265} \hspace{0.15cm}\underline{= 1.06}
 
:$$A = 4 \cdot  r(N = 10000) =4 \cdot {0.265} \hspace{0.15cm}\underline{= 1.06}
 
\hspace{0.05cm}. $$
 
\hspace{0.05cm}. $$
  
:<b>2.</b>&nbsp;&nbsp;Aus der Beziehung <i>A</i>/lg (<i>N</i>) &#8804; 0.05 &nbsp;&nbsp;&nbsp;&#8658;&nbsp;&nbsp;&nbsp; <i>A</i>/lg (<i>N</i><sub>b</sub>) = 0.05 folgt:
+
'''(2)'''&nbsp; Aus der Beziehung <i>A</i>/lg (<i>N</i>) &#8804; 0.05 &nbsp;&nbsp;&nbsp;&#8658;&nbsp;&nbsp;&nbsp; <i>A</i>/lg (<i>N</i><sub>2</sub>) = 0.05 folgt:
:$${{\rm lg}\hspace{0.1cm}N_{\rm b}} = \frac{A}{0.05} = 21.2 \hspace{0.3cm}\Rightarrow\hspace{0.3cm}
+
:$${{\rm lg}\hspace{0.1cm}N_{\rm 2}} = \frac{A}{0.05} = 21.2 \hspace{0.3cm}\Rightarrow\hspace{0.3cm}
N_{\rm b} = 10^{21.2} \hspace{0.15cm}\underline{= 1.58 \cdot 10^{21}}
+
N_{\rm 2} = 10^{21.2} \hspace{0.15cm}\underline{= 1.58 \cdot 10^{21}}
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
  
:<b>3.</b>&nbsp;&nbsp;Allgemein gilt:
+
'''(3)'''&nbsp; Allgemein gilt $r(N) = 1 - {H}/{K(N)} \hspace{0.05cm}.$ '''BQ1''' hat die Entropie <i>H</i> = 0.5 bit/Symbol. Daraus folgt wegen <i>r&nbsp;</i>(<i>N</i>) &asymp; <i>r'&nbsp;</i><sup> </sup>(<i>N</i>) für <i>K</i>(<i>N</i><sub>3</sub>) = 0.6:
:$$r(N) = 1 - \frac{H}{K(N)}  
 
\hspace{0.05cm}. $$
 
:BQ1 hat die Entropie <i>H</i> = 0.5 bit/Symbol. Daraus folgt wegen <i>r</i>(<i>N</i>) &asymp; <i>r'</i><sup> </sup>(<i>N</i>) für <i>K</i>(<i>N</i><sub>c</sub>) = 0.6:
 
 
:$$r(N_{\rm c}) = 1 - \frac{0.5}{0.6} = 0.167 \hspace{0.1cm}\Rightarrow\hspace{0.1cm}  
 
:$$r(N_{\rm c}) = 1 - \frac{0.5}{0.6} = 0.167 \hspace{0.1cm}\Rightarrow\hspace{0.1cm}  
{\rm lg}\hspace{0.1cm}N_{\rm c} = \frac{A}{0.167} = 6.36
+
{\rm lg}\hspace{0.1cm}N_{\rm 3} = \frac{A}{0.167} = 6.36
 
\hspace{0.1cm}\Rightarrow\hspace{0.1cm}
 
\hspace{0.1cm}\Rightarrow\hspace{0.1cm}
N_{\rm c} = 10^{6.36} \hspace{0.15cm}\underline{= 2.29 \cdot 10^{6}}
+
N_{\rm 3} = 10^{6.36} \hspace{0.15cm}\underline{= 2.29 \cdot 10^{6}}
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
[[Datei:P_ID2447__Inf_A_2_5d.png|right|]]
 
  
:<b>4.</b>&nbsp;&nbsp;Für <i>N</i> = 10000 gilt <i>r</i>&prime;(<i>N</i>) = <i>r</i>(<i>N</i>) = 0.190:
+
[[Datei:P_ID2447__Inf_A_2_5d.png|right|Ergebnisse  für die Quelle BQ2]]
 +
'''(4)'''&nbsp; Für <i>N</i> = 10000 gilt <i>r'&nbsp;</i>(<i>N</i>) = <i>r</i>(<i>N</i>) = 0.19:
 
:$$\frac{A}{{\rm lg}\hspace{0.1cm}10000} = 0.19 \hspace{0.3cm}\Rightarrow\hspace{0.3cm}
 
:$$\frac{A}{{\rm lg}\hspace{0.1cm}10000} = 0.19 \hspace{0.3cm}\Rightarrow\hspace{0.3cm}
 
A = 0.19 \cdot 4 = 0.76 \hspace{0.05cm}. $$
 
A = 0.19 \cdot 4 = 0.76 \hspace{0.05cm}. $$
:Die Ergebnisse sind in nebenstehender Tabelle zusammengefasst. Man erkennt die sehr gute Übereinstimmung zwischen <i>r</i>(<i>N</i>) und <i>r</i>&prime;(<i>N</i>). Die gesuchten Zahlenwerte sind in der Tabelle rot markiert.
+
Die Ergebnisse sind in nebenstehender Tabelle zusammengefasst. Man erkennt die sehr gute Übereinstimmung zwischen <i>r&nbsp;</i>(<i>N</i>) und <i>r'&nbsp;</i>(<i>N</i>). Die gesuchten Zahlenwerte sind in der Tabelle rot markiert:
 +
$$r'(N = 50000)\hspace{0.15cm}\underline{ = 0.162},\hspace{0.3cm}r'(N = 10^{6})\hspace{0.15cm}\underline{ = 0.127},\hspace{0.3cm}
 +
r'(N = 10^{12})\hspace{0.15cm}\underline{ = 0.063}.$$
  
:Für den Komprimierungsfaktor gilt (der Apostroph weist darauf hin, dass von der Näherung <i>r</i>&prime;(<i>N</i>) ausgegangen wurde):
+
Für den Komprimierungsfaktor gilt (der Apostroph weist darauf hin, dass von der Näherung <i>r'</i>(<i>N</i>) ausgegangen wurde):
 
:$$K'(N) = \frac{1}{1 - r'(N)}\hspace{0.05cm}.$$
 
:$$K'(N) = \frac{1}{1 - r'(N)}\hspace{0.05cm}.$$
:Damit gilt für die Länge des LZW&ndash;Ausgabestrings:
+
Damit gilt für die Länge des LZW&ndash;Ausgabestrings:
:$$L'(N) = K'(N) \cdot N \hspace{0.05cm}.$$
+
:$$L'(N) = K'(N) \cdot N = \frac{N}{1 - r'(N)}\hspace{0.05cm}.$$
  
:<br><br><br>
+
[[Datei:P_ID2448__Inf_A_2_5e.png|right|Ergebnisse  für die Quelle BQ3]]
:<b>5.</b>&nbsp;&nbsp;Nach ähnlicher Vorgehensweise wie in der Teilaufgabe d) erhält man für die Binärquelle BQ3 den Anpassungsparameter <i>A</i> = 1.36 und daraus die Ergebnisse gemäß der blau hinterlegten Tabelle.
+
'''(5)'''&nbsp; Nach ähnlicher Vorgehensweise wie in der Teilaufgabe (4) erhält man für die Binärquelle '''BQ3''' den Anpassungsparameter <i>A</i> = 1.36 und daraus die Ergebnisse gemäß der blau hinterlegten Tabelle.
  
:<u>Hinweis:</u> Die letzte Spalte dieser Tabelle ist nur bei Kenntnis der Teilaufgabe (f) verständlich. Dort wird gezeigt, dass die  Quelle BQ3 die Entropie  <i>H</i> = 0.25 bit/Quellensymbol besitzt.
+
<u>Hinweis:</u> Die letzte Spalte dieser Tabelle ist nur bei Kenntnis der Teilaufgabe (6) verständlich. Dort wird gezeigt, dass die  Quelle '''BQ3''' die Entropie  <i>H</i> = 0.25 bit/Quellensymbol besitzt.
  
:In diesem Fall gilt für den Komprimierungsfaktor:
+
In diesem Fall gilt für den Komprimierungsfaktor:
 
:$$K'(N) = \frac{H}{1 - r'(N)} = \frac{0.25}{1 - r'(N)} \hspace{0.05cm}.$$
 
:$$K'(N) = \frac{H}{1 - r'(N)} = \frac{0.25}{1 - r'(N)} \hspace{0.05cm}.$$
[[Datei:P_ID2448__Inf_A_2_5e.png|right|]]
+
Damit erhält man für die gesuchten Werte der Restredundanz:
:Für <i>N</i> = 10<sup>12</sup> weicht also der Komprimierungsfaktor (0.282) noch deutlich von der Entropie (0.25) ab, die  für <i>N</i> &#8594;  &#8734; erreicht werden kann (Quellencodierungstheorem).<br><br><br>
+
$$r'(N = 50000)\hspace{0.15cm}\underline{ = 0.289},\hspace{0.3cm}r'(N = 10^{6})\hspace{0.15cm}\underline{ = 0.227},\hspace{0.3cm}
 
+
r'(N = 10^{12})\hspace{0.15cm}\underline{ = 0.113}.$$
:<b>6.</b>&nbsp;&nbsp;Die einzelnen Näherungen <i>r</i>&prime;(<i>N</i>) unterscheiden sich nur durch den Parameter <i>A</i>. Dabei haben wir festgestellt:
+
Für <i>N</i> = 10<sup>12</sup> weicht also der Komprimierungsfaktor (0.282) noch deutlich von der Entropie (0.25) ab, die  für <i>N</i> &#8594;  &#8734; erreicht werden kann (Quellencodierungstheorem).
  
:* Quelle BQ2 (<i>H</i> = 1.00): <i>A</i> = 0.76,
 
  
:* Quelle BQ1 (<i>H</i> = 0.50): <i>A</i> = 1.06,
+
'''(6)'''&nbsp; Die einzelnen Näherungen <i>r'&nbsp;</i>(<i>N</i>) unterscheiden sich nur durch den Parameter <i>A</i>. Dabei haben wir festgestellt:
 +
* Quelle '''BQ1''' mit  <i>H</i> = 0.50: &nbsp; <i>A</i> = 1.0 &ndash; entsprechend dem Angabenblatt),
 +
* Quelle '''BQ2''' mit <i>H</i> = 1.00: &nbsp; <i>A</i> = 0.76 &ndash; siehe Teilaufgabe (4)
 +
* Quelle BQ3 (<i>H</i> unbekannt): <i>A</i> = 4 &middot; 0.341 =1.364 &ndash; entsprechend der letzten Spalte in der Tabelle.
  
:* Quelle BQ3 (<i>H</i> unbekannt): <i>A</i> = 1.36.
 
  
:Je kleiner die Entropie <i>H</i> ist, um so größer ist offensichtlich der Anpassungsfaktor <i>A</i>. Da genau eine Lösung möglich ist, muss <i>H</i> = 0.25 bit/Quellensymbol richtig sein &nbsp;&nbsp;&#8658;&nbsp;&nbsp; <u>Antwort 4</u>.
+
Je kleiner die Entropie <i>H</i> ist, um so größer ist offensichtlich der Anpassungsfaktor <i>A</i> (und umgekehrt). <br>
 +
Da genau eine Lösung möglich ist, muss <i>H</i> = 0.25 bit/Quellensymbol richtig sein &nbsp;&nbsp;&#8658;&nbsp;&nbsp; <u>Antwort 4</u>.
  
:Tatsächlich wurden bei der Simulation für die Quelle Q3 die Wahrscheinlichkeiten <i>p</i><sub>A</sub> = 0.96, <i>p</i><sub>B</sub> = 0.04 &#8658; <i>H</i> &asymp; 0.25 verwendet.<br><br>
+
Tatsächlich wurden bei der Simulation für die Quelle '''BQ3''' die Wahrscheinlichkeiten <i>p</i><sub>A</sub> = 0.96, <i>p</i><sub>B</sub> = 0.04 &nbsp; &#8658; &nbsp; <i>H</i> &asymp; 0.25 verwendet.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Version vom 22. Mai 2017, 14:50 Uhr

Restredundanz r(N) und Näherung r ′(N) dreier Quellen

Wir gehen hier von einer binären Eingangsfolge der Länge N aus und betrachten drei verschiedene binäre Nachrichtenquellen:

  • BQ1:   Symbolwahrscheinlichkeiten pA = 0.89, pB = 0.11, also unterschiedlich
    ⇒  Entropie H = 0.5 bit/Quellensymbol   ⇒   Quelle ist redundant.
  • BQ2:   pA = pB = 0.5 (gleichwahrscheinlich)   ⇒   Entropie H = 1 bit/Quellensymbol
    ⇒  Quelle ist redundanzfrei.
  • BQ3:   Hier gibt es keine konkreten Angaben zur Statistik. In der Teilaufgabe (6) sollen Sie die Entropie H dieser Quelle abschätzen.


Für diese drei Quellen wurden per Simulation die jeweilige Restredundanz r(N) ermittelt, die nach der Lempel–Ziv–Welch–Codierung in der Binärfolge verbleibt. Die Ergebnisse sind in der jeweils ersten Spalte obiger Tabelle für die Quellen

  • BQ1 (gelbe Hinterlegung),
  • BQ2 (grüne Hinterlegung) und
  • BQ3 (blaue Hinterlegung)

eingetragen, wobei wir uns bei der Simulation auf Folgenlängen N ≤ 50000 beschränkt haben.

Die relative Redundanz der Ausgangsfolge – vereinfachend Restredundanz genannt – kann aus

  • der Länge N der Eingangsfolge,
  • der Länge L(N) der Ausgangsfolge und
  • der Quellenentropie H

in folgender Weise berechnet werden:

$$r(N) = \frac{L(N) - N \cdot H}{L(N)}= 1 - \frac{ N \cdot H}{L(N)}\hspace{0.05cm}.$$

Hierbei ist berücksichtigt, dass bei perfekter Quellencodierung die Länge der Ausgangsfolge bis auf den Wert Lmin = N · herabgesenkt werden könnte. Bei nichtperfekter Quellencodierung gibt L(N) – N · die verbleibende Redundanz (mit der Pseudo–Einheit „bit”) an. Nach Division durch L(N) erhält man die relative Redundanz (N) mit dem Wertebereich zwischen 0 und 1; (N) sollte möglichst klein sein.

Eine zweite Kenngröße zur Effizienzmessung der LZW–Codierung ist der Komprimierungsfaktor K(N), der ebenfalls klein sein sollte:

$$K(N) = {L(N) }/{N} \hspace{0.05cm},$$

Im Theorieteil wurde gezeigt, dass die Restredundanz r(N) oft durch die Funktion

$$r'(N) ={A}/{{\rm lg}\hspace{0.1cm}(N)} \hspace{0.5cm}{\rm mit}\hspace{0.5cm} A = 4 \cdot {r(N = 10000)} \hspace{0.05cm}.$$

gut angenähert wird. Die Näherung r′(N) ist für BQ1 in der zweiten Spalte obiger Tabelle angegeben. In den Teilaufgaben (4) und (5) sollen Sie die Approximation für die Quellen BQ2 und BQ3 vornehmen.


Hinweise:


Fragebogen

1

Mit welchem Parameter A wurde die Näherung r' (N) der Restredundanz für die Binärquelle BQ1 erstellt?

$A \ = $

2

Wie groß muss N = N2 bei BQ1 mindestens sein, damit die Restredundanz die Bedingung (N) ≈ r' (N)≤ 5% erfüllt?

$N_{2} \ = $

$\ \cdot 10^{21}$

3

Wie groß muss N = N3 bei BQ1 mindestens sein, damit der Komprimierungsfaktor K(N) = L(N)/N nicht größer ist als 0.6?

$N_{3} \ = $

$\ \cdot 10^{6}$

4

Bestimmen Sie nun die Redundanznäherung r' (N) für die redundanzfreie Binärquelle BQ2, insbesondere:

$r'(N = 50000)\ = $

$r'(N = 10^6)\ = $

$r'(N = 10^{12})\ = $

5

Welche Werte liefert die Redundanznäherung r' (N) für die nicht näher spezifizierte Binärquelle BQ3? Insbesondere:

$r'(N = 50000)\ = $

$r'(N = 10^6)\ = $

$r'(N = 10^{12})\ = $

6

Welche Quellenentropie könnte BQ3 nach diesem Ergebnis besitzen? Hinweis: Es ist genau eine Antwort richtig.

$H = 1.00 \ \rm bit/Quellensymbol$,
$H = 0.75 \ \rm bit/Quellensymbol$,
$H = 0.50 \ \rm bit/Quellensymbol$,
$H = 0.25 \ \rm bit/Quellensymbol$.


Musterlösung

(1)  Die Näherung r'  (N) stimmt definitionsgemäß für die Eingangsfolgenlänge N = 10000 mit der per Simulation ermittelten Restredundanz (N) = 0.265 exakt überein. Damit ist

$$A = 4 \cdot r(N = 10000) =4 \cdot {0.265} \hspace{0.15cm}\underline{= 1.06} \hspace{0.05cm}. $$

(2)  Aus der Beziehung A/lg (N) ≤ 0.05    ⇒    A/lg (N2) = 0.05 folgt:

$${{\rm lg}\hspace{0.1cm}N_{\rm 2}} = \frac{A}{0.05} = 21.2 \hspace{0.3cm}\Rightarrow\hspace{0.3cm} N_{\rm 2} = 10^{21.2} \hspace{0.15cm}\underline{= 1.58 \cdot 10^{21}} \hspace{0.05cm}.$$

(3)  Allgemein gilt $r(N) = 1 - {H}/{K(N)} \hspace{0.05cm}.$ BQ1 hat die Entropie H = 0.5 bit/Symbol. Daraus folgt wegen (N) ≈ r'  (N) für K(N3) = 0.6:

$$r(N_{\rm c}) = 1 - \frac{0.5}{0.6} = 0.167 \hspace{0.1cm}\Rightarrow\hspace{0.1cm} {\rm lg}\hspace{0.1cm}N_{\rm 3} = \frac{A}{0.167} = 6.36 \hspace{0.1cm}\Rightarrow\hspace{0.1cm} N_{\rm 3} = 10^{6.36} \hspace{0.15cm}\underline{= 2.29 \cdot 10^{6}} \hspace{0.05cm}.$$
Ergebnisse für die Quelle BQ2

(4)  Für N = 10000 gilt r' (N) = r(N) = 0.19:

$$\frac{A}{{\rm lg}\hspace{0.1cm}10000} = 0.19 \hspace{0.3cm}\Rightarrow\hspace{0.3cm} A = 0.19 \cdot 4 = 0.76 \hspace{0.05cm}. $$

Die Ergebnisse sind in nebenstehender Tabelle zusammengefasst. Man erkennt die sehr gute Übereinstimmung zwischen (N) und r' (N). Die gesuchten Zahlenwerte sind in der Tabelle rot markiert: $$r'(N = 50000)\hspace{0.15cm}\underline{ = 0.162},\hspace{0.3cm}r'(N = 10^{6})\hspace{0.15cm}\underline{ = 0.127},\hspace{0.3cm} r'(N = 10^{12})\hspace{0.15cm}\underline{ = 0.063}.$$

Für den Komprimierungsfaktor gilt (der Apostroph weist darauf hin, dass von der Näherung r'(N) ausgegangen wurde):

$$K'(N) = \frac{1}{1 - r'(N)}\hspace{0.05cm}.$$

Damit gilt für die Länge des LZW–Ausgabestrings:

$$L'(N) = K'(N) \cdot N = \frac{N}{1 - r'(N)}\hspace{0.05cm}.$$
Ergebnisse für die Quelle BQ3

(5)  Nach ähnlicher Vorgehensweise wie in der Teilaufgabe (4) erhält man für die Binärquelle BQ3 den Anpassungsparameter A = 1.36 und daraus die Ergebnisse gemäß der blau hinterlegten Tabelle.

Hinweis: Die letzte Spalte dieser Tabelle ist nur bei Kenntnis der Teilaufgabe (6) verständlich. Dort wird gezeigt, dass die Quelle BQ3 die Entropie H = 0.25 bit/Quellensymbol besitzt.

In diesem Fall gilt für den Komprimierungsfaktor:

$$K'(N) = \frac{H}{1 - r'(N)} = \frac{0.25}{1 - r'(N)} \hspace{0.05cm}.$$

Damit erhält man für die gesuchten Werte der Restredundanz: $$r'(N = 50000)\hspace{0.15cm}\underline{ = 0.289},\hspace{0.3cm}r'(N = 10^{6})\hspace{0.15cm}\underline{ = 0.227},\hspace{0.3cm} r'(N = 10^{12})\hspace{0.15cm}\underline{ = 0.113}.$$ Für N = 1012 weicht also der Komprimierungsfaktor (0.282) noch deutlich von der Entropie (0.25) ab, die für N → ∞ erreicht werden kann (Quellencodierungstheorem).


(6)  Die einzelnen Näherungen r' (N) unterscheiden sich nur durch den Parameter A. Dabei haben wir festgestellt:

  • Quelle BQ1 mit H = 0.50:   A = 1.0 – entsprechend dem Angabenblatt),
  • Quelle BQ2 mit H = 1.00:   A = 0.76 – siehe Teilaufgabe (4)
  • Quelle BQ3 (H unbekannt): A = 4 · 0.341 =1.364 – entsprechend der letzten Spalte in der Tabelle.


Je kleiner die Entropie H ist, um so größer ist offensichtlich der Anpassungsfaktor A (und umgekehrt).
Da genau eine Lösung möglich ist, muss H = 0.25 bit/Quellensymbol richtig sein   ⇒   Antwort 4.

Tatsächlich wurden bei der Simulation für die Quelle BQ3 die Wahrscheinlichkeiten pA = 0.96, pB = 0.04   ⇒   H ≈ 0.25 verwendet.