Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Anregung zu einem Komprimierungsalgo (https://www.delphipraxis.net/44528-anregung-zu-einem-komprimierungsalgo.html)

uschi 20. Apr 2005 13:33


Anregung zu einem Komprimierungsalgo
 
Guten tag.

Ich bin auf der Suche nach einer Kompressionsmethode (vielleicht auch der falsche Asudruck) um einen String zu komprimieren.

Also ich habe z.B. 300 * 4 Zeichen = 1200 Zeichen
Jeweils 1 byte.

Nun muss ich aber diese 1200 Zeichen auf 200 Zeichen komprimieren und wieder dekomprimieren können...

Gibt es dazu überhaupt eine möglichkeit?

Soweit ich weiß sind Hashes ja nur "one way"


vielen dank unschi!

Waldteufel 20. Apr 2005 13:35

Re: Anregung zu einem Komprimierungsalgo
 
Hi.

Es gibt die Möglichkeit (zip arbeitet glaub ich so...), eine folge von x bytes durch die folge #255#(anzahl von x)#x zu ersetzen...

[edit] Zum Beispiel:

Vorher : #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 ([edit2] 15x #32 [/edit2])

Nachher : #255 #15 #32

[/edit]

[edit2] Nein... ZIP arbeitet ganz sicher nicht so! [/edit2]

sakura 20. Apr 2005 13:36

Re: Anregung zu einem Komprimierungsalgo
 
Dazu gibt es seit kurzem einen guten Eintrag bei uns: Huffman Algorithmus. Wie die Rate am Ende ausschaut, das kann ich nicht sagen, aber testen kannst Du es ja mal ;)

...:cat:...

Mephistopheles 20. Apr 2005 13:39

Re: Anregung zu einem Komprimierungsalgo
 
Prinzipiell ja. Aber man kann nicht per-se sagen, daß eine beliebige 1200 Zeichen lange Nachricht sich auf 200 Zeichen komprimieren läßt. Das hängt nämlich von Nachricht und Kompressionsmethode ab.

Bernhard Geyer 20. Apr 2005 13:46

Re: Anregung zu einem Komprimierungsalgo
 
Man auch auch gar nicht angeben ob überhaupt eine Komprimierung mit dem verwendeten Algorithmus möglich sein wird (z.B. wenn Ursprungsdaten schon komprimiert sind).

Binärbaum 20. Apr 2005 15:04

Re: Anregung zu einem Komprimierungsalgo
 
Zitat:

Zitat von Waldteufel
Hi.

Es gibt die Möglichkeit (zip arbeitet glaub ich so...), eine folge von x bytes durch die folge #255#(anzahl von x)#x zu ersetzen...

[edit] Zum Beispiel:

Vorher : #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 #32 ([edit2] 15x #32 [/edit2])

Nachher : #255 #15 #32

[/edit]

Nur zur Ergänzung:
Diese Methode wird auch als RLE (Run Length Encoding) bezeichnet.
Es hängt aber stark von den zu komprimierenden Daten ab, umwieviel sich diese komprimieren lassen.

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz