Komprimieren Sie eine kleine Menge von Daten

Ich habe ein Programm, wo ich generieren bitstreams, von etwa 80 bis 150 bits oder so, die würde ich gerne komprimieren, da ich verwandele Sie in eine Art von ASCII-Strings, so dass die Menschen übermitteln Sie herum.

Kennt jemand ein gutes, kostenloses bit-fähigen Kompressor, der vielleicht einen solchen stream? Mein Hauptproblem mit der "standard-Optionen" wird dieser stream sollte wirklich behandelt werden, als bit, nicht bytes, da sonst die Struktur verloren geht, und Ihre overhead-Sümpfe alle gewinnen.

Zusatz:

Den Gründen, die ich komprimieren will diesen streams ist, weil die Benutzer Los zu werden schneiden+einfügen, wahrscheinlich mit so etwas wie base64-Codierung, so speichern einige Daten hilfreich ist.

Hier ist ein Beispiel, für diejenigen, die es sehen möchten. Ich werde Formatierungen hinzuzufügen, um es einfacher zu Lesen ist:

110 110 - This is a 6x6 grid (the maximum is 7x7, so we only need 3 bits!)

000000
011110
010010
010010
011110
000000 - This is one layout grid

000000
000000
001000
000100
000000
000000 - This is the second layout grid

Nun Listen wir einige Stücke

010 11111111 - A piece is a 3-bit colour code, then an 8-bit list of 'on /off' bits.
001 10101010 - Another bit!
001 10101010 - Another, identical bit!

Der Grund, warum ich sagen, dies sollte berücksichtigt werden, "als bits' ist, dass es ist offensichtlich, Kompression Optionen betrachtet als bitstream (in bestimmten, in der Regel viele 0EN in der 'grid' s), die verschwinden, wenn man bedenkt es als eine byte-stream.

  • Einfach nur neugierig, aber was meinst du mit "behandelt werden müssen, als bits". Ein 80-bit-string ist ein 10-byte-string, und kann als solche behandelt werden, bis Ihre Programm braucht, diese auch zu verwerten.
  • Wenn Sie sagen, "damit die Menschen zu übertragen" meinst du, die Leute senden die Zeichenfolge einen Anruf, indem Sie es von hand irgendwo, etc. Du willst also eine für den Menschen lesbare version der bit-stream???
  • kann diese bit-Blöcken aggregiert werden, und dann verschickt, oder Sie werden weitergeleitet/gesendet, sobald Sie verfügbar sind. Wenn Sie aggregiert werden können, werden Sie sehen, bessere Kompression denke ich, aber nicht sicher sind, was Sie zu erreichen versuchen.
  • Was ist die Beziehung zwischen einem layout-raster und ein Stück? Sie zeigen eine Reihe von bits und einige Muster, aber wie funktioniert es alle zusammen binden? Erzählen Sie uns mehr über Ihre Verwendung, Ihre Bedeutung, was etwas, das der Benutzer würden, einfügen und kopieren Sie herum Aussehen würde, etc.?
Schreibe einen Kommentar