Zuverlässige industrielle Bildverarbeitung mit hoher Bandbreite

Framegrabber erfasst und verarbeitet bis zu 1700 MB/s vollkommen verlustfrei

(PresseBox) (München, ) Das beständige Streben nach höherer Auflösung und höherem Systemdurchsatz führt zum Entwurf von Vision-Systemen mit mehreren Videoeingängen, von denen jeder einzelne Hunderte oder sogar Tausende Megabyte pro Sekunde (MB/s) an Pixeldaten liefert. Diese Bilddatenraten stellen Erfassungshardware und -software vor eine Herausforderung, wenn zuverlässige Bilderfassung auf einem PC-basierten System erzielt werden soll, der von Anwendungen stark ausgelastet ist. In einer Studie wurde untersucht, wie effektiv der Framegrabber Matrox Radient bei der zuverlässigen Bilderfassung mit hoher Bandbreite und der Entlastung anderer Rechnerressourcen ist.

Voraussetzungen für gute Performance
Bei einem PC-basierten System, das unter Windows läuft, stören hohe Rechenbelastung und viel Datenverkehr im System oft die für eine zuverlässige Bilderfassung notwendigen Aktivitäten. Eine Anwendung zur Bilderfassung generiert zahlreiche Systemereignisse, die mit minimaler Latenz verarbeitet werden müssen, um sicherzustellen, dass alle Bilder erfolgreich im Arbeitsspeicher des Systems ankommen. Aufgrund seines nicht deterministischen Wesens garantiert Windows nicht automatisch eine zeitnahe Antwort auf die mit der Bilderfassung verbundenen Ereignisse. Aus diesem Grund kann die Zuverlässigkeit der Bilderfassung durch hohe Aktivität im Benutzermodus (d. h. durch Benutzeranwendungen), die während der Bilddatenerfassung ablaufen, beeinträchtigt werden.

Der Durchsatz bei der Bilderfassung (d. h. die Menge an Pixeldaten, die in einer bestimmten Zeit erfasst werden müssen) hat insbesondere bei Kameras mit hoher Bildrate ebenfalls Auswirkungen auf die Zuverlässigkeit, da die Häufigkeit dieser Ereignisse zunimmt. Eine größere Ereignishäufigkeit erhöht die Wahrscheinlichkeit, dass Bilder verloren gehen. Darüber hinaus sind die meisten Systeme heute so ausgelegt, dass sie die Rechnerressourcen (also CPUs, Arbeitsspeicher und Peripherie) mit Bildverarbeitung und Bildanalyse sowie sonstigen Aufgaben, beispielsweise Vernetzung, voll auslasten, was die Situation noch verschlimmert. Daher ist eine Lösung erforderlich, die eine zuverlässige Bilderfassung und Bildverarbeitung unabhängig von der Systembelastung erlaubt.

Matrox Radient und Matrox Imaging Library (MIL)
Matrox Radient eCL ist ein hochleistungsfähiger Framegrabber mit mehreren Videoeingängen mit hoher Bandbreite. Matrox Radient eCL unterstützt alle Konfigurationen des Camera Link Schnittstellenstandards: Base, Medium und Full (einschließlich bis zu 10 Taps). Der Framegrabber erlaubt die gleichzeitige Datenerfassung aus bis zu vier Base Kameras (d. h. bis zu 4 x 255 MB/s oder 1.020 MB/s insgesamt mit Matrox Radient eCL-QB) oder zwei Full Kameras (d. h. bis zu 2 x 850 MB/s oder 1.700 MB/s insgesamt mit Matrox Radient eCL-DF).

Um diese hohen Eingangsraten verarbeiten zu können, ist der Framegrabber Matrox Radient mit beträchtlichem Onboard-Arbeitsspeicher von typischerweise 2 GB ausgestattet, mit dem DMA-Transfers (Direct Memory Access) in das Hostsystem gepuffert werden. Eine PCIe x8 bidirektionale Punkt-zu-Punkt-Hostschnittstelle mit einer Spitzenleistung von 2 GB/s überträgt Bilddaten an den Host, ohne dass Bilder verloren gehen.

Darüber hinaus lagert der Matrox Radient wiederholt ausgeführte CPU-intensive Aufgaben auf einen dedizierten Altera Stratix III/IV FPGA aus. Die FPGA-Verarbeitungsfunktionen umfassen unter anderem örtliches und zeitliches Filtern, Gain- und Offset-Korrektur, Hot-Pixel-Korrektur, Korrektur optischer und perspektivischer Verzerrung, Bayer-Interpolation, Farbraumkonvertierungen und Transformationen in die Frequenzdomäne. Diese Auslagerungsmöglichkeit setzt wertvolle CPU-Ressourcen für den Rest der Anwendung frei und beschleunigt die Verarbeitung insgesamt.

