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
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.
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
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.
aber es ist doch nur ein SW Bild (pro Pixel 1 Bit, nicht Byte!)
Da reicht meist eine sehr einfache Komprimierung: Mehrere hintereinanderfolgende gleichfarbige Pixel durch einen Code und die Anzahl ersetzen.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.