summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3/algorithms/awb.h
diff options
context:
space:
mode:
authorJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-09-22 17:44:01 +0200
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-10-06 15:59:40 +0200
commit380b08754f10d6e03e96d13cac5be5e84e12835e (patch)
tree9d1424af9f8560fa102111dc57299afeda002a7d /src/ipa/ipu3/algorithms/awb.h
parent03132d0ff9aaaa709b9db21c0e272ea8f51f3a7d (diff)
ipa: ipu3: awb: Use the line stride for the stats
The statistics buffer 'ipu3_uapi_awb_raw_buffer' stores the ImgU calculation results in a buffer aligned horizontally to a multiple of 4 cells. The AWB loop should take care of it to add the proper offset between lines and avoid any staircase effect. It is no longer required to pass the grid configuration context to the private functions called from process() which simplifies the code flow. Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/ipu3/algorithms/awb.h')
-rw-r--r--src/ipa/ipu3/algorithms/awb.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h
index 681d8c2b..b3e0ad82 100644
--- a/src/ipa/ipu3/algorithms/awb.h
+++ b/src/ipa/ipu3/algorithms/awb.h
@@ -74,11 +74,9 @@ public:
};
private:
- void calculateWBGains(const ipu3_uapi_stats_3a *stats,
- const ipu3_uapi_grid_config &grid);
+ void calculateWBGains(const ipu3_uapi_stats_3a *stats);
void generateZones(std::vector<RGB> &zones);
- void generateAwbStats(const ipu3_uapi_stats_3a *stats,
- const ipu3_uapi_grid_config &grid);
+ void generateAwbStats(const ipu3_uapi_stats_3a *stats);
void clearAwbStats();
void awbGreyWorld();
uint32_t estimateCCT(double red, double green, double blue);
@@ -87,6 +85,7 @@ private:
Accumulator awbStats_[kAwbStatsSizeX * kAwbStatsSizeY];
AwbStatus asyncResults_;
+ uint32_t stride_;
uint32_t cellsPerZoneX_;
uint32_t cellsPerZoneY_;
uint32_t cellsPerZoneThreshold_;