Startseite » Allgemein »

1 700 MB/s vollkommen verlustfrei

Matrox Radient Whitepaper: FPGA Framegrabber mit hoher Bandbreite
1 700 MB/s vollkommen verlustfrei

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 (durch Benutzeranwendungen) während der Bilddatenerfassung beeinträchtigt werden.
Der Durchsatz bei der Bilderfassung (d. h. die Menge an Pixeldaten, die in einer bestimmten Zeit erfasst werden müssen) hat besonders 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.
Framegrabber und Bibliothek
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 (bis zu 10 Taps). Der Framegrabber erlaubt die gleichzeitige Datenerfassung aus maximal vier Base Kameras (4 x 255 MB/s oder 1.020 MB/s insgesamt mit Matrox Radient eCL-QB) oder zwei Full Kameras (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 Verbindung 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 Verzerrungen, Bayer-Interpolation, Farbraumkonvertierungen. 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, Bildannotation, Bildanzeige und Bildarchivierung.
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 statistischen Daten zu erhalten, 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).
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 Bild 1).
  • Anwendung 3: Generierte Netzwerkaktivität, indem sie die Benchmarking-Anwendung und die oben genannten Anwendungen über eine Windows Remote Desktop Sitzung startete und überwachte.
Tabelle 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 Bildern 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 Bild 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.
Die Studienergebnisse zeigen, dass der Framegrabber Matrox Radient und die Matrox Imaging Library (MIL) mit ihrem Command-Queuing-Mechanismus erfolgreich zusammenarbeiten, und damit auf einem PC unter Windows eine zuverlässige Bilderfassung mit hoher Bandbreite und effektiver Vorverarbeitung erzielen, und zwar unabhängig von den Aktivitäten im Benutzermodus, die Ressourcen im Hostsystem belegen.
RAUSCHER, Olching www.rauscher.de
Fachmesse VISION: Halle 4 Stand C15
Newsletter

Jetzt unseren Newsletter abonnieren

Quality Engineering
Titelbild QUALITY ENGINEERING Control Express 1
Ausgabe
Control Express 1.2024
LESEN
ABO
Webinare & Webcasts

Technisches Wissen aus erster Hand

Whitepaper

Whitepaper zum Thema QS


Industrie.de Infoservice
Vielen Dank für Ihre Bestellung!
Sie erhalten in Kürze eine Bestätigung per E-Mail.
Von Ihnen ausgesucht:
Weitere Informationen gewünscht?
Einfach neue Dokumente auswählen
und zuletzt Adresse eingeben.
Wie funktioniert der Industrie.de Infoservice?
Zur Hilfeseite »
Ihre Adresse:














Die Konradin Verlag Robert Kohlhammer GmbH erhebt, verarbeitet und nutzt die Daten, die der Nutzer bei der Registrierung zum Industrie.de Infoservice freiwillig zur Verfügung stellt, zum Zwecke der Erfüllung dieses Nutzungsverhältnisses. Der Nutzer erhält damit Zugang zu den Dokumenten des Industrie.de Infoservice.
AGB
datenschutz-online@konradin.de