Der Martin: Komprimierung/Dekomprimierung jeweils unter PHP und JavaScript

Beitrag lesen

Hallo,

Hättest du dir einen kurzen Überblick über die Funktionsweise von LZW geholt, wäre dir aufgefallen, dass LZW 9 bis 12 Bit breite Wörter zurückgibt. Diese Wörter müssen auf Bytes (8 Bit breite Wörter) verteilt und diese Bytes dann wiederum in einen URL-fähigen Text umgewandelt werden. Du kannst Allerweltstexte gar nicht so gut komprimieren, wie die beiden nachfolgenden Schritte die Daten wieder aufblasen.

wenn es wirklich nur Texte im volkstümlichen Sinn sind, könnte die Rechnung sogar noch aufgehen. Längere Plaintext-Passagen (der weitaus größte Teil der Bytes im ASCII-Bereich 0x20..7F, viele sich wiederholende Muster) lassen sich gelegentlich auf unter 20% des ursprünglichen Speicherbedarfs komprimieren. Dann mit der URL-Codierung wieder aus einem Byte drei machen, und man ist immer noch bei "nur" 60% der ursprünglichen Datenmenge.

Das funktioniert aber auch erst ab einer gewissen Länge des Originaltexts. Denn solange die Lookup-Tabellen des verwendeten Kompressionsverfahrens noch einen merklichen Anteil der Gesamt-Datenmenge ausmachen, ist das Verfahren ineffizient. Deswegen ergeben kleine Dateien auch meistens zip-Archive, die größer sind als die Ursprüngliche Datei.

Ich empfehle dir dringendst, deine Daten per POST zu übertragen.

Und darüber hinaus empfehle ich, sich nicht über die Kompression den Kopf zu zerbrechen. Vom Server zum Client passiert das nämlich meist schon ganz automatisch, und vom Client zum Server werden meist deutlich weniger Daten übertragen.

Ciao,
 Martin

--
Auch mit eckigen Radios kann man Rundfunk hören.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(