L-1036d.A0 Verwendung des ISPs am phyBOARD-Pollux i.MX 8M Plus

Table of Contents

L-1036d.A0 Verwendung des ISPs am phyBOARD-Pollux i.MX 8M Plus
Document TitleL-1036d.A0 Verwendung des ISPs am phyBOARD-Pollux i.MX 8M Plus
Document TypeSoftware Guide
Article NumberL-1036e.A0
Release Date18.07.2022
Is Branch ofL-1036d.Ax Verwendung des ISPs am phyBOARD-Pollux i.MX 8M Plus Head

Einleitung

Dieses Dokument beschreibt die Funktionen und Konfigurationsmöglichkeiten des ISPs (Image Signal Processor) des i.MX8M Plus. Ein ISP bietet diverse Bildoptimierungsfunktionen die unabhängig von der Recheneinheit (CPU) durchgeführt werden und somit die begrenzten Systemressourcen nicht belasten. Des Weiteren beschleunigt die Verwendung eines ISPs die Integrationszeit, da die zugehörigen Algorithmen nicht aufwendig Implementiert werden müssen und somit sofort mit der Verifikation begonnen werden kann.

Voraussetzungen

Bevor Sie mit diesem Dokument starten, lesen Sie bitte zuerst das aktuelle Getting Started Manual  L-1029e.Ax.
Dort wird beschrieben, wie Sie grundlegend die Kamera anschließen, das Betriebssystem konfigurieren und ein Bild mit der Kamera aufnehmen können.

Video Devices und Subdevices

Der Zugriff auf den ISP und damit auf die Bilder, die über den ISP aufgenommen wurden, erfolgt klassisch über ein V4L2 Video Device. Es stehen folgende Video Devices für den Zugriff zur Verfügung:

/dev/video-csi1        # Port CSI1
/dev/video-csi2        # Port CSI2

Weiterhin stehen V4L2 Subdevices zur Verfügung für den Zugriff auf die angeschlossenen Sensoren. Für die unterstützten PHYTEC phyCAMs VM-x16 und VM-x17 werden über udev Regeln folgende Subdevices angelegt:

/dev/cam-csi1          # Sensor am Port CSI1
/dev/cam-csi2          # Sensor am Port CSI2

Konfigurieren des ISPs

Hintergrund

Die Konfiguration des ISPs erfolgt über verschiedene Konfigurationsdateien im XML und JSON Format. Das Einstellen dieser Konfigurationen übernimmt der isp_media_server Daemon, welcher sich im BSP unter /opt/imx8-isp/bin/ befindet. Dieser Daemon muss im Hintergrund aktiv sein, um den ISP verwenden zu können. Der isp_media_server arbeitet mit zwei Konfigurationsdateien Sensor0_Entry.cfg und Sensor1_Entry.cfg , wobei Sensor0_Entry.cfg  für den CSI1 Port und Sensor1_Entry.cfg  für den CSI2 Port zuständig ist. Beide Dateien müssen sich unbedingt im gleichen Pfad wie auch der isp_media_server Daemon befinden, ansonsten können sie nicht geladen werden.

Information

Im PHYTEC BSP wird der isp_media_server über den imx8-phycam-isp.service systemd Service automatisch gestartet . Ein Wrapper-Skript (siehe PHYTEC phyCAM Umsetzung) übernimmt die automatische Konfiguration für die unterstützten PHYTEC phyCAMs VM-x16 und VM-x17.


Im folgenden wird beschrieben, wie der isp_media_server manuell gestartet werden kann. Für die unterstützten PHYTEC phyCAMS VM-x16 und VM-x17 ist dies in der Regel allerdings nicht nötig.

Note

Um den isp_media_server manuell starten zu können, muss zuerst der imx8-phycam-isp.service systemd Service gestoppt werden.

target# systemctl stop imx8-phycam-isp.service

Der isp_media_server Daemon benötigt beim Starten einen Übergabeparameter, der festlegt, welche CSI Ports verwendet werden.

target# ./isp_media_server CAMERA0        # CSI1
target# ./isp_media_server CAMERA1        # CSI2
target# ./isp_media_server DUAL_CAMERA    # Both CSI1 and CSI2

Sensor Konfigurationsdatei (Sensor0_Entry.cfg & Sensor1_Entry.cfg)

Neben einem Verweis auf den verwendeten Userspace Treiber enthalten die Sensor-Konfigurationsdateien auch die unterstützten Modi und die Auswahl des aktiven Modus. Jeder Modus enthält dabei jeweils einen Verweis auf eine Konfigurationsdatei für den ISP (xml) und die Dewarp-Engine (dwe). Die angegebenen Pfade sind relativ zum Pfad der Sensor Konfigurationsdatei.

Sensor0_Entry.cfg Beispiel
name="phycam"
drv = "phycam.drv"
mode= 1

[mode.0]
xml = "xml/VM-017-COL_AO062-C_1280x720.xml"
dwe = "dwe/VM-017_AO062_1280x720.json"

[mode.1]
xml = "xml/VM-017-COL_AO062-C_1920x1080.xml"
dwe = "dwe/VM-017_AO062_1920x1080.json"

[mode.2]
xml = "xml/VM-017-COL_AO062-C_2592x1944.xml"
dwe = "dwe/VM-017_AO062_2592x1944.json"

Note

Jeder hier definierte Modus muss im Kernel Treiber des verwendeten Sensors unterstützt sein. Es ist nicht möglich, neue Modi hinzuzufügen ohne den Kernel Treiber anzupassen.

Note

Die Sensor Konfigurationsdateien werden beim Zugriff auf das entsprechende Video Device eingelesen und gepuffert, bis Bilder vom Sensor abgeholt wurden. Die Konfiguration kann also für jeden Streaming Vorgang neu angepasst werden, ohne den isp_media_server Daemon neu starten zu müssen.

PHYTEC phyCAM - Board-Level Kameras

Für die unterstützten PHYTEC - Board-Level Kameras phyCAM VM-x16 und VM-x17 existieren vorgefertigte Sensor-Konfigurationsdateien (siehe Vorkalibrierte Konfigurationen).