Matrox Radient wird mithilfe der Matrox Imaging Library (MIL) programmiert, einer umfangreichen Sammlung von Softwarewerkzeugen für die Entwicklung industrieller Bildverarbeitungsanwendungen. Die MIL enthält eine Vielzahl von Programmierfunktionen für Bilderfassung, Bildverarbeitung, Bildanalyse, Bildbeschriftung, Bildanzeige und Bildarchivierung. Diese Funktionen wurden sorgfältig optimiert, um den engen zeitlichen Beschränkungen vieler Anwendungen Rechnung zu tragen.

Die MIL wurde speziell dafür entworfen, die Performance bei der Bilderfassung zu maximieren, und führt die Steuerung der Bilderfassung im Windows-Kernel-Modus durch, um höheren Determinismus und kürzere Reaktionszeiten zu gewährleisten. Außerdem unterstützt der mehrfach gepufferte Mechanismus der MIL Callback-Funktionen zur Implementierung gleichzeitiger Bilderfassung und -verarbeitung. Dies erhöht die Zuverlässigkeit der Anwendung weiter, da der Verlust von Bildern, der auftreten kann, wenn die Bildverarbeitung im Host gelegentlich länger dauert als die Bilderfassung, begrenzt, wenn nicht vollständig eliminiert wird.

Command Queuing: Der Schlüssel zum Erfolg
Für die Studie zur Zuverlässigkeit der Bilderfassung mit hoher Bandbreite mit Matrox Radient wurde mithilfe der MIL-Standardfunktionen eine Folge wiederkehrender Befehle durch den Softwaretreiber auf dem Board in eine Queue gestellt: Bilderfassung, Bildverarbeitung (auf dem FPGA) und Übertragung aus dem Bildpuffer (unter Verwendung von DMA zum Kopieren der Daten vom Onboard- in den Hostarbeitsspeicher). Die Möglichkeit des Queuing von Befehlen auf dem Matrox Radient ist der Schlüssel zum Erfolg für eine zuverlässige Bilderfassung mit hoher Bandbreite und eine Verarbeitungsperformance auf dem Board mit minimaler Systemvariabilität (Jitter).

Testanordnung und -ergebnisse
Die Testanordnung für die Studie umfasste folgende Geräte:
- PC: Zwei Intel Xeon E5645 CPUs (12 Kerne) mit 24 GB DDR3-SDRAM und 64-Bit-Windows Vista
- Framegrabber: Matrox Radient eCL-DF (d. h. dual-Full) Board im PC, mit einem Camera Link-Videosimulator verbunden
- Videoquelle: Camera Link-Videosimulator, der zwei 1K x 1K x 8-Bit Streams, die jeweils über 8 Taps bei 85 MHz gesendet werden, mit je 630 fps oder MB/s an Bilddaten (insgesamt 1260 MB/s) erzeugt

Eine MIL-basierte Benchmarking-Anwendung erfasste gleichzeitig Daten aus zwei Videostreams in den Arbeitsspeicher des Matrox Radient. Um die Entlastungsfähigkeit bei der Bildverarbeitung nachzuweisen, wurde der erste Stream einer Gain/Offset-Operation unterzogen, die vom FPGA auf dem Matrox Radient durchgeführt wurde. Beide Streams wurden dann mithilfe der unabhängig vom Host arbeitenden DMA-Engine des Matrox Radient in den Hostarbeitsspeicher übertragen.

Für die Bilderfassung, Bildverarbeitung und Bildübertragung zum Host wurden 8 x 630 MB/s oder 5.040 MB/s der Bandbreite des Onboardspeichers des Matrox Radient verbraucht. Für den ersten Stream wurde auf den Onboardspeicher einmal zur anfänglichen Erfassung, dreimal für die Gain/Offset-Operation (d. h. Bild, Gain-Werte und Offset-Werte), einmal für das Zurückschreiben des Ergebnisses und ein letztes Mal für die Übertragung des Bildes auf den Host zugegriffen. Gleichermaßen wurde für den zweiten Stream einmal für die anfängliche Erfassung und einmal für die Übertragung des Bildes auf den Host auf den Onboardspeicher zugegriffen.

Wie oben erwähnt, nutzte die Benchmarking-Anwendung die Fähigkeit der MIL, die Befehle zur Bilderfassung und Onboardverarbeitung für jedes Bild vorab in eine Queue zu stellen und Function Callbacks als Reaktion auf verschiedene Ereignisse (d. h. End-of-Grab, End-of-Processing und End-of-Transfer) durchzuführen, um minimalen Systemjitter zu erzielen. Neben dem Speisen und Überwachen von Operationen auf dem Board ließ die Benchmarking-Anwendung die CPU-Kerne I/O-gebundene Bildverarbeitung (z. B. Frame-Averaging) auf Anforderung (d. h. bei aktiver Callback-Funktion) vornehmen.

