Rockchip · AI & Linux Hub

Kameras und Video

Rockchip ISP30-Entwicklung: vollständiger Leitfaden zu RK3588, RkAiq-API und Debugging

Vollständige ISP30-V1.2.5-Referenz zu RkAiq-Systemsteuerung, AE/AWB/AF, Bildverarbeitungsmodulen, Abstimmung, Debugging und RK-RAW-Formaten.

· ArmSoM Editorial · Rockchip source documentation · 489 Min. Lesezeit

Diese Plattformreferenz bewahrt den vollständigen technischen Haupttext der 436-seitigen englischen Quelle V1.2.5 (PDF S. 16–436), einschließlich RK-RAW-Formaten und abschließender Kapitel zu Fehlercodes und Abkürzungen. Ein entsprechendes chinesisches PDF wurde nicht bereitgestellt. Die chinesische, russische und deutsche Fassung sind vollständige Übersetzungen dieser englischen Version; alle 42 technischen Originalabbildungen stammen aus dem englischen PDF, einschließlich dort bereits vorhandener chinesischer Beschriftungen. Zehn bildbasierte RAW-Aufbau-/Formattabellen sind zusätzlich als editierbare Tabellen transkribiert. Keine Ganzseitenbilder ersetzen den Haupttext.

Die Quelle nennt RK3588 / Linux 5.10; BuildRoot und Android sind mit Y, Debian und Yocto mit N gekennzeichnet. Dies sind historische Quellenangaben, keine Unterstützungszusage für jedes BSP. Prüfen Sie für ArmSoM-Platinen zuerst den genauen SoC, die ISP-Generation, Sensor/VCM, Kernel, AIQ-Bibliothek, IQ-Datei und SDK/BSP-Zweig. ArmSoM Sige7 ist eine RK3588-Platine, die APIs und Beispiele dieses Artikels wurden jedoch nicht auf ihrer Hardware validiert. Alle Messungen und Beispiele stammen aus der Quelle; keine Hardwarebefehle oder Kamera-/Motoroperationen wurden ausgeführt.

Unklarheiten der Quelle: Wiederholte API-Überschriften, vermischte ISP-Generationen und Typen sowie widersprüchliche Einheiten, Standardwerte, Protokollstufen und RAW-Feldbeschreibungen bleiben erhalten und sind in den redaktionellen Anmerkungen aufgeführt. Werte und Bezeichner werden nicht stillschweigend korrigiert. Codekommentare bleiben in ihrer Originalsprache. Befehle und APIs können den Kamera- oder Motorzustand verändern; passen und prüfen Sie sie vor Verwendung.

Redaktionelle Anmerkungen · ArmSoM Sige7 · ArmSoM-Kameradokumentation · Rockchip Linux

1. Gesamtüberblick

1.1 Strukturdiagramm

Technische Originalabbildung — PDF S. 16

RK3588 VI umfasst als Sammelbegriff für Videoeingangsmodule:

Schnittstellen und Datenerfassung: C/DPHY, DVP, CSI, VICAP

Bildverarbeitung: ISP-0,ISP-1,FEC-0,FEC-1

Der RK3588 ISP gehört zur Version RK ISP v3.0 und wird in der weiteren Dokumentation als ISP30 bezeichnet.

1.2 Betriebsarten

Einzelner ISP, einzelner CIS (CMOS Image Sensor):

RAW-Durchleitungs-/Online-Modus: Die blauen Pfeile im Blockdiagramm zeigen den Datenflusspfad 1.0.

Raw-Rücklese-/Offline-Modus: Die orangefarbenen Pfeile im Blockdiagramm zeigen die Datenflusspfade 1.1 und 1.2.

Dual-ISP-2-in-1-Modus für einen einzelnen CIS:

Im 2-in-1-Modus verarbeiten ISP-0/ISP-1 den linken und rechten Teil eines einzelnen CIS-Bildes getrennt, um CIS mit hoher Auflösung zu unterstützen.

Mehrere CIS:

Ein einzelner ISP verwendet den Raw-Rücklese-/Offline-Modus und kann dadurch mehrere CIS-Eingänge im Zeitmultiplexbetrieb unterstützen.

1.3 Überblick über Leistung und Einschränkungen

Unterstützte Auflösungen und Durchsatz:

Betriebsart Durchsatz Maximale
Auflösung
Kleinste unterstützte
Auflösung
Einzelner ISP, einzelner CIS 16Mega@30fps 4672x3504 208x128
Dual-ISP-2-in-1, einzelner
CIS
32Mega@30fps 8064x6048 \

Unterstützung für Raw12-Dateneingang.

ISP30 unterstützt die Verarbeitung von Raw12-Daten. Bei Raw14-Eingang werden die niederwertigen Bits für die Raw12-Verarbeitung verworfen. Bei Bilddaten mit weniger als 12 Bit werden die niederwertigen Bits zur Raw12-Verarbeitung ergänzt.

Unterstützung für Bayer-Farb-CIS und Mono-CIS.

Unterstützung für 3-in-1-Mehrbild-HDR. Folgende HDR-CIS-Typen werden unterstützt:

HDR mit Mehrfachbelichtung Unterstützung durch RK-Plattform CIS Anwendung
Sequential / Framebase HDR ISP20: RV1109/RV1126 usw.
ISP21: RK356X usw.
ISP30: RK3588
ISP32: RV1106
OV4689 IPC/CVR
Staggered / DOL HDR ISP20: RV1109/RV1126 usw.
ISP21: RK356X usw.
ISP30: RK3588
ISP32: RV1106
OS04A10
IMX464
AR0239
IPC/CVR
DCG HDR ISP20: RV1109/RV1126 usw.
ISP21: RK356X usw.
ISP30: RK3588
ISP32: RV1106
OS04A10
IMX585
IPC/CVR
SME HDR N IMX378 Verbrauchergeräte
BME HDR N IMX258 Verbrauchergeräte
QBC HDR N OV50C40
IMX586
Verbrauchergeräte
Lateral overflow HDR N AR0821 IPC
Splite-diode pixel HDR N OV10640 CVR

Geringste Latenz bis zur Benachrichtigung über die ISP30-Datenausgabe nach DDR im Raw-Durchleitungs-/Online-Modus: ungefähr Übertragungszeit eines Bildes/15.

Im ISP-Zeitmultiplexmodus unterstützt ein einzelner ISP bis zu vier Datenquelleneingänge.

Im RAW-Durchleitungs-/Online-Modus beträgt die minimale Bildaustastung 136 Zeilen und die minimale Zeilenaustastung 16 Pixel.

Das CSM-Modul unterstützt keine Umwandlung auf den begrenzten YUV-Wertebereich; Einzelheiten siehe API-Beschreibung des IMGPROC/CSM-Moduls.

2. Überblick

ISP30 umfasst eine Reihe von Bildverarbeitungsalgorithmusmodulen, insbesondere Dunkelstromkorrektur, Defektpixelkorrektur, 3A, HDR, Objektivschattierungskorrektur, Objektivverzeichnungskorrektur, 3DLUT, Rauschunterdrückung (einschließlich RAW-Domäne, Mehrbild-Rauschunterdrückung und Farbrauschunterdrückung), Schärfung usw.

ISP30 umfasst eine Hardwareimplementierung der Algorithmen und einen Teil zur logischen Softwaresteuerung. RkAiq implementiert die logische Softwaresteuerung.

Die Hauptfunktionen des RkAiq-Softwaremoduls sind das Abrufen von Bildstatistiken vom ISP-Treiber, ihre Kombination mit IQ-Abstimmparametern und die Berechnung neuer ISP-, Sensor- und weiterer Hardwareparameter durch eine Reihe von Algorithmen. Dieser Vorgang wird kontinuierlich wiederholt, um schließlich die beste Bildwirkung zu erzielen.

2.1 Funktionsbeschreibung

Technische Originalabbildung — PDF S. 18

Abbildung 1-1 ISP21-Systemblockdiagramm

Das gesamte Software-/Hardwareblockdiagramm von ISP30 ist in Abbildung 1-1 dargestellt. Der Sensor liefert einen Datenstrom an ISP HW, das nach einer Reihe von Bildverarbeitungsalgorithmen das Bild ausgibt. RkAiq ruft kontinuierlich statistische Daten von ISP HW ab und erzeugt mit Algorithmen wie 3A neue Parameter zur Rückkopplung an jedes Hardwaremodul. Das Abstimmwerkzeug kann Parameter online in Echtzeit abstimmen; anschließend lässt sich eine neue IQ-Parameterdatei speichern und erzeugen.

2.2 RkAiq-Architektur

Technische Originalabbildung — PDF S. 19

Abbildung 1-2 Gesamtarchitektur von RkAiq

1. Das Softwarekonzept von ISP30 RkAiq ist in Abbildung 1-2 dargestellt. Es gliedert sich hauptsächlich in folgende vier Teile:

1. Dynamische Bibliothek RkAiq lib. Diese Bibliothek enthält die Hauptlogik, die Statistiken vom Treiber abruft und an die einzelnen Algorithmusbibliotheken weiterleitet.

2. Integrierte Algorithmusbibliotheken. Die von Rk bereitgestellte statische Algorithmusbibliothek wird standardmäßig bei der dynamischen Bibliothek RkAiq lib registriert.

3. Kundeneigene 3A-Bibliotheken. Kunden können entsprechend der Schnittstellendefinition eigene 3A- oder andere Algorithmusbibliotheken implementieren. Nach Registrierung einer eigenen Algorithmusbibliothek bei der dynamischen Bibliothek RkAiq lib lässt sich über die bereitgestellte Schnittstelle auswählen, ob die eigene oder die Rk-Bibliothek ausgeführt wird.

4. IQ-Datei. Ergebnisdateien der IQ-Abstimmung speichern algorithmusbezogene Parameter sowie einige statische Systemparameter, beispielsweise zum CIS.

2.3 Softwarearchitektur

Technische Originalabbildung — PDF S. 20

Abbildung 1-3 Blockdiagramm der Softwarearchitektur

Das ISP30-Softwareblockdiagramm in Abbildung 1-3 gliedert sich hauptsächlich in folgende drei Schichten:

1. Kernelschicht. Sie enthält alle Hardwaretreiber des Kamerasystems, insbesondere ISP-, Sensor-, VCM-, Blitzlicht- und IrCutter-Treiber usw. Die Treiber basieren auf V4L2 und dem Media-Framework.

2. Framework-Schicht. Diese Schicht integriert RkAiq lib auf zwei mögliche Arten:

IspServer-Modus: Rkaiq lib läuft in einem eigenständigen IspServer-Prozess, mit dem der Client über dbus kommuniziert. Außerdem kann dieser Ansatz bestehenden Drittanwendungen wie v4L-CTL ohne Quellcodeänderung Bilder mit ISP-Abstimmwirkung bereitstellen.

Direkte Integration: RkAiq lib kann direkt in Anwendungen integriert werden.

3. Benutzerschicht. Anwendungsschicht des Benutzers.

2.4 Softwareabläufe

Technische Originalabbildung — PDF S. 22

Abbildung 1-4 Ablaufdiagramm

Der Aufrufablauf der RkAiq-Schnittstellen ist in Abbildung 1-4 dargestellt. Gestrichelt umrahmte Teile sind optional; die blaue Schrift kennzeichnet die Konfiguration, die die Anwendung zusammen mit dem RkAiq-Ablauf verwenden muss.

configure media pipeline: Optional die ISP30-Pipeline konfigurieren, beispielsweise die Sensorausgangsauflösung; der Treiber besitzt eine Standardkonfiguration. rk_aiq_uapi2_sysctl_init: RkAiq einschließlich der IQ-Abstimmparameter und verschiedener Algorithmusbibliotheken initialisieren. other Aiq or algo params uapis: Optional erforderliche Parameter über die APIs der einzelnen Algorithmen konfigurieren und Drittanbieter-Algorithmusbibliotheken registrieren. rk_aiq_uapi2_sysctl_prepare: Die Initialisierungsparameter jeder Algorithmusbibliothek und jedes Hardwaremoduls vorbereiten und an den Treiber übergeben.

video capture start: Dieser Vorgang aktiviert den ISP-Datenfluss der Anwendung und muss nach rk_aiq_uapi2_sysctl_prepare aufgerufen werden.

rk_aiq_uapi2_sysctl_start: Den internen RkAiq-Ablauf starten. Nach erfolgreichem Schnittstellenaufruf beginnt der Sensor mit der Datenausgabe; der ISP verarbeitet die Daten und gibt das verarbeitete Bild aus.

Rkaiq running: RkAiq ruft kontinuierlich Statistiken vom ISP-Treiber ab, berechnet mit Algorithmen wie 3A neue Parameter und wendet sie auf den Treiber an. PC Online Tuning Tool: Der PC kann die Parameter online über das Abstimmwerkzeug anpassen. video capture stop: Vor dem Stoppen des RkAiq-Ablaufs muss der Datenfluss angehalten werden. rk_aiq_uapi2_sysctl_stop: Den laufenden RkAiq-Ablauf stoppen. Sie können Parameter anpassen und erneut starten oder direkt erneut starten.

rk_aiq_uapi2_sysctl_deinit: RkAiq deinitialisieren.

2.5 API-Beschreibung

Die von RKAiq bereitgestellten APIs sind in zwei Ebenen unterteilt: funktionsbezogene und modulbezogene APIs.

Funktionsbezogene API: Kapselt modulbezogene APIs und richtet sich hauptsächlich an Produktanwendungen mit einfachen, auf Modulfunktionen basierenden Aufgaben.

Modulbezogene API: Detaillierte Parametereinstellung und -abfrage für das jeweilige Modul ohne funktionale Unterteilung der API.

Die modulbezogenen APIs von RKAiq unterstützen synchrone und asynchrone Modi. Funktionsbezogene APIs kapseln standardmäßig den synchronen Modus der modulbezogenen APIs.

Synchroner Modus (Sync): Diese API arbeitet blockierend. AIQ aktualisiert Parameter grundsätzlich bildweise; im synchronen Modus kann der aufrufende Thread für eine Zeit <= der Videobildperiode blockiert werden.

Asynchroner Modus (ASync): Diese API arbeitet nicht blockierend. Das AIQ-Framework speichert API-Einstellparameter im internen Parameterpuffer und überträgt zum jeweiligen Zeitpunkt die neuesten ISP-Parameter an die Hardware.

Hinweise zur Verwendung synchroner und asynchroner Modi modulbezogener APIs

Die zweite Parameterstruktur einer modulbezogenen API enthält gewöhnlich die Einstellparameter und wird Eigenschaftsstruktur genannt. Ihre internen rk_aiq_uapi_sync_t-Elemente konfigurieren den Aufrufmodus der jeweiligen API; Einzelheiten enthalten folgende Datentypen:

2.5.1 rk_aiq_uapi_sync_t

【Beschreibung】 Synchronisationsmodus des Moduls

【Definition】

 typedef struct rk_aiq_uapi_sync_s {
     rk_aiq_uapi_mode_sync_e     sync_mode;
     bool                        done;
 } rk_aiq_uapi_sync_t;

【Felder】

Elementname Beschreibung
sync_mode @setAttrib: Kennzeichen für den Parameteraktualisierungsmodus;
RK_AIQ_UAPI_MODE_DEFAULT: Standardmäßig synchroner Modus.
RK_AIQ_UAPI_MODE_SYNC: Synchroner Modus.
RK_AIQ_UAPI_MODE_ASYNC: Asynchroner Modus.
@getAttrib:
RK_AIQ_UAPI_MODE_DEFAULT: Standardmäßig zuletzt gesetzte Eigenschaften abrufen (sync_mode ==
RK_AIQ_UAPI_MODE_ASYNC); möglicherweise noch nicht wirksam.
RK_AIQ_UAPI_MODE_SYNC: Aktuell verwendete Eigenschaften abrufen.
RK_AIQ_UAPI_MODE_ASYNC: Wie RK_AIQ_UAPI_MODE_DEFAULT.
done @done (parsm out): Kennzeichen für den Parameteraktualisierungsstatus;
true bei aktualisierten Parametern, false bei noch nicht aktualisierten Parametern.

Der AIQ-API-Referenzcode ist nach Modulen gegliedert und enthält separate API-Beispiele; Kunden wird empfohlen, diese direkt als Referenz zu verwenden.

rkisp_demo/demo/sample

Dateiname Modul
sample_3dlut_module.cpp 3DLUT
sample_ccm_module.cpp CCM
sample_csm_module.cpp CSM
sample_ablc_module.cpp BLC
sample_abayer2dnr_module.cpp BayerNR 2D
sample_abayertnr_module.cpp BayerNR 3D
sample_aynr_module.cpp YNR
sample_acnr_module.cpp CNR
sample_asharp_module.cpp Sharp
sample_amerge_module.cpp Merge(HDR)
sample_adrc_module.cpp DRC
sample_adehaze_module.cpp Dunstentfernung & Verbesserung
sample_agamma_module.cpp Gamma
sample_awb_module.cpp AWB
sample_ae_module.cpp AE
sample_af_module.cpp AF

3. Systemsteuerung

3.1 Funktionsüberblick

Die Systemsteuerung umfasst die Konfiguration allgemeiner AIQ-Eigenschaften, Initialisierung, Ausführung und Beendigung von AIQ, Einstellung von AIQ-Modulen und weitere Funktionen.

3.2 API-Referenz

3.2.1 rk_aiq_uapi2_sysctl_preInit

【Beschreibung】 Vor der AIQ-Initialisierung einige Parameter voreinstellen, beispielsweise die verwendete IQ-Datei.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_preInit (const char* sns_ent_name,
                          rk_aiq_working_mode_t mode,
                          const char* force_iq_file);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sns_ent_name Sensor-Entitätsname Eingabe
mode ISP-Betriebsart Eingabe
force_iq_file Erzwungene IQ-Datei Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Muss vor rk_aiq_uapi2_sysctl_init aufgerufen werden.

Der Parameter mode dient nur zur Auswahl von IQ-Dateien und konfiguriert nicht die ISP-Betriebsart. Diese muss in rk_aiq_uapi2_sysctl_prepare konfiguriert werden. Ist force_iq_file nicht leer, ist der Parameter mode unwirksam.

Der Parameter force_iq_file enthält den vollständigen Pfad.

Diese Funktion ist optional und dient nur zur Änderung einiger Standardeinstellungen vor rk_aiq_uapi2_sysctl_init.

3.2.2 rk_aiq_uapi2_sysctl_preInit_scene

【Beschreibung】 Vor der AIQ-Initialisierung die IQ-Szenarioparameter auswählen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_preInit_scene (const char* sns_ent_name,
                          const char *main_scene,
                         const char *sub_scene);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sns_ent_name Sensor-Entitätsname Eingabe
main_scene Hauptszene; die Werte sind in der IQ-Datei definiert Eingabe
sub_scene Unterszenen; die Werte sind in der IQ-Datei definiert Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Muss vor rk_aiq_uapi2_sysctl_init aufgerufen werden.

main_scene muss anhand des Hauptszenen-Arrays in der IQ-Datei ausgewählt werden; der Standardwert lautet gewöhnlich “normal”.

sub_scene muss anhand des Unterszenen-Arrays innerhalb der Hauptszene in der IQ-Datei ausgewählt werden; der Standardwert lautet gewöhnlich “day”.

Da standardmäßig normal-day gewählt wird, muss für hdr-day oder andere benutzerdefinierte Modi diese Funktion zur expliziten Auswahl aufgerufen werden. Andernfalls können die IQ-Parameter falsch sein.

3.2.3 rk_aiq_uapi2_sysctl_switch_scene

【Beschreibung】 Nach der AIQ-Initialisierung die IQ-Szenarioparameter umschalten.

【Syntax】

 int
 rk_aiq_uapi2_sysctl_switch_scene (const rk_aiq_sys_ctx_t* sys_ctx,
                          const char *main_scene,
                         const char *sub_scene);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
main_scene Hauptszene; die Werte sind in der IQ-Datei definiert Eingabe
sub_scene Unterszenen; die Werte sind in der IQ-Datei definiert Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Nach rk_aiq_uapi2_sysctl_init aufrufen.

main_scene muss anhand des Hauptszenen-Arrays in der IQ-Datei ausgewählt werden.

sub_scene muss anhand des Unterszenen-Arrays innerhalb der Hauptszene in der IQ-Datei ausgewählt werden.

Diese Schnittstelle schaltet IQ dynamisch um. Dies ist derzeit unzureichend getestet und kann unerwartete Ergebnisse verursachen; daher vorsichtig verwenden.

3.2.4 rk_aiq_uapi2_sysctl_init

【Beschreibung】 AIQ-Kontext initialisieren.

【Syntax】

 rk_aiq_sys_ctx_t*
 rk_aiq_uapi2_sysctl_init (const char* sns_ent_name,
                          const char* iq_file_dir,
                          rk_aiq_error_cb err_cb,
                          rk_aiq_metas_cb metas_cb);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sns_ent_name Sensor-Entitätsname Eingabe
iq_file_dir Pfad der Kalibrierparameterdatei Eingabe
err_cb Fehler-Callback-Funktion; kann NULL sein Eingabe
metas_cb Metadaten-Callback-Funktion; kann NULL sein Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
rk_aiq_sys_ctx_t* AIQ-Kontextzeiger

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Muss vor anderen Funktionsaufrufen erfolgen.

3.2.5 rk_aiq_uapi2_sysctl_deinit

【Beschreibung】 AIQ-Kontext deinitialisieren.

【Syntax】

 void
 rk_aiq_uapi2_sysctl_deinit( rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
Keiner Keiner

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Darf nicht aufgerufen werden, während sich AIQ im gestarteten Zustand befindet.

3.2.6 rk_aiq_uapi2_sysctl_prepare

【Beschreibung】 AIQ-Ausführungsumgebung vorbereiten.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_prepare(const rk_aiq_sys_ctx_t* ctx,
                            uint32_t  width,
                            uint32_t  height,
                            rk_aiq_working_mode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
width Breite der Sensorausgangsauflösung; dient nur zur
Überprüfung
Eingabe
height Höhe der Sensorausgangsauflösung; dient nur zur
Überprüfung
Eingabe
mode Betriebsart der ISP-Pipeline (NORMAL/HDR) Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Muss vor rk_aiq_uapi2_sysctl_start aufgerufen werden.

Wenn diese Funktion nach rk_aiq_uapi2_sysctl_start benötigt wird, rufen Sie zuerst rk_aiq_uapi2_sysctl_stop und anschließend rk_aiq_uapi2_sysctl_prepare auf, um die Ausführungsumgebung erneut vorzubereiten.

3.2.7 rk_aiq_uapi2_sysctl_start

【Beschreibung】 AIQ-Steuerungssystem starten. Nach dem Start ruft AIQ kontinuierlich 3A-Statistiken vom ISP-Treiber ab, führt den 3A-Algorithmus aus und wendet die neu berechneten Parameter an.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_start(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Muss nach rk_aiq_uapi2_sysctl_prepare aufgerufen werden.

3.2.8 rk_aiq_uapi2_sysctl_stop

【Beschreibung】 AIQ-Steuerungssystem stoppen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_stop(const rk_aiq_sys_ctx_t* ctx, bool keep_ext_hw_st);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
keep_ext_hw_st Ob nach dem Stoppen der Zustand externer Geräte wie
(ircut/cpsl) unverändert bleibt
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.9 rk_aiq_uapi2_sysctl_getStaticMetas

【Beschreibung】 Die zum Sensor gehörenden statischen Informationen wie Auflösung, Datenformat usw. abfragen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_getStaticMetas(const char* sns_ent_name,
 rk_aiq_static_info_t* static_info);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sns_ent_name Sensor-Entitätsname Eingabe
static_info Zeiger auf die Struktur mit statischen Informationen Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.10 rk_aiq_uapi2_sysctl_enumStaticMetas

【Beschreibung】 Die von AIQ ermittelten statischen Informationen aufzählen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_enumStaticMetas(int index, rk_aiq_static_info_t*
 static_info);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
index Indexnummer, beginnend bei 0 Eingabe
static_info Zeiger auf die Struktur mit statischen Informationen Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.11 rk_aiq_uapi2_sysctl_enableAxlib

【Beschreibung】 Ausführungszustand der benutzerdefinierten Algorithmusbibliothek einstellen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_enableAxlib(const rk_aiq_sys_ctx_t* ctx,
                                const int algo_type,
                                const int lib_id,
                                bool enable);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
algo_type Typ des zu bearbeitenden Algorithmusmoduls Eingabe
lib_id Kennungs-ID der Algorithmusbibliothek Eingabe
enable Statuseinstellung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Wenn lib_id der aktuell ausgeführten Algorithmusbibliothek entspricht, kann diese Funktion in jedem Zustand außer dem nicht initialisierten aufgerufen werden.

In anderen Fällen darf sie nur im vorbereiteten Zustand aufgerufen werden. Die durch algo_type bezeichnete Algorithmusbibliothek wird dann durch die neue Bibliothek mit der Kennung lib_id ersetzt.

3.2.12 rk_aiq_uapi2_sysctl_getAxlibStatus

【Beschreibung】 Zustand der Algorithmusbibliothek abrufen.

【Syntax】

 bool
 rk_aiq_uapi2_sysctl_getAxlibStatus(const rk_aiq_sys_ctx_t* ctx,
                                   const int algo_type,
                                   const int lib_id);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
algo_type Typ des zu bearbeitenden Algorithmusmoduls Eingabe
lib_id Kennungs-ID der Algorithmusbibliothek Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
false Deaktivierter Zustand
true Aktivierter Zustand

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.13 rk_aiq_uapi2_sysctl_getEnabledAxlibCtx

【Beschreibung】 Kontextstruktur der aktivierten Algorithmusbibliothek abrufen.

【Syntax】

 const RkAiqAlgoContext*
 rk_aiq_uapi2_sysctl_getEnabledAxlibCtx(const rk_aiq_sys_ctx_t* ctx, const int
 algo_type);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
algo_type Typ des zu bearbeitenden Algorithmusmoduls Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
NULL Abruf fehlgeschlagen
Non-NULL Abruf erfolgreich

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Die zurückgegebene Algorithmuskontextstruktur wird von internen privaten Funktionen verwendet. Bei benutzerdefinierten Algorithmusbibliotheken muss diese Funktion nach rk_aiq_uapi2_sysctl_enableAxlib aufgerufen werden; andernfalls wird NULL zurückgegeben.

3.2.14 rk_aiq_uapi2_sysctl_setCpsLtCfg

【Beschreibung】 Steuerinformationen für die Zusatzbeleuchtung einstellen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_setCpsLtCfg(const rk_aiq_sys_ctx_t* ctx,
                        rk_aiq_cpsl_cfg_t* cfg);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
cfg Zeiger auf die Konfigurationsstruktur der Zusatzbeleuchtung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.15 rk_aiq_uapi2_sysctl_getCpsLtInfo

【Beschreibung】 Steuerinformationen der Zusatzbeleuchtung abrufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_getCpsLtInfo(const rk_aiq_sys_ctx_t* ctx,
                        rk_aiq_cpsl_info_t* info);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
info Zeiger auf die Konfigurationsstruktur der Zusatzbeleuchtung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.16 rk_aiq_uapi2_sysctl_queryCpsLtCap

【Beschreibung】 Unterstützte Fähigkeiten der Zusatzbeleuchtung abfragen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_queryCpsLtCap(const rk_aiq_sys_ctx_t* ctx,
                        rk_aiq_cpsl_cap_t* cap);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
cap Zeiger auf die Struktur zur Abfrage der Fähigkeiten der Zusatzbeleuchtung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.17 rk_aiq_uapi2_sysctl_getBindedSnsEntNmByVd

【Beschreibung】 Den zum Videoknoten gehörenden Sensor-Entitätsnamen abfragen.

【Syntax】

 const char* rk_aiq_uapi2_sysctl_getBindedSnsEntNmByVd(const char* vd);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
vd Videopfad, beispielsweise /dev/video20 Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
Sensor-Entitätsname Zeichenkettenzeiger

【Hinweis】

Der Parameter muss der Pfad des ISPP-Skalierungsknotens sein.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.18 rk_aiq_uapi2_sysctl_updateIq

【Beschreibung】 Die aktuell verwendete IQ-Parameterdatei dynamisch aktualisieren, ohne den Datenfluss anzuhalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_sysctl_updateIq(const rk_aiq_sys_ctx_t* sys_ctx, char*
 iqfile);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
iqfile Neue IQ-Datei Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

iqfile muss ein vollständiger Pfad sein.

Das Aktualisieren der IQ-Parameter ermöglicht keinen Wechsel der Betriebsart; beispielsweise lässt sich zwischen HDR und Normal nicht allein durch Aktualisieren der IQ-Datei umschalten. Einige Funktionen können jedoch durch unterschiedliche IQ-Parameterkonfigurationen umgeschaltet werden, beispielsweise erfolgt der Tag-/Nachtwechsel vollständig über die IQ-Konfiguration.

Beim IQ-Wechsel überschreiben die IQ-Konfigurationsparameter die Einstellungen der Benutzer-API. Beispielsweise kann das AWB-Modul in IQ auf manuellen oder automatischen Modus eingestellt werden. Nach Ausführung dieser Funktion wird der aktuelle AWB-Modus unabhängig von seiner bisherigen Einstellung durch die Standardkonfiguration der neuen IQ-Datei überschrieben.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

3.2.19 rk_aiq_uapi2_sysctl_getCrop

【Beschreibung】 Zuschnittparameter abrufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_sysctl_getCrop(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_rect_t
 *rect);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
rect Zeiger auf die Zuschnittparameterstruktur Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

3.3 Datentypen

3.3.1 rk_aiq_working_mode_t

【Beschreibung】 Betriebsart der AIQ-Pipeline

【Definition】

 typedef enum {
     RK_AIQ_WORKING_MODE_NORMAL,
     RK_AIQ_WORKING_MODE_ISP_HDR2    = 0x10,
     RK_AIQ_WORKING_MODE_ISP_HDR3    = 0x20,
 } rk_aiq_working_mode_t;

【Felder】

Elementname Beschreibung
RK_AIQ_WORKING_MODE_NORMAL Normalmodus
RK_AIQ_WORKING_MODE_ISP_HDR2 HDR-Modus mit zwei Bildern
RK_AIQ_WORKING_MODE_ISP_HDR3 HDR-Modus mit drei Bildern

【Vorsichtsmaßnahmen】

Fragen Sie zuerst die von Sensor und AIQ unterstützten Modi ab. Wird der eingestellte Modus nicht unterstützt, ist die Einstellung unwirksam.

3.3.2 rk_aiq_static_info_t

【Beschreibung】 Statische AIQ-Informationen

【Definition】

 typedef struct {
     rk_aiq_sensor_info_t    sensor_info;
     rk_aiq_lens_info_t      lens_info;
     bool has_lens_vcm;
     bool has_fl;
     bool fl_strth_adj_sup;
     bool has_irc;
     bool fl_ir_strth_adj_sup;
 } rk_aiq_static_info_t;

【Felder】

Elementname Beschreibung
sensor_info Beschreibung des Sensornamens, unterstützter Auflösungen usw.
lens_info Objektivinformationen
has_lens_vcm Ob VCM vorhanden ist
has_fl Blitz vorhanden
fl_strth_adj_sup Blitzstärke einstellbar
bool has_irc IR-CUT vorhanden
bool fl_ir_strth_adj_sup  

3.3.3 rk_aiq_sensor_info_t

【Beschreibung】 Sensorinformationen

【Definition】

 typedef struct {
     char sensor_name[32];
     rk_frame_fmt_t  support_fmt[SUPPORT_FMT_MAX];
     int32_t num;
     /* binded pp stream media index */
     int8_t binded_strm_media_idx;
 } rk_aiq_sensor_info_t;

【Felder】

Elementname Beschreibung
sensor_name Name des Sensors
support_fmt Unterstützte Formate
num Anzahl unterstützter Formate
has_fl Blitz vorhanden
binded_strm_media_idx Nummer des Medienknotens, an dem der Sensor eingebunden ist

3.3.4 rk_aiq_module_id_t

【Beschreibung】 AIQ-Modul-ID

【Definition】

 typedef enum {
     RK_MODULE_INVAL = 0,
     RK_MODULE_DPCC,
     RK_MODULE_BLS,
     RK_MODULE_LSC,
     RK_MODULE_AWB_GAIN,
     RK_MODULE_CTK,
     RK_MODULE_GOC,
     RK_MODULE_SHARP,
     RK_MODULE_AE,
     RK_MODULE_AWB,
     RK_MODULE_NR,
     RK_MODULE_GIC,
     RK_MODULE_3DLUT,
     RK_MODULE_LDCH,
     RK_MODULE_TNR,
     RK_MODULE_FEC,
     RK_MODULE_MAX
 }rk_aiq_module_id_t;

【Felder】

Elementname Beschreibung
RK_MODULE_DPCC Defektpixelerkennung und -korrektur
RK_MODULE_BLS Schwarzpegel
RK_MODULE_LSC Objektivschattierungskorrektur
RK_MODULE_AWB_GAIN Weißabgleichsverstärkung
RK_MODULE_CTK Farbkorrektur
RK_MODULE_GOC Gamma
RK_MODULE_SHARP Schärfung
RK_MODULE_AE Belichtung
RK_MODULE_AWB Weißabgleich
RK_MODULE_NR Rauschunterdrückung
RK_MODULE_GIC Grünabgleich
RK_MODULE_3DLUT 3DLUT
RK_MODULE_LDCH LDCH
RK_MODULE_TNR 3D-Rauschunterdrückung
RK_MODULE_FEC Fischaugenkorrektur

3.3.5 rk_aiq_cpsl_cfg_t

【Beschreibung】 Struktur zum Einstellen der Zusatzbeleuchtungsinformationen

【Definition】

 typedef struct rk_aiq_cpsl_cfg_s {
     RKAiqOPMode_t mode;
     rk_aiq_cpsls_t lght_src;
     bool gray_on; /*!< force to gray if light on */
     union {
         struct {
             float sensitivity; /*!< Range [0-100] */
             uint32_t sw_interval; /*!< switch interval time, unit  seconds */
         } a; /*< auto mode */
         struct {
             uint8_t on; /*!< disable 0, enable 1 */
             float strength_led; /*!< Range [0-100] */
             float strength_ir; /*!< Range [0-100] */
         } m; /*!< manual mode */
     } u;
 } rk_aiq_cpsl_cfg_t;

【Felder】

Elementname Beschreibung
mode Betriebsart
lght_src Lichtquellentyp
gray_on Ob nach dem Wechsel in den Nachtmodus auf Schwarzweiß umgestellt wird
sensitivity Umschaltempfindlichkeit im Automatikmodus, Bereich [0,100]
sw_interval Umschaltintervall im Automatikmodus in Sekunden
on Ob im manuellen Modus in den Nachtmodus gewechselt wird
strength_led LED-Lichtstärke im manuellen Modus, Bereich [0,100]
strength_ir Infrarotlampenstärke im manuellen Modus, Bereich [0,100]

3.3.6 rk_aiq_cpsl_info_t

【Beschreibung】 Struktur zum Abfragen der Zusatzbeleuchtungsinformationen

【Definition】

 typedef struct rk_aiq_cpsl_info_s {
     int32_t mode;
     uint8_t on;
     bool gray;
     float strength_led;
     float strength_ir;
     float sensitivity;
     uint32_t sw_interval;
     int32_t lght_src;
 } rk_aiq_cpsl_info_t;

【Felder】

Elementname Beschreibung
mode Betriebsart
lght_src Lichtquellentyp
gray Ob nach dem Wechsel in den Nachtmodus auf Schwarzweiß umgestellt wird
sensitivity Umschaltempfindlichkeit im Automatikmodus, Bereich [0,100]
sw_interval Umschaltintervall im Automatikmodus in Sekunden
on Ob im manuellen Modus in den Nachtmodus gewechselt wird
strength_led LED-Lichtstärke im manuellen Modus, Bereich [0,100]
strength_ir Infrarotlampenstärke im manuellen Modus, Bereich [0,100]

3.3.7 rk_aiq_cpsl_cap_t

【Beschreibung】 Struktur der unterstützten Zusatzbeleuchtungsfähigkeiten

【Definition】

 typedef struct rk_aiq_cpsl_cap_s {
     int32_t supported_modes[RK_AIQ_OP_MODE_MAX];
     uint8_t modes_num;
     int32_t supported_lght_src[RK_AIQ_CPSLS_MAX];
     uint8_t lght_src_num;
     rk_aiq_range_t strength_led;
     rk_aiq_range_t sensitivity;
     rk_aiq_range_t strength_ir;
 } rk_aiq_cpsl_cap_t;

【Felder】

Elementname Beschreibung
supported_modes Unterstützte Betriebsarten
modes_num Anzahl unterstützter Modi
gray Ob nach dem Wechsel in den Nachtmodus auf Schwarzweiß umgestellt wird
supported_lght_src Unterstützte Lichtquellen
lght_src_num Anzahl unterstützter Lichtquellen
strength_led LED-Intensitätsbereich
sensitivity Empfindlichkeitsbereich
strength_ir Intensitätsbereich der Infrarotlampen

3.3.8 rk_aiq_rect_t

【Beschreibung】 Zuschnittparameterstruktur definieren

【Definition】

 typedef struct rk_aiq_rect_s {
     int left;
     int top;
     int width;
     int height;
 } rk_aiq_rect_t;

【Felder】

Elementname Beschreibung
left Horizontaler Ausgabeversatz
top Vertikaler Ausgabeversatz
width Horizontale Ausgabegröße
height Vertikale Ausgabegröße

4. Offline-Bildverarbeitung

4.1 Überblick

RKAIQ stellt eine Funktion zur Offline-Verarbeitung von RAW-Bildern bereit: Dateien im RK-eigenen RAW-Format werden von RKAIQ ausgewertet, zur Verarbeitung an ISP gesendet und als Bilder mit normaler Darstellung ausgegeben.

Hinweis: Die Offline-Bildverarbeitungsfunktion wurde nicht getestet.

4.2 Funktionsblockdiagramm

Technische Originalabbildung — PDF S. 46

Blockdiagramm der Offline-Bildverarbeitung

4.3 Funktionsbeschreibung

Unterstützt RK-RAW-Dateieingabe. Bei Verwendung der Dateieingabeschnittstelle wird der aufrufende Prozess blockiert, bis die Datei vollständig verarbeitet und erfolgreich ausgegeben wurde.

Unterstützt RK-RAW-Puffereingabe im asynchronen Verarbeitungsmodus. Bei Verwendung der Puffereingabeschnittstelle wird der aufrufende Prozess nicht blockiert. Nach Abschluss der Pufferverarbeitung wird die Callback-Funktion aufgerufen, sofern eine registriert ist.

Unterstützt RK-RAW-Puffereingabe im synchronen Verarbeitungsmodus. Bei Verwendung der Puffereingabeschnittstelle wird der aufrufende Prozess blockiert, bis der Puffer vollständig verarbeitet und erfolgreich ausgegeben wurde.

4.4 Beschreibung des RK-RAW-Formats

Siehe Dokumentation des RK-RAW-Dateiformats.

4.5 Unterstützte RAW-Formate

Unterstützt raw8/raw10/raw12 sowie die vier Bayer-Formate BGGR/GBRG/GRBG/RGGB.

4.6 API-Referenz

4.7 Datenstrukturen

4.8 Hinweise

Bei Verwendung der RK-Raw-Datenverarbeitung muss beim Erstellen eines AIQ-Kontexts der Parameter sns_ent_name der Schnittstelle rk_aiq_uapi2_sysctl_init “FakeCamera” lauten.

Die RAW-Datenverarbeitung benötigt IQ-XML-Bildparameterdateien. Die XML-Datei muss für dieselbe Auflösung wie die eingehenden RK-Raw-Bilddaten erzeugt werden. Die Bildparameterdatei muss FakeCamera.xml heißen und im XML-Ladepfad abgelegt werden.

4.9 Referenzbeispiel

Weitere Informationen zur Verwendung der Offline-Bildverarbeitungs-API enthält rkisp_demo unter YOUR_SDK_DIR/external/camera_engine_rkaiq/rkisp_demo.

5. Kameragruppe

5.1 Überblick

Beispielsweise müssen bei Rundumsichtanwendungen mehrere Kameras zur gemeinsamen Verwaltung gruppiert und Parameter wie die Belichtung einheitlich eingestellt werden. Dazu lässt sich eine Gruppe anlegen und mehrere Kameras derselben Gruppe zuordnen. Die Camera-Group-API basiert auf der AIQ-API einer Einzelkamera. Sofern nicht anders angegeben, gelten APIs für einen einzelnen AIQ-Kontext auch für eine Kameragruppe. Die interne AIQ-Implementierung verteilt Anfragen je nach Typ des übergebenen Kontexts an eine Kameragruppe oder eine Einzelkamera.

5.1.1 rk_aiq_uapi2_camgroup_create

【Beschreibung】 Beim Erstellen einer Kameragruppe wird für jede Kamera ein eigener AIQ ctx erstellt und anschließend zur Verwaltung an Group Ctx übergeben.

【Syntax】

 rk_aiq_camgroup_ctx_t*
 rk_aiq_uapi2_camgroup_create (rk_aiq_camgroup_instance_cfg_t* cfg);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
cfg Konfigurationsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
rk_aiq_camgroup_ctx_t* Gruppenlaufzeitumgebung
NULL Fehlgeschlagen

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h

Bibliotheksdatei: librkaiq.so

【Hinweis】

Im Unterschied dazu erzeugt rk_aiq_uapi2_sysctl_init eine AIQ-Laufzeitumgebung für eine Einzelkamera. Wenn eine Sensorentität mit rk_aiq_uapi2_sysctl_init eine Laufzeitumgebung erhält, darf sie nicht zusätzlich über rk_aiq_uapi2_camgroup_create eine Gruppenlaufzeitumgebung erhalten, und umgekehrt.

Da die standardmäßige IQ-Szene normal-day lautet, müssen HDR oder andere Modi vorab mit rk_aiq_uapi2_sysctl_preInit_scene eingestellt werden.

5.1.2 rk_aiq_uapi2_camgroup_prepare

【Beschreibung】 Entsprechend dem gewählten Pipeline-Modus Initialisierungsparameter erzeugen und Pipelines anlegen. Für den AIQ ctx jeder Kamera wird rk_aiq_uapi2_sysctl_prepare aufgerufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_prepare (rk_aiq_camgroup_ctx_t* camgroup_ctx,
 rk_aiq_working_mode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe
mode Betriebsart der Pipeline Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Siehe Fehlercodes

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.3 rk_aiq_uapi2_camgroup_start

【Beschreibung】 Kameragruppe ausführen. Für den AIQ ctx jeder Kamera wird rk_aiq_uapi2_sysctl_start aufgerufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_start (rk_aiq_camgroup_ctx_t* camgroup_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler, siehe Fehlercode

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.4 rk_aiq_uapi2_camgroup_stop

【Beschreibung】 Kameragruppe stoppen. Für den AIQ ctx jeder Kamera wird rk_aiq_uapi2_sysctl_stop aufgerufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_stop (rk_aiq_camgroup_ctx_t* camgroup_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler, siehe Fehlercode

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.5 rk_aiq_uapi2_camgroup_destroy

【Beschreibung】 Kameragruppe zerstören. Für den AIQ ctx jeder Kamera wird rk_aiq_uapi2_sysctl_deinit aufgerufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_destroy (rk_aiq_camgroup_ctx_t* camgroup_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler, siehe Fehlercode

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.6 rk_aiq_uapi2_camgroup_getOverlapMap

【Beschreibung】 Im Rundumsichtszenario Überlappungsbereichsinformationen jeder Kamera aus dem CameraGroup-Kontext abrufen.

【Syntax】

 struct RK_PS_SrcOverlapMap*
 rk_aiq_uapi2_camgroup_getOverlapMap (rk_aiq_camgroup_ctx_t* camgroup_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
struct RK_PS_SrcOverlapMap* Zeiger auf die Struktur mit Überlappungsbereichsinformationen
NULL Fehlgeschlagen

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.7 rk_aiq_uapi2_camgroup_getOverlapMap

【Beschreibung】 Im Rundumsichtszenario Überlappungsbereichsinformationen jeder Kamera aus einer Datei abrufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_getOverlapMap_from_file (const char* map_file,
                                                             struct
 RK_PS_SrcOverlapMap** overlapMap);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
map_file Datei mit Überlappungsinformationen Eingabe
overlapMap Speichert die abgerufenen Überlappungsinformationen Eingabe, Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler, siehe Fehlercode

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.8 rk_aiq_uapi2_camgroup_getAiqCtxBySnsNm

【Beschreibung】 Den AIQ-Kontext einer Einzelkamera über den Sensor-Entitätsnamen innerhalb der Gruppe abrufen.

【Syntax】

 rk_aiq_sys_ctx_t*
 rk_aiq_uapi2_camgroup_getAiqCtxBySnsNm (rk_aiq_camgroup_ctx_t* camgroup_ctx,
 const char* sns_entity_name);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe
sns_entity_name Name der Sensorentität innerhalb der Gruppe Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
rk_aiq_sys_ctx_t* Abgerufene AIQ-Laufzeitumgebung
NULL Fehlgeschlagen

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.9 rk_aiq_uapi2_camgroup_getCamInfos

【Beschreibung】 Informationen zu den Kameras in der Gruppe abrufen, beispielsweise den Namen der Sensorentität.

【Syntax】

 XCamReturn
 rk_aiq_uapi2_camgroup_getCamInfos (rk_aiq_camgroup_ctx_t* camgroup_ctx,
                    rk_aiq_camgroup_camInfos_t* camInfos);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
camgroup_ctx Gruppenlaufzeitumgebung Eingabe
camInfos Abgerufene Informationen zu den Kameras in der Gruppe Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler, siehe Fehlercode

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_camgroup.h; Bibliotheksdatei: librkaiq.so

5.1.10 rk_aiq_uapi2_camgroup_bind

【Beschreibung】 Reservierte Schnittstelle, nicht implementiert.

5.1.11 rk_aiq_uapi2_camgroup_unbind

【Beschreibung】 Reservierte Schnittstelle, nicht implementiert.

5.2 Datenstrukturen

5.2.1 rk_aiq_camgroup_instance_cfg_t

【Erläuterung】 Carmelaghrup-Konfigurationsparameter

【Definition】

   typedef struct rk_aiq_camgroup_instance_cfg_s {
       const char* sns_ent_nm_array[RK_AIQ_CAM_GROUP_MAX_CAMS];
       int sns_num;
       const char* config_file_dir;
        /* followings are relative path to config_file_dir */
        const char* single_iq_file;
        const char* group_iq_file;
        const char* overlap_map_file;
    } rk_aiq_camgroup_instance_cfg_t;

【Felder】

Feldname Beschreibung
sns_ent_nm_array Array der Sensorentitäten, die der Gruppenverwaltung hinzugefügt werden sollen
sns_num Anzahl der Sensorentitäten, die zur Gruppe hinzugefügt werden sollen
config_file_dir IQ-Dateipfad angeben
single_iq_file IQ-Dateinamen angeben; kann NULL sein. Bei NULL wählt AIQ
automatisch aus
group_iq_file Angegebene IQ-Konfigurationsdatei der Kameragruppe; derzeit nicht verwendet
overlap_map_file Datei mit Kameraüberlappungsinformationen angeben; kann NULL sein

5.2.2 rk_aiq_camgroup_camInfos_t

【Erläuterung】 Informationen zu jeder Kamera in der Kameragruppe

【Definition】

    typedef struct rk_aiq_camgroup_camInfos_s {
        int valid_sns_num;
        const char* sns_ent_nm[RK_AIQ_CAM_GROUP_MAX_CAMS];
        int sns_camPhyId[RK_AIQ_CAM_GROUP_MAX_CAMS];
   } rk_aiq_camgroup_camInfos_t;

【Felder】

Feldname Beschreibung
valid_sns_num Anzahl der in der Gruppe enthaltenen Sensorentitäten
sns_ent_nm Array der in der Gruppe enthaltenen Sensor-Entitätsnamen
sns_camPhyId Array der physischen IDs der in der Gruppe enthaltenen Sensorentitäten

5.2.3 struct RK_PS_SrcOverlapMap

【Erläuterung】 Überlappungsbereich der Kamera definieren

【Definition】

        struct RK_PS_SrcOverlapMap
      {
            char versionInfo[64];
            RK_PS_SrcOverlapPosition srcOverlapPositon[8];
            unsigned char overlapMap[15 * 15 * 8];
        };

【Felder】

Feldname Beschreibung
versionInfo Versionsinformationen
srcOverlapPositon Drehrichtung jeder Kamera: 0, 90, 180 oder 270 Grad
overlapMap Überlappungsinformationen jedes Statistikblocks von 8 Kameras: Die
Statistikdaten jeder Kamera umfassen 15*15 Spalten, insgesamt für 8 Kameras
(nummeriert 0~7). Sind tatsächlich weniger als 8 Kameras vorhanden, wird die
entsprechende Position mit 0 gefüllt. Zeilenweise speichern: Nach der ersten Zeile
aller 8 Kameras folgt die zweite Zeile usw. Der Wertebereich ist 0~255. Bei vollständig
fehlender Überlappung ist der Wert 0, bei vollständiger Überlappung 255. Teilweise
Überlappung wird proportional interpoliert.
camera0 row0; camera1 row0; camera2 row0; camera3 row0; camera4 row0;
camera5 row0; camera6 row0; camera7 row0;
camera0 row1; camera1 row1; camera2 row1; camera3 row1; camera4 row1;
camera5 row1; camera6 row1; camera7 row1;
……
camera0 row14; camera1 row14; camera2 row14; camera3 row14; camera4 row14;
camera5 row14; camera6 row14; camera7 row14;

6. AE

6.1 Überblick

Das AE-Modul ermittelt die Belichtung des aktuellen Bildes anhand des automatischen Belichtungsmesssystems und konfiguriert anschließend Objektivblende, Sensorverschluss und Verstärkung automatisch, um die beste Bildqualität zu erzielen.

6.2 Wichtige Begriffe

Belichtungszeit: Die Zeit, in der der Sensor Ladung sammelt, also der Zeitraum zwischen der Belichtung des Sensorpixels und dem Auslesen seiner Ladung.

Belichtungsverstärkung: Gesamter Verstärkungsfaktor der vom Sensor ausgegebenen Ladung, gewöhnlich bestehend aus digitaler und analoger Verstärkung. Analoge Verstärkung verursacht etwas weniger Rauschen und wird daher im Allgemeinen bevorzugt.

Blende: Mechanismus im Objektiv, der die Größe der freien Öffnung verändert.

Flimmerunterdrückung: Bildflimmern durch eine Abweichung zwischen der Netzfrequenz der Lampe und der Sensorbildrate wird gewöhnlich durch Begrenzung der Belichtungszeit und Änderung der Sensorbildrate unterdrückt.

6.3 Funktionsbeschreibung

Das AE-Modul besteht aus AE-Statistik und dem Algorithmus der AE-Steuerstrategie.

6.4 Referenz der funktionsbezogenen APIs

6.4.1 rk_aiq_uapi2_setAeLock

【Beschreibung】

AE-Belichtungssperre einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAeLock(const rk_aiq_sys_ctx_t* ctx, bool on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
on Sperre aktivieren Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0  

6.4.2 rk_aiq_uapi2_setExpMode

【Beschreibung】 Belichtungsmodus einstellen; automatische und manuelle Belichtung werden unterstützt.

【Syntax】

 XCamReturn rk_aiq_uapi2_setExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Belichtungsmodus Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Beim Wechsel in den manuellen Belichtungsmodus werden für Verstärkung und Belichtungszeit die in der Bildparameterdatei definierten Anfangswerte verwendet. Um den Belichtungswert gleichzeitig mit dem Wechsel in den manuellen Modus einzustellen, kann rk_aiq_uapi2_setManualExp verwendet werden.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.3 rk_aiq_uapi2_getExpMode

【Beschreibung】 Belichtungsmodus abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Belichtungsmodus Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.4 rk_aiq_uapi2_setManualExp

【Beschreibung】 Manuellen Belichtungsmodus verwenden und Verstärkung sowie Belichtungszeit einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setManualExp(const rk_aiq_sys_ctx_t* ctx, float gain,
 float time);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
gain Belichtungsverstärkung Eingabe
time Belichtungszeit Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.5 rk_aiq_uapi2_setExpGainRange

【Beschreibung】** Verstärkungsbereich einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t
 *gain);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
gain Bereich der Belichtungsverstärkung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.6 rk_aiq_uapi2_getExpGainRange

【Beschreibung】 Verstärkungsbereich abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t
 *gain);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
gain Bereich der Belichtungsverstärkung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.7 rk_aiq_uapi2_setExpTimeRange

【Beschreibung】 Belichtungszeitbereich einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t
 *time);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
time Belichtungszeitbereich Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.8 rk_aiq_uapi2_getExpTimeRange

【Beschreibung】 Belichtungszeitbereich abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t
 *time);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
time Belichtungszeitbereich Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.9 rk_aiq_uapi2_setBLCMode

【Beschreibung】 Gegenlichtkompensation ein-/ausschalten und Bereich auswählen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setBLCMode(const rk_aiq_sys_ctx_t* ctx, bool on,
 aeMeasAreaType_t areaType);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Eingabe
areaType Auswahl des Kompensationsbereichs Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Diese Schnittstelle ist nur im linearen Modus verfügbar.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.10 rk_aiq_uapi2_setBLCStrength

【Beschreibung】 Stärke der Aufhellung dunkler Bereiche einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setBLCStrength(const rk_aiq_sys_ctx_t* ctx, int
 strength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
strength Aufhellungsstärke, Bereich [1,100] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Diese Schnittstelle ist nur im linearen Modus verfügbar.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.11 rk_aiq_uapi2_setHLCMode

【Beschreibung】 Spitzlichtunterdrückung ein-/ausschalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_setHLCMode(const rk_aiq_sys_ctx_t* ctx, bool on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Diese Schnittstelle ist nur im linearen Modus verfügbar.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.12 rk_aiq_uapi2_setHLCStrength

【Beschreibung】 Stärke der Spitzlichtunterdrückung einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setHLCStrength(const rk_aiq_sys_ctx_t* ctx, int
 strength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
strength Unterdrückungsstärke, Bereich [1,100] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Diese Schnittstelle ist nur im linearen Modus verfügbar.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.sov

6.4.13 rk_aiq_uapi2_setAntiFlickerEn

【Beschreibung】 Unterdrückung netzfrequenzbedingten Flimmerns ein-/ausschalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAntiFlickerEn(const rk_aiq_sys_ctx_t* ctx, bool on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
on Parameter zum Ein-/Ausschalten der Funktion Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.14 rk_aiq_uapi2_getAntiFlickerEn

【Beschreibung】 Unterdrückung netzfrequenzbedingten Flimmerns ein-/ausschalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_getAntiFlickerEn(const rk_aiq_sys_ctx_t* ctx, bool* on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
on Parameter zum Ein-/Ausschalten der Funktion Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.15 rk_aiq_uapi2_setAntiFlickerMode

【Beschreibung】 Modus der Flimmerunterdrückung einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx,
 antiFlickerMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Modus der Flimmerunterdrückung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.16 rk_aiq_uapi2_getAntiFlickerMode

【Beschreibung】 Modus der Flimmerunterdrückung abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx,
 antiFlickerMode_t *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Modus der Flimmerunterdrückung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.17 rk_aiq_uapi2_setExpPwrLineFreqMode

【Beschreibung】 Frequenz der Flimmerunterdrückung einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx,
 expPwrLineFreq_t freq);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
freq Frequenz der Flimmerunterdrückung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.4.18 rk_aiq_uapi2_getExpPwrLineFreqMode

【Beschreibung】** Frequenz der Flimmerunterdrückung abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx,
 expPwrLineFreq_t *freq);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
freq Frequenz der Flimmerunterdrückung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

6.5 Datentypen der funktionsbezogenen APIs

6.5.1 opMode_t

【Beschreibung】 Automatischen und manuellen Modus definieren.

【Definition】

 typedef enum opMode_e {
     OP_AUTO = 0,
     OP_MANUALl = 1,
     OP_INVAL
 } opMode_t;

【Felder】

Feldname Beschreibung
OP_AUTO Automatikmodus
OP_MANUALl Manueller Modus
OP_INVAL Ungültiger Wert

6.5.2 paRange_t

【Beschreibung】 Parameterbereiche definieren.

【Definition】

 typedef struct paRange_s {
     float max;
     float min;
 } paRange_t;

【Felder】

Feldname Beschreibung
max Oberer Grenzwert
min Unterer Grenzwert

6.5.3 aeMeasAreaType_t

【Beschreibung】 Typ des AE-Messbereichs definieren.

【Definition】

 typedef enum aeMeasAreaType_e {
     AE_MEAS_AREA_AUTO = 0,
     AE_MEAS_AREA_UP,
     AE_MEAS_AREA_BOTTOM,
     AE_MEAS_AREA_LEFT,
     AE_MEAS_AREA_RIGHT,
     AE_MEAS_AREA_CENTER,
 } aeMeasAreaType_t;

【Felder】

Feldname Beschreibung
AE_MEAS_AREA_AUTO Automatisch
AE_MEAS_AREA_UP Oberer Bereich
AE_MEAS_AREA_BOTTOM Unterer Bereich
AE_MEAS_AREA_LEFT Linker Bereich
AE_MEAS_AREA_RIGHT Rechter Bereich
AE_MEAS_AREA_CENTER Mittlerer Bereich

6.5.4 expPwrLineFreq_t

【Beschreibung】 Frequenz der Flimmerunterdrückung definieren.

【Definition】

 typedef enum expPwrLineFreq_e {
        EXP_PWR_LINE_FREQ_DIS   = 0,
        EXP_PWR_LINE_FREQ_50HZ  = 1,
        EXP_PWR_LINE_FREQ_60HZ  = 2,
 } expPwrLineFreq_t;

【Felder】

Feldname Beschreibung
EXP_PWR_LINE_FREQ_DIS  
EXP_PWR_LINE_FREQ_50HZ 50 Hz
EXP_PWR_LINE_FREQ_60HZ 60 Hz

6.5.5 antiFlickerMode_t

【Beschreibung】 Modus der Flimmerunterdrückung definieren.

【Definition】

 typedef enum antiFlickerMode_e {
     ANTIFLICKER_NORMAL_MODE = 0,
     ANTIFLICKER_AUTO_MODE = 1,
 } antiFlickerMode_t;

【Felder】

Feldname Beschreibung
ANTIFLICKER_NORMAL_MODE Normalmodus
ANTIFLICKER_AUTO_MODE Automatischer Auswahlmodus

6.6 Referenz der modulbezogenen APIs

6.6.1 rk_aiq_user_api2_ae_setExpSwAttr

【Beschreibung】 Softwareeigenschaften der AE-Belichtung einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setExpSwAttr(const rk_aiq_sys_ctx_t* ctx,
                                 const Uapi_ExpSwAttrV2_t expSwAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
expSwAttr Parameterstruktur zur Steuerung allgemeiner AE-Funktionen Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Eigenschaften für manuelle Belichtung einstellen

Zu den Belichtungskomponenten gehören Sensorbelichtungszeit, Sensorbelichtungsverstärkung und digitale ISP-Verstärkung. Nach Auswahl des manuellen Belichtungsmodus müssen außerdem für jede Komponente der manuelle Zustand (ManualGainEn, ManualTimeEn, ManualIspDgainEn) und der zugehörige manuelle Wert eingestellt werden. Im manuellen Belichtungsmodus müssen alle Belichtungskomponenten manuell sein; ihre Werte werden durch Sensor und Objektiv begrenzt. Überschreitet ein eingestellter Komponentenwert die Sensorgrenze, korrigiert ihn der Algorithmus automatisch.

 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.AecOpType = RK_AIQ_OP_MODE_MANUAL;
 //LinearAE
 expSwAttr.stManual.LinearAE.ManualGainEn = true;
 expSwAttr.stManual.LinearAE.ManualTimeEn = true;
 expSwAttr.stManual.LinearAE.GainValue = 1.0f; /*gain = 1x*/
 expSwAttr.stManual.LinearAE.TimeValue = 0.02f; /*time = 1/50s*/
 //HdrAE (should set all frames)
 expSwAttr.stManual.HdrAE.ManualGainEn = true;
 expSwAttr.stManual.HdrAE.ManualTimeEn = true;
 expSwAttr.stManual.HdrAE.GainValue[0] = 1.0f; /*sframe gain = 1x*/
 expSwAttr.stManual.HdrAE.TimeValue[0] = 0.002f; /*sframe time = 1/500s*/
 expSwAttr.stManual.HdrAE.GainValue[1] = 2.0f; /*mframe gain = 2x*/
 expSwAttr.stManual.HdrAE.TimeValue[1] = 0.01f; /*mframe time = 1/100s*/
 expSwAttr.stManual.HdrAE.GainValue[2] = 4.0f; /*lframe gain = 4x*/
 expSwAttr.stManual.HdrAE.TimeValue[2] = 0.02f; /*lframe time = 1/50s*/
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

Eigenschaften für automatische Belichtung einstellen

Bei automatischer Belichtung kann der Bereich der Belichtungskomponenten eingestellt werden. Überschreitet dieser die Sensorgrenzen, korrigiert ihn der Algorithmus automatisch.

【Hinweis】: Die Parameter zum Einstellen des Belichtungskomponentenbereichs unterscheiden sich von den Parametern zum Abrufen dieses Bereichs.

 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.AecOpType = RK_AIQ_OP_MODE_AUTO;
 //set time range in struct "stAdvanced"
 expSwAttr.stAdvanced.SetAeRangeEn = true;/*must enable*/
 //LinAE
 expSwAttr.stAdvanced.SetLinAeRange.stExpTimeRange.Max = 0.04f; /*time_max =
 0.04*/
 expSwAttr.stAdvanced.SetLinAeRange.stExpTimeRange.Min = 0.001f; /*time_min =
 0.001*/
 //HdrAE
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[0].Max = 0.002f; /*sframe
 time_max = 0.02*/
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[0].Min = 0.001f; /*sframe
 time_min = 0.01*/
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[1].Max = 0.003f; /*mframe
 time_max = 0.03*/
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[1].Min = 0.002f; /*mframe
 time_min = 0.02*/
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[2].Max = 0.04f; /*lframe
 time_max = 0.03*/
 expSwAttr.stAdvanced.SetHdrAeRange.stExpTimeRange[2].Min = 0.03f; /*lframe
 time_min = 0.02*/
 //get time range in struct "stAuto"
 printf("linear time range=[%f,%f]\n",
     expSwAttr.stAuto.LinAeRange.stExpTimeRange.Min,
 expSwAttr.stAuto.LinAeRange.stExpTimeRange.Max);
 printf("hdr stime range=[%f,%f], mtime range=[%f,%f], ltime range=[%f,%f]\n",
     expSwAttr.stAuto.HdrAeRange.stExpTimeRange[0].Min,
 expSwAttr.stAuto.HdrAeRange.stExpTimeRange[0].Max,
     expSwAttr.stAuto.HdrAeRange.stExpTimeRange[1].Min,
 expSwAttr.stAuto.HdrAeRange.stExpTimeRange[1].Max,
     expSwAttr.stAuto.HdrAeRange.stExpTimeRange[2].Min,
 expSwAttr.stAuto.HdrAeRange.stExpTimeRange[2].Max);
 //set gain range in struct "stAdvanced"
 expSwAttr.stAdvanced.SetAeRangeEn = true;/*must enable*/
 //LinAE
 expSwAttr.stAdvanced.SetLinAeRange.stGainRange.Max = 32.0f; /*gain_max = 32x*/
 expSwAttr.stAdvanced.SetLinAeRange.stGainRange.Min = 1.0f; /*gain_min = 1x*/
 //HdrAE
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[0].Max = 32.0f; /*sframe gain_max
 = 2x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[0].Min = 1.0f; /*sframe gain_min =
 1x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[1].Max = 64.0f; /*mframe gain_max
 = 64x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[1].Min = 1.0f; /*mframe gian_min =
 1x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[2].Max = 64.0f; /*lframe gain_max
 = 64x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[2].Min = 1.0f; /*lframe gain_min =
 1x*/
 //get gain range in struct "stAuto"
 printf("linear gain range=[%f,%f]\n",
     expSwAttr.stAuto.LinAeRange.stGainRange.Min,
 expSwAttr.stAuto.LinAeRange.stGainRange.Max);
 printf("hdr sgain range=[%f,%f], mgain range=[%f,%f], lgain range=[%f,%f]\n",
     expSwAttr.stAuto.HdrAeRange.stGainRange[0].Min,
 expSwAttr.stAuto.HdrAeRange.stGainRange[0].Max,
     expSwAttr.stAuto.HdrAeRange.stGainRange[1].Min,
 expSwAttr.stAuto.HdrAeRange.stGainRange[1].Max,
     expSwAttr.stAuto.HdrAeRange.stGainRange[2].Min,
 expSwAttr.stAuto.HdrAeRange.stGainRange[2].Max);
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

Eigenschaften für halbmanuelle Belichtung einstellen

Halbmanuelle Belichtung bedeutet, dass mindestens eine Belichtungskomponente (Sensorbelichtungszeit, Sensorbelichtungsverstärkung oder digitale ISP-Verstärkung) manuell ist und die übrigen automatisch arbeiten; andernfalls wird mit einem Fehler beendet. Um beispielsweise die Verstärkung manuell und Belichtungszeit sowie digitale ISP-Verstärkung automatisch zu steuern, gibt es zwei Möglichkeiten: Im manuellen Belichtungsmodus die manuelle Aktivierung für Belichtungszeit und digitale ISP-Verstärkung auf false, für Belichtungsverstärkung auf true setzen und den gewünschten manuellen Wert einstellen. Methode 2: Im automatischen Belichtungsmodus den maximalen und minimalen Verstärkungswert auf den festzulegenden Wert setzen.

【Hinweis】Methode 1: Im HDR-Belichtungsmodus ist das manuelle Verhalten aller Bilder synchron, d. h. die entsprechenden Komponenten jedes Bildes besitzen denselben manuellen Zustand. Zugleich muss die maximale Belichtung langer Bilder größer als die maximale Belichtung kurzer Bilder und die minimale Belichtung langer Bilder größer als die minimale Belichtung kurzer Bilder sein. Methode 2: Im HDR-Belichtungsmodus darf das manuelle Verhalten der Bilder unterschiedlich sein, beispielsweise manuelle Verstärkung kurzer Bilder bei automatischer Verstärkung langer Bilder. Auch hierbei muss die maximale Belichtung langer Bilder größer als die maximale Belichtung kurzer Bilder und die minimale Belichtung langer Bilder größer als die minimale Belichtung kurzer Bilder sein.

 //Method One
 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.AecOpType = RK_AIQ_OP_MODE_MANUAL;
 //LinearAE
 expSwAttr.stManual.LinearAE.ManualGainEn = true;
 expSwAttr.stManual.LinearAE.ManualTimeEn = false;
 expSwAttr.stManual.LinearAE.ManualIspDgainEn = false;
 expSwAttr.stManual.LinearAE.GainValue = 2.0f; /*gain = 2x*/
 //HdrAE (need to set all frames)
 expSwAttr.stManual.HdrAE.ManualGainEn = true;
 expSwAttr.stManual.HdrAE.ManualTimeEn = false;
 expSwAttr.stManual.HdrAE.ManualIspDgainEn = false;
 expSwAttr.stManual.HdrAE.GainValue[0] = 1.0f; /*sframe gain = 1x*/
 expSwAttr.stManual.HdrAE.GainValue[1] = 2.0f; /*mframe gain = 2x*/
 expSwAttr.stManual.HdrAE.GainValue[2] = 4.0f; /*lframe gain = 4x*/
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);
 //Method Two
 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.AecOpType = RK_AIQ_OP_MODE_AUTO;
 //set gain range
 expSwAttr.stAdvanced.SetAeRangeEn = true;/*Must be enabled*/
 //LinAE
 expSwAttr.stAdvanced.SetLinAeRange.stGainRange.Max = 2.0f; /*gain_max = 2x*/
 expSwAttr.stAdvanced.SetLinAeRange.stGainRange.Min = 2.0f;  /*gain_min = 2x*/
 //HdrAE (allow to set only one frame)
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[0].Max = 2.0f; /*sframe gain_max =
 2x*/
 expSwAttr.stAdvanced.SetHdrAeRange.stGainRange[0].Min = 2.0f;  /*sframe gain_min
 = 2x*/
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

Feste Bildrate oder automatische Bildratenreduzierung einstellen

Im Modus mit fester Bildrate darf die zulässige Bildrate die vom Treiber definierte maximale Bildrate nicht überschreiten. Andernfalls erscheint ein Protokollhinweis und die Bildrateneinstellung wird deaktiviert.

 //set fixed framemode
 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.stAuto.stFrmRate.isFpsFix = true;
 expSwAttr.stAuto.stFrmRate.FpsValue = 25; /*fps = 25*/
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);
 //set auto framemode
 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 expSwAttr.stAuto.stFrmRate.isFpsFix = false;
 /*Generally, the automatic frame reduction mode is configured by tuning personnel
 in advance with the minimum frame rate and the gain value corresponding to the
 switching frame rate*/
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

Geschwindigkeit der Belichtungsanpassung und Verzögerung in Bildern einstellen

 Uapi_ExpSwAttrV2_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 //set ae speed
 expSwAttr.stAuto.stAeSpeed.DampOver = 0.8f;
 expSwAttr.stAuto.stAeSpeed.DampDark2Bright = 0.8f;
 expSwAttr.stAuto.stAeSpeed.DampUnder = 0.8f;
 expSwAttr.stAuto.stAeSpeed.DampBright2Dark = 0.8f;
 //set ae delay
 expSwAttr.stAuto.BlackDelayFrame = 2;
 expSwAttr.stAuto.WhiteDelayFrame = 4;
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

Flimmerunterdrückung konfigurieren

 Uapi_ExpSwAttr_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 //set antifilicker mode
 expSwAttr.stAuto.stAntiFlicker.enable = true;
 expSwAttr.stAuto.stAntiFlicker.Frequency = AECV2_FLICKER_FREQUENCY_50HZ;
 expSwAttr.stAuto.stAntiFlicker.Mode = AECV2_ANTIFLICKER_AUTO_MODE;
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

AE-Gewichtung einstellen

Stellen Sie eine 15X15-Gewichtung ein; der Algorithmus verdichtet sie entsprechend der tatsächlichen Blockaufteilung der Hardware. Derzeit gibt es zwei Einstellmöglichkeiten: Methode 1: Gewichte direkt in JSON ändern. Methode 2: Gewichte über stadvanced ändern; nach Deaktivierung kann die JSON-Gewichtung wiederhergestellt werden (empfohlene Methode).

Für Gesichtsanwendungen wird empfohlen, beim Erscheinen eines Gesichts expSwAttr.stAdvanced.enable = true zu setzen und die Gewichte in expSwAttr.stAdvanced zu verwenden. Verschwindet das Gesicht, mit expSwAttr.stAdvanced.enable = false wieder die ursprünglichen Gewichte verwenden.

 Uapi_ExpSwAttr_t expSwAttr;
 ret = rk_aiq_user_api2_ae_getExpSwAttr(ctx, &expSwAttr);
 uint8_t GridWeights[225]={
 0,  0, 1,  2,  2,  3,  4,  5,  4, 3,  2,  2,  1,  0,  0,
 0,  1, 2,  3,  3,  4,  5,  6,  5, 4,  3,  3,  2,  1,  0,
 1,  2, 3,  5,  5,  6,  7,  8,  7, 6,  5,  5,  3,  2,  1,
 2,  3, 5,  7,  7,  8,  9, 10,  9, 8,  7,  7,  5,  3,  2,
 2,  3, 5,  7,  8,  9, 10, 11, 10, 9,  8,  7,  5,  3,  2,
 2,  4, 6,  8,  9, 10, 11, 12, 11,10,  9,  8,  6,  4,  2,
 2,  4, 6,  9, 10, 11, 12, 13, 12,11, 10,  9,  6,  4,  2,
 3,  5 ,7, 10, 11, 12, 13, 14, 13,12, 11, 10,  7,  5,  3,
 2,  4, 6,  9, 10, 11, 12, 13, 12,11, 10,  9,  6,  4,  2,
 2,  4, 6,  8,  9, 10, 11, 12, 11,10,  9,  8,  6,  4,  2,
 2,  3, 5,  7,  8,  9, 10, 11, 10, 9,  8,  7,  5,  3,  2,
 2,  3, 5,  7,  7,  8,  9, 10,  9, 8,  7,  7,  5,  3,  2,
 1,  2, 4,  6,  6,  7,  8,  9,  8, 7,  6,  6,  4,  2,  1,
 0,  1, 3,  5,  5,  6,  7,  8,  7, 6,  5,  5,  3,  1,  0,
 0,  1, 3,  5,  5,  6,  7,  8,  7, 6,  5,  5,  3,  1,  0
 };
 //method one:
 memcpy(expSwAttr.GridWeights.uCoeff, GridWeights,
 sizeof(expSwAttr.GridWeights.uCoeff));
 //method two:
 expSwAttr.stAdvanced.enable = true; //important! true means preferring to use these parameters
 memcpy(expSwAttr.stAdvanced.GridWeights, GridWeights,
 sizeof(expSwAttr.stAdvanced.GridWeights));
 ret = rk_aiq_user_api2_ae_setExpSwAttr(ctx, expSwAttr);

6.6.2 rk_aiq_user_api2_ae_getExpSwAttr

【Beschreibung】 Softwareeigenschaften der AE-Belichtung abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getExpSwAttr(const rk_aiq_sys_ctx_t* ctx,
                         Uapi_ExpSwAttrV2_t* pExpSwAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pExpSwAttr Zeiger auf die Struktur der AE-Belichtungssoftwareeigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.3 rk_aiq_user_api2_ae_setLinAeRouteAttr

【Beschreibung】 Szenenbezogene AE-Belichtungsverteilungsstrategie im linearen Modus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setLinAeRouteAttr(const rk_aiq_sys_ctx_t* ctx, const
 Uapi_LinAeRouteAttr_t linAeRouteAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
linAeRouteAttr Struktur der AE-Belichtungsverteilungsstrategie Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

 Uapi_LinAeRouteAttr_t LinAeRouteAttr;
 memset(&LinAeRouteAttr,0x00,sizeof(Uapi_LinAeRouteAttr_t));
 rk_aiq_user_api2_ae_getLinAeRouteAttr(sys_ctx,&LinAeRouteAttr);
 int len = 8;
 float TimeDot[8]={0,0.01,0.01,0.02,0.02,0.03,0.03,0.04};
 float GainDot[8]={1,1,4,4,8,8,16,32};
 float IspGainDot[8]={1,1,1,1,1,1,1,1};
 int PirisDot[8]={512,512,512,512,512,512,512,512};
 LinAeRouteAttr.TimeDot_len = len;
 LinAeRouteAttr.GainDot_len = len;
 LinAeRouteAttr.IspDGainDot_len = len;
 LinAeRouteAttr.PIrisDot_len = len;
 LinAeRouteAttr.GainDot = GainDot;
 LinAeRouteAttr.IspDGainDot = IspGainDot;
 LinAeRouteAttr.TimeDot = TimeDot;
 LinAeRouteAttr.PIrisDot = PirisDot;
 rk_aiq_user_api2_ae_setLinAeRouteAttr(sys_ctx,LinAeRouteAttr);

6.6.4 rk_aiq_user_api2_ae_getLinAeRouteAttr

【Beschreibung】 Szenenbezogene AE-Belichtungsverteilungsstrategie im linearen Modus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getLinAeRouteAttr(const rk_aiq_sys_ctx_t* ctx,
 Uapi_LinAeRouteAttr_t* pLinAeRouteAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pLinAeRouteAttr Zeiger auf die Struktur der AE-Belichtungsverteilungsstrategie Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.5 rk_aiq_user_api2_ae_setHdrAeRouteAttr

【Beschreibung】 Szenenbezogene AE-Belichtungsverteilungsstrategie im HDR-Modus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setHdrAeRouteAttr(const rk_aiq_sys_ctx_t* ctx, const
 Uapi_HdrAeRouteAttr_t hdrAeRouteAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
hdrAeRouteAttr Struktur der AE-Belichtungsverteilungsstrategie Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

 Uapi_HdrAeRouteAttr_t stHdrRoute;
 memset(&stHdrRoute,0x00,sizeof(Uapi_HdrAeRouteAttr_t));
 ret = rk_aiq_user_api2_ae_getHdrAeRouteAttr(ctx,&stHdrRoute);
 int len = 6;
 float HdrTimeDot[3][6] = {0.0, 0.01, 0.01, 0.01, 0.01, 0.01,
                           0.0, 0.02, 0.02, 0.02, 0.02, 0.02,
                           0.0, 0.03, 0.03, 0.03, 0.03, 0.03};
 float HdrGainDot[3][6] = {1, 1, 4, 6, 8, 12,
                           1, 1, 4, 6, 8, 12,
                           1, 1, 4, 6, 8, 12};
 float HdrIspDGainDot[3][6] = {1, 1, 1, 1, 1, 1,
                               1, 1, 1, 1, 1, 1,
                               1, 1, 1, 1, 1, 1};
 int   HdrPIrisGainDot[6] = {1, 1, 1, 1, 1, 1};
 stHdrRoute.Frm0TimeDot_len = len;
 stHdrRoute.Frm0GainDot_len = len;
 stHdrRoute.Frm0IspDGainDot_len = len;
 stHdrRoute.Frm1TimeDot_len = len;
 stHdrRoute.Frm1GainDot_len = len;
 stHdrRoute.Frm1IspDGainDot_len = len;
 stHdrRoute.Frm2TimeDot_len = len;
 stHdrRoute.Frm2GainDot_len = len;
 stHdrRoute.Frm2IspDGainDot_len = len;
 stHdrRoute.PIrisDot_len = len;
 stHdrRoute.Frm0TimeDot = HdrTimeDot[0];
 stHdrRoute.Frm0GainDot = HdrGainDot[0];
 stHdrRoute.Frm0IspDGainDot = HdrIspDGainDot[0];
 stHdrRoute.Frm1TimeDot = HdrTimeDot[1];
 stHdrRoute.Frm1GainDot = HdrGainDot[1];
 stHdrRoute.Frm1IspDGainDot = HdrIspDGainDot[1];
 stHdrRoute.Frm2TimeDot = HdrTimeDot[2];
 stHdrRoute.Frm2GainDot = HdrGainDot[2];
 stHdrRoute.Frm2IspDGainDot = HdrIspDGainDot[2];
 stHdrRoute.PIrisDot = HdrPIrisGainDot;
 ret = rk_aiq_user_api2_ae_setHdrAeRouteAttr(ctx,stHdrRoute);

6.6.6 rk_aiq_user_api2_ae_getHdrAeRouteAttr

【Beschreibung】 Szenenbezogene AE-Belichtungsverteilungsstrategie im HDR-Modus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getHdrAeRouteAttr(const rk_aiq_sys_ctx_t* ctx,
 Uapi_HdrAeRouteAttr_t* pHdrAeRouteAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pHdrAeRouteAttr Zeiger auf die Struktur der AE-Belichtungsverteilungsstrategie Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.7 rk_aiq_user_api2_ae_setLinExpAttr

【Beschreibung】 AE-Belichtungsparameter im linearen Modus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setLinExpAttr(const rk_aiq_sys_ctx_t* ctx, const
 Uapi_LinExpAttrV2_t linExpAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
linExpAttr AE-Belichtungsparameterstruktur Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

AE-Belichtungsparameter im linearen Modus einstellen, darunter beispielsweise Helligkeitsanpassung Evbias, Gegenlichtkompensation BackLightCtrl und Spitzlichtunterdrückung OverExpCtrl. Beachten Sie, dass Gegenlichtkompensation und Spitzlichtunterdrückung nicht gleichzeitig aktiviert werden können.

 Uapi_LinExpAttrV2_t linExpAttr;
 memset(&linExpAttr,0,sizeof(Uapi_LinExpAttrV2_t));
 ret = rk_aiq_user_api2_ae_getLinExpAttr(ctx, &linExpAttr);
 //set Evbias
 printf("Evbias=%f\n", linExpAttr.Evbias);
 linExpAttr.Evbias = 100.0f;
 //set BackLightCtrl
 linExpAttr.BackLightCtrl.Enable = true;
 linExpAttr.BackLightCtrl.StrBias = 200.0f;
 //set OverExpCtrl
 linExpAttr.OverExpCtrl.Enable = true;
 linExpAttr.OverExpCtrl.StrBias = 100.0f;
 ret = rk_aiq_user_api2_ae_setLinExpAttr(ctx, linExpAttr);

6.6.8 rk_aiq_user_api2_ae_getLinExpAttr

【Beschreibung】 AE-Belichtungsparameter im linearen Modus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getLinExpAttr(const rk_aiq_sys_ctx_t* ctx,
 Uapi_LinExpAttrV2_t* pLinExpAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pLinExpAttr Zeiger auf die AE-Belichtungsparameterstruktur Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.9 rk_aiq_user_api2_ae_setHdrExpAttr

【Beschreibung】 AE-Belichtungsparameter im HDR-Modus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setHdrExpAttr(const rk_aiq_sys_ctx_t* ctx, const
 Uapi_HdrExpAttrV2_t hdrExpAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
hdrExpAttr AE-Belichtungsparameterstruktur Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

AE-Belichtungsparameter im HDR-Modus einstellen, darunter beispielsweise manuelles oder automatisches Belichtungsverhältnis und Helligkeitsanpassung Evbias.

 Uapi_HdrExpAttrV2_t HdrExpAttr;
 memset(&HdrExpAttr,0,sizeof(Uapi_HdrExpAttrV2_t));
 ret = rk_aiq_user_api2_ae_getHdrExpAttr(ctx, &HdrExpAttr);
 //set hdr mframe params
 int len = 8;
 float explevel[8] = {0, 0.096, 0.192, 0.384, 0.96, 1.344, 1.92, 3};
 float setpoint[8] = {50, 45, 40, 35, 30, 25, 20, 15};
 HdrExpAttr.HdrAEAttr.MframeCtrl.MExpLevel_len = len;
 HdrExpAttr.HdrAEAttr.MframeCtrl.MSetPoint_len = len;
 HdrExpAttr.HdrAEAttr.MframeCtrl.MExpLevel = explevel;
 HdrExpAttr.HdrAEAttr.MframeCtrl.MSetPoint = setpoint;
 //set ExpRatioType (AUTO/FIX)
 HdrExpAttr.ExpRatioCtrl.ExpRatioType = AECV2_HDR_RATIOTYPE_MODE_AUTO;
 //set Evbias
 HdrExpAttr.Evbias = -100.0f;
 ret = rk_aiq_user_api2_ae_setHdrExpAttr(ctx, HdrExpAttr);

6.6.10 rk_aiq_user_api2_ae_getHdrExpAttr

【Beschreibung】 AE-Belichtungsparameter im HDR-Modus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getHdrExpAttr(const rk_aiq_sys_ctx_t* ctx,
 Uapi_HdrExpAttrV2_t* pHdrExpAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pHdrExpAttr Zeiger auf die AE-Belichtungsparameterstruktur Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.11 rk_aiq_user_api2_ae_setIrisAttr

【Beschreibung】 Parameter der AE-Blendensteuerung einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setIrisAttr(const rk_aiq_sys_ctx_t * sys_ctx, const
 Uapi_IrisAttrV2_t irisAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
irisAttr Parameterstruktur der Blendensteuerung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

 Uapi_IrisAttrV2_t irisAttr;
 ret = rk_aiq_user_api2_ae_getIrisAttr(ctx, &irisAttr);
 irisAttr.enable = true; /*run AIris*/
 //set P-iris attributes
 irisAttr.IrisType = IRIS_P_TYPE;
 irisAttr.PIrisAttr.TotalStep = 81;
 irisAttr.PIrisAttr.EffcStep = 44;
 irisAttr.PIrisAttr.ZeroIsMax = true;
 uint16_t StepTable[1024] = {512, 511, 506, 499, 491, 483, 474, 465, 456,
                             446, 437, 427, 417, 408, 398, 388, 378, 368,
                             359, 349, 339, 329, 319, 309, 300, 290, 280,
                             271, 261, 252, 242, 233, 224, 214, 205, 196,
                             187, 178, 170, 161, 153, 144, 136, 128, 120,
                             112, 105, 98, 90, 83, 77, 70, 64, 58,
                             52, 46, 41, 36, 31, 27, 23, 19, 16,
                             13, 10, 8, 6, 4, 3, 1, 1, 0,
                             0, 0, 0, 0, 0, 0, 0, 0, 0};
 memcpy(irisAttr.PIrisAttr.StepTable,StepTable,sizeof(irisAttr.PIrisAttr.StepTable
 ));
 ret = rk_aiq_user_api2_ae_setIrisAttr(ctx, irisAttr);
 //set DC-iris attributes
 irisAttr.IrisType = IRIS_DC_TYPE;
 irisAttr.DCIrisAttr.Kp= 0.5f;
 irisAttr.DCIrisAttr.Ki= 0.2f;
 irisAttr.DCIrisAttr.Kd = 0.3f;
 irisAttr.DCIrisAttr.OpenPwmDuty = 40;
 irisAttr.DCIrisAttr.ClosePwmDuty = 22;
 irisAttr.DCIrisAttr.MinPwmDuty = 0;
 irisAttr.DCIrisAttr.MaxPwmDuty = 100;
 ret = rk_aiq_user_api2_ae_setIrisAttr(ctx, irisAttr);
 //set manual iris with auto ae
 irisAttr.IrisOpType = RK_AIQ_OP_MODE_MANUAL;
 if(irisAttr.IrisType == IRIS_P_TYPE);
     irisAttr.ManualAttr.PIrisGainValue = 512; /*p-iris F#=1.4*/
 if(irisAttr.IrisType == IRIS_DC_TYPE);
     irisAttr.ManualAttr.DCIrisHoldValue = 20; /*dc-iris PwmDuty=20*/
 ret = rk_aiq_user_api2_ae_setIrisAttr(ctx, irisAttr);

6.6.12 rk_aiq_user_api2_ae_getIrisAttr

【Beschreibung】 Parameter der AE-Blendensteuerung abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getIrisAttr(const rk_aiq_sys_ctx_t * sys_ctx, const
 Uapi_IrisAttrV2_t* irisAttr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
irisAttr Parameterstruktur der Blendensteuerung Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.13 rk_aiq_user_api2_ae_setExpWinAttr

【Beschreibung】 Eigenschaften des AE-Statistikfensters einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_setExpWinAttr(const rk_aiq_sys_ctx_t* sys_ctx, const
 Uapi_ExpWin_t ExpWin);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
ExpWin Parameter der Fenstereigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Die AE-Statistikkoordinaten anhand der Gesichtsposition ändern, um Helligkeitsstatistiken für den Gesichtsbereich zu erfassen.

Hinweis: Beim Einstellen der Statistikkoordinaten muss ExpWin.h_offs+ExpWin.h_size<=pic_width und ExpWin.v_offs+ExpWin.v_size<=pic_height gelten.

 Uapi_ExpWin_t ExpWin;
 //Suppose the sensor resolution is 2688X1520, the lateral offset of the face from the upper left corner of the screen is 100 pixel, the vertical offset is 100 pixel, and the face size is a square with a side length of 100 pixel
 ExpWin.h_offs=100;
 ExpWin.v_offs=100;
 ExpWin.h_size=100;
 ExpWin.v_size=100;
 rk_aiq_user_api2_ae_setExpWinAttr(ctx, ExpWin);

6.6.14 rk_aiq_user_api2_ae_getExpWinAttr

【Beschreibung】 Eigenschaften des AE-Statistikfensters abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_getExpWinAttr(const rk_aiq_sys_ctx_t* sys_ctx,const
 Uapi_ExpWin_t* ExpWin);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
ExpWin Parameter der Fenstereigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.6.15 rk_aiq_user_api2_ae_queryExpResInfo

【Beschreibung】 Interne AE-Zustandsinformationen abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ae_queryExpResInfo(const rk_aiq_sys_ctx_t* ctx,
 Uapi_ExpQueryInfo_t* pExpResInfo);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
pExpResInfo Zeiger auf die Struktur mit internen AE-Zustandsinformationen Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ae.h, rk_aiq_uapi2_ae_int.h

Bibliotheksdatei: librkaiq.so

6.7 Datentypen der modulbezogenen APIs

6.7.1 Uapi_ExpSwAttr_t

【Beschreibung】

Parameterstruktur zur Steuerung allgemeiner AE-Funktionen.

【Definition】

 typedef struct Uapi_ExpSwAttrV2_s {
     rk_aiq_uapi_sync_t                 sync;
     uint8_t                            Enable;
     CalibDb_CamRawStatsModeV2_t        RawStatsMode;
     CalibDb_CamHistStatsModeV2_t       HistStatsMode;
     CalibDb_CamYRangeModeV2_t          YRangeMode;
     uint8_t                            AecRunInterval;
     RKAiqOPMode_t                      AecOpType;
     Cam15x15UCharMatrix_t              GridWeights;
     Uapi_AeAttrV2_t                    stAuto;
     Uapi_MeAttrV2_t                    stManual;
     Uapi_ExpSwAttr_AdvancedV2_t        stAdvanced;
 } Uapi_ExpSwAttrV2_t;

【Felder】

Feldname Beschreibung
sync Definitionen von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
Enable AEC-Aktivierungsschalter. 1: Aec-Algorithmus einschalten; 0: Aec-Algorithmus
ausschalten. Die Belichtung verbleibt auf dem Wert vor dem Ausschalten.
RawStatsMode Helligkeitsstatistikmodus des AEC-Moduls. Vier Modi:
CAM_RAWSTATSV2_MODE_Y/R/G/B; standardmäßig Y.
HistStatsMode Histogrammstatistikmodus des AEC-Moduls. Fünf Modi:
CAM_HISTV2_MODE_Y/R/G/B; standardmäßig Y.
YRangeMode Wertebereichsmodus des Y-Kanals im Aec-Modul. Zwei Modi:
CAM_YRANGEV2_MODE_FULL/LIMITED; standardmäßig FULL.
AecRunInterval Ausführungsintervall des AE-Algorithmus, Wertebereich [0,255], Standardwert 0.
Bei 0 AE in jedem Bild ausführen; bei 1 AE alle 1 Bilder ausführen; entsprechend fortsetzen.
AecOpType Belichtungsmodus: automatische Belichtung (RK_AIQ_OP_MODE_AUTO) oder
manuelle Belichtung (RK_AIQ_OP_MODE_MANUAL). Standardmäßig AUTO.
Manuelle Belichtung muss zusammen mit stManual verwendet werden, um den
manuellen Belichtungswert einzustellen.
GridWeights Fenstergewichtung (Histogramm), enthält 15*15 Arrayelemente, Wertebereich [0,32]
stAuto Parameterstruktur der automatischen Belichtung
stManual Parameterstruktur der manuellen Belichtung
stAdvanced Parameterstrukturen

Zugehöriger Datentyp

rk_aiq_uapi_sync_t

Uapi_ExpSwAttr_AdvancedV2_t

Uapi_AeAttrV2_t

Uapi_MeAttrV2_t

6.7.1.1 Uapi_ExpSwAttr_AdvancedV2_t

【Beschreibung】

Parameterstrukturen mit Vorrang.

【Definition】

 typedef struct Aec_uapi_advanced_attr_s {
     bool                          enable;
     uint8_t                       GridWeights[15 * 15];
     bool                          SetAeRangeEn;
     Aec_LinAeRange_t              SetLinAeRange;
     Aec_HdrAeRange_t              SetHdrAeRange;
 } Aec_uapi_advanced_attr_t;
 typedef Aec_uapi_advanced_attr_t Uapi_ExpSwAttr_AdvancedV2_t;

【Felder】

Feldname Beschreibung
enable Auf 1 setzen, um den Parametern in dieser Struktur Vorrang zu geben
GridWeights AE-Gewichtung, Größe 15X15.
SetAeRangeEn Auf 1 setzen, um den Bereich der automatischen Belichtungskomponenten einzustellen;
bei 0 gilt stattdessen die Abstimmdatei.
SetLinAeRange Eingestellter Bereich der automatischen Belichtungskomponenten bei linearer Belichtung
(nicht der endgültig wirksame Bereich)
SetHdrAeRange Eingestellter Bereich der automatischen Belichtungskomponenten bei HDR-Belichtung
(nicht der endgültig wirksame Bereich)

【Vorsichtsmaßnahmen】

In Uapi_ExpSwAttrV2_t ist ein Satz AE-Gewichte mit der Größe 15X15 definiert. Der Algorithmus erweitert die Gewichtung entsprechend der tatsächlich von der Hardware konfigurierten Gewichtsanzahl. Für Aufgaben wie die Gesichtsbelichtung kann der in Uapi_ExpSwAttr_AdvancedV2_t definierte Gewichtssatz mit 15X15 Werten verwendet werden. Der Algorithmus verdichtet diese Gewichte entsprechend der tatsächlichen Hardwareanzahl. Um den in Uapi_ExpSwAttr_Advanced_t definierten Gewichtssatz zu verwenden, muss enable auf 1 gesetzt werden.

Beim Einstellen des AE-Parameterbereichs über die API muss SetAeRangeEn auf 1 gesetzt werden; andernfalls gilt standardmäßig der automatische Belichtungsparameterbereich der Abstimmdatei. Je nach Belichtungsmodus erfolgt die Einstellung über SetLinAeRange oder SetHdrAeRange. SetHdrAeRange unterstützt die Bereichseinstellung für jedes Bild. Der endgültig wirksame Belichtungszeit- und Verstärkungsbereich muss zusätzlich in stAuto abgefragt werden; hier steht nur der eingestellte, nicht der endgültig wirksame Bereich.

6.7.1.1.1 Aec_AeRange_t

【Beschreibung】 AE-Parameterbereich definieren.

【Definition】

 typedef struct Aec_AeRange_s {
     float                   Min;
     float                   Max;
 } Aec_AeRange_t;

【Felder】

Feldname Beschreibung
Min Unterer Grenzwert
Max Oberer Grenzwert

6.7.1.1.2 Aec_LinAeRange_t

【Beschreibung】 Parameterbereich für den linearen AE-Modus definieren.

【Definition】

 typedef struct Aec_LinAeRange_s {
     Aec_AeRange_t      stExpTimeRange;
     Aec_AeRange_t      stGainRange;
     Aec_AeRange_t      stIspDGainRange;
     Aec_AeRange_t      stPIrisRange;
 } Aec_LinAeRange_t;

【Felder】

Feldname Beschreibung
stExpTimeRange Belichtungszeitbereich; Maximum und Minimum in Millisekunden einstellen
stGainRange Analoger Verstärkungsbereich des Sensors; Maximum und Minimum einstellen
stIspDGainRange Digitaler ISP-Verstärkungsbereich; Maximum und Minimum einstellen
stPIrisRange Bereich der blendenäquivalenten Verstärkung; nur P-Iris-Blendensteuerung unterstützt

【Vorsichtsmaßnahmen】

Wenn Maximum/Minimum jeder Belichtungskomponente den Standardwert 0 besitzt, wird der eingestellte Bereich nicht wirksam. Die tatsächlichen Maxima/Minima werden durch die minimalen und maximalen Knotenwerte des AecRoute-Belichtungszerlegungspfads bestimmt.

Wenn Maximum/Minimum jeder Belichtungskomponente ungleich 0 ist, wird der eingestellte Bereich wirksam. Überschreitet er nicht die Grenzen von Sensor oder ISP, gelten seine Maxima/Minima als tatsächliche Werte; der AecRoute-Belichtungszerlegungspfad wird entsprechend korrigiert und seine maximalen/minimalen Knotenwerte werden auf die eingestellten Komponentenwerte geändert. Werden Sensor- oder ISP-Grenzen überschritten, richten sich die tatsächlichen Maxima/Minima nach den minimalen und maximalen Knotenwerten des AecRoute-Belichtungszerlegungspfads.

6.7.1.1.3 Aec_HdrAeRange_t

【Beschreibung】 Parameterbereich für den AE-HDR-Modus definieren.

【Definition】

 typedef struct Aec_HdrAeRange_s {
     Aec_AeRange_t      stExpTimeRange[3];
     Aec_AeRange_t      stGainRange[3];
     Aec_AeRange_t      stIspDGainRange[3];
     Aec_AeRange_t      stPIrisRange;
 } Aec_HdrAeRange_t;

【Felder】

Feldname Beschreibung
stExpTimeRange Belichtungszeitbereich; Maximum und Minimum in Sekunden einstellen.
Arrayindizes 0/1/2 entsprechen kurzen, mittleren bzw. langen Bildern.
stGainRange Analoger Sensorverstärkungsbereich; Maximum und Minimum einstellen.
Arrayindizes 0/1/2 entsprechen kurzen, mittleren bzw. langen Bildern.
stIspDGainRange Digitaler ISP-Verstärkungsbereich; Maximum und Minimum einstellen.
Arrayindizes 0/1/2 entsprechen kurzen, mittleren bzw. langen Bildern.
stPIrisRange Bereich der blendenäquivalenten Verstärkung; Maximum und Minimum einstellen

【Vorsichtsmaßnahmen】

stExpTimeRange, stGainRange und stIspDGainRange sind als Arrays mit 3 Elementen vordefiniert. Im HDR-Modus mit 2 Bildern gelten nur die Elemente 0 und 1 für die Belichtungskomponentenbereiche kurzer bzw. langer Bilder. Im HDR-Modus mit 3 Bildern gelten 0–2 für kurze, mittlere bzw. lange Bilder.

Wenn Maximum/Minimum jeder Belichtungskomponente den Standardwert 0 besitzt, wird der eingestellte Bereich nicht wirksam. Die tatsächlichen Maxima/Minima werden durch die minimalen und maximalen Knotenwerte des vom Algorithmus korrigierten Belichtungszerlegungspfads bestimmt.

Wenn Maximum/Minimum jeder Belichtungskomponente ungleich 0 ist, wird der eingestellte Bereich wirksam. Überschreitet er die Sensor- oder ISP-Grenzen nicht, gelten seine Maxima/Minima als tatsächliche Werte. Der Belichtungszerlegungspfad wird korrigiert und seine maximalen/minimalen Knotenwerte werden auf die eingestellten Komponentenwerte geändert. Werden Sensor- oder ISP-Grenzen

überschritten, richten sich die tatsächlichen Maxima/Minima nach den maximalen und minimalen Knotenwerten des Belichtungszerlegungspfads. Die Plattform 1106 unterstützt derzeit kein isp dgain; stIspDGainRange ist daher vorläufig unwirksam.

6.7.1.2 Uapi_AeAttrV2_t

【Beschreibung】 Eigenschaften der automatischen AE-Belichtung definieren.

【Definition】

 typedef struct Uapi_AeAttrV2_s {
     Uapi_AeSpeedV2_t           stAeSpeed;
     DelayFrmNum
     uint8_t                    BlackDelayFrame;
     uint8_t                    WhiteDelayFrame;
     Auto/Fixed fps
     Uapi_AeFpsAttrV2_t         stFrmRate;
     Uapi_AntiFlickerV2_t       stAntiFlicker;
     auto range
     Aec_LinAeRange_t           LinAeRange;//result LinAerange
     Aec_HdrAeRange_t           HdrAeRange;//result HdrAerange
 } Uapi_AeAttrV2_t;

【Felder】

Feldname Beschreibung
stAeSpeed Anpassungsgeschwindigkeit der automatischen Belichtung
BlackDelayFrame Verzögerung der automatischen Belichtung: Liegt die Bildhelligkeit länger als
BlackDelayFrame Bilder unter dem Sollwert, beginnt Ae mit der Anpassung.
WhiteDelayFrame Verzögerung der automatischen Belichtung: Liegt die Bildhelligkeit für
WhiteDelayFrame Bilder über dem Sollwert, beginnt Ae mit der Anpassung.
stFrmRate Struktur für den Bildratenmodus der automatischen Belichtung: feste Bildrate
oder automatische Bildratenreduzierung
stAntiFlicker Parameter zur Unterdrückung netzfrequenzbedingten Flimmerns
LinAeRange AE-Bereichsstruktur im linearen Modus (endgültig wirksamer linearer Belichtungsbereich)
HdrAeRange AE-Bereichsstruktur im HDR-Modus (endgültig wirksamer HDR-Belichtungsbereich)

【Vorsichtsmaßnahmen】

LinAeRange/HdrAeRange enthält den nach interner Prüfung und Korrektur durch den Algorithmus tatsächlich verwendeten Parameterbereich. Überschreitet der per API eingestellte AE-Bereich die Sensorgrenzen, gilt der sensorbegrenzte Bereich. Diese Grenzen finden Sie im AE-Modulparameter sensorinfo des Dokuments Rockchip_Tuning_Guide_ISP30_CN.pdf.

Zum Einstellen des Bereichs der automatischen Belichtungskomponenten verwendet die API die Parameter des oben beschriebenen Uapi_ExpSwAttr_AdvancedV2_t und setzt SetAeRangeEn auf 1. Andernfalls gilt standardmäßig der automatische Belichtungsparameterbereich der Abstimmdatei.

6.7.1.2.1 Uapi_AeSpeedV2_t

【Beschreibung】 Situationsabhängige AE-Anpassungsgeschwindigkeiten definieren.

【Definition】

 typedef struct CalibDb_AeSpeedV2_s {
     float                   DampOver;
     float                   DampUnder;
     float                   DampDark2Bright;
     float                   DampBright2Dark;
 } CalibDb_AeSpeedV2_t;
 typedef CalibDb_AeSpeedV2_t Uapi_AeSpeedV2_t;

【Felder】

Feldname Beschreibung
DampOver Bei stabiler Umgebungshelligkeit: Belichtungsanpassungsgeschwindigkeit,
wenn die Bildhelligkeit über dem Sollwert liegt; Wertebereich [0,1].
DampUnder Bei stabiler Umgebungshelligkeit: Belichtungsanpassungsgeschwindigkeit,
wenn die Bildhelligkeit unter dem Sollwert liegt; Wertebereich [0,1].
DampDark2Bright Bei plötzlicher Änderung der Umgebungshelligkeit: Geschwindigkeit
der Belichtungsanpassung von dunkel zu hell; Wertebereich [0,1].
DampBright2Dark Bei plötzlicher Änderung der Umgebungshelligkeit: Geschwindigkeit
der Belichtungsanpassung von hell zu dunkel; Wertebereich [0,1].

6.7.1.2.2 Uapi_AeFpsAttrV2_t

【Beschreibung】 AE-Bildrateneigenschaften definieren.

【Definition】

 typedef struct CalibDb_AeFrmRateAttrV2_s {
     bool             isFpsFix;
     uint8_t          FpsValue;
 } CalibDb_AeFrmRateAttrV2_t;
 typedef CalibDb_AeFrmRateAttrV2_t Uapi_AeFpsAttrV2_t;

【Felder】

Feldname Beschreibung
isFpsFix Aktivierung fester Bildrate bei automatischer Belichtung. Standardwert FALSE:
automatische Bildratenreduzierung. TRUE bedeutet einen Modus
mit fester Bildrate.
FpsValue Nur bei fester Bildrate wirksam. Beim Standardwert 0 wird die Standardbildrate
des Treibers fest verwendet; bei einem Wert ungleich 0 gilt die eingestellte Bildrate.

6.7.1.2.3 Uapi_AntiFlickerV2_t

【Beschreibung】 Eigenschaften der Flimmerunterdrückung definieren.

【Definition】

 typedef struct CalibDb_AntiFlickerAttrV2_s {
     bool                           enable;
     CalibDb_FlickerFreq_t          Frequency;
     CalibDb_AntiFlickerMode_t      Mode;
 } CalibDb_AntiFlickerAttrV2_t;
 typedef CalibDb_AntiFlickerAttrV2_t Uapi_AntiFlickerV2_t;

【Felder】

Feldname Beschreibung
enable Aktivierungszustand der netzfrequenzbezogenen Flimmerunterdrückung:
0: Funktion ausschalten; 1: Funktion einschalten
Frequency Frequenzeigenschaft der Flimmerunterdrückung mit insgesamt 3 Bildraten:
AECV2_FLICKER_FREQUENCY_OFF (wirksam bei enable
0), AECV2_FLICKER_FREQUENCY_50HZ, AECV2_FLICKER_FREQUENCY_60HZ.
Standardmäßig AECV2_FLICKER_FREQUENCY_50HZ (Netzfrequenz 50 Hz).
Mode Modus der Flimmerunterdrückung; zwei Modi:
AECV2_ANTIFLICKER_NORMAL_MODE (normaler Modus),
AECV2_ANTIFLICKER_AUTO_MODE (automatischer Modus)

【Vorsichtsmaßnahmen】

Zum Ausschalten der Flimmerunterdrückung muss enable auf 0 gesetzt werden; der Algorithmus konfiguriert dann automatisch Frequency=AECV2_FLICKER_FREQUENCY_OFF. Ist enable auf 1 gesetzt und als Frequenz AECV2_FLICKER_FREQUENCY_OFF konfiguriert, ist dieser Frequenzwert ungültig und wird durch den Standardwert AECV2_FLICKER_FREQUENCY_50HZ ersetzt.

Im normalen Modus AECV2_ANTIFLICKER_NORMAL_MODE kann die Belichtungszeit entsprechend der Helligkeit angepasst werden. Die minimale Belichtungszeit ist fest auf 1/120 sec (60Hz) oder 1/100 sec (50Hz) gesetzt und wird nicht durch die minimale Belichtungszeit begrenzt.

Beleuchtete Umgebung: Die Belichtungszeit kann an die Lichtquellenfrequenz angepasst werden, wodurch Bildflimmern vermieden wird.

Sehr helle Umgebung: Je höher die Helligkeit, desto kürzer muss die Belichtungszeit sein. Die minimale Belichtungszeit des normalen Flimmerunterdrückungsmodus kann nicht passend zur Lichtquellenfrequenz eingestellt werden, wodurch Überbelichtung entsteht. AECV2_ANTIFLICKER_AUTO_MODE ist der automatische Modus: Die Belichtungszeit wird helligkeitsabhängig angepasst und kann bis zur minimalen Sensorbelichtungszeit reichen. Der Unterschied zum normalen Modus zeigt sich vor allem bei hoher Helligkeit: Die minimale Sensorbelichtungszeit kann Überbelichtung wirksam unterdrücken, allerdings ist die Flimmerunterdrückung dann unwirksam.

6.7.1.3 Uapi_MeAttrV2_t

【Beschreibung】

Manuelle Belichtungsparametereinstellung, je nach Belichtungsmodus in die beiden Parametersätze LinearAE und HdrAE gegliedert.

【Definition】

 typedef struct Uapi_MeAttrV2_s {
     Uapi_LinMeAttrV2_t     stLinMe;
     Uapi_HdrMeAttrV2_t     stHdrMe;
 } Uapi_MeAttrV2_t;

【Zugehörige Datentypen】

Uapi_LinMeAttrV2_t

Uapi_HdrMeAttrV2_t

6.7.1.3.1 Uapi_LinMeAttrV2_t

【Beschreibung】

Manuelle Belichtungssteuerparameter für LinearAE.

【Definition】

 typedef struct Uapi_LinMeAttrV2_s {
     bool                 ManualTimeEn;
     bool                 ManualGainEn;
     bool                 ManualIspDgainEn;
     float                TimeValue;
     float                GainValue;
     float                IspDGainValue;
 } Uapi_LinMeAttrV2_t;

【Felder】

Feldname Beschreibung
ManualTimeEn Manuelle Belichtungszeit aktivieren; Standardwert 1
ManualGainEn Manuelle Sensorverstärkung aktivieren; Standardwert 1
ManualIspDgainEn Manuelle digitale ISP-Verstärkung aktivieren; Standardwert 1
TimeValue Manuelle Belichtungszeit in s; Parameterwert durch Sensor begrenzt
GainValue Manueller Sensorverstärkungswert; Parameterwert durch Sensor begrenzt
IspDGainValue Manueller digitaler ISP-Verstärkungswert; Parameterwert durch ISP begrenzt

【Vorsichtsmaßnahmen】

Dieser Modulparameter gilt nur bei AeOptype = MANUAL. Sind ManualTimeEn, ManualGainEn und ManualIspDgainEn alle 1, handelt es sich um manuellen Modus. Sobald einer dieser drei Parameter nicht aktiviert ist, liegt halbautomatischer Modus vor. Sind alle vier oben genannten Werte 0, entspricht dies Automatikmodus und das System meldet einen Fehlerhinweis (die Quelle schreibt hier trotz der drei genannten Parameter „vier“).

Im manuellen/halbmanuellen Modus werden Belichtungszeit und Verstärkung durch die maximalen/minimalen Werte des Automatikmodus begrenzt. Bei Überschreitung gelten stattdessen die jeweiligen Maxima/Minima des Automatikmodus.

RK356X unterstützt keine digitale ISP-Verstärkung; ManualIspDgainEn und IspDGainValue sind daher unwirksam.

6.7.1.3.2 Uapi_HdrMeAttrV2_t

【Beschreibung】

Manuelle Belichtungssteuerparameter für HdrAE.

【Definition】

 typedef struct Uapi_HdrMeAttrV2_s {
     bool                    ManualTimeEn;
     bool                    ManualGainEn;
     bool                    ManualIspDgainEn;
     Cam3x1FloatMatrix_t     TimeValue;
     Cam3x1FloatMatrix_t     GainValue;
     Cam3x1FloatMatrix_t     IspDGainValue;
 } Uapi_HdrMeAttrV2_t;

【Felder】

Die Variablen haben dieselbe Bedeutung wie in Uapi_LinMeAttrV2_t.

【Vorsichtsmaßnahmen】

TimeValue/GainValue/IspDGainValue sind Arrays mit 3 Elementen. Im HDR-Modus mit 2 Bildern gelten die Elemente [0-1] für kurze bzw. lange Bilder. Im HDR-Modus mit 3 Bildern gelten [0-2] für kurze, mittlere bzw. lange Bilder.

Im manuellen/halbmanuellen Modus werden Belichtungszeit und Verstärkung durch die maximalen/minimalen Werte des Automatikmodus begrenzt. Bei Überschreitung gelten stattdessen die jeweiligen Maxima/Minima des Automatikmodus.

RK356X unterstützt derzeit keine digitale ISP-Verstärkung; ManualIspDgainEn und IspDGainValue sind daher unwirksam.

6.7.2 Uapi_LinAeRouteAttr_t

【Beschreibung】 Eigenschaften des linearen AE-Belichtungszerlegungspfads definieren.

【Definition】

 typedef struct CalibDb_LinAeRoute_AttrV2_s {
     float* TimeDot;
     int TimeDot_len;
     float* GainDot;
     int GainDot_len;
     float* IspDGainDot;
     int IspDGainDot_len;
     int* PIrisDot;
     int PIrisDot_len;
 } CalibDb_LinAeRoute_AttrV2_t;
 typedef struct Uapi_LinAeRouteAttr_s {
   rk_aiq_uapi_sync_t            sync;
   CalibDb_LinAeRoute_AttrV2_t   Params;
 } Uapi_LinAeRouteAttr_t;

【Felder】

Feldname Beschreibung
TimeDot Sensorbelichtungszeitknoten in s
GainDot Sensorbelichtungsverstärkungsknoten,
IspgainDot Knoten der digitalen ISP-Verstärkung
PIrisGainDot Knoten der blendenäquivalenten Verstärkung

【Vorsichtsmaßnahmen】

Die Anzahl der Knoten der Belichtungszerlegungskurve ist nicht begrenzt; empfohlen werden jedoch mindestens 6.

Die Belichtung eines Knotens ist das Produkt seiner Komponenten wie Belichtungszeit, Sensorverstärkung, digitaler ISP-Verstärkung und blendenäquivalenter Verstärkung. Sie muss monoton steigen, d. h. ein späterer Knoten muss stärker belichtet sein als der vorherige. Der erste Knoten hat die geringste und der zweite Knoten die größte Belichtung (so formuliert es die Quelle).

Die Belichtungszeitkomponente eines Knotens wird in Sekunden angegeben; als Minimum ist 0 erlaubt. Der tatsächliche minimale Belichtungszeitcode wird intern anhand der Sensorgrenze korrigiert.

Die Blendenkomponente unterstützt nur P-Iris, nicht DC-Iris. Die äquivalente P-Iris-Verstärkung gilt nur bei aktivierter automatischer Airis-Blendenfunktion; andernfalls bleibt die Blende standardmäßig auf ihrer Anfangsgröße fixiert. Die Berechnung der äquivalenten P-Iris-Verstärkung ist im Modul AecIrisCtrl beschrieben.

Die eingestellten Knoten des Belichtungszerlegungspfads bilden nicht den endgültigen Pfad. Die tatsächlichen maximalen/minimalen Werte jeder endgültigen Belichtungskomponente ergeben sich aus der Kombination der Zerlegungsknoten und der manuell konfigurierten Komponentenmaxima/-minima. Zunächst erfolgt eine erste Korrektur der maximalen/minimalen Knotenwerte:

Überschreiten diese Werte die SENSOR- oder ISP-Grenzen nicht, bleiben sie unverändert; andernfalls werden sie auf die Sensor- oder ISP-Grenzen begrenzt. Sind die manuell konfigurierten Komponentenmaxima/-minima 0, gilt der nach der ersten Korrektur erhaltene Pfad. Sind sie ungleich 0 und liegen innerhalb der SENSOR- oder ISP-Grenzen, erfolgt eine zweite Korrektur; dann richten sich die Knotenmaxima/-minima nach dem manuell eingestellten Bereich. Überschreitet dieser Bereich die Sensor- oder ISP-Grenzen, gelten die Ergebnisse der ersten Korrektur. Wenn die Belichtung benachbarter Knoten steigt, sollte nur eine Komponente steigen und die übrigen unverändert bleiben. Die steigende Komponente bestimmt die Verteilungsstrategie dieses Pfadsegments. Steigt beispielsweise die Verstärkung bei konstanten übrigen Komponenten, hat dieses Segment Verstärkungspriorität.

RK356X unterstützt derzeit keine digitale ISP-Verstärkung; IspgainDot ist daher unwirksam.

6.7.3 Uapi_HdrAeRouteAttr_t

【Beschreibung】 Eigenschaften des AE-HDR-Belichtungszerlegungspfads definieren.

【Definition】

 typedef struct CalibDb_HdrAeRoute_AttrV2_s {
     float* Frm0TimeDot;
     int Frm0TimeDot_len;
     float* Frm0GainDot;
     int Frm0GainDot_len;
     float* Frm0IspDGainDot;
     int Frm0IspDGainDot_len;
     float* Frm1TimeDot;
     int Frm1TimeDot_len;
     float* Frm1GainDot;
     int Frm1GainDot_len;
     float* Frm1IspDGainDot;
     int Frm1IspDGainDot_len;
     float* Frm2TimeDot;
     int Frm2TimeDot_len;
     float* Frm2GainDot;
     int Frm2GainDot_len;
     float* Frm2IspDGainDot;
     int Frm2IspDGainDot_len;
     int* PIrisDot;
     int PIrisDot_len;
 } CalibDb_HdrAeRoute_AttV2r_t;
 typedef struct Uapi_HdrAeRouteAttr_s {
   rk_aiq_uapi_sync_t            sync;
   CalibDb_HdrAeRoute_AttrV2_t   Params;
 } Uapi_HdrAeRouteAttr_t;

【Felder】

Feldname Beschreibung
Frm0/1/2TimeDot Belichtungszeitknoten in Sekunden. Bei HDR mit 2 Bildern gilt nur Frm0/1TimeDot;
bei HDR mit 3 Bildern gilt Frm0/1/2TimeDot. FRM0~3 bezeichnet die
Bildreihenfolge von kurzer zu langer Belichtung.
Frm0/1/2GainDot Sensorverstärkungsknoten. Bei HDR mit 2 Bildern gilt nur Frm0/1GainDot;
bei HDR mit 3 Bildern gilt Frm0/1/2GainDot. Die Verstärkung ist der tatsächliche Wert
in Einheiten von 1x. FRM0~3 bezeichnet die Reihenfolge von kurzer zu langer Belichtung.
Frm0/1/2IspDGainDot Digitaler ISP-Verstärkungsknoten. Bei HDR mit 2 Bildern gilt nur Frm0/1IspDGainDot;
bei HDR mit 3 Bildern gilt Frm0/1/2IspDGainDot. Die Verstärkung ist der tatsächliche
Wert in Einheiten von 1x. FRM0~3 bezeichnet die Bildreihenfolge von
kurzer zu langer Belichtung.
PIrisDot Knoten der blendenäquivalenten Verstärkung; der Verstärkungswert ist der tatsächliche
Wert in Einheiten von 1x.

【Vorsichtsmaßnahmen】

Die Anzahl der Knoten der Belichtungszerlegungskurve ist unbegrenzt. Mindestens 6 Knoten werden empfohlen, um eine gleichmäßige Belichtungszerlegung zu erzielen.

Bei HDR mit 2 Bildern müssen nur Frm0/1TimeDot, Frm0/1GainDot und Frm0/1IspDGainDot für das kurze bzw. lange Bild eingestellt werden. Bei HDR mit 3 Bildern sind Frm0/1/2TimeDot, Frm0/1/2GainDot und Frm0/1/2IspDGainDot für kurze, mittlere und lange Bilder einzustellen. Verteilen Sie die Sensorbelichtungszeiten im HDR-Modus sinnvoll: Die Summe aller Bildbelichtungszeiten ** darf die durch die Bildrate erlaubte maximale Belichtungszeit nicht überschreiten**!

Die Belichtung eines Knotens ist das Produkt seiner Komponenten wie Belichtungszeit, Sensorverstärkung, digitaler ISP-Verstärkung und blendenäquivalenter Verstärkung. Sie muss monoton steigen, d. h. ein späterer Knoten muss stärker belichtet sein als der vorherige. Der erste Knoten hat die geringste und der zweite Knoten die größte Belichtung (so formuliert es die Quelle).

Die Belichtungszeitkomponente eines Knotens wird in Sekunden angegeben; als Minimum ist 0 erlaubt. Der tatsächliche minimale Belichtungszeitcode wird intern anhand der Sensorgrenze korrigiert.

Die Blendenkomponente unterstützt nur P-Iris, nicht DC-Iris. Die äquivalente P-Iris-Verstärkung gilt nur bei aktivierter automatischer Airis-Blendenfunktion; andernfalls bleibt die Blende standardmäßig auf ihrer Anfangsgröße fixiert. Die Berechnung der äquivalenten P-Iris-Verstärkung ist im Modul AecIrisCtrl beschrieben.

Die eingestellten Knoten des Belichtungszerlegungspfads bilden nicht den endgültigen Pfad. Die tatsächlichen maximalen/minimalen Werte jeder endgültigen Belichtungskomponente ergeben sich aus der Kombination der Zerlegungsknoten und der manuell konfigurierten Komponentenmaxima/-minima. Zunächst werden die Knotenmaxima/-minima korrigiert: Liegen sie innerhalb der SENSOR- oder ISP-Grenzen, bleiben sie unverändert; andernfalls gelten diese Grenzen. Sind die manuell konfigurierten Komponentenmaxima/-minima 0, gilt der Pfad nach dieser ersten Korrektur. Sind sie ungleich 0 und überschreiten die SENSOR- oder ISP-Grenzen nicht, erfolgt eine

zweite Korrektur, bei der die Knotenmaxima/-minima dem manuell eingestellten Bereich entsprechen. Überschreitet der eingestellte Komponentenbereich die Sensor- oder ISP-Grenzen, gelten die Ergebnisse der ersten Korrektur. Bei steigender Belichtung benachbarter Knoten sollte nur eine Komponente steigen und die übrigen konstant bleiben. Die steigende Komponente bestimmt die Verteilungsstrategie dieses Pfadsegments. Steigt beispielsweise die Verstärkung bei konstanten übrigen Komponenten, hat dieses Segment Verstärkungspriorität.

356X unterstützt derzeit keine digitale ISP-Verstärkung; Frm0/1/2ispDGainDot sind daher unwirksam.

6.7.4 Uapi_LinExpAttrV2_t

【Beschreibung】

Abstimmparameter der linearen AE-Belichtung definieren.

【Definition】

 typedef struct CalibDb_LinearAE_AttrV2_s {
     uint8_t RawStatsEn;
     float ToleranceIn;
     float ToleranceOut;
     float Evbias;
     CalibDb_AeStrategyModeV2_t      StrategyMode;
     CalibDb_LinExpInitExpV2_t       InitExp;
     CalibDb_LinAeRoute_AttrV2_t     Route;
     CalibDb_AecDynamicSetpointV2_t  DySetpoint;
     CalibDb_AecBacklightV2_t        BackLightCtrl;
     CalibDb_AecOverExpCtrlV2_t OverExpCtrl;
 } CalibDb_LinearAE_AttrV2_t;
 typedef struct Uapi_LinExpAttrV2_s {
   rk_aiq_uapi_sync_t            sync;
   CalibDb_LinearAE_AttrV2_t     Params;
 } Uapi_LinExpAttrV2_t;

【Felder】

Feldname Beschreibung
RawStatsEn Helligkeitsstatistik in der Raw-Domäne für lineare Belichtung aktivieren
EvBias Prozentuale Abweichung der Belichtungsmenge bei automatischer
Belichtungsanpassung in %; Referenzwertebereich [-200, +200]
ToleranceIn/Out Toleranz der Bildhelligkeit bei automatischer Belichtungsanpassung.
Einheit %, Wertebereich [0,100]
StrategyMode Strategie der automatischen Belichtung: Lichter- oder Schwachlichtpriorität
[vorübergehend unwirksam]
DySetpoint Dynamischer Helligkeitssollwert der automatischen Belichtungsanpassung,
der sich mit der Belichtungsmenge verändert
BackLightCtrl Parameter der Gegenlichtkompensation
OverExpCtrl Parameter der Spitzlichtunterdrückung

【Vorsichtsmaßnahmen】

EvBias dient in besonderen Szenarien zur Feinabstimmung der festen/dynamischen Helligkeitssollwerte (SetPoint/IRSetPoint). Der tatsächlich wirksame Helligkeitssollwert ist (SetPoint)*[1+abs(EvBias)/100]^[EvBias/abs(EvBias)]. Bei EvBias=100 beträgt er das Doppelte des Standardparameters; bei EvBias=-100 die Hälfte.

Die AE-Bildhelligkeitstoleranz heißt Tolerance. Nach AE-Konvergenz sollte die Helligkeit B im Bereich [tatsächlich wirksamer Helligkeitssollwert X(1-Tolerance/100), tatsächlich wirksamer Helligkeitssollwert X(1+Tolerance/100)] liegen. Große ToleranceIn/Out-Werte beeinflussen sowohl die AE-Reaktionsgeschwindigkeit als auch die Wirkung von EvBias. Ist die Schrittweite der EvBias-Anpassung kleiner als ToleranceIn/Out, kann die Helligkeitsanpassung unwirksam bleiben.

StrategyMode ist derzeit unwirksam.

【Zugehörige Datentypen】

CalibDb_AecDynamicSetpointV2_t

CalibDb_AecBacklightV2_t

CalibDb_AecOverExpCtrlV2_t

6.7.4.1 CalibDb_AecDynamicSetpointV2_t

【Beschreibung】 Dynamische AE-Sollwerte definieren.

【Definition】

 typedef struct CalibDb_AecDynamicSetpointV2_s {
     float* ExpLevel;
     int ExpLevel_len;
     float* DySetpoint;
     int DySetpoint_len;
 } CalibDb_AecDynamicSetpointV2_t;

【Felder】

Feldname Beschreibung
ExpLevel Eigenschaft dynamischer Belichtungsknoten; der Knotenwert entspricht der aktuellen
Belichtung. Die Anzahl ist unbegrenzt. Mindestens 6 Knoten werden empfohlen;
die Quelle beschreibt dies widersprüchlich als Verhindern eines glatten Belichtungsübergangs.
DySetpoint Eigenschaft dynamischer Helligkeitssollwertknoten. Der Wert verändert sich mit der
Belichtungsmenge; je größer der Belichtungsknotenwert, desto kleiner der Helligkeitssollwert.
Die Knoten entsprechen den Belichtungsknoten eins zu eins. Ihre Anzahl ist unbegrenzt,
muss aber der Anzahl der ExpLevel-Knoten entsprechen. Mindestens 6 Knoten werden
empfohlen; die Quelle schreibt widersprüchlich, dies verhindere einen glatten Übergang.

6.7.5 Uapi_HdrExpAttrV2_t

【Beschreibung】 Abstimmparameter der AE-HDR-Belichtung definieren.

【Definition】

 typedef struct CalibDb_HdrAE_AttrV2_s {
     float ToleranceIn;
     float ToleranceOut;
     float Evbias;
     CalibDb_AeStrategyModeV2_t StrategyMode;
     float LumaDistTh; //used for area-growing
     CalibDb_HdrExpInitExpV2_t InitExp;
     CalibDb_HdrAeRoute_AttrV2_t Route;
     CalibDb_ExpRatioCtrlV2_t ExpRatioCtrl;
     CalibDb_LongFrmCtrlV2_t LongFrmMode;
     CalibDb_LfrmCtrlV2_t LframeCtrl;
     CalibDb_MfrmCtrlV2_t MframeCtrl;
     CalibDb_SfrmCtrlV2_t SframeCtrl;
 } CalibDb_HdrAE_AttrV2_t;
 typedef struct Uapi_HdrExpAttrV2_s {
   rk_aiq_uapi_sync_t            sync;
   CalibDb_HdrAE_AttrV2_t        Params;
 } Uapi_HdrExpAttrV2_t;

【Felder】

Feldname Beschreibung
ToleranceIn/Out Bildhelligkeitstoleranz bei automatischer Belichtungsanpassung. Einheit %, Wertebereich [0,100]
LongfrmMode Parameter des Langbildmodus
StrategyMode Strategie der automatischen Belichtung: Lichter- oder Schwachlichtpriorität
(AECV2_STRATEGY_MODE_LOWLIGHT_PRIOR/AECV2_STRATEGY_MODE_HIGHLIGHT_PRIOR)
Evbias Prozentuale Abweichung der Belichtungsmenge bei automatischer Belichtungsanpassung in %; Referenzwertebereich
[-200, +200]
ExpRatioCtrl HdrAE-Belichtungsverhältnissteuerung; nur bei Mehrbildzusammenführung im HDR-Modus wirksam
LframeCtrl Steuerparameter für lange Bilder
MframeCtrl Steuerparameter für mittlere Bilder; nur bei HDR mit 3 Bildern wirksam
SframeCtrl Steuerparameter für kurze Bilder

【Zugehörige Datentypen】

CalibDb_LFrameCtrlV2_t

CalibDb_MFrameCtrlV2_t

CalibDb_SFrameCtrlV2_t

6.7.6 Uapi_IrisAttrV2_t

【Beschreibung】

Blendensteuerparameter.

【Definition】

 typedef struct CalibDb_AecIrisCtrlV2_s {
     uint8_t Enable;
     CalibDb_IrisTypeV2_t IrisType;
     RKAiqOPMode_t IrisOpType;
     CalibDb_MIris_AttrV2_t ManualAttr;
     CalibDb_PIris_AttrV2_t PIrisAttr;
     CalibDb_DCIris_AttrV2_t DCIrisAttr;
 } CalibDb_AecIrisCtrlV2_t;
 typedef struct Uapi_IrisAttrV2_s {
   rk_aiq_uapi_sync_t            sync;
   CalibDb_AecIrisCtrlV2_t       Params;
 } Uapi_IrisAttrV2_t;

【Felder】

Feldname Beschreibung
Enable Automatische Blendensteuerung aktivieren
IrisType Blendentyp: P (P-Iris) oder DC (DC-Iris)
IrisOpType Blendensteuerungsmodus: automatisch (RK_AIQ_OP_MODE_AUTO) oder
manuell (RK_AIQ_OP_MODE_MANUAL)
ManualAttr Manuelle Blendenparameter
PIrisAttr Eigenschaftsparameter der P-Blende
DCIrisAttr Eigenschaftsparameter der DC-Blende

6.7.6.1 CalibDb_MIris_AttrV2_t

【Beschreibung】

Manuelle Blendenparameter.

【Definition】

 typedef struct CalibDb_MIris_AttrV2_s {
     int PIrisGainValue;
     int DCIrisHoldValue;
 } CalibDb_MIris_AttrV2_t;

【Felder】

Feldname Beschreibung
PIrisGainValue Manueller blendenäquivalenter P-Verstärkungswert, begrenzt durch die P-Blende;
Wertebereich [1,1024]
DCIrisHoldValue HoldValue der DC-Blende, abhängig vom DC-Blendengerät;
Wertebereich [0,100]

【Vorsichtsmaßnahmen】

IrisOpType = RK_AIQ_OP_MODE_MANUAL aktiviert die manuelle Blende. Bei P-Blende ist nur PirisGainValue wirksam; bei DC-Blende nur DCIrisHoldValue.

DCIrisHoldValue setzt im manuellen Modus direkt das PWM-Tastverhältnis des Motors, Wertebereich [0,100]. Liegt der eingestellte HoldValue im Bereich von ClosePwmDuty bis OpenPwmDuty in AecIrisCtrl, bleibt die DC-Blende auf ihrer aktuellen Größe. Ein Wert über OpenPwmDuty öffnet die Blende; je größer der Wert, desto schneller die Öffnung. Ein Wert unter ClosePwmDuty schließt die Blende; je kleiner der Wert, desto schneller das Schließen.

6.7.6.2 CalibDb_PIris_AttrV2_t

【Beschreibung】

Eigenschaftsparameter der P-Blende.

【Definition】

 #define AEC_PIRIS_STAP_TABLE_MAX (1024)
 typedef struct CalibDb_PIris_AttrV2_s {
     uint16_t              TotalStep;
     uint16_t              EffcStep;
     bool                  ZeroIsMax;
     uint16_t              StepTable[AEC_PIRIS_STAP_TABLE_MAX];
 } CalibDb_PIris_AttrV2_t;

【Felder】

Feldname Beschreibung
TotalStep Gesamte Schrittzahl des P-Iris-Schrittmotors; hängt vom P-Iris-Objektiv ab.
EffcStep Nutzbare Schrittzahl des P-Iris-Schrittmotors; hängt vom
P-Iris-Objektiv ab.
ZeroIsMax Ob step0 des P-Iris-Schrittmotors der maximalen Blendenöffnung entspricht;
der Wert hängt vom P-Iris-Objektiv ab. Bei 0 entspricht
die Schrittmotorposition step0 der kleinsten Blende; bei 1
entspricht step0 der größten
Blende.
StepTable Zuordnungstabelle der P-Iris-Schrittmotorposition zur blendenäquivalenten
Verstärkung; die Werte hängen vom P-Iris-Objektiv ab.

6.7.6.3 CalibDb_DCIris_AttrV2_t

【Beschreibung】

Eigenschaften der DC-Blende.

【Definition】

 typedef struct CalibDb_DCIris_AttrV2_s {
     float       Kp;
     float       Ki;
     float       Kd;
     int         MinPwmDuty;
     int         MaxPwmDuty;
     int         OpenPwmDuty;
     int         ClosePwmDuty;
 } CalibDb_DCIris_AttrV2_t;

【Felder】

Feldname Beschreibung
Kp Proportionalfaktor, der bei starken Änderungen die Öffnungs-/Schließgeschwindigkeit
der Blende begrenzt. Je größer der Wert, desto langsamer öffnet und schließt sie.
Ein zu großer Wert bewirkt ein vorzeitiges Abbremsen und damit zu lange
Regelzeiten; ein zu kleiner Wert bewirkt verspätetes Abbremsen
und stärkeres Überschwingen. Eine sinnvolle Einstellung hängt von
DC-Iris-Objektiv und Schaltung ab.
Empfohlener Wert 0.5; Wertebereich [0,1].
Ki Integrationskoeffizient zur Einstellung der Öffnungs-/Schließgeschwindigkeit.
Laut Quelle steigt diese mit größerer Blende. Ein zu großer Wert
verursacht leicht Überschwingen und Schwingungen; bei zu kleinem Wert
können durch langsame Blendenregelung und starke Änderungen der Umgebungshelligkeit
ebenfalls Schwingungen entstehen. Empfohlener Wert 0.2; Wertebereich [0,1].
Kd Differentialkoeffizient zur Einstellung der Öffnungs-/Schließgeschwindigkeit.
Je größer der Wert, desto schneller öffnet und schließt die Blende.
Empfohlener Wert 0.3; Wertebereich [0,1].
MinPwmDuty Minimales PWM-Tastverhältnis in %, abhängig von DC-Iris-Objektiv und
Schaltung. Je kleiner der Wert, desto schneller kann die Blende schließen,
allerdings steigt die Schwingungsneigung. Wertebereich [0,100], Standardwert
0.
MaxPwmDuty Maximales PWM-Tastverhältnis in %, abhängig von DC-Iris-Objektiv und
Schaltung. Ein höherer Wert öffnet die Blende schneller. Ein zu kleiner
Wert kann die Blendensteuerung beenden, bevor die maximale Öffnung
erreicht wurde. Wertebereich [0,100], Standardwert 100.
OpenPwmDuty PWM-Tastverhältnisschwelle zum Öffnen: Die Blende öffnet bei einem Tastverhältnis
streng größer als OpenPwmDuty. Der Wert hängt vom
DC-Iris-Objektiv ab und wird in % angegeben.
ClosePwmDuty PWM-Tastverhältnisschwelle zum Schließen: Die Blende schließt bei einem Tastverhältnis
streng kleiner als ClosePwmDuty. Der Wert hängt vom DC-
Iris-Objektiv ab und wird in % angegeben.

【Vorsichtsmaßnahmen】

Wenn die automatische Blendenfunktion deaktiviert ist, wird eine DC-Iris-Blende standardmäßig vollständig geöffnet. Bei P-Iris wird standardmäßig die Schrittmotorposition für maximale Öffnung angefahren. Zur Änderung dieser Positionen können InitPIrisGainValue und InitDCIrisDutyValue im Modul AecInitValue angepasst werden.

Der grundlegende Steuerablauf des automatischen Blendenalgorithmus Airis lautet:

Bei DC-Iris-Objektiven steuert Airis die Blendenöffnung anhand der Abweichung zwischen aktueller Helligkeit und Helligkeitssollwert. Wenn die Belichtung ihr Minimum erreicht und die aktuelle Helligkeit den Sollwerttoleranzbereich überschreitet, wird die AE-Regelung verlassen. Belichtungszeit und Verstärkung werden fixiert und AIRIS übernimmt die Regelung. Ist die aktuelle Bildhelligkeit stabil und das PWM-Tastverhältnis

der DC-Iris größer als OpenPwmDuty, wird die maximale Blendenöffnung als erreicht betrachtet. Airis beendet die Blendenregelung und übergibt die Steuerung an AE.

Bei P-Iris-Objektiven erfolgt die Blendensteuerung über AecRoute. Die Blendenöffnung wird in eine äquivalente Verstärkung umgerechnet und in die Berechnung der Belichtungszerlegung einbezogen.

Die Zuordnungstabelle StepTable zwischen P-Iris-Schrittmotorposition und blendenäquivalenter Verstärkung wird gewöhnlich aus der vom Objektivhersteller gelieferten Zuordnung zwischen Motorposition und Blendenöffnung erstellt. Da das AE-Modul AecRoute die Öffnung in äquivalente Verstärkung umrechnet, muss die P-Iris-Steuerung gut linear sein. Die äquivalente Verstärkung liegt im Bereich [1,1024]: F1.0 entspricht 1024, F1.4 entspricht 512 und entsprechend fortgesetzt F32.0 dem Wert 1. Rechnen Sie zur Tabellenerstellung die Öffnung jeder Motorposition in äquivalente Verstärkung um und tragen Sie sie in StepTable in aufsteigender Reihenfolge der Motorpositionen ein (step0, step1… stepN).

TotalStep bezeichnet die gesamte Schrittzahl des P-Iris-Schrittmotors und hängt vom Objektiv ab. EffcStep bezeichnet die nutzbare Schrittzahl und ist gewöhnlich kleiner als TotalStep. Nahe der vollständig geschlossenen Position ist der Fehler der entsprechenden äquivalenten Verstärkung groß und bei der Blendenregelung können leicht Schwingungen entstehen. Daher werden solche Positionen gewöhnlich nicht verwendet.

Tabelle 4-1 ordnet P-Iris-Schrittmotorposition, Blendenfläche und äquivalente Verstärkung einander zu und dient als Beispiel für StepTable. Die Zuordnung zwischen Motorschritt und Fläche in Spalten 1–2 und 4–5 stammt von einem Objektivhersteller. Das Objektiv hat insgesamt 81 Motorschritte; step0 entspricht der größten Öffnung mit einer nominalen maximalen Blende von 1.4. Diese entspricht einer äquivalenten Verstärkung von 512, somit beträgt sie bei Schritt 0 ebenfalls 512. Beispiel Schritt 3: Die Fläche beträgt 195.869; daraus ergibt sich die äquivalente Verstärkung = 512* (195.869/201.062)=499(gerundet). Entsprechend lassen sich die Werte anderer Motorpositionen berechnen. Aus Tabelle 1-1 (Verweis der Quelle) ist ersichtlich, dass nahe der geschlossenen Position die Fläche sehr klein ist und gegenüber der größten Fläche um Tausende Faktoren abweichen kann. Der Fehler der äquivalenten Verstärkung ist dann groß. Solche Positionen sollten zur Vermeidung fehlerbedingter Belichtungsschwingungen nicht verwendet werden. Die äquivalente Verstärkung jeder Motorposition wird in aufsteigender Reihenfolge der Positionen (step0, step1… stepN) in StepTable eingetragen.

OpenPwmDuty und ClosePwmDuty der DC-Iris müssen gemessen werden und hängen vom Objektiv ab. Bei einigen Objektiven öffnet die Blende, wenn das PWM-Tastverhältnis über OpenPwmDuty liegt; liegt es darunter, schließt sie (die Quelle nennt hier ebenfalls OpenPwmDuty). Im Bereich größer oder gleich ClosePwmDuty und kleiner oder gleich OpenPwmDuty bleibt sie stabil; die Werte dieses Bereichs heißen HoldValue. Andere Objektive besitzen nur eine Öffnungs-/Schließschwelle: Oberhalb öffnet die Blende, unterhalb schließt sie und genau auf der Schwelle bleibt sie stabil. Dieser Wert ist HoldValue; in diesem Fall kann ClosePwmDuty = OpenPwmDuty = HoldValue gesetzt werden.

Die manuelle Blendenparametereinstellung entspricht dem manuellen Belichtungsmodus. Setzen Sie für manuelle Blendensteuerung AecOpType auf manuellen Modus und aktivieren Sie ManualIrisEn in AecManualCtrl. Wenn IrisType P-iris ist, gilt nur PirisGainValue; wenn IrisType P-iris ist, gilt nur DCIrisValue. Die Quelle nennt in beiden Fällen P-iris; dieser Widerspruch bleibt erhalten.

Tabelle 4-1 Zuordnung von P-Iris-Schrittmotorposition, Blendenfläche und äquivalenter Verstärkung

Schritt Blendenfläche
(mm2)
Äquivalente
Verstärkung
Schritt Blendenfläche
(mm2)
Äquivalente
Verstärkung
0 201.062 512 41 56.653 144
1 200.759 511 42 53.438 136
2 198.583 506 43 50.282 128
3 195.869 499 44 47.188 120
4 192.879 491 45 44.159 112
5 189.677 483 46 41.197 105
6 186.293 474 47 38.307 98
7 182.744 465 48 35.49 90
8 179.035 456 49 32.751 83
9 175.271 446 50 30.093 77
10 171.484 437 51 27.519 70
11 167.681 427 52 25.034 64
12 163.865 417 53 22.642 58
13 160.036 408 54 20.347 52
14 156.198 398 55 18.154 46
15 152.351 388 56 16.068 41
16 148.499 378 57 14.096 36
17 144.642 368 58 12.245 31
18 140.783 359 59 10.522 27
19 136.925 349 60 8.935 23
20 133.069 339 61 7.484 19
21 129.217 329 62 6.169 16
22 125.371 319 63 4.987 13
23 121.535 309 64 3.936 10
24 117.709 300 65 3.014 8
25 113.897 290 66 2.22 6
26 110.1 280 67 1.55 4
27 106.321 271 68 1.003 3
28 102.562 261 69 0.577 1
Schritt Blendenfläche
(mm2)
Äquivalente
Verstärkung
Schritt Blendenfläche
(mm2)
Äquivalente
Verstärkung
29 98.826 252 70 0.268 1
30 95.115 242 71 0.075 0
31 91.431 233 72 geschlossen 0
32 87.777 224 73 geschlossen 0
33 84.156 214 74 geschlossen 0
34 80.569 205 75 geschlossen 0
35 77.02 196 76 geschlossen 0
36 73.51 187 77 geschlossen 0
37 70.043 178 78 geschlossen 0
38 66.621 170 79 geschlossen 0
39 63.247 161 80 geschlossen 0
40 59.923 153      

6.7.7 Uapi_ExpWin_t

【Beschreibung】 Eigenschaftsparameter des AE-Statistikfensters definieren.

【Definition】

 typedef struct window {
     uint16_t h_offs;
     uint16_t v_offs;
     uint16_t h_size;
     uint16_t v_size;
 } window_t;
 typedef struct Uapi_ExpWin_s {
   rk_aiq_uapi_sync_t            sync;
   window                        Params;
 } Uapi_ExpWin_t;

【Felder】

Feldname Beschreibung
h_offs Horizontaler Versatz der linken oberen Fensterecke gegenüber dem Koordinatenursprung;
dieser liegt in der linken oberen Ecke des lichtempfindlichen
Sensorbereichs.
v_offs Vertikaler Versatz der linken oberen Fensterecke gegenüber dem Koordinatenursprung;
dieser liegt in der linken oberen Ecke des lichtempfindlichen
Sensorbereichs.
h_size Horizontale Fenstergröße
v_size Vertikale Fenstergröße

6.7.8 Uapi_ExpQueryInfo_t

【Beschreibung】 AE-Belichtungsparameterabfragen definieren.

【Definition】

 typedef struct Uapi_ExpQueryInfo_s {
     bool              IsConverged;
     bool              IsExpMax;
     float             LumaDeviation;
     float             HdrLumaDeviation[3];
     float             MeanLuma;
     float             HdrMeanLuma[3];
     float             GlobalEnvLux;
     float             BlockEnvLux[ISP2_RAWAE_WINNUM_MAX];
     RKAiqAecExpInfo_t CurExpInfo;
     unsigned short    Piris;
     float             LinePeriodsPerField;
     float             PixelPeriodsPerLine;
     float             PixelClockFreqMHZ;
 } Uapi_ExpQueryInfo_t;

【Felder】

Feldname Beschreibung
IsConverged Ob die automatische Belichtung konvergiert ist
IsExpMax Ob die ISP-Belichtung ihr Maximum erreicht hat
LumaDeviation Im linearen Modus die Abweichung zwischen AEC-Sollwert und tatsächlicher
Bildhelligkeit. Ein positiver Wert bedeutet tatsächliche Helligkeit
über dem Sollwert, ein negativer Wert Helligkeit unter dem Sollwert.
Bei 0 liegt die tatsächliche Helligkeit
innerhalb des Toleranzbereichs
des Sollwerts.
HdrLumaDeviation Im HDR-Modus die Abweichung zwischen Soll- und tatsächlicher Helligkeit
jedes Bildes. Ein positiver Wert bedeutet tatsächliche Helligkeit über dem Sollwert,
ein negativer Wert Helligkeit unter dem Sollwert. Bei 0 liegt die tatsächliche
Helligkeit innerhalb des Sollwerttoleranzbereichs.
Bei 2 Bildern gelten nur 0 und 1 für kurze bzw. lange Bilder;
bei 3 Bildern gelten 0–2 für kurze, mittlere
und lange Bilder.
MeanLuma Im linearen Modus die mittlere Helligkeit des aktuellen Bildes
HdrMeanLuma Im HDR-Modus die mittlere Helligkeit jedes aktuellen Teilbildes.
Bei 2 Bildern gelten nur Arrayelemente 0 und 1 für kurze bzw.
lange Bilder. Bei 3 Bildern gelten alle Arrayelemente
für kurze, mittlere bzw. lange Bilder.
CurExpInfo Aktuelle Belichtungsparameter einschließlich Sensorbelichtungszeit und
Sensorverstärkungswert. Je nach Belichtungsmodus in zwei Sätze
gegliedert: LinearExp und HdrExp[3].
Piris Blende
LinePeriodsPerField Sensor-VTS
PixelPeriodsPerLine Sensor-HTS
PixelClockFreqMHZ Pixeltaktfrequenz des Sensors in Megahertz

6.8 Häufige Probleme und Debugging-Methoden

Bei Bildhelligkeitsflimmern, Überschwingen oder unerwarteter Helligkeit empfiehlt es sich, das AE-LOG der problematischen Szene zur Analyse zu erfassen. Dies hilft, die Ursache schneller zu finden und effizienter zu arbeiten.

6.8.1 Synchroner Test von Belichtung und Statistik

Vor der Kalibrierung des ISP-Moduls müssen Treiber- oder Abstimmverantwortliche den Parameter SensorInfo in der IQ-XML-Abstimmdatei ausfüllen. Dieses Modul betrifft Belichtungsparametereinstellungen; falsche Werte können Belichtungsfehler, Flimmern usw. verursachen. Nach der Konfiguration von sensorinfo sollte SyncTest für einen Selbsttest aktiviert werden. Die Bedeutung der SensorInfo-Parameter beschreibt Rockchip_Tuning_Guide_ISP30.

SyncTest stellt zyklisch N Gruppen unterschiedlicher Belichtungswerte ein, um zu prüfen, ob Sensorbelichtungszeit, Sensorverstärkung und die Bildanzahl bis zum Wirksamwerden einer DCG-Umschaltung korrekt sind. Außerdem kann damit die Belichtungslinearität getestet werden, um Umrechnungsformeln und zugehörige Parameter zwischen Registerwerten und Belichtungszeit/-verstärkung zu bestätigen.

Die SyncTest-Funktionsparameter werden nachfolgend beschrieben:

【Beschreibung】

Der synchrone Test von Belichtung und Statistik stellt zyklisch N Gruppen unterschiedlicher Belichtungswerte mit einem vorgegebenen Bildintervall ein. Damit wird geprüft und abgestimmt, ob die Bildanzahl bis zum Wirksamwerden von Belichtungskomponenten (Zeit und Verstärkung) sowie die Sensorbelichtungsparametereinstellungen korrekt sind.

【Felder】

Feldname Beschreibung
Enable Gleichzeitigen Test von Belichtung und Statistik aktivieren
IntervalFrm Bildanzahl zwischen Belichtungsumschaltungen
AlterExp Parameter der Belichtungsumschaltung

AlterExp

Je nach Modus werden zwei Parametersätze unterschieden: LinearAE und HdrAE.

Feldname Beschreibung
TimeValue Belichtungszeitwert
GainValue Belichtungsverstärkungswert
IspDgainValue Digitaler ISP-Verstärkungswert
DcgMode DCG-Moduswert
PIrisGainValue Äquivalente P-Iris-Verstärkung

Bei korrekten Parametern ergibt sich beispielsweise folgendes LOG; es zeigt nur die Schlüsselinformationen. Die rote Umrahmung markiert die Belichtungsumschaltung. Die sichtbare Helligkeit ändert sich nicht und passt zum Belichtungswert; es gibt keine verzögerte oder vorgezogene Linearitätsabweichung. Damit lässt sich grundsätzlich von korrekt gesetzten sensorinfo-Parametern ausgehen.

Technische Originalabbildung — PDF S. 115

6.8.2 Flimmern bei Belichtungsänderungen

Flimmern bei Belichtungsänderungen kann mehrere Ursachen haben:

(1) Falsche Bildanzahl bis zum Wirksamwerden von gain und time im Modul CISExpUpdate. Typische LOG-Beispiele folgen; pro Bild werden nur die Schlüsselzeilen gezeigt:

Technische Originalabbildung — PDF S. 115

Die rote Umrahmung markiert die Helligkeitsfehler. Bei steigender oder fallender Belichtung entwickelt sich die entsprechende Helligkeit entgegengesetzt. Der abrupte Helligkeitswechsel tritt im zweiten Bild nach einer Änderung sowohl der Belichtungszeit als auch der Verstärkung auf. Die Helligkeitsentwicklung folgt der Belichtungszeit. Daraus lässt sich schließen, dass die Bildanzahl bis zum Wirksamwerden von gain und time falsch ist: Zeit und Verstärkung werden nicht gleichzeitig wirksam, sodass Helligkeit und Belichtung nicht zusammenpassen. Ändern Sie zur Behebung die entsprechenden Bildanzahlen. Das Problem lässt sich mit AE

syncTest nachstellen: Zwei Belichtungssätze mit unterschiedlicher Zeit und Verstärkung abwechselnd schalten und anhand des LOG prüfen, ob das Problem auftritt.

(2) Treiberfehler verursachen nicht konvergierende Helligkeitsschwingungen, häufig bei hellen Szenen. Typische LOG-Beispiele folgen; gezeigt werden nur die Schlüsselzeilen jedes Bildes.

Technische Originalabbildung — PDF S. 116

Wie die Abbildung zeigt, schwankt die Belichtung zwischen 59ms und 44ms. Das Verhältnis der zugehörigen mittleren Helligkeiten weicht stark vom Verhältnis der Belichtungszeiten ab; es besteht ein Linearitätsproblem. Prüfen Sie zuerst den Sensortreiber und geben Sie den Belichtungsregisterwert aus, um seine Übereinstimmung mit der protokollierten Belichtung zu prüfen. Das Problem lässt sich mit AE syncTest nachstellen: Mehrere Belichtungssätze einschließlich des problematischen abwechselnd schalten und im LOG prüfen, ob die Helligkeitsänderung jedes Bildes linear zur Belichtung verläuft.

Technische Originalabbildung — PDF S. 116

(3) Flimmern durch nachgelagerte AE-Module. Typische LOG-Beispiele folgen; gezeigt werden nur die Schlüsselzeilen jedes Bildes:

Technische Originalabbildung — PDF S. 116

Im LOG ist zu erkennen, dass während des Rückgangs von SMeanLuma und MMeanLuma links die Ausgangshelligkeit des TmoMeanluma-Moduls schwankt. In diesem Fall muss das TMO-Modul abgestimmt werden.

7. AWB

7.1 Überblick

Das AWB-Modul verändert die Farbkanalverstärkung des Aufnahmegeräts, um Farbabweichungen durch die Farbtemperatur der Umgebung sowie Abweichungen der geräteeigenen Farbkanalverstärkung gemeinsam auszugleichen. Dadurch soll das aufgenommene Bild die tatsächlichen Farben des Objekts korrekt wiedergeben.

7.2 Wichtige Begriffe

Farbtemperatur: Sie wird anhand eines idealen schwarzen Körpers definiert. Stimmt die Strahlung einer Lichtquelle im sichtbaren Bereich genau mit der eines idealen schwarzen Körpers überein, heißt dessen Temperatur Farbtemperatur der Lichtquelle.

Weißabgleich: Bei Lichtquellen unterschiedlicher Farbtemperatur kann die Sensorantwort auf Weiß bläulich oder rötlich ausfallen. Der Weißabgleichsalgorithmus passt die Intensitäten der drei Farbkanäle R, G und B so an, dass Weiß naturgetreu erscheint.

7.3 Funktionsbeschreibung

Das AWB-Modul besteht aus zwei Teilen: WB-Informationsstatistik und AWB-Steuerstrategiealgorithmus.

7.4 Referenz der funktionsbezogenen APIs

7.4.1 rk_aiq_uapi2_setWBMode

【Beschreibung】 Betriebsart des Weißabgleichs einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Weißabgleichsbetriebsart Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Hinweis】

Im manuellen Modus wird der Weißabgleichsverstärkungswert durch den aktuellen manuellen Weißabgleichsparameter bestimmt. Um gleichzeitig in den manuellen Modus zu wechseln und einen bestimmten Verstärkungswert einzustellen, kann rk_aiq_uapi2_setMWBGain verwendet werden.

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.2 rk_aiq_uapi2_getWBMode

【Beschreibung】 Betriebsart des Weißabgleichs abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Weißabgleichsbetriebsart Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.3 rk_aiq_uapi2_lockAWB

【Beschreibung】 Aktuelle Weißabgleichsparameter sperren.

【Syntax】

 XCamReturn rk_aiq_uapi2_lockAWB(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.4 rk_aiq_uapi2_unlockAWB

【Beschreibung】 Gesperrte Weißabgleichsparameter wieder freigeben.

【Syntax】

 XCamReturn rk_aiq_uapi2_unlockAWB(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.5 rk_aiq_uapi2_setMWBScene

【Beschreibung】 Weißabgleichsszene einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMWBScene(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_wb_scene_t scene);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
scene Weißabgleichsszene Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.6 rk_aiq_uapi2_getMWBScene

【Beschreibung】 Weißabgleichsszene abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMWBScene(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_wb_scene_t *scene);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
scene Weißabgleichsszene Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.7 rk_aiq_uapi2_setMWBGain

【Beschreibung】 Manuellen Weißabgleichsverstärkungsfaktor einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t
 *gain);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
gain Weißabgleichsverstärkungsfaktor Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.8 rk_aiq_uapi2_getWBGain

【Beschreibung】 Weißabgleichsverstärkungsfaktor abrufen. Diese Funktion gilt sowohl für manuellen als auch automatischen Weißabgleich.

【Syntax】

 XCamReturn rk_aiq_uapi2_getWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t
 *gain);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
gain Weißabgleichsverstärkungsfaktor Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.9 rk_aiq_uapi2_setMWBCT

【Beschreibung】 Farbtemperaturparameter des manuellen Weißabgleichs einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int ct);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
ct Farbtemperaturparameter des Weißabgleichs Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.10 rk_aiq_uapi2_getWBCT

【Beschreibung】 Farbtemperatur des Weißabgleichs abrufen. Diese Funktion gilt für automatischen und manuellen Betrieb.

【Syntax】

 XCamReturn rk_aiq_uapi2_getWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int *ct);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
ct Farbtemperatur des Weißabgleichs Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.11 rk_aiq_uapi2_setAwbGainOffsetAttrib

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAwbGainOffsetAttrib(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_uapiV2_wb_awb_wbGainOffset_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr wbgain-Offsetparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.12 rk_aiq_uapi2_getAwbGainOffsetAttrib

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getAwbGainOffsetAttrib(const rk_aiq_sys_ctx_t* ctx,
 CalibDbV2_Awb_gain_offset_cfg_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr wbgain-Offsetparameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.13 rk_aiq_uapi2_setAwbGainAdjustAttrib

【Beschreibung】 Farbtonanpassungsparameter im automatischen Weißabgleichsmodus einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAwbGainAdjustAttrib(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_uapiV2_wb_awb_wbGainAdjust_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter des Weißabgleichs Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.14 rk_aiq_uapi2_getAwbGainAdjustAttrib

【Beschreibung】 Farbtonanpassungsparameter im automatischen Weißabgleichsmodus abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getAwbGainAdjustAttrib(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_uapiV2_wb_awb_wbGainAdjust_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter des Weißabgleichs Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.15 rk_aiq_uapi2_setAwbV30AllAttrib

【Beschreibung】 Alle von der Weißabgleichs-API unterstützten Parameter einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setAwbV30AllAttrib(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_uapiV2_wbV30_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Alle von der Weißabgleichs-API unterstützten Parameter. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler; Einzelheiten siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.4.16 rk_aiq_uapi2_getAwbV30AllAttrib

【Beschreibung】 Alle von der Weißabgleichs-API unterstützten Parameter abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getAwbV30AllAttrib(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_uapiV2_wbV30_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr wbgain-Offsetparameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler; Einzelheiten siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.5 Datentypen der funktionsbezogenen APIs

7.5.1 rk_aiq_wb_op_mode_t

【Beschreibung】 Weißabgleichsbetriebsart definieren.

【Definition】

 typedef enum rk_aiq_wb_op_mode_s {
     RK_AIQ_WB_MODE_INVALID        = 0,
     RK_AIQ_WB_MODE_MANUAL         = 1,
     RK_AIQ_WB_MODE_AUTO           = 2,
     RK_AIQ_WB_MODE_MAX
 } rk_aiq_wb_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_WB_MODE_MANUAL Manueller Weißabgleichsmodus
RK_AIQ_WB_MODE_AUTO Automatischer Weißabgleichsmodus

7.5.2 rk_aiq_wb_mwb_mode_t

【Beschreibung】 Typ des manuellen Weißabgleichsmodus definieren.

【Definition】

 typedef enum rk_aiq_wb_mwb_mode_e {
     RK_AIQ_MWB_MODE_INVAILD              = 0,
     RK_AIQ_MWB_MODE_CCT                  = 1,
     RK_AIQ_MWB_MODE_WBGAIN               = 2,
     RK_AIQ_MWB_MODE_SCENE                = 3,
 } rk_aiq_wb_mwb_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_MWB_MODE_CCT Farbtemperatur
RK_AIQ_MWB_MODE_WBGAIN Verstärkungsfaktor
RK_AIQ_MWB_MODE_SCENE Szene

7.5.3 rk_aiq_wb_gain_t

【Beschreibung】 Weißabgleichsverstärkungsparameter definieren.

【Definition】

 typedef struct rk_aiq_wb_gain_s {
     float rgain;
     float grgain;
     float gbgain;
     float bgain;
 } rk_aiq_wb_gain_t;

【Felder】

Feldname Beschreibung
rgain Verstärkung des R-Kanals
grgain Verstärkung des G-Kanals
gbgain Verstärkung des GB-Kanals
bgain Verstärkung des B-Kanals

7.5.4 rk_aiq_wb_scene_t

【Beschreibung】 Weißabgleichsverstärkungsparameter definieren.

【Definition】

 typedef enum rk_aiq_wb_scene_e {
     RK_AIQ_WBCT_INCANDESCENT = 0,
     RK_AIQ_WBCT_FLUORESCENT,
     RK_AIQ_WBCT_WARM_FLUORESCENT,
     RK_AIQ_WBCT_DAYLIGHT,
     RK_AIQ_WBCT_CLOUDY_DAYLIGHT,
     RK_AIQ_WBCT_TWILIGHT,
     RK_AIQ_WBCT_SHADE
 } rk_aiq_wb_scene_t;

【Felder】

Feldname Beschreibung
RK_AIQ_WBCT_INCANDESCENT Glühlampe
RK_AIQ_WBCT_FLUORESCENT Leuchtstofflampen
RK_AIQ_WBCT_WARM_FLUORESCENT Warmweiße Leuchtstofflampe
RK_AIQ_WBCT_DAYLIGHT Tageslicht
RK_AIQ_WBCT_CLOUDY_DAYLIGHT Bewölkt
RK_AIQ_WBCT_TWILIGHT Dämmerung
RK_AIQ_WBCT_SHADE Schatten

7.5.5 rk_aiq_wb_cct_t

【Beschreibung】 Weißabgleichsverstärkungsparameter definieren.

【Definition】

 typedef struct rk_aiq_wb_cct_s {
     float CCT;
     float CCRI;
 } rk_aiq_wb_cct_t;

【Felder】

Feldname Beschreibung
CCT Korrelierte Farbtemperatur
CCRI Korrelierter Farbwiedergabeindex

7.5.6 rk_aiq_wb_mwb_attrib_t

【Beschreibung】 Eigenschaften des manuellen Weißabgleichs definieren.

【Definition】

 typedef struct rk_aiq_wb_mwb_attrib_s {
     rk_aiq_wb_mwb_mode_t mode;
     union MWBPara_u {
         rk_aiq_wb_gain_t gain;
         rk_aiq_wb_scene_t scene;
         rk_aiq_wb_cct_t cct;
     } para;
 } rk_aiq_wb_mwb_attrib_t;

【Felder】

Feldname Beschreibung
mode Modusauswahl

7.5.7 rk_aiq_uapiV2_wb_awb_wbGainOffset_t

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung definieren.

【Definition】

 typedef struct rk_aiq_uapiV2_wb_awb_wbGainOffset_s{
   rk_aiq_uapi_sync_t sync;
   CalibDbV2_Awb_gain_offset_cfg_t gainOffset;
 }rk_aiq_uapiV2_wb_awb_wbGainOffset_t;

【Felder】

Feldname Beschreibung
sync Definition von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
gainOffset Siehe nachfolgende Beschreibung von CalibDbV2_Awb_gain_offset_cfg_t

7.5.8 CalibDbV2_Awb_gain_offset_cfg_t

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung definieren.

【Definition】

 typedef struct CalibDbV2_Awb_gain_offset_cfg_s{
   bool enable;
   float offset[4];
 }CalibDbV2_Awb_gain_offset_cfg_t;

【Felder】

Feldname Beschreibung
enable Aktivierungsschalter;
0 bedeutet deaktiviert, 1 aktiviert
offset wbgain und offset werden addiert. Der Offsetbereich für die Kanäle R GR GB B
ergibt sich aus der Summe von wbgain und offset;
diese Summe muss im Bereich [0,8] (ISP21) liegen.

7.5.9 rk_aiq_uapiV2_wb_awb_wbGainAdjust_t

【Beschreibung】 Farbtonanpassungsparameter des automatischen Weißabgleichs definieren.

【Definition】

 typedef struct rk_aiq_uapiV2_wb_awb_wbGainAdjustLut_s {
   float lumaValue;
   int ct_grid_num;
   int cri_grid_num;
   float ct_in_range[2];//min,max, equal distance sapmle
   float cri_in_range[2];//min,max
   float *ct_lut_out;//size is ct_grid_num*cri_grid_num
   float *cri_lut_out;
 } rk_aiq_uapiV2_wb_awb_wbGainAdjustLut_t;
 typedef struct rk_aiq_uapiV2_wb_awb_wbGainAdjust_s {
   rk_aiq_uapi_sync_t sync;
   bool enable;
   rk_aiq_uapiV2_wb_awb_wbGainAdjustLut_t *lutAll;
   int lutAll_len;
 } rk_aiq_uapiV2_wb_awb_wbGainAdjust_t;

【Felder】

Feldname Beschreibung
sync Definition von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
enable Farbtonanpassung aktivieren:
0 bedeutet deaktiviert, 1 aktiviert
lutAll Für unterschiedliche Umgebungshelligkeiten können unterschiedliche
Ausgangsfarbtemperaturtabellen konfiguriert werden.
lutAll_len Anzahl der Farbtemperaturtabellen angeben
lutAll.ct_grid_num Anzahl der Abtastpunkte
für die Eingangsfarbtemperatur der Farbtemperaturtabelle;
unbegrenzt
lutAll.ct_in_range Eingangsfarbtemperaturbereich
der Farbtemperaturtabelle; unbegrenzt
lutAll.cri_grid_num Anzahl der Abtastpunkte
für den Eingangsfarbwiedergabeindex der Farbtemperaturtabelle;
unbegrenzt
lutAll.cri_in_range Bereich des Eingangsfarbwiedergabeindex
der Farbtemperaturtabelle; unbegrenzt
lutAll.ct_out Wie im Werkzeugdialog dargestellt, liegen die ct-Werte der Punkte von links nach rechts
(Farbton von kalt zu warm), d. h. CT steigt von klein nach groß;
Wertebereich 0-255000.
lutAll.cri_out Wie im Werkzeugdialog dargestellt, liegen die cri-Werte der Punkte von unten nach oben
(Farbton von Violett zu Grün), d. h. CRI steigt von negativen zu positiven
Werten **
Der Wertebereich ist unbegrenzt.

Weitere Hinweise enthält das Kapitel zur WBGain-Farbanpassung im Dokument Rockchip_Color_Optimization_Guide.

7.5.10 rk_aiq_uapiV2_wbV30_awb_attrib_t

【Beschreibung】 API-Parameter des automatischen Weißabgleichs definieren.

【Definition】

 typedef struct rk_aiq_uapiV2_wbV30_awb_attrib_s {
     rk_aiq_uapiV2_wb_awb_wbGainAdjust_t wbGainAdjust;
     CalibDbV2_Awb_gain_offset_cfg_t wbGainOffset;
 } rk_aiq_uapiV2_wbV30_awb_attrib_t;

【Felder】

Feldname Beschreibung
wbGainAdjust Siehe CalibDbV2_Awb_gain_offset_cfg_t
wbGainOffset Siehe rk_aiq_uapiV2_wb_awb_wbGainAdjust_t
multiWindow Siehe rk_aiq_uapiV2_wbV32_awb_mulWindow_t

7.5.11 rk_aiq_uapiV2_wbV32_attrib_t

【Beschreibung】 Alle von der Weißabgleichs-API unterstützten Parameter definieren.

【Definition】

 typedef struct rk_aiq_uapiV2_wbV30_attrib_s {
     rk_aiq_uapi_sync_t sync;
     bool byPass;
     rk_aiq_wb_op_mode_t mode;
     rk_aiq_wb_mwb_attrib_t stManual;
     rk_aiq_uapiV2_wbV30_awb_attrib_t stAuto;
 } rk_aiq_uapiV2_wbV30_attrib_t;

【Felder】

Feldname Beschreibung
sync Beschreibung von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
bypass Wert 0 oder 1. 0: Weißabgleichskorrektur durchführen; die verwendete Verstärkung
wird durch die Parameter am Tabellenende gesteuert.
1: Keine Weißabgleichskorrektur durchführen.
mode Steuerparameter für automatischen oder manuellen Weißabgleich;
siehe rk_aiq_wb_op_mode_t
stManual Manuelle Weißabgleichsparameter; siehe rk_aiq_wb_mwb_attrib_t
stAuto Automatische Weißabgleichsparameter; siehe rk_aiq_uapiV2_wbV21_awb_attrib_t

7.6 Referenz der modulbezogenen APIs

7.6.1 rk_aiq_user_api2_awbV30_SetAllAttrib

【Beschreibung】 Alle von der Weißabgleichs-API unterstützten Parameter einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awbV30_SetAllAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wbV30_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Alle von der Weißabgleichs-API unterstützten Parameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.2 rk_aiq_user_api2_awbV30_GetAllAttrib

【Beschreibung】 Alle von der Weißabgleichs-API unterstützten Parameter abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awbV30_GetAllAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wbV30_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Alle von der Weißabgleichs-API unterstützten Parameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.3 rk_aiq_user_api2_awb_GetCCT

【Beschreibung】 Farbtemperatur des Weißabgleichs abrufen. Diese Funktion gilt für automatischen und manuellen Betrieb.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_GetCCT(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_wb_cct_t
 *cct);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
cct Farbtemperaturparameter des Weißabgleichs Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.4 rk_aiq_user_api2_awb_QueryWBInfo

【Beschreibung】 Weißabgleichsverstärkungsfaktor und Farbtemperatur abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_QueryWBInfo(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_wb_querry_info_t *wb_querry_info);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
wb_querry_info Farbbezogene Zustandsparameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.5 rk_aiq_user_api2_awb_Lock

【Beschreibung】 Aktuelle Weißabgleichsparameter sperren.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_Lock(const rk_aiq_sys_ctx_t* sys_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.6 rk_aiq_user_api2_awb_Unlock

【Beschreibung】 Gesperrte Weißabgleichsparameter wieder freigeben.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_Lock(const rk_aiq_sys_ctx_t* sys_ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.7 rk_aiq_user_api2_awb_SetWpModeAttrib

【Beschreibung】 Weißabgleichsbetriebsart einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_SetWpModeAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_opMode_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Weißabgleichsbetriebsart Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.8 rk_aiq_user_api2_awb_GetWpModeAttrib

【Beschreibung】 Weißabgleichsbetriebsart abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_GetWpModeAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_opMode_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Weißabgleichsbetriebsart Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.9 rk_aiq_user_api2_awb_SetMwbAttrib

【Beschreibung】 Manuelle Weißabgleichsparameter einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_SetMwbAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_wb_mwb_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Manuelle Weißabgleichsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.10 rk_aiq_user_api2_awb_GetMwbAttrib

【Beschreibung】 Manuelle Weißabgleichsparameter einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_SetMwbAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_wb_mwb_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Manuelle Weißabgleichsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.11 rk_aiq_user_api2_awb_SetWbGainAdjustAttrib

【Beschreibung】 Farbtonanpassungsparameter im automatischen Weißabgleichsmodus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_SetWbGainAdjustAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_awb_wbGainAdjust_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.12 rk_aiq_user_api2_awb_GetWbGainAdjustAttrib

【Beschreibung】 Farbtonanpassungsparameter im automatischen Weißabgleichsmodus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_GetWbGainAdjustAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_awb_wbGainAdjust_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.13 rk_aiq_user_api2_awb_SetWbGainOffsetAttrib

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_SetWbGainOffsetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_awb_wbGainOffset_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.6.14 rk_aiq_user_api2_awb_GetWbGainOffsetAttrib

【Beschreibung】 Offset der automatischen Weißabgleichsverstärkung abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_awb_GetWbGainOffsetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapiV2_wb_awb_wbGainOffset_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Farbtonanpassungsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_awb.h, rk_aiq_uapi2_awb_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Siehe sample_awb_module.cpp.

7.7 Datentypen der modulbezogenen APIs

7.7.1 rk_aiq_wb_querry_info_t

【Beschreibung】 Weißabgleichsabfrageinformationen definieren.

【Definition】

 typedef struct rk_aiq_wb_querry_info_s {
     rk_aiq_wb_gain_t gain;
     rk_aiq_wb_cct_t cctGloabl;
     bool awbConverged;
     uint32_t LVValue;
 } rk_aiq_wb_querry_info_t;

【Felder】

Feldname Beschreibung
gain Verstärkung
cctGloabl Globaler Farbtemperaturparameter
LVValue Zugehörige Umgebungshelligkeit

7.7.2 rk_aiq_wb_op_mode_t

【Beschreibung】 Weißabgleichsbetriebsart definieren.

【Definition】

 typedef struct rk_aiq_uapiV2_wb_opMode_s {
   rk_aiq_uapi_sync_t sync;
   rk_aiq_wb_op_mode_t mode;
 } rk_aiq_uapiV2_wb_opMode_t;

【Felder】

Feldname Beschreibung
sync Beschreibung von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
mode Siehe Beschreibung von rk_aiq_wb_op_mode_t

7.7.3 rk_aiq_wb_mwb_attrib_t

【Beschreibung】 Eigenschaften des manuellen Weißabgleichs definieren.

【Definition】

 typedef struct rk_aiq_wb_mwb_attrib_s {
      rk_aiq_uapi_sync_t sync;
     rk_aiq_wb_mwb_mode_t mode;
     union MWBPara_u {
         rk_aiq_wb_gain_t gain;
         rk_aiq_wb_scene_t scene;
         rk_aiq_wb_cct_t cct;
     } para;
 } rk_aiq_wb_mwb_attrib_t;

【Felder】

Feldname Beschreibung
sync Definitionen von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
mode Modusauswahl
para Parameterkonfiguration für den Modus

8. AF

8.1 Überblick

Das AF-Modul stellt das Kameraobjektiv so ein, dass das Motiv scharf abgebildet wird.

8.2 Funktionsbeschreibung

Das AF-Modul besteht aus AF-Informationsstatistik und AF-Steueralgorithmus. Das folgende Blockbild zeigt die Statistik:

Technische Originalabbildung — PDF S. 147

ch0/ch1/ch2 entsprechen im HDR-Modus den S/M/L-Frames; debayer bezeichnet den zusammengesetzten HDR-Frame.

windowA liefert hauptsächlich 15*15 V1/V2/H1/H2-FV-Werte, Helligkeitsinformationen und die Anzahl heller Pixel.

windowB liefert hauptsächlich einen FV-Wert, Helligkeitsinformationen und die Anzahl heller Pixel.

8.3 userAF-Algorithmen entwickeln

Technische Originalabbildung — PDF S. 148

Referenzcode im SDK: external/camera_engine_rkaiq/rkisp_demo/demo/af_algo_demo

8.4 Funktionsbezogene API-Referenz

8.4.1 rk_aiq_uapi2_setFocusMode

【Beschreibung】 Fokusmodus konfigurieren.

【Syntax】

 XCamReturn rk_aiq_uapi2_setFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Fokusmodus Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.2 rk_aiq_uapi2_getFocusMode

【Beschreibung】 Aktuellen Fokusmodus abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t
 *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
mode Fokusmodus Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.3 rk_aiq_uapi2_setFocusWin

【Beschreibung】 Autofokusfenster einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
rect Fokusfenster; der Wertebereich hängt von der Sensor-Eingangsgröße ab. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.4 rk_aiq_uapi2_getFocusWin

【Beschreibung】 Autofokusfenster einstellen. Die getFocusWin-Beschreibung lautet im Original ebenfalls „Set“; dies bleibt als Quellenabweichung erhalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_getFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
rect Fokusfenster Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.5 rk_aiq_uapi2_lockFocus

【Beschreibung】 Autofokus sperren und die Fokusbewegung pausieren.

【Syntax】

 XCamReturn rk_aiq_uapi2_lockFocus(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.6 rk_aiq_uapi2_unlockFocus

【Beschreibung】 Autofokus entsperren und Fokusbewegung fortsetzen.

【Syntax】

 XCamReturn rk_aiq_uapi2_unlockFocus(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.7 rk_aiq_uapi2_oneshotFocus

【Beschreibung】 Einmalige Fokussierung auslösen; nach Abschluss wird nicht weiter fokussiert.

【Syntax】

 XCamReturn rk_aiq_uapi2_oneshotFocus(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.8 rk_aiq_uapi2_manualTrigerFocus

【Beschreibung】 Fokussierung manuell auslösen. Anschließend die Bildunschärfe weiter überwachen und bei erneuter Unschärfe nochmals fokussieren.

【Syntax】

 XCamReturn rk_aiq_uapi2_manualTrigerFocus(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.9 rk_aiq_uapi2_trackingFocus

【Beschreibung】 Bildunschärfe fortlaufend überwachen und bei Bedarf erneut fokussieren. Üblicherweise nach rk_aiq_uapi2_oneshotFocus verwenden.

【Syntax】

 XCamReturn rk_aiq_uapi2_trackingFocus(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.10 rk_aiq_uapi2_getSearchResult

【Beschreibung】 Fokussierergebnis abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getSearchResult(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_af_result_t* result);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
result Fokussierergebnisse; siehe Struktur rk_aiq_af_result_t. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.11 rk_aiq_uapi2_getZoomRange

【Beschreibung】 Zoombereich abfragen. Er begrenzt die Zoomcode-Eingabe von rk_aiq_uapi_setOpZoomPosition; die API-Schreibweise der Quelle bleibt erhalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_getZoomRange(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_af_zoomrange* range);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
range Bewegungsbereich des Zooms; siehe rk_aiq_af_zoomrange. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.12 rk_aiq_uapi2_setOpZoomPosition

【Beschreibung】 Zoomposition einstellen beziehungsweise ändern.

【Syntax】

 XCamReturn rk_aiq_uapi2_setOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int pos);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pos Zoomposition; Wertebereich gemäß rk_aiq_uapi2_getZoomRange. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.13 rk_aiq_uapi2_getOpZoomPosition

【Beschreibung】 Zoomposition abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int *pos);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pos Zoomposition Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.14 rk_aiq_uapi2_endOpZoomChange

【Beschreibung】 Einstellung der Zoommotorposition abschließen. Nach rk_aiq_uapi_setOpZoomPosition aufrufen; danach erfolgt die Fokussierung. Die API-Schreibweise der Quelle bleibt erhalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_endOpZoomChange(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.15 rk_aiq_uapi2_getFocusRange

【Beschreibung】 Fokusbereich abfragen. Er begrenzt den Fokuscode von rk_aiq_uapi_setFocusPosition; die API-Schreibweise der Quelle bleibt erhalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_getFocusRange(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_af_focusrange* range);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
range Bewegungsbereich des Fokus; siehe rk_aiq_af_focusrange. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.16 rk_aiq_uapi2_setFocusPosition

【Beschreibung】 Fokusposition im manuellen Fokusmodus einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setFocusPosition(const rk_aiq_sys_ctx_t* ctx, unsigned
 short code);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
code Fokuscode; Wertebereich gemäß rk_aiq_uapi2_getFocusRange. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.17 rk_aiq_uapi2_getFocusPosition

【Beschreibung】 Aktuelle Fokusposition abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getFocusPosition(const rk_aiq_sys_ctx_t* ctx, unsigned
 short *code);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
code Fokuscodewert Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.18 rk_aiq_uapi2_startZoomCalib

【Beschreibung】 Elektromotormodul korrigieren.

【Syntax】

 XCamReturn rk_aiq_uapi2_startZoomCalib(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.4.19 rk_aiq_uapi2_resetZoom

【Beschreibung】 Elektromotormodul zurücksetzen.

【Syntax】

 XCamReturn rk_aiq_uapi2_resetZoom(const rk_aiq_sys_ctx_t* ctx);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

8.5 Datentypen der funktionsbezogenen APIs

8.5.1 opMode_t

【Beschreibung】 Betriebsmodus der AF-Informationsstatistik definieren.

【Definition】

 typedef enum opMode_e {
     OP_AUTO   = 0,
     OP_MANUAL = 1,
     OP_SEMI_AUTO = 2,
     OP_INVAL
 } opMode_t;

【Felder】

Feldname Beschreibung
OP_AUTO Autofokusmodus; integrierter AF-Algorithmus läuft.
OP_MANUAL Manueller Fokus; integrierter AF-Algorithmus gestoppt.
OP_SEMI_AUTO Halbautomatischer Fokus; Aufruf der Zoomposition-API löst Autofokus aus.

8.5.2 rk_aiq_af_zoomrange

【Beschreibung】 Wertebereich des Zooms definieren.

【Definition】

 typedef struct {
     int min_pos;
     int max_pos;
     float min_fl;
     float max_fl;
 } rk_aiq_af_zoomrange;

【Felder】

Feldname Beschreibung
min_pos Minimale Zoomposition
max_pos Maximale Zoomposition
min_fl Minimale Brennweite
max_fl Maximale Brennweite

8.5.3 rk_aiq_af_focusrange

【Beschreibung】 Wertebereich des Fokus definieren.

【Definition】

 typedef struct {
     int min_pos;
     int max_pos;
 } rk_aiq_af_focusrange;

【Felder】

Feldname Beschreibung
min_pos Minimale Fokusposition
max_pos Maximale Fokusposition

8.5.4 rk_aiq_af_result_t

【Beschreibung】 AF-Suchergebnisse definieren.

【Definition】

 typedef enum rk_aiq_af_sec_stat_e
 {
     RK_AIQ_AF_SEARCH_INVAL   = 0,
     RK_AIQ_AF_SEARCH_RUNNING = 1,
     RK_AIQ_AF_SEARCH_END     = 2
 } rk_aiq_af_sec_stat_t;
 typedef struct {
     rk_aiq_af_sec_stat_t stat;
     int32_t final_pos;
 } rk_aiq_af_result_t;

【Felder】

Feldname Beschreibung
stat Fokusstatus
final_pos Endgültige Fokusposition

8.6 Modulbezogene API-Referenz

8.6.1 rk_aiq_user_api2_af_SetAttrib

【Beschreibung】 Fokuseigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_af_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t
 attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Fokusparametereigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_af.h

Bibliotheksdatei: librkaiq.so

8.6.2 rk_aiq_user_api2_af_GetAttrib

【Beschreibung】 Fokuseigenschaften abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_af_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_af_attrib_t
 *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Fokusparametereigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_af.h

Bibliotheksdatei: librkaiq.so

8.7 Datentypen der modulbezogenen APIs

8.7.1 RKAIQ_AF_MODE

【Beschreibung】 Fokusbetriebsmodus definieren.

【Definition】

 typedef enum _RKAIQ_AF_MODE
 {
     RKAIQ_AF_MODE_NOT_SET = -1,
     RKAIQ_AF_MODE_AUTO,
     RKAIQ_AF_MODE_MACRO,
     RKAIQ_AF_MODE_INFINITY,
     RKAIQ_AF_MODE_FIXED,
     RKAIQ_AF_MODE_EDOF,
     RKAIQ_AF_MODE_CONTINUOUS_VIDEO,
     RKAIQ_AF_MODE_CONTINUOUS_PICTURE,
     RKAIQ_AF_MODE_ONESHOT_AFTER_ZOOM,
 } RKAIQ_AF_MODE;

【Felder】

Feldname Beschreibung
RKAIQ_AF_MODE_NOT_SET Fokusmodus nicht gesetzt.
RKAIQ_AF_MODE_AUTO Autofokusmodus
RKAIQ_AF_MODE_MACRO Makrofokusmodus
RKAIQ_AF_MODE_INFINITY Fernfokusmodus
RKAIQ_AF_MODE_FIXED Festfokusmodus
RKAIQ_AF_MODE_EDOF Schärfentiefen-Fokusmodus
RKAIQ_AF_MODE_CONTINUOUS_VIDEO Sanfter kontinuierlicher Fokus
RKAIQ_AF_MODE_CONTINUOUS_PICTURE Schneller kontinuierlicher Fokus
RKAIQ_AF_MODE_ONESHOT_AFTER_ZOOM Halbautomatischer Fokus; Einstellen der Zoomposition löst automatisch eine Fokussierung aus.

8.7.2 RKAIQ_AF_HWVER

【Beschreibung】 Fokusbetriebsmodus definieren. Die Quelle verwendet diese Beschreibung auch für RKAIQ_AF_HWVER; die Typ-/Beschreibungsabweichung bleibt dokumentiert.

【Definition】

 typedef enum _RKAIQ_AF_HWVER
 {
     RKAIQ_AF_HW_V20 = 0,
     RKAIQ_AF_HW_V30,
     RKAIQ_AF_HW_VMAX
 } RKAIQ_AF_HWVER;

【Felder】

Feldname Beschreibung
RKAIQ_AF_HW_V20 AF-Hardwareversion 2.0
RKAIQ_AF_HW_V30 AF-Hardwareversion 3.0

8.7.3 rk_aiq_af_algo_meas_v30_t

【Beschreibung】 Betriebsmodus der AF-Informationsstatistik definieren.

【Definition】

 typedef struct {
     unsigned char af_en;
     unsigned char rawaf_sel;
     unsigned char gamma_en;
     unsigned char gaus_en;
     unsigned char v1_fir_sel;
     unsigned char hiir_en;
     unsigned char viir_en;
     unsigned char v1_fv_outmode;    // 0 square, 1 absolute
     unsigned char v2_fv_outmode;    // 0 square, 1 absolute
     unsigned char h1_fv_outmode;    // 0 square, 1 absolute
     unsigned char h2_fv_outmode;    // 0 square, 1 absolute
     unsigned char ldg_en;
     unsigned char accu_8bit_mode;   //fix to 1
     unsigned char ae_mode;
     unsigned char y_mode;           //fix to 0
     unsigned char line_en[RKAIQ_RAWAF_LINE_NUM];
     unsigned char line_num[RKAIQ_RAWAF_LINE_NUM];
     unsigned char window_num;
     unsigned short wina_h_offs;
     unsigned short wina_v_offs;
     unsigned short wina_h_size;
     unsigned short wina_v_size;
     unsigned short winb_h_offs;
     unsigned short winb_v_offs;
     unsigned short winb_h_size;
     unsigned short winb_v_size;
     unsigned short gamma_y[RKAIQ_RAWAF_GAMMA_NUM];
     // [old version param]
     unsigned short thres;
     unsigned char shift_sum_a;
     unsigned char shift_sum_b;
     unsigned char shift_y_a;
     unsigned char shift_y_b;
     /**********[Vertical IIR (v1 & v2)]************/
     short v1_iir_coe[9];
     short v1_fir_coe[3];
     short v2_iir_coe[3];
     short v2_fir_coe[3];
     /**********[Horizontal IIR (h1 & h2)]************/
     short h1_iir1_coe[6];
     short h2_iir1_coe[6];
     short h1_iir2_coe[6];
     short h2_iir2_coe[6];
     /**********[Focus value statistic param]**********/
     // level depended gain
     // input8 lumi, output8bit gain
     unsigned char h_ldg_lumth[2];    //luminance thresh
     unsigned char h_ldg_gain[2];     //gain for [minLum,maxLum]
     unsigned short h_ldg_gslp[2];    //[slope_low,-slope_high]
     unsigned char v_ldg_lumth[2];
     unsigned char v_ldg_gain[2];
     unsigned short v_ldg_gslp[2];
     // coring
     unsigned short v_fv_thresh;
     unsigned short h_fv_thresh;
     // left shift, more needed if outmode=square
     unsigned char v1_fv_shift; //only for sel1
     unsigned char v2_fv_shift;
     unsigned char h1_fv_shift;
     unsigned char h2_fv_shift;
     /**********[High light]**********/
     unsigned short highlit_thresh;
 }  rk_aiq_af_algo_meas_v30_t;

【Felder】

Feldname Beschreibung
af_en AF-Statistik aktivieren: 0 aus, 1 ein.
rawaf_sel AF-Statistikkanal wählen, Bereich 0-3 für lange/mittlere/kurze/zusammengesetzte HDR-Frames. AF verwendet üblicherweise den mittleren Frame; ohne HDR auf 0, mit HDR auf 1 setzen. Die abweichende S/M/L-Reihenfolge im Überblick bleibt als Quellenabweichung erhalten.
gamma_en Gamma-Modul einschalten: 0 aus, 1 ein.
gaus_en Fest auf 1 setzen.
v1_fir_sel Fest auf 1 setzen.
hiir_en H1/H2-Kanäle aktivieren: 0 aus, 1 ein.
viir_en V1/V2-Kanäle aktivieren: 0 aus, 1 ein. Bei aktiviertem gamma_en muss viir_en auf 1 stehen.
v1_fv_outmode FV-Ausgabemodus für V1: 0 quadriert, 1 Absolutwert.
v2_fv_outmode FV-Ausgabemodus für V2: 0 quadriert, 1 Absolutwert.
ldg_en LDG aktivieren: 0 aus, 1 ein.
accu_8bit_mode Fest auf 1 setzen.
ae_mode Bei ae_mode = 1 aktiviert RAWAF eine 15x15-Helligkeitsmittelwertstatistik unter Mitbenutzung der RAWAE_BIG-Logik.
y_mode Fest auf 0 setzen.
sobel_sel Fest auf 0 setzen.
v_dnscl_mode Breit-/Schmalbandmodus gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs wählen.
from_awb AF-Statistikeingang stammt von AWB.
from_ynr AF-Statistikeingang stammt von YNR.
ae_config_use Fest auf 0 konfigurieren.
line_en Derzeit ohne Wirkung.
line_num Derzeit ohne Wirkung.
window_num Anzahl aktiver Fenster: 1 aktiviert WinA als Hauptfenster; 2 aktiviert wina als Hauptfenster und winb als unabhängiges Fenster.
wina_h_offs Horizontale Koordinate des ersten Pixels oben links in WinA, mindestens 2.
wina_v_offs Vertikale Koordinate des ersten Pixels oben links in wina, mindestens 1.
Feldname Beschreibung
wina_h_size Breite von Wina: kleiner als Bildbreite -2-wina_h_offs und ein Vielfaches von 15.
wina_v_size Höhe von Wina: kleiner als Bildhöhe -2-wina_v_offs und ein Vielfaches von 15.
winb_h_offs Horizontale Koordinate des ersten Pixels oben links in winb, mindestens 2.
winb_v_offs Vertikale Koordinate des ersten Pixels oben links in winb, mindestens 1.
winb_h_size Breite von winb: kleiner als Bildbreite -2-wina_h_offs. Die Quelle nennt hier trotz winb ausdrücklich wina_h_offs.
winb_v_size Höhe von winb: kleiner als Bildhöhe -2-wina_v_offs. Die Quelle nennt hier trotz winb ausdrücklich wina_v_offs.
gamma_y Y-Werte der Gammatabelle, Bereich 0-1023. X-Segmentierung von 0 bis 1023: 16 16 16 16 32 32 32 32 64 64 64 128 128 128 128 128.
thres AF-Statistikschwelle für win b. Kleinere berechnete fv-Werte werden gegen Rauscheinfluss auf 0 gesetzt. Bereich 0-0xFFFF.
shift_sum_a Derzeit nicht verfügbar, fest auf 0 setzen.
shift_y_a Derzeit nicht verfügbar, fest auf 0 setzen.
v1_iir_coe[9] 3X3-IIR-Koeffizient des V1-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
v1_fir_coe[3] 1x3-FIR-Koeffizient des V1-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
v2_iir_coe[3] 1x3-IIR-Koeffizient des V2-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
v2_fir_coe[3] 1x3-FIR-Koeffizient des V2-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
h1_iir1_coe[6] 1X6-IIR1-Koeffizient des H1-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
h2_iir1_coe[6] 1X6-IIR1-Koeffizient des H2-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
h1_iir2_coe[6] 1X6-IIR2-Koeffizient des H1-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
h2_iir2_coe[6] 1X6-IIR2-Koeffizient des H2-Kanals gemäß Ausgabe des AF-Filterkoeffizientenwerkzeugs.
Feldname Beschreibung
h_ldg_lumth[2] LDG-Helligkeitsschwellen für H1/H2. Index 0: linker dunkler Bereich; 1: rechter heller Bereich. Bereich 0~255.
h_ldg_gain[2] Minimale LDG-Verstärkung für H1/H2. Index 0: linker dunkler Bereich; 1: rechter heller Bereich. Bereich 0~255.
h_ldg_gslp[2] LDG-Steigungskoeffizient für H1/H2. Index 0: linker dunkler Bereich; 1: rechter heller Bereich. Bereich 0~65535.
v_ldg_lumth[2] LDG-Helligkeitsschwellen für V1/V2. Index 0: linker dunkler Bereich; 1: rechter heller Bereich. Bereich 0~255.
v_ldg_gain[2] Minimale LDG-Verstärkung für V1/V2. Index 0: linker dunkler Bereich; 1: rechter heller Bereich. Bereich 0~255.
v_ldg_gslp[2] Laut Quelle minimale LDG-Verstärkung für V1/V2, Index 0 für links/dunkel und 1 für rechts/hell, Bereich 0~255. Die abweichende Beschreibung und der Wertebereich dieses gslp-Felds bleiben unverändert dokumentiert.
v_fv_thresh AF-Statistikschwelle für V1/V2. Kleinere berechnete fv-Werte werden gegen Rauscheinfluss auf 0 gesetzt. Bereich 0-0x0FFF.
h_fv_thresh AF-Statistikschwelle für H1/H2. Kleinere berechnete fv-Werte werden gegen Rauscheinfluss auf 0 gesetzt. Bereich 0-0x0FFF.
v1_fv_shift FV-Rechtsschiebung für V1, um Überlauf zu vermeiden. Bereich 0-7. Der offensichtliche Quellschreibfehler „shit bit“ ist als Schiebebit übersetzt.
v2_fv_shift FV-Rechtsschiebung für V2, um Überlauf zu vermeiden. Bereich 0-7. Der Quellschreibfehler „shit bit“ bleibt dokumentiert.
h1_fv_shift FV-Rechtsschiebung für H1, um Überlauf zu vermeiden. Bereich 0-7. Der Quellschreibfehler „shit bit“ bleibt dokumentiert.
h2_fv_shift FV-Rechtsschiebung für H2, um Überlauf zu vermeiden. Bereich 0-7. Der Quellschreibfehler „shit bit“ bleibt dokumentiert.
highlit_thresh Schwelle der Spitzlichtstatistik. Größere Werte gelten als Spitzlichter; je Bereich wird nur ihre Anzahl aufsummiert. Bereich 0-0x0FFF.

8.7.4 rk_aiq_af_attrib_t

【Beschreibung】 Fokuskonfigurationsinformationen.

【Definition】

 typedef struct rk_aiq_af_attrib_s {
     rk_aiq_uapi_sync_t sync;
     RKAIQ_AF_MODE AfMode;
     RKAIQ_AF_HWVER AfHwVer;
     bool contrast_af;
     bool laser_af;
     bool pdaf;
     int h_offs;
     int v_offs;
     unsigned int h_size;
     unsigned int v_size;
     short fixedModeDefCode;
     short macroModeDefCode;
     short infinityModeDefCode;
     union {
         rk_aiq_af_algo_meas_v20_t manual_meascfg;
         rk_aiq_af_algo_meas_v30_t manual_meascfg_v30;
     };
 } rk_aiq_af_attrib_t;

【Felder】

Feldname Beschreibung
sync Für synchrone/asynchrone APIs siehe rk_aiq_uapi_sync_t im Überblick beziehungsweise in der API-Beschreibung.
AfMode Fokusmodus
contrast_af Kontrastfokus aktivieren.
laser_af Laserfokus aktivieren.
pdaf Phasenfokus aktivieren.
h_offs Horizontale Anfangskoordinate des Fokusfensters.
v_offs Vertikale Anfangskoordinate des Fokusfensters.
h_size Fokusfensterbreite
v_size Fokusfensterhöhe
fixedModeDefCode Fokuscodewert
macroModeDefCode Endcode im Makrofokusmodus ist laut Quelle 0-value; die ursprüngliche Angabe bleibt erhalten.
infinityModeDefCode Anfangscode im Fernfokusmodus mit Fokusbereich -64; die ursprüngliche Angabe bleibt erhalten.
manual_meascfg Benutzerdefinierte AF2.0-Fokusstatistikkonfiguration.
manual_meascfg_v30 Benutzerdefinierte AF3.0-Fokusstatistikkonfiguration.

8.8 Ergänzende Hinweise

8.8.1 VCM-Motormodultreiber prüfen

1. Prüfen, ob Anfangs- und Endstrom des VCM-Treibers korrekt eingestellt sind.

Zunächst die Angaben zu Anfangs- und Endstrom vom Modulhersteller einholen.

Anschließend einige Module auswählen und die Angaben wie folgt prüfen:

Im DTS Anfangs- und Endstrom auf den maximal vom VCM unterstützten Bereich setzen.

Auf manuellen Fokus wechseln und die VCM-Position schrittweise ab 64 ändern. Sobald das Objektiv sich bewegt und ein fernes Objekt über 10 Meter scharf ist, die aktuelle Position notieren.

Der Anfangsstrom beträgt (vcm_max_mA - vcm_min_mA) * (64 - curPos) / 64.

VCM weiter bewegen. Sobald ein nahes Objekt bei 10cm oder 20cm scharf erscheint, die aktuelle Position notieren.

Der Endstrom beträgt (vcm_max_mA - vcm_min_mA) * (64 - curPos) / 64.

2. Prüfen, ob die Endposition bei Bewegung aus verschiedenen Richtungen stabil ist.

Im manuellen Fokusmodus eine Zielposition wählen. Einmal von 0, einmal von 64 dorthin bewegen. Bildschärfe und AF-Statistik beider Ergebnisse vergleichen.

3. Prüfen, ob die benötigte Objektivbewegungszeit korrekt ist.

8.8.2 Elektromotormodultreiber prüfen

1. Prüfen, ob mehrere Einzelschritte und eine mehrschrittige Bewegung an derselben Position enden.

1. Zunächst eine Zoom-/Fokusmotorposition mit maximaler Bildschärfe wählen, die Position notieren und Bild A aufnehmen.

2. Zoom- oder Fokusmotor um einige Schritte zurückfahren und dann in Einzelschritten zur notierten Position bewegen. Bild B aufnehmen.

3. Erneut um einige Schritte zurückfahren, die notierte Position mit einer einzigen Bewegung anfahren und Bild C aufnehmen.

4. Schärfe und Sichtfeld von A, B und C auf Übereinstimmung prüfen.

2. Prüfen, ob zufällige Motorbewegungen an derselben Zielposition enden.

1. Zunächst eine Zoom-/Fokusmotorposition mit maximaler Bildschärfe wählen, die Position notieren und Bild A aufnehmen.

2. Zoom- oder Fokusmotor per Skript 400 bis 500 zufällige Bewegungen ausführen lassen, zur ursprünglichen Position zurückkehren und Bild B aufnehmen.

3. Bild A und B auf gleiche Schärfe und gleiches Sichtfeld prüfen.

3. Prüfen, ob gleichzeitig bewegte Motoren dieselbe Endposition erreichen.

1. Zunächst eine Zoom-/Fokusmotorposition mit maximaler Bildschärfe wählen, die Position notieren und Bild A aufnehmen.

2. Zoom- und Fokusmotor per Skript gleichzeitig 400 bis 500 zufällige Bewegungen ausführen lassen, zur ursprünglichen Position zurückkehren und Bild B aufnehmen.

3. Bild A und B auf gleiche Schärfe und gleiches Sichtfeld prüfen.

9. IMGPROC

9.1 Überblick

imgproc bezeichnet die Module, die die Bildwirkung beeinflussen.

9.2 Merge

9.2.1 Funktionsbeschreibung

Merge führt mehrere Bildframes zu einem einzelnen Frame zusammen.

9.2.2 Wichtige Begriffe

Wirkt ausschließlich im HDR-Modus.

9.2.3 Funktionsbezogene API-Referenz

9.2.4 Modulbezogene API-Referenz

9.2.4.1 rk_aiq_user_api2_amerge_SetAttrib

【Beschreibung】 Merge-Eigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_amerge_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 amerge_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften von Merge Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_amerge.h

Bibliotheksdatei: librkaiq.so

9.2.4.2 rk_aiq_user_api2_amerge_GetAttrib

【Beschreibung】 Merge-Eigenschaften abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_amerge_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 amerge_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften von Merge Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_amerge.h

Bibliotheksdatei: librkaiq.so

9.2.5 Datentypen der modulbezogenen APIs

9.2.5.1 merge_OpMode_t

【Beschreibung】 Merge-Betriebsmodus definieren.

【Definition】

 typedef enum merge_OpModeV21_e {
     MERGE_OPMODE_API_OFF = 0,
     MERGE_OPMODE_MANU    = 1,
 } merge_OpModeV21_t;

【Felder】

Feldname Beschreibung
MERGE_OPMODE_API_OFF API ausgeschaltet; der Algorithmus arbeitet im AUTO-Modus unter Verwendung des Parameters. Die Quelle beendet die Angabe nach „parameter“.
MERGE_OPMODE_MANU Manueller Modus

9.2.5.2 MergeBaseFrame_t

【Beschreibung】 Referenzframe-Eigenschaften beim Zusammenführen definieren.

【Definition】

 typedef enum MergeBaseFrame_e {
     BASEFRAME_LONG  = 0,
     BASEFRAME_SHORT = 1,
 } MergeBaseFrame_t;

【Felder】

Feldname Beschreibung
BASEFRAME_LONG Beim Zusammenführen dienen lange Frames als Referenz.
BASEFRAME_SHORT Beim Zusammenführen dienen kurze Frames als Referenz.

9.2.5.3 MergeCurrCtlData_t

【Beschreibung】 Merge-Steuerparameter definieren.

【Definition】

 typedef struct MergeCurrCtlData_s {
     float Envlv;
     float MoveCoef;
 } MergeCurrCtlData_t;

【Felder】

Feldname Beschreibung
Envlv Aktuelle Umgebungshelligkeit; die Quelle nennt wörtlich „ranges from 0,1 to 0.000001“. Die widersprüchliche Bereichsangabe bleibt unverändert dokumentiert.
MoveCoef Aktueller Bewegungskoeffizient, Bereich [0,1], Genauigkeit 0.000001; der Wert ist vorläufig fest.

9.2.5.4 mMergeOECurveV21_t

【Beschreibung】 Eigenschaften der manuellen Merge-Überbelichtungskurve definieren.

【Definition】

 typedef struct mMergeOECurveV21_s {
     float Smooth;
     float Offset;
 } mMergeOECurveV21_t;

【Felder】

Feldname Beschreibung
Smooth Steigung der Überbelichtungskurve, Bereich [0,1], Standard 0.4, Genauigkeit 0.01.
Offset Versatz der Überbelichtungskurve, Bereich [108,280], Standard 210, Genauigkeit 0.1.

9.2.5.5 mMergeMDCurveV21_t

【Beschreibung】 Bewegungskurveneigenschaften im Langframe-Modus definieren.

【Definition】

 typedef struct mMergeMDCurveV21_s {
     float LM_smooth;
     float LM_offset;
     float MS_smooth;
     float MS_offset;
 } mMergeMDCurveV21_t;

【Felder】

Feldname Beschreibung
LM_smooth Steigung der Bewegungskurve zwischen langem und mittlerem Frame, Bereich [0,1], Standard 0.4, Genauigkeit 0.01. Auf RK356x ohne Wirkung.
LM_offset Versatz der Bewegungskurve zwischen langem und mittlerem Frame, Bereich [0.26,1], Standard 0.38, Genauigkeit 0.01. Auf RK356x ohne Wirkung.
MS_smooth Steigung der Bewegungskurve zwischen mittlerem und kurzem Frame, Bereich [0,1], Standard 0.4, Genauigkeit 0.01.
MS_offset Versatz der Bewegungskurve zwischen mittlerem und kurzem Frame, Bereich [0.26,1], Standard 0.38, Genauigkeit 0.01.

9.2.5.6 mMergeAttrV21_t

【Beschreibung】 Manuelle Merge-Eigenschaften für RK3588 definieren.

【Definition】

 typedef struct mMergeAttrV21_s {
     mMergeOECurveV21_t OECurve;
     mMergeMDCurveV21_t MDCurve;
 } mMergeAttrV21_t;

【Felder】

Feldname Beschreibung
OECurve Parameter der Überbelichtungskurve
MDCurve Parameter des Bewegungsprofils

9.2.5.7 mergeAttrV21_t

【Beschreibung】 Merge-Eigenschaften auf RK356x konfigurieren.

【Definition】

 typedef struct mergeAttrV21_s {
     merge_OpModeV21_t    opMode;
     mMergeAttrV21_t      stManual;
     MergeCurrCtlData_t   CtlInfo;
 } mergeAttrV21_t;

【Felder】

Feldname Beschreibung
opMode Modusauswahl
stManual Manuelle Merge-Eigenschaften
CtlInfo Steuergrößenparameter

9.2.5.8 mLongFrameModeData_t

【Beschreibung】 Steuerparameter im Langframe-Modus definieren.

【Definition】

 typedef struct mLongFrameModeData_s {
     mMergeOECurveV21_t OECurve;
     mMergeMDCurveV21_t MDCurve;
 } mLongFrameModeData_t;

【Felder】

Feldname Beschreibung
OECurve Parameter der Überbelichtungskurve
MDCurve Parameter des Bewegungsprofils

9.2.5.9 mMergeMDCurveV30Short_t

【Beschreibung】 Bewegungskurveneigenschaften im Kurzframe-Modus definieren.

【Definition】

 typedef struct mMergeMDCurveV30Short_s{
     float Coef;
     float ms_thd0;
     float lm_thd0;
 } mMergeMDCurveV30Short_t;

【Felder】

Feldname Beschreibung
Coef Steuerkoeffizient, Bereich [0,1], Standard 0.05, Genauigkeit 0.0001.
ms_thd0 Steuerkoeffizient für mittlere und kurze Frames, Bereich [0,1], Standard 0.0, Genauigkeit 0.1.
lm_thd0 Steuerkoeffizient für lange und mittlere Frames, Bereich [0,1], Standard 0.0, Genauigkeit 0.1.

9.2.5.10 mShortFrameModeData_t

【Beschreibung】 Steuerparameter im Kurzframe-Modus definieren.

【Definition】

 typedef struct mShortFrameModeData_s {
     mMergeOECurveV21_t      OECurve;
     mMergeMDCurveV30Short_t MDCurve;
 } mShortFrameModeData_t;

【Felder】

Feldname Beschreibung
OECurve Parameter der Überbelichtungskurve
MDCurve Parameter des Bewegungsprofils

9.2.5.11 mMergeAttrV30_t

【Beschreibung】 Manuelle Merge-Eigenschaften für RK3588 definieren.

【Definition】

 typedef struct mMergeAttrV30_s {
     MergeBaseFrame_t      BaseFrm;
     mLongFrameModeData_t  LongFrmModeData;
     mShortFrameModeData_t ShortFrmModeData;
 } mMergeAttrV30_t;

【Felder】

Feldname Beschreibung
BaseFrm Referenzframe beim Zusammenführen
LongFrmModeData Steuerdaten, wenn ein langer Frame als Referenz dient.

9.2.5.12 MergeOECurveV10_t

【Beschreibung】 Automatische Merge-Überbelichtungskurve definieren.

【Definition】

 typedef struct MergeOECurveV10_s {
     float EnvLv[MERGE_ENVLV_STEP_MAX];
     float Smooth[MERGE_ENVLV_STEP_MAX];
     float Offset[MERGE_ENVLV_STEP_MAX];
 } MergeOECurveV10_t;

【Felder】

Feldname Beschreibung
EnvLv Umgebungshelligkeit, Bereich [0,1]: 0 vollständig schwarz, 1 am hellsten.
Smooth Steigung der Überbelichtungskurve, Bereich [0,1], Standard 0.4, Genauigkeit 0.01.
Offset Versatz der Überbelichtungskurve, Bereich [108,280], Standard 210, Genauigkeit 0.1.

9.2.5.13 MergeMDCurveV10_t

【Beschreibung】 Bewegungskurveneigenschaften im Langframe-Modus definieren.

【Definition】

 typedef struct MergeMDCurveV10_s {
     float MoveCoef[MERGE_ENVLV_STEP_MAX];
     float LM_smooth[MERGE_ENVLV_STEP_MAX];
     float LM_offset[MERGE_ENVLV_STEP_MAX];
     float MS_smooth[MERGE_ENVLV_STEP_MAX];
     float MS_offset[MERGE_ENVLV_STEP_MAX];
 } MergeMDCurveV10_t;

【Felder】

Feldname Beschreibung
MoveCoef Bewegungsgrad des Bilds, Bereich [0,1]: 0 vollständig still, 1 volle Bewegung.
LM_smooth Steigung der Bewegungskurve zwischen langem und mittlerem Frame, Bereich [0,1], Standard 0.4. Im HDR-x2-Modus ohne Wirkung.
LM_offset Versatz der Bewegungskurve zwischen langem und mittlerem Frame, Bereich [0.26,1], Standard 0.38. Im HDR-x2-Modus ohne Wirkung.
MS_smooth Steigung der Bewegungskurve zwischen mittlerem und kurzem Frame, Bereich [0,1], Standard 0.4.
MS_offset Versatz der Bewegungskurve zwischen mittlerem und kurzem Frame, Bereich [0.26,1], Standard 0.38.

9.2.5.14 MergeEachChnCurveV12_t

【Beschreibung】 Unterkanal-Erkennungskurve im Langframe-Modus definieren.

【Definition】

 typedef struct MergeEachChnCurveV12_s {
     float EnvLv[MERGE_ENVLV_STEP_MAX];
     float Smooth[MERGE_ENVLV_STEP_MAX];
     float Offset[MERGE_ENVLV_STEP_MAX];
 } MergeEachChnCurveV12_t;

【Felder】

Feldname Beschreibung
EnvLv Umgebungshelligkeit, Bereich [0,1]: 0 vollständig schwarz, 1 am hellsten.
Smooth Steigung der Unterkanal-Überbelichtungskurve, Bereich [0,1], Standard 0.4, Genauigkeit 0.01.
Offset Versatz der Unterkanal-Überbelichtungskurve, Bereich [0,1], Standard 0.38, Genauigkeit 0.01.

9.2.5.15 LongFrameModeDataV12_t

【Beschreibung】 Steuerparameter im Langframe-Modus definieren.

【Definition】

 typedef struct LongFrameModeDataV12_s {
     bool                   EnableEachChn;
     MergeOECurveV10_t      OECurve;
     MergeMDCurveV10_t      MDCurve;
     MergeEachChnCurveV12_t EachChnCurve;
     float                  OECurve_damp;
     float                  MDCurveLM_damp;
     float                  MDCurveMS_damp;
 } LongFrameModeDataV12_t;

【Felder】

Feldname Beschreibung
EnableEachChn Schalter für getrennte Kanalerkennung
OECurve Parameter der Überbelichtungskurve
MDCurve Parameter des Bewegungsprofils
EachChnCurve Kurvenparameter der getrennten Kanalerkennung
MDCurveLM_damp Glättungskoeffizient für Änderungen der Bewegungskurve zwischen langem und mittlerem Frame: Anteil des aktuellen Frameparameters, Bereich [0,1], Standard 0.9. Im HDR-x2-Modus ohne Wirkung.
MDCurveMS_damp Glättungskoeffizient für Änderungen der Bewegungskurve zwischen mittlerem und kurzem Frame: Anteil des aktuellen Frameparameters, Bereich [0,1], Standard 0.9.

9.2.5.16 MergeMDCurveV11Short_t

【Beschreibung】 Bewegungskurveneigenschaften im Kurzframe-Modus definieren.

【Definition】

 typedef struct MergeMDCurveV11Short_s{
     float Coef;
     float ms_thd0;
     float lm_thd0;
 } MergeMDCurveV11Short_t;

【Felder】

Feldname Beschreibung
Coef Steuerkoeffizient, Bereich [0,1], Standard 0.05, Genauigkeit 0.0001.
ms_thd0 Steuerkoeffizient für mittlere und kurze Frames, Bereich [0,1], Standard 0.0, Genauigkeit 0.1.
lm_thd0 Steuerkoeffizient für lange und mittlere Frames, Bereich [0,1], Standard 0.0, Genauigkeit 0.1.

9.2.5.17 ShortFrameModeData_t

【Beschreibung】 Steuerparameter im Kurzframe-Modus definieren.

【Definition】

 typedef struct ShortFrameModeData_s {
     MergeOECurveV10_t      OECurve;
     MergeMDCurveV11Short_t MDCurve;
     float                  OECurve_damp;
     float                  MDCurve_damp;
 } ShortFrameModeData_t;

【Felder】

Feldname Beschreibung
OECurve Parameter der Überbelichtungskurve
MDCurve Parameter des Bewegungsprofils
OECurve_damp Glättungskoeffizient für Änderungen der Überbelichtungskurve: Anteil des aktuellen Frameparameters, Bereich [0,1], Standard 0.9.
MDCurve_damp Glättungskoeffizient für Änderungen der Bewegungskurve: Anteil des aktuellen Frameparameters, Bereich [0,1], Standard 0.9.

9.2.5.18 CalibDbV2_merge_V12_t

【Beschreibung】 Automatische Merge-Eigenschaften definieren.

【Definition】

 typedef struct CalibDbV2_merge_V12_s {
     MergeBaseFrame_t       BaseFrm;
     float                  ByPassThr;
     LongFrameModeDataV12_t LongFrmModeData;
     ShortFrameModeData_t   ShortFrmModeData;
 } CalibDbV2_merge_V12_t;

【Felder】

Feldname Beschreibung
BaseFrm Referenzframe beim Zusammenführen
ByPassThr Bypass-Schwelle des aktuellen Moduls, Bereich [0,1]. Ist die prozentuale Differenz zwischen aktueller Umgebungshelligkeit und der des vorherigen Frames kleiner als ByPassThr, werden die Modulparameter nicht aktualisiert.
LongFrmModeData Steuerdaten, wenn ein langer Frame als Referenz dient.

9.2.5.19 MergeCurrCtlData_t

【Beschreibung】 Merge-Eigenschaften auf RK3588 konfigurieren.

【Definition】

 typedef struct mergeAttrV30_s {
     merge_OpModeV21_t    opMode;
     mMergeAttrV30_t      stManual;
     MergeCurrCtlData_t   CtlInfo;
 } mergeAttrV30_t;

【Felder】

Feldname Beschreibung
opMode Modusauswahl
stManual Manuelle Merge-Eigenschaften
CtlInfo Steuergrößenparameter

9.2.5.20 mergeAttr_t

【Beschreibung】 Merge-Eigenschaften konfigurieren.

【Definition】

 typedef struct mergeAttr_s {
     rk_aiq_uapi_sync_t  sync;
     mergeAttrV21_t      attrV21;
     mergeAttrV30_t      attrV30;
 } mergeAttr_t;

【Felder】

Feldname Beschreibung
sync Für die Definition von rk_aiq_uapi_sync_t siehe Überblick/API-Beschreibung.
attrV21 Merge-Eigenschaften für RK356x; auf RK3588 ohne Wirkung.
attrV30 Merge-Eigenschaften für RK3588; auf RK356x ohne Wirkung.

9.3 DRC

9.3.1 Funktionsbeschreibung

DRC (High Dynamic Range Compression) komprimiert Bilder mit hoher Bittiefe in Bilder mit niedriger Bittiefe.

9.3.2 Wichtige Begriffe

DRC ist sowohl im Linear- als auch im HDR-Modus nutzbar.

9.3.3 Funktionsbezogene API-Referenz

9.3.3.1 rk_aiq_uapi2_setDrcGain

【Beschreibung】

Parameter der DrcGain-Kurve schnell einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setDrcGain(const rk_aiq_sys_ctx_t* ctx, float Gain, float
 Alpha, float Clip);

Der API-Modus ist dabei DRC_OPMODE_DRC_GAIN. Der Aufruf speichert die Parameter in stDrcGain; dieses bestimmt die drei Parameter der DrcGain-Kurve. Die übrigen DRC-Parameter werden weiterhin vom DRC-Modul der JSON-Datei bestimmt.

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
Gain Gain-Wert, Bereich [1,8] Eingabe
Alpha Alpha-Wert, Bereich [0,1] Eingabe
Clip Clip-Wert, Bereich [0,64] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.3.2 rk_aiq_uapi2_getDrcGain

【Beschreibung】

Parameter der schnellen DrcGain-Kurve abfragen.

Die API liefert die Werte aus stDrcGain. Nur im API-Modus DRC_OPMODE_DRC_GAIN entsprechen sie den tatsächlich verwendeten aktuellen Parametern.

【Syntax】

 XCamReturn rk_aiq_uapi2_getDrcGain(const rk_aiq_sys_ctx_t* ctx, float Gain, float
 Alpha, float Clip);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
Gain Gain-Wert, Bereich [1,8] Ausgabe
Alpha Alpha-Wert, Bereich [0,1] Ausgabe
Clip Clip-Wert, Bereich [0,64] Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.3.3 rk_aiq_uapi2_setDrcHiLit

【Beschreibung】

DrcHiLit-Parameter schnell einstellen.

Dabei gilt DRC_OPMODE_HILIT. Der API-Aufruf speichert die Werte in stHiLit, das die HiLight-Parameter bestimmt. Alle übrigen DRC-Parameter stammen weiterhin aus dem DRC-Modul der JSON-Datei.

【Syntax】

 XCamReturn rk_aiq_uapi2_setDrcHiLit(const rk_aiq_sys_ctx_t* ctx, float Strength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
Strength Stärke, Bereich [0,1] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.3.4 rk_aiq_uapi2_getDrcHiLit

【Beschreibung】

Parameter der schnellen DrcHiLit-Konfiguration abfragen.

Die API liefert DrcHiLit-Werte aus stHiLit. Nur im API-Modus DRC_OPMODE_HILIT sind dies die tatsächlich verwendeten Parameter.

【Syntax】

 XCamReturn rk_aiq_uapi2_getDrcHiLit(const rk_aiq_sys_ctx_t* ctx, float Strength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
Strength Stärke, Bereich [0,1] Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.3.5 rk_aiq_uapi2_setDrcLocalData

【Beschreibung】

DrcLocalData-Parameter schnell einstellen.

Dabei gilt DRC_OPMODE_LOCAL_TMO. Der Aufruf speichert die Parameter in stLocalDataV30, das LocalData bestimmt. Die übrigen DRC-Parameter stammen weiterhin aus dem DRC-Modul der JSON-Datei.

【Syntax】

 XCamReturn rk_aiq_uapi2_setDrcLocalData(const rk_aiq_sys_ctx_t* ctx, float
 LocalWeit, float GlobalContrast, float LoLitContrast,int LocalAutoEnable, float
 LocalAutoWeit);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
LocalWeit LocalWeit-Wert, Bereich [0,1] Eingabe
GlobalContrast GlobalContrast-Wert, Bereich [0,1] Eingabe
LoLitContrast LoLitContrast-Wert, Bereich [0,1] Eingabe
LocalAutoEnable Automatischer Local-Schalter, Bereich [0,1] Eingabe
LocalAutoWeit Automatischer LocalWeit-Wert, Bereich [0,1] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.3.6 rk_aiq_uapi2_getDrcLocalData

【Beschreibung】

Zugehörige DrcLocalData-Parameter abfragen.

Die API liefert LocalData-Werte aus stLocalDataV30. Sie werden nur bei DRC_OPMODE_LOCAL_TMO verwendet.

【Syntax】

 XCamReturn rk_aiq_uapi2_getDrcLocalData(const rk_aiq_sys_ctx_t* ctx, float*
 LocalWeit, float* GlobalContrast, float* LoLitContrast,int* LocalAutoEnable,
 float* LocalAutoWeit);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
LocalWeit LocalWeit-Wert, Bereich [0,1] Ausgabe
GlobalContrast GlobalContrast-Wert, Bereich [0,1] Ausgabe
LoLitContrast LoLitContrast-Wert, Bereich [0,1] Ausgabe
ocalAutoEnable Automatischer Local-Schalter, Bereich [0,1] Ausgabe
LocalAutoWeit Automatischer LocalWeit-Wert, Bereich [0,1] Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.3.4 Modulbezogene API-Referenz

9.3.4.1 rk_aiq_user_api2_adrc_SetAttrib

【Beschreibung】 DRC-Softwareeigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adrc_SetAttrib(RkAiqAlgoContext* ctx,
                            drc_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
attr Struktur der DRC-Softwareeigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_adrc.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.3.4.2 rk_aiq_user_api2_adrc_GetAttrib

【Beschreibung】 DRC-Softwareeigenschaften abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adrc_GetAttrib(RkAiqAlgoContext* ctx,
                            drc_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
attr Struktur der DRC-Softwareeigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_adrc.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.3.5 Datentypen der modulbezogenen APIs

9.3.5.1 AdrcVersion_t

【Beschreibung】 DRC-Versionseigenschaften definieren.

【Definition】

 typedef enum AdrcVersion_e {
     ADRC_VERSION_356X = 0,
     ADRC_VERSION_3588 = 1,
     ADRC_VERSION_MAX
 } AdrcVersion_t;

【Felder】

Feldname Beschreibung
ADRC_VERSION_356X RK356x
ADRC_VERSION_3588 RK3588
ADRC_VERSION_MAX Maximaler Versionsmodus

9.3.5.2 drc_OpMode_t

【Beschreibung】 DRC-Betriebsmodus definieren.

【Definition】

 typedef enum drc_OpMode_e {
     DRC_OPMODE_API_OFF   = 0,
     DRC_OPMODE_MANU      = 1,
     DRC_OPMODE_DRC_GAIN  = 2,
     DRC_OPMODE_HILIT     = 3,
     DRC_OPMODE_LOCAL_TMO = 4,
 } drc_OpMode_t;

【Felder】

Feldname Beschreibung
DRC_OPMODE_API_OFF Automatischer Modus: sämtliche Drc-Modulparameter werden durch JSON bestimmt.
DRC_OPMODE_MANU Manueller Modus: sämtliche Drc-Modulparameter werden durch stManualV30 bestimmt.
DRC_OPMODE_DRC_GAIN DrcGain-Modus: bestimmte DrcGain-Parameter werden durch stDrcGain, die übrigen durch die entsprechenden Parameter der JSON-Datei bestimmt.
DRC_OPMODE_HILIT HiLit-Modus: bestimmte HiLight-Parameter werden durch stHiLit, die übrigen durch entsprechende Parameter der JSON-Datei bestimmt.
DRC_OPMODE_LOCAL_TMO LocalTMO-Modus: bestimmte LocalData-Parameter werden durch stLocalDataV30, die übrigen durch entsprechende Parameter der JSON-Datei bestimmt.

9.3.5.3 mDrcGain_t

【Beschreibung】 Manuelle DrcGain-Parameter definieren.

【Definition】

 typedef struct mDrcGain_s {
     float DrcGain;
     float Alpha;
     float Clip;
 } mDrcGain_t;

【Felder】

Feldname Beschreibung
DrcGain Manueller DrcGain-Wert, Bereich [1,8], Standard 1, Genauigkeit 0.01.
Alpha Manueller Alpha-Wert, Bereich [0,1], Standard 0.2, Genauigkeit 0.01.
Clip Manueller Clip-Wert, Bereich [0,64], Standard 16, Genauigkeit 0.01.

9.3.5.4 mDrcHiLit_t

【Beschreibung】 Manuelle Drc-HiLit-Parameter definieren.

【Definition】

 typedef struct mDrcHiLit_s {
     float Strength;
 } mDrcHiLit_t;

【Felder】

Feldname Beschreibung
Strength Manuelle Stärke, Bereich [0,1], Standard 0, Genauigkeit 0.01.

9.3.5.5 mLocalDataV21_t

【Beschreibung】 DRC-Local-Parameter für RK356x definieren.

【Definition】

 typedef struct mLocalDataV21_s {
     float LocalWeit;
     float GlobalContrast;
     float LoLitContrast;
 } mLocalDataV21_t;

【Felder】

Feldname Beschreibung
LocalWeit Manueller LocalWeit-Wert im Bereich 0,1, Standard 1, Genauigkeit 0.01.
GlobalContrast Manueller GlobalContrast-Wert, Bereich 0,1, Standard 0, Genauigkeit 0.01.
LoLitContrast Manueller LoLitContrast-Wert im Bereich 0,1, Standard 0, Genauigkeit 0.01.

9.3.5.6 mLocalDataV30_t

【Beschreibung】 DRC-Local-Parameter für RK356x definieren. Der Text nennt auch bei mLocalDataV30_t RK356x; die Abweichung bleibt dokumentiert.

【Definition】

 typedef struct mLocalDataV30_s {
     float         LocalWeit;
     int           LocalAutoEnable;
     float         LocalAutoWeit;
     float         GlobalContrast;
     float         LoLitContrast;
 } mLocalDataV30_t;

【Felder】

Feldname Beschreibung
LocalWeit Manueller LocalWeit-Wert, Bereich [0,1], Standard 1, Genauigkeit 0.01.
LocalAutoEnable Automatischer LocalWeit-Schalter, Bereich [0,1], Standard 1, Genauigkeit 1.
LocalAutoWeit Automatischer LocalWeit-Wert, Bereich [0,1], Standard 0.4, Genauigkeit 0.01.
GlobalContrast Manueller GlobalContrast-Wert, Bereich [0,1], Standard 0, Genauigkeit 0.01.
LoLitContrast Manueller LoLitContrast-Wert, Bereich [0,1], Standard 0, Genauigkeit 0.01.

9.3.5.7 mDrcLocalV21_t

【Beschreibung】 DRC-Local-Parameter für RK356x definieren.

【Definition】

 typedef struct mDrcLocalV21_s {
     mLocalDataV21_t LocalData;
     float           curPixWeit;
     float           preFrameWeit;
     float           Range_force_sgm;
     float           Range_sgm_cur;
     float           Range_sgm_pre;
     int             Space_sgm_cur;
     int             Space_sgm_pre;
 } mDrcLocalV21_t;

【Felder】

Feldname Beschreibung
LocalData LocalData manuell setzen; die Quellbeschreibung endet nach „to“.
curPixWeit Bilaterales Gewicht des aktuellen Punkts, Bereich [0,1], Standard 0.37, Genauigkeit 0.001.
preFrameWeit Bilaterales Gewicht des vorherigen Frames, Bereich [0,1], Standard 0.8, Genauigkeit 0.001.
Range_force_sgm Kehrwert des bilateralen Wertebereichs-Sigma, Bereich [0,1], Standard 0, Genauigkeit 0.0001.
Range_sgm_cur Laut Quelle Kehrwert des bilateralen räumlichen Sigma des vorherigen Frames, Bereich 0,1, Standard 0.2, Genauigkeit 0.0001. Die Beschreibung „previous frame“ bleibt auch für cur erhalten.
Range_sgm_pre Kehrwert des bilateralen räumlichen Sigma des vorherigen Frames, Bereich [0,1], Standard 0.2, Genauigkeit 0.0001.
Space_sgm_cur Kehrwert des bilateralen Wertebereichs des aktuellen Frames, Bereich [0,4095], Standard 4068, Genauigkeit 1.
Space_sgm_pre Kehrwert des bilateralen Wertebereichs-Sigma des vorherigen Frames, Bereich [0,4095], Standard 3068, Genauigkeit 1.

9.3.5.8 mDrcLocalV30_t

【Beschreibung】 DRC-Local-Parameter für RK3588 definieren.

【Definition】

 typedef struct mDrcLocalV30_s {
     mLocalDataV30_t LocalData;
     float           curPixWeit;
     float           preFrameWeit;
     float           Range_force_sgm;
     float           Range_sgm_cur;
     float           Range_sgm_pre;
     int             Space_sgm_cur;
     int             Space_sgm_pre;
 } mDrcLocalV30_t;

【Felder】

Feldname Beschreibung
LocalData Manuelle LocalData-Einstellungen
curPixWeit Bilaterales Gewicht des aktuellen Punkts, Bereich [0,1], Standard 0.37, Genauigkeit 0.001.
preFrameWeit Bilaterales Gewicht des vorherigen Frames, Bereich [0,1], Standard 0.8, Genauigkeit 0.001.
Range_force_sgm Kehrwert des bilateralen Wertebereichs-Sigma, Bereich [0,1], Standard 0, Genauigkeit 0.0001.
Range_sgm_cur Laut Quelle Kehrwert des bilateralen räumlichen Sigma des vorherigen Frames, Bereich [0,1], Standard 0.2, Genauigkeit 0.0001. Die abweichende cur-Beschreibung ist beibehalten.
Range_sgm_pre Kehrwert des bilateralen räumlichen Sigma des vorherigen Frames, Bereich [0,1], Standard 0.2, Genauigkeit 0.0001.
Space_sgm_cur Kehrwert des bilateralen Wertebereichs-Sigma des aktuellen Frames, Bereich [0,4095], Standard 4068, Genauigkeit 1.
Space_sgm_pre Kehrwert des vorherigen bilateralen Wertebereichs-Sigma, Bereich [0,4095], Standard 3068, Genauigkeit 1.

9.3.5.9 CompressMode_t

【Beschreibung】 Betriebsmodus der DrcCompress-Kurve im manuellen Modus definieren.

【Definition】

 typedef enum CompressMode_s {
     COMPRESS_AUTO   = 0,
     COMPRESS_MANUAL = 1,
 } CompressMode_t;

【Felder】

Feldname Beschreibung
COMPRESS_AUTO Manueller Modus, Compress-Kurve automatisch
COMPRESS_MANUAL Manueller Modus, Compress-Kurve manuell

9.3.5.10 mDrcCompress_t

【Beschreibung】 Manuelle DrcCompress-Parameter definieren.

【Definition】

 typedef struct mDrcCompress_s {
     CompressMode_t Mode;
     uint16_t       Manual_curve[17];
 } mDrcCompress_t;

【Felder】

Feldname Beschreibung
Mode Umschaltfunktion
Manual_curve Manuelle Compress-Kurve im manuellen Modus

9.3.5.11 mdrcAttr_V21_t

【Beschreibung】 Manuelle DRC-Eigenschaften für RK356x definieren.

【Definition】

 typedef struct mdrcAttr_V21_s {
     bool           Enable;
     mDrcGain_t     DrcGain;
     mDrcHiLit_t    HiLight;
     mDrcLocalV21_t LocalSetting;
     mDrcCompress_t CompressSetting;
     int            Scale_y[ADRC_Y_NUM];
     float          Edge_Weit;
     bool           OutPutLongFrame;
     int            IIR_frame;
 } mdrcAttr_V21_t;

【Felder】

Feldname Beschreibung
Enable Manueller DRC-Schalter
DrcGain Manuelle DrcGain-Einstellungen
HiLight Manuelle HiLit-Einstellungen
LocalSetting Manuelle lokale Einstellungen
CompressSetting Einstellungen der Kompressionskurve
Scale_y Skalentabelle zur Verstärkungskorrektur, Bereich [0,2048], Genauigkeit 1.
Edge_Weit Skalenwert der Kantenantwort, Bereich [0,1], Standard 0.02, Genauigkeit 0.01. Verringert Artefakte an kontrastreichen Kanten.
OutPutLongFrame Nur lange Frames ausgeben: 0 aus, 1 ein.
IIR_frame Frameanzahl des IIR-Filters, Bereich [1,1000], Standard 2.

9.3.5.12 mdrcAttr_V30_t

【Beschreibung】 Manuelle DRC-Eigenschaften für RK3588 definieren.

【Definition】

 typedef struct mdrcAttr_V30_s {
     bool           Enable;
     mDrcGain_t     DrcGain;
     mDrcHiLit_t    HiLight;
     mDrcLocalV30_t LocalSetting;
     mDrcCompress_t CompressSetting;
     int            Scale_y[ADRC_Y_NUM];
     float          Edge_Weit;
     bool           OutPutLongFrame;
     int            IIR_frame;
 } mdrcAttr_V30_t;

【Felder】

Feldname Beschreibung
Enable Manueller DRC-Schalter
DrcGain Manuelle DrcGain-Einstellungen
HiLight Manuelle HiLit-Einstellungen
LocalSetting Manuelle lokale Einstellungen
CompressSetting Einstellungen der Kompressionskurve
Scale_y Skalentabelle zur Verstärkungskorrektur, Bereich [0,2048], Genauigkeit 1.
Edge_Weit Skalenwert der Kantenantwort, Bereich [0,1], Standard 0.02, Genauigkeit 0.01. Verringert Artefakte an kontrastreichen Kanten.
OutPutLongFrame Nur lange Frames ausgeben: 0 aus, 1 ein.
IIR_frame Frameanzahl des IIR-Filters, Bereich [1,1000], Standard 2.

9.3.5.13 DrcInfo_t

【Beschreibung】 DRC-Steuerparameter definieren.

【Definition】

 typedef struct DrcInfo_s {
     float EnvLv;
     float ISO;
 } DrcInfo_t;

【Felder】

Feldname Beschreibung
EnvLv Aktuelle Umgebungshelligkeit
ISO Aktueller ISO-Wert

9.3.5.14 drcAttr_t

【Beschreibung】 DRC-Eigenschaften definieren.

【Definition】

 typedef struct drcAttr_s {
     rk_aiq_uapi_sync_t sync;
     AdrcVersion_t      Version;
     drc_OpMode_t       opMode;
     mdrcAttr_V21_t     stManualV21;
     mdrcAttr_V30_t     stManualV30;
     mDrcGain_t         stDrcGain;
     mDrcHiLit_t        stHiLit;
     mLocalDataV21_t    stLocalDataV21;
     mLocalDataV30_t    stLocalDataV30;
     DrcInfo_t          Info;
 } drcAttr_t;

【Felder】

Feldname Beschreibung
sync Für die Definition von rk_aiq_uapi_sync_t siehe Überblick/API-Beschreibung.
Version Versionsinformation
opMode API-Modus
stManualV21 Manuelle DRC-Eigenschaften für RK356x; wirksam bei opMode = DRC_OPMODE_MANU.
stManualV30 Manuelle DRC-Eigenschaften für RK3588; wirksam bei opMode = DRC_OPMODE_MANU.
stDrcGain DrcGain-Eigenschaften; wirksam bei opMode = DRC_OPMODE_DRC_GAIN.
stHiLit Die Quelle schreibt „Hillitt attribute“ und nennt „Optmod is Dirk_Optmod_Hillit“. Diese abweichenden Bezeichner bleiben als ungeklärte Quellangabe erhalten.
stLocalDataV21 LocalData-Eigenschaften für RK356x; wirksam bei opMode = DRC_OPMODE_LOCAL_TMO.
stLocalDataV30 LocalData-Eigenschaften für RK3588; wirksam bei opMode = DRC_OPMODE_LOCAL_TMO.
Info Informationen zu Steuerparametern

9.4 Rauschminderung

9.4.1 Funktionsbeschreibung

Bildrauschen sind unnötige oder unerwünschte Störinformationen in Bilddaten. Bildentrauschung reduziert dieses Rauschen in digitalen Bildern.

9.4.2 Funktionsbezogene API-Referenz

9.4.2.1 rk_aiq_uapi2_setNRMode

【Beschreibung】 Entrauschungsmodus einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsmodus Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.2 rk_aiq_uapi2_getNRMode

【Beschreibung】 Aktuellen Entrauschungsmodus abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t* mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsmodus Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.3 rk_aiq_uapi2_setANRStrth

【Beschreibung】 Allgemeine Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int
 level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.4 rk_aiq_uapi2_getANRStrth

【Beschreibung】 Allgemeine Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int*
 level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.5 rk_aiq_uapi2_setMSpaNRStrth

【Beschreibung】 Räumliche Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on,
 unsigned int level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Eingabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.6 rk_aiq_uapi2_getMSpaNRStrth

【Beschreibung】 Räumliche Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on,
 unsigned int *level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Ausgabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.7 rk_aiq_uapi2_setMTNRStrth

【Beschreibung】 Zeitliche Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on,
 unsigned int level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Eingabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.2.8 rk_aiq_uapi2_getMTNRStrth

【Beschreibung】 Zeitliche Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on,
 unsigned int *level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Schalter Ausgabe
level Entrauschungsstärke, Bereich 0.0-100.0, Standard 50. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.4.3 Modulbezogene API-Referenz

9.4.3.1 rk_aiq_user_api2_abayer2dnrV2_SetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayer2dnrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayer2dnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayer2dnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.2 rk_aiq_user_api2_abayer2dnrV2_GetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayer2dnrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayer2dnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayer2dnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.3 rk_aiq_user_api2_abayer2dnrV2_SetStrength

【Beschreibung】 Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayer2dnrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayer2dnr_strength_v2_t *pStrength)

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Struktur der Entrauschungsstärke; percent hat den Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayer2dnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.4 rk_aiq_user_api2_abayer2dnrV2_GetStrength

【Beschreibung】 Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayer2dnrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayer2dnr_strength_v2_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pPercnt Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayer2dnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.5 rk_aiq_user_api2_abayertnrV2_SetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayertnrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayertnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayertnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.6 rk_aiq_user_api2_abayertnrV2_GetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayertnrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayertnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayertnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.7 rk_aiq_user_api2_abayertnrV2_SetStrength

【Beschreibung】 Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayertnrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayertnr_strength_v2_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayertnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.8 rk_aiq_user_api2_abayertnrV2_GetStrength

【Beschreibung】 Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_abayertnrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_bayertnr_strength_v2_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_abayertnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.9 rk_aiq_user_api2_aynrV3_SetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aynrV3_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ynr_attrib_v3_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_aynr_v3.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.10 rk_aiq_user_api2_aynrV3_GetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aynrV3_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ynr_attrib_v3_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_aynr_v3.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.11 rk_aiq_user_api2_aynrV3_SetStrength

【Beschreibung】 Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aynrV3_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ynr_strength_v3_t* pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_aynr_v3.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.12 rk_aiq_user_api2_aynrV3_GetStrength

【Beschreibung】 Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aynrV3_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ynr_strength_v3_t* pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_aynr_v3.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.13 rk_aiq_user_api2_acnrV2_SetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_acnrV2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_cnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_acnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.14 rk_aiq_user_api2_acnrV2_GetAttrib

【Beschreibung】 Eigenschaften des Entrauschungsalgorithmus abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_acnrV2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_cnr_attrib_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Entrauschung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_acnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.15 rk_aiq_user_api2_acnrV2_SetStrength

【Beschreibung】 Entrauschungsstärke einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_acnrV2_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_cnr_strength_v2_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_acnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.3.16 rk_aiq_user_api2_acnrV2_GetStrength

【Beschreibung】 Entrauschungsstärke abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_acnrV2_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_cnr_strength_v2_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Entrauschungsstärkestruktur; Prozentwert im Bereich 0.0-1.0. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_acnr_v2.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.4.4 Datentypen der modulbezogenen APIs

9.4.4.1 rk_aiq_bayer2dnr_attrib_v2_t

【Beschreibung】 Parameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_bayer2dnr_attrib_v2_s {
     rk_aiq_uapi_sync_t sync;
 Abayer2dnr_OPMode_V2_t eMode;
     Abayer2dnr_Auto_Attr_V2_t stAuto;
     Abayer2dnr_Manual_Attr_V2_t stManual;
 } rk_aiq_bayer2dnr_attrib_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
eMode Bayer2DNR-Entrauschungsmodus
stAuto Bayer2DNR-Parameter für den automatischen Modus
stManual Bayer2DNR-Parameter für den manuellen Modus

9.4.4.2 Abayer2dnr_OPMode_V2_t

【Beschreibung】 Modus des Entrauschungsmoduls definieren.

【Definition】

 typedef enum Abayer2dnr_OPMode_V2_e {
     ABAYER2DNR_OP_MODE_INVALID           = 0,
     ABAYER2DNR_OP_MODE_AUTO              = 1,
     ABAYER2DNR_OP_MODE_MANUAL            = 2,
     ABAYER2DNR_OP_MODE_REG_MANUAL        = 3,
     ABAYER2DNR_OP_MODE_MAX
 } Abayer2dnr_OPMode_V2_t;

【Felder】

Feldname Beschreibung
ABAYER2DNR_OP_MODE_INVALID Ungültiger Modus des Bayer-2DNR-Entrauschungsmoduls
ABAYER2DNR_OP_MODE_AUTO Automatischer Modus des Bayer-2DNR-Entrauschungsmoduls
ABAYER2DNR_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des Bayer-2DNR-Entrauschungsmoduls
ABAYER2DNR_OP_MODE_REG_MANUAL Registereinstellungen für den manuellen Modus des Bayer-2DNR-Entrauschungsmoduls
ABAYER2DNR_OP_MODE_MAX Maximalwert der Bayer-2DNR-Modi; ungültiger Modus.

9.4.4.3 Abayer2dnr_Auto_Attr_V2_t

【Beschreibung】 Automatische Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Abayer2dnr_Auto_Attr_V2_s
 {
     RK_Bayer2dnr_Params_V2_t st2DParams;
     RK_Bayer2dnr_Params_V2_Select_t st2DSelect;
 } Abayer2dnr_Auto_Attr_V2_t;

【Felder】

Feldname Beschreibung
st2DParams Algorithmusparameter des Bayer2DNR-Moduls für jede ISO-Stufe
st2DSelect Vom bayer2dnr-Modul berechnete Eigenschaftsparameter

9.4.4.4 Abayer2dnr_Manual_Attr_V2_t

【Beschreibung】 Manuelle Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Abayer2dnr_Manual_Attr_V2_s
 {
     RK_Bayer2dnr_Params_V2_Select_t st2DSelect;
     RK_Bayer2dnr_Fix_V2_t st2Dfix;
 } Abayer2dnr_Manual_Attr_V2_t;

【Felder】

Feldname Beschreibung
st2DSelect Parameterwerte des Bayer2DNR-Algorithmus
st2Dfix Bayer2DNR-Registerwerte im manuellen Modus

9.4.4.5 RK_Bayer2dnr_Params_V2_t

【Beschreibung】 Automatikmodus und ISO-abhängige Algorithmusparameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct RK_Bayer2dnr_Params_V2_s
 {
     int enable;
     float iso[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     int   lumapoint[16];
     int   sigma[RK_BAYER2DNR_V2_MAX_ISO_NUM][16];
     float filter_strength[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     float edgesofts[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     float ratio[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     float weight[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     int   gauss_guide[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     int pix_diff[RK_BAYER2DNR_V2_MAX_ISO_NUM];
     int diff_thld[RK_BAYER2DNR_V2_MAX_ISO_NUM];
 } RK_Bayer2dnr_Params_V2_t;

【Felder】

Feldname Parametertyp Beschreibung
enable Abstimmparameter Modulschalter: 1 ein, 0 aus.
ISO Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen Abstimmparametern. Derzeit werden nur 13 Stufen unterstützt.
lumapoint Kalibrierdaten Unterschiedlichen Pixelhelligkeiten zugeordnete Punkte der Rausch-Sigma-Kurve, insgesamt 16 Punkte.
sigma Kalibrierdaten Unterschiedlichen Pixelhelligkeiten zugeordnete Punkte der Rausch-Sigma-Kurve, insgesamt 16 Punkte.
gauss_guide Abstimmparameter Gauß-Führung aktivieren: 1 ein, 0 aus.
filter_strength Abstimmparameter Entrauschungsstärke, Bereich [0, 16]. Größere Werte verstärken die Entrauschung.
edgesofts Abstimmparameter Beeinflusst die räumlichen Gewichte. Bereich 1 bis 16, Standard 1.
ratio Abstimmparameter Gewicht der weichen Schwelle, Bereich 0, 1.0. Kleinere Werte verstärken die Entrauschung.
weight Abstimmparameter Größere Filterausgangsgewichte verstärken die Entrauschung.
pix_diff Abstimmparameter Pixeldifferenzschwelle im 5x5-Fenster für bilaterale Filterung; Standard 0x3fff.
diff_thld Abstimmparameter Schwelle der quadrierten Differenz zur Berechnung euklidischer Abstände für die bilaterale Filterung: 0x3ff.

9.4.4.6 RK_Bayer2dnr_Params_V2_Select_t

【Beschreibung】 Algorithmuseigenschaften des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_Bayer2dnr_Params_V2_Select_s
 {
     int enable;
     int lumapoint[16];
     int sigma[16];
     float filter_strength;
     float edgesofts;
     float ratio;
     float weight;
     int gauss_guide;
     int pix_diff;
     int diff_thld;
 } RK_Bayer2dnr_Params_V2_Select_t;

【Felder】

Feldname Parametertyp Beschreibung
enable Abstimmparameter Modulschalter: 1 ein, 0 aus.
lumapoint Kalibrierdaten Unterschiedlichen Pixelhelligkeiten zugeordnete Punkte der Rausch-SIGMA-Kurve, insgesamt 16 Punkte.
sigma Kalibrierdaten Unterschiedlichen Pixelhelligkeiten zugeordnete Punkte der Rausch-SIGMA-Kurve, insgesamt 16 Punkte.
gauss_guide Abstimmparameter Gauß-Führung aktivieren: 1 ein, 0 aus.
filter_strength Abstimmparameter Entrauschungsstärke, Bereich [0, 16]. Größere Werte verstärken die Entrauschung.
edgesofts Abstimmparameter Beeinflusst räumliche Gewichte, Bereich [1, 16], Standard 1.
ratio Abstimmparameter Gewicht der weichen Schwelle, Bereich [0, 1.0]. Kleinere Werte verstärken die Entrauschung.
weight Abstimmparameter Größere Filterausgangsgewichte verstärken die Entrauschung.
pix_diff Abstimmparameter Pixeldifferenzschwelle im 5x5-Fenster für bilaterale Filterung; Standard 0x3fff.
diff_thld Abstimmparameter Schwelle der quadrierten Differenz zur Berechnung euklidischer Abstände für die bilaterale Filterung: 0x3ff.

9.4.4.7 RK_Bayer2dnr_Fix_V2_t

【Beschreibung】 Registerkonfiguration des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_Bayer2dnr_Fix_V2_s {
     //ISP_BAYNR_3A00_CTRL
     uint8_t baynr_lg2_mode;
     uint8_t baynr_gauss_en;
     uint8_t baynr_log_bypass;
     uint8_t baynr_en;
     // ISP_BAYNR_3A00_DGAIN0-2
     uint16_t baynr_dgain[3];
     // ISP_BAYNR_3A00_PIXDIFF
     uint16_t baynr_pix_diff;
     // ISP_BAYNR_3A00_THLD
     uint16_t baynr_diff_thld;
     uint16_t baynr_softthld;
     // ISP_BAYNR_3A00_W1_STRENG
     uint16_t bltflt_streng;
     uint16_t baynr_reg_w1;
     // ISP_BAYNR_3A00_SIGMAX0-15
     uint16_t sigma_x[16];
     // ISP_BAYNR_3A00_SIGMAY0-15
     uint16_t sigma_y[16];
     // ISP_BAYNR_3A00_WRIT_D
     uint16_t weit_d[3];
     uint16_t lg2_lgoff;
     uint16_t lg2_off;
     uint32_t dat_max;
 } RK_Bayer2dnr_Fix_V2_t;
 } RK_Bayer2dnr_Fix_V23_t;

【Felder】

Parameter Bitbreite Parameterbeschreibung
baynr_gauss_en 1 Gauß-geführte 3x3-Filterung: 1 ein, 0 aus; Standard 0.
baynr_log_bypass 1 Steuerbit der Log-Transformation; innerhalb der HDR-Hardware zwangsweise ausgeschaltet. 1: Log-Bypass ein, also Log-Transformation aus; 0: Bypass aus, Transformation ein. Standard 0.
baynr_en 1 Bayer-Entrauschung aktivieren: 1 ein, 0 aus; Standard 0.
baynr_dgain 18 Im HDR-Modus der Verstärkung dreier Frames entsprechender Parameter mit 10bit Nachkommanteil.
baynr_pix_diff 14 Pixeldifferenzschwelle im 5x5-Fenster für bilaterale Filterung; Standard 0x3fff.
baynr_diff_thld 10 Schwelle der quadrierten Differenz zur Berechnung euklidischer Abstände bei bilateraler Filterung; Standard 0x3ff.
baynr_softthld 10 Gewicht der weichen Schwelle: je größer der Wert, desto größer die Schwelle und desto mehr Rauschen bleibt erhalten. 10 Nachkommabits, Standard 0xa.
bltflt_streng 12 Stärke der bilateralen Entrauschung, 8bit Nachkommanteil; Standard 0xa3.
baynr_reg_w1 10 Filterausgangsgewicht: größere Werte verwenden mehr gefilterte Ausgabe, kleinere mehr Originaldaten. 10bit Nachkommanteil; Standard 0x3ff.
sigma_x 16 16 Helligkeitsstufen der Rauschkurve; so konfigurieren, dass die Interpolation zweier Werte laut Quelle einer Potenz von 2 entspricht.
sigma_y 16 16 Rausch-Sigma-Stufen der Rauschkurve; Parameter werden kalibriert.
weit_d 10 Räumliche Gewichte verschiedener Positionen, 10bit Nachkommanteil; Standardwerte 0x178, 0x249, 0x31d.

9.4.4.8 rk_aiq_bayer2dnr_strength_v2_t

【Beschreibung】 Struktur zur Entrauschungsstärke definieren.

【Definition】

 typedef struct rk_aiq_bayer2dnr_strength_v2_s {
     rk_aiq_uapi_sync_t sync;
     float percent;
 } rk_aiq_bayer2dnr_strength_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
percent Entrauschungsstärke, Bereich 0.0-1.0.

9.4.4.9 rk_aiq_bayertnr_attrib_v2_t

【Beschreibung】 Parameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_bayertnr_attrib_v2_s {
     rk_aiq_uapi_sync_t sync;
     Abayertnr_OPMode_V2_t eMode;
     Abayertnr_Auto_Attr_V2_t stAuto;
     Abayertnr_Manual_Attr_V2_t stManual;
 } rk_aiq_bayertnr_attrib_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
eMode Bayertnr-Entrauschungsmodus
stAuto Bayertnr-Parameter für den automatischen Modus
stManual Bayertnr-Parameter für den manuellen Modus

9.4.4.10 Abayertnr_OPMode_V2_t

【Beschreibung】 Modus des Entrauschungsmoduls definieren.

【Definition】

 typedef enum Abayertnr_OPMode_V2_e {
     ABAYERTNRV2_OP_MODE_INVALID           = 0,
     ABAYERTNRV2_OP_MODE_AUTO              = 1,
     ABAYERTNRV2_OP_MODE_MANUAL            = 2,
     ABAYERTNRV2_OP_MODE_REG_MANUAL        = 3,
     ABAYERTNRV2_OP_MODE_MAX
 } Abayertnr_OPMode_V2_t;

【Felder】

Feldname Beschreibung
ABAYERTNRV2_OP_MODE_INVALID Ungültiger Modus des Bayer-TNR-Entrauschungsmoduls
ABAYERTNRV2_OP_MODE_AUTO Automatischer Modus des Bayer-TNR-Entrauschungsmoduls
ABAYERTNRV2_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des Bayer-TNR-Entrauschungsmoduls
ABAYERTNRV2_OP_MODE_MAX Maximalwert der Bayer-TNR-Modi; ungültiger Modus.

9.4.4.11 Abayertnr_Auto_Attr_V2_t

【Beschreibung】 Automatische Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Abayertnr_Auto_Attr_V2_s
 {
     int bayernr3DEn;
     RK_Bayertnr_Params_V2_t st3DParams;
     RK_Bayertnr_Params_V2_Select_t st3DSelect;
 } Abayertnr_Auto_Attr_V2_t;

【Felder】

Feldname Beschreibung
bayernr3DEn Bayer3dnr-Modulschalter
st3DParams Algorithmusparameter je ISO-Stufe im automatischen Bayer3DNR-Modus
st3DSelect Vom bayer3dnr-Modul berechnete Eigenschaftsparameter

9.4.4.12 Abayertnr_Manual_Attr_V23_t

【Beschreibung】 Manuelle Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Abayertnr_Manual_Attr_V2_s
 {
     int bayernr3DEn;
     RK_Bayertnr_Params_V2_Select_t st3DSelect;
     RK_Bayertnr_Fix_V2_t st3DFix;
 } Abayertnr_Manual_Attr_V2_t;

【Felder】

Feldname Beschreibung
bayernr3DEn Bayer3dnr-Modulschalter
st3DSelect Algorithmusparameterwerte im manuellen Bayer3DNR-Modus
st3Dfix Bayer3DNR-Registerwerte im manuellen Modus

9.4.4.13 RK_Bayertnr_Params_V2_t

【Beschreibung】 Automatikmodus und ISO-abhängige Algorithmusparameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct RK_Bayertnr_Params_V2_s
 {
     int enable;
     float iso[RK_BAYERNR_V2_MAX_ISO_NUM];
     //calib
     int   lumapoint[16];
     int   sigma[RK_BAYERNR_V2_MAX_ISO_NUM][16];
     int   lumapoint2[16];
     int   lo_sigma[RK_BAYERNR_V2_MAX_ISO_NUM][16];
     int   hi_sigma[RK_BAYERNR_V2_MAX_ISO_NUM][16];
     //tuning
     int   thumbds[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   lo_enable[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   hi_enable[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   lo_med_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   lo_gsbay_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   lo_gslum_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   hi_med_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   hi_gslum_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   global_pk_en[RK_BAYERNR_V2_MAX_ISO_NUM];
     int   global_pksq[RK_BAYERNR_V2_MAX_ISO_NUM];
     float lo_filter_strength[RK_BAYERNR_V2_MAX_ISO_NUM];
     float hi_filter_strength[RK_BAYERNR_V2_MAX_ISO_NUM];
     float soft_threshold_ratio[RK_BAYERNR_V2_MAX_ISO_NUM];
     float hi_wgt_comp[RK_BAYERNR_V2_MAX_ISO_NUM];
     float clipwgt[RK_BAYERNR_V2_MAX_ISO_NUM];
     float hidif_th[RK_BAYERNR_V2_MAX_ISO_NUM];
 } RK_Bayertnr_Params_V2_t;

【Felder】

Feldname Parametertyp Beschreibung
Enable Abstimmparameter Modul aktivieren
iso Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen Abstimmparametern; derzeit nur 13.
lumapoint / sigma Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. Lumapoint bezeichnet die Pixelhelligkeit, sigma den Rauschkurvenwert.
lumapoint2 /
lo_sigma
Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. Lumapoint2 bezeichnet die Pixelhelligkeit, lo_sigma den Rauschkurvenwert.
lumapoint2 /
hi_sigma
Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. lumapoint2 bezeichnet die Pixelhelligkeit, hi_sigma den Rauschkurvenwert.
thumbds Abstimmparameter Unterabtastungsmaßstab
lo_enable Abstimmparameter Niederfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
hi_enable Abstimmparameter Hochfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
lo_med_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gsbay_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gslum_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_med_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_gslum_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
global_pk_en Abstimmparameter Globalen PK zur zeitlichen Entrauschung verwenden: 1 ja, 0 nein. Derzeit nur 0.
Feldname Parametertyp Beschreibung
global_pksq Abstimmparameter Quadrat des globalen pk, verwendet bei global_pk_en = 1. Standard 1024, Bereich [0, 268435455].
lo_filter_strength Abstimmparameter Stärke der hochfrequenten Bewegungserkennung laut Quelle; beeinflusst Hi Sigma und dadurch die zeitliche Entrauschungsstärke. Standard 1, Bereich [0.0, 16.0]. Die Hochfrequenzbeschreibung bleibt auch für lo_filter_strength erhalten.
hi_filter_strength Abstimmparameter Stärke der hochfrequenten Bewegungserkennung; beeinflusst Hi Sigma und dadurch die zeitliche Entrauschungsstärke. Standard 1, Bereich [0.0, 16.0].
soft_threshold_ratio Abstimmparameter Gewicht der weichen Schwelle: größere Werte lassen mehr Rauschen erhalten. Bereich laut Quelle [0.0 1.0], Standard 0.
hi_wgt_comp Abstimmparameter Verhältnis der Gewichtskompensation beim Überlagern; nur bei aktivierter Hochfrequenz wirksam. Standard 0.16, Bereich [0.0, 1.0].
clipwgt Abstimmparameter Gewichtsgrenze der Bildüberlagerung. Standard 0.03215, Bereich [0.0, 1.0].
hidif_th Abstimmparameter Hochfrequenz-Differenzschwelle. Standard 32767, Bereich [0, 65535].

9.4.4.14 RK_Bayertnr_Params_V2_Select_t

【Beschreibung】 Struktur der Algorithmuseigenschaften im manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_Bayertnr_Params_V2_Select_s
 {
     int enable;
     //calib
     int lumapoint[16];
     int sigma[16];
     int lumapoint2[16];
     int lo_sigma[16];
     int hi_sigma[16];
     //tuning
     int thumbds;
     int lo_enable;
     int hi_enable;
     int lo_med_en;
     int lo_gsbay_en;
     int lo_gslum_en;
     int hi_med_en;
     int hi_gslum_en;
     int global_pk_en;
     int global_pksq;
     float lo_filter_strength;
     float hi_filter_strength;
     float soft_threshold_ratio;
     float clipwgt;
     float hi_wgt_comp;
     float hidif_th;
 } RK_Bayertnr_Params_V2_Select_t;

【Felder】

Feldname Parametertyp Beschreibung
Enable Abstimmparameter Modul aktivieren
lumapoint / sigma Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. Lumapoint bezeichnet die Pixelhelligkeit, sigma den Rauschkurvenwert.
lumapoint2 /
lo_sigma
Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. Lumapoint2 bezeichnet die Pixelhelligkeit, lo_sigma den Rauschkurvenwert.
lumapoint2 /
hi_sigma
Kalibrierparameter Rauschkurvenwerte für verschiedene Helligkeiten, insgesamt 16 Punkte. Lumapoint2 bezeichnet die Pixelhelligkeit, hi_sigma den Rauschkurvenwert.
thumbds Abstimmparameter Unterabtastungsverhältnis
lo_enable Abstimmparameter Niederfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
hi_enable Abstimmparameter Hochfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
lo_med_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gsbay_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gslum_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_med_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_gslum_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
global_pk_en Abstimmparameter Globalen PK zur zeitlichen Entrauschung verwenden: 1 ja, 0 nein. Derzeit nur 0.
global_pksq Abstimmparameter Quadrat des globalen pk, verwendet bei global_pk_en = 1. Standard 1024, Bereich [0, 268435455].
Feldname Parametertyp Beschreibung
lo_filter_strength Abstimmparameter Laut Quelle Stärke der hochfrequenten Bewegungserkennung; beeinflusst Hi Sigma und damit die zeitliche Entrauschung. Standard 1, Bereich [0.0, 16.0]. Die abweichende lo-Beschreibung bleibt erhalten.
hi_filter_strength Abstimmparameter Stärke der hochfrequenten Bewegungserkennung; beeinflusst Hi Sigma und damit die zeitliche Entrauschung. Standard 1, Bereich [0.0, 16.0].
soft_threshold_ratio Abstimmparameter Gewicht der weichen Schwelle: je größer der Wert, desto mehr Rauschen bleibt erhalten. Bereich laut Quelle [0.0 1.0], Standard 0.
hi_wgt_comp Abstimmparameter Verhältnis der Gewichtskompensation beim Überlagern; nur bei aktivierter Hochfrequenz wirksam. Standard 0.16, Bereich [0.0, 1.0].
clipwgt Abstimmparameter Gewichtsgrenze der Bildüberlagerung. Standard 0.03215, Bereich laut Quelle 0.0, 1.0.
hidif_th Abstimmparameter Hochfrequenz-Differenzschwelle. Standard 32767, Bereich laut Quelle 0, 65535.

9.4.4.15 RK_Bayertnr_Params_V23_Select_t

【Beschreibung】 Struktur der Algorithmuseigenschaften im manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_Bayertnr_Params_V23_Select_s
 {
     int enable;
     //calib
     int lumapoint[16];
     int sigma[16];
     int lumapoint2[16];
     int lo_sigma[16];
     int hi_sigma[16];
     //tuning
     int thumbds_w;
     int thumbds_h;
     int lo_enable;
     int hi_enable;
     int lo_med_en;
     int lo_gsbay_en;
     int lo_gslum_en;
     int hi_med_en;
     int hi_gslum_en;
     int trans_en;
     int wgt_use_mode;
     int wgt_mge_mode;
     int hi_guass;
     int kl_guass;
     bool global_pk_en;
     int global_pksq;
     float lo_filter_strength;
     float hi_filter_strength;
     float soft_threshold_ratio;
     float lo_clipwgt;
     float hi_wgt_comp;
     int   hidif_th;
     float lo_filter_rat0;
     int   lo_filter_thed0;
     int hi_filter_abs_ctrl;
     int hi_filter_filt_bay;
     int hi_filter_filt_avg;
     int hi_filter_filt_mode;
     float hi_filter_rat0;
     int   hi_filter_thed0;
     float hi_filter_rat1;
     int   hi_filter_thed1;
     int   guass_guide_coeff0;
     int   guass_guide_coeff1;
     int   guass_guide_coeff2;
     int   guass_guide_coeff3;
 } RK_Bayertnr_Params_V23_Select_t;

【Felder】

Feldname Parametertyp Beschreibung
Enable Abstimmparameter Modul aktivieren
lumapoint / sigma Kalibrierparameter Rauschkurvenwerte für unterschiedliche Helligkeiten, insgesamt 16 Punkte. LumaPoint bezeichnet die Pixelhelligkeit, Sigma den Rauschkurvenwert.
lumapoint2 /
lo_sigma
Kalibrierparameter Rauschkurvenwerte für unterschiedliche Helligkeiten, insgesamt 16 Punkte. lumapoint2 bezeichnet die Pixelhelligkeit, lo_sigma den Rauschkurvenwert.
lumapoint2 /
hi_sigma
Kalibrierparameter Rauschkurvenwerte für unterschiedliche Helligkeiten, insgesamt 16 Punkte. lumapoint2 bezeichnet die Pixelhelligkeit, hi_sigma den Rauschkurvenwert.
thumbds_w
thumbds_h
Abstimmparameter Unterabtastungsverhältnis: derzeit nur 4x4, 8x4 und 8x8; Standardmodus 8x4.
lo_enable Abstimmparameter Niederfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
hi_enable Abstimmparameter Hochfrequente Bewegungserkennung: 1 ein, 0 aus; standardmäßig ein.
lo_med_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gsbay_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
lo_gslum_en Abstimmparameter Interner niederfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_med_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
hi_gslum_en Abstimmparameter Interner hochfrequenter Untermodulschalter: 1 ein, 0 aus; standardmäßig ein.
global_pk_en Abstimmparameter Globalen PK für zeitliche Entrauschung verwenden: 1 ja, 0 nein. Derzeit nur 0.
global_pksq Abstimmparameter Quadrat des globalen pk; nur bei global_pk_en = 1 verwendet. Standard 1024, Bereich [0, 268435455].
Feldname Parametertyp Beschreibung
lo_filter_strength Abstimmparameter Laut Quelle Stärke der hochfrequenten Bewegungserkennung; beeinflusst HI Sigma und dadurch die zeitliche Entrauschung. Standard 1, Bereich [0.0, 16.0]. Die Beschreibung für lo bleibt erhalten.
hi_filter_strength Abstimmparameter Stärke der hochfrequenten Bewegungserkennung; beeinflusst HI Sigma und dadurch die zeitliche Entrauschung. Standard 1, Bereich [0.0, 16.0].
soft_threshold_ratio Abstimmparameter Gewicht der weichen Schwelle: größere Werte lassen mehr Rauschen erhalten. Bereich laut Quelle [0.0 1.0], Standard 0.
hi_wgt_comp Abstimmparameter Verhältnis der ergänzenden Überlagerungsgewichtung; nur bei eingeschalteter Hochfrequenz wirksam. Standard 0.16, Bereich [0.0, 1.0].
lo_clipwgt Abstimmparameter Gewichtsgrenze der Bildüberlagerung. Standard 0.03215, Bereich [0.0, 1.0].
hidif_th Abstimmparameter Hochfrequenz-Differenzschwelle. Standard 32767, Bereich [0, 65535].
trans_en Abstimmparameter Bandbreiteneinsparung: 0 aus, 1 ein. Im linearen Modus einstellbar; im HDR-Modus wird 0 empfohlen.
wgt_use_mode Abstimmparameter Optimierung bei der Gewichtsfusion: 0 aus, 1 ein.
wgt_mge_mode Abstimmparameter Optimierung der hochfrequenten Gewichtsberechnung: 0 aus, 1 ein.
hi_guass Abstimmparameter Datenquelle für hochfrequentes SIGMA: 0 ungefilterte Originaldaten, 1 gefilterte Daten.
kl_guass Abstimmparameter Datenquelle für PK-Sigma-Suche: 0 ungefilterte Originaldaten, 1 gefilterte Daten.
lo_filter_rat0 Abstimmparameter Bei der Gewichtsberechnung der niederfrequenten Bewegungserkennung von der Differenz abzuziehender Datenanteil. Bereich [0.0, 16.0], Standard 1.
lo_filter_thed0 Abstimmparameter Bei der Gewichtsberechnung der niederfrequenten Bewegungserkennung von der Differenz abzuziehender Datenversatz. Bereich [0, 4095], Standard 0.
Feldname Parametertyp Beschreibung
hi_filter_rat0 Abstimmparameter Bei Berechnung des ersten hochfrequenten Bewegungsgewichts abzuziehender Datenanteil. Bereich [0.0, 16.0], Standard 1.
hi_filter_thed0 Abstimmparameter Bei Berechnung des ersten hochfrequenten Bewegungsgewichts von der Differenz abzuziehender Datenversatz. Bereich [0, 4095], Standard 256.
hi_filter_rat1 Abstimmparameter Bei Berechnung des zweiten hochfrequenten Bewegungsgewichts von der Differenz abzuziehender Datenanteil. Bereich [0.0, 16.0], Standard 1.
hi_filter_thed1 Abstimmparameter Bei Berechnung des zweiten hochfrequenten Bewegungsgewichts von der Differenz abzuziehender Datenversatz. Bereich [0, 4095], Standard 1024.
hi_filter_abs_ctrl Abstimmparameter Position der Absolutwertbildung bei der hochfrequenten Gewichtsberechnung: 0 Differenz→Median→Gauß→abs; 1 Differenz→Median→abs→Gauß. Standard 0.
hi_filter_filt_bay Abstimmparameter Gauß-Filterung bei hochfrequenter Gewichtsberechnung: 1 berechnet die 4 Bayer-Kanäle separat mit 3x3-Gauß; 0 berechnet sie nicht separat und verwendet 5x7-Gauß. Standard 0.
hi_filter_filt_avg Abstimmparameter 5x5-Filterung bei hochfrequenter Gewichtsberechnung: 0 aus, 1 ein; Standard 0.
hi_filter_filt_mode Abstimmparameter Filtermodus für die hochfrequente Gewichtsberechnung, Bereich [0, 4], Standard 4.
guass_guide_coeff0 Abstimmparameter Gauß-Filteroperatoren, Bereich [0, 64], Standardwerte 16,8,16,8.

9.4.4.16 RK_Bayertnr_Fix_V2_t

【Beschreibung】 Registerkonfiguration des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_Bayertnr_Fix_V2_s {
     // BAY3D_BAY3D_CTRL 0x2c00
     uint8_t bay3d_exp_sel;
     uint8_t bay3d_soft_st;
     uint8_t bay3d_soft_mode;
     uint8_t bay3d_bwsaving_en;
     uint8_t bay3d_loswitch_protect;
     uint8_t bay3d_glbpk_en;
     uint8_t bay3d_logaus3_bypass_en;
     uint8_t bay3d_logaus5_bypass_en;
     uint8_t bay3d_lomed_bypass_en;
     uint8_t bay3d_hichnsplit_en;
     uint8_t bay3d_hiabs_pssel;
     uint8_t bay3d_higaus_bypass_en;
     uint8_t bay3d_himed_bypass_en;
     uint8_t bay3d_lobypass_en;
     uint8_t bay3d_hibypass_en;
     uint8_t bay3d_bypass_en;
     uint8_t bay3d_en_i;
     // BAY3D_BAY3D_KALRATIO 0x2c04
     uint16_t bay3d_softwgt;
     uint16_t bay3d_hidif_th;
     // BAY3D_BAY3D_GLBPK2 0x2c08
     uint32_t bay3d_glbpk2;
     // BAY3D_BAY3D_WGTLMT 0x2c10
     uint16_t bay3d_wgtlmt;
     uint16_t bay3d_wgtratio;
     // BAY3D_BAY3D_SIG_X0  0x2c14 - 0x2c30
     uint16_t bay3d_sig0_x[16];
     // BAY3D_BAY3D_SIG0_Y0 0x2c34 - 0x2c50
     uint16_t bay3d_sig0_y[16];
     // BAY3D_BAY3D_SIG_X0  0x2c54 - 0x2c70
     uint16_t bay3d_sig1_x[16];
     // BAY3D_BAY3D_SIG1_Y0 0x2c74 - 0x2c90
     uint16_t bay3d_sig1_y[16];
     // BAY3D_BAY3D_SIG2_Y0 0x2c94 - 0x2cb0
     uint16_t bay3d_sig2_y[16];
     //BAY3D_BAY3D_LODIF_STAT0 0x2cb4 -0x2cb8
     uint64_t ro_sum_lodif;
     //BAY3D_BAY3D_LODIF_STAT0 0x2cbc -0x2cc0
     uint64_t ro_sum_hidif0;
     //BAY3D_BAY3D_MI_ST 0x2CC8
     uint8_t sw_bay3dmi_st_linemode;
     uint8_t sw_bay3d_mi2cur_linecnt;
 } RK_Bayertnr_Fix_V2_t;

【Felder】

Parameter Bitbreite Parameterbeschreibung
bay3d_soft_st 1 Startimpulsbit des Softwaremodus; beim Einschalten 1 schreiben.
bay3d_soft_mode 1 Softwaremodus: 1 ein, 0 aus; Standard 0x0.
bay3d_bwsaving_en 1 Bandbreitenoptimierung aktivieren, nur ohne HDR wirksam: 1 ein, 0 aus; Standard 0x0.
bay3d_loswitch_protect 1 Derzeit nicht unterstützt.
bay3d_glbpk_en 1 Globalen pk für zeitliche Bayer-Entrauschung verwenden: 1 globaler pk, 0 lokaler pk; Standard 1.
bay3d_logaus3_bypass_en 1 Niederfrequente Gauß-Filterung im nachgeschalteten Helligkeitsbereich: 1 nicht ausführen, 0 ausführen; Standard 0x0.
bay3d_logaus5_bypass_en 1 Niederfrequente Gauß-Filterung im vorgeschalteten Bayer-Bereich: 1 nicht ausführen, 0 ausführen; Standard 0x0.
bay3d_lomed_bypass_en 1 Niederfrequente Medianfilterung: 1 nicht ausführen, 0 ausführen; Standard 0x0.
bay3d_hichnsplit_en 1 Auswahl des Gauß-Filters bei hochfrequenter Erkennung im Bayer- oder Helligkeitsbereich; dieses Bit einschalten, wenn ausschließlich hochfrequente Bewegungserkennung aktiv ist. 1 Bayer-Bereich, 0 Helligkeitsbereich; Standard 0x0.
Parameter Bitbreite Parameterbeschreibung
bay3d_hiabs_pssel 1 Absolutwert vor der Gauß-Filterung bei Hochfrequenzerkennung bilden; dieses Bit einschalten, wenn ausschließlich hochfrequente Bewegungserkennung aktiv ist. 1 ja, 0 nein; Standard 0x0.
bay3d_higaus_bypass_en 1 Hochfrequente Gauß-Filterung: 1 nicht ausführen, 0 ausführen; Standard 0x0.
bay3d_himed_bypass_en 1 Hochfrequente Medianfilterung: 1 nicht ausführen, 0 ausführen; Standard 0x0.
bay3d_lobypass_en 1 Laut Quelle hochfrequente Bewegungserkennung: 1 aus, 0 ein; Standard 0x0. Derzeit keine dynamische Änderung unterstützt; stets Standard 0. Die abweichende lo-Feldbeschreibung bleibt erhalten.
bay3d_hibypass_en 1 Hochfrequente Bewegungserkennung: 1 aus, 0 ein; Standard 0x0.
bay3d_bypass_en 1 Bypass der zeitlichen Bayer-Entrauschung: 1 Bypass ein, bayer3d führt nichts aus; 0 Bypass aus. Standard 0.
bay3d_en_i 1 Zeitliche Bayer-Entrauschung: 1 ein, 0 aus; Standard 0.
bay3d_softwgt 10 Gewicht der weichen Schwelle: größere Werte erhöhen die Schwelle und lassen mehr Rauschen erhalten. 10bit Nachkommanteil, Standard 0x100.
bay3d_hidif_th 16 Schwelle zum Zählen hochfrequenter Differenzwerte; Standard 0xffff.
bay3d_glbpk2 28 Quadrat des globalen pk; laut Quelle nur bei pk_en = 0 verwendet. Standard 0x800.
bay3d_wgtlmt 10 Gewichtsgrenze der Bildüberlagerung, 10 Nachkommastellen laut Quelle; Standard 0x380.
Parameter Bitbreite Parameterbeschreibung
bay3d_wgtratio 10 Verhältnis der ergänzenden Überlagerungsgewichtung; nur bei eingeschalteter Hochfrequenz wirksam. 10 Nachkommastellen laut Quelle, Standard 0x0.
bay3d_sig0_x0-15 16 16 Helligkeitsstufen der Rauschkurve; Differenzen zweier Werte müssen einer Potenz von 2 entsprechen.
bay3d_sig0_y0-15 14 16 Rausch-Sigma-Stufen der Rauschkurve; Parameter werden kalibriert.
bay3d_sig1_x0-15 16 16 Helligkeitsstufen der hoch- und niederfrequenten Rauschkurven; Differenzen zweier Werte müssen einer Potenz von 2 entsprechen.
bay3d_sig1_y0-15 14 16 Rausch-SIGMA-Stufen der hochfrequenten Rauschkurven; Parameter werden kalibriert.
bay3d_sig2_y0-15 14 16 Rausch-Sigma-Stufen der niederfrequenten Rauschkurven; Parameter werden kalibriert.

9.4.4.17 rk_aiq_bayertnr_strength_v2_t

【Beschreibung】 Struktur zur Entrauschungsstärke definieren.

【Definition】

 typedef struct rk_aiq_bayertnr_strength_v2_s {
     rk_aiq_uapi_sync_t sync;
     float percent;
 } rk_aiq_bayertnr_strength_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
percent Entrauschungsstärke, Bereich 0.0-1.0.

9.4.4.18 rk_aiq_ynr_attrib_v3_t

【Beschreibung】 Parameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_ynr_attrib_v3_s {
     rk_aiq_uapi_sync_t sync;
     Aynr_OPMode_V3_t eMode;
     Aynr_Auto_Attr_V3_t stAuto;
     Aynr_Manual_Attr_V3_t stManual;
 } rk_aiq_ynr_attrib_v3_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
eMode Ynr-Entrauschungsmodus
stAuto YNR-Parameter für den automatischen Modus
stManual Ynr-Parameter für den manuellen Modus

9.4.4.19 Aynr_OPMode_V3_t

【Beschreibung】 Modus des Entrauschungsmoduls definieren.

【Definition】

 typedef enum Aynr_OPMode_V3_e {
     AYNRV3_OP_MODE_INVALID           = 0,
     AYNRV3_OP_MODE_AUTO              = 1,
     AYNRV3_OP_MODE_MANUAL            = 2,
     AYNRV3_OP_MODE_REG_MANUAL        = 3,
     AYNRV3_OP_MODE_MAX
 } Aynr_OPMode_V3_t;

【Felder】

Feldname Beschreibung
AYNRV3_OP_MODE_INVALID Ungültiger Modus des Y-Bereich-YNR-Entrauschungsmoduls
AYNRV3_OP_MODE_AUTO Automatischer Modus des Y-Bereich-YNR-Entrauschungsmoduls
AYNRV3_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des Y-Bereich-YNR-Entrauschungsmoduls
AYNRV3_OP_MODE_REG_MANUAL Registereinstellungen für den manuellen Modus des Y-Bereich-YNR-Entrauschungsmoduls
AYNRV3_OP_MODE_MAX Maximalwert der Y-Bereich-YNR-Modi; ungültiger Modus.

9.4.4.20 Aynr_Auto_Attr_V3_t

【Beschreibung】 Automatische Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Aynr_Auto_Attr_V3_s
 {
     RK_YNR_Params_V3_t stParams;
     RK_YNR_Params_V3_Select_t stSelect;
 } Aynr_Auto_Attr_V3_t;

【Felder】

Feldname Beschreibung
stParams Algorithmusparameter des ynr-Moduls für jede ISO-Stufe
stSelect Vom ynr-Modul berechnete Eigenschaftsparameter

9.4.4.21 Aynr_Manual_Attr_V3_t

【Beschreibung】 Manuelle Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Aynr_Manual_Attr_V3_s
 {
     RK_YNR_Params_V3_Select_t stSelect;
     RK_YNR_Fix_V3_t stFix;
 } Aynr_Manual_Attr_V3_t;

【Felder】

Feldname Beschreibung
stSelect Algorithmusparameterwert
stFix YNNR-Registerwert

9.4.4.22 RK_YNR_Params_V3_t

【Beschreibung】 Eigenschaftsparameter des jeweiligen ISO-Algorithmus im automatischen Modus des YNR-Entrauschungsmoduls definieren.

【Definition】

 typedef struct RK_YNR_Params_V3_s
 {
     int enable;
     char version[64];
     float iso[RK_YNR_V3_MAX_ISO_NUM];
     RK_YNR_Params_V3_Select_t arYnrParamsISO[RK_YNR_V3_MAX_ISO_NUM];
 } RK_YNR_Params_V3_t;

【Felder】

Feldname Beschreibung
enable ynr-Modulschalter
version Versionsnummer des ynr-Moduls
iso Unterschiedliche ISO-Stufen mit unterschiedlichen Abstimmparametern; derzeit nur 13 Stufen unterstützt.
RK_YNR_Params_V3_Select_t Algorithmusparameter des YYNR-Moduls

9.4.4.23 RK_YNR_Params_V3_Select_t

【Beschreibung】 Algorithmuseigenschaften des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_YNR_Params_V3_Select_s
 {
     int enable;
     float lci;
     float hci;
     float sigma[YNR_V3_ISO_CURVE_POINT_NUM];
     short lumaPoint[YNR_V3_ISO_CURVE_POINT_NUM];
     float lo_lumaPoint[6];
     float lo_ratio[6];
     float hi_lumaPoint[6];
     float hi_ratio[6];
     // low frequency
     float rnr_strength[17];
     int ynr_bft3x3_bypass;
     int ynr_lbft5x5_bypass;
     int ynr_lgft3x3_bypass;
     int ynr_flt1x1_bypass;
     int ynr_sft5x5_bypass;
     float low_bf1;
     float low_bf2;
     float low_thred_adj;
     float low_peak_supress;
     float low_edge_adj_thresh;
     float low_lbf_weight_thresh;
     float low_center_weight;
     float low_dist_adj;
     float low_weight;
     float low_filt1_strength;
     float low_filt2_strength;
     float low_bi_weight;
     // high frequency
     float base_filter_weight1;
     float base_filter_weight2;
     float base_filter_weight3;
     float high_thred_adj;
     float high_weight;
     float high_direction_weight[8];
     float hi_min_adj;
     float hi_edge_thed;
     //local gain control
     float ynr_global_gain_alpha;
     float ynr_global_gain;
     float ynr_adjust_thresh;
     float ynr_adjust_scale;
 } RK_YNR_Params_V3_Select_t;

【Felder】

Feldname Parametertyp Beschreibung
enable Abstimmparameter ynr-Modulschalter: 1 ein, 0 aus.
lci Kalibrierdaten Einflussfaktor des niederfrequenten Rausch-Sigma. Größere Werte erhöhen das Rausch-Sigma und verstärken die Entrauschung.
hci Kalibrierdaten Einflussfaktor des hochfrequenten Rausch-Sigma. Größere Werte erhöhen das Rausch-Sigma und verstärken die Entrauschung.
sigma Kalibrierdaten Rausch-Sigma-Kurve
lumaPoint Kalibrierdaten Unterschiedlichen Pixelhelligkeiten zugeordnete Punkte der Rausch-SIGMA-Kurve, insgesamt 16 Punkte.
rnr_strength Abstimmparameter Vom Bildzentrum aus entlang des Kreisradius r unterschiedliche Entrauschungsstärken einstellen, hauptsächlich gegen LSC-Rauschen. Bereich [0, 16.0], Standard 1.
ynr_bft3x3_bypass Abstimmparameter Bypass eines internen Untermoduls: 0 Funktion ein, 1 Bypass. Üblicherweise sind sämtliche Untermodule aktiv und diese Werte auf 0 gesetzt.
ynr_lbft5x5_bypass Abstimmparameter Bypass eines internen Untermoduls: 0 Funktion ein, 1 Bypass. Üblicherweise sind sämtliche Untermodule aktiv und diese Werte auf 0 gesetzt.
ynr_lgft3x3_bypass Abstimmparameter Bypass eines internen Untermoduls: 0 Funktion ein, 1 Bypass. Üblicherweise sind sämtliche Untermodule aktiv und diese Werte auf 0 gesetzt.
ynr_flt1x1_bypass Abstimmparameter Bypass eines internen Untermoduls: 0 Funktion ein, 1 Bypass. Üblicherweise sind sämtliche Untermodule aktiv und diese Werte auf 0 gesetzt.
Feldname Parametertyp Beschreibung
ynr_sft5x5_bypass Abstimmparameter Bypass eines internen Untermoduls: 0 Funktion ein, 1 Bypass. Üblicherweise sind sämtliche Untermodule aktiv und diese Werte auf 0 gesetzt.
low_bf1 Abstimmparameter Stärke der bilateralen 3x3-Filterung des Originalbilds. Größere Werte verstärken die Entrauschung. Bereich [0.01, 32], Standard 1.
low_bf2 Abstimmparameter Stärke der bilateralen 5x5-Filterung des verkleinerten vorherigen Frames. Größere Werte verstärken die Entrauschung. Bereich [0.01, 32], Standard 1.
low_thred_adj Abstimmparameter Niederfrequente weiche Schwelle: größere Werte verstärken die niederfrequente Entrauschung. Bereich [0, 31], Standard 0.5.
low_peak_supress Abstimmparameter Stärke der Entfernung isolierten Rauschens: kleinere Werte verstärken die Entrauschung. Bereich [0, 1], Standard 0.5.
low_edge_adj_thresh Abstimmparameter Schwelle des Anpassungsfaktors zur Kantenerkennung im verkleinerten Bild; begrenzt dessen Maximalwert. Kleinere Werte verstärken die Entrauschung und verwischen das Bild stärker. Ganzzahl im Bereich [0, 1023], Standard 7.
low_lbf_weight_thresh Abstimmparameter Begrenzt das Gewicht der bilateralen 5x5-Filterung. Größere Werte schwächen die niederfrequente Entrauschung. Bereich [0.0, 1.0], Standard 0.25.
low_center_weight Abstimmparameter Gewicht des Mittelpunkts bei bilateraler 5x5-Filterung; kleinere Werte verstärken die Entrauschung. Bereich [0,1], Standard 0.5.
low_dist_adj Abstimmparameter Anpassungsfaktor der Entfernungsgewichtung des bilateralen Filters. Kleinere Werte verstärken die Entrauschung. Bereich [0, 127.0], Standard 8.0.
low_weight Abstimmparameter Gewicht des niederfrequenten Entrauschungsergebnisses; größere Werte verstärken die niederfrequente Entrauschung. Bereich [0, 1], Standard 0.5.
Feldname Parametertyp Beschreibung
low_filt1_strength Abstimmparameter Filterkerngewicht für Gauß-Filterung des Originalbilds. Bereich [0,1.0], Standard 0.7.
low_filt2_strength Abstimmparameter Gauß-Filterkerngewicht für die Gauß-Filterung des bilateralen Filterergebnisses. Bereich [0,1.0], Standard 0.85.
low_bi_weight Abstimmparameter Gewicht des ersten bilateralen Filters bei der Verarbeitung mit weicher Schwelle. Größere Werte verstärken die Entrauschung. Bereich [0, 1], Standard 0.3.
base_filter_weight1 Abstimmparameter Koeffizient des Richtungsfilters; normalerweise kaum anzupassen.
high_thred_adj Abstimmparameter Größere Werte verstärken die hochfrequente Entrauschung. Bereich laut Quelle 0, 31.0, Standard 1.0.
high_weight Abstimmparameter Gewicht der hochfrequenten Entrauschung: Anteil der erhaltenen Hochfrequenzkomponenten. Kleinere Werte verstärken die Entrauschung. Bereich laut Quelle 0, 1, Standard 0.78.
high_direction_weight Abstimmparameter Je größer der Wert einer Richtung, desto stärker wird entlang dieser Richtung entrauscht.
hi_min_adj Abstimmparameter Verhältnis sämtlicher Varianzwerte abzüglich des kleinsten Varianzwerts; größere Werte schärfen Kanten. Bereich laut Quelle 0.0, 1.0, Standard 0.9.
hi_edge_thed Abstimmparameter Kleinere Schwellen verstärken die hochfrequente Entrauschung. Ganzzahl im Bereich 0, 255, Standard 100.
ynr_global_gain_alpha Abstimmparameter Interpolationsstärke zwischen lokalem und globalem Ynr-Entrauschungsmodus. Üblicherweise Standardwert ohne Konfiguration verwenden; dann ausschließlich lokale Verstärkung. Bereich laut Quelle [0.0 1.0], Standard 0.
ynr_global_gain Abstimmparameter Interpolationsstärke zwischen lokalem und globalem Ynr-Entrauschungsmodus. Üblicherweise Standardwert ohne Konfiguration verwenden; dann ausschließlich lokale Verstärkung. Verstärkungsbereich laut Quelle [0.0 64.0], Standard 1.
Feldname Parametertyp Beschreibung
ynr_adjust_thresh Abstimmparameter Entrauschungsstärke für Rauschen oberhalb ynr_adjust_thresh. Bewegte Bereiche rauschen stärker; eine passende Schwelle erhöht dort die YNR-Entrauschung. Bereich [0.0, 1.0], Standard 1.
ynr_adjust_scale Abstimmparameter Entrauschungsstärke für Rauschen oberhalb ynr_adjust_thresh. Bewegte Bereiche rauschen stärker; eine passende Schwelle erhöht dort die YNR-Entrauschung. Bereich [0, 16.0], Standard 1.
lo_lumaPoint / lo_ratio Abstimmparameter Niederfrequentes Sigma für verschiedene Pixelhelligkeiten feinabstimmen.
hi_lumaPoint / hi_ratio Abstimmparameter Hochfrequentes Sigma für verschiedene Pixelhelligkeiten feinabstimmen.

9.4.4.24 RK_YNR_Fix_V3_t

【Beschreibung】 Registerkonfiguration des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_YNR_Fix_V3_s {
     // YNR_2700_GLOBAL_CTRL (0x0000)
     uint8_t ynr_rnr_en;
     uint8_t ynr_gate_dis;
     uint8_t ynr_thumb_mix_cur_en;
     uint8_t ynr_global_gain_alpha;
     uint16_t ynr_global_gain;
     uint8_t ynr_flt1x1_bypass_sel;
     uint8_t ynr_sft5x5_bypass;
     uint8_t ynr_flt1x1_bypass;
     uint8_t ynr_lgft3x3_bypass;
     uint8_t ynr_lbft5x5_bypass;
     uint8_t ynr_bft3x3_bypass;
     uint8_t ynr_en;
     // YNR_2700_RNR_MAX_R  (0x0004)
     uint8_t ynr_local_gainscale;
     uint16_t ynr_rnr_max_r;
     // YNR_2700_RNR_MAX_R  (0x0008)
     uint16_t ynr_rnr_center_coorv;
     uint16_t ynr_rnr_center_coorh;
     // YNR_2700_RNR_MAX_R  (0x000c)
     uint8_t ynr_localgain_adj;
     uint16_t ynr_localgain_adj_thresh;
     // YNR_2700_LOWNR_CTRL0 (0x0010)
     uint16_t ynr_low_bf_inv[2];
     // YNR_2700_LOWNR_CTRL1  (0x0014)
     uint8_t ynr_low_peak_supress;
     uint16_t ynr_low_thred_adj;
     // YNR_2700_LOWNR_CTRL2 (0x0018)
     uint16_t ynr_low_dist_adj;
     uint16_t ynr_low_edge_adj_thresh;
     // YNR_2700_LOWNR_CTRL3 (0x001c)
     uint8_t ynr_low_bi_weight;
     uint8_t ynr_low_weight;
     uint16_t ynr_low_center_weight;
     // YNR_2700_HIGHNR_CTRL0 (0x0020)
     uint8_t ynr_hi_min_adj;
     uint16_t ynr_high_thred_adj;
     // YNR_2700_HIGHNR_CTRL1  (0x0024)
     uint8_t ynr_high_retain_weight;
     uint8_t ynr_hi_edge_thed;
     // YNR_2700_HIGHNR_BASE_FILTER_WEIGHT  (0x0028)
     uint8_t ynr_base_filter_weight[3];
     // YNR_2700_HIGHNR_BASE_FILTER_WEIGHT  (0x002c)
     uint32_t ynr_frame_full_size;
     uint16_t ynr_lbf_weight_thres;
     // YNR_2700_GAUSS1_COEFF  (0x0030)
     uint16_t ynr_low_gauss1_coeff[3];
     // YNR_2700_GAUSS2_COEFF  (0x0034)
     uint16_t ynr_low_gauss2_coeff[3];
     // YNR_2700_DIRECTION_W_0_3  (0x0038 - 0x003c)
     uint8_t ynr_direction_weight[8];
     // YNR_2700_SGM_DX_0_1 (0x0040 - 0x0060)
     uint16_t ynr_luma_points_x[17];
     // YNR_2700_LSGM_Y_0_1 (0x0070- 0x0090)
     uint16_t ynr_lsgm_y[17];
     // YNR_2700_HSGM_Y_0_1 (0x00a0- 0x00c0)
     uint16_t ynr_hsgm_y[17];
     // YNR_2700_RNR_STRENGTH03 (0x00d0- 0x00e0)
     uint16_t ynr_rnr_strength[17];
 } RK_YNR_Fix_V3_t;

【Felder】

Feldname Bitbreite
(Ganzzahl.
Nachkomma)
Beschreibung
ynr_low_bf_inv[0] 5.9 Steuert die Entrauschungsstärke; der Registerwert wird reziprok verwendet. Kleinere Werte verstärken die Entrauschung. 512 bedeutet 1x, 256 bedeutet 2x Entrauschungsstärke. Bereich [1, 16383].
ynr_low_bf[1] 5.9 Steuert die Entrauschungsstärke; der Registerwert wird reziprok verwendet. Kleinere Werte verstärken die Entrauschung. 512 bedeutet 1x, 256 bedeutet 2x Entrauschungsstärke.
ynr_low_thred_adj 5.6 Anpassungsstärke der niederfrequenten weichen Schwelle; größere Werte verstärken die niederfrequente Entrauschung. Bereich [0, 2047].
ynr_low_peak_supress 1.7 Stärke der Entfernung großer isolierter Rauschpunkte; größere Werte verstärken sie. Bereich [0, 128].
ynr_low_edge_adj_thresh 11.0 Schwelle des Anpassungsfaktors zur Kantenerkennung im verkleinerten Bild; begrenzt dessen Maximalwert. Bereich [1, 1024].
ynr_low_center_weight 1.10 Mittelpunktsgewicht der bilateralen 5x5-Filterung; kleinere Werte verstärken die Entrauschung. Bereich [1, 1024].
sw_ynr_lbf_weight_thres 10.0 Begrenzt das Gewicht der bilateralen 5x5-Filterung; größere Werte schwächen die niederfrequente Entrauschung. Bereich [0, 1023].
ynr_low_dist_adj 7.2 Anpassungsfaktor der Entfernungsgewichtung des bilateralen Filters. Bereich [1, 511].
ynr_low_weight 1.7 Gewicht des niederfrequenten Entrauschungsergebnisses; größere Werte verstärken die niederfrequente Entrauschung. Bereich [0, 128].
ynr_low_gauss1_coeff[3] 1.8 Gewichtsbereich des Gauß-Filterkerns zur Filterung des Originalbilds: [0, 256].
ynr_low_gauss2_coeff[3] 1.8 Gewichtsbereich des Gauß-Filterkerns zur Gauß-Filterung des bilateralen Filterergebnisses: [0, 256].
Feldname Bitbreite
(Ganzzahl.
Nachkomma)
Beschreibung
ynr_low_bi_weight 1.7 Gewicht des ersten bilateralen Filters bei weicher Schwellenverarbeitung; größere Werte verstärken die Entrauschung. Bereich [0, 128].
ynr_base_filter_weight[3] 1.6 Koeffizient des Richtungsfilters. Bereich [0, 64].
ynr_high_thred_adj 5.6 Größere Werte verstärken die hochfrequente Entrauschung. Bereich [0, 2047].
ynr_high_retain_weight 1.7 Gewicht der hochfrequenten Entrauschung; Anteil der erhaltenen Hochfrequenzkomponente. Größere Werte schwächen die Entrauschung. Bereich [0, 128].
ynr_direction_weight[8] 1.4 Größere Werte einer Richtung verstärken die Entrauschung entlang dieser Richtung. Bereich [0,16].
ynr_hi_min_adj 0.6 Verhältnis sämtlicher Varianzwerte abzüglich des kleinsten Varianzwerts; größere Werte schärfen Kanten. Bereich [6,60].
ynr_hi_edge_thed 10.0 Kleinere Schwellen verstärken die hochfrequente Entrauschung. Bereich [0,1023].
ynr_rnr_max_r 14.0 Anpassung der radialen Entrauschungsstärke; speichert 1/((rows/2)^2+(cols/2)^2). Die ersten 9 Bits sind Mantisse M, die letzten 5 Bits Exponent E. Bereich [1, 16383].
ynr_rnr_strength[17] 4.4 Steuert die radiale Entrauschungsstärke mit insgesamt 17 Datenpunkten in 16 Segmenten: Entrauschung vom Bildzentrum zu den vier Bildecken. Bereich [0, 15].
ynr_global_gain 6.4 Extern konfigurierte globale Verstärkung zur Steuerung der gesamten YNR-Entrauschungsstärke. Größere Werte verstärken die Entrauschung. Bereich [0, 1023].
Feldname Bitbreite
(Ganzzahl.
Nachkomma)
Beschreibung
ynr_global_gain_alpha 1.3 Anteil der vom Gain-Modul gelieferten und der extern konfigurierten Verstärkung. Größere Werte verwenden mehr externe globale Verstärkung. Bereich [0, 8].
ynr_bft3x3_bypass 1 Bei 1 bilaterale 3x3-Filterung ausschalten. Wertebereich 0 oder 1.
ynr_lbft5x5_bypass 1 Bei 1 bilaterale 5x5-Filterung ausschalten. Wertebereich 0 oder 1.
ynr_lgft3x3_bypass 1 Bei 1 Gauß-Filterung mit 3x3 ausschalten.
ynr_flt1x1_bypass 1 Bei 1 niederfrequente Verarbeitung mit weicher Schwelle ausschalten. Wertebereich 0 oder 1.
ynr_sft5x5_bypass 1 Laut Quelle bei 5 die hochfrequente 1x5-Rauschunterdrückung ausschalten; zugleich nennt die Quelle den Wertebereich 0 oder 1. Dieser Widerspruch ist nicht aufgelöst.

9.4.4.25 rk_aiq_ynr_strength_v3_t

【Beschreibung】 Struktur zur Entrauschungsstärke definieren.

【Definition】

 typedef struct rk_aiq_ynr_strength_v3_s {
     rk_aiq_uapi_sync_t sync;
     float percent;
     bool strength_enable;
 } rk_aiq_ynr_strength_v3_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
percent Entrauschungsstärke, Bereich 0.0-1.0.

9.4.4.26 rk_aiq_cnr_attrib_v2_t

【Beschreibung】 Parameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_cnr_attrib_v2_s {
     rk_aiq_uapi_sync_t sync;
     AcnrV2_OPMode_t eMode;
     Acnr_Auto_Attr_V2_t stAuto;
     Acnr_Manual_Attr_V2_t stManual;
 } rk_aiq_cnr_attrib_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
eMode CNR-Entrauschungsmodus
stAuto CNR-Parameter für den automatischen Modus
stManual CNR-Parameter für den manuellen Modus

9.4.4.27 AcnrV2_OPMode_t

【Beschreibung】 Moduseigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef enum AcnrV2_OPMode_e {
     ACNRV2_OP_MODE_INVALID           = 0,
     ACNRV2_OP_MODE_AUTO              = 1,
     ACNRV2_OP_MODE_MANUAL            = 2,
     ACNRV2_OP_MODE_REG_MANUAL        = 3,
     ACNRV2_OP_MODE_MAX
 } AcnrV2_OPMode_t;

【Felder】

Feldname Beschreibung
ACNRV2_OP_MODE_INVALID Ungültiger Modus des UV-Bereich-CNR-Entrauschungsmoduls
ACNRV2_OP_MODE_AUTO Automatischer Modus des UV-Bereich-CNR-Entrauschungsmoduls
ACNRV2_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des UV-Bereich-CNR-Entrauschungsmoduls
ACNRV2_OP_MODE_REG_MANUAL Registereinstellungen für den manuellen Modus des UV-Bereich-CNR-Entrauschungsmoduls
ACNRV2_OP_MODE_MAX Maximalwert der UV-Bereich-CNR-Modi; ungültiger Modus.

9.4.4.28 Acnr_Auto_Attr_V2_t

【Beschreibung】 Automatische Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Acnr_Auto_Attr_V2_s
 {
     all ISO params and select param
 RK_CNR_Params_V2_t stParams;
     RK_CNR_Params_V2_Select_t stSelect;
 } Acnr_Auto_Attr_V2_t;

【Felder】

Feldname Beschreibung
stParams Algorithmusparameter des CNR-Moduls je ISO-Stufe
stSelect Vom CNR-Modul berechnete Eigenschaftsparameter

9.4.4.29 Acnr_Manual_Attr_V2_t

【Beschreibung】 Manuelle Eigenschaften des Entrauschungsmoduls definieren.

【Definition】

 typedef struct Acnr_Manual_Attr_V2_s
 {
     RK_CNR_Params_V2_Select_t stSelect;
 RK_CNR_Fix_V2_t stFix;
 } Acnr_Manual_Attr_V2_t;

【Felder】

Feldname Beschreibung
stSelect Algorithmusparameterwerte
stSelect Registerwert

9.4.4.30 RK_CNR_Params_V2_t

【Beschreibung】 Automatikmodus und ISO-abhängige Algorithmusparameter des Entrauschungsmoduls definieren.

【Definition】

 typedef struct RK_CNR_Params_V2_s
 {
     int enable;
     float iso[RK_CNR_V2_MAX_ISO_NUM];
     int hf_bypass[RK_CNR_V2_MAX_ISO_NUM];
     int lf_bypass[RK_CNR_V2_MAX_ISO_NUM];
     // gain
     float global_gain[RK_CNR_V2_MAX_ISO_NUM];
     float global_gain_alpha[RK_CNR_V2_MAX_ISO_NUM];
     float local_gain_scale[RK_CNR_V2_MAX_ISO_NUM];
     // strength adj by gain
     int gain_adj_strength_ratio[RK_CNR_V2_MAX_ISO_NUM]
 [RKCNR_V2_SGM_ADJ_TABLE_LEN];
     //
     float color_sat_adj[RK_CNR_V2_MAX_ISO_NUM];
     float color_sat_adj_alpha[RK_CNR_V2_MAX_ISO_NUM];
     // step1
     // median filter
     float hf_spikes_reducion_strength[RK_CNR_V2_MAX_ISO_NUM];
     // bilateral filter
     float hf_denoise_strength[RK_CNR_V2_MAX_ISO_NUM];
     float hf_color_sat[RK_CNR_V2_MAX_ISO_NUM];
     float hf_denoise_alpha[RK_CNR_V2_MAX_ISO_NUM];
     int  hf_bf_wgt_clip[RK_CNR_V2_MAX_ISO_NUM];
     // step2
     // median filter
     float thumb_spikes_reducion_strength[RK_CNR_V2_MAX_ISO_NUM];
     // bilateral filter
     float thumb_denoise_strength[RK_CNR_V2_MAX_ISO_NUM];
     float thumb_color_sat[RK_CNR_V2_MAX_ISO_NUM];
     // step3
     // bilateral filter
     float lf_denoise_strength[RK_CNR_V2_MAX_ISO_NUM];
     float lf_color_sat[RK_CNR_V2_MAX_ISO_NUM];
     float lf_denoise_alpha[RK_CNR_V2_MAX_ISO_NUM];
     // bilateral filter kernels
     float kernel_5x5[5];
 } RK_CNR_Params_V2_t;

【Felder】

Parametername Parametertyp Parameterbeschreibung
Enable Abstimmparameter Modulschalter: 1 ein, 0 aus.
iso Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen Abstimmparametern; derzeit nur 13 Stufen unterstützt.
hf_bypass Abstimmparameter Bypass der hochfrequenten Entrauschung: 0 kein Bypass, 1 Bypass.
lf_bypass Abstimmparameter Bypass der niederfrequenten Entrauschung: 0 kein Bypass, 1 Bypass.
global_gain Abstimmparameter Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich 0.0 bis 64.0, Standard 1.
global_gain_alpha Abstimmparameter Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich laut Quelle 0.0 1.0, Standard 0.
global_gain_scale Abstimmparameter Verstärkt die CNR-Entrauschung. Normalerweise Standardwert verwenden und nicht leichtfertig anpassen. Bereich laut Quelle 0, 128, Standard 1.
gain_adj_strength_ratio Abstimmparameter Filterstärke anhand lokaler Verstärkung anpassen. Kleinere Werte verstärken die Rauschentfernung. Bereich [1, 255], Standard 255.
color_sat_adj Abstimmparameter Gradientenabhängig angepasster UV-Anteil der bilateralen Filterung, 1~255. Kleinere Werte verbessern die Farbrauschentfernung. Bereich [1, 255], Standard 40.
color_sat_adj_alpha Abstimmparameter Anpassungsanteil von color_sat_adj. Größere Werte verbessern die Farbrauschentfernung. Bereich laut Quelle 0, 1.0, Standard 0.8.
hf_spikes_reducion_strength Abstimmparameter Stärke der hochfrequenten Medianfilterung; größere Werte verstärken sie. Bereich laut Quelle 0, 1.0, Standard 0.5.
Parametername Parametertyp Parameterbeschreibung
hf_denoise_strength Abstimmparameter Stärke der hochfrequenten bilateralen Filterung; größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 10.
hf_color_sat Abstimmparameter UV-Skalierungsfaktor der hochfrequenten bilateralen Filterung. Kleinere Werte senken die Farbsättigung stärker. Bereich laut Quelle 0.0, 7.9, Standard 1.5.
hf_denoise_alpha Abstimmparameter Mittelpunktsgewicht des hochfrequenten bilateralen Filters. Bereich laut Quelle 0.0, 1.0, Standard 0.
hf_bf_wgt_clip Abstimmparameter Minimale Entrauschung hoher Frequenzen. Größere Werte verstärken die Entrauschung. Bereich laut Quelle 0, 255, Standard 0.
thumb_spikes_reducion_strength Abstimmparameter Stärke der Medianfilterung des Vorschaubilds. Größere Werte verstärken sie. Bereich laut Quelle 0.0, 1.0, Standard 0.5.
thumb_denoise_strength Abstimmparameter Stärke der bilateralen Filterung des Vorschaubilds. Größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 8.
thumb_color_sat Abstimmparameter UV-Skalierungsfaktor der bilateralen Filterung des Vorschaubilds; laut Quelle sinkt die Farbsättigung stärker. Bereich 0.0, 7.9, Standard 4. Die Quelle gibt hier keine eindeutige Änderungsrichtung des Parameters an.
lf_denoise_strength Abstimmparameter Stärke der niederfrequenten bilateralen Filterung. Größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 8.
lf_color_sat Abstimmparameter UV-Anteil der niederfrequenten bilateralen Filterung. Kleinere Werte senken die Farbsättigung stärker. Bereich laut Quelle 0.0, 7.9, Standard 4.
lf_denoise_alpha Abstimmparameter Mittelpunktsgewicht des niederfrequenten bilateralen Filters. Bereich laut Quelle 0.0, 1.0, Standard 0.5.
kernel_5x5 Abstimmparameter Filterkern der bilateralen 5x5-Filterung

9.4.4.31 RK_CNR_Params_V2_Select_t

【Beschreibung】 Algorithmuseigenschaften des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_CNR_Params_V2_Select_s
 {
     int enable;
     // bypass
     int hf_bypass;
     int lf_bypass;
     // gain
     // gain
     float global_gain;
     float global_gain_alpha;
     float local_gain_scale;
     // strength adj by gain
     int gain_adj_strength_ratio[RKCNR_V2_SGM_ADJ_TABLE_LEN];
     //
     float color_sat_adj;
     float color_sat_adj_alpha;
     // step1
     // median filter
     float hf_spikes_reducion_strength;
     // bilateral filter
     float hf_denoise_strength;
     float hf_color_sat;
     float hf_denoise_alpha;
     int hf_bf_wgt_clip;
     // step2
     // median filter
     float thumb_spikes_reducion_strength;
     // bilateral filter
     float thumb_denoise_strength;
     float thumb_color_sat;
     // step3
     // bilateral filter
     float lf_denoise_strength;
     float lf_color_sat;
     float lf_denoise_alpha;
     // bilateral filter kernels
     float kernel_5x5[5];
 } RK_CNR_Params_V2_Select_t;

【Felder】

Parametername Parametertyp Parameterbeschreibung
Enable Abstimmparameter Modulschalter: 1 ein, 0 aus.
iso Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen Abstimmparametern; derzeit nur 13 Stufen unterstützt.
hf_bypass Abstimmparameter Bypass der hochfrequenten Entrauschung: 0 kein Bypass, 1 Bypass.
lf_bypass Abstimmparameter Bypass der niederfrequenten Entrauschung: 0 kein Bypass, 1 Bypass.
global_gain Abstimmparameter Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich 0.0 bis 64.0, Standard 1.
global_gain_alpha Abstimmparameter Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich laut Quelle 0.0 1.0, Standard 0.
global_gain_scale Abstimmparameter Verstärkt die CNR-Entrauschung. Normalerweise Standardwert verwenden und nicht leichtfertig anpassen. Bereich laut Quelle 0, 128, Standard 1.
gain_adj_strength_ratio Abstimmparameter Filterstärke anhand lokaler Verstärkung anpassen. Kleinere Werte verstärken die Rauschentfernung. Bereich [1, 255], Standard 255.
color_sat_adj Abstimmparameter Gradientenabhängig angepasster UV-Anteil der bilateralen Filterung, 1~255. Kleinere Werte verbessern die Farbrauschentfernung. Bereich [1, 255], Standard 40.
color_sat_adj_alpha Abstimmparameter Anpassungsanteil von color_sat_adj. Größere Werte verbessern die Farbrauschentfernung. Bereich laut Quelle 0, 1.0, Standard 0.8.
hf_spikes_reducion_strength Abstimmparameter Stärke der hochfrequenten Medianfilterung; größere Werte verstärken sie. Bereich laut Quelle 0, 1.0, Standard 0.5.
Parametername Parametertyp Parameterbeschreibung
hf_denoise_strength Abstimmparameter Stärke der hochfrequenten bilateralen Filterung; größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 10.
hf_color_sat Abstimmparameter UV-Skalierungsfaktor der hochfrequenten bilateralen Filterung. Kleinere Werte senken die Farbsättigung stärker. Bereich laut Quelle 0.0, 7.9, Standard 1.5.
hf_denoise_alpha Abstimmparameter Mittelpunktsgewicht des hochfrequenten bilateralen Filters. Bereich laut Quelle 0.0, 1.0, Standard 0.
hf_bf_wgt_clip Abstimmparameter Minimale Entrauschung hoher Frequenzen. Größere Werte verstärken die Entrauschung. Bereich laut Quelle 0, 255, Standard 0.
thumb_spikes_reducion_strength Abstimmparameter Stärke der Medianfilterung des Vorschaubilds. Größere Werte verstärken sie. Bereich laut Quelle 0.0, 1.0, Standard 0.5.
thumb_denoise_strength Abstimmparameter Stärke der bilateralen Filterung des Vorschaubilds. Größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 8.
thumb_color_sat Abstimmparameter UV-Skalierungsfaktor der bilateralen Filterung des Vorschaubilds; laut Quelle sinkt die Farbsättigung stärker. Bereich 0.0, 7.9, Standard 4. Die Quelle gibt hier keine eindeutige Änderungsrichtung des Parameters an.
lf_denoise_strength Abstimmparameter Stärke der niederfrequenten bilateralen Filterung. Größere Werte verbessern die Farbrauschentfernung. Bereich [1, 1023], Standard 8.
lf_color_sat Abstimmparameter UV-Anteil der niederfrequenten bilateralen Filterung. Kleinere Werte senken die Farbsättigung stärker. Bereich laut Quelle 0.0, 7.9, Standard 4.
lf_denoise_alpha Abstimmparameter Mittelpunktsgewicht des niederfrequenten bilateralen Filters. Bereich laut Quelle 0.0, 1.0, Standard 0.5.
kernel_5x5 Abstimmparameter Filterkern der bilateralen 5x5-Filterung

9.4.4.32 RK_CNR_Fix_V2_t

【Beschreibung】 Registerkonfiguration des manuellen Entrauschungsmodus definieren.

【Definition】

 typedef struct RK_CNR_Fix_V2_s {
     //ISP_CNR_2800_CTRL
     uint8_t cnr_thumb_mix_cur_en;
     uint8_t cnr_lq_bila_bypass;
     uint8_t cnr_hq_bila_bypass;
     uint8_t cnr_exgain_bypass;
     uint8_t cnr_en_i;
     // ISP_CNR_2800_EXGAIN
     uint8_t cnr_global_gain_alpha;
     uint16_t cnr_global_gain;
     // ISP_CNR_2800_GAIN_PARA
     uint8_t cnr_gain_iso;
     uint8_t cnr_gain_offset;
     uint8_t cnr_gain_1sigma;
     // ISP_CNR_2800_GAIN_UV_PARA
     uint8_t cnr_gain_uvgain1;
     uint8_t cnr_gain_uvgain0;
     // ISP_CNR_2800_LMED3
     uint8_t cnr_lmed3_alpha;
     // ISP_CNR_2800_LBF5_GAIN
     uint8_t cnr_lbf5_gain_y;
     uint8_t cnr_lbf5_gain_c;
     // ISP_CNR_2800_LBF5_WEITD0_4
     uint8_t cnr_lbf5_weit_d[5];
     // ISP_CNR_2800_HMED3
     uint8_t cnr_hmed3_alpha;
     // ISP_CNR_2800_HBF5
     uint8_t cnr_hbf5_weit_src;
     uint8_t cnr_hbf5_min_wgt;
     uint16_t cnr_hbf5_sigma;
     // ISP_CNR_2800_LBF3
     uint8_t cnr_lbf5_weit_src;
     uint16_t cnr_lbf3_sigma;
     //ISP_CNR_2800_SIGMA0-SIGMA3
     uint8_t cnr_sigma_y[13];
 } RK_CNR_Fix_V2_t;

【Felder】

Parametername Parameterbeschreibung
cnr_thumb_mix_cur_en Freigabe zum Mischen des Vorschaubilds des aktuellen Frames mit dem vorherigen Bild: 1’b1 Mischen ein, 1’b0 Mischen aus. Rückgelesenes Anzeigeregister.
cnr_lq_bila_bypass Bypass-Freigabe des niederfrequenten bilateralen 3x3-Filters: 1’b1 Bypass ein, out_data entspricht in_data; 1’b0 Bypass aus. Rückgelesenes Anzeigeregister.
cnr_hq_bila_bypass Bypass des hochfrequenten bilateralen 5x5-Filters: 1 Bypass ein, out_data entspricht in_data; 0 Bypass aus. Rückgelesenes Anzeigeregister.
cnr_exgain_bypass sw_cnr_exgain_bypass: Bypass-Freigabe der externen Verstärkung. 1 Bypass ein, externe Verstärkung fest auf sw_cnr_egain_mux; 0 Bypass aus, externe Verstärkung verwenden. Laut Quelle unterstützt die aktuelle Version das Deaktivieren des Bypass nicht. Rückgelesenes Anzeigeregister.
cnr_en_i CNR-Modulfreigabe: 1 ein, 0 aus.
cnr_global_gain Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich 0.0 bis 64.0, Standard 1.
cnr_global_gain_alpha Interpolationsstärke zwischen lokalem und globalem CNR-Entrauschungsmodus. Normalerweise Standardwert ohne Konfiguration verwenden; dann lokale Verstärkung. Bereich laut Quelle 0.0 1.0, Standard 0.
cnr_gain_iso Externe Verstärkung erhöhen, Bereich 0~128.
cnr_gain_offset Verstärkungsversatz des Tiefpassfilters bei der Verstärkungskalibrierung, Bereich 0~16.
cnr_gain_1sigma Ausgangsdaten des Hochpassfilters bei der Verstärkungskalibrierung verstärken.
cnr_gain_uvgain1 uvgain-Parameter 1
cnr_gain_uvgain0 uvgain-Parameter 0
cnr_lmed3_alpha in_data-Gewicht im niederfrequenten Medianfilter, Bereich 0~16.
cnr_lbf5_gain_y; Y-Verstärkung des bilateralen lbf5x5-Filters
cnr_lbf5_gain_c; UV-Verstärkung des bilateralen lbf5x5-Filters
cnr_lbf5_weit_d[0] Räumliches Gewicht von pix12, Bereich 1~128.
Parametername Parameterbeschreibung
cnr_lbf5_weit_d[1] Räumliches Gewicht von pix7,11,13,17, Bereich 0~128.
cnr_lbf5_weit_d[2] Räumliches Gewicht von pix6,8,16,18, Bereich 0~128.
cnr_lbf5_weit_d[3] Räumliches Gewicht bei Abstand 4 oder 5, Bereich 0~128.
cnr_lbf5_weit_d[4] Räumliches Gewicht von pix0,4,20,24, Bereich 0~128.
cnr_hmed3_alpha in_data-Gewicht im hochfrequenten Medianfilter, Bereich 0~16.
cnr_hbf5_weit_src in_data-Gewicht von hbf5x5, Bereich 0~128.
cnr_hbf5_min_wgt Untergrenze von hbf5x5 weit_r
cnr_hbf5_sigma Sigma-Wert von hbf5x5
cnr_lbf5_weit_src in_data-Gewicht von lbf3x3, Bereich 0~128. Die Quelle nennt trotz lbf5-Feldnamen ausdrücklich lbf3x3.
cnr_lbf3_sigma Sigma-Wert von lbf3x3

9.4.4.33 rk_aiq_cnr_strength_v2_t

【Beschreibung】 Struktur zur Entrauschungsstärke definieren.

【Definition】

 typedef struct rk_aiq_cnr_strength_v2_s {
     rk_aiq_uapi_sync_t sync;
     float percent;
 } rk_aiq_cnr_strength_v2_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus; siehe Überblick/API-Beschreibung.
percent Entrauschungsstärke, Bereich 0.0-1.0.

9.5 BLC

9.5.1 Funktionsbeschreibung

9.5.2 Referenz der funktionsbezogenen APIs

9.5.2.1 rk_aiq_user_api2_ablc_SetAttrib

【Beschreibung】 BLC-Parametereigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ablc_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_blc_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr BLC-Parametereigenschaft Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ablc.h, RkAiqHandleInt.h, rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

9.5.2.2 rk_aiq_user_api2_ablc_GetAttrib

【Beschreibung】 BLC-Parametereigenschaften abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_ablc_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_blc_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr BLC-Parametereigenschaft Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_ablc.h, RkAiqHandleInt.h, rk_aiq_user_api2_sysctl.h

Bibliotheksdatei: librkaiq.so

9.5.3 Datentypen der modulbezogenen APIs

9.5.3.1 rk_aiq_blc_attrib_t

【Beschreibung】 Parameter des BLC-Moduls

【Definition】

 typedef struct rk_aiq_blc_attrib_s {
     rk_aiq_uapi_sync_t sync;
     AblcOPMode_t eMode;
     AblcParams_t stBlc0Auto;
     AblcParams_t stBlc1Auto;
     AblcManualAttr_t stBlc0Manual;
     AblcManualAttr_t stBlc1Manual;
 } rk_aiq_blc_attrib_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus siehe Abschnitt Überblick/API-Beschreibung
eMode Modus des BLC-Moduls
stBlc0Auto Parameter des automatischen blc0-Modus
stBlc0Manual Parameter des manuellen blc0-Modus
stBlc1Auto Parameter des automatischen blc1-Modus
stBlc1Manual Parameter des manuellen blc1-Modus

9.5.3.2 AblcOPMode_t

【Beschreibung】 Moduseigenschaften des Rauschunterdrückungsmoduls definieren.

【Definition】

 typedef enum AblcOPMode_e {
     ABLC_OP_MODE_OFF         = 0,
     ABLC_OP_MODE_AUTO             = 1,
     ABLC_OP_MODE_MANUAL           = 2,
     ABLC_OP_MODE_MAX
 } AblcOPMode_t;

【Felder】

Feldname Beschreibung
ABLC_OP_MODE_OFF Ungültiger Modus des BLC-Moduls
ABLC_OP_MODE_AUTO Automatischer Modus des BLC-Moduls
ABLC_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des BLC-Moduls
ABLC_OP_MODE_MAX Maximalwert der BLC-Modusaufzählung; ungültiger Modus

9.5.3.3 AblcParams_t

【Beschreibung】 Parameter des automatischen BLC-Modus

【Definition】

 typedef struct AblcParams_s {
     bool enable;
     int len;
     float* iso;
     float* blc_r;
     float* blc_gr;
     float* blc_gb;
     float* blc_b;
 } AblcParams_t;

【Felder】

Feldname Beschreibung
enable Modulaktivierung: 1 aktiviert; 0 deaktiviert;
len Länge des zu iso gehörenden Arrays
iso ISO-Stufe
blc_r BLC-Werte für unterschiedliche ISO-Stufen; Arrayzeiger
blc_gr BLC-Werte für unterschiedliche ISO-Stufen; Arrayzeiger
blc_gb BLC-Werte für unterschiedliche ISO-Stufen; Arrayzeiger
blc_b BLC-Werte für unterschiedliche ISO-Stufen; Arrayzeiger

9.5.3.4 AblcManualAttr_t

【Beschreibung】 Parameter des manuellen BLC-Modus

【Definition】

 typedef struct AblcSelect_s {
     bool enable;
     short int blc_r;
     short int blc_gr;
     short int blc_gb;
     short int blc_b;
 } AblcSelect_t;
 typedef AblcSelect_t AblcManualAttr_t;

【Felder】

Feldname Beschreibung
enable Modulaktivierung: 1 aktiviert; 0 deaktiviert;
blc_r R-Kanaleigenschaften des BLC-Moduls
blc_gr gr-Kanaleigenschaften des blc-Moduls
blc_gb GB-Kanaleigenschaften des BLC-Moduls
blc_b B-Kanaleigenschaften des BLC-Moduls

9.6 Dehaze&Enhance

9.6.1 Funktionsbeschreibung

Dehaze & Enhanced umfasst 2 Modi:

Dehaze verbessert das Bild durch dynamische Änderung von Kontrast und Helligkeit.

Enhance verstärkt den Kontrast lokaler Bildbereiche.

Dehaze und Enhanced schließen sich gegenseitig aus.

9.6.2 Referenz der funktionsbezogenen APIs

9.6.2.1 rk_aiq_uapi2_setDehazeModuleEnable

【Beschreibung】

Den Dehaze-Modulschalter einstellen, der stAuto.DehazeTuningPara.Enable oder stManual.Enable steuert; die Auswahl wird entsprechend dem aktuellen API-Modus automatisch angepasst.

【Syntax】

 XCamReturn rk_aiq_uapi2_setDehazeModuleEnable(const rk_aiq_sys_ctx_t* ctx, bool
 on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Funktion ein-/ausschalten. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler; Einzelheiten siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.2 rk_aiq_uapi2_setDehazeEnable

【Beschreibung】

Den Dehaze-Funktionsschalter einstellen, der stAuto.DehazeTuningPara.dehaze_setting.en oder stManual.dehaze_setting.en steuert; die Auswahl wird entsprechend dem aktuellen API-Modus automatisch angepasst.

【Syntax】

 XCamReturn rk_aiq_uapi2_setDehazeEnable(const rk_aiq_sys_ctx_t* ctx, bool on);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Funktion ein-/ausschalten. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Ungleich 0 Fehler; Einzelheiten siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.3 rk_aiq_uapi2_setMDehazeStrth

【Beschreibung】

Manuelle Dunstentfernungsstärke einstellen. Basiswert ist 50; Werte über 50 erhöhen, Werte unter 50 verringern die Stärke.

Als API-Modus sind sowohl DEHAZE_API_AUTO als auch DEHAZE_API_MANUAL vorgesehen.

Stellen Sie vor Verwendung dieser API sicher, dass Dehaze wirksam ist, oder rufen Sie zuvor rk_aiq_uapi2_setDehazeModuleEnable und rk_aiq_uapi2_setDehazeEnable auf. Den Ablauf zeigt Fall 6 in sample_adehaze_module.cpp.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMDehazeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int
 level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Stufe, Wertebereich [1,100], Standardwert 50, Genauigkeit 1. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.4 rk_aiq_uapi2_getMDehazeStrth

【Beschreibung】

Manuelle Dunstentfernungsstärke abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMDehazeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned
 int* level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Stufe, Wertebereich [1,100], Standardwert 50, Genauigkeit 1. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.5 rk_aiq_uapi2_setEnhanceEnable

【Beschreibung】

Den Dehaze-Funktionsschalter einstellen, der stAuto.DehazeTuningPara.enhance_setting.en oder stManual.enhance_setting.en steuert; die Auswahl wird entsprechend dem aktuellen API-Modus automatisch angepasst. Die Quelle bezeichnet die Funktion hier als Dehaze.

【Syntax】

 XCamReturn rk_aiq_uapi2_setEnhanceEnable(const rk_aiq_sys_ctx_t* ctx, bool on);

【Parameter】

Rückgabewert Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
on Funktion ein-/ausschalten. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.6 rk_aiq_uapi2_setMEnhanceStrth

【Beschreibung】

Manuelle Kontrastverstärkungsstärke einstellen. Basiswert ist 50; Werte über 50 erhöhen, Werte unter 50 verringern den Kontrast.

Als API-Modus sind sowohl DEHAZE_API_AUTO als auch DEHAZE_API_MANUAL vorgesehen.

Stellen Sie vor Verwendung dieser API sicher, dass Enhance wirksam ist, oder rufen Sie zuvor rk_aiq_uapi2_setDehazeModuleEnable und rk_aiq_uapi2_setEnhanceEnable auf. Den Ablauf zeigt Fall 9 in sample_adehaze_module.cpp.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMEnhanceStrth(const rk_aiq_sys_ctx_t* ctx, unsigned
 int level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Stufe, Wertebereich [1,100], Standardwert 50, Genauigkeit 1. Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.2.7 rk_aiq_uapi2_getMEnhanceStrth

【Beschreibung】

Manuelle Kontrastverstärkung abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMEnhanceStrth(const rk_aiq_sys_ctx_t* ctx, unsigned
 int *level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Stufe, Wertebereich [1,100], Standardwert 50, Genauigkeit 1. Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.6.3 Referenz der modulbezogenen APIs

9.6.3.1 rk_aiq_user_api2_adehaze_v12_setSwAttrib

【Beschreibung】

Dunstentfernungsparameter einstellen.

【Syntax】

 XCamReturn  rk_aiq_user_api2_adehaze_setSwAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 const adehaze_sw_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Dunstentfernungsparameter Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

9.6.3.2 rk_aiq_user_api2_adehaze_getSwAttrib

【Beschreibung】

Aktuelle Dunstentfernungsparameter abrufen.

【Syntax】

 XCamReturn  rk_aiq_user_api2_adehaze_getSwAttrib(const rk_aiq_sys_ctx_t*
 sys_ctx,adehaze_sw_v2_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Dunstentfernungsparameter Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

9.6.4 Datentypen der modulbezogenen APIs

9.6.4.1 dehaze_api_mode_t

【Beschreibung】 Betriebsart des Dunstentfernungsmoduls definieren.

【Definition】

 typedef enum dehaze_api_mode_e {
     DEHAZE_API_AUTO   = 0,
     DEHAZE_API_MANUAL = 1,
 } dehaze_api_mode_t;

【Felder】

Feldname Beschreibung
DEHAZE_API_AUTO Automatischer Dunstentfernungsmodus
DEHAZE_API_MANUAL Manueller Dunstentfernungsmodus

9.6.4.2 DehazeDataV21_t

【Beschreibung】 Eigenschaften der automatischen Dunstentfernungs-Abstimmparameter definieren.

【Definition】

 typedef struct DehazeDataV21_s{
     float* EnvLv;
     int    EnvLv_len;
     float* dc_min_th;
     int    dc_min_th_len;
     float* dc_max_th;
     int    dc_max_th_len;
     float* yhist_th;
     int    yhist_th_len;
     float* yblk_th;
     int    yblk_th_len;
     float* dark_th;
     int    dark_th_len;
     float* bright_min;
     int    bright_min_len;
     float* bright_max;
     int    bright_max_len;
     float* wt_max;
     int    wt_max_len;
     float* air_min;
     int    air_min_len;
     float* air_max;
     int    air_max_len;
     float* tmax_base;
     int    tmax_base_len;
     float* tmax_off;
     int    tmax_off_len;
     float* tmax_max;
     int    tmax_max_len;
     float* cfg_wt;
     int    cfg_wt_len;
     float* cfg_air;
     int    cfg_air_len;
     float* cfg_tmax;
     int    cfg_tmax_len;
     float* dc_weitcur;
     int    dc_weitcur_len;
     float* bf_weight;
     int    bf_weight_len;
     float* range_sigma;
     int    range_sigma_len;
     float* space_sigma_pre;
     int    space_sigma_pre_len;
     float* space_sigma_cur;
     int    space_sigma_cur_len;
 } DehazeDataV21_t;

【Felder】

Feldname Beschreibung
EnvLv Umgebungshelligkeit
EnvLv_len Länge des EnvLv-Arrays
dc_min_th Adaptiver WT-Statistikbereich, Wertebereich [16, 120],
Standardwert 64.
dc_min_th_len Länge des dc_min_th-Arrays
dc_max_th Adaptiver WT-Statistikbereich für stark belichtete Bereiche, Wertebereich [170, 255],
Standardwert 192.
dc_max_th_len Länge des dc_max_th-Arrays
yhist_th Statistikbereich stark belichteter Y-Komponentenbereiche: [170, 255],
Standardwert 249.
yhist_th_len Länge des yhist_th-Arrays
yblk_th Anteilsschwelle der Y-Komponentenblockanzahl: 0.002,
0.01; Standardwert 0.002.
yblk_th_len Länge des yblk_th-Arrays
dark_th Adaptive WT-Mindestschwelle des Y-Komponentenblocks, Wertebereich
[230, 250], Standardwert 250.
dark_th_len Länge des dark_th-Arrays
bright_min Minimum der adaptiven AIR-Schwelle, Bereich 160 bis 200,
Standardwert 180.
bright_min_len Länge des bright_min-Arrays
bright_max Maximum der adaptiven air-Schwelle, Bereich 210 bis 250,
Standardwert 240.
bright_max_len Länge des bright_max-Arrays
wt_max Maximaler WT-Wert: 0.75 und 0.9; Standardwert 0.9.
wt_max_len Länge des wt_max-Arrays
air_min Minimaler adaptiver air-Wert, Bereich 200 bis 220,
Standardwert 200.
air_min_len Länge des air_min-Arrays
air_max Maximaler adaptiver air-Wert: 230 und 250; Standardwert 250.
air_max_len Länge des air_max-Arrays
tmax_base Standardwert von tmax: 125. Zugehörige Konfiguration:
200 (131), 210 (125), 220 (119), 230 (114), 240 (109), 250 (105).
Empfohlen wird 131-105.
Feldname Beschreibung
tmax_base_len Länge des tmax_base-Arrays
tmax_off Adaptiver Festwert von tmax, Wertebereich [0.1, 0.5],
Standardwert 0.1.
tmax_off_len Länge des tmax_off-Arrays
tmax_max Maximaler tmax-Wert: 0.1, 0.5; Standardwert 0.5.
tmax_max_len Länge des tmax_max-Arrays
cfg_wt Softwarekonfiguration von wt, Stärke der Bilddunstentfernung, Wertebereich [0, 1],
Standardwert 0.8.
cfg_wt_len Länge des cfg_wt-Arrays
cfg_air Softwarekonfiguration von air, atmosphärischer Lichtkoeffizient, Wertebereich
[0, 255], Standardwert 210.
cfg_air_len Länge des cfg_air-Arrays
cfg_tmax Softwarekonfiguration von tmax, maximaler Dunstentfernungswert,
Wertebereich [0, 1], Standardwert 0.2.
cfg_tmax_len Länge des cfg_tmax-Arrays
bf_weight Kombinationsgewicht der beiden bilateralen Filter, Wertebereich [0, 1],
Standardwert 0.5.
bf_weight_len Länge des bf_weight-Arrays
dc_weitcur Gewicht des Dunkelkanalanteils, Wertebereich [0, 1];
Standardwert in der Quelle nicht angegeben.
dc_weitcur_len Länge des dc_weitcur-Arrays
range_sigma Bereichs-Sigma des bilateralen Filters, Wertebereich [0, 1],
Standardwert 0.4.
range_sigma_len Länge des range_sigma-Arrays
space_sigma_pre Räumliches Sigma der bilateralen Filterung bei IIR-Daten als Referenz,
Wertebereich [0, 1], Standardwert 0.4.
space_sigma_pre_len Länge des space_sigma_pre-Arrays
space_sigma_cur Räumliches Sigma der bilateralen Filterung bei aktuellen Daten als Referenz,
Wertebereich [0, 1], Standardwert 0.8.
space_sigma_cur_len Länge des space_sigma_cur-Arrays

9.6.4.3 Dehaze_Setting_V21_t

【Beschreibung】 Parameter der automatischen Dunstentfernungsfunktion definieren.

【Definition】

 typedef struct Dehaze_Setting_V21_s{
     bool            en;
     bool            air_lc_en;
     float           stab_fnum;
     float           sigma;
     float           wt_sigma;
     float           air_sigma;
     float           tmax_sigma;
     float           pre_wet;
     DehazeDataV21_t DehazeData;
 } Dehaze_Setting_V21_t;

【Felder】

Feldname Beschreibung
en Funktionsschalter
air_lc_en Ob Airlight Base zur unteren Begrenzung von Airlight verwendet wird
stab_fnum Maximalwert für die Bildstabilisierung
sigma IIR-gesteuertes Sigma
wt_sigma Bildübergreifender WT-Filterkoeffizient
air_sigma Bildübergreifender AIR-Filterkoeffizient
tmax_sigma Bildübergreifender Tmax-Filterkoeffizient
pre_wet IIR-Filterfaktor der Referenzdaten
DehazeData Dunstentfernungs-Abstimmparameter

9.6.4.4 EnhanceDataV21_t

【Beschreibung】 Eigenschaften der automatischen Enhance-Abstimmparameter definieren.

【Definition】

 typedef struct EnhanceDataV21_s{
     float* EnvLv;
     int    EnvLv_len;
     float* enhance_value;
     int    enhance_value_len;
     float* enhance_chroma;
     int    enhance_chroma_len;
 } EnhanceDataV21_t;

【Felder】

Feldname Beschreibung
EnvLv Umgebungshelligkeit
EnvLv_len Länge des Umgebungshelligkeitsarrays
enhance_value Allgemeine Kontraststärke, Wertebereich [0,16], empfohlener Bereich [1, 2]
enhance_value_len Länge des enhance_value-Arrays
enhance_chroma Verstärkungsparameter für die Chromatizität, Wertebereich [0, 16],
empfohlener Bereich [1, 2]
enhance_chroma_len Länge des enhance_chroma-Arrays

9.6.4.5 Enhance_Setting_V21_t

【Beschreibung】 Eigenschaften der automatischen Enhance-Funktionsparameter definieren.

【Definition】

 typedef struct Enhance_Setting_V21_s{
     bool             en;
     float            enhance_curve[CALIBDB_ADEHAZE_ENHANCE_CURVE_KNOTS_NUM];
     EnhanceDataV21_t EnhanceData;
 } Enhance_Setting_V21_t;

【Felder】

Feldname Beschreibung
en Enhance-Funktionsschalter. 0: aus, 1: ein.
enhance_curve Niederfrequenzkurve.
EnhanceData Enhance-Abstimmparameter.

9.6.4.6 Hist_setting_V21_t

【Beschreibung】 Eigenschaften der automatischen Hist-Abstimmparameter definieren.

【Definition】

 typedef struct HistDataV21_s{
     float* EnvLv;
     int    EnvLv_len;
     float* hist_gratio;
     int    hist_gratio_len;
     float* hist_th_off;
     int    hist_th_off_len;
     float* hist_k;
     int    hist_k_len;
     float* hist_min;
     int    hist_min_len;
     float* hist_scale;
     int    hist_scale_len;
     float* cfg_gratio;
     int    cfg_gratio_len;
 } HistDataV21_t;

【Felder】

Feldname Beschreibung
EnvLv Umgebungshelligkeit
EnvLv_len Länge des EnvLv-Arrays
hist_gratio Histogrammspreizungsfaktor, Steuerkoeffizient des Histogrammausgleichs,
Wertebereich [0, 32]
hist_gratio_len Länge des hist_gratio-Arrays
hist_th_off Histogrammstatistikschwelle, Bereich 0 bis 255, Standardwert
64
hist_th_off_len Länge des hist_th_off-Arrays
hist_k Multiplikator der adaptiven Histogrammschwelle, Bereich 0 bis 7, Wert 2
hist_k_len Länge des hist_k-Arrays
hist_min Minimum der Histogrammstatistikschwelle, laut Quelle Bereich 0,2 bis
0.016
hist_min_len Länge des hist_min-Arrays
hist_scale Steuerkoeffizienten des Histogrammausgleichs, Wertebereich [0, 32]
hist_scale_len Länge des hist_scale-Arrays
cfg_gratio Softwarekonfiguration des Histogrammspreizungsfaktors bzw.
Steuerkoeffizienten des Histogrammausgleichs, Wertebereich [0, 32]
cfg_gratio_len Länge des cfg_gratio-Arrays

9.6.4.7 Hist_setting_V21_t

【Beschreibung】 Eigenschaften der automatischen Hist-Funktionsparameter definieren.

【Definition】

 typedef struct Hist_setting_V21_s{
     bool          en;
     bool          hist_para_en;
     HistDataV21_t HistData;
 } Hist_setting_V21_t;

【Felder】

Feldname Beschreibung
en Hist-Funktionsschalter
hist_para_en Schalter zur Steuerung der Histogrammspreizung
HistData Hist-Abstimmparameter

9.6.4.8 CalibDbDehazeV21_t

【Beschreibung】 Eigenschaften der Abstimmparameter des automatischen Dunstentfernungsmoduls definieren.

【Definition】

 typedef struct CalibDbDehazeV21_s{
     bool                  Enable;
     float                 cfg_alpha;
     float                 ByPassThr;
     Dehaze_Setting_V21_t  dehaze_setting;
     Enhance_Setting_V21_t enhance_setting;
     Hist_setting_V21_t    hist_setting;
 } CalibDbDehazeV21_t;

【Felder】

Feldname Beschreibung
Enable Funktionsschalter
cfg_alpha Anteil der manuellen Softwarekonfiguration, Wertebereich 0, 1,
Standardwert 1, Genauigkeit 0.01
dehaze_setting Parameter der automatischen Dunstentfernungsfunktion
enhance_setting Parameter der automatischen Enhance-Funktion
hist_setting Parameter der automatischen Hist-Funktion

9.6.4.9 CalibDbV2_dehaze_v21_t

【Beschreibung】 Eigenschaften des automatischen Dunstentfernungsmoduls definieren.

【Definition】

 typedef struct CalibDbV2_dehaze_V21_s{
     CalibDbDehazeV21_t DehazeTuningPara;
 } CalibDbV2_dehaze_V21_t;

【Felder】

Feldname Beschreibung
DehazeTuningPara Abstimmparameter des automatischen Dunstentfernungsmoduls

9.6.4.10 mDehazeDataV21_t

【Beschreibung】 Manuelle DehazeData-Eigenschaften definieren.

【Definition】

 typedef struct mDehazeDataV21_s {
     float dc_min_th;
     float dc_max_th;
     float yhist_th;
     float yblk_th;
     float dark_th;
     float bright_min;
     float bright_max;
     float wt_max;
     float air_min;
     float air_max;
     float tmax_base;
     float tmax_off;
     float tmax_max;
     float cfg_wt;
     float cfg_air;
     float cfg_tmax;
     float dc_weitcur;
     float bf_weight;
     float range_sigma;
     float space_sigma_pre;
     float space_sigma_cur;
 } mDehazeDataV21_t;

【Felder】

Feldname Beschreibung
dc_min_th Adaptiver WT-Statistikbereich, Wertebereich [16, 120], Standardwert 64, Genauigkeit 0.1.
dc_max_th Adaptiver WT-Statistikbereich für stark belichtete Bereiche, Wertebereich [170, 255],
Standardwert 192, Genauigkeit 0.1.
yhist_th Statistikbereich stark belichteter Y-Komponentenbereiche, Wertebereich [170, 255],
Standardwert 249, Genauigkeit 0.1
yblk_th Anteilsschwelle der Y-Komponentenblockanzahl, Wertebereich [0.002, 0.01],
Standardwert 0.002, Genauigkeit 0.1.
dark_th Adaptive WT-Mindestschwelle des Y-Komponentenblocks, Wertebereich [230, 250],
Standardwert 250, Genauigkeit 0.1
bright_min Minimum der adaptiven AIR-Schwelle, Wertebereich [160, 200],
Standardwert 180, Genauigkeit 0.1.
bright_max Maximum der adaptiven AIR-Schwelle, Wertebereich [210, 250],
Standardwert 240, Genauigkeit 0.1.
wt_max Obergrenze der adaptiven wt-Anpassung, Wertebereich [0.75, 0.9],
Standardwert 0.9, Genauigkeit 0.001.
air_min Untergrenze der adaptiven air-Anpassung, Wertebereich [200, 220],
Standardwert 200, Genauigkeit 0.001.
air_max Obergrenze der adaptiven AIR-Anpassung, Wertebereich [230, 250],
Standardwert 250, Genauigkeit 0.001.
tmax_base Adaptiver tmax-Basiswert, Standard 125. Konfiguration: 200
(131), 210 (125), 220 (119), 230 (114), 240 (109), 250 (105); empfohlen 131-105
tmax_off Adaptiver Tmax-Festwert, Wertebereich [0.1, 0.5], Standardwert 0.1, Genauigkeit 0.1.
tmax_max Maximum der adaptiven tmax-Anpassung, Wertebereich [0.1, 0.5],
Standardwert 0.5, Genauigkeit 0.1.
cfg_wt Softwarekonfiguration von wt, Bilddunstentfernungsstärke, Wertebereich [0, 1],
Standardwert 0.8, Genauigkeit 0.001.
cfg_air Softwarekonfiguration von air, atmosphärischer Lichtkoeffizient, Wertebereich [0, 255],
Standardwert 210, Genauigkeit 0.001
cfg_tmax Softwarekonfiguration von tmax, maximaler Dunstentfernungswert, Wertebereich [0, 1],
Standardwert 0.2, Genauigkeit 0.001.
bf_weight Kombinationsgewicht der beiden bilateralen Filter, Wertebereich [0, 1],
Standardwert 0.5, Genauigkeit 0.1.
dc_weitcur Bilaterales Gewicht des Dunkelkanalanteils, Wertebereich [0, 1],
Standardwert 1, Genauigkeit 0.1.
range_sigma Bereichs-Sigma des bilateralen Filters, Wertebereich [0, 1], Standardwert 0.4, Genauigkeit 0.1.
Feldname Beschreibung
space_sigma_pre Räumliches Sigma der bilateralen Filterung bei IIR-Daten als Referenz,
Wertebereich [0, 1], Standardwert 0.4, Genauigkeit 0.1.
space_sigma_cur Räumliches Sigma der bilateralen Filterung bei aktuellen Daten als Referenz,
Wertebereich [0, 1], Standardwert 0.8, Genauigkeit 0.1.

9.6.4.11 mDehaze_setting_v21_t

【Beschreibung】 Eigenschaften der manuellen Dunstentfernungsfunktion definieren.

【Definition】

 typedef struct mDehaze_setting_v21_s {
     bool             en;
     bool             air_lc_en;
     float            stab_fnum;
     float            sigma;
     float            wt_sigma;
     float            air_sigma;
     float            tmax_sigma;
     float            pre_wet;
     mDehazeDataV21_t DehazeData;
 } mDehaze_setting_V21_t;

【Felder】

Feldname Beschreibung
en Funktionsschalter
air_lc_en Ob Airlight Base zur unteren Begrenzung verwendet wird
stab_fnum Maximalwert der Bildstabilisierung, Wertebereich [0,31], Standardwert
8, Genauigkeit 0.01
sigma IIR-gesteuertes Sigma, Wertebereich 0,255, Standardwert 6,
Genauigkeit 1.
wt_sigma Bildübergreifender wt-Filterkoeffizient, Wertebereich [0,255], Standardwert
8, Genauigkeit 1.
air_sigma Bildübergreifender air-Filterkoeffizient, Wertebereich 0,255, Standardwert 12,
Genauigkeit 1
tmax_sigma Bildübergreifender Tmax-Filterkoeffizient, Wertebereich [0,1], Standardwert
0.01, Genauigkeit 0.0001
pre_wet IIR-Filterkoeffizient der Referenzdaten, Wertebereich [0,1], Standardwert 0.01,
Genauigkeit 0.0001.
DehazeData Dunstentfernungs-Abstimmparameter

9.6.4.12 mEnhanceDataV21_t

【Beschreibung】 Manuelle EnhanceData-Eigenschaft definieren.

【Definition】

 typedef struct mEnhanceDataV21_s {
     float enhance_value;
     float enhance_chroma;
 } mEnhanceDataV21_t;

【Felder】

Feldname Beschreibung
enhance_value Allgemeine Kontraststärke, Wertebereich [0,16], Standardwert 1.0, Genauigkeit 0.001.
enhance_chroma Verstärkungsparameter für die Chromatizität, Wertebereich [0,16],
Standardwert 1.0, Genauigkeit 0.001.

9.6.4.13 mEnhance_setting_v21_t

【Beschreibung】 Eigenschaft der manuellen Enhance-Funktion definieren.

【Definition】

 typedef struct mEnhance_Setting_V21_s {
     bool              en;
     float             enhance_curve[CALIBDB_ADEHAZE_ENHANCE_CURVE_KNOTS_NUM];
     mEnhanceDataV21_t EnhanceData;
 } mEnhance_Setting_V21_t;

【Felder】

Feldname Beschreibung
en Enhance-Funktionsschalter
enhance_curve Niederfrequenzkurve
EnhanceData Enhance-Abstimmparameter

9.6.4.14 mHistDataV21_t

【Beschreibung】 Manuelle HistData-Eigenschaft definieren.

【Definition】

 typedef struct mHistDataV21_s {
     float hist_gratio;
     float hist_th_off;
     float hist_k;
     float hist_min;
     float hist_scale;
     float cfg_gratio;
 } mHistDataV21_t;

【Felder】

Feldname Beschreibung
hist_gratio Histogrammspreizungsfaktor, Steuerkoeffizient des Histogrammausgleichs, Wertebereich
[0, 32], Standardwert nicht angegeben, Genauigkeit 0.01.
hist_th_off Histogrammstatistikschwelle, Wertebereich [0, 255], Standardwert 64, Genauigkeit 0.01.
hist_k Multiplikator der adaptiven Histogrammschwelle, Wertebereich [0, 7), Standardwert 2,
Genauigkeit 0.01.
hist_min Minimum der Histogrammstatistikschwelle, Wertebereich [0,2),
Standardwert 0.016, Genauigkeit 0.01.
hist_scale Steuerkoeffizient des Histogrammausgleichs, Wertebereich [0, 32], Standardwert 0.9,
Genauigkeit 0.01.
cfg_gratio Softwarekonfiguration des Histogrammspreizungsfaktors, Steuerkoeffizient des
Histogrammausgleichs, Wertebereich [0, 32), Standardwert 1, Genauigkeit 0.01.

9.6.4.15 mHist_setting_v21_t

【Beschreibung】 Eigenschaften der manuellen Hist-Funktion definieren.

【Definition】

 typedef struct mHist_setting_V21_s {
     bool           en;
     bool           hist_para_en;
     mHistDataV21_t HistData;
 } mHist_setting_V21_t;

【Felder】

Feldname Beschreibung
en Hist-Funktionsschalter.
hist_para_en Schalter zur Steuerung der Histogrammspreizung.
HistData Hist-Abstimmparameter.

9.6.4.16 mDehazeAttr_t

【Beschreibung】 Eigenschaften des manuellen Dunstentfernungsmoduls definieren.

【Definition】

 typedef struct mDehazeAttr_s {
     bool                   Enable;
     float                  cfg_alpha;
     mDehaze_Setting_V21_t  dehaze_setting;
     mEnhance_Setting_V21_t enhance_setting;
     mHist_setting_V21_t    hist_setting;
 } mDehazeAttr_t;

【Felder】

Feldname Beschreibung
Enable Funktionsschalter.
cfg_alpha Anteil manueller Softwarekonfiguration, Wertebereich [0,1], Standardwert 1, Genauigkeit 0.01.
dehaze_setting Parameter der manuellen Dunstentfernungsfunktion
enhance_setting Parameter der manuellen Enhance-Funktion
hist_setting Parameter der manuellen Hist-Funktion

9.6.4.17 adehaze_sw_v2_t

【Beschreibung】 Dunstentfernungseigenschaft definieren.

【Definition】

 typedef struct adehaze_sw_V2_s {
     rk_aiq_uapi_sync_t     sync;
     dehaze_api_mode_t      mode;
     CalibDbV2_dehaze_V21_t stAuto;
     mDehazeAttr_t          stManual;
     DehazeManuAttr_t       stDehazeManu;
     EnhanceManuAttr_t      stEnhanceManu;
 } adehaze_sw_V2_t;

【Felder】

Feldname Beschreibung
sync Definitionen von rk_aiq_uapi_sync_t siehe Überblick/API-Beschreibung.
mode API-Schema.
stAuto Parameter des automatischen Dunstentfernungsmoduls.
stManual Parameter des manuellen Dunstentfernungsmoduls.
stDehazeManu Parameter der Dunstentfernungsstufe; nicht verwenden.
stEnhanceManu Parameter der Kontraststufe; nicht verwenden.

9.7 CPROC

9.7.1 Funktionsbeschreibung

CPRO (Color Processing) bietet grundlegende Farbanpassung durch Änderung von Helligkeit, Kontrast, Sättigung und Chromatizität innerhalb bestimmter Bereiche, um die gewünschte Farbwiedergabe zu erzielen. Das Modul verarbeitet Bilder in der YUV-Domäne.

9.7.2 Referenz der funktionsbezogenen APIs

9.7.3 Referenz der modulbezogenen APIs

9.7.3.1 rk_aiq_user_api2_acp_SetAttrib

【Beschreibung】

Eigenschaften des cpro-Moduls einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acp_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften des cproc-Moduls Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acp.h

Bibliotheksdatei: librkaiq.so

9.7.3.2 rk_aiq_user_api2_acp_GetAttrib

【Beschreibung】

Aktuelle Eigenschaften des CPRO-Moduls abrufen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acp_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
                                         acp_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften des cproc-Moduls Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acp.h

Bibliotheksdatei: librkaiq.so

9.7.4 Datentypen der modulbezogenen APIs

9.7.4.1 acp_attrib_t

【Beschreibung】 Parameter des CPROC-Moduls definieren.

【Definition】

    typedef struct acp_attrib_s {
        uint8_t brightness; /* 0 ~ 255 */
        uint8_t contrast; /* 0 ~ 255 */
        uint8_t saturation; /* 0 ~ 255 */
        uint8_t hue; /* 0 ~ 255 */
    } acp_attrib_t;

【Felder】

Feldname Beschreibung
brightness Helligkeit, Bereich [0,255], entsprechender Bereich [-128,127], Standardwert 128
contrast Kontrast, Bereich [0,255], entsprechender Faktor [0, 1.992], Standardwert 128
saturation Sättigung, Bereich [0,255], entsprechender Faktor [0, 1.992], Standardwert 128
hue Chromatizität, Bereich [0,255], entsprechender Winkel [-90,87.188], Standardwert 128

9.8 IE

9.8.1 Funktionsbeschreibung

IE (Image Effect) stellt Bildeffekte wie Schwarzweiß bereit. Dieses Modul verarbeitet Bilder in der YUV-Domäne.

9.8.2 Referenz der funktionsbezogenen APIs

9.8.3 Referenz der modulbezogenen APIs

9.8.3.1 rk_aiq_user_api2_aie_SetAttrib

【Beschreibung】

Eigenschaften des IE-Moduls einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_aie_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
                                         aie_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften des IE-Moduls Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_aie.h

Bibliotheksdatei: librkaiq.so

9.8.3.2 rk_aiq_user_api2_aie_GetAttrib

【Beschreibung】

Aktuelle Eigenschaften des IE-Moduls abrufen.

【Syntax】

 XCamReturn rk_aiq_user_api2_aie_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
                                         aie_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften des IE-Moduls Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_aie.h

Bibliotheksdatei: librkaiq.so

9.8.4 Datentypen der modulbezogenen APIs

9.8.4.1 aie_attrib_t

【Beschreibung】 Parameter des IE-Moduls definieren.

【Definition】

   typedef struct aie_attrib_s {
        rk_aiq_ie_effect_t mode;
   } aie_attrib_t;

【Felder】

Feldname Beschreibung
mode Effekttyp

9.8.4.2 rk_aiq_ie_effect_t

【Beschreibung】 IE-Effekttyp definieren.

【Definition】

    typedef enum rk_aiq_ie_effect_e {
        RK_AIQ_IE_EFFECT_NONE,
        RK_AIQ_IE_EFFECT_BW,
        RK_AIQ_IE_EFFECT_NEGATIVE,
        RK_AIQ_IE_EFFECT_SEPIA,
        RK_AIQ_IE_EFFECT_EMBOSS,
       RK_AIQ_IE_EFFECT_SKETCH,
        RK_AIQ_IE_EFFECT_SHARPEN, /*!< deprecated */
   } rk_aiq_ie_effect_t;

【Felder】

Feldname Beschreibung
RK_AIQ_IE_EFFECT_NONE Keine Spezialeffekte
RK_AIQ_IE_EFFECT_BW Schwarzweißeffekt
RK_AIQ_IE_EFFECT_NEGATIVE Negativeffekt, nicht unterstützt
RK_AIQ_IE_EFFECT_SEPIA Dunkelbrauner Effekt
RK_AIQ_IE_EFFECT_EMBOSS Reliefeffekt
RK_AIQ_IE_EFFECT_SKETCH Skizzeneffekt
RK_AIQ_IE_EFFECT_SHARPEN Nicht unterstützt

9.9 CSM

9.9.1 Funktionsbeschreibung

CSM (Color Space Matrix) ermöglicht die Parametereinstellung der RGB-zu-YUV-Konvertierung.

9.9.2 Referenz der funktionsbezogenen APIs

9.9.3 Referenz der modulbezogenen APIs

9.9.3.1 rk_aiq_user_api2_acsm_SetAttrib

【Beschreibung】

Eigenschaften des CSM-Moduls einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acsm_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapi_acsm_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaft des CSM-Moduls Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acsm.h

Bibliotheksdatei: librkaiq.so

【Vorsichtsmaßnahmen】

Bei attr.param.op_mode = RK_AIQ_OP_MODE_AUTO werden die integrierten CSM-Standardparameter von AIQ verwendet. Bei attr.param.op_mode = RK_AIQ_OP_MODE_MANUAL können CSM-Parameter konfiguriert werden.

attr.param.full_range kann nur auf TRUE gesetzt werden; der begrenzte Wertebereich lässt sich im CGC-Modul konfigurieren.

9.9.3.2 rk_aiq_user_api2_acsm_GetAttrib

【Beschreibung】

Aktuelle Eigenschaften des CSM-Moduls abrufen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acsm_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapi_acsm_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaft des CSM-Moduls Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acsm.h

Bibliotheksdatei: librkaiq.so

9.9.4 Datentypen der modulbezogenen APIs

9.9.4.1 rk_aiq_uapi_acsm_attrib_t

【Beschreibung】 Parameter des CSM-Moduls definieren.

【Definition】

   typedef struct rk_aiq_uapi_acsm_attrib_s {
       rk_aiq_uapi_sync_t sync;
       rk_aiq_acsm_params_t param;
   } rk_aiq_uapi_acsm_attrib_t;

【Felder】

Feldname Beschreibung
sync Definitionen von rk_aiq_uapi_sync_t siehe Abschnitt Überblick/API-Beschreibung
rk_aiq_acsm_params_t CSM-Parameter

9.9.4.2 rk_aiq_acsm_params_t

【Beschreibung】 CSM-Modulparameter definieren.

【Definition】

 typedef struct __csm_param {
     RKAiqOPMode_t op_mode;
     bool full_range;
     uint8_t y_offset;
     uint8_t c_offset;
     float coeff[RK_AIQ_CSM_COEFF_NUM];
 } Csm_Param_t;

【Felder】

Feldname Beschreibung
op_mode Modus: RK_AIQ_OP_MODE_AUTO oder RK_AIQ_OP_MODE_MANUAL
full_range Ob der volle Wertebereich ausgegeben wird; Standardwert TRUE.
Hinweis: Bei ISP30 darf dieses Attribut nur TRUE sein. Der begrenzte Wertebereich
sollte über die CGC-Modul-API konfiguriert werden.
y_offset Helligkeitsoffset, Bereich [0,63], Standardwert 0
c_offset Chromaoffset, Bereich [0,255], Standardwert 0
coeff 3x3-RGB-zu-YUV-Konvertierungsmatrix, Bereich [-2, 1.992], Standardwerte:
[ 0.299, 0.587, 0.114, -
0.169, -0.331, 0.5,
0.5, -0.419, -0.081]

9.10 Schärfung

9.10.1 Funktionsbeschreibung

Das Sharpen-Modul verbessert die Bildklarheit, indem es unter anderem die Kantenschärfung anpasst sowie Bilddetails und Texturen verstärkt.

9.10.2 Referenz der funktionsbezogenen APIs

9.10.2.1 rk_aiq_uapi2_setSharpness

【Beschreibung】

Schärfungsstufe einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int
 level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Schärfungsstufe, Wertebereich [0,100], Standardwert 50 Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.10.2.2 rk_aiq_uapi2_getSharpness

【Beschreibung】

Schärfungsstufe abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int*
 level);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
level Schärfungsstufe Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.10.3 Referenz der modulbezogenen APIs

9.10.3.1 rk_aiq_user_api2_asharpV4_SetAttrib

【Beschreibung】 Eigenschaften des Schärfungsalgorithmus einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_asharpV4_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_sharp_attrib_v4_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Rauschunterdrückung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_asharp_v4.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.10.3.2 rk_aiq_user_api2_asharpV4_GetAttrib

【Beschreibung】 Eigenschaften des Schärfungsalgorithmus abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_asharpV4_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_sharp_attrib_v4_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften der Rauschunterdrückung Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_asharp_v4.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.10.3.3 rk_aiq_user_api2_asharpV4_SetStrength

【Beschreibung】 Schärfungsstärke einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_asharpV4_SetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_sharp_strength_v4_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Schärfungsstärkestruktur; der Prozentwert innerhalb
der Struktur hat den Bereich 0.0-1.0
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_asharp_v4.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.10.3.4 rk_aiq_user_api2_asharpV4_GetStrength

【Beschreibung】 Schärfungsstärke abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_asharpV4_GetStrength(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_sharp_strength_v4_t *pStrength);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
pStrength Zeiger auf die Schärfungsstärkestruktur; der Prozentwert innerhalb
der Struktur hat den Bereich 0.0-1.0
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_asharp_v4.h, RkAiqHandleIntV3x.h

Bibliotheksdatei: librkaiq.so

9.10.4 Datentypen der modulbezogenen APIs

9.10.4.1 rk_aiq_sharp_attrib_v4_t

【Beschreibung】 Parameter des Schärfungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_sharp_attrib_v4_s {
     rk_aiq_uapi_sync_t sync;
     Asharp4_OPMode_t eMode;
     Asharp_Auto_Attr_V4_t stAuto;
     Asharp_Manual_Attr_V4_t stManual;
 } rk_aiq_sharp_attrib_v4_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus siehe Abschnitt Überblick/API-Beschreibung
eMode Eigenschaften des Schärfungsmoduls
stAuto Parameter des automatischen Schärfungsmodus

9.10.4.2 Asharp4_OPMode_t

【Beschreibung】

【Definition】

 typedef enum Asharp4_OPMode_e {
     ASHARP4_OP_MODE_INVALID           = 0,
     ASHARP4_OP_MODE_AUTO              = 1,
     ASHARP4_OP_MODE_MANUAL            = 2,
     ASHARP4_OP_MODE_REG_MANUAL        = 3,
     ASHARP4_OP_MODE_MAX
 } Asharp4_OPMode_t;

【Felder】

Feldname Beschreibung
ASHARP4_OP_MODE_INVALID Ungültiger Modus des Schärfungsmoduls
ASHARP4_OP_MODE_AUTO Automatischer Modus des Schärfungsmoduls
ASHARP4_OP_MODE_MANUAL Algorithmuseinstellungen für den manuellen Modus des
Schärfungsmoduls
ASHARP4_OP_MODE_REG_MANUAL Registereinstellungen
ASHARP4_OP_MODE_MAX Maximalwert der Schärfungsmodusaufzählung;
ungültiger Modus

9.10.4.3 Asharp_Auto_Attr_V4_t

【Beschreibung】 Automatischen Schärfungsmodus und die Algorithmuseigenschaftsparameter jeder ISO-Stufe definieren.

【Definition】

 typedef struct Asharp_Auto_Attr_V4_s
 {
     RK_SHARP_Params_V4_t stParams;
     RK_SHARP_Params_V4_Select_t stSelect;
 } Asharp_Auto_Attr_V4_t;

【Felder】

Feldname Beschreibung
stParams Algorithmuseigenschaftsparameter des SHARP-Moduls für jede ISO-Stufe
stSelect Vom Sharp-Modul berechneter Eigenschaftsparameter

9.10.4.4 Asharp_Manual_Attr_V4_t

【Beschreibung】 Manuelle Eigenschaften des Schärfungsmoduls definieren.

【Definition】

 typedef struct Asharp_Manual_Attr_V4_s
 {
     RK_SHARP_Params_V4_Select_t stSelect;
     RK_SHARP_Fix_V4_t stFix;
 } Asharp_Manual_Attr_V4_t;

【Felder】

Feldname Beschreibung
stSelect Manuell gesetzte Sharp-Algorithmusparameter
stFix Sharp-Registerwert

9.10.4.5 RK_SHARP_Params_V4_t

【Beschreibung】 Manuelle Eigenschaften des Schärfungsmoduls definieren.

【Definition】

 typedef struct RK_SHARP_Params_V4_s
 {
     int enable;
     int iso[RK_SHARP_V4_MAX_ISO_NUM];
     short luma_point        [RK_SHARP_V4_LUMA_POINT_NUM];
     short luma_sigma        [RK_SHARP_V4_MAX_ISO_NUM]
 [RK_SHARP_V4_LUMA_POINT_NUM];
     float pbf_gain          [RK_SHARP_V4_MAX_ISO_NUM];
     float pbf_add           [RK_SHARP_V4_MAX_ISO_NUM];
     float pbf_ratio         [RK_SHARP_V4_MAX_ISO_NUM];
     float gaus_ratio        [RK_SHARP_V4_MAX_ISO_NUM];
     float sharp_ratio       [RK_SHARP_V4_MAX_ISO_NUM];
     short hf_clip        [RK_SHARP_V4_MAX_ISO_NUM][RK_SHARP_V4_LUMA_POINT_NUM];
     float bf_gain           [RK_SHARP_V4_MAX_ISO_NUM];
     float bf_add            [RK_SHARP_V4_MAX_ISO_NUM];
     float bf_ratio          [RK_SHARP_V4_MAX_ISO_NUM];
     short local_sharp_strength  [RK_SHARP_V4_MAX_ISO_NUM]
 [RK_SHARP_V4_LUMA_POINT_NUM];
     float prefilter_coeff[RK_SHARP_V4_MAX_ISO_NUM][RK_SHARP_V4_PBF_DIAM *
 RK_SHARP_V4_PBF_DIAM];
     float GaussianFilter_coeff   [RK_SHARP_V4_MAX_ISO_NUM][RK_SHARP_V4_RF_DIAM *
 RK_SHARP_V4_RF_DIAM];
     float hfBilateralFilter_coeff    [RK_SHARP_V4_MAX_ISO_NUM]
 [RK_SHARP_V4_BF_DIAM * RK_SHARP_V4_BF_DIAM];
 } RK_SHARP_Params_V4_t;

【Felder】

Parametername Parametertyp Kurzbeschreibung
Enable Abstimmparameter Aktivierungsschalter des Sharp-Moduls.
1: ein, 0: aus.
iso Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen
Abstimmparametern. Derzeit werden nur 13 Stufen unterstützt.
pbf_gain Abstimmparameter Multiplikator des Vorfilter-Sigma. Je größer
der Wert, desto stärker die Filterung und desto weniger Rauschen
und Details.
Wertebereich [0.0, 2.0], Standardwert 1.0.
pbf_add Abstimmparameter Additiver Offset des Vorfilter-Sigma. Je größer
der Wert, desto stärker die Filterung und desto weniger Rauschen
und Details.
Wertebereich [0, 1023], Standardwert 0.
pbf_ratio Abstimmparameter Vorfilter-Fusionsgewicht. Je größer der Wert, desto stärker
die Filterung und desto weniger Rauschen und Details.
Wertebereich [0.0,
1.0], Standardwert 0.5.
gaus_ratio Abstimmparameter Das Führungsbild der hochfrequenten bilateralen Filterung
entsteht durch Fusion von Gauß-Filterergebnis und
Originalbild.
Je größer der Wert, desto größer das Führungsgewicht
des gaußschen bilateralen Filters.
Wertebereich [0.0, 1.0], Standardwert 0.
sharp_ratio Abstimmparameter Schärfungsstärke; größere Werte bewirken stärkere
Schärfung.
Wertebereich [0.0, 16], Standardwert 6.
bf_gain Abstimmparameter Multiplikator des Sigma der hochfrequenten bilateralen Filterung.
Je größer der Wert, desto stärker die Filterung und desto weniger
Rauschen und Details.
Wertebereich [0.0, 2.0], Standardwert 1.0.
bf_add Abstimmparameter Additiver Sigma-Offset der hochfrequenten bilateralen
Filterung. Größere Werte bewirken stärkere Filterung,
weniger Rauschen und weniger Details.
Wertebereich [0, 1023], Standardwert 0.
bf_add Abstimmparameter Fusionsgewicht der hochfrequenten bilateralen Filterung.
Größere Werte bewirken stärkere Filterung, weniger Rauschen
und weniger Details. Wertebereich [0.0,
1.0], Standardwert 0.5.
Parametername Parametertyp Kurzbeschreibung
luma_point / luma_sigma Abstimmparameter Verschiedenen Pixelhelligkeiten entsprechen unterschiedliche
Rausch-SIGMA-Kurven.
luma_point ist der Kurvenhelligkeitswert im Bereich [0,
1023].
luma_sigma ist die Rauschintensität im Bereich [0,
1023].
luma_point / hf_clip Abstimmparameter Begrenzungsbereich der Hochfrequenzwerte bei unterschiedlichen
Pixelhelligkeiten.
Größere Werte erlauben eine höhere maximale
Schärfungsstärke.
Wertebereich [0, 1023], Standardwert 256.
luma_point /
local_sharp_strength
Abstimmparameter Anteil bzw. Hochfrequenzüberlagerungsgewicht bei unterschiedlichen
Pixelhelligkeiten.
Je größer der Wert, desto mehr Hochfrequenzanteile dürfen
überlagert werden und desto schärfer ist das Bild.
Wertebereich [0, 1023], Standardwert 512.
prefilter_coeff Abstimmparameter Vorfilteroperatoren.
GaussianFilter_coeff Abstimmparameter Gauß-Filteroperatoren.
hfBilateralFilter_coeff Abstimmparameter Operatoren der hochfrequenten bilateralen Filterung.

9.10.4.6 RK_SHARP_Params_V4_Select_t

【Beschreibung】 Algorithmuseigenschaften des manuellen Schärfungsmodus definieren.

【Definition】

 typedef struct RK_SHARP_Params_V4_Select_s
 {
     int enable;
     short luma_point    [RK_SHARP_V4_LUMA_POINT_NUM];
     short luma_sigma    [RK_SHARP_V4_LUMA_POINT_NUM];
     float pbf_gain      ;
     float pbf_add       ;
     float pbf_ratio     ;
     float gaus_ratio    ;
     float sharp_ratio   ;
     short hf_clip       [RK_SHARP_V4_LUMA_POINT_NUM];
     float bf_gain       ;
     float bf_add        ;
     float bf_ratio      ;
     short local_sharp_strength        [RK_SHARP_V4_LUMA_POINT_NUM];
     float prefilter_coeff[RK_SHARP_V4_PBF_DIAM * RK_SHARP_V4_PBF_DIAM];
     float GaussianFilter_coeff   [RK_SHARP_V4_RF_DIAM * RK_SHARP_V4_RF_DIAM];
     float hfBilateralFilter_coeff    [RK_SHARP_V4_BF_DIAM * RK_SHARP_V4_BF_DIAM];
 } RK_SHARP_Params_V4_Select_t;

【Felder】

Parametername Parametertyp Kurzbeschreibung
Enable Abstimmparameter Aktivierungsschalter des Sharp-Moduls.
1: ein, 0: aus.
iso Abstimmparameter Verschiedene ISO-Stufen mit unterschiedlichen
Abstimmparametern. Derzeit werden nur 13 Stufen unterstützt.
pbf_gain Abstimmparameter Multiplikator des Vorfilter-Sigma. Je größer
der Wert, desto stärker die Filterung und desto weniger Rauschen
und Details.
Wertebereich [0.0, 2.0], Standardwert 1.0.
pbf_add Abstimmparameter Additiver Offset des Vorfilter-Sigma. Je größer
der Wert, desto stärker die Filterung und desto weniger Rauschen
und Details.
Wertebereich [0, 1023], Standardwert 0.
pbf_ratio Abstimmparameter Vorfilter-Fusionsgewicht. Je größer der Wert, desto stärker
die Filterung und desto weniger Rauschen und Details.
Wertebereich [0.0,
1.0], Standardwert 0.5.
gaus_ratio Abstimmparameter Das Führungsbild der hochfrequenten bilateralen Filterung
entsteht durch Fusion von Gauß-Filterergebnis und
Originalbild.
Je größer der Wert, desto größer das Führungsgewicht
des gaußschen bilateralen Filters.
Wertebereich [0.0, 1.0], Standardwert 0.
sharp_ratio Abstimmparameter Schärfungsstärke; größere Werte bewirken stärkere
Schärfung.
Wertebereich [0.0, 16], Standardwert 6.
bf_gain Abstimmparameter Multiplikator des Sigma der hochfrequenten bilateralen Filterung.
Je größer der Wert, desto stärker die Filterung und desto weniger
Rauschen und Details.
Wertebereich [0.0, 2.0], Standardwert 1.0.
bf_add Abstimmparameter Additiver Sigma-Offset der hochfrequenten bilateralen
Filterung. Größere Werte bewirken stärkere Filterung,
weniger Rauschen und weniger Details.
Wertebereich [0, 1023], Standardwert 0.
bf_add Abstimmparameter Fusionsgewicht der hochfrequenten bilateralen Filterung.
Größere Werte bewirken stärkere Filterung, weniger Rauschen
und weniger Details. Wertebereich [0.0,
1.0], Standardwert 0.5.
Parametername Parametertyp Kurzbeschreibung
luma_point / luma_sigma Abstimmparameter Verschiedenen Pixelhelligkeiten entsprechen unterschiedliche
Rausch-SIGMA-Kurven.
luma_point ist der Kurvenhelligkeitswert im Bereich [0,
1023].
luma_sigma ist die Rauschintensität im Bereich [0,
1023].
luma_point / hf_clip Abstimmparameter Begrenzungsbereich der Hochfrequenzwerte bei unterschiedlichen
Pixelhelligkeiten.
Größere Werte erlauben eine höhere maximale
Schärfungsstärke.
Wertebereich [0, 1023], Standardwert 256.
luma_point /
local_sharp_strength
Abstimmparameter Anteil bzw. Hochfrequenzüberlagerungsgewicht bei unterschiedlichen
Pixelhelligkeiten.
Je größer der Wert, desto mehr Hochfrequenzanteile dürfen
überlagert werden und desto schärfer ist das Bild.
Wertebereich [0, 1023], Standardwert 512.
prefilter_coeff Abstimmparameter Vorfilteroperatoren.
GaussianFilter_coeff Abstimmparameter Gauß-Filteroperatoren.
hfBilateralFilter_coeff Abstimmparameter Operatoren der hochfrequenten bilateralen Filterung.

9.10.4.7 RK_SHARP_Fix_V4_t

【Beschreibung】 Registerkonfiguration des manuellen Schärfungsmodus definieren.

【Definition】

 typedef struct RK_SHARP_Fix_V4_s
 {
     // SHARP_SHARP_EN (0x0000)
     uint8_t sharp_clk_dis;
     uint8_t sharp_exgain_bypass;
     uint8_t sharp_center_mode;
     uint8_t sharp_bypass;
     uint8_t sharp_en;
     // SHARP_SHARP_RATIO  (0x0004)
     uint8_t sharp_sharp_ratio;
     uint8_t sharp_bf_ratio;
     uint8_t sharp_gaus_ratio;
     uint8_t sharp_pbf_ratio;
     // SHARP_SHARP_LUMA_DX (0x0008)
     uint8_t sharp_luma_dx[7];
     // SHARP_SHARP_PBF_SIGMA_INV_0 (0x000c - 0x0014)
     uint16_t sharp_pbf_sigma_inv[8];
     // SHARP_SHARP_BF_SIGMA_INV_0 (0x0018 -  0x0020)
     uint16_t sharp_bf_sigma_inv[8];
     // SHARP_SHARP_SIGMA_SHIFT (0x00024)
     uint8_t sharp_bf_sigma_shift;
     uint8_t sharp_pbf_sigma_shift;
     // SHARP_SHARP_EHF_TH_0 (0x0028 -  0x0030)
     uint16_t sharp_ehf_th[8];
     // SHARP_SHARP_CLIP_HF_0 (0x0034 -  0x003c)
     uint16_t sharp_clip_hf[8];
     // SHARP_SHARP_PBF_COEF (0x00040)
     uint8_t sharp_pbf_coef[3];
     // SHARP_SHARP_BF_COEF (0x00044)
     uint8_t sharp_bf_coef[3];
     // SHARP_SHARP_GAUS_COEF (0x00048 - 0x0004c)
     uint8_t sharp_gaus_coef[6];
 } RK_SHARP_Fix_V4_t;

【Felder】

Parametername Parameterbeschreibung
sharp_clk_dis clk-Gate-Einstellung des Sharp-Moduls; derzeit nicht unterstützt,
Standardwert 0.
sharp_exgain_bypass Ob das externe lokale Verstärkungsmodul umgangen wird; diese Einstellung wird
derzeit nicht unterstützt, Standardwert 0.
sharp_center_mode Ob die Schärfung den Bildmittelpunkt als Koordinatenursprung verwendet.
Konfiguration derzeit nicht unterstützt, Standardwert 0.
sharp_bypass Schärfungsmodul umgehen: 1 umgehen; 0 nicht umgehen
sharp_en Schärfungsmodul aktivieren: 1 aktiviert; 0 deaktiviert
sharp_sharp_ratio sharp_ratio: Schärfungsstärke, 0~15.9
sharp_bf_ratio Fusionsgewicht des bilateralen Filters, 0~1.0
sharp_gaus_ratio gaus_ratio: Gauß-Filter-Fusionsgewicht, Wertebereich [0.0, 1.0]
sharp_pbf_ratio Fusionsgewicht der bilateralen Vorfilterung, Wertebereich [0.0, 1.0],
Standardwert 0.5
sharp_luma_dx7 Abstand zwischen Punkt 6 und Punkt 7. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx7.
sharp_luma_dx6 Abstand zwischen Punkt 5 und Punkt 6. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx6.
sharp_luma_dx5 Abstand zwischen Punkt 4 und Punkt 5. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx5.
sharp_luma_dx4 Abstand zwischen Punkt 3 und Punkt 4. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx4.
sharp_luma_dx3 Abstand zwischen Punkt 2 und Punkt 3. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx3.
sharp_luma_dx2 Abstand zwischen Punkt 1 und Punkt 2. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx2.
sharp_luma_dx1 Abstand zwischen Punkt 0 und Punkt 1. Der tatsächliche Abstand beträgt
2^sw_sharp_luma_dx1.
Hinweis: Der Gesamtabstand muss 1024 betragen.
sharp_pbf_sigma_inv Kehrwert von Sharp-pbf-Sigma
sharp_bf_sigma_inv Kehrwert von Sharp-bf-Sigma
sharp_pbf_coef Bilateraler Vorfilterkern des Schärfungsmoduls
sharp_bf_coef Bilaterale Filterkerne
sharp_gaus_coef Gauß-Filterkern

9.10.4.8 rk_aiq_sharp_strength_v4_t

【Beschreibung】 Konfigurationsstruktur der Rauschunterdrückungsstärke des Schärfungsmoduls definieren.

【Definition】

 typedef struct rk_aiq_sharp_strength_v4_s {
     rk_aiq_uapi_sync_t sync;
     float percent;
 } rk_aiq_sharp_strength_v4_t;

【Felder】

Feldname Beschreibung
sync Auswahl des synchronen/asynchronen Modus siehe Abschnitt Überblick/API-Beschreibung
percent Schärfungsstärke, Wertebereich 0.0-1.0.

9.11 Gamma

9.11.1 Funktionsbeschreibung

Das Gamma-Modul führt eine nichtlineare Umwandlung im Helligkeitsraum durch, um Bilder an das Ausgabegerät anzupassen. RK3588 unterstützt eine 49-Punkt-Gammakurve im logarithmischen Bereich mit folgenden Abszissen:

 int X_isp30[49] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32,
 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512, 640,
 768, 896, 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840,
 4095};

9.11.2 Referenz der funktionsbezogenen APIs

9.11.2.1 rk_aiq_uapi2_setGammaCoef

【Beschreibung】

Gammakurven mit GammaCoef und SlopeAtZero schnell einstellen. Die Kurve wird wie folgt erzeugt:

 for(int i = 0; i < 49; i++) {
     Y_isp30[i] = 4095 * pow(X_isp30[i] / 4095, 1 / GammaCoef + SlopeAtZero);
     Y_isp30[i] = LIMIT_VALUE(Y_isp30[i], 4095, 0);
  }

【Syntax】

 XCamReturn rk_aiq_uapi2_setGammaCoef(const rk_aiq_sys_ctx_t* ctx, float
 GammaCoef, float SlopeAtZero);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
GammaCoef Gammakoeffizient, Wertebereich [0,100], Standardwert 2.2,
Genauigkeit 0.01
Eingabe
SlopeAtZero Steigung im dunklen Bereich, Wertebereich [-0.05,0.05], Standardwert 0,
Genauigkeit 0.001
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

Die über die API gesetzte Gammakurve wird nicht szenenabhängig umgeschaltet. Ändert sich die Szene, stellen Sie die Kurve erneut über die API ein.

9.11.3 Datentypen der funktionsbezogenen APIs

9.11.4 Referenz der modulbezogenen APIs

9.11.4.1 rk_aiq_user_api2_agamma_SetAttrib

【Beschreibung】 Gamma-Softwareeigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_agamma_v11_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx, const
 rk_aiq_gamma_v11_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der Gamma-Softwareeigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_agamma.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

Die über die API gesetzte Gammakurve wird nicht szenenabhängig umgeschaltet. Ändert sich die Szene, stellen Sie die Kurve erneut über die API ein.

9.11.4.2 rk_aiq_user_api2_agamma_GetAttrib

【Beschreibung】 Gamma-Softwareeigenschaften abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_agamma_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_gamma_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der Gamma-Softwareeigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_agamma.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.11.5 Datentypen der modulbezogenen APIs

9.11.5.1 rk_aiq_gamma_op_mode_t

【Beschreibung】 Gamma-Betriebsart definieren.

【Definition】

 typedef enum rk_aiq_gamma_op_mode_s {
     RK_AIQ_GAMMA_MODE_OFF             = 0,
     RK_AIQ_GAMMA_MODE_MANUAL          = 1,
     RK_AIQ_GAMMA_MODE_FAST            = 2,
 } rk_aiq_gamma_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_GAMMA_MODE_OFF API ausgeschaltet
RK_AIQ_GAMMA_MODE_MANUAL Manueller API-Modus
RK_AIQ_GAMMA_MODE_FAST API-Schnellmodus

9.11.5.2 Agamma_api_Fast_t

【Beschreibung】 Gamma-Eigenschaft im Schnellmodus definieren.

Gammakurven mit GammaBeef und SlopeAtZero schnell einstellen. Die Kurve wird wie folgt erzeugt (Schreibweise GammaBeef aus der Quelle):

 for(int i = 0; i < 49; i++) {
     Y_isp30[i] = 4095 * pow(X_isp30[i] / 4095, 1 / GammaCoef + SlopeAtZero);
     Y_isp30[i] = LIMIT_VALUE(Y_isp30[i], 4095, 0);
  }

【Definition】

 typedef struct Agamma_api_Fast_s {
     bool  en;
     float GammaCoef;
     float SlopeAtZero;
 } Agamma_api_Fast_t;

【Felder】

Feldname Beschreibung
en Funktionsschalter
GammaCoef Gammakoeffizient, Wertebereich 0, 100, Standardwert 2.2,
Genauigkeit 0.01
SlopeAtZero Steigung im dunklen Bereich: laut Quelle 0.05 und 0.05, Standardwert 0,
Genauigkeit 0.001. Dies widerspricht dem zuvor angegebenen Bereich [-0.05,0.05].

9.11.5.3 GammaType_t

【Beschreibung】 Eigenschaft des X-Achsen-Abstandstyps der Gammakurve definieren.

【Definition】

 typedef enum GammaType_e {
    GAMMATYPE_LOG = 0,
    GAMMATYPE_EQU = 1,
 } GammaType_t;

【Felder】

Feldname Beschreibung
GAMMATYPE_LOG Ungleichmäßige Abstände
GAMMATYPE_EQU Gleichmäßige Abstände

9.11.5.4 Agamma_api_manualV21_t

【Beschreibung】 Manuelle Gamma-Eigenschaft für RK356x definieren.

【Definition】

 typedef struct Agamma_api_manualV21_s {
    bool        Gamma_en;
    GammaType_t Gamma_out_segnum;
    uint16_t    Gamma_out_offset;
    uint16_t    Gamma_curve[CALIBDB_AGAMMA_KNOTS_NUM];
 } Agamma_api_manualV21_t;

【Felder】

Feldname Beschreibung
Gamma_en Funktionsschalter
Gamma_out_segnum X-Achsen-Abstandstyp der manuellen Gammakurve, Standardwert GAMMATYPE_LOG
Gamma_out_offset Korrekturkoeffizient der manuellen Gammakurve, Wertebereich [-2048, 2048],
Standardwert 0, Genauigkeit 1.
Gamma_curve Manuelle Gammakurve, Wertebereich [0,4095], Genauigkeit 1

9.11.5.5 Agamma_api_manualV30_t

【Beschreibung】 Manuelle Gamma-Eigenschaft für RK3588 definieren.

【Definition】

 typedef struct Agamma_api_manualV30_s {
    bool     Gamma_en;
    uint16_t Gamma_out_offset;
    uint16_t Gamma_curve[CALIBDB_AGAMMA_KNOTS_NUM_V30];
 } Agamma_api_manualV30_t;

【Felder】

Feldname Beschreibung
Gamma_en Funktionsschalter
Gamma_out_offset Korrekturkoeffizient der manuellen Gammakurve, Wertebereich [-2048, 2048],
Standardwert 0, Genauigkeit 1.
Gamma_curve Manuelle Gammakurve, Wertebereich [0,4095], Genauigkeit 1

9.11.5.6 rk_aiq_gamma_attrV21_t

【Beschreibung】 Gamma-Eigenschaft für RK356x definieren.

【Definition】

 typedef struct rk_aiq_gamma_attrV21_s {
    rk_aiq_gamma_op_mode_t mode;
    Agamma_api_manualV21_t stManual;
    Agamma_api_Fast_t      stFast;
 } rk_aiq_gamma_attrV21_t;

【Felder】

Feldname Beschreibung
mode API-Modus
stManual Manueller Gamma-Parameter
stFast Schnellmodusparameter

9.11.5.7 rk_aiq_gamma_attrV30_t

【Beschreibung】 Gamma-Eigenschaft für RK3588 definieren.

【Definition】

 typedef struct rk_aiq_gamma_attrV30_s {
    rk_aiq_gamma_op_mode_t mode;
    Agamma_api_manualV30_t stManual;
    Agamma_api_Fast_t      stFast;
 } rk_aiq_gamma_attrV30_t;

【Felder】

Feldname Beschreibung
mode API-Schema
stManual Manueller Gamma-Parameter
stFast Schnellmodusparameter

9.11.5.8 rk_aiq_gamma_attr_t

【Beschreibung】 Gamma-Eigenschaft definieren.

【Definition】

 typedef struct rk_aiq_gamma_attr_s {
     rk_aiq_uapi_sync_t     sync;
     rk_aiq_gamma_attrV21_t atrrV21;
     rk_aiq_gamma_attrV30_t atrrV30;
 } rk_aiq_gamma_attr_t;

【Felder】

Feldname Beschreibung
sync Zur Definition von rk_aiq_uapi_sync_t siehe Übersicht/API-Beschreibung
atrrV21 Manuelle Gamma-Eigenschaft für den RK356x-Chip
atrrV30 Manuelle Gamma-Eigenschaft für den RK3588-Chip

9.12 CCM

9.12.1 Funktionsbeschreibung

Das CCM-Modul (Color Correction Matrix) führt Farbkorrektur auf Bildern durch.

9.12.2 Referenz der funktionsbezogenen APIs

9.12.2.1 rk_aiq_uapi2_setCCMMode

【Beschreibung】 CCM-Betriebsart einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setCCMMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsart;
Wertebereich: {OP_AUTO, OP_MANUAL}
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen des manuellen/automatischen Modus siehe “sample_set_ccm_manual” / “sample_set_ccm_auto” in sample_accm_module.cpp.

9.12.2.2 rk_aiq_uapi2_getCCMMode

【Beschreibung】 CCM-Betriebsart abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getCCMMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsart;
Wertebereich: {OP_AUTO, OP_MANUAL}
Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen der Betriebsart siehe “sample_get_ccm_mode” in sample_accm_module.cpp.

9.12.2.3 rk_aiq_uapi2_setMCcCoef

【Beschreibung】 CCM-Matrix im manuellen Modus einstellen, einschließlich Farbkorrekturmatrix und R/G/B-Kanaloffset.

【Syntax】

 XCamReturn rk_aiq_uapi2_setMCcCoef(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_ccm_matrix_t *mccm);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mccm CCM-Matrix im manuellen Modus einschließlich Farbkorrekturmatrix
und R/G/B-Kanaloffset
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen einer manuellen CCM-Matrix siehe “sample_set_ccm_manual_matrix” in sample_accm_module.cpp.

9.12.2.4 rk_aiq_uapi2_getMCcCoef

【Beschreibung】 CCM-Matrix einschließlich Farbkorrekturmatrix und R/G/B-Kanaloffset abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getMCcCoef(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_ccm_matrix_t *mccm);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mccm CCM-Matrix einschließlich Farbkorrekturmatrix und R/G/B-
Kanaloffset
Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen der CCM-Matrix siehe “sample_get_ccm_manual_matrix” in sample_accm_module.cpp.

9.12.2.5 rk_aiq_uapi2_getACcmSat

【Beschreibung】 CCM-Sättigung im automatischen Modus abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getACcmSat(const rk_aiq_sys_ctx_t* ctx,  float
 *finalsat);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
finalsat Sättigung; im manuellen Modus 0 Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zur CCM-Sättigung im automatischen Modus siehe “sample_get_accm_sat” in sample_accm_module.cpp.

9.12.2.6 rk_aiq_uapi2_getACcmMatrixName

【Beschreibung】 CCM-Matrixnamen im automatischen Modus abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getACcmMatrixName(const rk_aiq_sys_ctx_t* ctx, char
 **ccm_name);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
ccm_name CCM-Matrixname Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen der CCM-Sättigung im automatischen Modus siehe “sample_get_accm_matrix_name” in sample_accm_module.cpp (die Quelle schreibt hier Sättigung).

9.12.3 Datentypen der funktionsbezogenen APIs

9.12.3.1 opMode_t

【Beschreibung】 CCM-Betriebsart definieren.

【Definition】

 typedef enum opMode_e {
     OP_AUTO = 0,
     OP_MANUAL = 1,
     OP_INVAL
 } opMode_t;

【Felder】

Feldname Beschreibung
OP_AUTO Automatikmodus
OP_MANUAL Manueller Modus
OP_INVAL Ungültiger Wert

9.12.3.2 rk_aiq_ccm_matrix_t

【Beschreibung】 CCM-Matrix definieren.

【Definition】

 typedef struct rk_aiq_ccm_matrix_s {
     float  ccMatrix[9];
     float  ccOffsets[3];
 } rk_aiq_ccm_matrix_t;

【Felder】

Feldname Beschreibung
ccMatrix Farbkorrekturmatrix im manuellen Modus;
Wertebereich [-8, 7.992]
ccOffsets RGB-Komponentenoffset im manuellen Modus;
Wertebereich [-4096, 4095]

9.12.4 Referenz der modulbezogenen APIs

9.12.4.1 rk_aiq_user_api2_accm_v2_SetAttrib

【Beschreibung】 CCM-Eigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_accm_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ccm_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaftsparameter von CCM Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_accm.h, rk_aiq_uapi_accm_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen der CCM-Eigenschaften siehe “sample_ccm_setCcmAttr” in sample_accm_module.cpp.

9.12.4.2 rk_aiq_user_api2_accm_GetAttrib

【Beschreibung】 CCM-Eigenschaften abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_accm_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ccm_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Parametereigenschaften von CCM Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_accm.h, rk_aiq_uapi_accm_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen der CCM-Eigenschaften siehe “sample_ccm_getCcmAttr” in sample_accm_module.cpp.

9.12.4.3 rk_aiq_user_api2_accm_QueryCcmInfo

【Beschreibung】 CCM-Informationen abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_accm_QueryCcmInfo(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ccm_querry_info_t *ccm_querry_info);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
ccm_querry_info CCM-Abfrageinhalt Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_accm.h, rk_aiq_uapi_accm_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abfragen von CCM-Informationen siehe “sample_query_ccm_info” in sample_accm_module.cpp.

9.12.5 Datentypen der modulbezogenen APIs

9.12.5.1 rk_aiq_ccm_op_mode_t

【Beschreibung】 CCM-Betriebsart definieren.

【Definition】

 typedef enum rk_aiq_ccm_op_mode_s {
     RK_AIQ_CCM_MODE_INVALID                     = 0,
     RK_AIQ_CCM_MODE_MANUAL                      = 1,
     RK_AIQ_CCM_MODE_AUTO                        = 2,
     RK_AIQ_CCM_MODE_MAX
 } rk_aiq_ccm_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_CCM_MODE_INVALID Ungültiger CCM-Modus
RK_AIQ_CCM_MODE_MANUAL Manueller CCM-Modus
RK_AIQ_CCM_MODE_AUTO Automatischer CCM-Modus

9.12.5.2 rk_aiq_ccm_mccm_attrib_t

【Beschreibung】 Manuelle CCM-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_ccm_mccm_attrib_s {
     float  ccMatrix[9];
     float  ccOffsets[3];
     float  y_alpha_curve[17];
     float low_bound_pos_bit;
 } rk_aiq_ccm_mccm_attrib_t;

【Felder】

Feldname Beschreibung
ccMatrix Farbkorrekturmatrix;
Wertebereich [-8, 7.992]
ccOffsets RGB-Komponentenoffset;
Wertebereich [-4096, 4095]
y_alpha_curve Intensitätskonfiguration der Farbkorrekturstärke-Anpassungskurve in Abhängigkeit
von der Pixelhelligkeit (12bit).
Gültige Werte [0x0, 0x400]; 0x400 bedeutet einfache Intensität, 0x0 bedeutet
keine Korrektur.
low_bound_pos_bit Helligkeitsbereich des Knickpunkts der Pixelhelligkeits-Anpassungskurve (12bit):
[0, 2^low_bound_pos_bit] und [4095-2^low_bound_pos_bit,
4095].
Gültige Werte [0,10].

9.12.5.3 rk_aiq_ccm_color_inhibition_t

【Beschreibung】 CCM-Farbunterdrückungsstufe definieren.

【Definition】

 typedef struct rk_aiq_ccm_color_inhibition_s {
     float sensorGain[RK_AIQ_ACCM_COLOR_GAIN_NUM];
     float level[RK_AIQ_ACCM_COLOR_GAIN_NUM];
 } rk_aiq_ccm_color_inhibition_t;

【Felder】

Feldname Beschreibung
sensorGain Belichtungsverstärkungskomponente
level Farbunterdrückungsstufe;
Wertebereich [0,100];
Standardwert 0

9.12.5.4 rk_aiq_ccm_color_saturation_t

【Beschreibung】 Farbsättigungsstufe des automatischen CCM definieren.

【Definition】

 typedef struct rk_aiq_ccm_color_saturation_s {
     float sensorGain[RK_AIQ_ACCM_COLOR_GAIN_NUM];
     float level[RK_AIQ_ACCM_COLOR_GAIN_NUM];
 } rk_aiq_ccm_color_saturation_t;

【Felder】

Feldname Beschreibung
sensorGain Belichtungsverstärkungskomponente
level Farbsättigungsstufe;
Wertebereich [0,100];
Standardwert 100

9.12.5.5 rk_aiq_ccm_accm_attrib_t

【Beschreibung】 Automatische CCM-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_ccm_accm_attrib_s {
     rk_aiq_ccm_color_inhibition_t color_inhibition;
     rk_aiq_ccm_color_saturation_t color_saturation;
 } rk_aiq_ccm_accm_attrib_t;

【Felder】

Feldname Beschreibung
color_inhibition CCM-Farbunterdrückungsstufe
color_saturation CCM-Farbsättigungsstufe

9.12.5.6 rk_aiq_ccm_attrib_t

【Beschreibung】 CCM-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_ccm_attrib_s {
     rk_aiq_uapi_sync_t sync;
     bool byPass;
     rk_aiq_ccm_op_mode_t mode;
     rk_aiq_ccm_mccm_attrib_t stManual;
     rk_aiq_ccm_accm_attrib_t stAuto;
     CalibDbV2_Ccm_Para_V2_t stTool;
 } rk_aiq_ccm_attrib_t;

【Felder】

Feldname Beschreibung
sync Synchrone/asynchrone Signale; Definition von rk_aiq_uapi_sync_t siehe
Abschnitt Überblick/API-Beschreibung
byPass Modulverarbeitung überspringen;
true: CCM überspringen, false: CCM aktivieren
mode Auswahl der Betriebsart;
Wertebereich {RK_AIQ_CCM_MODE_MANUAL, RK_AIQ_CCM_MODE_AUTO}
für manuellen bzw. automatischen Modus
stManual Konfiguration der Eigenschaftsparameter im manuellen Modus
stAuto Konfiguration der Eigenschaftsparameter im automatischen Modus
stTool Parameterkonfiguration im Werkzeugmodus; keine Konfiguration erforderlich

9.12.5.7 rk_aiq_ccm_querry_info_t

【Beschreibung】 CCM-Abfrageinformationen definieren.

【Definition】

 typedef struct rk_aiq_ccm_querry_info_s {
     bool ccm_en;
     float  ccMatrix[9];
     float  ccOffsets[3];
     float  y_alpha_curve[CCM_CURVE_DOT_NUM];
     float low_bound_pos_bit;
     float color_inhibition_level;
     float color_saturation_level;
     float finalSat;
     char  ccmname1[25];
     char  ccmname2[25];
 } rk_aiq_ccm_querry_info_t;

【Felder】

Feldname Beschreibung
ccm_en CCM aktiviert;
true aktiviert, false deaktiviert
ccMatrix Wirksame CCM-Korrekturmatrix;
Wertebereich [-8,7.992]
ccOffsets Wirksamer RGB-Komponentenoffset;
Wertebereich [-4096,4095]
y_alpha_curve Intensitätskonfiguration der Farbkorrekturstärke-Anpassungskurve in Abhängigkeit
von der Pixelhelligkeit (12bit).
Wertebereich [0x0, 0x400].
0x400 bedeutet einfache Intensität, 0x0 bedeutet keine Korrektur.
low_bound_pos_bit Helligkeitsbereich des Knickpunkts der Pixelhelligkeits-Anpassungskurve (12bit):
[0, 2^low_bound_pos_bit] und [4095-2^low_bound_pos_bit,
4095].
Gültige Werte [0,10].
color_inhibition_level CCM-Farbunterdrückungsstufe (nur automatischer Modus)
color_saturation_level CCM-Farbsättigungsstufe (nur automatischer Modus)
finalSat Zur aktuellen Matrix gehörender Sättigungswert (nur automatischer Modus
unterstützt)
ccmname1 Name der Kalibriermatrix, die zur interpolierten Berechnung der aktuellen
Matrix verwendet wird (nur automatischer Modus)
ccmname2 Name der Kalibriermatrix, die zur interpolierten Berechnung der aktuellen
Matrix verwendet wird (nur automatischer Modus)

9.13 3DLUT

9.13.1 Funktionsbeschreibung

Das 3DLUT-Modul (3D-Lookup-Tabelle) führt eine Farbabbildung von Bildern im RGB-Raum durch.

9.13.2 Referenz der funktionsbezogenen APIs

9.13.2.1 rk_aiq_uapi2_setLut3dMode

【Beschreibung】 3DLUT-Betriebsart einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setLut3dMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsart;
Wertebereich: {OP_AUTO, OP_MANUAL}
Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen des manuellen/automatischen Modus siehe “sample_set_a3dlut_manual” / “sample_set_a3dlut_auto” in sample_a3dlut_module.cpp.

9.13.2.2 rk_aiq_uapi2_getLut3dMode

【Beschreibung】 3DLUT-Betriebsart abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getLut3dMode(const rk_aiq_sys_ctx_t* ctx, opMode_t
 *mode);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mode Betriebsart Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen des manuellen/automatischen Modus siehe “sample_get_a3dlut_mode” in sample_a3dlut_module.cpp (die Quelle schreibt hier Einstellen).

9.13.2.3 rk_aiq_uapi2_setM3dLut

【Beschreibung】 Manuelle 3D-Lookup-Tabelle von 3DLUT einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setM3dLut(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_lut3d_table_t *mlut);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mlut 3D-Lookup-Tabelle Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen der manuellen 3D-Lookup-Tabelle von 3DLUT siehe “sample_set_a3dlut_manual_lut” in sample_a3dlut_module.cpp.

9.13.2.4 rk_aiq_uapi2_getM3dLut

【Beschreibung】 3D-Lookup-Tabelle von 3DLUT abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getM3dLut(const rk_aiq_sys_ctx_t* ctx,
  rk_aiq_lut3d_table_t *mlut);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
mlut 3D-Lookup-Tabelle Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zu 3DLUT-3D-Lookup-Tabellen siehe “sample_get_a3dlut_lut” in sample_a3dlut_module.cpp.

9.13.2.5 rk_aiq_uapi2_getA3dLutStrth

【Beschreibung】 3DLUT-Anpassungsstärke abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getA3dLutStrth(const rk_aiq_sys_ctx_t* ctx, float alpha);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
alpha 3DLUT-Modulationsstärke Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zur 3DLUT-Anpassungsstärke siehe “sample_get_a3dlut_strength” in sample_a3dlut_module.cpp.

9.13.2.6 rk_aiq_uapi2_getA3dLutName

【Beschreibung】 3DLUT-Tabellennamen im automatischen Modus abrufen.

【Syntax】

 XCamReturn rk_aiq_uapi2_getA3dLutName(const rk_aiq_sys_ctx_t* ctx, char *name);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
name 3DLUT-Tabellenname Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen des 3DLUT-Tabellennamens im automatischen Modus siehe “sample_get_a3dlut_lutname” in sample_a3dlut_module.cpp.

9.13.3 Datentypen der funktionsbezogenen APIs

9.13.3.1 opMode_t

【Beschreibung】 3DLUT-Betriebsart definieren.

【Definition】

 typedef enum opMode_e {
     OP_AUTO = 0,
     OP_MANUALl = 1,
     OP_INVAL
 } opMode_t;

【Felder】

Feldname Beschreibung
OP_AUTO Automatikmodus
OP_MANUALl Manueller Modus
OP_INVAL Ungültiger Wert

9.13.3.2 rk_aiq_lut3d_table_t

【Beschreibung】 3D-Lookup-Tabelle von 3DLUT definieren.

【Definition】

 typedef struct rk_aiq_lut3d_table_s{
     unsigned short look_up_table_r[729];
     unsigned short look_up_table_g[729];
     unsigned short look_up_table_b[729];
 } rk_aiq_lut3d_table_t;

【Felder】

Feldname Beschreibung
look_up_table_r R-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0x3ff]
look_up_table_g G-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0xfff]
look_up_table_b B-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0x3ff]

9.13.4 Referenz der modulbezogenen APIs

9.13.4.1 rk_aiq_user_api2_a3dlut_SetAttrib

【Beschreibung】 3DLUT-Eigenschaft einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_a3dlut_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_lut3d_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr 3DLUT-Parametereigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_a3dlut.h, rk_aiq_uapi_a3dlut_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Einstellen der 3DLUT-Eigenschaft siehe “sample_3dlut_set3dlutAttr” in sample_a3dlut_module.cpp.

9.13.4.2 rk_aiq_user_api2_a3dlut_GetAttrib

【Beschreibung】 3DLUT-Eigenschaft abrufen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_a3dlut_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_lut3d_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr 3DLUT-Parametereigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_a3dlut.h, rk_aiq_uapi_a3dlut_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zum Abrufen von 3DLUT-Eigenschaften siehe “sample_3dlut_get3dlutAttr” und weitere Beispiele in sample_a3dlut_module.cpp.

9.13.4.3 rk_aiq_user_api2_a3dlut_Query3dlutInfo

【Beschreibung】 3DLUT-Informationen abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_a3dlut_Query3dlutInfo(const RkAiqAlgoContext *ctx,
 rk_aiq_lut3d_querry_info_t *lut3d_querry_info );

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
lut3d_querry_info 3DLUT-Abfrageinhalt Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdateien: rk_aiq_user_api2_a3dlut.h, rk_aiq_uapi_a3dlut_int.h

Bibliotheksdatei: librkaiq.so

【Beispiel】

Zu 3DLUT-Informationen siehe “sample_query_a3dlut_info” in sample_a3dlut_module.cpp.

9.13.5 Datentypen der modulbezogenen APIs

9.13.5.1 rk_aiq_lut3d_op_mode_t

【Beschreibung】 3DLUT-Betriebsart definieren.

【Definition】

 typedef enum rk_aiq_lut3d_op_mode_s {
     RK_AIQ_LUT3D_MODE_INVALID                     = 0,
     RK_AIQ_LUT3D_MODE_MANUAL                      = 1,
     RK_AIQ_LUT3D_MODE_AUTO                        = 2,
     RK_AIQ_LUT3D_MODE_MAX
 } rk_aiq_lut3d_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_LUT3D_MODE_INVALID Ungültiger 3DLUT-Modus
RK_AIQ_LUT3D_MODE_MANUAL Manueller 3DLUT-Modus
RK_AIQ_LUT3D_MODE_AUTO Automatischer 3DLUT-Modus

9.13.5.2 rk_aiq_lut3d_mlut3d_attrib_t

【Beschreibung】 Manuelle 3DLUT-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_lut3d_mlut3d_attrib_s {
     unsigned short look_up_table_r[729];
     unsigned short look_up_table_g[729];
     unsigned short look_up_table_b[729];
 } rk_aiq_lut3d_mlut3d_attrib_t;

【Felder】

Feldname Beschreibung
look_up_table_r R-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0x3ff]
look_up_table_g G-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0xfff]
look_up_table_b B-Kanal-Lookup-Tabelle im manuellen Modus;
Wertebereich [0x0, 0x3ff]

9.13.5.3 rk_aiq_lut3d_attrib_t

【Beschreibung】 3DLUT-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_lut3d_attrib_s {
     rk_aiq_uapi_sync_t sync;
     bool byPass;
     rk_aiq_lut3d_op_mode_t mode;
     rk_aiq_lut3d_mlut3d_attrib_t stManual;
 } rk_aiq_lut3d_attrib_t;

【Felder】

Feldname Beschreibung
sync Synchrone/asynchrone Signale; Definition von rk_aiq_uapi_sync_t siehe
Abschnitt Überblick/API-Beschreibung
byPass Modulverarbeitung überspringen;
true: 3DLUT überspringen, false: 3DLUT aktivieren
mode Auswahl der Betriebsart;
Wertebereich {RK_AIQ_LUT3D_MODE_MANUAL,
RK_AIQ_LUT3D_MODE_AUTO} für manuellen bzw. automatischen Modus
stManual Konfiguration der Eigenschaftsparameter im manuellen Modus

9.13.5.4 rk_aiq_lut3d_querry_info_t

【Beschreibung】 3DLUT-Abfrageinformationen definieren.

【Definition】

 typedef struct rk_aiq_lut3d_querry_info_s {
     bool lut3d_en;
     float alpha;
     char name[25];
     unsigned short look_up_table_r[729];
     unsigned short look_up_table_g[729];
     unsigned short look_up_table_b[729];
 } rk_aiq_lut3d_querry_info_t;

【Felder】

Feldname Beschreibung
lut3d_en 3DLUT aktiviert;
true aktiviert, false deaktiviert
alpha 3DLUT-Regelstärke;
Wertebereich [0, 1.0], größere Werte bedeuten höhere Stärke; 1.0
name 3DLUT-Tabellenname; nur automatischer Modus unterstützt
look_up_table_r R-Kanal-Lookup-Tabelle;
Wertebereich [0x0, 0x3ff]
look_up_table_g G-Kanal-Lookup-Tabelle;
Wertebereich [0x0, 0xfff]
look_up_table_b B-Kanal-Lookup-Tabelle;
Wertebereich [0x0, 0x3ff]

9.14 LDCH

9.14.1 Funktionsbeschreibung

LDCH korrigiert verzerrte Bilder. Unterstützt wird ausschließlich die Korrektur in horizontaler Richtung.

9.14.2 Referenz der Funktions-APIs

9.14.2.1 rk_aiq_uapi_setLdchEn

【Beschreibung】 Horizontale Verzeichnungskorrektur ein- oder ausschalten.

【Syntax】

 XCamReturn rk_aiq_uapi2_setLdchEn(const rk_aiq_sys_ctx_t* ctx, bool en);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
en Korrektur ein/aus Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.14.2.2 rk_aiq_uapi2_setLdchCorrectLevel

【Beschreibung】 Stärke der horizontalen Verzeichnungskorrektur einstellen.

【Syntax】

 XCamReturn rk_aiq_uapi2_setLdchCorrectLevel(const rk_aiq_sys_ctx_t* ctx, int
 correctLevel);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
correctLevel Korrekturstärke, Wertebereich [0~255] Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_imgproc.h

Bibliotheksdatei: librkaiq.so

9.14.3 Referenz der Modul-APIs

9.14.3.1 rk_aiq_user_api2_aldch_SetAttrib

【Beschreibung】 FEC-Eigenschaft einstellen. (Die Vorlage bezeichnet die LDCH-Eigenschaft hier als FEC.)

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aldch_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ldch_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr LDCH-Parameterattribute Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_aldch.h

Bibliotheksdatei: librkaiq.so

9.14.3.2 rk_aiq_user_api2_aldch_GetAttrib

【Beschreibung】 FEC-Eigenschaft abfragen. (Bezeichnung FEC aus der Vorlage beibehalten.)

【Syntax】

 XCamReturn
 rk_aiq_user_api2_aldch_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_ldch_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr LDCH-Parameterattribute Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_aldch.h

Bibliotheksdatei: librkaiq.so

9.14.4 Datentypen der Modul-API

9.14.4.1 rk_aiq_ldch_attrib_t

【Beschreibung】 LDCH-Attributkonfiguration.

【Definition】

 typedef struct rk_aiq_ldch_cfg_s {
     rk_aiq_uapi_sync_t sync;
     unsigned int en;
     int correct_level;
 } rk_aiq_ldch_cfg_t;

【Felder】

Feldname Beschreibung
sync Synchrone/asynchrone Schnittstellenfunktion; zu rk_aiq_uapi_sync_t siehe die Übersicht
en LDCH aktivieren/deaktivieren
correct_level LDCH-Korrekturstärke einstellen, Wertebereich [0~255]

9.15 DeBayer

9.15.1 Funktionsbeschreibung

DeBayer interpoliert ein CFA-Bild zu einem RGB-Bild mit vollständigen Farbwerten für jedes Pixel.

Unterstützte Bayer-Rohdatenformate sind RGGB/BGGR/GRBG/gbrg. Andere Formate wie CCCB und RGB-IR werden derzeit nicht unterstützt.

9.15.2 Referenz der Modul-APIs

9.15.2.1 rk_aiq_user_api_adebayer_SetAttrib

【Beschreibung】 Demosaik-Eigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adebayer_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 adebayer_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Demosaik-Eigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_adebayer.h

Bibliotheksdatei: librkaiq.so

9.15.2.2 rk_aiq_user_api_adebayer_GetAttrib

【Beschreibung】 Demosaik-Eigenschaften abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adebayer_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 adebayer_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Demosaik-Eigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_uapi2_adebayer_int.h

Bibliotheksdatei: librkaiq.so

9.15.3 Datentypen der Modul-API

9.15.3.1 rk_aiq_debayer_op_mode_t

【Beschreibung】 Betriebsmodus definieren.

【Definition】

 typedef enum rk_aiq_debayer_op_mode_s {
     RK_AIQ_DEBAYER_MODE_INVALID                     = 0,        /**<
 initialization value */
     RK_AIQ_DEBAYER_MODE_MANUAL                      = 1,        /**< run manual
 lens shading correction */
     RK_AIQ_DEBAYER_MODE_AUTO                        = 2,        /**< run auto
 lens shading correction */
     RK_AIQ_DEBAYER_MODE_MAX
 } rk_aiq_debayer_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_DEBAYER_MODE_INVALID Ungültiger DeBayer-Modus
RK_AIQ_DEBAYER_MODE_MANUAL Manueller DeBayer-Modus
RK_AIQ_DEBAYER_MODE_AUTO Automatischer DeBayer-Modus

9.15.3.2 adebayer_attrib_manual_t

【Beschreibung】 Konfigurationseigenschaften im manuellen Modus definieren.

【Definition】

 typedef struct adebayer_attrib_manual_s {
     int8_t      filter1[5];
     int8_t      filter2[5];
     uint8_t     gain_offset;
     uint8_t     sharp_strength;
     uint8_t     hf_offset;
     uint8_t     offset;
     uint8_t     clip_en;
     uint8_t     filter_g_en;
     uint8_t     filter_c_en;
     uint8_t     thed0;
     uint8_t     thed1;
     uint8_t     dist_scale;
     uint8_t     cnr_strength;
     uint8_t     shift_num;
 } adebayer_attrib_manual_t;

【Felder】

Feldname Beschreibung
filter1 Filterkoeffizienten für den niederfrequenten Gradienten, Wertebereich [-8,7]
filter2 Filterkoeffizienten für den hochfrequenten Gradienten, Wertebereich [-8,7]
gain_offset Gradientenoffset bei der Berechnung der Schärfungsgewichtung für die G-Interpolation, Wertebereich [0,15]
sharp_strength Stärke der G-Interpolation; größere Werte verstärken den Effekt, Wertebereich [0,4]
hf_offset Richtungssteuerung: kleinere Werte erzeugen eher Artefakte in gleichmäßigen Bereichen, größere eher Aliasing an Kanten; Wertebereich [0,4095]
offset Begrenzungsbereich der G-Interpolation; größere Werte erweitern den Bereich, Wertebereich [0,65535]
clip_en Begrenzung der G-Interpolation: 0 aus, 1 ein
filter_g_en Entfernung verstreuter G-Pixel: 0 aus, 1 ein
filter_c_en Falschfarbenunterdrückung: 0 aus, 1 ein
thed0 Größere Werte verringern die Wahrscheinlichkeit einer hochfrequenten Gewichtung, Wertebereich [0,16]
thed1 Auswahl zwischen hohen und niedrigen Frequenzen; größere Werte verringern die Wahrscheinlichkeit einer niederfrequenten Auswahl, Wertebereich [0,16]
dist_scale Größere Werte verringern die Wahrscheinlichkeit einer hochfrequenten Auswahl, Wertebereich [0,16]
cnr_strength Stärke der Farbrauschunterdrückung; größere Werte verstärken die Unterdrückung, Wertebereich [0,9]
shift_num Kleinere Werte vergrößern den Chroma-Begrenzungsbereich, Wertebereich [0,4]

9.15.3.3 adebayer_attrib_auto_t

【Beschreibung】 Konfigurationseigenschaften im automatischen Modus definieren.

【Definition】

 typedef struct adebayer_attrib_auto_s {
     uint8_t     sharp_strength[9];
     uint8_t     low_freq_thresh;
     uint8_t     high_freq_thresh;
 } adebayer_attrib_auto_t;

【Felder】

Feldname Beschreibung
enhance_strength[9] Detail- und Texturverstärkung nach ISO. Die Indizes 0–8 entsprechen 50,100,200,400,800,1600,3200,6400,12800. Größere Werte erhöhen die Detailschärfe, aber auch Artefakte; Wertebereich [0~7]
low_freq_thresh Größere Werte verringern die Wahrscheinlichkeit einer niederfrequenten Auswahl, Wertebereich [0~15]
high_freq_thresh Größere Werte verringern die Wahrscheinlichkeit einer hochfrequenten Auswahl, Wertebereich [0~15]

9.15.3.4 adebayer_attrib_t

【Beschreibung】 Konfigurationsattribute definieren.

【Definition】

 typedef struct adebayer_attrib_s {
     rk_aiq_uapi_sync_t          sync;
     uint8_t                     enable;
     rk_aiq_debayer_op_mode_t    mode;
     adebayer_attrib_manual_t    stManual;
     adebayer_attrib_auto_t      stAuto;
 } adebayer_attrib_t;

【Felder】

Feldname Beschreibung
sync Synchrone/asynchrone Schnittstellenfunktion; zu rk_aiq_uapi_sync_t siehe die Übersicht
enable 0: Bypass; 1: aktivieren
mode DeBayer-Betriebsmodus
stManual Manuelle DeBayer-Konfiguration
stAuto Automatische DeBayer-Konfiguration

9.16 DPCC

9.16.1 Funktionsbeschreibung

Defekte Pixel in Bildern erkennen und entfernen. Einzelheiten enthält die „Funktionsbeschreibung“ in Abschnitt 4.6 „DPCC“ des Dokuments Rockchip_Tuning_Guide_ISP30.

9.16.2 Referenz der Modul-APIs

9.16.2.1 rk_aiq_user_api2_adpcc_SetAttrib

【Beschreibung】 DPCC-Softwareeigenschaften einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adpcc_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_dpcc_attrib_V20_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der DPCC-Softwareeigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_adpcc.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.16.2.2 rk_aiq_user_api2_adpcc_GetAttrib

【Beschreibung】 DPCC-Softwareeigenschaften abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adpcc_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_dpcc_attrib_V20_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der DPCC-Softwareeigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_adpcc.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.16.3 Datentypen

9.16.3.1 rk_aiq_dpcc_attrib_V20_t

【Beschreibung】 Attribute zur Korrektur defekter Pixel definieren.

【Definition】

 typedef struct rk_aiq_dpcc_attrib_V20_s {
     AdpccOPMode_t eMode;
     Adpcc_Auto_Attr_t stAuto;
     Adpcc_Manual_Attr_t stManual;
     rk_aiq_uapi_sync_t sync;
 } rk_aiq_dpcc_attrib_V20_t;

【Felder】

Feldname Beschreibung
eMode DPCC-Betriebsmodus definieren; Einzelheiten siehe AdpccOPMode_t
stAuto Parametereinstellung für den automatischen Modus
stManual Parametereinstellung für den manuellen Modus
sync Synchrone/asynchrone Schnittstellenfunktion; zur Definition von rk_aiq_uapi_sync_t siehe Übersicht/API-Beschreibung

9.16.3.2 AdpccOPMode_t

【Beschreibung】 DPCC-Betriebsmodus definieren.

【Definition】

 typedef enum AdpccOPMode_e {
     ADPCC_OP_MODE_INVALID        = 0,
     ADPCC_OP_MODE_AUTO           = 1,
     ADPCC_OP_MODE_MANUAL         = 2,
     ADPCC_OP_MODE_TOOL           = 3,
     ADPCC_OP_MODE_MAX
 } AdpccOPMode_t;

【Felder】

Feldname Beschreibung
ADPCC_OP_MODE_INVALID Ungültiger API-Modus
ADPCC_OP_MODE_AUTO Automatischer API-Modus
ADPCC_OP_MODE_MANUAL Manueller API-Modus
ADPCC_OP_MODE_TOOL API-Werkzeugmodus
ADPCC_OP_MODE_MAX  

9.16.3.3 Adpcc_basic_params_select_t

【Beschreibung】 Eigenschaften der DPCC-Basisparameter definieren.

【Definition】

 typedef struct Adpcc_basic_params_select_s
 {
     int           iso;
     unsigned char stage1_enable;
     unsigned char grayscale_mode;
     unsigned char enable;
     unsigned char sw_rk_out_sel;
     unsigned char sw_dpcc_output_sel;
     unsigned char stage1_rb_3x3;
     unsigned char stage1_g_3x3;
     unsigned char stage1_incl_rb_center;
     unsigned char stage1_incl_green_center;
     unsigned char stage1_use_fix_set;
     unsigned char stage1_use_set_3;
     unsigned char stage1_use_set_2;
     unsigned char stage1_use_set_1;
     unsigned char sw_rk_red_blue1_en;
     unsigned char rg_red_blue1_enable;
     unsigned char rnd_red_blue1_enable;
     unsigned char ro_red_blue1_enable;
     unsigned char lc_red_blue1_enable;
     unsigned char pg_red_blue1_enable;
     unsigned char sw_rk_green1_en;
     unsigned char rg_green1_enable;
     unsigned char rnd_green1_enable;
     unsigned char ro_green1_enable;
     unsigned char lc_green1_enable;
     unsigned char pg_green1_enable;
     unsigned char sw_rk_red_blue2_en;
     unsigned char rg_red_blue2_enable;
     unsigned char rnd_red_blue2_enable;
     unsigned char ro_red_blue2_enable;
     unsigned char lc_red_blue2_enable;
     unsigned char pg_red_blue2_enable;
     unsigned char sw_rk_green2_en;
     unsigned char rg_green2_enable;
     unsigned char rnd_green2_enable;
     unsigned char ro_green2_enable;
     unsigned char lc_green2_enable;
     unsigned char pg_green2_enable;
     unsigned char sw_rk_red_blue3_en;
     unsigned char rg_red_blue3_enable;
     unsigned char rnd_red_blue3_enable;
     unsigned char ro_red_blue3_enable;
     unsigned char lc_red_blue3_enable;
     unsigned char pg_red_blue3_enable;
     unsigned char sw_rk_green3_en;
     unsigned char rg_green3_enable;
     unsigned char rnd_green3_enable;
     unsigned char ro_green3_enable;
     unsigned char lc_green3_enable;
     unsigned char pg_green3_enable;
     unsigned char sw_mindis1_rb;
     unsigned char sw_mindis1_g;
     unsigned char line_thr_1_rb;
     unsigned char line_thr_1_g;
     unsigned char sw_dis_scale_min1;
     unsigned char sw_dis_scale_max1;
     unsigned char line_mad_fac_1_rb;
     unsigned char line_mad_fac_1_g;
     unsigned char pg_fac_1_rb;
     unsigned char pg_fac_1_g;
     unsigned char rnd_thr_1_rb;
     unsigned char rnd_thr_1_g;
     unsigned char rg_fac_1_rb;
     unsigned char rg_fac_1_g;
     unsigned char sw_mindis2_rb;
     unsigned char sw_mindis2_g;
     unsigned char line_thr_2_rb;
     unsigned char line_thr_2_g;
     unsigned char sw_dis_scale_min2;
     unsigned char sw_dis_scale_max2;
     unsigned char line_mad_fac_2_rb;
     unsigned char line_mad_fac_2_g;
     unsigned char pg_fac_2_rb;
     unsigned char pg_fac_2_g;
     unsigned char rnd_thr_2_rb;
     unsigned char rnd_thr_2_g;
     unsigned char rg_fac_2_rb;
     unsigned char rg_fac_2_g;
     unsigned char sw_mindis3_rb;
     unsigned char sw_mindis3_g;
     unsigned char line_thr_3_rb;
     unsigned char line_thr_3_g;
     unsigned char sw_dis_scale_min3;
     unsigned char sw_dis_scale_max3;
     unsigned char line_mad_fac_3_rb;
     unsigned char line_mad_fac_3_g;
     unsigned char pg_fac_3_rb;
     unsigned char pg_fac_3_g;
     unsigned char rnd_thr_3_rb;
     unsigned char rnd_thr_3_g;
     unsigned char rg_fac_3_rb;
     unsigned char rg_fac_3_g;
     unsigned char ro_lim_3_rb;
     unsigned char ro_lim_3_g;
     unsigned char ro_lim_2_rb;
     unsigned char ro_lim_2_g;
     unsigned char ro_lim_1_rb;
     unsigned char ro_lim_1_g;
     unsigned char rnd_offs_3_rb;
     unsigned char rnd_offs_3_g;
     unsigned char rnd_offs_2_rb;
     unsigned char rnd_offs_2_g;
     unsigned char rnd_offs_1_rb;
     unsigned char rnd_offs_1_g;
 } Adpcc_basic_params_select_t;

9.16.3.4 Adpcc_basic_params_t

【Beschreibung】 Eigenschaften der DPCC-Basisparameter definieren.

【Definition】

 typedef struct Adpcc_basic_params_s
 {
     Adpcc_basic_params_select_t arBasic[DPCC_MAX_ISO_LEVEL];
 } Adpcc_basic_params_t;

【Felder】

Feldname Beschreibung
arBasic DPCC-Basisparameter

9.16.3.5 Adpcc_bpt_params_t

【Beschreibung】 Automatische DPCC-Eigenschaften definieren.

【Definition】

 typedef struct Adpcc_bpt_params_s
 {
     unsigned char      bpt_rb_3x3;
     unsigned char      bpt_g_3x3;
     unsigned char      bpt_incl_rb_center;
     unsigned char      bpt_incl_green_center;
     unsigned char      bpt_use_fix_set;
     unsigned char      bpt_use_set_3;
     unsigned char      bpt_use_set_2;
     unsigned char      bpt_use_set_1;
     unsigned char      bpt_cor_en;
     unsigned char      bpt_det_en;
     unsigned short int bp_number;
     unsigned short int bp_table_addr;
     unsigned short int bpt_v_addr;
     unsigned short int bpt_h_addr;
     unsigned int       bp_cnt;
 } Adpcc_bpt_params_t;

9.16.3.6 dpcc_pdaf_point_t

【Beschreibung】

【Definition】

 typedef struct dpcc_pdaf_point_s
 {
     unsigned char y;
     unsigned char x;
 } dpcc_pdaf_point_t;

Das Modul ist noch nicht implementiert.

9.16.3.7 Adpcc_pdaf_params_t

【Beschreibung】 PDAF-Moduseigenschaften im automatischen Modus definieren.

【Definition】

 typedef struct Adpcc_pdaf_params_s
 {
     unsigned char      sw_pdaf_en;
     unsigned char      pdaf_point_en[DPCC_PDAF_POINT_NUM];
     unsigned short int pdaf_offsety;
     unsigned short int pdaf_offsetx;
     unsigned char      pdaf_wrapy;
     unsigned char      pdaf_wrapx;
     unsigned short int pdaf_wrapy_num;
     unsigned short int pdaf_wrapx_num;
     dpcc_pdaf_point_t  point[DPCC_PDAF_POINT_NUM];
     unsigned char      pdaf_forward_med;
 } Adpcc_pdaf_params_t;

Das Modul ist noch nicht implementiert.

9.16.3.8 CalibDb_Dpcc_Fast_Mode_t

【Beschreibung】 Eigenschaften des Schnellmodus im automatischen Modus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_Fast_Mode_s
 {
     int fast_mode_en;
     int ISO[CALIBDB_DPCC_MAX_ISO_LEVEL];
     int fast_mode_single_en;
     int fast_mode_single_level[CALIBDB_DPCC_MAX_ISO_LEVEL];
     int fast_mode_double_en;
     int fast_mode_double_level[CALIBDB_DPCC_MAX_ISO_LEVEL];
     int fast_mode_triple_en;
     int fast_mode_triple_level[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_Fast_Mode_t;

【Felder】

Feldname Beschreibung
Fast_mode_enable Fast_mode ein/aus: 0 aus, 1 ein
ISO ISO-Wert der Szene
fast_mode_single_en Korrektur einzelner defekter Pixel: 0 aus, 1 ein
fast_mode_single_level Stärke der Korrektur einzelner defekter Pixel, Wertebereich [0, 10]
fast_mode_double_en Korrektur zweier defekter Pixel: 0 aus, 1 ein
fast_mode_double_level Stärke der Korrektur zweier defekter Pixel, Wertebereich [0, 10]
fast_mode_triple_en Korrektur mehrerer defekter Pixel: 0 aus, 1 ein
fast_mode_triple_level Stärke der Korrektur mehrerer defekter Pixel, Wertebereich [0, 10]

9.16.3.9 CalibDb_Dpcc_Sensor_t

【Beschreibung】 Eigenschaften des Schnellmodus im automatischen Modus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_Sensor_s
 {
     float en;
     float max_level;
     float iso[CALIBDB_DPCC_MAX_ISO_LEVEL];
     float level_single[CALIBDB_DPCC_MAX_ISO_LEVEL];
     float level_multiple[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_Sensor_t;

【Felder】

Feldname Beschreibung
en Sensor-DPCC ein/aus: 0 aus, 1 ein
max_level Maximale Stärke der Korrektur defekter Pixel
iso ISO-Wert der Szene
level_single Stärke der Korrektur einzelner defekter Pixel
level_multiple Stärke der Korrektur mehrerer defekter Pixel

9.16.3.10 Adpcc_bpt_params_select_t

【Beschreibung】 Im automatischen Modus ausgewählte Schnellmodus-Eigenschaften definieren.

【Definition】

 typedef Adpcc_bpt_params_t Adpcc_bpt_params_select_t;

9.16.3.11 Adpcc_pdaf_params_select_t

【Beschreibung】 Im automatischen Modus ausgewählte PDAF-Moduseigenschaften definieren.

【Definition】

 typedef Adpcc_pdaf_params_t Adpcc_pdaf_params_select_t

9.16.3.12 Adpcc_Auto_Attr_t

【Beschreibung】 Automatische DPCC-Eigenschaften definieren.

【Definition】

 typedef struct Adpcc_Auto_Attr_s
 {
     Adpcc_basic_params_t        stBasicParams;
     Adpcc_bpt_params_t          stBptParams;
     Adpcc_pdaf_params_t         stPdafParams;
     CalibDb_Dpcc_Fast_Mode_t    stFastMode;
     CalibDb_Dpcc_Sensor_t       stSensorDpcc;
     Adpcc_basic_params_select_t stBasicSelect;
     Adpcc_bpt_params_select_t   stBptSelect;
     Adpcc_pdaf_params_select_t  stPdafSelect;
 } Adpcc_Auto_Attr_t;

【Felder】

Feldname Beschreibung
stBasicParams Basisparameter im automatischen Modus
stBptParams Parameter für defekte Pixel im automatischen Modus
stPdafParams PDAF-Modusparameter im automatischen Modus
stFastMode Schnellmodusparameter im automatischen Modus
stSensorDpcc Parameter der Sensorfunktion für defekte Pixel im automatischen Modus
stBasicSelect Im automatischen Modus ausgewählte Basisparameter
stBptSelect Im automatischen Modus ausgewählte Parameter für defekte Pixel
stPdafSelect Im automatischen Modus ausgewählte PDAF-Modusparameter

9.16.3.13 Adpcc_fast_mode_attr_t

【Beschreibung】 Eigenschaften des Schnellmodus im manuellen Modus definieren.

【Definition】

 typedef struct Adpcc_fast_mode_attr_s
 {
     bool fast_mode_en;
     bool fast_mode_single_en;
     int  fast_mode_single_level;
     bool fast_mode_double_en;
     int  fast_mode_double_level;
     bool fast_mode_triple_en;
     int  fast_mode_triple_level;
 } Adpcc_fast_mode_attr_t;

【Felder】

Feldname Beschreibung
Fast_mode_en Fast_mode ein/aus
fast_mode_single_en Korrektur einzelner defekter Pixel ein/aus
fast_mode_single_level Stärke der Korrektur einzelner defekter Pixel, Wertebereich [0, 10]
fast_mode_double_en Korrektur zweier defekter Pixel ein/aus
fast_mode_double_level Stärke der Korrektur zweier defekter Pixel, Wertebereich [0, 10]
fast_mode_triple_en Korrektur mehrerer defekter Pixel ein/aus
fast_mode_triple_level Stärke der Korrektur mehrerer defekter Pixel, Wertebereich [0, 10]

9.16.3.14 Adpcc_sensor_dpcc_attr_t

【Beschreibung】 Eigenschaften der Sensorfunktion für defekte Pixel im manuellen Modus definieren.

【Definition】

 typedef struct Adpcc_sensor_dpcc_attr_s
 {
     bool en;
     int  max_level;
     int  single_level;
     int  double_level;
 } Adpcc_sensor_dpcc_attr_t;

【Felder】

Feldname Beschreibung
en Sensor-DPCC ein/aus
max_level Maximale Stärke der Korrektur defekter Pixel
single_level Stärke der Korrektur einzelner defekter Pixel
double_level Stärke der Korrektur mehrerer defekter Pixel

9.16.3.15 Adpcc_Manual_Attr_t

【Beschreibung】 Manuelle DPCC-Eigenschaften definieren.

【Definition】

 typedef struct Adpcc_Manual_Attr_s
 {
     unsigned char enable;
     Adpcc_onfly_cfg_t stOnfly;
     Adpcc_bpt_params_select_t   stBpt;
     Adpcc_pdaf_params_select_t  stPdaf;
     Adpcc_sensor_dpcc_attr_t    stSensorDpcc;
 } Adpcc_Manual_Attr_t;

【Felder】

Feldname Beschreibung
enable DPCC im manuellen Modus ein/aus
stOnfly Parameter für die dynamische Erkennung und Korrektur defekter Pixel des ISP-DPCC-Moduls im manuellen Modus
stBptParams Parameter für die statische Korrektur defekter Pixel des ISP-DPCC-Moduls im manuellen Modus
stPdafParams Parameter der PDAF-SPC-Funktion des ISP-DPCC-Moduls im manuellen Modus
stSensorDpcc Parameter der Korrektur defekter Pixel des sensorseitigen DPCC-Moduls im manuellen Modus

9.16.3.16 Adpcc_onfly_cfg_t

【Beschreibung】 Manuelle DPCC-Basisparameter definieren.

【Definition】

 typedef struct Adpcc_onfly_cfg_s {
    Adpcc_onfly_mode_t mode;
    Adpcc_fast_mode_attr_t fast_mode;
    Adpcc_basic_cfg_params_t expert_mode;
 } Adpcc_onfly_cfg_t;

【Felder】

Feldname Beschreibung
mode Schnellmodus oder Expertenmodus
fastmode Schnellmodus-Parametereinstellungen im manuellen Modus
expert_mode Parametereinstellungen des Expertenmodus

9.16.3.17 Adpcc_onfly_mode_t

【Beschreibung】 Manuelle DPCC-Basisparameter definieren.

【Definition】

 typedef enum Adpcc_onfly_mode_e {
     ADPCC_ONFLY_MODE_FAST        = 0,                   /**< dpcc manual fast
 mode */
     ADPCC_ONFLY_MODE_EXPERT      = 1,                   /**< dpcc manual expert
 mode */
     ADPCC_ONFLY_MODE_MAX                                /**< max */
 } Adpcc_onfly_mode_t;

【Felder】

Feldname Beschreibung
ADPCC_ONFLY_MODE_FAST Schnellmodus
ADPCC_ONFLY_MODE_EXPERT Expertenmodus
ADPCC_ONFLY_MODE_MAX Ungültige Parametereinstellung

9.16.3.18 CalibDb_Dpcc_Pdaf_t

【Beschreibung】 Attributparameter der PDAF-SPC-Werkzeugfunktion definieren.

【Definition】

 typedef struct CalibDb_Dpcc_Pdaf_s
 {
     unsigned char      en;
     unsigned char      point_en[16];
     unsigned short int offsetx;
     unsigned short int offsety;
     unsigned char      wrapx;
     unsigned char      wrapy;
     unsigned short int wrapx_num;
     unsigned short int wrapy_num;
     unsigned char      point_x[16];
     unsigned char      point_y[16];
     unsigned char      forward_med;
 } CalibDb_Dpcc_Pdaf_t;

9.16.3.19 CalibDb_Dpcc_set_RK_t

【Beschreibung】 Eigenschaften des RK-Algorithmus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_RK_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_sw_mindis[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_sw_mindis[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char sw_dis_scale_min[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char sw_dis_scale_max[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_RK_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_sw_mindis Schwellenwert 1 für defekte Pixel im roten und blauen Kanal
g_sw_mindis Schwellenwert 1 für defekte Pixel im grünen Kanal
sw_dis_scale_min Schwellenwert 2 für defekte Pixel
sw_dis_scale_max Schwellenwert 3 für defekte Pixel

9.16.3.20 CalibDb_Dpcc_set_LC_t

【Beschreibung】 Eigenschaften des LC-Algorithmus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_LC_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_line_thr[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_line_thr[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_line_mad_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_line_mad_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_LC_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_line_thr Schwellenwert 1 für defekte Pixel im roten und blauen Kanal
g_line_thr Schwellenwert 1 für defekte Pixel im grünen Kanal
rb_line_mad_fac Schwellenwert 2 für defekte Pixel im roten und blauen Kanal
g_line_mad_fac Schwellenwert 2 für defekte Pixel im grünen Kanal

9.16.3.21 CalibDb_Dpcc_set_PG_t

【Beschreibung】 Eigenschaften des PG-Algorithmus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_PG_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_pg_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_pg_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_PG_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_pg_fac Schwellenwerte für defekte Pixel im roten und blauen Kanal
g_pg_fac Schwellenwert für defekte Pixel im grünen Kanal

9.16.3.22 CalibDb_Dpcc_set_RND_t

【Beschreibung】 Eigenschaften des RND-Algorithmus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_RND_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_rnd_thr[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_rnd_thr[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_rnd_offs[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_rnd_offs[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_RND_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_rnd_thr Schwellenwert 1 für defekte Pixel im roten und blauen Kanal
g_rnd_thr Schwellenwert 1 für defekte Pixel im grünen Kanal
rb_rnd_offs Schwellenwert 2 für defekte Pixel im roten und blauen Kanal
g_rnd_offs Schwellenwert 2 für defekte Pixel im grünen Kanal

9.16.3.23 CalibDb_Dpcc_set_RG_t

【Beschreibung】 Eigenschaften des RK-Algorithmus definieren. (Die Vorlage nennt hier RK trotz des Typnamens RG.)

【Definition】

 typedef struct CalibDb_Dpcc_set_RG_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_rg_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_rg_fac[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_RG_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_rg_fac Schwellenwerte für defekte Pixel im roten und blauen Kanal
g_rg_fac Schwellenwert für defekte Pixel im grünen Kanal

9.16.3.24 CalibDb_Dpcc_set_RO_t

【Beschreibung】 Eigenschaften des RO-Algorithmus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_RO_s
 {
     unsigned char rb_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char rb_ro_lim[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char g_ro_lim[CALIBDB_DPCC_MAX_ISO_LEVEL];
 } CalibDb_Dpcc_set_RO_t;

【Felder】

Feldname Beschreibung
rb_enable Erkennung defekter Pixel im roten und blauen Kanal ein/aus
g_enable Erkennung defekter Pixel im grünen Kanal ein/aus
rb_ro_lim Schwellenwerte für defekte Pixel im roten und blauen Kanal
g_ro_lim Schwellenwert für defekte Pixel im grünen Kanal

9.16.3.25 CalibDb_Dpcc_set_t

【Beschreibung】 Eigenschaften der Erkennungsbedingungen für defekte Pixel definieren.

【Definition】

 typedef struct CalibDb_Dpcc_set_s
 {
     CalibDb_Dpcc_set_RK_t  rk;
     CalibDb_Dpcc_set_LC_t  lc;
     CalibDb_Dpcc_set_PG_t  pg;
     CalibDb_Dpcc_set_RND_t rnd;
     CalibDb_Dpcc_set_RG_t  rg;
     CalibDb_Dpcc_set_RO_t  ro;
 } CalibDb_Dpcc_set_t;

【Felder】

Feldname Beschreibung
rk RK-Algorithmus
lc LC-Algorithmus
pg PG-Algorithmus
rnd RND-Algorithmus
rg RG-Algorithmus
ro RO-Algorithmus

9.16.3.26 CalibDb_Dpcc_Expert_Mode_t

【Beschreibung】 Eigenschaften des Werkzeug-Expertenmodus definieren.

【Definition】

 typedef struct CalibDb_Dpcc_Expert_Mode_s
 {
     float              iso[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_Enable[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      grayscale_mode;
     unsigned char      rk_out_sel[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      dpcc_out_sel[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_rb_3x3[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_g_3x3[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_inc_rb_center[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_inc_g_center[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_use_fix_set[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_use_set3[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_use_set2[CALIBDB_DPCC_MAX_ISO_LEVEL];
     unsigned char      stage1_use_set1[CALIBDB_DPCC_MAX_ISO_LEVEL];
     CalibDb_Dpcc_set_t set[3];
 } CalibDb_Dpcc_Expert_Mode_t;

【Felder】

Feldname Beschreibung
iso ISO-Wert der Szene
stage1_Enable Standardwert 1
grayscale_mode Schwarzweißmodus: 0 aus, 1 ein
rk_out_sel RK-Erkennungsmodus für defekte Pixel: 0 Modus 1, 1 Modus 2, 2 Modus 3
dpcc_out_sel Korrekturmodus für defekte Pixel: 0 Median, 1 RK-Modus
stage1_rb_3x3 Standardwert: 0
stage1_g_3x3 Standardwert: 0
stage1_inc_rb_center Standardwert 1
stage1_inc_g_center Standardwert 1
stage1_use_fix_set Integrierte Erkennungsbedingung für defekte Pixel: 0 aus, 1 ein
stage1_use_set3 Dritte Erkennungsbedingung für defekte Pixel in set_cell: 0 aus, 1 ein
stage1_use_set2 Zweite Erkennungsbedingung für defekte Pixel in set_cell: 0 aus, 1 ein
stage1_use_set1 Erste Erkennungsbedingung für defekte Pixel in set_cell: 0 aus, 1 ein

9.16.3.27 CalibDb_Dpcc_t

【Beschreibung】 DPCC-Werkzeugeigenschaften definieren.

【Definition】

 typedef struct CalibDb_Dpcc_s
 {
     int                        enable;
     char                       version[64];
     CalibDb_Dpcc_Fast_Mode_t   fast;
     CalibDb_Dpcc_Expert_Mode_t expert;
     CalibDb_Dpcc_Pdaf_t        pdaf;
     CalibDb_Dpcc_Sensor_t      sensor_dpcc;
 } CalibDb_Dpcc_t;

【Felder】

Feldname Beschreibung
enable Ein-/Ausschaltfunktion
version Version
fast Schnellmodus
expert Expertenmodus
pdaf Erkennungsbedingung für defekte Pixel im PADF-SPC-Funktionsmodus
sensor_dpcc Korrekturparameter für defekte Pixel des sensorseitigen DPCC-Moduls

9.16.3.28 rk_aiq_dpcc_attrib_t

【Beschreibung】 DPCC-Eigenschaften definieren.

【Definition】

 typedef struct rk_aiq_dpcc_attrib_s
 {
     AdpccOPMode_t       eMode;
     Adpcc_Auto_Attr_t   stAuto;
     Adpcc_Manual_Attr_t stManual;
     CalibDb_Dpcc_t      stTool;
 } rk_aiq_dpcc_attrib_t;

【Felder】

Feldname Beschreibung
eMode API-Modus
stAuto Automatischer DPCC-Modus
stManual Manueller DPCC-Modus
stTool DPCC-Werkzeugmodus

9.17 LSC

9.17.1 Funktionsbeschreibung

Lens Shading Correction gleicht Randabschattungen aus, die aufgrund der optischen Eigenschaften und der ungleichmäßigen Lichtbrechung des Objektivs entstehen.

9.17.2 Referenz der Modul-APIs

9.17.2.1 rk_aiq_user_api2_alsc_SetAttrib

【Beschreibung】 Eigenschaften der Objektivabschattungskorrektur einstellen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_alsc_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_lsc_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften der Objektivabschattungskorrektur Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_alsc.h

Bibliotheksdatei: librkaiq.so

9.17.2.2 rk_aiq_user_api2_alsc_GetAttrib

【Beschreibung】 Eigenschaften der Objektivabschattungskorrektur abfragen.

【Syntax】

 XCamReturn
 rk_aiq_user_api2_adebayer_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_lsc_attrib_t *attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften der Objektivabschattungskorrektur Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_alsc.h

Bibliotheksdatei: librkaiq.so

9.17.3 Datentypen

9.17.3.1 rk_aiq_lsc_attrib_t

【Beschreibung】 ISP-Eigenschaften der Objektivabschattungskorrektur definieren.

【Definition】

 typedef struct rk_aiq_lsc_attrib_s {
     bool byPass;
     rk_aiq_lsc_op_mode_t mode;
     rk_aiq_lsc_mlsc_attrib_t stManual;
     rk_aiq_uapi_sync_t sync;
 } rk_aiq_lsc_attrib_t;

【Felder】

Feldname Beschreibung
sync Synchrone/asynchrone Schnittstellenfunktion; zur Definition von rk_aiq_uapi_sync_t siehe Abschnitt Übersicht/API-Beschreibung
bypass LSC-Modul aktivieren:
1 aus
0 aktivieren
mode Moduseinstellungen
stManual Parametereinstellungen im manuellen Modus

9.17.3.2 rk_aiq_lsc_op_mode_t

【Beschreibung】 ISP-Betriebsmodus der Objektivabschattungskorrektur definieren.

【Definition】

 typedef enum rk_aiq_lsc_op_mode_s {
     RK_AIQ_LSC_MODE_INVALID                     = 0,        /**< initialization
 value */
     RK_AIQ_LSC_MODE_MANUAL                      = 1,        /**< run manual lens
 shading correction */
     RK_AIQ_LSC_MODE_AUTO                        = 2,        /**< run auto lens
 shading correction */
     RK_AIQ_LSC_MODE_MAX
 } rk_aiq_lsc_op_mode_t;

【Felder】

Feldname Beschreibung
RK_AIQ_LSC_MODE_INVALID Ungültiger Modus
RK_AIQ_LSC_MODE_MANUAL Manueller Modus
RK_AIQ_LSC_MODE_AUTO Automatischer Modus

9.17.3.3 rk_aiq_lsc_table_t

【Beschreibung】 ISP-Tabelle der Objektivabschattungskorrektur definieren.

【Definition】

 typedef struct rk_aiq_lsc_table_s {
     unsigned short r_data_tbl[LSC_DATA_TBL_SIZE];
     unsigned short gr_data_tbl[LSC_DATA_TBL_SIZE];
     unsigned short gb_data_tbl[LSC_DATA_TBL_SIZE];
     unsigned short b_data_tbl[LSC_DATA_TBL_SIZE];
 } rk_aiq_lsc_table_t;

【Felder】

Feldname Beschreibung
r_data_tbl Korrekturtabelle der R-Komponente
Anzahl der Elemente [17x17]
Wertebereich [1~7.99]
Obere 3 Bit Ganzzahl, untere 8 Bit Nachkommastellen
gr_data_tbl Korrekturtabelle der GR-Komponente
Anzahl der Elemente [17x17]
Wertebereich [1~7.99]
Obere 3 Bit Ganzzahl, untere 8 Bit Nachkommastellen
gb_data_tbl Korrekturtabelle der GB-Komponente
Anzahl der Elemente [17x17]
Wertebereich [1~7.99]
Obere 3 Bit Ganzzahl, untere 8 Bit Nachkommastellen
b_data_tbl Korrekturtabelle der B-Komponente
Anzahl der Elemente [17x17]
Wertebereich [1~7.99]
Obere 3 Bit Ganzzahl, untere 8 Bit Nachkommastellen

9.18 GIC

9.18.1 Funktionsbeschreibung

Das GIC-Modul korrigiert das Ungleichgewicht zwischen den Kanälen Gr und Gb und verbessert dadurch die Bildqualität bestimmter Szenen.

9.18.2 Referenz der Modul-APIs

9.18.2.1 rk_aiq_user_api2_agic_v2_SetAttrib

【Beschreibung】 GIC-Softwareeigenschaften einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_agic_v2_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 const rkaiq_gic_v2_api_attr_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der GIC-Softwareeigenschaften Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_agic.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

Keine.

9.18.2.2 rk_aiq_user_api2_agic_v2_GetAttrib

【Beschreibung】 Gamma-Softwareeigenschaften abfragen. (Die Vorlage nennt hier Gamma, obwohl die API zum GIC-Modul gehört.)

【Syntax】

 XCamReturn rk_aiq_user_api2_agic_v2_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rkaiq_gic_v2_api_attr_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Struktur der GIC-Softwareeigenschaften Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_agic.h

Bibliotheksdatei: librkaiq.so

【Beschreibung】

9.18.3 Datentypen der Modul-API

9.18.3.1 rkaiq_gic_api_op_mode_t

【Beschreibung】 GIC-Betriebsmodus definieren.

【Definition】

   typedef enum rkaiq_gic_api_op_mode_e {
       RKAIQ_GIC_API_OPMODE_OFF    = 0,
       RKAIQ_GIC_API_OPMODE_AUTO   = 1,
       RKAIQ_GIC_API_OPMODE_MANUAL = 2,
   } rkaiq_gic_api_op_mode_t;

【Felder】

Feldname Beschreibung
RKAIQ_GIC_API_OPMODE_OFF GIC ausgeschaltet
RKAIQ_GIC_API_OPMODE_AUTO Manueller API-Modus (so in der Vorlage trotz AUTO)
RKAIQ_GIC_API_OPMODE_MANUAL Manueller Modus

9.18.3.2 rkaiq_gic_v2_param_selected_t

【Beschreibung】 Automatische/manuelle Eigenschaften für RK3588 definieren.

【Definition】

   typedef struct rkaiq_gic_v2_param_selected_s {
       uint32_t iso;
       uint8_t bypass;
       uint8_t gr_ratio;
       uint16_t min_busy_thre;
       uint16_t min_grad_thr1;
       uint16_t min_grad_thr2;
       uint16_t k_grad1;
       uint16_t k_grad2;
       uint16_t gb_thre;
       uint16_t maxCorV;
       uint16_t maxCorVboth;
       uint16_t dark_thre;
       uint16_t dark_threHi;
       uint16_t k_grad1_dark;
       uint16_t k_grad2_dark;
       uint16_t min_grad_thr_dark1;
       uint16_t min_grad_thr_dark2;
       float NoiseScale;
       float NoiseBase;
       float noiseCurve_0;
       float noiseCurve_1;
       float globalStrength;
       uint16_t diff_clip;
   } rkaiq_gic_v2_param_selected_t;

【Felder】

Feldname Beschreibung
iso ISO-Wert der Szene
bypass Reserviert, nicht verwendet
gr_ratio Reserviert, nicht verwendet
min_busy_thre Erkennungsfähigkeit für strukturreiche Bereiche, Wertebereich [0, 1023], Standardwert 160
min_grad_thr1 Anzahl-Schwellenwert 1 für Bereiche ohne Kanten, GIC-Stärkeregelwert; Wertebereich [0, 1023], Standardwert 32
min_grad_thr2 Anzahl-Schwellenwert 2 für Bereiche ohne Kanten, GIC-Stärkeregelwert; Wertebereich [0, 1023], Standardwert 32
k_grad1 Ansprechschwelle 1 für Kanten (horizontaler und vertikaler Gradient), Wertebereich [0, 15], Standardwert 5
k_grad2 Ansprechschwelle 2 für Kanten (horizontaler und vertikaler Gradient), Wertebereich [0, 15], Standardwert 1
gb_thre Skalierungsfaktor, Wertebereich [0, 15], Standardwert 7
maxCorV Maximalen GB-Kompensationswert im Kantenbereich begrenzen; Wertebereich [0, 1023], Standardwert 40
maxCorVboth Maximalen GB-Kompensationswert in gleichmäßigen Bereichen ohne Kanten begrenzen; Wertebereich [0, 1023], Standardwert 8
dark_thre Schwellenwert 1 für dunkle Bereiche definieren; Wertebereich [0, 2047], Standardwert 120
dark_threHi Schwellenwert 2 für dunkle Bereiche definieren; Wertebereich [0, 2047], Standardwert 240
k_grad1_dark Kantenschwellenwert 1 (horizontaler und vertikaler Gradient) im dunklen Bildbereich; Wertebereich [0, 15], Standardwert 6
k_grad2_dark Kantenansprechschwelle 2 (horizontaler und vertikaler Gradient) im dunklen Bildbereich; Wertebereich [0, 15], Standardwert 1
min_grad_thr_dark1 Anzahl-Schwellenwert 1 für Bereiche ohne Kanten im dunklen Bildteil; Wertebereich [0, 1023], Standardwert 64
min_grad_thr_dark2 Anzahl-Schwellenwert 2 für Bereiche ohne Kanten im dunklen Bildteil; Wertebereich [0, 1023], Standardwert 32
noiseCurve_0 Rauschkurvenparameter 1
noiseCurve_1 Rauschprofilparameter 2
globalStrength Globale Regelung der Stärke des GB-Kompensationswerts; Wertebereich [0, 2], Standardwert 1
Feldname Beschreibung
NoiseScale Aus der Rauschkurve die Rauschstandardabweichung des aktuellen Punkts bestimmen; mit noise_std *noise_scale den maximalen GB-Kompensationswert bestimmen
NoiseBase Schwellenwert zur Unterdrückung einer Korrektur an Bildkanten: Zu den Berechnungsergebnissen des ersten und zweiten Gradienten noise_offset addieren und vergleichen. Gilt in einer Richtung gradx>2*grady, wird eine Kante angenommen und keine Korrektur vorgenommen
diff_clip Maximalen GB-Kompensationswert begrenzen

9.18.3.3 rkaiq_gic_v2_api_attr_t

【Beschreibung】 GIC-Attribute definieren.

【Definition】

   typedef struct rkaiq_gic_v2_api_attr_s {
       rk_aiq_uapi_sync_t sync;
       uint8_t gic_en;
       rkaiq_gic_api_op_mode_t op_mode;
       uint32_t iso_cnt;
       rkaiq_gic_v2_param_selected_t auto_params[RKAIQ_GIC_MAX_ISO_CNT];
       rkaiq_gic_v2_param_selected_t manual_param;
   } rkaiq_gic_v2_api_attr_t;

【Felder】

Feldname Beschreibung
sync Zur Definition von rk_aiq_uapi_sync_t siehe Übersicht/API-Beschreibung
gic_en Ein/aus
op_mode Betriebsmodus
iso_cnt Anzahl der ISO-Werte in den automatischen Parametern
auto_params Automatische Parameter, ein Satz pro ISO-Wert; die Software berechnet die Werte automatisch durch ISO-Interpolation
manual_param Manuelle Parameter; dieser Parametersatz wird fest verwendet

9.19 CGC

9.19.1 Funktionsbeschreibung

CGC (Color Gamut Compression) dient zur Einstellung der Parameter für die Farbraumkompression.

9.19.2 Referenz der Funktions-APIs

9.19.3 Referenz der Modul-APIs

9.19.3.1 rk_aiq_user_api2_acgc_SetAttrib

【Beschreibung】

Eigenschaften des CGC-Moduls einstellen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acgc_SetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapi_acgc_attrib_t attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaften des CGC-Moduls Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acgc.h

Bibliotheksdatei: librkaiq.so

【Vorsichtsmaßnahmen】

Bei attr.param.op_mode = RK_AIQ_OP_MODE_AUTO werden die integrierten CGC-Standardparameter von AIQ verwendet. Bei attr.param.op_mode = RK_AIQ_OP_MODE_MANUAL können die CGC-Parameter konfiguriert werden.

9.19.3.2 rk_aiq_user_api2_acgc_GetAttrib

【Beschreibung】

Aktuelle Eigenschaften des CGC-Moduls abfragen.

【Syntax】

 XCamReturn rk_aiq_user_api2_acgc_GetAttrib(const rk_aiq_sys_ctx_t* sys_ctx,
 rk_aiq_uapi_acgc_attrib_t* attr);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
sys_ctx AIQ-Kontextzeiger Eingabe
attr Eigenschaft des CGC-Moduls Ausgabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api2_acgc.h

Bibliotheksdatei: librkaiq.so

9.19.4 Datentypen der Modul-API

9.19.4.1 rk_aiq_uapi_acgc_attrib_t

【Beschreibung】 API-Parameter des CGC-Moduls definieren.

【Definition】

 typedef struct rk_aiq_uapi_acgc_attrib_s {
     rk_aiq_uapi_sync_t sync;
     rk_aiq_acgc_params_t param;
 } rk_aiq_uapi_acgc_attrib_t;

【Felder】

Feldname Beschreibung
sync Zur Definition von rk_aiq_uapi_sync_t siehe Übersicht/API-Beschreibung
rk_aiq_acgc_params_t CGC-Parameter

9.19.4.2 rk_aiq_acgc_params_t

【Beschreibung】 Parameter des CGC-Moduls definieren.

【Definition】

 typedef struct __cgc_param {
     RKAiqOPMode_t op_mode;
     bool cgc_ratio_en;
     bool cgc_yuv_limit;
 } Cgc_Param_t;
 typedef Cgc_Param_t rk_aiq_acgc_params_t;

【Felder】

Feldname Beschreibung
op_mode Modus: RK_AIQ_OP_MODE_AUTO (integrierte AIQ-Parameter verwenden) oder RK_AIQ_OP_MODE_MANUAL (benutzerkonfigurierbare Parameter verwenden)
cgc_ratio_en Farbraumkompressionsmodus aktivieren oder deaktivieren; Standardwert FALSE
cgc_yuv_limit Ausgabe im begrenzten Wertebereich; bei cgc_yuv_limit = FALSE wird CGC umgangen. Standardwert FALSE

10. Statistiken

10.1 Übersicht

ISP30 unterstützt die Verarbeitung von Bilddaten zur Gewinnung der für die 3A-Regelalgorithmen AWB/AE/AF benötigten Statistikdaten. Der grundsätzliche Ablauf ist wie folgt:

Technische Originalabbildung — PDF S.387

10.2 Funktionsbeschreibung

10.2.1 AE-Statistik

Die AE-Hardwarestatistik umfasst hauptsächlich:

Gewichtete Histogrammstatistik mit 256 Abschnitten und blockweise R/G/B/Y-Mittelwerte auf Basis des RAW-Bereichs;

10.2.1.1 AE-Statistik auf Basis von RAW-Bildern

Die Modulstatistik gliedert sich in blockweise Helligkeitsstatistik und Histogrammstatistik. Je nach unterstützter Blockgröße und Verfügbarkeit unabhängiger Teilfensterstatistiken wird zwischen Big- und Lite-Modus unterschieden.

Big-Modus: Unterstützt maximal 15X15 und minimal 1X1 nicht unabhängige Teilfensterblöcke. Jeder Block liefert den Helligkeitsmittelwert der R/B-Kanäle mit 10 Bit und den Mittelwert des G-Kanals mit 12 Bit; standardmäßig werden 15X15 Blöcke verwendet. Zusätzlich können 4 unabhängige Teilfenster eingerichtet werden. Jedes liefert die Helligkeitssumme der R/B-Kanäle mit 29 Bit und die Summe des G-Kanals mit 32 Bit. Zur Berechnung der mittleren Helligkeit muss die Software durch die Pixelanzahl des jeweiligen Teilfensters dividieren. Die gewichtete Histogrammstatistik basiert auf der Blockanzahl und den zugewiesenen Gewichten; die effektive Pixelanzahl pro Helligkeitsabschnitt ist 28 Bit breit.

Lite-Modus: Unterstützt maximal 5X5 und minimal 1X1 nicht unabhängige Teilfensterblöcke. Jeder Block liefert den Helligkeitsmittelwert der R/B-Kanäle mit 10 Bit und den Mittelwert des G-Kanals mit 12 Bit; standardmäßig werden 5X5 Blöcke verwendet. Unabhängige Teilfenster werden nicht unterstützt. Die gewichtete Histogrammstatistik basiert auf der Blockanzahl und den zugewiesenen Gewichten; die effektive Pixelanzahl pro Helligkeitsabschnitt ist 28 Bit breit.

Auf der 3588-Plattform verwendet der Nicht-HDR-Belichtungsmodus standardmäßig BIG (15X15 nicht unabhängige Teilfenster). Im HDR-2-Bild-Modus wird ebenfalls BIG verwendet. Im HDR-3-Bild-Modus verwenden das kurz und das lang belichtete Bild BIG (15X15), das mittel belichtete Bild LITE (5X5 nicht unabhängige Teilfenster).

10.2.2 AWB-Statistik

Datenquelle der AWB-Hardwarestatistik:

Im HDR-Mehrbildmodus kann einer der 3 Kanäle L/M/S ausgewählt werden.

Im linearen Modus gibt es nur 1 Datenkanal.

Statistikberechnung nach Raw-BLC-LSC.

Die AWB-Hardwarestatistik umfasst Weißpunktstatistik und Blockstatistik.

Weißpunktstatistik

Im Hauptfenster werden die Summenwerte und Anzahlen von RGins und BGains in den Weißbereichen von 7 Lichtquellen und 2 Größen erfasst.

Im Teilfenster werden die Summenwerte und Anzahlen von RGins und BGains in den Weißbereichen von 4 Lichtquellen und 2 Größen erfasst.

RGin und BGain in den 4 UV- oder XY-Bereichen werden im jeweiligen Rahmen aufsummiert; außerdem wird die Anzahl der RGins erfasst. (Terminologie der Vorlage beibehalten.)

Blockstatistik: Das Bild wird in 15x15 Blöcke aufgeteilt; für jeden Block werden die R-, G- und B-Mittelwerte aller Punkte oder der Weißpunkte ermittelt.

10.2.3 AF-Statistik

AFHW-Hardwarestatistik:

Im HDR-Mehrbildmodus kann einer der 3 Kanäle L/M/S ausgewählt werden. Auch die nach Zusammenführung der 3 Kanäle entstehenden Daten werden als Eingang unterstützt.

Im linearen Modus gibt es nur 1 Datenkanal.

Unterstützt wird die FV-Ausgabe für jeweils 2 konfigurierbare Frequenzbänder in horizontaler und vertikaler Richtung.

Blockdiagramm des ISP30-AF-Hardwarestatistikmoduls

Technische Originalabbildung — PDF S.388

10.3 API-Referenz

10.3.1 rk_aiq_uapi_sysctl_get3AStatsBlk

【Beschreibung】

3A-Statistiken synchron abrufen.

【Syntax】

 XCamReturn
 rk_aiq_uapi_sysctl_get3AStatsBlk(const rk_aiq_sys_ctx_t* ctx, rk_aiq_isp_stats_t
 **stats, int timeout_ms);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
stats Zeiger auf die Statistikstruktur Ausgabe
timeout_ms Zeitlimit; -1 bedeutet unbegrenztes Warten, bis Statistikdaten vorliegen Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api_sysctl.h

Bibliotheksdatei: librkaiq.so

10.3.2 rk_aiq_uapi_sysctl_release3AStatsRef

【Beschreibung】

Die abgerufenen 3A-Statistikdaten freigeben; gemeinsam mit rk_aiq_uapi_sysctl_get3AStatsBlk verwenden.

【Syntax】

 void
 rk_aiq_uapi_sysctl_release3AStatsRef(const rk_aiq_sys_ctx_t* ctx,
 rk_aiq_isp_stats_t *stats);

【Parameter】

Parametername Beschreibung Eingabe/Ausgabe
ctx AIQ-Kontextzeiger Eingabe
stats Zeiger auf die Statistikstruktur Eingabe

【Rückgabewert】

Rückgabewert Beschreibung
0 Erfolg
Non-0 Fehler; siehe Fehlercodetabelle

【Voraussetzungen】

Headerdatei: rk_aiq_user_api_sysctl.h

Bibliotheksdatei: librkaiq.so

Referenzcode

SDK: external/camera_engine_rkaiq/rkisp_demo/demo/af_algo_demo

10.4 Datentypen

10.4.1 rk_aiq_isp_stats_t

【Beschreibung】 AIQ-3A-Statistiken.

【Definition】

 typedef struct {
     rk_aiq_isp_aec_stats_t aec_stats;
     rk_aiq_isp_awb_stats2_v3x_t awb_stats_v3x;
     rk_aiq_isp_af_stats_t  af_stats;
 } rk_aiq_isp_stats_t;

【Felder】

Feldname Beschreibung
aec_stats AE-Statistik
rk_aiq_isp_awb_stats2_v3x_t AWB-Statistik
af_stats AF-Statistik

10.4.2 RKAiqAecStats_t

【Beschreibung】 AE-Dateninformationen definieren; Einzelheiten siehe Funktionsbeschreibung des AE-Abschnitts.

【Definition】

 typedef struct RKAiqAecStats_s {
     RkAiqAecHwStatsRes_t ae_data;
     RKAiqAecExpInfo_t ae_exp;
 } RKAiqAecStats_t;

【Felder】

Feldname Beschreibung
ae_data Hardwarestatistik des AE-Moduls
ae_exp Sensorbelichtungsinformationen des AE-Moduls

10.4.2.1 RKAiqAecExpInfo_t

【Beschreibung】 Belichtungsparameterinformationen des AE-Moduls.

【Definition】

 typedef struct RKAiqAecExpInfo_s {
     RkAiqExpParamComb_t LinearExp;
     RkAiqExpParamComb_t HdrExp[3];
     RkAiqIrisParamComb_t Iris;
     uint16_t line_length_pixels;
     uint32_t frame_length_lines;
     float pixel_clock_freq_mhz;
     CISFeature_t CISFeature;
     RKAiqExpI2cParam_t exp_i2c_params;
 } RKAiqAecExpInfo_t;

【Felder】

Feldname Beschreibung
LinearExp Belichtungsparameterinformationen für Nicht-HDR-Modi, einschließlich tatsächlicher Belichtungswerte und Registerwerte im RK-Format
HdrExp Belichtungsparameterinformationen für den HDR-Modus, einschließlich tatsächlicher Belichtungswerte und Registerwerte im RK-Format; unterstützt bis zu 3 Belichtungen
exp_i2c_params Sensorregisterwerte der Belichtungsparameter; Belichtungsregisterparameter für AE-Lösungen von Drittanbietern
line_length_pixels hts; der Wert wird durch die Konfigurationssequenz des Sensors bestimmt
frame_length_lines vts; der Wert wird durch die Konfigurationssequenz des Sensors bestimmt
pixel_clock_freq_mhz pclk in MHz; der Wert wird durch die Konfigurationssequenz des Sensors bestimmt

【Vorsichtsmaßnahmen】

HdrExp enthält die Belichtungsparameterinformationen im HDR-Modus und unterstützt bis zu 3TO1. Bei HDR 2TO1 bezeichnet Index 0 die kurze und Index 1 die lange Belichtung; Index 2 ist ungültig. Bei HDR 3TO1 bezeichnet Index 0 die kurze, Index 1 die mittlere und Index 2 die lange Belichtung.

10.4.2.1.1 RkAiqExpParamComb_t

【Beschreibung】 Details der Belichtungsparameterinformationen des AE-Moduls.

【Felder】

 typedef struct {
     RkAiqExpRealParam_t exp_real_params; real value
     RkAiqExpSensorParam_t exp_sensor_params;//RK reg value
 } RkAiqExpParamComb_t;
Feldname Beschreibung
exp_real_params Tatsächlicher physikalischer Wert der Belichtungskomponente
exp_sensor_params Sensorregisterwert der Belichtungskomponente gemäß der RK-Belichtungseinstellung
 typedef struct RkAiqExpRealParam_s {
     float integration_time;
     float analog_gain;
     float digital_gain;
     float isp_dgain;
     int   iso;
     int   dcg_mode;
 } RkAiqExpRealParam_t;
Feldname Beschreibung
integration_time Belichtungsintegrationszeit in Sekunden (s)
analog_gain Analoge Verstärkung/Gesamtverstärkung des Sensors als Faktor
digital_gain Digitale Sensorverstärkung als Faktor; wenn diese die Genauigkeit der analogen Verstärkung ausgleicht, wird sie auf 1x gesetzt und der Gesamtverstärkungswert in analog_gain geschrieben
isp_dgain Digitale ISP-Verstärkung als Faktor; derzeit ungültig, Standardwert 1x
iso Gesamtverstärkungswert; ISO repräsentiert die Systemverstärkung mit dem konstanten Faktor 50: ISO = Gesamtverstärkung * 50
dcg_mode Dual Conversion Gain
 typedef struct RkAiqExpSensorParam_s {
     unsigned short fine_integration_time;
     unsigned short coarse_integration_time;
     unsigned short analog_gain_code_global;
     unsigned short digital_gain_global;
     unsigned short isp_digital_gain;
 } RkAiqExpSensorParam_t;
Feldname Beschreibung
fine_integration_time Registerwert für den Bruchteil einer Zeile der Sensorbelichtungsintegrationszeit; nur erforderlich, wenn der Sensor gebrochene Zeilen unterstützt
coarse_integration_time Registerwert der Sensorbelichtungsintegrationszeit als Zeilenanzahl
analog_gain_code_global Registerwerte der analogen Sensorverstärkung
digital_gain_global Registerwerte der digitalen Sensorverstärkung
isp_digital_gain Registerwert der digitalen ISP-Verstärkung; vorläufig ungültig

【Vorsichtsmaßnahmen】

Die digitale Verstärkung erfüllt je nach Sensor unterschiedliche Aufgaben: Sie erweitert die Empfindlichkeit oder gleicht die Genauigkeit der analogen Verstärkung aus. Daher wird sie hier nicht separat aufgeführt; ihr Wert und die zugehörigen Registerwerte sind in der analogen Verstärkung enthalten.

Der Dual-Conversion-Gain-Modus hat drei Zustände: -1 bedeutet, dass der Sensor DCG nicht unterstützt, 0 bezeichnet LCG und 1 bezeichnet HCG.

10.4.2.1.2 RKAiqExpI2cParam_t

【Beschreibung】 I2c-Belichtungsparameter des AE-Moduls, normalerweise für AE von Drittanbietern.

【Definition】

 #define MAX_I2CDATA_LEN 64
 typedef struct RKAiqExpI2cParam_s {
     bool           bValid;
     unsigned int   nNumRegs;
     unsigned int   RegAddr[MAX_I2CDATA_LEN];
     unsigned int   AddrByteNum[MAX_I2CDATA_LEN];
     unsigned int   RegValue[MAX_I2CDATA_LEN];
     unsigned int   ValueByteNum[MAX_I2CDATA_LEN];
     unsigned int   DelayFrames[MAX_I2CDATA_LEN];
 } RKAiqExpI2cParam_t;

【Felder】

Feldname Beschreibung
bValid Gültigkeitsfreigabe für I2c-Parameter:
true: Registerwerte mit RKAiqExpI2cParam_t einstellen (üblicherweise für Drittanbieter-AE);
false: Registerwerte anhand der Registerparameter im RK-Format einstellen
nNumRegs Anzahl der einzustellenden Registerwerte
AddrByteNum Bitlänge der Registeradresse; maximal 64 Elemente
RegValue Array von Registerwerten mit maximal 64 Elementen
ValueByteNum Bitlänge des Registerwerts; maximal 64 Elemente
DelayFrames Array der Verzögerungen in Bildern für Registerwerte; maximal 64 Elemente

【Vorsichtsmaßnahmen】

Dieser Registerparameter gilt nur, wenn die Drittanbieter-AE-Anwendung aktiv und bValid true ist. Andernfalls werden standardmäßig die Registerparameter im RK-Format aus RkAiqExpParamComb_t verwendet.

Es können maximal 64 Registerwerte eingestellt werden.

10.4.2.1.3 RkAiqIrisParamComb_t

【Beschreibung】 Blendenparameter des AE-Moduls.

【Definition】

 typedef struct {
     RkAiqPIrisParam_t   PIris;
     RkAiqDCIrisParam_t  DCIris;
 } RkAiqIrisParamComb_t;
 typedef struct {
     int            step;
     int            gain;
     bool           update;
 } RkAiqPIrisParam_t;
 typedef struct {
     int        pwmDuty; //percent value,range = 0-100
     bool       update;
 } RkAiqDCIrisParam_t;

【Felder】

Mitgliedsname Untergeordnete Mitglieder Beschreibung
PIris step
gain
update
P-Blendenparameter:
Registerwert der P-Blendenstufe; äquivalenter Verstärkungswert dieser Stufe;
Aktualisierungsflag für die P-Blendenstufe
DCIris pwmDuty
update
DC-Blendenparameter: PWM-Tastverhältnis, Wertebereich 1~100;
Aktualisierungsflag für die DC-Blendenparameter

10.4.2.2 RkAiqAecHwStatsRes_t

【Beschreibung】 Hardwarestatistik des AE-Moduls.

【Definition】

 typedef struct RkAiqAecHwStatsRes_s {
     Aec_Stat_Res_t chn[3];
     Aec_Stat_Res_t extra;
     struct yuvae_stat yuvae;
     struct sihist_stat sihist;
 } RkAiqAecHwStatsRes_t;

【Felder】

Feldname Beschreibung
chn[3] RAW-Bildstatistik des AE-Moduls nach BLC und AWB; kompatibel mit HDR- und Nicht-HDR-Modi, bis zu HDR 3TO1 S/M/L-Statistiken
extra RAW-Bildstatistik des AE-Moduls vor DeBayer; im HDR-Modus die Statistik des zusammengeführten Bildes
yuvae Blockinformationen des AE-Moduls auf Basis des RGB-Bilds vor Gamma [von der 3588-Plattform nicht unterstützt]
sihist Histogramminformationen des AE-Moduls auf Basis des RGB-Bilds vor Gamma [von der 3588-Plattform nicht unterstützt]

【Vorsichtsmaßnahmen】

Aec_Stat_Res_t chn[3] repräsentiert die Statistik der ersten 3 RAW-Datenpfade vor dem HDR-Merge-Modul. Im Nicht-HDR-Modus ist Index 0 gültig; alle anderen sind ungültig. Bei HDR 2TO1 bezeichnet Index 0 den kurz belichteten und Index 1 den lang belichteten Datenpfad; Index 2 ist ungültig. Bei HDR 3TO1 stehen Index 0 für den kurzen, Index 1 für den mittleren und Index 2 für den langen Belichtungsdatenpfad.

Vor dem RAW-basierten Statistikmodul liegen BLC und AWB; daher beeinflussen deren Verstärkungswerte die Statistik. Aec_Stat_Res_t extra bezeichnet im HDR-Modus die RAW-Bildstatistik nach der HDR-Zusammenführung. Vor diesem Statistikmodul liegen unter anderem BLC, AWB, HDRMERGE und TMO; deren Verstärkungen beeinflussen daher die Statistik. Wenn das AF-Modul eingeschaltet ist, ist dieser Statistikteil außerdem ungültig.

Die 3588-Plattform unterstützt keine Block- und Histogramminformationen auf Basis des RGB-Bilds vor Gamma.

10.4.2.2.1 Aec_Stat_Res_t

【Beschreibung】 RAW-Bildstatistik des AE-Moduls.

【Definition】

 typedef struct Aec_Stat_Res_s {
     //rawae
     struct rawaebig_stat rawae_big;
     struct rawaelite_stat rawae_lite;
     //rawhist
     struct rawhist_stat rawhist_big;
     struct rawhist_stat rawhist_lite;
 } Aec_Stat_Res_t;

【Felder】

Feldname Beschreibung
rawae_big RAW-basierte Blockstatistik im Big-Modus
rawae_lite RAW-basierte Blockstatistik im Lite-Modus
rawhist_big RAW-basierte Histogrammstatistik im BIG-Modus
rawhist_lite RAW-basierte Histogrammstatistik im Lite-Modus

【Vorsichtsmaßnahmen】

Zu den Unterschieden zwischen BIG und LITE bei RAW-Bildstatistiken siehe die Funktionsbeschreibung. Die Hauptunterschiede sind die Anzahl der Blöcke für die mittlere Helligkeit und die Unterstützung unabhängiger Teilfenster-Mittelwerte. Die RAW-basierten Histogrammstatistiken beider Modi verwenden dieselbe Datenstruktur.

Auf der 3588-Plattform verwendet der Nicht-HDR-Modus standardmäßig BIG (15X15 nicht unabhängige Teilfenster). Bei HDR mit 2 Bildern verwendet jedes Bild BIG (15X15). Bei HDR mit 3 Bildern verwenden die kurze und lange Belichtung BIG (15X15), die mittlere Belichtung LITE (5X5 nicht unabhängige Teilfenster).

10.4.2.2.2 rawaebig_stat

【Beschreibung】 Die RAW-basierte Big-Modus-Statistik enthält die mittlere R/G/B-Helligkeit von 15X15 nicht unabhängigen Teilfenstern und die R/G/B-Helligkeitssummen von 4 unabhängigen Teilfenstern.

【Definition】

 struct rawaebig_stat {
     unsigned short channelr_xy[RAWAEBIG_WIN_NUM];
     unsigned short channelg_xy[RAWAEBIG_WIN_NUM];
     unsigned short channelb_xy[RAWAEBIG_WIN_NUM];
     unsigned int   channely_xy[RAWAEBIG_WIN_NUM]; //not HW!
     unsigned long int wndx_sumr[RAWAEBIG_SUBWIN_NUM];
     unsigned long int wndx_sumg[RAWAEBIG_SUBWIN_NUM];
     unsigned long int wndx_sumb[RAWAEBIG_SUBWIN_NUM];
     unsigned short wndx_channelr[RAWAEBIG_SUBWIN_NUM]; //not HW!
     unsigned short wndx_channelg[RAWAEBIG_SUBWIN_NUM]; //not HW!
     unsigned short wndx_channelb[RAWAEBIG_SUBWIN_NUM]; //not HW!
     unsigned char wndx_channely[RAWAEBIG_SUBWIN_NUM]; //not HW!
 };
 #define RAWAEBIG_WIN_NUM    225
 #define RAWAEBIG_SUBWIN_NUM  4

【Felder】

Feldname Beschreibung
channelr_xy Mittlere Helligkeit des R-Kanals nicht unabhängiger Teilfensterblöcke im BIG-Modus; 10 gültige Bit
channelg_xy Mittlere Helligkeit des G-Kanals nicht unabhängiger Teilfensterblöcke im Big-Modus; 12 gültige Bit
channelb_xy Mittlere Helligkeit des B-Kanals nicht unabhängiger Teilfensterblöcke im BIG-Modus; 10 gültige Bit
wndx_sumr Helligkeitssumme des R-Kanals unabhängiger Teilfenster im Big-Modus; 29 gültige Bit
wndx_sumg Helligkeitssumme des G-Kanals unabhängiger Teilfenster im BIG-Modus; 32 gültige Bit
wndx_sumb Helligkeitssumme des B-Kanals unabhängiger Teilfenster im Big-Modus; 29 gültige Bit

【Vorsichtsmaßnahmen】

Die RAW-basierte Big-Modus-Statistik enthält nur die 3 Kanäle R/G/B. Falls eine Y-Kanal-Statistik benötigt wird, kann zusätzlicher Softwarecode sie aus den R/G/B-Statistikwerten berechnen.

Die RAW-basierte BIG-Modus-Statistik umfasst 15X15 nicht unabhängige Teilfenster mit einer Mindestgröße von 16X4.

Die RAW-basierte BIG-Modus-Statistik umfasst 4 unabhängige Teilfenster. Ihre Positionen dürfen sich überlappen; ihre Größe darf jeweils 2k x 1k nicht überschreiten.

Die Strukturparameter channely_xy, wndx_channelr, wndx_channelg, wndx_channelb und wndx_channely werden in Software berechnet. Hierzu muss Code ergänzt werden, der die Hardwarestatistikwerte auswertet.

10.4.2.2.3 rawaelite_stat

【Beschreibung】 Die RAW-basierte Lite-Modus-Statistik enthält die mittlere R/G/B-Helligkeit von 5X5 nicht unabhängigen Teilfensterblöcken.

【Definition】

 struct rawaelite_stat {
     unsigned short channelr_xy[RAWAELITE_WIN_NUM];
     unsigned short channelg_xy[RAWAELITE_WIN_NUM];
     unsigned short channelb_xy[RAWAELITE_WIN_NUM];
     unsigned int   channely_xy[RAWAELITE_WIN_NUM]; not HW!
 };
 #define RAWAELITE_WIN_NUM  25

【Felder】

Feldname Beschreibung
channelr_xy Mittlere R-Kanal-Helligkeit nicht unabhängiger Teilfensterblöcke im Lite-Modus; 10 gültige Bit
channelg_xy Mittlere G-Kanal-Helligkeit nicht unabhängiger Teilfensterblöcke im Lite-Modus; 12 gültige Bit
channelb_xy Mittlere B-Kanal-Helligkeit nicht unabhängiger Teilfensterblöcke im Lite-Modus; 10 gültige Bit

【Vorsichtsmaßnahmen】

Die RAW-basierte Lite-Modus-Statistik enthält nur die 3 R/G/B-Kanäle von 5X5 nicht unabhängigen Teilfenstern. Eine benötigte Y-Statistik kann durch zusätzlichen Softwarecode aus R/G/B berechnet werden. Die Teilfenster müssen mindestens 16X4 groß sein.

channely_xy ist ein Softwareberechnungsparameter; zur Berechnung aus den Hardwarestatistikwerten muss Code ergänzt werden.

10.4.2.2.4 rawhist_stat

【Beschreibung】 RAW-basierte Histogrammstatistik.

【Definition】

 struct rawhist_stat {
     unsigned int bins[RAWHIST_BIN_N_MAX];
 };
 #define RAWHIST_BIN_N_MAX  256

【Felder】

Feldname Beschreibung
bins Histogramm mit insgesamt 256 Abschnitten; pro Abschnitt 28 gültige Bit

10.4.3 rk_aiq_isp_awb_stats2_v3x_t

【Beschreibung】 Weißabgleich-Hardwarestatistik definieren; sie umfasst hauptsächlich Weißpunkt- und Blockstatistiken.

Weißpunktstatistik

Im Hauptfenster werden Summenwerte und Anzahlen von RGins und BGain in den Weißbereichen von 7 Lichtquellen und 2 Größen erfasst;

im Teilfenster werden Summenwerte und Anzahlen von RGin und BGain in den Weißbereichen von 4 Lichtquellen und 2 Größen erfasst;

Summenwerte und Anzahlen von RGin und BGain in 4 zusätzlichen Rahmen im UV- oder XY-Bereich;

Helligkeitshistogramm der Weißpunkte;

Blockstatistik: Das Bild wird in 15x15 Blöcke aufgeteilt (siehe AWB-Blockschema), mit R-, G- und B-Mittelwerten aller Punkte oder Weißpunkte jedes Blocks.

Technische Originalabbildung — PDF S.399

Abbildung: AWB-Blockschema

【Definition】

 typedef struct rk_aiq_isp_awb_stats2_v3x_s {
     //method1
     rk_aiq_awb_stat_wp_res_light_v201_t light[RK_AIQ_AWB_MAX_WHITEREGIONS_NUM];
     int WpNo2[RK_AIQ_AWB_MAX_WHITEREGIONS_NUM];
     //method2
     rk_aiq_awb_stat_blk_res_v201_t   blockResult[RK_AIQ_AWB_GRID_NUM_TOTAL];
     //window in pixel domain
     rk_aiq_awb_stat_wp_res_light_v201_t
 multiwindowLightResult[RK_AIQ_AWB_MAX_WHITEREGIONS_NUM];
     //window in xy or uv domain
     rk_aiq_awb_stat_wp_res_v201_t
 excWpRangeResult[RK_AIQ_AWB_STAT_WP_RANGE_NUM_V201];
     //wpno histogram
     unsigned int WpNoHist[RK_AIQ_AWB_WP_HIST_BIN_NUM];
 } rk_aiq_isp_awb_stats2_v3x_t;

【Felder】

Feldname Beschreibung
light Weißpunktstatistiken für unterschiedliche Lichtquellen im Hauptfenster; maximal RK_AIQ_AWB_MAX_WHITEREGIONS_NUM Lichtquellen
WpNo2 Anzahl der Weißpunkte im Schnittbereich von XY- und UV-Bereich für unterschiedliche Lichtquellen im Hauptfenster; ohne Nachkommastellen
blockResult RGB-Summen jedes Blocks; das Bild ist gleichmäßig in insgesamt 15x15 (RK_AIQ_AWB_GRID_NUM_TOTAL) Blöcke aufgeteilt, siehe AWB-Blockschema
multiwindowLightResult Weißpunktstatistik unterschiedlicher Lichtquellen in mehreren Teilfenstern, maximal 4 Teilfenster. Nur die ersten 4 Lichtquellen werden erfasst; mittels Zeitmultiplex können alle erfasst werden
excWpRangeResult Statistik der Punkte im Bereich excludeWpRange; nur die ersten vier Bereiche werden erfasst, maximal 4 Bereiche
WpNoHist Weißpunkthistogramm: Anzahl der Weißpunkte je Bin ohne Nachkommastellen. Das Register xyRangeTypeForWpHist bestimmt, ob Weißpunkte im großen XY-Rahmen oder im XY-Rahmen gezählt werden

【Vorsichtsmaßnahmen】

Für eine globale Weißpunktstatistik des Hauptfensters können die Weißpunktstatistiken aller Lichtquellen einfach zusammengeführt werden.

10.4.4 rk_aiq_awb_stat_wp_res_light_v201_t

【Beschreibung】 Weißpunktstatistikergebnis für eine Lichtquelle definieren.

【Definition】

 typedef struct rk_aiq_awb_stat_wp_res_light_v201_s {
     rk_aiq_awb_stat_wp_res_v201_t xYType[RK_AIQ_AWB_XY_TYPE_MAX_V201];
 } rk_aiq_awb_stat_wp_res_light_v201_t;

【Felder】

Feldname Beschreibung
XYType Weißpunktstatistik von XY-Rahmen unterschiedlicher Größe für eine Lichtquelle; maximal RK_AIQ_AWB_XY_TYPE_MAX_V201 Rahmen, also 2 Rahmen

10.4.5 rk_aiq_awb_stat_wp_res_v201_t

【Beschreibung】 Weißpunktstatistik im XY-Rahmen einer bestimmten Größe für eine Lichtquelle sowie Nicht-Weißpunktstatistik im Nicht-Weißpunktbereich definieren.

【Definition】

 typedef struct rk_aiq_awb_stat_wp_res_v201_s {
     long long WpNo;
     long long RgainValue;
     long long BgainValue;
 } rk_aiq_awb_stat_wp_res_v201_t;

【Felder】

Feldname Beschreibung
WpNo Anzahl der Weißpunkte mit 22 Ganzzahl-Bit und 10 Nachkommabits; WpNo = Weißpunktzahl der ISP-Hardwarestatistik / 2^10
RgainValue Summe der R-Kanalwerte der Weißpunkte, 22 Ganzzahl-Bit und 10 Nachkommabits
BgainValue Summe der G-Kanalwerte der Weißpunkte, 22 Ganzzahl-Bit und 10 Nachkommabits (G laut Vorlage trotz BgainValue)

10.4.6 rk_aiq_awb_stat_blk_res_v201_t

【Beschreibung】 Statistikergebnisse für jeden Block definieren.

Bei blkMeasureMode = =RK_AIQ_AWB_BLK_STAT_MODE_ALL_V201 ist das erfasste Ergebnis die Summe aller Punkte des Blocks;

bei blkMeasureMode = =RK_AIQ_AWB_BLK_STAT_MODE_REALWP_V201 ist das Ergebnis die Summe aller Weißpunkte des Blocks;

blkMeasureMode ist das Register zur Steuerung des statistischen Inhalts eines Blocks.

【Definition】

 typedef struct rk_aiq_awb_stat_blk_res_v201_s {
     long long WpNo;
     long long Rvalue;
     long long Gvalue;
     long long Bvalue;
 } rk_aiq_awb_stat_blk_res_v201_t;

【Felder】

Feldname Beschreibung
WpNo Anzahl der Punkte im Block
Rvalue Summe der R-Kanalwerte aller Punkte im Block
Gvalue Summe der RG-Kanalwerte aller Punkte im Block (RG laut Vorlage)
Bvalue Summe der RB-Kanalwerte aller Punkte im Block (RB laut Vorlage; Satzende unvollständig)

10.4.7 rk_aiq_af_algo_stat_v30_t

【Beschreibung】 AF-Statistik definieren.

【Definition】

 typedef struct {
     unsigned int wndb_luma;
     unsigned int wndb_sharpness;
     unsigned int winb_highlit_cnt;
     unsigned int wnda_luma[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int wnda_fv_v1[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int wnda_fv_v2[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int wnda_fv_h1[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int wnda_fv_h2[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int wina_highlit_cnt[RKAIQ_RAWAF_SUMDATA_NUM];
     unsigned int int_state;
     struct timeval focus_starttim;
     struct timeval focus_endtim;
     struct timeval zoom_starttim;
     struct timeval zoom_endtim;
     int64_t sof_tim;
     int focusCode;
     int zoomCode;
     bool focusCorrection;
     bool zoomCorrection;
     float angleZ;
 } rk_aiq_af_algo_stat_v30_t;

【Felder】

Feldname Beschreibung
wndb_luma Helligkeitswert des unabhängigen Fensters
wndb_sharpness Schärfewert des unabhängigen Fensters
winb_highlit_cnt Spitzlichtzähler des unabhängigen Fensters
wnda_luma Helligkeitswert der 15*15 Teilfenster im Hauptfenster
wnda_fv_v1 V1-Schärfewert der 15*15 Teilfenster im Hauptfenster
wnda_fv_v2 V2-Schärfewert der 15*15 Teilfenster im Hauptfenster
wnda_fv_h1 H1-Schärfewert der 15*15 Teilfenster im Hauptfenster
wnda_fv_h2 H2-Schärfewert der 15*15 Teilfenster im Hauptfenster
wina_highlit_cnt Spitzlichtzähler der 15*15 Teilfenster im Hauptfenster
int_state Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
focus_starttim Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
focus_endtim Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
zoom_starttim Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
zoom_endtim Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
sof_tim Bildstartzeit dieses Datenbilds in ns
focusCode Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
zoomCode Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
focusCorrection Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
zoomCorrection Vom RK-AF-Algorithmus verwendet; kann ignoriert werden
angleZ Vom RK-AF-Algorithmus verwendet; kann ignoriert werden

11. Debugging und FAQ

11.1 Versionsnummer ermitteln

AIQ stellt das Veröffentlichungsdatum der Version, die AIQ-Version, die IQ-Parser-Version und die Versionsinformationen der einzelnen ISP-Algorithmusmodule bereit.

11.1.0.1 Kurzfassung der Versionsinformationen abrufen

 strings librkaiq.so | grep -w AIQ
 AIQ: v0.1.6

11.1.0.2 Vollständige Versionsinformationen abrufen

1. Die AIQ-Bibliothek im SDK wird standardmäßig als Release-Version gebaut. Auf Debug umstellen, die AIQ-Bibliothek neu kompilieren und auf dem Gerät aktualisieren.

SDK/external/camera_engine_rkaiq/CMakeLists.txt:
if(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
add_definitions(-DBUILD_TYPE_DEBUG)
endif()

Ändern in:

#if(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
add_definitions(-DBUILD_TYPE_DEBUG)
#endif()

2. Bei der standardmäßigen Protokollstufe gibt die geladene und laufende AIQ-Bibliothek nichts aus. Die Protokollstufe des xcore-Moduls kann für die Ausgabe der AIQ-Versionsinformationen eingestellt werden:

 export persist_camera_engine_log=0x1000000ff2

3. Beim AIQ-Start werden folgende Versionsinformationen ausgegeben:

 ************************** VERSION INFOS **************************
 version release date: 2020-06-05
                  AIQ: v0.1.6
            IQ PARSER: v1.0.0
 RK INTEGRATED ALGO MODULES:
                  AWB: v0.0.9
                  AEC: v0.1.1
                   AF: v0.0.9
                 AHDR: v0.0.9
                  ANR: v0.0.9
               ASHARP: v0.0.9
              ADEHAZE: v0.0.9
               AGAMMA: v0.0.9
               A3DLUT: v0.0.9
                 ABLC: v0.0.9
                 ACCM: v0.0.9
                 ACGC: v0.0.9
                  ACP: v0.0.9
             ADEBAYER: v0.0.1
                ADPCC: v0.0.9
                 AGIC: v0.0.9
                  AIE: v0.0.1
                ALDCH: v0.0.9
                 ALSC: v0.0.9
                 AORB: v0.0.9
                 AR2Y: v0.0.9
                  ASD: v0.0.9
                 AWDR: v0.0.9
 ************************ VERSION INFOS END ************************

11.1.1 Regeln zur Versionskompatibilität

Für die Kompatibilität zwischen AIQ, IQ Tool und ISP-Treiber gelten folgende Regeln:

v A . B. C

B ist hexadezimal dargestellt. bit[0:3] kennzeichnet die zueinander passende Version von AIQ und IQ Tool; bit[4:7] kennzeichnet die zueinander passende Version von AIQ und ISP-Treiber. Beispiele:

ISP-Treiber: v 1. 0x3.0 passt zu AIQ:v1.0x30.0 und AIQ:v1.0x40.0. (Versionsangaben der Vorlage beibehalten.)

IQ Tool: v 1. 0x3.0 passt zu AIQ:v1.0x33.0 und AIQ:v1.0x30.0. Ist C in der AIQ-Versionsnummer nicht 0, kann eine Versionsinkompatibilität auftreten. Für die Zuordnung zum IQ Tool sollte vorzugsweise eine AIQ-Version mit C = 0 verwendet werden.

11.2 AIQ-Protokollierung

11.2.1 Übersicht

AIQ verwendet 64 Bit zur Darstellung der Protokollstufen aller Module. Bitbelegung und Modulbeschreibungen:

 bit: [63-39]   38      37       36    35   34     33    32    31
 mean:  [U]   [CAMHW][ANALYZER][XCORE][ASD][ACGC][AFEC][AORB][ASHARP]
 bit:  30   29   28     27     26       25      24   23       22
 mean:[AIE][ACP][ACSM][ALDCH][A3DLUT][ADEHAZE][AWDR][AGAMMA][ACCM]
 bit:      21     20    19   18    17    16     15   14  13   12
 mean:[ADEBAYER][AGIC][ALSC][ANR][AHDR][ADPCC][ABLC][AF][AWB][AEC]
 bit:    11-4        3-0
 mean:[sub modules][level]
     [U] means unused now.
     [level] : use 4 bits to define log levels.
     each module log has following ascending levels:
     0: error
     1: warning
     2: info
     3: debug
     4: verbose
     5: low1
     6-7: unused, now the same as debug
     [sub modules] : use bits 4-11 to define the sub modules of each module,
 thespecific meaning of each bit is decided by the module itself. These bitsis
 designed to implement the sub module's log switch.
     [modules] : AEC, AWB, AF ...
     set debug level example:
     eg. set module af log level to debug, and enable all sub modules of af:
     Android:
     setprop persist.vendor.rkisp.log 0x4ff4
     Linux:
     export persist_camera_engine_log=0x4ff4
     And if only want enable the sub module 1 log of af:
     Android:
     setprop persist.vendor.rkisp.log 0x4014
     Linux:
     export persist_camera_engine_log=0x4014

Wie oben beschrieben, wird die Protokollstufe der einzelnen Module unter Linux durch die Umgebungsvariable persist_camera_engine_log gesteuert.

Modul Debug-Protokoll Verbose-Protokoll
AE export persist_camera_engine_log=0x1ff3 export persist_camera_engine_log=0x1ff4
AWB export persist_camera_engine_log=0x2ff3 export persist_camera_engine_log=0x2ff4
AF export persist_camera_engine_log=0x4ff3 export persist_camera_engine_log=0x4ff4
HDR export persist_camera_engine_log=0x20ff3 export persist_camera_engine_log=0x20ff3
NR export persist_camera_engine_log=0x40ff3 export persist_camera_engine_log=0x40ff4
Dehaze export persist_camera_engine_log=0x2000ff3 export persist_camera_engine_log=0x2000ff3
Sharp export persist_camera_engine_log=0x80000ff3 export persist_camera_engine_log=0x80000ff4
CAMHW export
persist_camera_engine_log=0x4000000ff3
export
persist_camera_engine_log=0x4000000ff4
     
     
     

Die aktuelle Protokollstufe lässt sich mit folgendem Befehl abfragen:

    [root@RV1126_RV1109:/]# echo $persist_camera_engine_log
    0x4014

11.2.2 AE

11.2.2.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Error Standardmäßig aktiviert
Schwerwiegender Fehler
Warning Standardmäßig nicht aktiviert
Warnung: Der Algorithmus kann den Fehler gegebenenfalls behandeln und weiterlaufen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: keine
Ereignisinformationen: Betriebsstatus und Bildrate des Algorithmus, üblicherweise nur bei Initialisierung, Auflösungswechsel und Änderung der Konfigurationsparameter ausgegeben
Empfehlung:
Zur Ermittlung von Betriebsstatus und Bildrate des Algorithmus
Protokollstufe Beschreibung und Aktivierungsempfehlungen
Debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe: Bildnummer, zum Bild gehörige Belichtung, zum Bild gehörige AE-Statistik (Bildhelligkeit) und Belichtungsergebnis
Ereignisinformationen:
Empfehlung:
Probleme wie Helligkeitsflackern anhand kontinuierlicher Bildhelligkeits-, Belichtungs- und weiterer Daten untersuchen
Verbose Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Debug:
Bildweise Ausgabe: Berechnungsergebnisse des Algorithmus
Ereignisinformationen:
Empfehlung:
Üblicherweise ausgeschaltet; aktivieren, wenn Debug zur Diagnose nicht ausreicht
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4] Protokollstufe zur AE-Parameterkonfiguration
Empfehlung:
Beim Einlesen von IQ- oder API-Parametern anhand des Protokolls prüfen, ob die Konfiguration korrekt ist
bit[5] Protokollierung des AE-Informationsverarbeitungsmoduls, das anhand der AE-Statistik Szenen- und Bildkennwerte berechnet
Empfehlung:
Statistikbezogene Helligkeitsinformationen auslesen
bit[6] Protokollierung des AE-Belichtungsberechnungsmoduls
Empfehlung:
Informationen zu Belichtungsergebnissen auslesen
bit[7] Protokollstufe des Airis-Blendenalgorithmus
Empfehlung:
Bei Problemen mit variabler Blende
bit[8:11] Nicht belegt

11.2.2.2 Interpretation des Protokolls

Aus Platzgründen wird hier nur die Debug-Stufe erläutert (0x1ff3, entsprechend Debug-Informationen aller AE-Untermodule).

AE-Protokoll im linearen Modus

Technische Originalabbildung — PDF S.409

Abbildung 3-1: AE-Protokoll im linearen Modus

Abbildung 3-1 zeigt ein AE-Protokollbeispiel im linearen Modus. Zeile 1:

Cur-Exp: FrmId=270,gain=0x36a,time=0x576,envChange=0,dcg=-1,pirs=0

Belichtungsparameterinformationen des aktuellen Bildes.

Feldname Beschreibung
FrmId Nummer des aktuellen Bildes
gain Registerwert der Sensorbelichtungsverstärkung für das aktuelle Bild
time Registerwert der Sensorbelichtungszeit für das aktuelle Bild
envChange Sprunghafte Änderung der Umgebungshelligkeit im aktuellen Bild: 0 keine, 1 sprunghafte Änderung
dcg DCG-Modus des aktuellen Bildes: -1 Sensor unterstützt DCG nicht oder schaltet DCG intern um; 0 LCG; 1 HCG
pirs Position des P-Iris-Blenden-Schrittmotors für das aktuelle Bild. Bei deaktivierter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos

Zeile 2:

Last-Res:FrmId=269,gain=0x356,time=0x576,pirs=0

Neue Belichtungsparameter aus dem letzten AE-Durchlauf. Einige entsprechen den Angaben unter (1) und werden hier nicht erneut erläutert. Durch Vergleich der Belichtungsprotokolle von Zeile 1 und 2 lässt sich feststellen, ob die aktuelle mit der neuen Belichtung übereinstimmt und die neue Belichtung somit wirksam geworden ist. Zeile 3:

================================= Linear-AE (enter)===============================

Eintritt in das AE-Regelalgorithmusmodul; Linear-AE kennzeichnet den aktuellen linearen Belichtungsmodus.

Zeile 4:

Framenum=270
Cur gain=6.826667,time=0.029987,pirisGain=0,RawMeanluma=29.564444,YuvMeanluma=34.875557,Is Converged=0
Feldname Beschreibung
Framenum Nummer des aktuellen Bildes
gain Sensorbelichtungsverstärkung des aktuellen Bildes
time Sensorbelichtungszeit des aktuellen Bildes
pirisGain Äquivalente Verstärkung der P-Iris-Blende für das aktuelle Bild. Bei deaktivierter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos
RawMeanluma Helligkeit des RAW-Bildes vor DeBayer für das aktuelle Bild, bereits um den Schwarzwert vermindert und mit AWB Gain multipliziert
YuvMeanluma Helligkeit des RGB-Bildes vor Gamma für das aktuelle Bild; zur Beurteilung des Helligkeitseinflusses der Module nach DeBayer
IsConverged Belichtung des aktuellen Bildes konvergiert: 0 nein, 1 ja

Zeile 5:

AecClmExecute: NewExposure(0.180993) SplitGain(6.033096) SplitIntegrationTime(0.030000) SplitPirisGain(0)
Feldname Beschreibung
NewExposure Neuer vom AE-Regelalgorithmus berechneter Belichtungswert
SplitGain Neue Sensorbelichtungsverstärkung
SplitIntegrationTime Neue Sensorbelichtungszeit
SplitPirisGain Neue äquivalente Verstärkung der P-IRIS-Blende. Bei ausgeschalteter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos

Zeile 6:

calc result:SetPoint=22.000000,gain=6.023529,time=0.029987,piris=0,reggain=854,regtime=1398

Die endgültig eingestellte neue Belichtung

Feldname Beschreibung
SetPoint Zielhelligkeitswert
gain Endgültige neue Belichtungsverstärkung
time Endgültige neue Belichtungszeit
piris Endgültige neue äquivalente Verstärkung der P-IRIS-Blende. Bei ausgeschalteter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos
reggain Registerwert der endgültigen neuen Belichtungsverstärkung
regtime Registerwert der endgültigen neuen Belichtungszeit

Zusammenfassend lassen sich die Helligkeit des aktuellen Bildes RawMeanLuma und der zugehörige Zielwert setpoint ablesen. Die neue Belichtung wird durch Vergleich der Bildhelligkeit mit der Zielhelligkeit berechnet. AE-Protokoll im HDR-Modus:

Technische Originalabbildung — PDF S.411

Abbildung 3-2: AE-Protokoll im HDR-Modus

Zeile 1:

Cur-Exp: FrmId=22,S-gain=0x0,S-time=0x2b6,M-gain=0xb,M-time=0x1a5e,L-gain=0x0,L- time=0x0,envChange=1,dcg=-1--1--1,Piris=0

Belichtungsparameterinformationen des aktuellen Bildes.

Feldname Beschreibung
FrmId Nummer des aktuellen Bildes
S/M/L-gain Registerwert der Sensorbelichtungsverstärkung für jedes aktuelle HDR-Bild. Bei HDR mit 2 Bildern ist S/M gültig, bei HDR mit 3 Bildern S/M/L
S/M/L-time Registerwert der Sensorbelichtungszeit für jedes aktuelle HDR-Bild. Bei HDR mit 2 Bildern ist S/M gültig, bei HDR mit 3 Bildern S/M/L
envChange Sprunghafte Änderung der Umgebungshelligkeit im aktuellen Bild: 0 keine, 1 sprunghafte Änderung
dcg DCG-Modi für die 3 kurzen, mittleren und langen Belichtungen. Bei HDR mit 2 Bildern sind die ersten beiden Werte gültig und bezeichnen kurze und lange Belichtung. Bei HDR mit 3 Bildern bezeichnen alle drei Werte kurze, mittlere und lange Belichtung. -1: Sensor unterstützt DCG nicht oder schaltet intern um; 0: LCG; 1: HCG
pirs Position des P-Iris-Blenden-Schrittmotors für das aktuelle Bild. Bei deaktivierter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos

Zeile 2:

Last-Res:FrmId=20,S-gain=0x5,S-time=0x8ca,M-gain=0x11,M-time=0x1a5e,L-gain=0x0,L- time=0x0

Neue Belichtungsparameter aus dem letzten AE-Durchlauf. Einige entsprechen den Angaben unter (1) und werden hier nicht erneut erläutert. Durch Vergleich der Belichtungsprotokolle von Zeile 1 und 2 lässt sich erkennen, ob die aktuelle mit der neuen Belichtung übereinstimmt und die neue Belichtung bereits wirksam ist.

Zeile 3:

================================= HDR-AE (enter)===============================

Eintritt in das AE-Regelalgorithmusmodul; HDR-AE kennzeichnet den aktuellen HDR-Belichtungsmodus.

Zeile 4:

AecRun: SMeanLuma=9.342692, MMeanLuma=37.698597,LMeanLuma=0.000000,TmoMeanluma=37.571430,Isconverged=0,Longfr m=0
Feldname Beschreibung
S/M/LMeanLuma Mittlere Helligkeit jedes aktuellen HDR-Bildes. Bei HDR mit 2 Bildern ist S/M gültig, bei HDR mit 3 Bildern S/M/L
TmoMeanluma Mittlere Ausgangshelligkeit des TMO-Moduls für das aktuelle Bild
Isconverged Belichtung jedes aktuellen HDR-Bildes konvergiert: 0 nein, 1 ja
Longfrm Langbelichtungsmodus des aktuellen Bildes: 0 aus, 1 ein

Zeile 5:

Framenum=22 Cur Piris=0, Sgain=1.000000,Stime=0.002570,mgain=1.462177,mtime=0.025000,lgain=1.000000,ltime=0.000000
Feldname Beschreibung
Framenum Nummer des aktuellen Bildes
s/m/lgain Sensorbelichtungsverstärkung des aktuellen Bildes. Bei HDR mit 2 Bildern ist s/m gültig, bei HDR mit 3 Bildern s/m/l
s/m/ltime Sensorbelichtungszeit des aktuellen Bildes. Bei HDR mit 2 Bildern ist s/m gültig, bei HDR mit 3 Bildern s/m/l
piris Äquivalente Verstärkung der P-Iris-Blende für das aktuelle Bild. Bei deaktivierter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos

Zeile 6:

S-HighLightLuma=197.250000,S-Target=100.000000,S-GlobalLuma=9.342692,S-Target=19.959433

Protokoll des Regelalgorithmus für die kurze Belichtung

Feldname Beschreibung
S-HighLightLuma Helligkeit des Spitzlichtbereichs der aktuellen kurzen Belichtung
S-Target Zielhelligkeit des Spitzlichtbereichs der aktuellen kurzen Belichtung
S-GlobalLuma Globale mittlere Helligkeit der aktuellen kurzen Belichtung
S-Target Globale Zielhelligkeit der aktuellen kurzen Belichtung

Zeile 7:

L-LowLightLuma=29.626642,L-Target=48.572094,L-GlobalLuma=37.698597,L-Target=77.620155

Protokoll des Regelalgorithmus für die lange Belichtung

Feldname Beschreibung
L-LowLightLuma Helligkeit des dunklen Bereichs der aktuellen langen Belichtung
L-Target Zielhelligkeit des dunklen Bereichs der aktuellen langen Belichtung
L-GlobalLuma Globale mittlere Helligkeit der aktuellen langen Belichtung
L-Target Globale Zielhelligkeit der aktuellen langen Belichtung

Zeile 8:

calc result:piris=0,sgain=1.000000,stime=0.005081,mgain=1.862087,mtime=0.025000,lgain=0.000000,lti me=0.000000

Belichtungsergebnis des AE-Regelalgorithmus

Feldname Beschreibung
s/m/lgain Endgültige neue Sensorbelichtungsverstärkung. Bei HDR mit 2 Bildern ist s/m gültig, bei HDR mit 3 Bildern s/m/l
s/m/ltime Endgültige neue Sensorbelichtungszeit. Bei HDR mit 2 Bildern ist s/m gültig, bei HDR mit 3 Bildern s/m/l
piris Endgültige neue äquivalente Verstärkung der P-IRIS-Blende. Bei deaktivierter Airis-Funktion ist dieser Parameter ungültig und bedeutungslos

11.2.3 AWB

11.2.3.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Error Standardmäßig aktiviert
Schwerwiegender Fehler
Warning Standardmäßig aktiviert
Warnung; intern kann eine entsprechende Ausnahmebehandlung vorhanden sein
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: wbgain-Ergebnisse
Ereignisinformationen:
Empfehlung:
Protokollstufe Beschreibung und Aktivierungsempfehlungen
debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe: Konvergenzzustand des Weißabgleichs, Umgebungshelligkeit, Anzahl der Weißpunkte, Gesamtfarbtemperatur, Wahrscheinlichkeiten der ersten vier besonders wahrscheinlichen Lichtquellen usw.
Ereignisinformationen: Ausgabe zugehöriger Attribute nach Aufruf der AWS-API (AWS laut Vorlage)
Empfehlung: Bei begrenzter Protokollgröße lassen sich mit dieser Stufe die wichtigsten Diagnoseinformationen erfassen
Verbose Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Debug:
Bildweise Ausgabe: Weißpunktstatistiken jeder Lichtquelle (Weißabgleichsverstärkung, Weißpunktanzahl), strategiebezogene Zwischenergebnisse usw.
Ereignisinformationen:
Empfehlung: Diese Stufe zur Erfassung vollständiger Diagnoseprotokolle verwenden
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.3.2 Interpretation des Protokolls

Siehe „Rockchip_Color_Optimization_Guide_ISP2x_CN“.

11.2.4 AF

11.2.4.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Error Standardmäßig aktiviert
Schwerwiegender Fehler
Warning Standardmäßig nicht aktiviert
Warnung; intern kann eine entsprechende Ausnahmebehandlung vorhanden sein
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: Endergebnis des Fokussuchalgorithmus
Ereignisinformationen:
Empfehlung:
Protokollstufe Beschreibung und Aktivierungsempfehlungen
debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe: FV-Statistikwerte, Motorposition
Ereignisinformationen: Fokusauslösung, Suche nach der scharfen Position, Zoom, Fokusnachführung, Fokussierung
Empfehlung:
Diese Stufe zur Erfassung vollständiger Diagnoseprotokolle verwenden
Verbose Standardmäßig nicht aktiviert
Zusätzliche Debugging-Informationen gegenüber Debug: keine
Bildweise Ausgabe:
Ereignisinformationen:
Empfehlung: keine
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.4.2 Interpretation des Protokolls

11.2.5 MERGE

11.2.5.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: noch nicht verwendet
Ereignisinformationen: noch nicht verwendet
Empfehlung: ausgeschaltet lassen
debug Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: Merge-Diagnoseinformationen
Ereignisinformationen: noch nicht verwendet
Empfehlung: Aktivieren, wenn die Bildhelligkeit nicht den Erwartungen entspricht oder der Kontrast nach TMO nicht ausreicht
Verbose Standardmäßig nicht aktiviert
Zusätzliche Debugging-Informationen gegenüber Verbose (so in der Vorlage):
Bildweise Ausgabe: Merge-bezogene Belichtungsinformationen
Ereignisinformationen: noch nicht verwendet
Empfehlung: Bei Bildflackern anhand des AE-Protokolls prüfen, ob TMO während des Flackerns aktiv ist; zur Diagnose durch RK-Mitarbeiter verwenden
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.5.2 Interpretation des Protokolls

Im linearen Modus sieht das Merge-Protokoll wie folgt aus:

Technische Originalabbildung — PDF S.417

Im HDR-Modus mit langer Basisbelichtung lautet die Merge-Protokollstufe 10000000ff3.

Technische Originalabbildung — PDF S.417

Name Description
FrameID Bildnummer
HDRFrameNum Anzahl der HDR-Bilder
LongFrmMode Langbelichtungsmodus: 0 aus, 1 ein
MergeApiMode API-Modus
EnvLv Umgebungshelligkeit
MoveCoef Bewegungsvariablen
bypass Bypass des aktuellen Bildes: 0 aus, 1 ein
BaseFrm Basisbelichtungsmodus: 0 lange, 1 kurze Belichtung
OECurve_smooth Steigung der Überbelichtungskurve des aktuellen Bildes, Wertebereich [0,200]; durch Rückskalierung der JSON-Parameter mit Faktor 200 ermittelt
OECurve_offset Offset der Überbelichtungskurve des aktuellen Bildes, Wertebereich [108,280]
MDCurveMS_smooth Steigung der Bewegungskurve zwischen mittlerer und kurzer Belichtung im aktuellen Bild, Wertebereich [0,200]; durch Rückskalierung der JSON-Parameter mit Faktor 200 ermittelt
MDCurveMS_offset Offset der Bewegungskurve zwischen mittlerer und kurzer Belichtung im aktuellen Bild, Wertebereich [0.26,100]; durch Rückskalierung der JSON-Parameter mit Faktor 100 ermittelt
MDCurveLM_smooth Steigung der Bewegungskurve zwischen langer und mittlerer Belichtung im aktuellen Bild, Wertebereich [0,200]; durch Rückskalierung der JSON-Parameter mit Faktor 200 ermittelt
MDCurveLM_offset Offset der Bewegungskurve zwischen langer und mittlerer Belichtung im aktuellen Bild, Wertebereich [0.26,100]; durch Rückskalierung der JSON-Parameter mit Faktor 100 ermittelt

Im HDR-Modus mit kurzer Basisbelichtung lautet die Merge-Protokollstufe 10000000ff3.

Technische Originalabbildung — PDF S.418

Name Description
FrameID Bildnummer
HDRFrameNum Anzahl der HDR-Bilder
LongFrmMode Langbelichtungsmodus: 0 aus, 1 ein
MergeApiMode API-Modus
EnvLv Umgebungshelligkeit
MoveCoef Bewegungsvariablen
bypass Bypass des aktuellen Bildes: 0 aus, 1 ein
BaseFrm Basisbelichtungsmodus: 0 lange, 1 kurze Belichtung
OECurve_smooth Steigung der Überbelichtungskurve des aktuellen Bildes, Wertebereich [0,200]; durch Rückskalierung der JSON-Parameter mit Faktor 200 ermittelt
OECurve_offset Offset der Überbelichtungskurve des aktuellen Bildes, Wertebereich [108,280]
MDCurve_Coef Regelkoeffizient des aktuellen Bildes, Wertebereich [0,1], Standardwert 0.05, Genauigkeit 0.0001
MDCurve_ms_thd0 Regelkoeffizient der kurzen Belichtung im aktuellen Bild, Wertebereich [0,1], Standardwert 0.0, Genauigkeit 0.1
MDCurve_lm_thd0 Regelkoeffizient der langen Belichtung im aktuellen Bild, Wertebereich [0,1], Standardwert 0.0, Genauigkeit 0.1

11.2.6 DRC

11.2.6.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: noch nicht verwendet
Ereignisinformationen: noch nicht verwendet
Empfehlung: ausgeschaltet lassen
debug Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: DRC-Diagnoseinformationen
Ereignisinformationen: noch nicht verwendet
Empfehlung: Aktivieren, wenn die Bildhelligkeit nicht den Erwartungen entspricht oder der Kontrast nach TMO nicht ausreicht
Protokollstufe Beschreibung und Aktivierungsempfehlungen
Verbose Standardmäßig nicht aktiviert
Zusätzliche Debugging-Informationen gegenüber Verbose (so in der Vorlage):
Bildweise Ausgabe: DRC-bezogene Belichtungsinformationen
Ereignisinformationen: noch nicht verwendet
Empfehlung: Bei Bildflackern anhand des AE-Protokolls prüfen, ob TMO während des Flackerns aktiv ist; zur Diagnose durch RK-Mitarbeiter verwenden
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.6.2 Interpretation des Protokolls

Bei DRC-Protokollstufe 20ff3:

Technische Originalabbildung — PDF S.420

Name Description
FrameID Bildnummer
HDRFrameNum Anzahl der HDR-Bilder
LongFrmMode Langbelichtungsmodus: 0 aus, 1 ein
DRCApiMode API-Modus
EnvLv Umgebungshelligkeit
bypass Bypass des aktuellen Bildes: 0 aus, 1 ein
Enable DRC ein/aus
DrcGain DRC-Blockverstärkung des aktuellen Bildes, Wertebereich [1,8]
Alpha DrcGain-Alpha-Wert des aktuellen Bildes, Wertebereich [0,1]
Clip DrcGain-Clip-Wert des aktuellen Bildes, Wertebereich [0,64]
Strength HiLight-Detailsteuerung im Spitzlichtbereich des aktuellen Bildes, Wertebereich [0,1]
CompressMode CompressSetting-Modus des aktuellen Bildes
LocalWeit Lokales Gewicht des aktuellen Bildes, Wertebereich [0, 1]: 0 global, 1 vollständig lokal; Standardwert 0
LocalAutoEnable Automatische LocalWeit-Steuerung des aktuellen Bildes ein/aus, Wertebereich [0,1], Standardwert 1, Genauigkeit 1
LocalAutoWeit Automatischer LocalWeit-Wert des aktuellen Bildes, Wertebereich [0,1], Standardwert 0.4, Genauigkeit 0.01
GlobalContrast Globaler Kontrast des aktuellen Bildes, Wertebereich [0,1], Standardwert 0, Genauigkeit 0.01
LoLitContrast Kontrast im dunklen Bereich des aktuellen Bildes, Wertebereich [0,1], Standardwert 0, Genauigkeit 0.01

11.2.7 NR&Sharp

11.2.7.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
error Standardmäßig aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: schwerwiegende Fehler, die einen Softwareabsturz verursachen können
Ereignisinformationen: noch nicht verwendet
Empfehlung: aktivieren
Protokollstufe Beschreibung und Aktivierungsempfehlungen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: sämtliche Funktionsaufrufe ohne Registerwerte; insgesamt umfangreiche Ausgabe
Ereignisinformationen: noch nicht verwendet
Empfehlung: Bei normaler Bildwirkung und ohne Fehler nicht aktivieren. Registerwerte vorzugsweise mit dem Befehl io ausgeben
debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe: sämtliche Funktionsaufrufe einschließlich umfangreicher Registerwertausgaben
Ereignisinformationen: noch nicht verwendet
Empfehlung: Bei schwerwiegenden Bildfehlern aktivieren und das Protokoll RK zur Diagnose bereitstellen
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.7.2 Interpretation des Protokolls

11.2.8 Dhz&Ehz

11.2.8.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe: noch nicht verwendet
Ereignisinformationen: noch nicht verwendet
Empfehlung:
debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe: DHZ- und Ehz-Diagnoseinformationen
Ereignisinformationen:
Empfehlung:
Protokollstufe Beschreibung und Aktivierungsempfehlungen
Verbose Standardmäßig nicht aktiviert
Zusätzliche Debugging-Informationen gegenüber Verbose (so in der Vorlage):
Bildweise Ausgabe: noch nicht verwendet
Ereignisinformationen: noch nicht verwendet
Empfehlung:
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4:11] Nicht belegt

11.2.8.2 Interpretation des Protokolls

Bei aktivierter Enhance-Funktion lautet die Dehaze-Protokollstufe 2000ff3.

Technische Originalabbildung — PDF S.423

Name Description
FrameID Bildnummer
byPassProc Bypass des aktuellen Bildes: 0 aus, 1 ein
ISO ISO
Dehaze module en Dehaze-Modul ein/aus
Dehaze en Dehaze-Funktion ein/aus
Enhance en Verstärkungsfunktion ein/aus
Hist en Hist-Funktion ein/aus
EnvLv Umgebungshelligkeit des aktuellen Bildes
enhance_value Allgemeine Kontraststärke des aktuellen Bildes, Wertebereich [0,16], empfohlener Bereich [1, 2]
enhance_chroma Verstärkungsparameter für die Chromatizität des aktuellen Bildes, Wertebereich [0,16], empfohlener Bereich [1, 2]
enhance_value_reg Registerwert der allgemeinen Kontraststärke des aktuellen Bildes
enhance_chroma_reg Registerwert des Verstärkungsparameters für die Chromatizität des aktuellen Bildes

Bei aktivierter Dehaze-Funktion und cfg_alpha=0 lautet die Dehaze-Protokollstufe 2000ff3.

Technische Originalabbildung — PDF S.424

Name Description
FrameID Bildnummer
byPassProc Bypass des aktuellen Bildes: 0 aus, 1 ein
ISO ISO
Dehaze
module en
Dehaze-Modul ein/aus
Dehaze en Dehaze-Funktion ein/aus
Enhance en Verstärkungsfunktion ein/aus
Hist en Hist-Funktion ein/aus
cfg_alpha Anteil der Softwarekonfiguration, Wertebereich [0,1], Standardwert 1, Genauigkeit 0.01
EnvLv Umgebungshelligkeit des aktuellen Bildes
air_max Obergrenze der AIR-Anpassung des aktuellen Bildes, Wertebereich [230, 250], Standardwert 250
air_min Untergrenze der AIR-Anpassung des aktuellen Bildes, Wertebereich [230, 250], Standardwert 200 (Widerspruch zum Bereich aus der Vorlage beibehalten)
tmax_base Adaptiver tmax-Basiswert des aktuellen Bildes, Standardwert 125. Zuordnung: 200 (131), 210 (125), 220 (119), 230 (114), 240 (109), 250 (105); empfohlen 131-105
wt_max Obergrenze der wt-Anpassung des aktuellen Bildes, Wertebereich [0.75, 0.9], Standardwert 0.9

Bei aktivierter Dehaze-Funktion und cfg_alpha=1 lautet die Dehaze-Protokollstufe 2000ff3.

Technische Originalabbildung — PDF S.424

Name Description
FrameID Bildnummer
byPassProc Bypass des aktuellen Bildes: 0 aus, 1 ein
ISO ISO
Dehaze module
en
Dehaze-Modul ein/aus
Dehaze en Dehaze-Funktion ein/aus
Enhance en Verstärkungsfunktion ein/aus
Hist en Hist-Funktion ein/aus
cfg_alpha Anteil der Softwarekonfiguration, Wertebereich [0,1], Standardwert 1, Genauigkeit 0.01
EnvLv Umgebungshelligkeit des aktuellen Bildes
cfg_air Softwarekonfigurierter atmosphärischer Lichtkoeffizient air des aktuellen Bildes, Wertebereich [0, 255], Standardwert 210
cfg_tmax Softwarekonfigurierter tmax-Wert des aktuellen Bildes, maximaler Entnebelungswert, Wertebereich [0, 1], Standardwert 0.2
cfg_wt Softwarekonfigurierter wt-Wert des aktuellen Bildes, Entnebelungsstärke, Wertebereich [0, 1], Standardwert 0.8

Bei aktivierter Hist-Funktion lautet die Dehaze-Protokollstufe 2000ff3.

Technische Originalabbildung — PDF S.425

Name Description
FrameID Bildnummer
byPassProc Bypass des aktuellen Bildes: 0 aus, 1 ein
ISO ISO
Dehaze module
en
Dehaze-Modul ein/aus
Dehaze en Dehaze-Funktion ein/aus
Enhance en Verstärkungsfunktion ein/aus
Hist en Hist-Funktion ein/aus
cfg_alpha Anteil der Softwarekonfiguration, Wertebereich [0,1], Standardwert 1, Genauigkeit 0.01
EnvLv Umgebungshelligkeit des aktuellen Bildes
hist_para_en Histogrammspreizung des aktuellen Bildes ein/aus
hist_gratio Histogrammspreizungsfaktor bzw. Regelkoeffizient des Histogrammausgleichs für das aktuelle Bild, Wertebereich [0, 32]
hist_th_off Statistikschwelle des Histogramms des aktuellen Bildes, Wertebereich [0, 255], Standardwert 64
hist_k Faktor der adaptiven Histogrammschwelle des aktuellen Bildes, Wertebereich [0, 7), Standardwert 2
hist_min Mindestwert der Histogrammstatistikschwelle des aktuellen Bildes, Wertebereich [0,2], Standardwert 0.016
hist_scale Regelkoeffizient des Histogrammausgleichs für das aktuelle Bild, Wertebereich [0, 32]
cfg_gratio Softwarekonfigurierter Histogrammspreizungsfaktor bzw. Regelkoeffizient des Histogrammausgleichs für das aktuelle Bild, Wertebereich [0, 32]

11.2.9 CamHW

11.2.9.1 Konfigurationsanleitung

Protokollstufe Beschreibung und Aktivierungsempfehlungen
Error Standardmäßig aktiviert
Schwerwiegender Fehler
Warning Standardmäßig nicht aktiviert
Warnung; der Algorithmus verfügt gegebenenfalls über eine Ausnahmebehandlung
Protokollstufe Beschreibung und Aktivierungsempfehlungen
Info Standardmäßig nicht aktiviert
Grundlegende Debugging-Informationen:
Bildweise Ausgabe:
Ereignisinformationen:
Empfehlung:
Debug Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Info:
Bildweise Ausgabe:
Ereignisinformationen:
Empfehlung:
Verbose Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Debug:
Bildweise Ausgabe:
Ereignisinformationen:
Empfehlung: Mit Vorsicht verwenden, da große Informationsmengen auf einmal ausgegeben werden können
Low1 Standardmäßig nicht aktiviert
Zusätzliche Informationen gegenüber Debug:
Bildweise Ausgabe:
Ereignisinformationen: Funktionsaufrufpfad
Empfehlung:
Untermodul-Bit Beschreibung und Aktivierungsempfehlungen
bit[4] Protokollierung des Untermoduls 30 für die HWI-Ablaufsteuerung
Empfehlung:
Gemeinsam mit den folgenden Untermodulen aktivieren
bit[5] Protokollierung der Untermodule Isp30Params und Isp30PollThread für ISP-Parameter, Datenströme, Ereignisse usw.
Empfehlung:
Bei vermuteter Fehlzuordnung von Parametern und Videobildern, fehlerhaftem Timing und ähnlichen Problemen;
im Offline-Readback-Modus bei unterbrochenem Datenfluss und ähnlichen Problemen
bit[6] Protokollierung des Untermoduls SensorHw für den Kamerasensor
Empfehlung:
Bei vermuteten Problemen mit CIS-Belichtungseinstellungen usw.
bit[7] Protokollierung des Untermoduls FlashLight für die Aufhelllichtsteuerung
Empfehlung:
Bei Problemen mit der Aufhelllichtsteuerung
bit[8] Protokollierung des Untermoduls LensHw für die Objektivmotorsteuerung
Empfehlung:
Bei Motorsteuerungsproblemen usw.
bit[9] Untermodul 30SpThread ein/aus;
für die interne Modulverwendung reserviert
bit[10:11] Nicht belegt

11.2.9.2 Interpretation des Protokolls

Untermodul CamHwIsp20

Technische Originalabbildung — PDF S.428

Das obige Protokoll wird beim Laden der AIQ-Bibliothek nur einmal ausgegeben. Es zeigt die Verbindungen zwischen Kamerasensor, ISP und ISPP anhand der Analyse der Media-Knoten-Topologie. Daraus lässt sich erkennen, ob der Kamerasensor ordnungsgemäß erkannt wurde.

Technische Originalabbildung — PDF S.428

Das obige Protokoll zeigt die neuen Parameter, welche die HWI-Schicht an den ISP-Treiber übergibt. Die Konfiguration erfolgt derzeit praktisch für jedes Bild. Die Bedeutungen sind:

Feldname Beschreibung
ispparam ens Modul-Aktivierungsbit; Bitdefinitionen siehe HWI/ISP20/rk_isp20_hw.H
en_up Aktualisierungsbit der Modulaktivierung; ein gesetztes Bit 1 bedeutet, dass das zugehörige Aktivierungsbit aktualisiert werden muss
cfg_up Aktualisierungsbit der Modulparameter; 1 bedeutet, dass die Modulparameter aktualisiert werden müssen
device Videoknoten des ISP-Parametermoduls

Technische Originalabbildung — PDF S.429

Das obige Protokoll zeigt die Übermittlung neuer Parameter durch die HWI-Schicht an den ISPP-Treiber. Dies erfolgt praktisch für jedes Bild; die Bedeutung entspricht dem zuvor beschriebenen ISP-Modul.

Untermodul Isp20PollThread

Technische Originalabbildung — PDF S.429

Das obige Protokoll zeigt den Start des Readbacks eines Bildes im Readback-Modus. Im normalen Readback-Betrieb wird es für jedes Bild ausgegeben. Die Bedeutungen sind:

Feldname Beschreibung
frame RAW-Bildnummer, beginnend bei 0
sof_ts SOF-Zeitstempel des Bildes
frame_ts Zeitstempel des Abschlusses der Erfassung in DDR
readback Anzahl der ISP-Readbacks

Technische Originalabbildung — PDF S.429

Das obige Protokoll zeigt den Umlauf der RAW-Puffer im Readback-Modus. Es wird in diesem Modus für jedes Bild ausgegeben. Die Bedeutungen sind:

Members Description
handle_rx_buf Rückgabe an VICAP/isp_tx, nachdem der ISP ein Bild verarbeitet hat
dev_index Geräteindex für lange, mittlere und kurze Belichtung. Gleicher dev_index in den Protokollen von handle_tx_buf und handle_rx_buf bezeichnet dieselben Daten
sequence Bildnummer, beginnend bei 0

Untermodul SensorHw

Technische Originalabbildung — PDF S.430

Das obige Protokoll zeigt im linearen Modus das Einstellen einer neuen Belichtung im Sensortreiber. Der Aufruf erfolgt bei einer neuen Belichtung. Die Bedeutungen sind:

Members Description
frameid Bildnummer des SOF-Ereignisses
handle_sof SOF-Ereignisrückruffunktion, einmal pro Bild; verarbeitet die Belichtungseinstellung
exp_list size Anzahl neuer Belichtungszeiten in der Belichtungsliste, die noch nicht an den Treiber übergeben wurden
gain_list size Anzahl neuer Belichtungsverstärkungen in der Belichtungsliste, die noch nicht an den Treiber übergeben wurden
working_mode Aktueller Betriebsmodus; 0 bedeutet normal
set_time Neue Belichtungszeit in der SOF-Nachricht vorhanden, die an den Treiber übergeben werden muss
set_gain Neue Belichtungsverstärkung in der SOF-Nachricht vorhanden, die an den Treiber übergeben werden muss
a-gain, time Neue Belichtungszeit, Verstärkungsregisterwert

11.3 RAW-/YUV-Bilder erfassen

RAW-Daten sind die unverarbeiteten Ausgabedaten des CIS. Bei Bayer-RAW-Sensoren handelt es sich um Bayer-RGB-Daten mit 8/12/14 Bit. CIS-RAW-Daten werden üblicherweise in folgenden Situationen benötigt:

1. Wenn die vom ISP verarbeiteten YUV-Ausgabedaten fehlerhaft sind, sollen die RAW-Eingangsdaten des ISP dynamisch erfasst und analysiert werden, um festzustellen, ob das Problem vom CIS stammt. 2. Vor der Abstimmung der Bildqualität müssen CIS-RAW-Daten zur Kalibrierung der Modulparameter erfasst werden.

11.3.1 Speicherformat der RAW-Daten

11.3.1.1 Ungepacktes Speicherformat

Die Speicheranordnung von raw12-Daten wird anhand eines 4-Byte-Speicherabschnitts dargestellt:

Technische Originalabbildung — PDF S.431

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Bits des Speicherworts Pixel Pixelbits
31:20 Pixel 0 11:0
19:16 Pixel 0 - - - -
15:4 Pixel 1 11:0
3:0 Pixel 1 - - - -

11.3.1.2 Gepacktes Speicherformat

Die Speicheranordnung von raw12-Daten wird anhand eines 4-Byte-Speicherabschnitts dargestellt:

Technische Originalabbildung — PDF S.431

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Bits des Speicherworts Pixel Pixelbits
31:24 Pixel3 7:0
23:12 Pixel2 11:0
11:0 Pixel1 11:0

11.3.1.3 RK-RAW V1.0

Technische Originalabbildung — PDF S.431

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Parametername Typ Länge (Byte) Beschreibung
Kennung unsigned short 2 Fest 0x8080
Headerlänge unsigned short 2 Fest 128
Bildindex unsigned int 4 Bildindex
Breite unsigned short 2 Bildbreite
Höhe unsigned short 2 Bildhöhe
Bittiefe unsigned char 1 Bittiefe des Bildes
Bayer-Format unsigned char 1 0: BGGR; 1: GBRG; 2: GRBG; 3: RGGB
Anzahl der HDR-Bilder unsigned char 1 1: linear, kurz; 2: HDR2, lang+kurz; 3: HDR3, lang+mittel+kurz
Aktueller Bildtyp unsigned char 1 1 kurz; 2 mittel; 3 lang
Speichertyp unsigned char 1 0 gepackt; 1 ungepackt
Zeilenabstand unsigned short 2 Byte
Effektiver Zeilenabstand unsigned short 2 Byte
Reserviert unsigned char 107 Reserviert
RAW-DATEN RAW W * H * BPP RAW-DATEN

11.3.1.4 RK-RAW V2.0

Das Format RK-RAW V2.0 besteht aus Startkennung, Datenblock und Endkennung.

Definition des Formatblocks

Ein Datenblock besteht aus drei Teilen: Kennungs-ID, Blocklänge und Blockdaten. Jede Kennungs-ID besitzt einen eindeutigen festen Wert.

Technische Originalabbildung — PDF S.432

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Standardwert Beschreibung
Startkennung u16 2 0xFF00 Dateianfang
Blockkennung u16 2 0xFF01 RAW-Informationen
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF02 RAW-Daten im Normalmodus
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF03 RAW der kurzen HDR2/HDR3-Belichtung
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF04 RAW der langen HDR2-/mittleren HDR3-Belichtung
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF05 RAW der langen HDR3-Belichtung
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF06 Bildstatistik
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF07 ISP-Registerformat
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF08 ISP-Register
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF09 ISPP-Registerformat
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF0a ISPP-Register
Blocklänge u32 4 -  
Blockdaten        
Blockkennung u16 2 0xFF0b Plattforminformationen
Blocklänge u32 4 -  
Blockdaten        
…        
Endkennung u16 2 0x00FF Dateiende

Nicht alle dargestellten Blöcke sind erforderlich; mehrere können nach Bedarf kombiniert werden. Beispielsweise kann eine RKRawV2-Datei nur „Raw Blocks“, „Raw Blocks“ und „Frame Statistics Blocks“ enthalten. Mindestens diese drei Blöcke werden empfohlen, damit die Datei sinnvoll nutzbar ist. (Die doppelte Bezeichnung „Raw Blocks“ stammt aus der Vorlage.)

Definition des RAW-Informationsblocks

Technische Originalabbildung — PDF S.432

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Standardwert Beschreibung
Version u16 2 0x0200 0x0200=v2.0
Sensorname string 32 - Sensormodell
Szene/Licht string 32 - Aufnahmeszene/Lichtquelle
Bildnummer u32 4 - Bildnummer
Breite u16 2 - Bildbreite in Pixeln
Höhe u16 2 - Bildhöhe in Pixeln
Bittiefe u8 1 - Bittiefe des Bildes
Bayer-Format u8 1 - 0 BGGR; 1 GBRG; 2 GRBG; 3 RGGB
HDR-Bildanzahl u8 1 - 1 linear; 2 lang+kurz; 3 lang+mittel+kurz
Speicherformat u8 1 - 0 gepackt; 1 ungepackt
Zeilenabstand u16 2 - Byte
Effektiver Zeilenabstand u16 2 - Byte
Bytereihenfolge u8 1 - 0 Big-Endian; 1 Little-Endian

Definition des RAW-Datenblocks

Dieser Datenabschnitt kann RAW-Bilddaten, einen Puffer-fd oder eine virtuelle Adresse der RAW-Bilddaten enthalten. Bei Verwendung der zugehörigen API muss der Datentyp des Blocks über Parameter angegeben werden; Einzelheiten siehe rk_aiq_rawbuf_type_t.

Technische Originalabbildung — PDF S.433

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Beschreibung
RAW-Daten - heightwidthN; ungepackt N=2; gepackt N=bpp/8 RAW-Daten, 0xFF02–0xFF05

Definition des Bildstatistikblocks

Technische Originalabbildung — PDF S.433

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Standardwert Beschreibung
Version u16 2 0x0200 Raw: 0x0200=v2.0
Bildnummer u32 4 - Bildnummer
Normal_Exp float 4 - Belichtungszeit im linearen Modus
Normal_Gain float 4 - Belichtungsverstärkung im linearen Modus
Normal_Exp_REG u32 4 - SENSOR-Register der linearen Belichtungszeit
Normal_Gain_REG u32 4 - SENSOR-Register der linearen Verstärkung
HDR_Exp_L float 4 - Lange HDR3-Belichtungszeit
HDR_Gain_L float 4 - Verstärkung der langen HDR3-Belichtung
HDR_Exp_L_REG u32 4 - SENSOR-Register der langen HDR3-Belichtungszeit
HDR_Gain_L_REG u32 4 - SENSOR-Register der langen HDR3-Verstärkung
HDR_Exp_M float 4 - Mittlere HDR3-/lange HDR2-Belichtungszeit
HDR_Gain_M float 4 - Verstärkung der mittleren HDR3-/langen HDR2-Belichtung
HDR_Exp_M_REG u32 4 - SENSOR-Register der mittleren HDR3-/langen HDR2-Belichtungszeit
HDR_Gain_M_REG u32 4 - SENSOR-Register der mittleren HDR3-/langen HDR2-Belichtungszeit (Originalbeschreibung widerspricht dem Gain-Feldnamen; zu prüfen)
HDR_Exp_S float 4 - Kurze HDR3/HDR2-Belichtungszeit
HDR_Gain_S float 4 - Verstärkung der kurzen HDR3/HDR2-Belichtung
HDR_Exp_S_REG u32 4 - SENSOR-Register der kurzen HDR3/HDR2-Belichtungszeit
HDR_Gain_S_REG u32 4 - SENSOR-Register der kurzen HDR3/HDR2-Belichtungszeit (Originalbeschreibung widerspricht dem Gain-Feldnamen; zu prüfen)
AWB_Rgain float 4 - Weißabgleichsverstärkung
AWB_Bgain float 4 - Weißabgleichsverstärkung

Definition des Registerformatblocks

Technische Originalabbildung — PDF S.433

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Standardwert Beschreibung
Version u16 2 0x0200 0x0200=v2.0
Bildnummer u32 4 - Registerbasisadresse (wie in der Abbildung)
Basisadresse u32 4 - Registerbasisadresse
Offsetadresse u32 4 - Startoffsetadresse
Anzahl u32 4 - Registeranzahl

Definition des Registerblocks

Technische Originalabbildung — PDF S.433

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Beschreibung
Registerdaten - - Registerdaten, 0xFF08/0xFF0a

Definition des Plattforminformationsblocks

Technische Originalabbildung — PDF S.433

Editierbare Transkription (die Originalabbildung enthält bereits chinesische Beschriftungen):

Element Typ Länge (Byte) Beschreibung
Chipmodell string 32  
ISP-Version string 32  
AIQ-Version string 32  

11.3.2 Erfassung von RAW-/YUV-Daten

12. Fehlercodes

Fehlercode Beschreibung
0 Erfolg
-1 Fehlgeschlagen
-2 Ungültiger Parameter
-3 Nicht genügend Arbeitsspeicher
-4 Dateioperation fehlgeschlagen
-5 Fehler im Analysemodul
-6 Fehler im ISP-Modul
-7 Fehler im Sensortreiber
-8 Fehler bei einer Thread-Operation
-9 Fehler bei einer IOCTL-Operation
-10 Timingfehler
-20 Zeitüberschreitung
-21 Außerhalb des gültigen Bereichs
-255 Unbekannter Fehler

13. Abkürzungen

Abkürzung Vollständige Bezeichnung
CIS Camera Image Sensor – Kamerabildsensor
RkAiq Rockchip Automatical Image Quality – automatische Rockchip-Bildqualität
ISP Image Signal Process – Bildsignalverarbeitung
IQ Tuning Image Quality Tuning – Abstimmung der Bildqualität

Dieses Thema entdecken → · Lernpfade →