Ein Wrapper-Skript für den isp_media_server Daemon erkennt automatisch, welcher CSI Port genutzt wird und welche Sensoren angeschlossen sind und wählt die passende Sensor-Konfigurationsdatei aus. Die Auswahl erfolgt über einen Link anstelle von Sensor0_Entry.cfg bzw. Sensor1_Entry.cfg, der auf die passende Konfigurationsdatei verweist.

Somit wirken sich Änderungen an Sensor0_Entry.cfg bzw. Sensor1_Entry.cfg direkt auf die verlinkten Konfigurationsdateien aus und somit müssen, um beispielsweise den Modus zu ändern, nur die Dateien Sensor0_Entry.cfg bzw. Sensor1_Entry.cfg angepasst werden.

Modusauswahl

Um einen der verfügbaren Modi auszuwählen, muss dieser einfach nur in der entsprechenden Sensor Konfigurationsdatei angepasst werden. Dabei gilt zu beachten, dass zwischen '=' und Modus zwingend ein Leerzeichen sein muss.

Sensor0_Entry.cfg, aktiver Modus = 1
name="phycam"
drv = "phycam.drv"
mode= 1

[mode.0]
xml = "xml/VM-017-COL_AO062-C_1280x720.xml"
dwe = "dwe/VM-017_AO062_1280x720.json"

[mode.1]
xml = "xml/VM-017-COL_AO062-C_1920x1080.xml"
dwe = "dwe/VM-017_AO062_1920x1080.json"

[mode.2]
xml = "xml/VM-017-COL_AO062-C_2592x1944.xml"
dwe = "dwe/VM-017_AO062_2592x1944.json"
Sensor0_Entry.cfg, aktiver Modus = 0
name="phycam"
drv = "phycam.drv"
mode= 0

[mode.0]
xml = "xml/VM-017-COL_AO062-C_1280x720.xml"
dwe = "dwe/VM-017_AO062_1280x720.json"

[mode.1]
xml = "xml/VM-017-COL_AO062-C_1920x1080.xml"
dwe = "dwe/VM-017_AO062_1920x1080.json"

[mode.2]
xml = "xml/VM-017-COL_AO062-C_2592x1944.xml"
dwe = "dwe/VM-017_AO062_2592x1944.json"

Objektivauswahl

Für einige Objektive aus dem PHYTEC-Sortiment sind bereits Kalibrierungsdaten hinterlegt. In Verbindung mit den phyCAM-Kameramodulen können Sie damit direkt die Evaluierung von Funktionen wie Dewarping oder Lens Shade Correction beginnen.

Um eines der vorkalibrierten Objektive auszuwählen muss lediglich im run_isp.sh Wrapper-Skript das Objektiv für AR0144 (VM-x16) bzw. AR0521 (VM-x17) eingestellt werden. Das Wrapper-Skript befindet sich wie auch die Sensor-Konfigurationsdateien in /opt/imx8-isp/bin/ .

Zur Auswahl stehen aktuell folgende Objektive:

KameraObjektivHinweis
VM-x16AO082default
VM-x16AO086
VM-x17AO062default
VM-x17AO070.A1

PHYTEC kennzeichnet Objektive mit integriertem IR-Filter mit der Endung -C (siehe auch Vorkalibrierte Konfigurationen). Innerhalb des BSPs wird die Auswahl ob mit oder ohne IR-Filter automatisch anhand der verwendeten Kamera getroffen.

Ist in der run_isp.sh das AO086 eingetragen, wird der ISP bei einer Farbvariante der VM-x16 automatisch so konfiguriert, dass es zu einem AO086-C passt. Bei einer monochromen Variante der VM-x16 wird die Konfiguration für ein AO086 verwendet.

run_isp.sh - Default Objektive
#!/bin/bash

AR0144_LENS="AO082"
AR0521_LENS="AO062"

if ! [ -e /dev/cam-csi1 ] && ! [ -e /dev/cam-csi2 ]; then
        echo "No camera"
        exit 6
fi
[...]
run_isp.sh - Alternative Objektive
#!/bin/bash

AR0144_LENS="AO086"
AR0521_LENS="AO070.A1"

if ! [ -e /dev/cam-csi1 ] && ! [ -e /dev/cam-csi2 ]; then
        echo "No camera"
        exit 6
fi
[...]

VVEXT-Tool

Das VVEXT-Tool ist Bestandteil des Board Support Package (BSP) und kann zum manuellen Konfigurieren des ISP während der Livebild-Ausgabe verwendet werden.

Es bietet eine umfassende Möglichkeit, die Funktionen des ISP zu testen und gegebenenfalls im Anschluss Einstellungen ins XML-File zu übernehmen. 

Änderungen, die mit dem VVEXT-Tool vorgenommen werden sind nur gültig für den aktuell laufenden Streaming-Vorgang. Mit jedem neuen Streaming-Vorgang wird die Konfiguration wieder aus den Sensor-Konfigurationsdateien übernommen. Persistente Änderungen müssen also in den Konfigurationsdateien eingetragen werden.


Das VVEXT-Tool liegt unter: /opt/imx8-isp/bin/

Gestartet wird es mittels:

target# ./vvext 0

Der Übergabeparameter steht für das verwendete Video Device (0 = /dev/video0 , 1 = /dev/video1 , usw.).

Die Reihenfolge der Standard Video Devices ( /dev/video0 , /dev/video0 , usw.) muss nicht zwingend der Reihenfolge der weiter oben beschriebenen Video Devices entsprechen. Die Zuordnung der PHYTEC-spezifischen Video Devices ( /dev/video-csi1 und /dev/video-csi2 ) zu den Standard Video Devices lässt sich einfach mit folgendem Befehl herausfinden:

target# ls -l /dev/video-csi*
lrwxrwxrwx    1 root     root             6 Jul 12 05:41 /dev/video-csi1 -> video0

V4L2 External Control Interface

Das  VVEXT-Tool nutzt intern für den Zugriff auf den ISP das viv_ext_ctrl V4L2 control. Diesen Mechanismus kann man sich auch extern und unabhägig vom VVEXT-Tool zunutze machen, um die Konfiguration des ISP zur Laufzeit zu verändern.

