Hi!
Ich bin mir nicht sicher, ob dies hier das richtige Forum für
meinen
Beitrag ist aber ich vermute ihr könnt mir weiterhelfen.Ich
suche den
platzsparensten Weg, die Information abzuspeichern,welche
Zeichen wie
oft in einer Zeichenkette aus 256Byte(jedes Zeichen kann einen
Zustand von 0 bis 255 annehmen)vorkommen z.B Zustand 34 kommt
3 mal
vor, Zustand 24 kommt 67 mal vor usw. Man hat mir in einem
anderen
Forum gesagt,dass Nachrichtentechniker sich gut mit
Quellencodierung
auskennen und diese mir vielleicht weiterhelfen können.Nun ja
und ich
vermute unter den Amateurfunkern hier einige
Nachrichtentechniker.Würde mich somit sehr freuen, wenn mir
jemand
erklären könnte, wie ich diese Information mittels
Quellencodierung
möglichst klein kriege. Es wäre einfach spitze, wenn man die
Information in 32 bis 40 Byte unterbringen könnte.
Das kommt ganz drauf an, wie die Daten beschaffen sind. Wenn jedes Zeichen genau ein Mal vorkommt, kannst du mit „normalen“ Kompressionsmethoden gar nichts einsparen.
Wichtig ist auch, ob dir die Reihenfolge wichtig ist.
Wenn sie dir wichtig ist, dann schau mal nach der Huffman-Codierung.
Wenn nicht, dann mach einfach ein Histogramm drüber und speicher das ab. Also zB eine Routine mit einem Array von 0-255, dann eine Schleife die über die Eingangs-Daten drüber geht und jeden Wert als Index in dieses Histogramm-Array verwendet und dieses Element um 1 hochzählt. Nachdem alle Eingangsdaten verarbeitet sind, einfach drübergehen und alle Plätze mit mehr als 0 Einträgen abspeichern. Aber als Tupel, also , zB ,
BTW: „Quellencodierung“ ist einfach ein Überbegriff von einem Teil, was in einem Sender geschieht. Die konkrete Implementierung ist dann zB ein Kompressionsalgorithmus. Du kannst natürlich auch ganz einfach „gzip“ verwenden.
Bye
Hansi