www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JPEG Dekomprimierung mit Mikrocontroller


Autor: Thomas Schlegl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas Schlegl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Thomas Schlegl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Dateien hab ich schon...

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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Schlegl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Thomas Schlegl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Thomas K (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Schlegl (Gast)
Datum:

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

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das QBASIC Programm

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.