Auf der NXP-Webseite finden Sie unter folgendem Link die Dokumentation für das viv_ext_ctrl V4L2 control sowie die verfügbaren Parameter.

IMX8MPISPUV4L2IUG.pdf  (Benutzerkonto / Anmeldung bei der NXP-Webseite erforderlich)

Im BSP befindet sich eine beispielhafte Umsetzung in Form einer Python Demo. Die Demo befindet sich unter /root/gstreamer-examples/isp_gstreamer-examples/gst-python_demo/isp-demo-cam.py 

Vorkalibrierte Konfigurationen

Das BSP PD22.1.0 unterstützt per se folgende Board-Level-Kameras und folgende Optiken. 

Weitere Informationen zu den Board-Level-Kameras und verfügbare Objektiven entnehmen Sie bitte unserer Homepage oder kontaktieren Sie unser FAE-Team.

Board Level CameraObjektivAuflösungXMLJSON (für DeWarp/Linsenentzerrung)
VM-_16-BW-M/-LAO082 (12 mm)1280x800VM-016-BW_AO082_1280x800.xmlVM-016_AO082_1280x800.json
VM-_16-BW-M/-LAO082 (12 mm)1280x720VM-016-BW_AO082_1280x720.xmlVM-016_AO082_1280x720.json
VM-_16-COL-M/-LAO082-C (12 mm)1280x800VM-016-COL_AO082-C_1280x800.xmlVM-016_AO082_1280x800.json
VM-_16-COL-M/-LAO082-C (12 mm)1280x720VM-016-COL_AO082-C_1280x720.xmlVM-016_AO082_1280x720.json
VM-_16-BW-M/-LAO086 (1.8 mm)1280x800VM-016-BW_AO086_1280x800.xmlVM-016_AO086_1280x800.json
VM-_16-BW-M/-LAO086 (1.8 mm)1280x720VM-016-BW_AO086_1280x720.xmlVM-016_AO086_1280x720.json
VM-_16-COL-M/-LAO086-C (1.8 mm)1280x800VM-016-COL_AO086-C_1280x800.xmlVM-016_AO086_1280x800.json
VM-_16-COL-M/-LAO086-C (1.8 mm)1280x720VM-016-COL_AO086-C_1280x720.xmlVM-016_AO086_1280x720.json
VM-_17-BW-M/-LAO062 (12 mm)2592x1944VM-017-BW_AO062_2592x1944.xmlVM-017_AO062_2592x1944.json 
VM-_17-BW-M/-LAO062 (12 mm)1920x1080VM-017-BW_AO062_1920x1080.xmlVM-017_AO062_1920x1080.json
VM-_17-BW-M/-LAO062 (12 mm)1280x720VM-017-BW_AO062_1280x720.xmlVM-017_AO062_1280x720.json
VM-_17-COL-M/-LAO062-C (12 mm)2592x1944VM-017-COL_AO062-C_2592x1944.xmlVM-017_AO062_2592x1944.json 
VM-_17-COL-M/-LAO062-C (12 mm)1920x1080VM-017-COL_AO062-C_1920x1080.xmlVM-017_AO062_1920x1080.json
VM-_17-COL-M/-LAO062-C (12 mm)1280x720VM-017-COL_AO062-C_1280x720.xmlVM-017_AO062_1280x720.json
VM-_17-BW-M/-LAO070.A1 (2.4 mm)2592x1944VM-017-BW_AO070.A1_2592x1944.xmlVM-017_AO070.A1_2592x1944.json
VM-_17-BW-M/-LAO070.A1 (2.4 mm)1920x1080VM-017-BW_AO070.A1_1920x1080.xmlVM-017_AO070.A1_1920x1080.json
VM-_17-BW-M/-LAO070.A1 (2.4 mm)1280x720VM-017-BW_AO070.A1_1280x720.xmlVM-017_AO070.A1_1280x720.json
VM-_17-COL-M/-LAO070.A1-C (2.4 mm)2592x1944VM-017-COL_AO070-C.A1_2592x1944.xmlVM-017_AO070.A1_2592x1944.json
VM-_17-COL-M/-LAO070.A1-C (2.4 mm)1920x1080VM-017-COL_AO070-C.A1_1920x1080.xmlVM-017_AO070.A1_1920x1080.json
VM-_17-COL-M/-LAO070.A1-C (2.4 mm)1280x720VM-017-COL_AO070-C.A1_1280x720.xmlVM-017_AO070.A1_1280x720.json
BSP PD22.1.0 Unterstützte Kameras und Optiken

Überblick aller ISP-Funktionen

In diesem Kapitel erhalten Sie einen kurzen Überblick über die zur Verfügung stehenden Funktionen des ISPs.

Nicht alle Funktionen wurden von PHYTEC geprüft bzw. sind bei den vorkalibrierten Konfigurationen enthalten.

Sollte zu nicht verifizierten Funktionen Bedarf bestehen kontaktieren Sie bitte den PHYTEC Support.

Vorkalibrierung / Kalibrierungsservice

Für die Anwendung der meisten dieser Funktionen ist eine Kalibrierung des ISPs auf das konkrete optische System (bestehend aus Kamera, Objektiv und ggf. weitere optische Parameter) erforderlich.
Je nach Funktion und Anwendung genügt bereits eine Basiskalibrierung des eingesetzten Kameramoduls. Diese ist für ausgewählte phyCAM-Module bereits im BSP des phyCORE-Prozessormoduls enthalten.

Damit Sie in Ihrer Anwendung optimal von den ISP-Funktionen des i.MX 8M plus profitieren können, bietet PHYTEC einen individuellen Kalibrierungsservice für Ihre Applikation an. Im Ergebnis erhalten Sie für Ihre spezielle Kombination von Board-Level-Kamera, Objektiv und Anwendungsparametern Kalibrierungsdateien (XML/JSON) für das phyCORE-i.MX 8M plus - BSP, welche die gewünschten ISP-Funktionen in Ihrer Applikation nutzbar macht.

Sollen auch Parameter der Optik berücksichtigt werden, so ist eine individuelle Kalibrierung des Gesamtsystems notwendig. Damit kann z.B. eine Entzerrung der Aufnahme bei Weitwinkel- / Fischaugen-Objektiven kalibriert oder der Randabfall der Bildhelligkeit kompensiert werden.

Eine individuelle Kalibrierung wird anhand der vorgesehenen Systemkomponenten und Ihren Angaben zu optischen Parametern Ihrer Applikation in unserem Labor vorgenommen. Dazu werden beispielsweise Referenzcharts mit dem geplanten Kamerasystem aufgenommen und aufgrund dieser Messungen die Kalibrierdaten für den ISP errechnet.

Weitere Informationen zum PHYTEC-Kalibrierungsservice finden Sie auf unserer Webseite Embedded Vision Services.

Details zu den ISP-Funktionen

In diesem Abschnitt finden Sie Detailinformationen zu den einzelnen ISP-Funktionen und es wird der jeweilige direkte Bezug zur Konfiguration aufgezeigt.

Demosaicing

Um das Bayer-Pattern der Bildsensoren in den RGB bzw. YUV Farbraum umwandeln zu können, wird das sogenannte Demosaicing bzw. DeBayering verwendet. Dies kann entweder komplett in Software (auch z.B. unter Einsatz der NEON-Coprozessoren oder der GPU), idealerweise aber mittels des ISPs vorgenommen werden.

Beim Demosaicing können verschiedene Verfahren zum Einsatz kommen. Informationen welches bzw. welche Verfahren vom ISP des i.MX 8M plus verwendet werden, liegen PHYTEC nicht vor.

Konfigurationsmöglichkeiten

switch mode / Enable

Mittels switch mode kann das Demosaicing deaktiviert werden (bypass). Dies ist notwendig für monochrome Board Level Kameras (Graustufen-Kameras).

Zu beachten ist, dass etwaige Farbkorrekturen dennoch durchgeführt werden. Was zu fehlerhaften Grauwerten führt. Zusätzlich zur Deaktivierung des Demosaicing sollte somit auch der AWB werden. Hinweise zum Deaktivieren finden Sie im Kapitel des AWB.

Threshold für demosaicing texture detection

Threshold stellt die Demosaicing Textur-Erkennung ein. Hierbei steht "0" für maximale Kantenempfindlichkeit. "255" verwendet keine Erkennung.

Demosaicing texture detection (Threshold=0)


Demosaicing texture detection (Threshold=255)

Vorteil einer hohen Empfindlichkeit ist z.B., dass gerade Kanten sauberer dargestellt werden. Der Moiré-Effekt kann hierdurch reduziert werden.

Ein Nachteil ist unter anderem, dass feine, nicht gerade Strukturen undeutlicher werden. 

Beides ist in den Beispielbildern gut zu erkennen.

VVEXT

Wählen Sie DEMOSAIC aus, um in das entsprechende Menu zu gelangen.

XML

Die Demosaicing-Konfiguration wird unter dem Element <tuning> innerhalb des XMLs vorgenommen:

<tuning>

...

        <demosaic enable="false">
            <threshold>0</threshold>
        </demosaic>

...

</tuning>

Filter-Funktionen (Schärfen, Rauschunterdrückung)

Der Schärfealgorithmus erhöht den Kontrast an den Rändern einer Struktur. Das Schärfen kann bei zu hohem Level zu "Halo"-Effekten führen. Also einem hellen Schein an den Kanten. Des weiteren können feine Strukturen sichtbar werden, die eigentlich unterdrückt werden sollen.

Bei der Rauschunterdrückung (Denoise) kommen in der Regel Gauß-, Box-Blur- oder auch Median-Filter zum Einsatz. Das von ISP des i.MX 8M plus verwendete Verfahren ist uns nicht bekannt. Allgemein hat eine Rauschunterdrückung eine Art Weichzeichnung zur Folge. Das Bild verliert hierdurch an Details.

Es sollte somit immer ein Kompromiss gesucht werden aus Rauschunterdrückung und Schärfe.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Denoise Level

Die Rauschunterdrückung kann zwischen 1 bis 10 eingestellt werden.

Denoise Level 10

Sharpen Level

Das Stärke das Schärfens kann in Stufen zwischen 1 bis 10 eingestellt werden.

Sharpen Level 10


Sharpen Level 5 und Denose Level 3

VVEXT

XML

Die Filter-Konfiguration wird unter dem Element <tuning> innerhalb des XMLs vorgenommen:

<tuning>

...

       <filter enable="true" auto="true">
                 <denoise>3</denoise>
                 <sharpen>4</sharpen>
        </filter>  

...

</tuning>

Color Processing (CPROC)

CPROC stellt die Features für Brightness, Farbton, Stättigung und Kontast zur Verfügung.

  • Brightness erhöht bzw. senkt die RGB Werte gleichmäßig.
  • Mittels des Farbtons (Hue) wird der Farbraum durchlaufen.
  • Die Sättigung, auch Farbintensität, beschreibt, wie weit sich der Farbton von der Schwarz-/Weißebene abhebt (0=monochrom).
  • Kontrast macht dunkle Bereiche dunkler und helle Bereiche heller bzw. umgekehrt. Hierdurch entsteht ein höherer oder niedriger Unterscheid zwischen den Bereichen und das Kontarstverhältnis steigt bzw. fällt.

Der CPROC arbeitet mit dem BT.601 Mode. Dieser hat einen Wertebereich von <16 ... 235>. Das Deaktivieren des BT.601 - Farbprofils ist derzeit nicht möglich.

BT.601 legt fest, wie digitale interlaced-Video Signale zu kodieren sind. Da der ISP YUV 4:2:2 verwendet und dies auf BT.601 basiert, kommt dieser Standard zum Tragen auch wenn das eigentliche Bild nicht interlaced ist.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Brightness

Wertebereich: <-127 ... 127>

Contrast

Wertebereich: <0 ... 1,99>

Saturation

Wertebereich: <0 ... 1,99>

Hue

Wertebereich: <-127 ... 127>

VVEXT

XML

Eine Konfiguration durch den Anwender ist nicht möglich.

Die Anpassungen können von PHYTEC vorgenommen werden. Bitte sprechen Sie dazu unseren Support an.

Blacklevel Compensation (BLS) 

Bildsensoren arbeiten intern oftmals mit einen Offset, um etwaige Korrekturen bereits im Sensor durchführen zu können.
Nur durch einen Offset ist es möglich, Korrekturen zuzulassen, die theoretisch unterhalb der Minimalaussteuerung liegen würden.
Nach den Korrekturen kann der nicht benötigte Offset wieder abgezogen werden. Wird dies nicht getan, erreicht der Sensor kein absolutes Schwarz.

Je nach Sensortyp bzw. dessen Konfiguration kann dieser Offset stark unterschiedlich ausfallen.

Für die Konfigurationen der Board-Level-Kamera VM-017 wird zum aktuellen Stand keine Kompensation benötigt. Die VM-016 Modelle hingegen werden um 160 (12 Bit) reduziert. (PD22.1.0) 

Konfigurationsmöglichkeiten

Ein/Aus (Bypass)

Schaltet die Funktion an oder aus.

Korrekturwerte der einzelnen Farbkanäle

Wertebereich: <0 ... 4095>

Die Farbkanäle können separat voneinander korrigiert werden.

VVEXT

Bypass steht innerhalb des VVEXT-Tools nicht zur Verfügung. Als Ersatz kann eine Einstellung der Anpassung auf "0, 0, 0, 0" verwendet werden.

XML

Die BLS Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <bls bypass="true">
         <red>0</red>
         <green.b>0</green.b>
         <green.r>0</green.r>
         <blue>0</blue>
      </bls>

...

</tuning>

Automatic Exposure Control (AEC) 

Durch den AEC wird die Helligkeit des Bildes auf einen Zielbereich ausgeregelt. 

Wird der AEC ausgeschaltet, können Gain und Exposure-Time des Kamerasensors manuell gewählt werden.

Der AEC beeinflusst direkt die Register des verendeten Board-Level Kamera und konfiguriert den benötigten analoge Gain und die Exposure-Zeit im Sensor.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Reset

Resetet die AEC Einheit, so dass diese neu ausregelt.

SetPoint

Wertebereich: <0 ... 255>

Durchschnittlicher Helligkeitswert des Bildes, welcher als Zielwert erreicht werden soll.

DampOver

Wertebereich: <0 ... 1>

Voraussetzung: DampOver <= DampUnder

Der Dämpfungsfaktor gibt an, wie schnell geregelt werden soll. 

Je größer der Wert, desto langsamer regelt die AEC.

DampUnder

Wertebereich: <0 ... 1>

Voraussetzung: DampUnder >= DampOver

Desto größer der Wert, desto langsamer regelt die AEC.

Tolerance

Wertebereich: <0 ... 100>

Toleranz auf den Set Point (+/-), ab der die Reglung nachkorrigiert.

Kleine Toleranzen führen zu einem schnelleren Nachregeln, können aber Regelschwingungen verursachen. Große Toleranzen können zu einer spunghaften Regelung führen.

Gain

Wertebereich: Zulässiger Gain des verwendeten Kameramoduls.

Nur verwendbar mit deaktiviertem AEC.

Der Gain wird direkt innerhalb des Bildsensors konfiguriert (analoge Signalverstärkung) .

ExposureTime

Wertebereich: Zulässige Zeit des verwendeten Kameramoduls.

Nur verwendbar mit deaktivierter AEC.

Der Regelbereich der Exposure Time wird grundlegend von der Einstellung der Kamera bestimmt. 

Wird eine längere Belichtungszeit gewünscht, müssen die horizontal_blankings bzw. vertical_blankings der Kamera erhöht werden.

Dies kann z.B. mittels v4l2-ctls konfiguriert werden.


Werden die Vertikal- und Horizontal-Blankings stark erhöht, kann es zu einer Fehlberechnung der Belichtungszeit kommen. Es wird empfohlen, immer nur einen der Werte zu verwenden und den Defaultwert des anderen zu belassen.

Flicker Avoidance Period

Der ISP bietet das Feature einer Flimmerunterdrückung.
Die Flimmerunterdrückung zielt auf die Unterdrückung von Helligkeitsschwankungen des Bilds, die durch Unterschiede der Frequenzen der Lichtquelle (z.B. Leuchtstofflampen, LEDs) und der Bildaufnahmefrequenz entstehen (Schwebungen).
Dieses Feature wurde von PHYTEC bisher nicht in Betrieb genommen und wird deswegen vorerst nicht unterstützt.

VVEXT

XML

Die AEC-Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <ae enable="true" bypass="false">
         <afps>false</afps>
         <flicker.period>1</flicker.period>
         <set.point>100</set.point>
         <damping.over>0.2</damping.over>
         <damping.under>0.8</damping.under>
         <tolerance>15</tolerance>
      </ae>

...

</tuning

Exposure Control (EC) 

Mittels der EC kann die analoge Verstärkung und die Belichtungszeit des Sensors manuell eingestellt werden.

Konfigurationsmöglichkeiten

Gain

Wertebereich: Zulässiger Gain des verwendeten Kameramoduls.

Nur verwendbar mit deaktivierter AEC.

Der Gain wird direkt innerhalb des Bildsensors (analoges Gain) konfiguriert.

ExposureTime

Wertebereich: Zulässige Zeit des verwendeten BLCs.

Nur verwendbar mit deaktivierter AEC.

Der Regelbereich der Exposure Time wird grundlegend von der Einstellung der Kamera bestimmt. 

Wird eine längere Belichtungszeit gewünscht, müssen die horizontal_blankings bzw. vertical_blankings der Kamera erhöht werden.

Dies kann z.B. mittels v4l2-ctls konfiguriert werden.

Werden die Vertikal- und Horizontal-Blankings stark erhöht, kann es zu einer Fehlberechnung der Belichtungszeit kommen.

Diese Fehlberechnung kann von PHYTEC nicht korrigiert werden, da uns die zugehörigen Informationen zur internen Funktionsweise nicht vorliegen.

