Forum: Mikrocontroller und Digitale Elektronik Daten komprimieren mit Mikrocontroller


von Eugen Mailaender (Gast)


Lesenswert?

Guten Tag,
Ich mache gerade eine Applikation mit einem Grafikdisplay 320x240
(Schwarz/weiss) mit einem 8051 Controller. Die anzuzeigenden Bilder
speichere ich als Bitmaps. Da relativ viele Bilder anzuzeigen sind, und
der Speciherbedarf staendig waechst, dachte ich an eine Komprimierung
der Bitmaps. Hat jemand einfache Algorithmen (sollten beim dekodieren
schnell sein) oder sogar Quellcodebeispiele wie man dies machen
koennte???

Besten Dank bereits im Voraus,

Gruesse
Eugen

von Malte (Gast)


Lesenswert?

schau dir mal das RLE Verfahren (RunLengthEncoding) an (google).
Das hat zwar keine arge Kompression aber geht schnell.

von Markus Kaufmann (Gast)


Lesenswert?

Die verlustfreie Bildkompression beruht im wesentlichen darauf, daß man
Muster erkennen kann. RLE ist dabei sicher das einfachste, schnellste
und auch speichersparendste Verfahren.

Bei Huffman geht es darum, daß häufig vorkommende Werte kurze
Bitkombinationen bekommen und seltene Werte lange Bitkombinationen. Am
einfachsten ist, wenn man das aufs RLE aufsetzt.

Vielleicht wäre noch LZW interessant (wird bei GIF verwendet), aber das
ist wohl schon zu kompliziert. Auch 2D-Verfahren wären denkbar, aber
natürlich immer eine Frage des Aufwandes.

Markus

von Eugen Mailaender (Gast)


Lesenswert?

Hallo

vielen Dank fuer Eure Tips, ich werde den RLE einmal genauer ansehen
und schauen was dabei herauskommt.

Eugen

von Peter D. (peda)


Lesenswert?

Ich würde die Bilder in seriellen Speicher auslagern, z.B.:

AT24C1024 (128kB)
AT25C2048 (256kB)
AT45DB1282 (16MB)

Die AT45-Serie benötigt leider Pegelwandler, da es sie nicht für 5V
gibt.


Peter

von Rainer (Gast)


Lesenswert?

Ich würde auf jeden Fall eine RLE verwenden, ist ziemlich einfach
auszuprogrammieren, du musst nur eine gültige Escape-Sequenz (die dem
Interpreter sagt, ob der nächste Wert eine Längenangabe oder ein
normaler Wert ist) haben, je nach Anwendung kann das ein Nachteil sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.