Difference between revisions of "Exercise 2.13Z: Combination of BWT and MTF"
m (Guenter verschob die Seite Aufgabe 2.13Z: Kombination BWT & ''Move-to-Front'' nach Aufgabe 2.13Z: Kombination BWT und ''Move-to-Front'') |
|||
Line 2: | Line 2: | ||
}} | }} | ||
− | [[File:P_ID2480__Inf_Z_2_14.png|right|Schema für die Burrows–Wheeler–Datenkomprimierung]] | + | [[File:P_ID2480__Inf_Z_2_14.png|right|frame|Schema für die Burrows–Wheeler–Datenkomprimierung]] |
− | Wir beziehen uns auf die Theorieseite [[Informationstheorie/Weitere_Quellencodierverfahren#Anwendungsszenario_f.C3.BCr_die_Burrows.E2.80.93Wheeler.E2.80.93Transformation|Anwendungsszenario | + | Wir beziehen uns auf die Theorieseite [[Informationstheorie/Weitere_Quellencodierverfahren#Anwendungsszenario_f.C3.BCr_die_Burrows.E2.80.93Wheeler.E2.80.93Transformation|Anwendungsszenario für die Burrows-Wheeler-Transformation]] und betrachten das rechts skizzierte Codiersystem, bestehend aus den Blöcken. |
− | * <i>Burrows–Wheeler–Transformation</i> (BWT) gemäß der Beschreibung in [[Aufgaben:2.13_Burrows-Wheeler-Rücktransformation|Aufgabe 2.13]]; die beiden Zeichenmengen am Ein– und Ausgang des BWT sind gleich: | + | * <i>Burrows–Wheeler–Transformation</i> $\rm (BWT)$ gemäß der Beschreibung in [[Aufgaben:2.13_Burrows-Wheeler-Rücktransformation|Aufgabe 2.13]]; die beiden Zeichenmengen am Ein– und Ausgang des BWT sind gleich: $\{$ $\rm D$, $\rm E$, $\rm I$, $\rm M$, $\rm N$, $\rm S$ $\}$; |
− | * <i>Move–to–Front</i> (MTF), ein Sortieralgorithmus, der eine gleich lange Zeichenfolge (im Beispiel $N = 12$), aber mit anderem Alphabet $\{$<b>0</b>, <b>1</b>, <b>2</b>, <b>3</b>, <b>4</b>, <b>5</b>$\}$ ausgibt; | + | * <i>Move–to–Front</i> $\rm (MTF)$, ein Sortieralgorithmus, der eine gleich lange Zeichenfolge (im Beispiel $N = 12$), aber mit anderem Alphabet $\{$<b>0</b>, <b>1</b>, <b>2</b>, <b>3</b>, <b>4</b>, <b>5</b>$\}$ ausgibt; |
− | * | + | * $\rm RLC0$ – eine Lauflängencodierung speziell für die nach BWT und MTF (möglichst) häufige Null; alle anderen Indizes werden durch „RLC0” nicht verändert; |
− | * | + | * $\rm Huffman$ gemäß der Beschreibung im Kapitel [[Informationstheorie/Entropiecodierung_nach_Huffman|Entropiecodierung nach Huffman]]; häufige Zeichen werden durch kurze Binärfolgen dargestellt und seltene durch lange. |
− | Der MTF–Algorithmus lässt sich wie folgt beschreiben: | + | Der MTF–Algorithmus lässt sich bei $M = 6$ Eingangssymbolen wie folgt beschreiben: |
− | * | + | * Die Ausgangsfolge des MTF ist eine Aneinanderreihung von Indizes aus der Menge |
+ | : $ I = \{$<b>0</b>, <b>1</b>, <b>2</b>, <b>3</b>, <b>4</b>, <b>5</b>$\}$. | ||
* Vor Beginn des eigentlichen MTF–Algorithmus werden die möglichen Eingangssymbole lexikografisch sortiert und den folgenden Indizes zugeordnet: | * Vor Beginn des eigentlichen MTF–Algorithmus werden die möglichen Eingangssymbole lexikografisch sortiert und den folgenden Indizes zugeordnet: | ||
− | : | + | : $\rm D$ → <b>0</b>, $\rm E$ → <b>1</b>, $\rm I$ → <b>2</b>, $\rm M$ → <b>3</b>, $\rm N$ → <b>4</b>, $\rm S$ → <b>5</b>. |
− | * Der MTF–Eingabestring sei hier | + | * Der MTF–Eingabestring sei hier $\rm N\hspace{0.05cm}M\hspace{0.05cm}S\hspace{0.05cm}D\hspace{0.05cm}E\hspace{0.05cm}E\hspace{0.05cm}E\hspace{0.05cm}N\hspace{0.05cm}I\hspace{0.05cm}I\hspace{0.05cm}I\hspace{0.05cm}N$ . Dies war das BWT–Ergebnis in der [[Aufgaben:2.13_Burrows-Wheeler-Rücktransformation|Aufgabe 2.13]]. Das erste $\rm N$ wird gemäß Voreinstellung mit $I = 4$ dargestellt. |
− | * Anschließend wird das | + | * Anschließend wird das $\rm N$ in der Sortierung an den Anfang gestellt, so dass nach dem Codierschritt $i = 1$ die Zuordnung gilt: |
− | : | + | : $\rm N$ → <b>0</b>, $\rm D$ → <b>1</b>, $\rm E$ → <b>2</b>, $\rm I$ → <b>3</b>, $\rm M$ → <b>4</b>, $\rm S$ → <b>5</b>. |
* In gleicher Weise fährt man fort, bis der gesamte Eingangstext abgearbeitet ist. Steht ein Zeichen bereits an Position <b>0</b>, so ist keine Neusortierung erforderlich. | * In gleicher Weise fährt man fort, bis der gesamte Eingangstext abgearbeitet ist. Steht ein Zeichen bereits an Position <b>0</b>, so ist keine Neusortierung erforderlich. | ||
+ | |||
+ | |||
+ | |||
Revision as of 16:02, 2 October 2018
Wir beziehen uns auf die Theorieseite Anwendungsszenario für die Burrows-Wheeler-Transformation und betrachten das rechts skizzierte Codiersystem, bestehend aus den Blöcken.
- Burrows–Wheeler–Transformation $\rm (BWT)$ gemäß der Beschreibung in Aufgabe 2.13; die beiden Zeichenmengen am Ein– und Ausgang des BWT sind gleich: $\{$ $\rm D$, $\rm E$, $\rm I$, $\rm M$, $\rm N$, $\rm S$ $\}$;
- Move–to–Front $\rm (MTF)$, ein Sortieralgorithmus, der eine gleich lange Zeichenfolge (im Beispiel $N = 12$), aber mit anderem Alphabet $\{$0, 1, 2, 3, 4, 5$\}$ ausgibt;
- $\rm RLC0$ – eine Lauflängencodierung speziell für die nach BWT und MTF (möglichst) häufige Null; alle anderen Indizes werden durch „RLC0” nicht verändert;
- $\rm Huffman$ gemäß der Beschreibung im Kapitel Entropiecodierung nach Huffman; häufige Zeichen werden durch kurze Binärfolgen dargestellt und seltene durch lange.
Der MTF–Algorithmus lässt sich bei $M = 6$ Eingangssymbolen wie folgt beschreiben:
- Die Ausgangsfolge des MTF ist eine Aneinanderreihung von Indizes aus der Menge
- $ I = \{$0, 1, 2, 3, 4, 5$\}$.
- Vor Beginn des eigentlichen MTF–Algorithmus werden die möglichen Eingangssymbole lexikografisch sortiert und den folgenden Indizes zugeordnet:
- $\rm D$ → 0, $\rm E$ → 1, $\rm I$ → 2, $\rm M$ → 3, $\rm N$ → 4, $\rm S$ → 5.
- Der MTF–Eingabestring sei hier $\rm N\hspace{0.05cm}M\hspace{0.05cm}S\hspace{0.05cm}D\hspace{0.05cm}E\hspace{0.05cm}E\hspace{0.05cm}E\hspace{0.05cm}N\hspace{0.05cm}I\hspace{0.05cm}I\hspace{0.05cm}I\hspace{0.05cm}N$ . Dies war das BWT–Ergebnis in der Aufgabe 2.13. Das erste $\rm N$ wird gemäß Voreinstellung mit $I = 4$ dargestellt.
- Anschließend wird das $\rm N$ in der Sortierung an den Anfang gestellt, so dass nach dem Codierschritt $i = 1$ die Zuordnung gilt:
- $\rm N$ → 0, $\rm D$ → 1, $\rm E$ → 2, $\rm I$ → 3, $\rm M$ → 4, $\rm S$ → 5.
- In gleicher Weise fährt man fort, bis der gesamte Eingangstext abgearbeitet ist. Steht ein Zeichen bereits an Position 0, so ist keine Neusortierung erforderlich.
Hinweise:
- Die Aufgabe gehört zum Kapitel Weitere Quellencodierverfahren.
- Insbesondere wird Bezug genommen auf die Seite Burrows–Wheeler–Transformation.
- Informationen zum Huffman–Code finden Sie im Kapitel Entropiecodierung nach Huffman. Für die Lösung dieser Aufgabe sind diese Informationen aber nicht erforderlich.
Fragebogen
Musterlösung
(2) Richtig sind die Lösungsvorschläge 2 und 3:
- Die Eingangsfolge wird Zeichen für Zeichen abgearbeitet. Auch die Ausgangsfolge hat somit die Länge N = 12.
- Tatsächlich wird die Eingangsmenge {D, E, I, N, M, S} in die Ausgangsmenge {0, 1, 2, 3, 4, 5} gewandelt.
- Allerdings nicht durch einfaches Mapping, sondern durch einen Algorithmus, der nachfolgend skizziert wird.
(3) Die folgende Tabelle zeigt den MTF–Algorithmus. Der Schritt i = 0 (rote Hinterlegung) gibt die Vorbelegung an. Die Eingabe der MTF ist gelb hinterlegt, die Ausgabe grün. Richtig ist der Lösungsvorschlag 2:
- Im Schritt i = 1 wird das Eingangszeichen N entsprechend der Spalte i = 0 durch den Index I = 4 dargestellt. Anschließend wird N nach vorne sortiert, während die Reihenfolge der anderen Zeichen gleich bleibt.
- Das Eingangszeichen M im zweiten Schritt erhält entsprechend der Spalte i = 1 ebenfalls den Index I = 4. In gleicher Weise macht man weiter bis zum 12. Zeichen N, dem der Index I = 1 zugeordnet wird.
- Man erkennt aus obiger Tabelle weiter, dass zu den Zeitpunkten i = 6, i = 7, i = 10 und i = 11 der Ausgabeindex jeweils I = 0 ist.
(4) Richtig sind die Aussagen 1 und 2. Die Vorverarbeitungen „BWT” und „MTF” haben nur die Aufgabe, möglichst viele Nullen zu generieren.
(5) Alle Aussagen sind richtig. Nähere Angaben zum Huffman–Algorithmus finden Sie im Kapitel „Entropiecodierung nach Huffman”.