Es wird empfohlen, immer nur einen der Werte zu verwenden und den Defaultwert des anderen zu belassen.

VVEXT

Innerhalb des VVEXT Tools kann die Konfiguration der EC über das Feature des AECs vorgenommen werden.  

XML

Die EC Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

               <ec>
                   <gain>2.00</gain>
                   <intergration.time>0.002</intergration.time>
               </ec>

...

</tuning>

White Balance (WB) 

Anstatt der AWB kann der Weißabgleich auch manuell durchgeführt werden.

Hierbei können die einzelnen Farbwerte separat gesetzt werden.

Es wird empfohlen, immer auch die LSC zu deaktivieren, wenn der AWB deaktiviert wird. Nach bisherigen Erfahrungswerten führt dies zu einer korrekten Bildausgabe. 

Soll das LSC dennoch aktiv bleiben, muss wie bei den vorkalibrierten XML Files der monochromen Kameramodule weitere Anpassungen im XML vorgenommen werden (Korrekturwerte Color Correction und des AWB).

Der AWB sollte hierbei aktiviert bleiben und auf Mode 1 gesetzt werden. 

Für weitergehende Informationen wenden Sie sich bitte an den PHYTEC Support.

Das Setzen der einzelnen Kanäle kann nicht über das VVEXT Tool vorgenommen werden. Es ist eine Anpassung im XML notwendig. 

Konfigurationsmöglichkeiten

Farbkanal Gains

Wertebereich: <0 ... 3.999>

Hierbei werden die Farbkanäle innerhalb des ISPs manipuliert.

Farbkorrektur Offsets

Wertebereich: <-2048 ... 2047>

Hierbei wird ein Offset innerhalb des ISPs hinzugefügt.

Farbkorrektur Matrix

Die Farbkorrektur-Matrix wird während des Kalibriervorgangs ermittelt. 

Damit diese keinen Einfluss auf den manuellen Weißabgleich nimmt, wird die Einheitsmatrix gewählt.

XML

Die WB Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

       <wb>
            <cc.matrix>[1,0,0,0,1,0,0,0,1]</cc.matrix>
            <cc.offset>
                <blue>0</blue>
                <green>0</green>
                <red>0</red>
            </cc.offset>
            <wb.gains>
                <blue>1.0</blue>
                <green.b>1.0</green.b>
                <green.r>1.0</green.r>
                <red>1.0</red>
            </wb.gains>
        </wb>

...

</tuning>

Gamma Correction (GC) 

Da die Helligkeitswahrnehmung des Auges nicht linear ist, Bildsensoren aber in der Regel linear arbeiten, kann mittels der Gammakorrektur eine Anpassung vorgenommen werden. Der einzustellende Wert hängt vom Sensor, dem verwendeten Farbraum und dem Display ab.

Bei der Gammakorrektur werden die Bilddaten nichtlinear mittels einer Potenzfunktion umgerechnet. Hierbei bleiben die hellsten und dunkelsten Werte relativ unbeeinflusst. Dementsprechend werden die mittleren Werte besonders stark manipuliert.

Konfigurationsmöglichkeiten

Ein/Aus 

Schaltet die Funktion an oder aus.

Per Default arbeitet die GC mit einer Korrekturkurve die ungefähr dem Faktor von 2,2 bei logarithmischer Segmentierung entspricht.

Gamma Scaling Mode

Es kann eine logarithmische (LOG) Segmentierung oder eine  lineare (Equidistante (EQU)) Segmentierung verwendet werden.

Eine logarithmische Segmentierung hat ein höheres Kontrastverhältnis zur Folge kann aber Color Banding (harte Farbverläufe) verstärken.

Gamma Curve

Wertebereich: <0.1 ... 4.0>

Hiermit kann der Exponent der Potenzfunktion gesetzt werden.

Die Gamma Einstellungen innerhalb des XMLs werden mittels eines codierten Strings übergeben. Anpassungen können hierbei von PHYTEC vorgenommen werden.

Fragen Sie für nähere Informationen den PHYTEC Support.

VVEXT

XML

Die GC Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden.

<tuning>

...

       <gc enable="false"/>

...

</tuning>

Defect Pixel Cluster Correction (DPCC) 

Mittels der Clustererkennung bzw. Korrektur von defekten Clustern kann eine Bildoptimierung vorgenommen werden.

Die Korrektur arbeitet dynamisch, so dass es dazu kommen kann, dass einzelne Cluster je nach Lichtverhältnissen sporadisch erkennbar seien können.

Ohne (links) und mit (rechts) Defect Pixel Cluster Correction

Auch wenn der verwendete Sensor eine interne Korrektur verwendet, kann unter Umständen zusammen mit dem ISP ein besseres Ergebnis erzielt werden. Dies sollte individuell geprüft werden.

Konfigurationsmöglichkeiten

Ein/Aus 

Schaltet die Funktion an oder aus.

VVEXT

XML

Die DPCC Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <dpcc enable="true"/>

...

</tuning>

Wide Dynamic Range 3 (WDR3) 

Im folgenden ist eine Aufnahme ohne und mit WDR3 zu sehen:

Ohne (links) und mit (rechts) Wide Dynamic Range 3

Das WDR3 führt ein Tonemapping durch. Hierbei existieren verschiedenste Verfahren. Welches hierbei genau zum Einsatz kommt, ist von NXP nicht beschrieben.

Der ISP stellt hierbei WDR3 V1 und V3 zur Verfügung. V1 ist hierbei die Global Wide Dynamic Range und V3 der WDR3.


Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Auto

Die Autofunktion wurde nicht in Betrieb genommen.

Stärke (strenght)

Wertebereich: <0-128> / Default=16

Maximaler Gain (maxGain)

Wertebereich: <0-128>  / Default=100

Allgemeine Stärke (globalStrenght)

Wertebereich: <0-128>  / Default=100

VVEXT

XML

Die WDR3 Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <wdr>
         <v1 enable="false" auto="false">
         </v1>
         <v3 enable="true" auto="false">

                <gain.max>16</gain.max>
                <strength>100</strength>
                <strength.global>100</strength.global>
         </v3>
      </wdr>

