wer ist, was ist, wo ist, wann war, was war - Lexikon / Chronik / Biografie / Wissen - Arithmetisches Kodieren


Werbung

Produkte / Services :|: Chronik CD :|: als Startseite | zu den | empfehlen :|: Impressum
Lexika @ InfoBitte.de :|: Universal-Lexikon | WeltKunst | Geteiltes Deutschland | Zweiter Weltkrieg
WeltChronik.de :|: Welt | Deutschland | Kultur/Kunst/Technik :|: BildDatenBank :|: Biografien

Navigation

WeltChronik
Deutsche Chronik
KulturChronik
Biografien
Bilddatenbank
Kalenderblatt
Epochen
Lexika @ InfoBitte.de
Produkte

Suchfunktionen
Chronik-Jahr direkt

Nur Zahl eingeben
Bereich: '0'-'2001'
PARTNER
Ahnenforschung

Quellen für die Schule

FREE 4 WebMasters

Wir haben eine ganze Palette kostenloser Angebote von uns
für WebMaster und HomePage Besitzer aufbereitet

Holen Sie sich hier ab

was Sie gerne einsetzen würden
Suchfunktionen, Kalenderblatt, uam
für Ihre WebSite



Arithmetisches Kodieren

ein InfoBitte / WeltChronik
Sach-Artikel (Enzyklopädie / Lexikon)

Entwickelt von ICA-D aus der XML-Version der deutschen WikiPedia
© 2004/2005 ff by de.wikipedia.org, teilw. by ICA-D
blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Das arithmetische Kodieren wird zur verlustfreien Datenkompression eingesetzt und ist eine Form der Entropiekodierung.


Inhaltsverzeichnis


1 Grundprinzip

2 Beispiel

3 Implementation

4 Weblinks


Grundprinzip

Das Verfahren lässt sich am einfachsten mit unendlich genauen Fließkommazahlen beschreiben, auch wenn die eigentlichen Implementierungen dann wieder auf endlich genaue Integer-Zahlen zurück greifen müssen.


Eine (eigentlich unendlich lange) Symbolfolge wird beim Arithmetrischen Codieren durch eine Zahl x in einem definierten Intervall dargestellt (normalerweise gilt 0 <= x < 1). Um die Symbolkette zu erhalten für die x steht wird das Intervall, innerhalb dessen sich x befindet rekursiv in Subintervalle unterteilt. Die Größe der Intervalle hängt von der Häufigkeit der Symbole ab. Seltene Symbole erhalten kleine, oft vorkommende Symbole große Subintervalle zugeordnet.


