Text schnell dekomprimieren

Moin

Ich hab hier etwa 5000 kurze Texte (Deutsch, Latin_1, 1,6MB insgesamt) die möglichst klein verpackt werden sollen. An sich kein Problem, aber der Haken ist der Zugriff: Es muss möglich sein auf jeden beliebigen Text schnell zuzugreifen. Die Software hat etwa 5-10KB RAM und einen mitschnellen 32Bit-MC zur Verfügung. Kein String ist länger als 1000 Zeichen.

Welcher Algo ist der richtige ?

Im Moment arbeite ich mit einer Lookuptabelle: ByteWert Zeichenketten. (256 Elemente, 1.5KB). Das ist schnell genug, aber nicht besonders klein. Die Ersetzungen bringt nur 6 bpb (Bits-Per-Byte) Kompression. Umformatieren, seltene Zeichenketten wegtauschen, Spielschen mit Gross/Kleinschreibung haben nix wesentliches gebracht.

Vorschläge ?

Danke & cu

Hallo,

Es muss möglich
sein auf jeden beliebigen Text schnell zuzugreifen.

Wie? per Index, per Volltextsuche oder wie?

Welcher Algo ist der richtige ?

Im Moment arbeite ich mit einer Lookuptabelle: ByteWert
Zeichenketten. (256 Elemente, 1.5KB).

Hast du an Huffman-Codierung gedacht? du kannst für alle Daten einen gemeinsamen Baum aufbauen, das dürfte bei natürlicher Sprache recht platzsparend sein.

Grüße,
Moritz

P.S. wenn dir hier nicht geholfen wird kannst du ja mal bei den Informatikern nachfragen.

Moin

Es muss möglich
sein auf jeden beliebigen Text schnell zuzugreifen.

Wie? per Index, per Volltextsuche oder wie?

Die Texte sind durchnummeriert, d.h. die Anfragen geben die Nummer des Textes an. Also an sich: Index.

Im Moment arbeite ich mit einer Lookuptabelle: ByteWert
Zeichenketten. (256 Elemente, 1.5KB).

Hast du an Huffman-Codierung gedacht?

Könnte man probieren. Ist allerdings etwas mehr Aufwand weil die Dekodierung auch über Tabellen laufen muss und ich weiss nicht ob die Tabellen noch alle in den RAM passen. Bit-weise arbeiten ist ausgeschlossen, die MC macht das nicht (schnell) mit.

P.S. wenn dir hier nicht geholfen wird kannst du ja mal bei
den Informatikern nachfragen.

Das Brett lesen nur noch wenige, ist zu gut versteckt *g*.

Danke, werde mal nachlesen wieviel RAM Huffman so verbraucht.