jpg zu rgb565

Gast #2292010
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.
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
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

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.