Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Komprimierung : Wie geht das?

  Alt 13. Jul 2010, 15:45
Man könnte auch mal in der DP, Google oder bei Wiki nach Huffman, bzw, Entropiekodierung schauen.

Hierbei wird erstmal die Häufigkeit der vorkommenden Bytes gezählt und dann werden die vorhandenen Bytes mit einer dynamischen Anzahl an Bits codiert.
Wenn man dabei oft vorkommende Bytes mit wenigen Bits kodiert, dann kann man damit bis zu 87% pro Byte einsparen.


Es ist aber wie überall, es kommt bei der einsparbaren Datenmenge davon abhängig, wie die zu komprimierten Daten aufgebaut sind und welcher Algo zur Komprimierung verwendet wird.

Huffman - wenn alle möglichen Bytes vorkommen und diese möglichen Bytes auch noch schön gleichverteilt sind, dann kann man mit einer Entropiekodierung nichts gut machen ... es würde eventuell sogar mehr/größer, statt kleiner/weniger.

Genauso kann an nichts mit einer Lauflängen-Kodierung ausrichten, wenn es keine/kaum gleiche aufeinanderfolgende Bytes/Zeichen gibt.




Bei großen Texten (weiß jetzt allerdings nicht, wie sich sowas nennt) könnte man auch ein Wörterbuch mit den vorkommenden Wörtern anlegen und speichert dann nur ein kurzes Ersatzmuster, für mehrfach vorkommende Wörter.

Man sucht also größere, sich gleichende Teile und speichert dann im Text nur noch Referenzen auf diese Teile.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat