summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3/algorithms/agc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/ipu3/algorithms/agc.cpp')
-rw-r--r--src/ipa/ipu3/algorithms/agc.cpp32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
index 4e424857..bd02c474 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,27 +127,19 @@ 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]++;
}
}
- Histogram cumulativeHist = Histogram(Span<uint32_t>(hist));
/* Estimate the quantile mean of the top 2% of the histogram */
- if (cumulativeHist.total() == 0) {
- /* Force the value as histogram is empty */
- iqMean_ = knumHistogramBins - 0.5;
- } else {
- iqMean_ = cumulativeHist.interQuantileMean(0.98, 1.0);
- }
+ iqMean_ = Histogram(Span<uint32_t>(hist)).interQuantileMean(0.98, 1.0);
}
/**