Beim dekomprimieren startet der Algorithmus mit dem Intervall [0; 1[. Dieses wird in Subintervalle zerlegt. Es wird getestet, in welchem dieser Intervalle die Zahl x, die entschlüsselt werden soll liegt. Das Zeichen, zu dem das Intervall gehört ist das erste Symbol, das gesucht wird. Danach wird das soeben gefundene Subintervall wieder auf die gleiche Art und Weise zerlegt und überprüft, in welchem dieser Intervalle x liegt. Das wird so lange fortgesetzt, bis alle Symbole gefunden wurden.


Beim komprimieren läuft der Vorgang genauso ab. Man startet mit dem Intervall [0; 1[. Dieses Intervall wird zerteilt und das Subintervall gewählt, das zu dem zu kodierenden Symbol gehört. Dieses Intervall wird wieder zerlegt und ein weiteres noch kleineres Subintervall ausgewählt. Das Intervall wird so langer verkleinert, bis alle zu kodierenden Symbole abgearbeitet wurden. Dann wird eine Zahl, die in dem zuletzt erhaltenen Intervall liegt abgespeichert.


Die Subintervalle müssen so gewählt werden, dass der Codierer sowie der Decodierer die genaue Größe und Lage der Intervalle identisch wählen können. Der Codierer wird normalerweise vor Beginn des Verschlüssellungsprozesses eine Statistik über die Häufigkeit der einzelnen Symbole erstellen. Mit den Daten dieser Statistik wird die Größe der Subintervalle berechnet, das heißt, dass auch der Decoder diese Informationen erhalten muss. Das ist das gleiche Problem wie bei allen Entropiecodierern.


Die genaue Position der Intervalle ist für die Qualität des Algorithmus nicht von Bedeutung, sodass man hier eine feste Position für die einzelnen Symbole festlegen kann.


Beispiel

In diesem Beispiel wird die Zeichenkette "AAABAAAC" komprimiert. Zuerst muss die Größe der Subintervalle berechnet werden. Dazu dient eine Häufigkeitsanalyse.


ZeichenHäufigkeitoptimale Bitzahl
p(A)75%0,415
p(B)12.5%3
p(C)12.5%3

Die optimale Bitzahl ergibt sich aus der Formel für die Entropie. Mit diesem Wert lässt sich errechnen, dass der Informationsgehalt der Zeichenkette 8,49 Bits entspricht.


Nun zum Algorithmus. Die folgende Tabelle zeigt die genauen Werte für das aktuelle Subintervall. Das Bild zeigt noch eine Grafik über den Ablauf beim De-Codieren diese Beispiels.


IntervallIntervallgröße
0 -11
A0 -0,750,75
A0 -0,56250,5625
A0 -0,4218750,421875
B0,31640625 -0,3691406250,052734375
A0,31640625 -0,355957031250,03955078125
A0,31640625 -0,34606933593750,0296630859375
A0,31640625 -0,3386535644531250,022247314453125
C0,335872650146484375 -0,3386535644531250,002780914306640625

Gespeichert wird nun eine Zahl aus dem letzten Intervall, also z. B. 0.336.


Das entspricht zwischen 8 und 9 Bits. Huffman hätte für die gegebene Zeichenfolge dagegen 10 Bit benötigt (1 für jedes A und je 2 für B und C)


Der Unterschied beträgt in diesem Beispiel 10%. Der Gewinn wird größer, wenn die tatsächlich von der Huffmann Codierung verwendete Bitzahl mehr von der optimalen abweicht, also wenn ein Zeichen extrem häufig vorkommt.


Implementation

Da man bei einer konkreten Implementierung nicht mit unendlich genauen Gleitkommazahlen arbeiten kann muss die konkrete Umsetzung des Algorithmus etwas anders erfolgen.


Dabei werden hauptsächlich 2 Methoden angewandt:


  • Vereinfache das Alphabet, arbeite nur noch mit einem Bit. Anstatt das Intervall also in n Teile zu zerlegen wird es nur in 2 Teile geteilt. Diese Vereinfachung führt zu weiteren Möglichkeiten bestimmte Berechnungen durch Näherungen darzustellen. 2 Vertreter dieses Herangehens sind der Q-Coder von IBM und der ELS-Coder

  • Eine andere Variante ist die Annäherung der Intervallgrenzen mit Ganzen Zahlen. Dazu wird das Intervall so skaliert, dass es gerade noch durch die gewählten Integers dargestellt werden kann. Dann wird normal gerechnet. Zeichnet sich eine Stelle als gesichert ab, d.h. die untere und obere Intervallgrenze sind identisch in den ersten Stellen, dann können diese Stellen ausgegeben werden und das Intervall wieder skaliert werden. Der Coder läuft unter dem Namen Range-Coder


Beide Varianten führen zu einer Verschlechterung des Ergebnisses, die Anzahl der ausgegebenen Bits ist also nicht mehr optimal.


Weblinks



blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter




Wörterbuch


Produkte
2000 Jahre
Chronik CD-ROM


Kalenderblatt in
Schmuckblatt
Ausführung


Geburtstags-Bios

Suchen/Google-Ads
Kalenderblatt
druckfertig
( DirectDownloads )
Kalenderblätter
druckfertig aufbereitet für Schmuckblätter
zum Selbstdrucken

im Word DOC6/RTF Format, je Euro 5
über Click&Buy
JAN | FEB | MÄRZ
APRIL | MAI | JUNI
JULI | AUG | SEPT
OKT | NOV | DEZ

Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen
Andere Einzeltage
oder Zahlungsarten

bitte HIER bestellen


© 2000 ff by ICA-D, D-76751 Jockgrim, Germany
Verantwortlich im Sinne des Presse- und Multimedia-Rechts: Dipl.-Ing. Rainer Detering, Waidweg 18, 76189 Karlsruhe


| Immer | Unsere | InfoBitte weiterempfehlen
KALENDERBLATT von HEUTE | SUCH-Funktionen ALLE und nach BEREICHEN | Startseite
Welt-Chronik | Kunst-, Kultur-, Technik-Geschichte | Deutsche Chronik | 2000 Biografien | Bild-Datenbank
Gesetzestexte | SkateGuide | Online Jigsaw Puzzles | GeschenkTip | Produkte, Services, Impressum



*NEU* bei InfoBitte *NEU*



die deutsche WikiPedia
bei InfoBitte.de mit
650,000 Querverweisen zu
2000 Jahre Chronik



InfoBitte
Portal zu Portalen
Hauptseite


Suchfunktionen

Wissen, Biografien, Geschichte
besser gezielt suchen mit
domain-Filterung

die Links führen im neuen Fenster
zu den jeweiligen Hauptseiten,
das Anklicken eines Buttons zur
Filterung für die Google-Suche



Google
Lexika @ InfoBitte.de

ib InfoBitte.de (alle Lexika)
ib Universal-/Hand-Lexikon
die WikiPedia @ InfoBitte
ib L. WeltKunstGeschichte
ib L. Geteiltes Deutschland
ib L. Zweiter Weltkrieg

2000 Jahre Chronik

WeltChronik.de (Texte)
  
WeltChronik auf CDROM
deutsche Geschichte
Kultur-/TechnikGeschichte
WeltChronik Bilder
Chronik Biografien

Google
2000 Jahre Chronik
offline auf CDROM

Hier Kaufen


WeltChronik Jahr...
(eigene Suchfunktion)

Nur Zahl eingeben
Bereich: '0'-'2001'





Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin