mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB Kamera mitMikrokontroller auslesen?


Autor: Johannes G. (johannes123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende zurzeit eine USB-CMOS-Kamera mit 1,3 MP die über ein Via 
Epia N800 Board mit Windows XP ausgelesen wird. Die Daten werden auf 
eine CF-Karte gespeichert.

Ich habe keinen wirklichen Überlick, was es für MC gibt und wofür die am 
Besten verwendet werden, bzw. wann man auf einen DSP oder embedded PC 
zugreifen sollte, deshalb folgede Frage:

Ist es möglich, für soetwas auch einen MC zu verwenden, um Platz und 
Geld zu sparen. Für die Kamera gibt es auch Linux treiber.
Könnte man auf einem MC ein embedded Linux laufen lassen, dass die 
Kamera ausliest und die Daten abspeichert.
Ist der USB-Host auf einem MC realisierbar und wenn ja reicht die 
Rechenleistung eines MC für das auslesen und komprimieren der Videodaten 
aus?

Über ein paar Infos wie, bzw. mit welcher hardware so ein Problem am 
Besten gelöst werden kann wär ich sehr dankbar.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip ja, aber um mit einer USB-Kamera fertig zu werden, empfiehlt 
es sich, einen Mikrocontroller zu nehmen, der einerseits den USB-Host 
eingebaut hat und andererseits linuxtauglich ist. Also mindestens 
AT91RM9200 (180 MHz ARM9). Da solche Mikrocontroller vielbeinig sind und 
externen Speicher benötigen, empfiehlt sich meist ein fertiges Modul.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes G. schrieb:
> Ist der USB-Host auf einem MC realisierbar und wenn ja reicht die
> Rechenleistung eines MC für das auslesen und komprimieren der Videodaten
> aus?

Im Prinzip ja klaro ist das machbar. Ist nur die Frage nach Aufwand und 
Kosten. Ohne einen FPGA wirst du wohl kaum auskommen. Dein 'Problem' ist 
zum einen dein USB-Host (Linux ist ein guter Ansatz - einen 
WebcamUSBtreiber für Mikrocontroller hat glaube ich noch niemand 
portiert), das andere 'Problem' sind deine imensen Datenmengen. 1,3 
Megapixel lässt auf 1280 x 960 Pixel schließen (interpoliert). Die Frage 
ist, ob diese Interpolation direkt in der Webcam oder am PC stattfindet. 
Hier eine kleine Rechendemo:

Rechnen wir mal mit 1280 x 960. Das sind dann 1228800 Pixel (=1,3 
Megapixel).
Jedes Pixel hat gemäß der Farbtiefe einen gewissen Speicherbedarf. Bei 8 
Bit Farbtiefe sind das pro Pixel 3 * 8 = 24 Bits pro Pixel
Dann nehme man noch eine Wiederholfrequenz von mangelhalften 15 Bildern 
pro Sekunde (fps).

Summa Summarum:

1228800 x 24 x 15 = 44.236.800

Also du muss pro Sekunde erst mal 44,2 Millionen Bits bearbeiten 
(alleine das Einlesen einer Sekunde Videostream)  - von Komprimierung 
wollen wir hier noch garnicht reden ...

Das ist schon ein böser Hammer - da benötigst du viel viel RAM.

Dann musst du noch Algorithmen haben die dir das ganze komprimieren 
(während schon wieder weitere 44,2 Mio Bits bearbeitet werden müssen) 
und dann noch auf die CF-Karte klatschen...

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.