cl-retinex: enable tnr after retinex to reduce noise
* set specific tnr parameters for retinex.
* add AnalyzeTuner for ISP to get 3a parameters.
* test-dev-manager cmdline:
# test-device-manager -m dma -c -f BA10 -d still -p -a dynamic \
--pipeline=advance --enable-retinex
# test-device-manager -m dma -f NV12 -d video -p -a aiq \
--enable-retinex
* gst-launch-1.0 cmdline:
# gst-launch-1.0 xcamsrc io-mode=4 imageprocessor=1 analyzer=2 \
pipe-profile=1 enable-retinex=true ! video/x-raw, format=NV12, \
width=1920, height=1080, framerate=25/1 ! queue ! vaapiencode_h264 \
rate-control=cbr ! tcpclientsink host="<host_ip>" port=3000 \
blocksize=1024000 sync=false
# gst-launch-1.0 xcamsrc sensor-id=3 io-mode=4 analyzer=1 \
enable-retinex=true ! video/x-raw, format=NV12, width=1920, \
height=1080, framerate=25/1 ! queue ! vaapiencode_h264 rate-control=cbr \
! tcpclientsink host="<host_ip>" port=3000 blocksize=1024000 sync=false
Signed-off-by: Wind Yuan <feng.yuan@intel.com>
diff --git a/tests/test-device-manager.cpp b/tests/test-device-manager.cpp
index d636ae2..53db026 100644
--- a/tests/test-device-manager.cpp
+++ b/tests/test-device-manager.cpp
@@ -27,6 +27,7 @@
#include "x3a_analyzer_simple.h"
#if HAVE_IA_AIQ
#include "x3a_analyzer_aiq.h"
+#include "x3a_analyze_tuner.h"
#endif
#if HAVE_LIBCL
#include "cl_3a_image_processor.h"
@@ -254,7 +255,7 @@
typedef enum {
AnalyzerTypeSimple = 0,
- AnalyzerTypeAiq,
+ AnalyzerTypeAiqTuner,
AnalyzerTypeDynamic,
AnalyzerTypeHybrid,
} AnalyzerType;
@@ -409,7 +410,7 @@
analyzer_type = AnalyzerTypeSimple;
#if HAVE_IA_AIQ
else if (!strcmp (optarg, "aiq"))
- analyzer_type = AnalyzerTypeAiq;
+ analyzer_type = AnalyzerTypeAiqTuner;
else if (!strcmp (optarg, "hybrid"))
analyzer_type = AnalyzerTypeHybrid;
#endif
@@ -668,9 +669,14 @@
analyzer = new X3aAnalyzerSimple ();
break;
#if HAVE_IA_AIQ
- case AnalyzerTypeAiq:
- analyzer = new X3aAnalyzerAiq (isp_controller, DEFAULT_CPF_FILE);
+ case AnalyzerTypeAiqTuner: {
+ SmartPtr<X3aAnalyzer> aiq_analyzer = new X3aAnalyzerAiq (isp_controller, DEFAULT_CPF_FILE);
+ SmartPtr<X3aAnalyzeTuner> tuner_analyzer = new X3aAnalyzeTuner ();
+ XCAM_ASSERT (aiq_analyzer.ptr () && tuner_analyzer.ptr ());
+ tuner_analyzer->set_analyzer (aiq_analyzer);
+ analyzer = tuner_analyzer;
break;
+ }
case AnalyzerTypeHybrid: {
path_of_3a = DEFAULT_HYBRID_3A_LIB;
loader = new X3aAnalyzerLoader (path_of_3a);