Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.177 Beiträge
 
Delphi 12 Athens
 
#5

Re: Vorwärts- / rückwärts-dynamische Entropiekodierung

  Alt 4. Mai 2009, 13:22
http://de.wikipedia.org/wiki/Entropiekodierung

wenn ich das richtig versteh, dann wird praktisch "Blockweise" Kodiert und ...

vorwärts dynamisch: ... praktisch die Verteilung über breits kodierte Zeichen/Blöcke bestimmt
(sozusagen in den vorherigen Blöcken, bzw. dem vorherigen Block, wärend des Kodierens mitgezählt und das Zählergebnis im nächsten Block zum Kodieren verwendet)

rückwärts dynamisch: ... erstmal der Block angesehn und vor der Kodierung dieser Block analysiert

statisch: ... vorher alle Daten analysiert und dann kodiert.



rückwärts dynamisch wäre dann sozusagen alles in blöcke aufgeteilt und dann jeder Block einzeln sozusagen statisch kodiert


@Meflin:

HELLOWORLDBYHIMITSU > HELLO + WORLD + BYHIM + ITSU

rückwärts dynamisch:
- HELLO analysieren
- und anhand der Analyse kodieren
- WORLD analysieren
- und anhand der Analyse kodieren
- BYHIM analysieren
- und anhand der Analyse kodieren
- ITSU analysieren
- und anhand der Analyse kodieren

vorwärts dynamisch:
- irgendwelche Standardwerte als Analyse laden (oder den ersten Block gegen die Definition analysieren)
- HELLO und anhand der Analyse kodieren
und währenddessen/parallel die Zeichen von HELLO mitzählen/analysieren
- WORLD und anhand der letzen Analyse kodieren
und währenddessen/parallel die Zeichen von WORLD mitzählen/analysieren
- BYHIM und anhand der letzen Analyse kodieren
und währenddessen/parallel die Zeichen von BYHIM mitzählen/analysieren
- ITSU und anhand der letzen Analyse kodieren
[und währenddessen/parallel die Zeichen von ITSU mitzählen/analysieren]


ich würde die Vor-/Nachteile dann so definieren:
statisch:
+ ein Wörterbuch (welches Zeichen wie kodiert wurde)
- wenn sich die verteilung über die gesamten Daten "öfters" mal ändert, ist es insgesamt zwar optimal kodiert, aber nicht in Bezug auf einzelne Blöcke

vorwärts dynamisch:
+ sind mehrere Blöcke nacheinander mit gleicher Verteilung, dann wären die nachfolgenden Blöcke gut kodiert
- der erste Block (nach Verteilungsveränderung) wäre nicht optimal kodiert
+ man benötigt aber nur ein oder garkein (wenn man zum Anfang ein Standardwörterbuch läd) Wörterbuch
(beim Standardwörterbuch könnte man ja anhand des Dateitypes schonmal ein "möglichst" Optimales auswählen)

rückwärts dynamisch:
+ jeder Block wird optimal kodiert
- aber für jeden Block wäre ein Wörterbuch notwendig
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat