80 likes | 276 Views
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[. ANA. AA. A. ANN. AN. N. ANS. AS. S. 0,25. 0. 0. 0,333.
E N D
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[
ANA AA A ANN AN N ANS AS S 0,25 0 0 0,333 0,25 0,5 0,41667 0,3889 0,833 0,41667 0,5 1 Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte
ANANA ANAA ANA ANANN ANAN ANN ANANS ANAS ANS 0,291667 0,25 0,25 0,291667 0,30556 0,333 0,31481 0,31944 0,3889 0,41667 0,31944 0,333 Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte
ANANAA ANANA ANANAN ANANN ANANAS ANANS 0,30324 0,25 0,291667 0,291667 0,30556 0,31481 0,30324 0,30556 0,31944 0,30556 Arithmetische Kodierung Kodieren des Wortes ANANAS 3. Iterationsschritte
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
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
ANA AA A ANN AN N ANS AS S 0 0,25 0 0,333 0,25 0,5 0,41667 0,3889 0,833 0,41667 0,5 1 0,304 0,304 0,304 Arithmetische Kodierung Dekodieren des Wortes ANANAS 2. Iterationsschritte
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