mikrocontroller.net

Forum: Compiler & IDEs Komprimieren von 1024 Byte binärer Daten ins RAM


Autor: Armin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian Aurich (cau) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.