JPEG-Operator mit skalierbarer Datenrate für Daten-Streaming

Bild 2 | Chinesische Streetview-Anwendung mit Angabe der Himmelsrichtungen, bei der eine Komprimierung zu 20 Prozent des ursprünglichen Datenvolumens führte. (Bild: Silicon Software GmbH)

Unterabtastung der Chrominanz-Komponenten

Um die Farbigkeit zu reduzieren, wird der RGB-Farbraum in das Farbmodell YCbCr umgewandelt, bestehend aus der Helligkeitskomponente Y und zwei Farbkomponenten Cb (Blau-Gelb Chrominanz) und Cr (Rot-Grün Chrominanz). Durch Farbunterabtastung (chroma subsampling) wird die Abtastrate und damit die Datenmenge der Chrominanz-Kanäle Cb und Cr gegenüber der Abtastrate des Luminanz-Kanals Y reduziert. Dies geschieht durch Vergrößerung des räumlichen Abstands zwischen den Abtastpunkten der Farbkomponenten, ohne dass es zu einer spürbaren Qualitätsverringerung kommt. Bereits mit dieser Maßnahme lässt sich bei der JPEG-Komprimierung 50 Prozent der Datenmenge einsparen, wenngleich verlustbehaftet. Der JPEG-Operator in VisualApplets enthält Beispiele für das Bildformat 4:2:0 mit einer in beiden Raumrichtungen identischen Abtastung. Die Bildformate 4:4:4 für hohe Qualität ohne Unterabtastung und 4:2:2 mit einer in horizontaler Richtung nur halb so großen Abtastung wie in vertikaler Richtung lassen sich mit VisualApplets ebenfalls realisieren. Steht die Unterabtastung am Anfang des JPEG-Komprimierungsprozesses, wird der Prozess mit der verlustfreien Huffman-Kodierung abgeschlossen. Dieses Verfahren macht sich zunutze, dass manche Pixel häufiger vorhanden sind als andere (Häufigkeitsverteilung). Häufig vorkommende Pixel werden durch möglichst kurze Codewörter kodiert, um das Bild mit möglichst wenigen Bits zu kodieren. Kenngröße ist die mittlere Codewortlänge, die angibt, wie viele Binärzeichen im Durchschnitt pro Pixel benötigt werden. Der optimale Code soll zu einer möglichst kleinen mittleren Codewortlänge führen. Die Kompressionsrate des Verfahrens ist daher stark von der Wahrscheinlichkeitsverteilung der zu kodierenden Pixel abhängig. Der Output des JPEG-Operators ist demnach ein Huffman-Stream, ausgegeben ohne JPEG-Header. Der JPEG-Header lässt sich im JPEG-Operator optional ein- oder ausschalten. Ist er eingeschaltet, werden zusammen mit dem komprimierten Bild Zusatzinformationen übertragen, wie Dimensionen des Bildes (Bitbreite der Pixel, Bildhöhe/-breite) sowie Informationen zu den einzelnen Luminanz/Chrominanz-Komponenten, darunter das verwendete Abtastschema für die Chrominanz-Komponenten, und weitere Informationen (alle verwendeten Kodierungsverfahren und Quantisierungstabellen). Die Informationen sind notwendig, damit das Bild später wieder dekodiert werden kann. Zum Zweck der Dekodierung ist im JPEG-Algorithmus das Dateiformat JFIF (JPEG File Interchange Format, Version 1.2) beschrieben, das einen einfachen Austausch von JPEG-komprimierten Bildern ermöglichen soll. Der Operator ist damit JFIF-konform. Ist jedoch die Option JPEG-Header ausgeschaltet, müssen die Informationen separat in der Software ergänzt werden.

Vorverarbeitung kombiniert mit Komprimierung

Mit dem JPEG-Operator ab VisualApplets Version 3.2 lassen sich 8-bit Graubilder und 24-bit RGB-Farbbilder mit variabler Bildkompressionsrate in Echtzeit auf dem FPGA komprimieren. Hierfür verwendet der Operator mehrere Encoder gleichzeitig. Die Datenrate ist – nur begrenzt durch die FPGA-Ressourcen – frei skalierbar (Minimum 125MB/s bei einem Takt von 125MHz), um die Implementierung der Anwendung an die gewünschte Datenrate anzupassen. Auf FPGA-basierten und VisualApplets kompatiblen Bildverarbeitungsgeräten wie Framegrabber, Vision-Sensoren und Kameras ermöglicht der Operator für die monochrome und Farbbild-Komprimierung sehr hohe Datenraten. Bei einer vierkanaligen CoaXPress CXP-6 Kamera mit Debayering beispielsweise wird nach der Farbrekonstruktion die dreifache Menge an Originaldaten von der Kamera in den JPEG-Operator übertragen und durch die JPEG-Komprimierung eine reduzierte Datenrate über den PCIe-Bus weiter in den PC-Speicher, um dessen Auslastung zu reduzieren. Hier entstehen Datenbandbreiten bis zu 75GBit/s, die nur durch die Kompression auf leistungsfähige RAIDs geschrieben werden können. Durch die Skalierbarkeit und flexiblen Einstellmöglichkeiten (Parametrisierung von Bildqualität, Kompressionsrate und Header-Informationen) ist der Operator für die neuesten FPGA-Technologien und jüngsten Framegrabber bzw. Hardwareplattformen einsatzbereit. Noch vor der JPEG-Komprimierung kann eine zusätzliche Datenreduktion über eine optionale Bildvorverarbeitung erreicht werden. Diese ermöglicht es z.B. in der Medizin, bei Gewebescans und Patientenproben QR-Codes zu segmentieren, Analysebereiche einzugrenzen oder Markierungspositionen zu bestimmen, um diese eng eingegrenzten Bereiche genauer zu analysieren. Nicht relevante Daten fallen dabei weg. Durch Vorverarbeitung auf dem FPGA und Komprimierung ist der JPEG-Operator, der in die Extension VisualApplets Libraries integriert ist, ideal für Highspeed-Anwendungen mit einer oder mehreren Kamera.

Seiten: 1 2 3Auf einer Seite lesen

Themen:

| Fachartikel

Ausgabe:

inVISION 6 2019
Silicon Software GmbH

Das könnte Sie auch Interessieren