jpg zu rgb565

Gast #2292010
Lesenswert?

Hallo Leute!

Ich habe ein TFT mit rgb565 Interface. Ansteuerung soweit einfach. Nun 
möchte ich aber gerne ein JPG Bild (oder ein anderes Format) anzeigen 
lassen, da ein JPG Bild weniger Speicherplatz als Rohdaten verbraucht.

Ist es möglich mit einem Mikrocontroller die RGB Werte der Pixel aus 
einem JPG Bild auszulesen? Wenn ja, wie?

Danke im voraus M.H.

PS: Mit dem Format bin ich flexibel. Kann also auch BMP PNG o.ä. sein. 
Sollte nur ein gängiges Bildformat sein.
#2292025
Lesenswert?

M. H. schrieb:
> Ist es möglich mit einem Mikrocontroller die RGB Werte der Pixel aus
> einem JPG Bild auszulesen? Wenn ja, wie?
>
> PS: Mit dem Format bin ich flexibel. Kann also auch BMP PNG o.ä. sein.
> Sollte nur ein gängiges Bildformat sein.

JPG ist kompliziert, das will man nicht selber decodieren. Ob die 
jpeglib für Deinen Mikrocontroller verfügbar ist, ist natürlich eine 
Frage des Controllers. PNG ist auch kompliziert, weil es da viele 
Varianten gibt, auch hier würde die libpng sehr helfen.

BMP ist einfach, insbesonders weil es auch RGB565 enthalten kann (kann 
man z.B. mit GIMP erzeugen). Allerdings bietet es keine sinnvolle 
Kompression, so dass man gegenüber Rohdaten nicht viel gewinnt.

Viele Grüße,
        Simon
Gast #2580772
Lesenswert?

Ja, der Thread ist schon ein paar Monate alt, aber da ich auch gerade 
nach Jpeg-C(++)-Bibliotheken für µCs (ARM) gesucht habe, kann ich hier 
noch meine Ergebnisse anbieten.

1. jpeg-compressor - http://code.google.com/p/jpeg-compressor/
Vielleicht die kompakteste Implementierung für JPEG-Kompression 
&-Dekodierung
Der Encoder ist trotz der geringen Größe sehr schön und recht leicht zu 
verstehen und zu modifizieren, wenn man die Jpeg-Grundlagen kennt.
Es gibt auch einen Patch 
(http://altdevblogaday.com/2011/04/06/a-smaller-jpg-encoder/), der die 
Speichernutzung noch etwas optimiert.
Es werden wohl maximal 32 KB benötigt und umständliche "malloc()"s 
eingespart!

Der Decoder ist wohl etwas aufwendiger, aber wenigstens nur eine 
einzelne Datei mit nicht zu vielen Features (im Vergleich zur libjpeg).


2. NanoJPEG - http://keyj.emphy.de/nanojpeg/
Weiterer Minimalansatz eines Dekoders in einer einzelnen Datei.
Speicherbedarf ist ziemlich hoch (>>512 kB+Bild), aber man kann einiges 
optimieren. (sh. Kommentare auf der Homepage)


Auf einem ARM mit ggf. externem RAM lässt sich das schon gut nutzen.
Ob's auch auf einem AVR läuft bleibt fraglich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren