JPG auf MMC/SD - Karte speichern

OP #1010348
Lesenswert?

Hi
Hat von euch schon mal einer die Cam von Ulrich Radig angeschlossen und 
die Bilder im JPG Format auf MMC/SD – Karte gespeichert?

Ich wollte so was mal in angriff nehmen nur leider fehlen mir dazu die 
nötigen Ansätze.
Für die Speicherrung auf MMC/SD – Karte  habe ich überlegt die Lib. von 
Stefan Seegel  zu nehmen 
(Beitrag "MMC/SD Karte: mmc_lib Version 2.0").
Als Cam wollte ich die DC3840 nehmen. Jetzt ist nur die frage wie 
bekomme ich Daten auf die MMC/SD – Karte als JPG gespeichert.
Für den gesamten Aufbau wollte ich einen Atmega32 nehmen.

Ich hoffe ihr könnt mir da ein wenig weiterhelfen.

Gruß Simon
#1010371
Lesenswert?

Als ersten Schritt solltest du dir vielleicht mal grob anschauen, wie 
JPEG funktioniert, und ggfs mal den Quelltext der 
Referenz-Implementierung ("jpeg6b") überfliegen.

Vermutlich wird dir dabei die Lust auf "Jpeg komprimieren mit Atmega32" 
vergehen... Speicher lieber unkomprimierte BMPs oder GIFs mit fixer 
Palette. Das Umwandeln in JPG macht nachher ein PC ganz nebenbei ohne 
ins Schwitzen zu kommen.
#1010378
Lesenswert?

@Ernst
Alles unnötig, die Kamera liefert schon die Bilder als jpg.

@Simon

Mach dir einen Buffer von z.B. 512 oder 1024Byte und fülle diesen mit 
Daten von der Kamera. Diesen schreibst du dann in eine Datei.
Die von dir angesprochene MMC Lib steuert allerdings nur die MMC/SD an. 
Das Dateisystem musst du selbst machen, oder die Daten Low Level auf die 
Karte speichern.
Oder du nimmst z.B. dieses hier
http://elm-chan.org/fsw/ff/00index_e.html
dann kannst du die Daten einfach mit f_write(buffer, usw.) schreiben.
#1010427
Lesenswert?

Ja, kannst du.
Die Daten haben direkt schon den passenden jpeg Header usw. Wenn du die 
Datei als .jpg speicherst, kann die Datei am PC wie jede andere jpg 
Datei angezeigt werden.

Das größte Problem dürfte sein, die Daten der Kamera in 512 oder 
1024Byte große Happen zu zerlegen.
Ein Bild ist je nach Auflösung und Komprimierung etwa 5-15kByte groß.
Die Software von Ulrich Radig lässt die Kamera die Daten mehrmals 
senden, und empfängt nur jeweils den passenden Bereich. Das ist 
furchtbar ineffizient, aber bei nur so wenig RAM geht es nicht anders.
Mit einem großen µC (dsPIC, M16C, ARM usw.), mit ausreichend RAM 
(>16kByte), kann man die Daten auch in einem Rutsch empfangen, und 
danach die Daten auf die Karte schreiben. Je nach Helligkeit kommt man 
damit auf etwa 0,3 bis >2Bilder pro Sekunde (bei maximaler Qualität, 
also entweder 320x240, min. Kompression, oder 640x480, mittlere 
Kompression).
Mit einem mega32 würde ich aber eher etwas in Richtung 1-5s/Bild 
erwarten.

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