mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JPG Array to BMP Array


Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen zusammen :D

Ich möchte eine JPG Array in ein BMP Array umwandeln. Kennt jemand eine 
gute Library welche mir das machen kann?

Ich brauche das Bitmap-Array um das Bild an einem Display anzeigen zu 
können, das JPG-Array erhalte ich von einem kleinen Kameramodul.
Ich muss also nur die Umwandlung von JPG-Array ins BMP-Array vornehmen, 
der rest funktioniert bereits.

Danke schon im voraus für jegliche Hilfe

Mit freundlichen Grüssen ME:D

Autor: Dergute Weka (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Hab's noch nicht selbst gemacht, aber ich haett' erstmal die libjpeg im 
Verdacht, das zu koennen. Soll das auf der Zielhardware (welcher) laufen 
oder aufm PC - da waere ImageMagick eine Moeglichkeit?

Gruss
WK

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
libjpeg.sourceforge.net


https://github.com/nothings/stb

Autor: Bonnard (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Dergute W. schrieb:
> Soll das auf der Zielhardware (welcher) laufen
> oder aufm PC

Schlussundendlich möchte ich das BMP-Array an einem Display anzeigen, 
die Hardware wurde soweit fertig gestellt. Mir fehlt nur noch die 
Umwandlung vom JPG-Array ins BMP-Array.

guest schrieb:
> libjpeg.sourceforge.net
>
> https://github.com/nothings/stb

Danke, aber wie wäre es mit einer kleinen Beschreibung?

Autor: Jim Meba (turboj)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Bonnard schrieb:
> Danke, aber wie wäre es mit einer kleinen Beschreibung?

Bitte schön: Beides Links enthalten Source Code zum Dekodieren von JPEG 
inklusive Dokumentation.

Genau so hilfrfeich wie Deine Beschreibung vom Projekt übrigens,
wenn der µC/SOC zu klein gewählt wurde scheitert JPEG Dekodierung am RAM 
oder an Perfromance.

Autor: Dergute Weka (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Bonnard schrieb:
> Schlussundendlich möchte ich das BMP-Array an einem Display anzeigen,
> die Hardware wurde soweit fertig gestellt. Mir fehlt nur noch die
> Umwandlung vom JPG-Array ins BMP-Array.

Achso, ja dann isses ganz klar. Also ein Display. Aha - interessant; die 
Hardware auch schon fertig. Super! Ja, logo - einfach nur noch das 
JPG-Array umwandeln. Ist ganz simpel. Nee - ist eh' klar, ne....Kein 
Ding und so.

SCNR,
WK

Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Genau so hilfrfeich wie Deine Beschreibung vom Projekt übrigens,
> wenn der µC/SOC zu klein gewählt wurde scheitert JPEG Dekodierung am RAM
> oder an Perfromance.
uP ist STM32, denke nicht das dieser zu "schwach" ist.

Autor: Ralph S. (jjflash)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
... na ja, wenn die Konvertierung im Controller machen magst, muß 
mindestens das JPEG und das BMP im RAM gehalten werden.... Je nachdem 
welchen STM32 du nutzt kann das schon mal sehr eng werden.....

Autor: mar IO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das klingt so, als ob das schon irgendwer gemacht hat. Die Suche im 
Internet hat nichts gebracht?

Beitrag "jpg mit STM32 dekodieren"
https://my.st.com/public/STe2ecommunities/mcu/List...
...

Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> ... na ja, wenn die Konvertierung im Controller machen magst, muß
> mindestens das JPEG und das BMP im RAM gehalten werden.... Je nachdem
> welchen STM32 du nutzt kann das schon mal sehr eng werden.....

Oke, also habe den STM32F407 verlötet, was denkst du? reicht das?

Autor: .-. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du bist ja sehr sparsam mit deinen Infos...

Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.-. schrieb:
> du bist ja sehr sparsam mit deinen Infos...

uP:      STM32F407
Display: NHD-2.4-240320
Kamera:  Mini TTL Serial JPEG von Adafruit (leider keine genaue Angabe, 
jedoch ist hier das Datasheet --> 
https://cdn-shop.adafruit.com/product-files/1386/1...)

Sonst noch was?

Nun zurück zur Frage, kennt jemand eine gute und einfach zu verstehende 
Library zur Umwandlung von JPG-Arrays in Bitmap-Arrays?

Wäre euch sehr dankbar:)

Mfg Bonnard P.

Autor: Falk Brunner (falk)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
http://www.elm-chan.org/fsw/tjpgd/00index.html

Ich hab damit noch nicht gearbeitet, aber die Projekte vom Meister Chan 
aus dem fernen Osten stehen immer für sehr gute Qualität.

Sajonara

Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> http://www.elm-chan.org/fsw/tjpgd/00index.html
>
> Ich hab damit noch nicht gearbeitet, aber die Projekte vom Meister Chan
> aus dem fernen Osten stehen immer für sehr gute Qualität.
>
> Sajonara



oke danke, werd mich da mal ein bisschen schlau machen :D

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Bonnard schrieb:
> Nun zurück zur Frage, kennt jemand eine gute und einfach zu verstehende
> Library zur Umwandlung von JPG-Arrays in Bitmap-Arrays?

Liest du überhaupt, was man dir antwortet?

mar IO schrieb:
> Beitrag "jpg mit STM32 dekodieren"

In diesem Beitrag werden 2 kleine Libraries erwähnt, die ganau dafür 
gedacht sind. Und niemand wird probieren, dir was fertiges zu schreiben 
für einen Controller, der nur 64k CCRAM hat und 128k normalen RAM - Viel 
Spass dabei.
Mein Tipp wäre, das du erstmal die 128k komplett von allen anderen 
Variablen freiräumst, die du in den CCRAM verlegst.
Ob dann 128k ausreichen, darin ein JPG in RAW zu entpacken und dann auf 
den Schirm zu werfen, wirst du wohl ausprobieren müssen. Ein STM32F429 
wäre da wohl ein wenig geeigneter, zumal da ein LCD Interface schon bei 
ist. Und das Disco F429 hat sogar schon dicken SDRAM onboard.

Autor: Dergute Weka (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Oha, kaum dass man mit einer Hilti arbeitet, dann lassen sich sogar 
hydraulisch einzelne getrocknete Trauben aus Riechorganen ziehen.

Neben den Loesungen, die scheinbar schon direkt fuer den Prozessor 
existieren, waere es eine ganz verrueckte Idee, z.b. bei der libjpeg 
einfach mal in das File mit dem hochverdaechtigen Namen example.c zu 
gucken. Da koennte man dann sogar Kommentare wie den folgenden (steht 
ungefaehr in Filemitte ) erblicken:
/******************** JPEG DECOMPRESSION SAMPLE INTERFACE *******************/

/* This half of the example shows how to read data from the JPEG decompressor.
* It's a bit more refined than the above, in that we show:
*   (a) how to modify the JPEG library's standard error-reporting behavior;
*   (b) how to allocate workspace using the library's memory manager.
*
* Just to make this example a little different from the first one, we'll
* assume that we do not intend to put the whole image into an in-memory
* buffer, but to send it line-by-line someplace else.  We need a one-
* scanline-high JSAMPLE array as a work buffer, and we will let the JPEG
* memory manager allocate it for us.

Also: Man muss evtl. garnicht die komplette, unkomprimierte Bitmap im 
Speicher halten; wenn das Display nicht regelmaessig refresht werden 
muss.

Gruss
WK

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bonnard schrieb:
> Ich möchte eine JPG Array in ein BMP Array umwandeln

.-. schrieb:
> du bist ja sehr sparsam mit deinen Infos...

immer noch, kein einziges Wort über die Bildgröße!

soweit ich weiss arbeitet JPG mit 24-bit Farben, das BMP erwartet pro 
Pixel ähnliches :)

Wenn also nicht mal die Bildgröße genannt wurde, wie soll man da den RAM 
Bedarf nur fürs BMP abschätzen?

X-pix  Y-pix  3 Byte fürs BMP + Header

Autor: Georg G. (df2au)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> immer noch, kein einziges Wort über die Bildgröße!

Sei mal etwas beweglicher! Der Unterhaltungswert des Threads ist doch 
viel höher, wenn du etwas rätseln musst. Und außerdem ist Freitag :-)

Das Display hat 320*240 Pixel und die Kamera kann man auch auf dieses 
Format zwingen. Also wird es das wohl sein. Das BMP kann er sofort nach 
Umwandlung einer JPG-Gruppe (8 Zeilen) stückweise raus schieben. Nur das 
JPG wird er komplett zwischenspeichern müssen, da die Kamera das seriell 
per RS232 raus wirft.

Ich mach noch mal einen Eimer Popcorn.

Autor: Bonnard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Draco schrieb:
> Hast du es noch immer nicht hinbekommen?

Wenn du so gut bist, da mach es gerade...

Wenn du nicht helfen willst, gerne Klappe halten.! Danke

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bonnard schrieb:
> Draco schrieb:
>> Hast du es noch immer nicht hinbekommen?
>
> Wenn du so gut bist, da mach es gerade...
>
> Wenn du nicht helfen willst, gerne Klappe halten.! Danke

Entschuldige mal, du machst drei verschiedene Threads auf, kommst mit 
keinen Info. Und nein... Ich würde es nicht machen, weil es dafür ganz 
andere Ansätze gibt.

Wo sind denn die ganzen Infos? Wo ist denn deine Bereitschaft auf das 
obig genannte einzugehen?

Sorry, ich bin raus!

Autor: Weinbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt halt drauf an was mit dem Bild alles passieren soll ... nur 
Anzeigen geht wohl mit der Lib Line by Line, dann nur noch ans LCD raus 
schieben. Das JPG musser halt puffern.
Wenn da noch z.B. Filter angewendet werden sollen wirds da dann enger. 
Hab sowas vor Jahren mal mit nem Mega32 gemacht und Sobel-Filter für 
Objekterkennung drüber laufen lassen ... ging, aber nur weil ich extern 
n EDO-RAM Riegel drangehängt habe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.