[libcamera-devel] [PATCH] ipa: ipu3: agc: Remove the threshold for the histogram calculation

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Tue Nov 16 09:09:56 CET 2021


Until f8f07f94 (ipa: ipu3: agc: Improve gain calculation, 2021-11-04)
the gain to apply on the exposure value was only using the histogram.
Now that the global brightness of the frame is estimated too, we don't
need to remove part of the saturated pixels from the equation anymore.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
---
 src/ipa/ipu3/algorithms/agc.cpp | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
index 4e424857..f67a79d3 100644
--- a/src/ipa/ipu3/algorithms/agc.cpp
+++ b/src/ipa/ipu3/algorithms/agc.cpp
@@ -58,12 +58,6 @@ static constexpr uint32_t knumHistogramBins = 256;
 /* Target value to reach for the top 2% of the histogram */
 static constexpr double kEvGainTarget = 0.5;
 
-/*
- * Maximum ratio of saturated pixels in a cell for the cell to be considered
- * non-saturated and counted by the AGC algorithm.
- */
-static constexpr uint32_t kMinCellsPerZoneRatio = 255 * 20 / 100;
-
 /* Number of frames to wait before calculating stats on minimum exposure */
 static constexpr uint32_t kNumStartupFrames = 10;
 
@@ -133,16 +127,14 @@ void Agc::measureBrightness(const ipu3_uapi_stats_3a *stats,
 					&stats->awb_raw_buffer.meta_data[cellPosition]
 				);
 
-			if (cell->sat_ratio <= kMinCellsPerZoneRatio) {
-				uint8_t gr = cell->Gr_avg;
-				uint8_t gb = cell->Gb_avg;
-				/*
-				 * Store the average green value to estimate the
-				 * brightness. Even the overexposed pixels are
-				 * taken into account.
-				 */
-				hist[(gr + gb) / 2]++;
-			}
+			uint8_t gr = cell->Gr_avg;
+			uint8_t gb = cell->Gb_avg;
+			/*
+			 * Store the average green value to estimate the
+			 * brightness. Even the overexposed pixels are
+			 * taken into account.
+			 */
+			hist[(gr + gb) / 2]++;
 		}
 	}
 
-- 
2.32.0



More information about the libcamera-devel mailing list