2010-12-15 9 views
2

Grüße, ich versuche, die Ausgabe des zlib (gzip) Algorithmus im Vergleich zu der Eingabe zu analysieren. Ermitteln Sie Dinge wie die Wörterbuchgröße, die Lauflängenpaare der Teilzeichenfolge und wo sie im ursprünglichen Klartext entsprechen. Ich benutze zlib, um viele sehr kleine Brocken von Daten auszutauschen (unter jeweils 1K), und möchte den Overhead aus dem Wörterbuch bestimmen, einen Prozentsatz von Teilstring-Matches vs. Dictionary-codiertem Klartext in den Ergebnissen, so etwas.zlib/gzip Interpreter

Nachdem ein schnelles googling nicht zu Ergebnissen geführt hat, frage ich hier, bevor ich anfange, den zlib-Quellcode mit Debug-Meldungen zu säen, um ein ähnliches Ergebnis zu erhalten.

Existiert bereits etwas von der Stange?

+0

Seeding zlib klingt wie eine gute Idee. – qdot

+0

Ja, es funktionierte ziemlich gut für eine einmalige Lösung. Es wäre mir peinlich, die Änderungen in der Öffentlichkeit zu zeigen! – user17925

Antwort

3

Werfen Sie einen Blick auf http://zlib.net/infgen.c.gz.

Aus den Kommentaren in dem Code:

* Read a zlib, gzip, or raw deflate stream from stdin and write a defgen 
* compatible stream representing that input to stdout (though any specific 
* zlib or gzip header information will be lost). This is based on the puff.c 
* code to decompress deflate streams. Note that neither the zlib nor the gzip 
* trailer is checked against the uncompressed data (in fact the uncompressed 
* data is never generated) -- all that is checked is that the trailer is 
* present. 
+2

Hallo @Mark, willkommen bei SO - nur eine Anmerkung, es hilft, eine kurze Einführung in das, was Sie verknüpfen, so das OP hat eine Idee, ob es ihr Problem löst, oder Link-rot zu bekämpfen. Ich habe einige Ihrer einleitenden Kommentare in diese Antwort aufgenommen, aber fühlen Sie sich frei zu bearbeiten, um zu verbessern, es klingt, als würde dieser Link dem OP immens helfen :) –