Um die Erzielung statistischen Daten zu erzielen, die für die Bewertung der Performance des Matrox Radient notwendig sind, wurden sowohl die Benchmarking-Anwendung als auch die MIL dafür eingerichtet, verschiedene Zeitstempel am Ende spezifischer Operationen an den einzelnen Bildern zu erfassen:
- End-of-Grab (EoG): In der ISR (Interrupt Service Routine) des Gerätetreibers erfasst, wenn die Erfassung eines Bildes in den Arbeitsspeicher des Boards abgeschlossen ist.
- End-of-Processing (EoP): Ebenfalls in der ISR des Gerätetreibers erfasst, wenn die Übertragung des vom Board verarbeiteten Bildes an den Host abgeschlossen ist.
- Function Callback (FC): Erfasst, wenn die Callback-Funktion durch die MIL aufgerufen wird, bevor das Bild auf dem Host (im Benutzermodus) verarbeitet wird.

Die Zeitstempel wurden dann dazu verwendet, die Variabilität bzw. den Jitter (in Millisekunden) bei der Reaktion auf diese Ereignisse zu bestimmen (siehe Tabelle 1).
Gleichzeitig mit der Benchmarking-Anwendung wurden drei Anwendungen ausgeführt, die eine hohe Gesamtbelastung für den Rechner simulierten:
- Anwendung 1: Führte Pufferkopieroperationen in einer Schleife aus, um Bandbreite im Hostarbeitsspeicher zu belegen (d. h. 10 GB/s).
- Anwendung 2: Beschäftigte die CPU-Kerne. Jede Instanz der Anwendung beschäftigte einen CPU-Kern zu 99 %. Für die Studie wurden neun Instanzen gestartet (neben der Benchmarking-Anwendung), um die zwölf CPU-Kerne voll auszulasten (siehe Abb. 1).
- Anwendung 3: Generierte Netzwerkaktivität, indem sie die Benchmarking-Anwendung und die oben genannten Anwendungen über eine WindowsRemote Desktop-Sitzung startete und überwachte.

Tabelle 1 und die Abbildungen 2 bis 5 zeigen, dass trotz starker Auslastung der Systemressourcen (CPU, Arbeitsspeicher und Netzwerk) die Bilderfassungs- und Bildverarbeitungszeiten auf dem Board relativ stabil blieben und um die durchschnittliche Bilddauer lagen (1/630 fps oder 1,53 ms) und somit als deterministische Operationen ohne Bildverlust betrachtet werden können. Die Jitter-Zeiten sind im schlimmsten Fall (siehe Spitzenwerte in den Abb. 2 und 4) im Vergleich zur durchschnittlichen Bilddauer relativ kurz (d. h. Zehntel-Millisekunden verglichen mit 1,53 ms). Wenn die Erfassungszeit über dem Durchschnitt lag, kompensierte der Queuing-Mechanismus der MIL dies außerdem durch eine schnellere Erfassung und Verarbeitung des nächsten Bildes (aus Sicht des Hosts).

Untersucht man den Function Callback Jitter (siehe Abb. 3 und 5), erklärt sich die hohe Variabilität durch die nicht deterministischen Antwortzeiten der Anwendungen im Benutzermodus, die durch den Mangel an verfügbaren Systemressourcen noch verschlechtert wurden. Diese Ressourcen waren mit anderen Aufgaben beschäftigt. Dies zeigt die Abhängigkeit des Function Callback vom Host, im Gegensatz zur Bilderfassung, die Verarbeitung durch den FPGA auf dem Board und dem Datentransfer an den Host, die von der Performance des Matrox Radient abhingen.

Fazit
Die Studienergebnisse zeigen, dass der Framegrabber Matrox Radient und die Matrox Imaging Library (MIL) mit ihrem Command-Queuing-Mechanismus erfolgreich zusammenarbeiten, um auf einem PC unter Windows eine zuverlässige Bilderfassung mit hoher Bandbreite und effektive Vorverarbeitung zu erzielen, und zwar unabhängig von den Aktivitäten im Benutzermodus, die Ressourcen im Hostsystem belegen.

Link zu Radient
http://www.rauscher.de/...

Messhinweis:
VISION 2010
Halle 4 - Stand 4c15

RAUSCHER
Johann-G.Gutenberg-Str. 20
D-82140 Olching

Tel 0 81 42 / 4 48 41-0
Fax 0 81 42 / 4 48 41-90

E-Mail: info@rauscher.de
www.rauscher.de

Diese Pressemitteilungen könnten Sie auch interessieren

News abonnieren

Mit dem Aboservice der PresseBox, erhalten Sie tagesaktuell und zu einer gewünschten Zeit, relevante Presseinformationen aus Themengebieten, die für Sie interessant sind. Für die Zusendung der gewünschten Pressemeldungen, geben Sie bitte Ihre E-Mail-Adresse ein.

Es ist ein Fehler aufgetreten!

Vielen Dank! Sie erhalten in Kürze eine Bestätigungsemail.


Ich möchte die kostenlose Pressemail abonnieren und habe die Bedingungen hierzu gelesen und akzeptiert.