Arithmetische Kodierung Kodieren des Wortes ANANAS Bestimmen der Wahrscheinlichkeiten #A: 3, #N: 2, #S: 1 #Gesamt: 6 p(A) = 0,5 p(N) = 1/3 ≈ 0,33 p(S) = 1/6 ≈ 0,1667 Festlegen des Anfangsintervalls I = [0, 1[
Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte 1 0,5 0,833 A N S 0,5 0,25 0,41667 AA AN AS 0,25 0,41667 0,333 0,3889 ANA ANN ANS
Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte 0,25 0,41667 0,333 0,3889 ANA ANN ANS 0,25 0,333 0,291667 0,31944 ANAA ANAN ANAS 0,291667 0,31944 0,30556 0,31481 ANANA ANANN ANANS
Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte 0,291667 0,31944 0,30556 0,31481 ANANA ANANN ANANS 0,25 0,30556 0,291667 0,30324 ANANAA ANANAN ANANAS 0,30324 0,30556
Arithmetische Kodierung Kodieren des Wortes ANANAS 4. Wahl eines Wertes aus dem Intervall mögliche Lösung: 0,30324 < 0,304 < 0,30556 0,30324 0,30556
Arithmetische Kodierung Dekodieren des Wortes ANANAS Benötigte Daten Ermittelte reelle Zahl: 0,304 Wahrscheinlichkeiten p(A) = 0,5 p(N) = 1/3 ≈ 0,33 p(S) = 1/6 ≈ 0,1667 Anzahl der kodierten Zeichen: 6 2. Wahl des Intervalls
Arithmetische Kodierung Dekodieren des Wortes ANANAS 2. Iterationsschritte 1 0,5 0,833 A N S 0,304 0,5 0,25 0,41667 AA AN AS 0,304 0,25 0,41667 0,333 0,3889 ANA ANN ANS 0,304
Arithmetische Kodierung Probleme bei der Implementierung AC benutzt reelle Zahlen (unendlich viele Nachkommastellen möglich) Fließkommazahlen im Computer begrenzt bzgl. der Genauigkeit (z.B. 32-Bit) Implementierung des AC-Algorithmus nur mit Tricks möglich (Abschneiden, Intervall vergrößern) Range-Coder arbeitet mit Integerzahlen Q-Coder (IBM, patentiert) vereinfacht zusätzlich Alphabet auf zwei Zeichen ELS-Coder ähnlich Q-Coder, aber mit weiteren Einschränkungen