Komprimieren von 1024 Byte binärer Daten ins RAM

Gast #1126856
Hallo,

ich habe vor in einen ATMega168 1024Byte binärer Daten über die serielle 
Schnittstelle zu lesen und im Ram abzulegen um sie später wieder 
auszugeben. Leider besitzt der Mega168 nur 1K Ram und ich bin daran 
gebunden. Gibt es eine Möglichkeit dies Daten zu komprimieren?

Gibt es irgendwo vielleicht einen paar Codezeile dazu.

Gruß Armin
#1126868
was sind das denn für Daten? umso höher die Gleichverteilung der 
einzelnen Zeichen ist, umso weniger kannst du codieren...

Text lässt sich für gewöhnlich wesentlich besser komprimieren als 
Programme o.Ä. fertigen Code für AVRs kenne ich nicht, aber die 
Verfahren von Zip u.Ä. sollten dir helfen.

Christian
#1126871
Wie man komprimieren kann und wie, hängt von den Daten selbst ab. Was 
man schon über sie weiß, muss man nicht noch zusätzlich speichern.

Ein Beispiel: Nehmen wir an, bei jedem Byte sind die obersten vier Bits 
immer null. Dann muss man diese Information nicht speichern, sondern 
kann immer zwei Bytes jeweils Nibble-weise in einem abspeichern. Handelt 
es sich nur um Ziffern und Buchstaben, könnten 6 Bits statt 8 
ausreichen, das würde man aber anders programmieren als die vier Bit. 
usw.
#1126872
Armin wrote:

> ich habe vor in einen ATMega168 1024Byte binärer Daten

Textdaten könnte man komprimieren, Binärdaten kaum.


> Leider besitzt der Mega168 nur 1K Ram und ich bin daran
> gebunden.

Warum darfst Du keinen ATmega328P nehmen?


> Gibt es irgendwo vielleicht einen paar Codezeile dazu.

Ein paar Zeilen reichen nicht, Komprimieren kostet kBytes an Flash.


Peter
Gast #1126902
Wenn's eine Strichzeichnung ist, laesst es sich mit ein paar Byte code 
per RLE problemlos komprimieren. Das hat mit Text oder Binaer nun 
wirklich nichts zu tun... wie Christian oben voellig richtig schrieb, 
ist es eine Frage der Gleichverteilung.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.