Forum: Compiler & IDEs kann µC auch komprimierte Bilder verarbeiten?


von Stefan Hämmerle (Gast)


Lesenswert?

Hallo Zusammen!

hab die Aufgabe bekommen, verpackte Bildinformationen mit einem µP auf
einem LCD anzuzeigen!
LCD Anzeige ist kein Problem. die Bildinformationen werde ich über die
serielle Schnittstelle reinholen - ich denke mal ein Bitmap anzuzeigen
ist somit kein Problem.
Allerdings verpackte Bildinformationen (wie z.B. JPEG)??? - gibts dafür
irgendwelche Bibliotheken für µCs?

Danke schon mal im voraus!!!!

lg Stefan

von Benedikt (Gast)


Lesenswert?

jpeg würde ich nicht unbedingt verwenden, aber einfache Sachen wie pcx
oder gif sollten kein Problem sein.
In den seltensten Fällen wird man auf einem LCD auch true color Bilder
brauchen. Meist reichen 2-256 Farben.

von Stefan Hämmerle (Gast)


Lesenswert?

Danke erstmal!
zur Info: Ich verwende ein monochromes LCD, pro Pixel brauche ich also
ein Bit Daten. Es handelt sich um ein 1/4 VGA Display (320x240 Pixel) -
also 76 800 Bytes Daten. Die Aufgabe lautet aber nur ca. 1/3 dieser
Bytes über die serielle Schnittstelle zu übertragen - folgedessen muss
ich die Daten mit einem Faktor 3 komprimieren können!
hast du da konkrete Vorschläge?

lg Stefan

von Benedikt (Gast)


Lesenswert?

Dann geht es einfach:
Übertrage doch einfach nur ein SW Bild, dann reichen
76800Bytes/8=9600Bytes.
Ansonsten versuchs mal mit einem gif Decoder (->google) falls der uC
schnell genug ist und noch genügend RAM und Flash frei hat.

von Stefan Hämmerle (Gast)


Lesenswert?

aber es ist doch nur ein SW Bild (pro Pixel 1 Bit, nicht Byte!)

von thkais (Gast)


Lesenswert?

Da reicht meist eine sehr einfache Komprimierung: Mehrere
hintereinanderfolgende gleichfarbige Pixel durch einen Code und die
Anzahl ersetzen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sogenanntes RLE (run-length encoding).  Gibt's beispielsweise
bei TIFF, wird gern für Faxübertragungen benutzt.  Auch das
reine Faxformat (G3) könnte helfen.

Beispielcode für das alles gibt es zahlreich im Netz.

von Karl H. (kbuchegg)


Lesenswert?

Wenn du nur ein Bitpro Pixel hast (also ein reines
Schwarz/Weiss Bild ohne Grautöne), kommt es auch darauf
an was auf dem Bild drauf ist:
Wenn du eine Zeichnung überträgst, ist RLE sicher eine
gute Wahl. Wenn du aber ein Photo (Portät, Landschaft, etc)
überträgst, wirst du um eine spezielle Aufbereitung der
Bilddaten beim runterrechnen auf 1Bit/Pixel nicht herumkommen.
Stichwort: Dithering.
Diese Bilder eignen sich dann meist nicht so gut zum RLE-
Kompremieren.
Aber 9600 Byte sind auch nicht die Welt.

Alles andere: PNG, JPG oder sonstige hochgezüchtete Komressions-
formate halte ich für diesen spezielle Fall für overkill.

von Stefan Hämmerle (Gast)


Lesenswert?

ersmals sorry - hab erst jetzt meinen Schlampigkeitsfehler entdeckt!
es sind nur 9600 Byte (76 800 Bit), wie im letzten Beitrag erwähnt.
Um welche Art von Bilddaten es sich handelt, muss ich mich nicht
kümmern. Das Bild (Grafik) ist schwarz weiß und eignet sich um auf
einem monochromen LCD anzuzeigen. Ich muss also das SW Bild nicht aus
einem Farbbild rausrechnen.

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.