<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Move_to_front</id>
	<title>Move to front - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Move_to_front"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Move_to_front&amp;action=history"/>
	<updated>2026-05-27T11:55:11Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Move_to_front&amp;diff=881940&amp;oldid=prev</id>
		<title>imported&gt;APPERbot: Bot: Artikel hat keine Einzelnachweise, leeren Abschnitt mit &lt;references entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Move_to_front&amp;diff=881940&amp;oldid=prev"/>
		<updated>2025-03-11T03:04:08Z</updated>

		<summary type="html">&lt;p&gt;Bot: Artikel hat keine Einzelnachweise, leeren Abschnitt mit &amp;lt;references entfernt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Move to front&amp;#039;&amp;#039;&amp;#039; (englisch „Nach vorne verschieben“, auch: Rotierende Kodierung) ist ein Kodierungsverfahren, das sich gut eignet, um Daten, die aus der [[Burrows-Wheeler-Transformation]] stammen, weiterzuverarbeiten, um sie anschließend effektiver komprimieren zu können.&lt;br /&gt;
&lt;br /&gt;
== Format der Ein- und Ausgabedaten ==&lt;br /&gt;
&lt;br /&gt;
Die Eingabedaten für Move-to-Front sind ein endliches [[Alphabet (Informatik)|Alphabet]] und eine Zeichenkette aus diesem Alphabet. Bei dem Alphabet kann es sich zum Beispiel um [[ASCII]] oder [[Unicode]] handeln, aber auch um [[Byte]]s.&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe von Move-to-Front ist eine Folge natürlicher Zahlen, wobei jede der Zahlen kleiner als die Länge des Alphabets ist.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Move-to-Front-Kodierung:&lt;br /&gt;
# Schreibe das komplette Alphabet in eine Zeichenkette &amp;#039;&amp;#039;a&amp;#039;&amp;#039;.&lt;br /&gt;
# Für jedes Zeichen &amp;#039;&amp;#039;z&amp;#039;&amp;#039; der Eingabe:&lt;br /&gt;
## Gib die Position von &amp;#039;&amp;#039;z&amp;#039;&amp;#039; in &amp;#039;&amp;#039;a&amp;#039;&amp;#039; aus.&lt;br /&gt;
## Entferne &amp;#039;&amp;#039;z&amp;#039;&amp;#039; aus &amp;#039;&amp;#039;a&amp;#039;&amp;#039; und füge es vorne wieder an.&lt;br /&gt;
&lt;br /&gt;
Dieser Ablauf führt dazu, dass Zeichen, die häufig in der Eingabe vorkommen, während der Kodierung relativ weit vorne im Alphabet &amp;#039;&amp;#039;a&amp;#039;&amp;#039; stehen. Dadurch wiederum enthält die Ausgabe mehr kleine Zahlen als große, und das wiederum ist nützlich, um die Zahlenfolge anschließend zu komprimieren, etwa mit der [[Huffman-Kodierung]].&lt;br /&gt;
&lt;br /&gt;
Move-to-Front-Dekodierung:&lt;br /&gt;
# Schreibe das komplette Alphabet in eine Zeichenkette &amp;#039;&amp;#039;a&amp;#039;&amp;#039;.&lt;br /&gt;
# Für jede Zahl &amp;#039;&amp;#039;z&amp;#039;&amp;#039; der Eingabe:&lt;br /&gt;
## Gib das Zeichen an der Position &amp;#039;&amp;#039;z&amp;#039;&amp;#039; von &amp;#039;&amp;#039;a&amp;#039;&amp;#039; aus.&lt;br /&gt;
## Entferne dieses Zeichen aus &amp;#039;&amp;#039;a&amp;#039;&amp;#039; und füge es vorne wieder an.&lt;br /&gt;
&lt;br /&gt;
Die Dekodierung funktioniert fast genauso wie die Kodierung, nur dass die Position, an der das Alphabet geändert wird, schon bekannt ist (die Zahl aus der Eingabe), während sie bei der Kodierung erst bestimmt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Die Zeichenkette „Mississippi“ soll mit dem MTF-Algorithmus kodiert werden. Das Alphabet, das dabei verwendet wird, sei (der Kürze wegen) „ABCIMPSabcimps“.&lt;br /&gt;
&lt;br /&gt;
In der folgenden Tabelle ist &amp;#039;&amp;#039;Zeichen&amp;#039;&amp;#039; jeweils das Eingabezeichen, &amp;#039;&amp;#039;Alphabet&amp;#039;&amp;#039; das aktuelle Alphabet. Die &amp;#039;&amp;#039;Ausgabe&amp;#039;&amp;#039; ist die Position des Zeichens im aktuellen Alphabet (beginnend mit 0), und &amp;#039;&amp;#039;Alphabet&amp;lt;nowiki&amp;gt;&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; ist das neue Alphabet, das dadurch entsteht, dass das Eingabezeichen an den Anfang verschoben wird.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Zeichen || Alphabet || Ausgabe || Alphabet&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| M || ABCIMPSabcimps || 4 || MABCIPSabcimps&lt;br /&gt;
|-&lt;br /&gt;
| i || MABCIPSabcimps || 10 || iMABCIPSabcmps&lt;br /&gt;
|-&lt;br /&gt;
| s || iMABCIPSabcmps || 13 || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| s || siMABCIPSabcmp || 0 || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| i || siMABCIPSabcmp || 1 || isMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| s || isMABCIPSabcmp || 1 || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| s || siMABCIPSabcmp || 0 || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| i || siMABCIPSabcmp || 1 || isMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| p || isMABCIPSabcmp || 13 || pisMABCIPSabcm&lt;br /&gt;
|-&lt;br /&gt;
| p || pisMABCIPSabcm || 0 || pisMABCIPSabcm&lt;br /&gt;
|-&lt;br /&gt;
| i || pisMABCIPSabcm || 1 || ipsMABCIPSabcm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis der Kodierung ist der Text (4,10,13,0,1,1,0,1,13,0,1). Wenn man die Umsortierung des Alphabets weglässt, erhält man zum Vergleich den Text (4,10,13,13,10,13,13,10,12,12,10). Man kann daran sehen, dass nach einer kurzen „Einarbeitungsphase“ (hier 3 Zeichen lang: 4,10,13) relativ häufig kleine Zahlen ausgegeben werden, was gut für eine anschließende Komprimierung ist.&lt;br /&gt;
&lt;br /&gt;
Um MTF wieder zu dekodieren, geht man den umgekehrten Weg:&lt;br /&gt;
&lt;br /&gt;
Die Zahlenfolge (4,10,13,0,1,1,0,1,13,0,1) soll unter Verwendung des Alphabets „ABCIMPSabcimps“ dekodiert werden. In der folgenden Tabelle ist &amp;#039;&amp;#039;Position&amp;#039;&amp;#039; die Zahl aus der zu dekodierenden Zahlenfolge und &amp;#039;&amp;#039;Zeichen&amp;#039;&amp;#039; das dekodierte Zeichen. Die Spalten &amp;#039;&amp;#039;Alphabet&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Alphabet&amp;lt;nowiki&amp;gt;&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; sind genau die gleichen wie in der Kodiertabelle oben.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Position || Alphabet || Zeichen || Alphabet&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || ABCIMPSabcimps || M || MABCIPSabcimps&lt;br /&gt;
|-&lt;br /&gt;
| 10 || MABCIPSabcimps || i || iMABCIPSabcmps&lt;br /&gt;
|-&lt;br /&gt;
| 13 || iMABCIPSabcmps || s || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 0 || siMABCIPSabcmp || s || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 1 || siMABCIPSabcmp || i || isMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 1 || isMABCIPSabcmp || s || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 0 || siMABCIPSabcmp || s || siMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 1 || siMABCIPSabcmp || i || isMABCIPSabcmp&lt;br /&gt;
|-&lt;br /&gt;
| 13 || isMABCIPSabcmp || p || pisMABCIPSabcm&lt;br /&gt;
|-&lt;br /&gt;
| 0 || pisMABCIPSabcm || p || pisMABCIPSabcm&lt;br /&gt;
|-&lt;br /&gt;
| 1 || pisMABCIPSabcm || i || ipsMABCIPSabcm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe der Dekodierung ist also wie erwartet „Mississippi“.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur| Titel     = Packen wie noch nie| Verlag    = Verlag Heinz Heise| Ort       = Hannover| ISSN      = 0724-8679| Sammelwerk= c’t Magazin für Computer Technik| Nummer    = 16| Jahr      = 2000| Seiten    = 194}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datenkompression]]&lt;/div&gt;</summary>
		<author><name>imported&gt;APPERbot</name></author>
	</entry>
</feed>