[libcamera-devel,v3,3/3] ipu3: Apply shading adapter as part of AIQ::run2a()
diff mbox series

Message ID 20211014070533.3720964-3-hanlinchen@chromium.org
State Accepted
Headers show
Series
  • [libcamera-devel,v3,1/3] ipu3: Remove the usage of SharedItemPool
Related show

Commit Message

Hanlin Chen Oct. 14, 2021, 7:05 a.m. UTC
Populate shading adapter input parameters and run it as a part of
run2a() to correct lens shading for the camera.

Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>
---
 aiq/aiq.cpp                  |  3 +++
 aiq/aiq_input_parameters.cpp | 12 ++++++++++++
 2 files changed, 15 insertions(+)

Comments

Kieran Bingham Oct. 18, 2021, 9:08 a.m. UTC | #1
Hi Han-Lin,

Sorry for the delay, - as you might have seen there were some issues
testing the IPA on Friday.

But I have now tested this series, and will push it to master for the
External Intel IPU3-IPA.

--
Kieran


Quoting Han-Lin Chen (2021-10-14 08:05:33)
> Populate shading adapter input parameters and run it as a part of
> run2a() to correct lens shading for the camera.
> 
> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>
> ---
>  aiq/aiq.cpp                  |  3 +++
>  aiq/aiq_input_parameters.cpp | 12 ++++++++++++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/aiq/aiq.cpp b/aiq/aiq.cpp
> index 708e9d6..24c61cb 100644
> --- a/aiq/aiq.cpp
> +++ b/aiq/aiq.cpp
> @@ -154,6 +154,9 @@ int AIQ::run2a(unsigned int frame, AiqInputParameters &params,
>         params.paParams.exposure_params = results.ae()->exposures[0].exposure;
>         parameterAdapterRun(params.paParams, results);
>  
> +       params.saParams.awb_results = results.awb();
> +       shadingAdapterRun(params.saParams, results);
> +
>         afRun(params.afParams, results);
>  
>         return 0;
> diff --git a/aiq/aiq_input_parameters.cpp b/aiq/aiq_input_parameters.cpp
> index 8a53849..36e2b07 100644
> --- a/aiq/aiq_input_parameters.cpp
> +++ b/aiq/aiq_input_parameters.cpp
> @@ -89,6 +89,15 @@ int AiqInputParameters::configure(const IPAConfigInfo &configInfo)
>         /* Guess from hal-configs-nautilus/files/camera3_profiles.xml#263 */
>         sensorDescriptor.coarse_integration_time_max_margin = 10;
>  
> +       sensorFrameParams.horizontal_crop_offset = 0;
> +       sensorFrameParams.vertical_crop_offset = 0;
> +       sensorFrameParams.cropped_image_width = configInfo.sensorInfo.analogCrop.width;
> +       sensorFrameParams.cropped_image_height = configInfo.sensorInfo.analogCrop.height;
> +       sensorFrameParams.horizontal_scaling_numerator = 1;
> +       sensorFrameParams.horizontal_scaling_denominator = 1;
> +       sensorFrameParams.vertical_scaling_numerator = 1;
> +       sensorFrameParams.vertical_scaling_denominator = 1;
> +
>         return 0;
>  }
>  
> @@ -165,6 +174,9 @@ void AiqInputParameters::setAeAwbAfDefaults()
>         gbceParams.tone_map_level = ia_aiq_tone_map_level_default;
>         gbceParams.frame_use = ia_aiq_frame_use_still;
>         gbceParams.ev_shift = 0;
> +
> +       /* SA Params */
> +       saParams.frame_use = ia_aiq_frame_use_still;
>  }
>  
>  } /* namespace ipa::ipu3::aiq */
> -- 
> 2.33.0.882.g93a45727a2-goog
>

Patch
diff mbox series

diff --git a/aiq/aiq.cpp b/aiq/aiq.cpp
index 708e9d6..24c61cb 100644
--- a/aiq/aiq.cpp
+++ b/aiq/aiq.cpp
@@ -154,6 +154,9 @@  int AIQ::run2a(unsigned int frame, AiqInputParameters &params,
 	params.paParams.exposure_params = results.ae()->exposures[0].exposure;
 	parameterAdapterRun(params.paParams, results);
 
+	params.saParams.awb_results = results.awb();
+	shadingAdapterRun(params.saParams, results);
+
 	afRun(params.afParams, results);
 
 	return 0;
diff --git a/aiq/aiq_input_parameters.cpp b/aiq/aiq_input_parameters.cpp
index 8a53849..36e2b07 100644
--- a/aiq/aiq_input_parameters.cpp
+++ b/aiq/aiq_input_parameters.cpp
@@ -89,6 +89,15 @@  int AiqInputParameters::configure(const IPAConfigInfo &configInfo)
 	/* Guess from hal-configs-nautilus/files/camera3_profiles.xml#263 */
 	sensorDescriptor.coarse_integration_time_max_margin = 10;
 
+	sensorFrameParams.horizontal_crop_offset = 0;
+	sensorFrameParams.vertical_crop_offset = 0;
+	sensorFrameParams.cropped_image_width = configInfo.sensorInfo.analogCrop.width;
+	sensorFrameParams.cropped_image_height = configInfo.sensorInfo.analogCrop.height;
+	sensorFrameParams.horizontal_scaling_numerator = 1;
+	sensorFrameParams.horizontal_scaling_denominator = 1;
+	sensorFrameParams.vertical_scaling_numerator = 1;
+	sensorFrameParams.vertical_scaling_denominator = 1;
+
 	return 0;
 }
 
@@ -165,6 +174,9 @@  void AiqInputParameters::setAeAwbAfDefaults()
 	gbceParams.tone_map_level = ia_aiq_tone_map_level_default;
 	gbceParams.frame_use = ia_aiq_frame_use_still;
 	gbceParams.ev_shift = 0;
+
+	/* SA Params */
+	saParams.frame_use = ia_aiq_frame_use_still;
 }
 
 } /* namespace ipa::ipu3::aiq */