Aufgaben:Aufgabe 2.13Z: Kombination BWT & ''Move-to-Front''

From LNTwww
Revision as of 16:31, 24 November 2016 by Markus (talk | contribs)

P ID2480 Inf Z 2 14.png

Wir beziehen und auf die letzte Theorieseite von Kapitel 2.4 und betrachten das rachts skizzierte Codiersystem, bestehend aus den Blöcken.

  • Burrows–Wheeler–Transformation (BWT) gemäß der Beschreibung in Aufgabe A2.14; Zeichenmengen am Ein– und Ausgang sind gleich: {D, E, I, M, N, S};
  • Move–to–Front (MTF), ein Sortieralgorithmus, der eine gleich lange Zeichenfolge (im Beispiel N = 12), aber mit anderem Alphabet {0, 1, 2, 3, 4, 5} ausgibt;
  • 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;
  • Huffman als Beispiel eines Entropiecodierers gemäß der Beschreibung in Kapitel 2.3; häufige Zeichen werden durch kurze Binärfolgen dargestellt, seltene durch lange.

Der MTF–Algorithmus lässt sich wie folgt beschreiben:

  • Bei M = 6 Eingangssymbolen ist die Ausgangsfolge des MTF eine Aneinanderreihung von Indizes I 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:
D0, E1, I2, M3, N4, S5.
  • Der MTF–Eingabestring sei hier N M S D E E E N I I I N. Dies war das BWT–Ergebnis in der Aufgabe A2.14. Das erste N wird gemäß Voreinstellung mit I = 4 dargestellt.
  • Anschließend wird das N in der Sortierung an den Anfang gestellt, so dass nach dem Codierschritt i = 1 folgende Zuordnung gilt:
N0, D1, E2, I3, M4, S5.
  • 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.

Hinweis: Die Aufgabe gehört zu Kapitel 2.4. Informationen zum Huffman–Code finden Sie in Kapitel 2.3. Für die Lösung dieser Aufgabe sind diese Informationen aber nicht erforderlich.


Fragebogen

1

Welche Aussagen gelten für den Block „BWT” des Codiersystems?

Die Eingangszeichenmenge ist {D, E, I, M, N, S}.
Die Ausgangszeichenmenge ist {D, E, I, M, N, S}.
In der Ausgangsfolge treten alle M = 6 Zeichen gruppiert auf.

2

Welche Aussagen gelten für den Block „MTF” des Codiersystems?

Die Ausgangszeichenmenge ist {D, E, I, M, N, S}.
Die Ausgangszeichenmenge ist {0, 1, 2, 3, 4, 5}.
Die MTF–Ausgangsfolge hat die Länge N = 12.

3

Wie lautet die MTF–Ausgangsfolge?

230000100405,
445340045001,
543120345123.

4

Welche Aussagen gelten für den Block „RLC0” des Codiersystems?

Der Eingangswert 0 erfährt eine Sonderbehandlung.
Je häufiger eine 0 auftritt, um so effektiver ist dieser Block.
Am besten wäre Pr(0) ≈ Pr(1) ≈ ... ≈ Pr(5).

5

Welche Aussagen gelten für den abschließenden Block „Huffman”?

Die Ausgangsfolge ist binär.
Er bewirkt eine möglichst kleine mittlere Codewortlänge.
Die Dimensionierung richtet sich nach den anderen Blöcken.


Musterlösung

1.  Die Grafik auf der Angabenseite zeigt, dass die Lösungsvorschläge 1 und 2 richtig sind und der Vorschlag 3 falsch ist. E und I treten zwar gruppiert auf, aber nicht die N–Zeichen.

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.

P ID2481 Inf Z 2 14b.png
  • 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.

Richtig ist Lösungsvorschlag 2. 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 Vorverarbeitungsschritte BWT und MTF haben lediglich die Aufgabe, möglichst viele Nullen zu generieren.

5.  Alle Aussagen sind richtig. Nähere Angaben zum Huffman–Algorithmus finden Sie im Kapitel 2.3.