Re: Problem mit arithmetischer Kodierung
14. Jul 2004, 18:02
Hi,
also da sind ein paar Sachen die ich zu deinem Sourcecode anmerken möchte:
1) 'faktor' und das speichern der komprimieren daten in extended variablen. Wenn du den Faktor = 6 setzt, heisst dass das du 6 Bytes mit einen Extended-Wert ablegst. Das widerspricht dem Ansatz das du komprimieren willst, da ein Extended-Wert 10 Bytes gross ist.
2) Du vergisst das Wahrscheinlichkeits-Array abzuspeichern welches du für das Dekomprimieren benötigst.
3) Ansonsten sieht es so aus als ob du so komprieren würdest wie es in der Theorie des Algorithmus beschrieben ist. Impelentieren tut man den Arithmetischen Algorithmus anders: meist mit Integer-Werten, und nicht mit Gleitkommazahlen. Zum anderen verwendet man auch nicht mehrere Intervalle/werte, sondern ein Intervall und fertig. Bei deinem Ansatz werden ja immer nur 6 Bytes komprimiert und dann wieder neu aufgesetzt.
Schau dir doch mal verfügbare Pascal Programme für die Arithmetische Kodierung an.
|