...

</tuning>

DeWarp (DWE) 

Durch die DeWarp Engine wird die Linsenverzerrung korrigiert.

Ohne (links) und mit (rechts) DeWarp

Hierbei ist zu beachten, dass durch das Entzerren immer auch Bildinhalte (am Randbereich) verloren gehen. Die folgenden Bilder wurden mit und ohne DeWarping erstellt. Es ist gut zu erkennen, dass ein gutes Stück des Bildes entfernt wurde.

Ohne (links) und mit (rechts) DeWarp (Beschnittenes Bild)

Die Ursache wird durch das folgende Bild verdeutlicht (Entzerrung mittels Fotobearbeitungs-Tool): 

Arbeitsweise des DeWarp

Wie zu sehen ist, muss das Bild an den Ecken sehr stark gestreckt werden. Es entstehen hierdurch Bereiche ohne Inhalt. Zusätzlich ist auch die Entzerrung nicht überall konstant. Hierdurch ist es nicht möglich, ein komplettes Bild entzerrt darzustellen.

Bei der Kalibrierung der DeWarping-Einheit ist es nicht möglich, die genaue Größe des Bildes zu definieren die später zur Anzeige kommt.
Es ist davon auszugehen, dass die DeWarping Einheit ein eher zu kleines aber dadurch auch besser entzerrtes Bild ausgibt.

Wenn Sie planen, die Dewarping-Funktion einzusetzen, sollten Sie bei der Objektivauswahl berücksichtigen, dass der aufgenommene Bildausschnitt größer als der von der Anwendung benötigte ist.

Prinzipiell bietet die DeWarping Einheit auch noch die Features "Split_Screen" und "Fisheye_Expand". Beide Funktionen wurden von PHYTEC nicht verifiziert.

Fisheye_Expand entzerrt z.B. ein kreisrunde Abbildung im Format 1:1 in eine rechtwinklige Abbildung. Konfigurationsmöglichkeiten sind uns derzeit nicht bekannt.

Split_Screen kann zum Aufteilen des Bildes in mehrere Segmente verwendet werden. Es scheint wie auch schon das Fisheye_Expand nur mit kreisrunden Abbildungen im Format 1:1 zu funktionieren. Konfigurationsmöglichkeiten sind uns dazu derzeit nicht bekannt.

Konfigurationsmöglichkeiten

Es wird hierbei nur auf Konfigurationsmöglichkeiten eingegangen, die PHYTEC in Betrieb genommen hat.

Ein/Aus (bypass)

Schaltet die Funktion an oder aus.

hflip

Die linke und rechte Seite des Bilds werden gespiegelt.

hflip

vflip

Die obere und die untere Seite werden gespiegelt.

vflip

VVEXT

JSON

Im JSON File können die Konfigurationen vorgenommen werden.

...

            "bypass" : true,
            "hflip"  : false,
            "vflip"  : false,

...

Lens Shade Correction (LSC) 

Jedes Objektiv erzeugt durch sein Linsensystem eine Vignettierung. Diese können je nach Objektiv mehr oder weniger stark ins Gewicht fallen. Im Allgemeinen ist es so, dass bei hochwertigeren Objektiven die Vignettierung weniger stark ausfällt. Es ist auch nicht abhängig von der Brennweite, so können Fish-Eye-Optiken eine geringere Vignettierung aufweisen als ein Objektiv mit hoher Brennweite oder geringen Verzeichnung (Distortion).

Um das Feature der LSC verwenden zu können, muss das optische System zuvor kalibriert werden. PHYTEC hat hierzu vorkalibrierte Systeme (siehe Vorkalibrierte Konfigurationen). Für andere Optiken bieten wir einen individuellen Kalibrierservice an.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

In den folgenden Bildern ist eine homogene Leuchtfläche mit und ohne LSC zu sehen.

HD_nLSC.jpgHD_LSC.jpg

Ohne (links) und mit (rechts) Lens Shade Correction


Es wird empfohlen immer auch die LSC zu deaktivieren, wenn der AWB deaktiviert wird. Nach bisherigen Erfahrungswerten führt dies zu einer korrekten Bildausgabe. 

Soll das LSC dennoch aktiv bleiben, müssem wie bei den vorkalibrierten XML Files der monochromen Kameramodule weitere Anpassungen im XML vorgenommen werden (Korrekturwerte Color Correction und der AWB).

Der AWB sollte hierbei aktiviert bleiben und auf Mode 1 gesetzt werden. 

Fragen Sie für nähere Informationen den PHYTEC Support.

VVEXT

XML

Die LSC Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <lsc enable="true"/>

...

</tuning>

Automatic White Balance (AWB) 

Der automatische Weißabgleich wird benötigt, um die verschiedenen Spektralzusammensetzungen während der Aufnahme auf einen Weiß-Wert abzugleichen.

Um das Feature des AWBs verwenden zu können, muss das optische System zuvor kalibriert werden. PHYTEC hat hierzu vorkalibrierte Systeme (siehe Vorkalibrierte Konfigurationen). Für andere Optiken bieten wir einen individuellen Kalibrierservice an.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Die folgenden beiden Abbildungen zeigen je eine Aufnahme mit und ohne AWB:

Ohne (links) und mit (rechts) Automatic White Balance


Es ist zu beachten, dass eine initiale Deaktivierung der AWB über das XML-File zu Bildfehlern führen kann.

Es wird empfohlen immer auch die LSC zu deaktivieren, wenn die AWB deaktiviert wird. Nach bisherigen Erfahrungswerten führt dies zu einer korrekten Bildausgabe. 

Soll das LSC dennoch aktiv bleiben, müssen wie bei den vorkalibrierten XML Files der monochromen Kameramodule weitere Anpassungen im XML vorgenommen werden  (Korrekturwerte Color Correction und des AWBs).

Der AWB sollte hierbei aktiviert bleiben und auf Mode 1 gesetzt werden. 

Fragen Sie für nähere Informationen den PHYTEC Support.

Reset

