Das ist der Haken bei Bildverarbeitung, die riesige Menge an Daten.
Nimm doch einfach nur mal VGA-Auflösung, also 640 x 480 Pixel mit 16 Bit Farbe, da haste schonmal pro Bild 614 KB unkomprimierte Daten, die da rein laufen müssen. bei 12MBit/sekunde haste 1,5 MByte je Sekunde ohne so Kleinigkeiten wie Steuersignale an Nutzdaten für USB2, USB1 ist da nochmal deutlich langsamer. Aber gesetzt den Fall Du übertragst nur die Bilddaten sind das dann nur 2,x Frames pro Sekunde die über die Leitung drüber gehen und dann sind sie noch nicht verarbeitet, sprich skaliert für Dein Anzeigefenster etc. Klar wird Deine Kamera mehr als 2 Frames schaffen, weil meist mit JPG-Komprimierung gearbeitet wird, die je nach Qualität das Bild auf 10% der ursprünglichen Größe schrumpfen kann, aber im Rechner müssen die Bilder für die Verarbeitung dann doch dekomprimiert werden. Beispielsweise ne Kantenerkennung läuft eben pixelweise ab und dabrauchts dann halt für Dekompression die Rechenpower dann dafür.
Die Bildschärfe ist halt auch von der Güte des Sensors abhängig und gute kosten halt auch n bissl mehr tendenziell.
Beschleunigen kannst Du die Geschichte am Einfachsten indem Du die Ansprüche herunter setzt, sprich niedrigere Auflösung und evtl. Graustufen. Dann schrumpft die Datenmenge sichtbar zusammen.
Eine andere Geschichte währe halt einen anderen Verarbeitungsweg zu wählen. Ich meine damit die Kameradaten eben kameranah zu verarbeiten. Eine C3088 schaufelt ihre Grafikdaten 16 Bit parallel raus (mit irgendwas um die 14-15MHz das ergibt dann 30 MB/sek oder 240 MBit/sek). Die könntest Du z.B. per FPGA oder ARM Prozessor in n RAM schaufeln und dort vorverarbeiten. Die bearbeiteten Daten könntest Du dann schon fertig an den Computer schicken, beispielsweise per USB.
Lesezeichen