Forum: Mikrocontroller und Digitale Elektronik JPEG Dekomprimierung mit Mikrocontroller


von Thomas Schlegl (Gast)


Lesenswert?

Hallo Leute!

Ich möchte ein Jpeg-Bild dekomprimieren und dann auf
einem Display ausgeben.

Hab mir das folgender Maßen vorgestellt:
   -die Jpeg-Bilder ins Flash speichern
   -ein Bild dekomprimieren (als BMP) und ins Ram speichern
   -von dort dann ans Display (TFT) liefern

Vom Schaltungsaufbau gibt es glaub ich keine Probleme
zu befürchten, aber die Dekomprimierung macht mir doch Kopfzerbrechen.

hat irgendwer schon Erfahrung mit einer solchen Umwandlung
und kann mir seine Quellcode zur verfügung stellen,
oder nützlich Tips wie man so etwas am besten programmiert.

Will das ganze in ANSI-C programmieren.

Wär super wenn mir wer helfen könnte.

mfg
Thomas!

von Sebastian (Gast)


Lesenswert?

Naja, der JPEG-Algorithmus an sich ist kein Geheimnis. Die Sourcen gibt
es auf der offiziellen JPEG-Site (http://www.ijg.org/files/). Aber ob
du das in einen µC verwurschtelt bekommst?! Was für ein LCD möchtest du
denn ansteuern? Farbe oder monochrom?

von Thomas Schlegl (Gast)


Lesenswert?

Möcht das in ein Display mit xVGA (1024x768x16) farbe darstellen!

Es würd nur um den Code gehen,
von der Zeit her is genug vorhanden.
Während das eine Bild dargestellt wird,
kann man ja das andere berechnen.

Hast du eine Idee wie man das programmieren könnte?

von Sebastian (Gast)


Lesenswert?

Wie gesagt: Geh auf die Seite, die ich oben gepostet habe. Da findest du
Sourcecode zur Kompression und Dekompression in C (Pascal-Ports gibt es
BTW auch). Das ganze auf einen AVR anzupassen ist natürlich nicht
gerade trivial ...

von Thomas Schlegl (Gast)


Lesenswert?

Die Dateien hab ich schon...

wie gesagt is halt nicht einfach das auf nen µC zu bekommen.
Trotzdem, danke

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Rechne dir doch mal aus wie groß so ein dekomprimiertes Bild ist, und
denke dann nochmal darüber nach ob das was du vorhast realistisch ist.

von Thomas Schlegl (Gast)


Lesenswert?

das bild hat ca. 1,5 MB bei svga mit 24 Bit (800x600x24)

Wir suchen zwar gerade den richtigen µC aber das kann
doch nicht so ein Problem sein, oder?

Es geht nur um Code, wie ich so ein komprimiertes Bild
auslesen kann und als BMP im RAM speicher!

von Thomas Schlegl (Gast)


Lesenswert?

Hallo nochmal!

Kennt jemand von euch den Hagen.

Der hat am 10.2.2004 geschrieben, dass
er so eine Dekomprimierung schon mal für
den PC geschrieben hat?

Das wär wenigstens mal ein Anfang!

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Sourcecode zur JPEG-Dekodierung zu finden (ohne Fließkomma-Berechnungen)
dürfte ja nicht all zu schwer sein. Wenn du so etwas gefunden hast
musst du es umschreiben dass nur auf Mikrocontrollern umsetzbarer Code
übrig bleibt (Dekodierung aus dem Speicher in den Speicher, kein fopen
usw.), den Speicherbedarf bestimmen und einen geeigneten Prozessor
raussuchen (ein AVR ist das definitiv nicht).

Aber so wie sich die Fragestellung liest vermute ich mal eine relativ
geringe Erfolgschance. Wenn ich mich dabei irre und am Ende doch etwas
sinnvolles rauskommen sollte, umso besser :)

von Thomas K (Gast)


Lesenswert?

Hmm. Ich versteh jetzt nicht wieso das an den AVRs scheitern soll.
Ich meine es geht ja nicht um Geschwindigkeit und einen externen
Speicher anzuschließen, der groß genug ist, sollte doch auch nicht das
Problem sein, oder?

von uli (Gast)


Lesenswert?

Also ich habe mal für ein TFT (640x480 3bit pro farbe)eine Ansteuerung
mit AVR realisiert war grotten langsam, die einzige möglichkeit die ich
mit einen AVR sehe, das das Display direkt auf das RAM zugreift und der
AVR die dekomprimierung reledigt und ins ram ablegt(quasi DMA),und das
gestaltet sich schon nicht einfach.
ich würde mal hergehen und den infineon C161 anschauen. Rechnet mit
16Bit und hat auch 256KByte Flash sowie 10KByte Ram nur als tipp.

Mfg Ulrich Radig

von Benedikt (Gast)


Lesenswert?

Wenn sowas in QBASIC geht, gehts auch mit nem uC, da QB nicht auf den
gesamten Arbeitsspeicher zugreifen kann (zumindest nicht ohne
Modifikationen). Mehr als 64k sind nicht möglich.
uC mit zusätzlichem LCD/TFT Controller (der bringt auch gleich 2MB DRAM
mit, wie z.B: der S1D13504)

Irgendwo hab ich noch ne jpeg Routine. Man sieht die JPEG-Fehler zwar
etwas stärker als bei einem normalen Programm, aber es läuft
einwandfrei. Irgendwo hab ichs, ich werd mal suchen.

von Thomas Schlegl (Gast)


Lesenswert?

Das wär echt super und würd mir wirklih weiterhelfen.
Danke schon mal im voraus!

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Hier das QBASIC Programm

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.