Führt einen Reset der AWB-Einheit durch, so dass diese neu ausregelt.

Mode

Mode = 1 steht für den manuellen Modus.

Mode = 2 steht für den Automatik-Modus.

Wird der Mode im laufenden Betrieb geändert, muss der AWB aus- und wieder eingeschaltet werden, damit die Änderung übernommen wird. 

Profile/Index

Das System wird mit einer gewissen Anzahl an Profilen kalibriert. Diese Profile können direkt ohne Regelung ausgewählt werden. Hierzu muss der Mode 2 ausgewählt werden.

PHYTEC hat hierbei folgende Profile  für die Vorkalibrierung verwendet: 0=A ; 1=D50 ; 2=D65 ; 3=D75 ; 4=F11 (TL84)

Damping

Durch das Aktivieren der Dämpfung wird der Weißabgleich etwas träger.
Dies kann für einen Betrachter die Regelung unauffälliger wirken lassen. Die Einstellung der Dämpfung sollte gemäß den Anforderungen der Endanwendung erfolgen.

VVEXT

Das VVEXT Tool bietet weitere Konfigurationsmöglichkeiten auf die hier nicht weiter eingegangen wird.

XML

Die AWB Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <awb enable="true">
         <damping>true</damping>
         <index>3</index>
         <mode>2</mode>
      </awb>

...

</tuning>

Denoise Prefilter (DPF) 

Der Denoise Prefilter stellt eine Rauschunterdückung des Kamerabilds zur Verfügung.
Besonders während Livestream-Darstellungen macht sich dieser Filter positiv bemerkbar.

Allgemein hat eine Rauschunterdrückung eine Art Weichzeichnung zur Folge. Das Bild verliert hierdurch etwas an Kontrast.

Ohne (links) und mit (rechts) Denosie Prefilter

Konfigurationsmöglichkeiten

Ein/Aus 

Schaltet die Funktion an oder aus.

VVEXT

XML

Die DPF Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

       <dpf enable="true"/>

...

</tuning>

Chromatic Aberration Compensation (CAC) 

Der Effekt der Chromatischen Aberration tritt als Farbänderung am Rand von Objekten auf. Hierbei werden die Spektralfarben im Objektiv unterschiedlich gebrochen. Dies führt im Brennpunkt zu einem Farbfehler.

Desto höher der Kontrast an der Kante ist, desto stärker fallen die Verfärbungen auf. 

PHYTEC hat das CAC Feature nicht in Betrieb genommen. Für eine korrekte Korrektur ist eine Kalibrierung notwendig, so dass diese Funktion mit den vorkalibrierten XML Files vorerst nicht zur Verfügung steht.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

VVEXT

XML

Die CAC Konfiguration kann unter dem Element <tuning> innerhalb des XMLs vorgenommen werden:

<tuning>

...

      <cac enable="false"/>

...

</tuning>

High Dynamic Range (HDR) 

High Dynamic Range bezeichnet die Eigenschaft eines Sensorsystems, sehr helle und sehr dunkle Bildabschnitte gleichzeitig innerhalb einer Aufnahme gut erkennbar abzubilden.
Dies setzt bereits bei der Bildaufnahme bestimmte Verfahren voraus, die den Dynamikbereich der Aufnahme vergrößern.

Um das Feature verwenden zu können, wird Bildsensor benötigt, der Digital Overlap (DOL) oder Staggered HDR unterstützt.
Für solche Sensoren bietet der ISP des i.MX 8M plus grundsätzlich die erforderliche Nachverarbeitung der HDR-Rohdaten an.

Im PD22.1.0 wird das HDR Feature nicht unterstützt.

Fragen Sie bitte für nähere Informationen den PHYTEC Support.

Global Wide Dynamic Range (GWDR) 

Das GWDR ist ein Tonemapping-Verfahren und verbessert die allgemeine Helligkeitsabstufung. 

GWDR wurde von PHYTEC nicht verifiziert.

Das GWDR steht im VVEXT Tool nicht zur Verfügung und ist ebenfalls nicht im XML vorbereitet.

Wir empfehlen, Optimierungen mittels WDR3 durchzuführen.

Fragen Sie für weitere Informationen bitte den PHYTEC Support.

Automatic Focus Control (AF) 

Die Automatic Focus Control ermöglicht die automatische Nachführung der Bildschärfe.
Voraussetzung dafür ist ein Objektiv, welches sich durch ein elektrisches Signal (bzw. einen entsprechenden Parameter) im Fokus verstellen lässt.
Für ein gegebenes Objektiv ist eine individuelle Anpassung erfoderlich.

Im PD22.1.0 wird das Auto Fokus Feature noch nicht unterstützt.

Fragen Sie für nähere Informationen den PHYTEC Support.

Flicker Avoidance Period (FAP) 

Im PD22.1.0 wird das Flicker Avoidance Feature nicht unterstützt.

Fragen Sie für nähere Informationen den PHYTEC Support.

Color Noise Reduction (CNR) 

Das CNR Feature ist für die Reduktion von geringen Farbrauschen angedacht.

Es  wurde von PHYTEC bisher nicht näher betrachtet bzw. verwendet. 

Bisherige Auswertungen haben keinen signifikaten Nutzen bei den von PHYTEC angebotenen Kameramodulen erzielt.

Er ist per Default deaktiviert in den vorgefertigten XMLs.

Konfigurationsmöglichkeiten

Ein/Aus

Schaltet die Funktion an oder aus.

Threshold1 <0 ... 32767>

Schwellwert für die Farbrausch-Reduzierung im Cb-Kanal.

Threshold2 <0 ... 32767>

Schwellwert für die Farbrausch-Reduzierung im Cr-Kanal.

VVEXT

XML

Die CNR Konfiguration wird unter dem Element <tuning> innerhalb des XMLs vorgenommen:

<tuning>

...

        <cnr enable="false">
            <threshold.tc.1>0</threshold.tc.1>
            <threshold.tc.2>0</threshold.tc.2>
        </cnr>

...

</tuning>

Revision History

Date

Version Numbers

Changes in this Manual

18.07.2022

L-1036d.A0

Preliminary Manual