Dieses Beispiel implementiert einen einfachen Sobel-Filter in Open Computing Language (OpenCL™). Das Beispiel enthält einen einzelnen Arbeitspunkt-Kernel, der einen Sobel-Bediener implementiert, um Kanten in einem Eingangs-RGB-Bild (8 Bits pro Komponente) zu erkennen und ein einseitiges Bild ausgibt. Der Kernel-Code ist aufschlussreich und zeigt an, wie ein Zeilenpuffer aus dem Fenster effizient beschrieben werden kann. Dies ist eine Technik, die in vielen anderen Bildfilteranwendungen verwendet werden kann.
Dieses Beispiel verfügt auch über eine interaktive Host-Anwendung. Die Host-Anwendung ermöglicht es Ihnen, zwischen der Anzeige der Eingabe oder einem gefilterten Bild zu wählen. Der Schwellenwert für die Edge-Erkennung kann auch dynamisch angepasst werden, und der ausgewählte Schwellenwert wird als Parameter an den OpenCL™ Kernel übertragen.
Sobel-Filterleistung
Funktionen
- Visueller und interaktiver Host
- Effiziente 2D-Fensterlinienpuffer
- Einzel-Arbeitselement-Kernel
Downloads
Das Design-Beispiel liefert den Quellcode für das OpenCL-Gerät (.cl) und die Host-Anwendung. Zum Kompilieren der Host-Anwendung enthält das Linux* Paket eine Makefile und das Windows-Paket enthält ein Microsoft Visual Studio 2010-Projekt.
Die folgenden Downloads werden für dieses Beispiel bereitgestellt:
Die Verwendung dieses Designs unterliegt den Bedingungen der Hardware-Referenzdesignlizenzvereinbarung.
Software- und Hardware-Anforderungen
Dieses Designbeispiel erfordert die folgenden Tools:
- Intel® FPGA-Software v17.1 oder neuer
- Intel FPGA SDK für OpenCL v17.1 oder neuer
- Unter Linux: GNU Make und gcc
- Unter Windows: Microsoft Visual Studio 2010
- Host-Anwendung erfordert Open Graphics Library (OpenGL) für Display
Um die Intel Design-Tools herunterzuladen, besuchen Sie die OpenCL-Download-Seite. Die Anforderungen an das zugrunde liegende Betriebssystem sind dieselben wie die des Intel FPGA SDK für OpenCL.
OpenCL und das OpenCL-Logo sind Marken von Apple Inc., die mit Genehmigung von Khronos verwendet werden.
* Das Produkt basiert auf einer veröffentlichten Khronos-Spezifikation und hat den Khronos-Konformitätstest bestanden. Den aktuellen Konformitätsstatus finden Sie unter www.khronos.org/conformance.