12 #include <linux/intel-ipu3.h> 18 #include "algorithm.h" 22 namespace ipa::ipu3::algorithms {
25 static constexpr uint32_t kAwbStatsSizeX = 16;
26 static constexpr uint32_t kAwbStatsSizeY = 12;
43 int configure(
IPAContext &context,
const IPAConfigInfo &configInfo)
override;
44 void prepare(
IPAContext &context,
const uint32_t frame,
46 ipu3_uapi_params *params)
override;
47 void process(
IPAContext &context,
const uint32_t frame,
49 const ipu3_uapi_stats_3a *stats,
61 void calculateWBGains(
const ipu3_uapi_stats_3a *stats);
63 void generateAwbStats(
const ipu3_uapi_stats_3a *stats);
66 static constexpr uint16_t threshold(
float value);
67 static constexpr uint16_t gainValue(
double gain);
69 std::vector<RGB<double>> zones_;
70 Accumulator awbStats_[kAwbStatsSizeX * kAwbStatsSizeY];
71 AwbStatus asyncResults_;
74 uint32_t cellsPerZoneX_;
75 uint32_t cellsPerZoneY_;
76 uint32_t cellsPerZoneThreshold_;
Global IPA context data shared between all algorithms.
Definition: ipa_context.h:86
A Grey world white balance correction algorithm.
Definition: awb.h:37
uint64_t green
Sum of the average green values of each unsaturated cell in the zone.
Definition: awb.h:32
Top-level libcamera namespace.
Definition: backtrace.h:17
uint64_t red
Sum of the average red values of each unsaturated cell in the zone.
Definition: awb.h:31
unsigned int counted
Number of unsaturated cells used to calculate the sums.
Definition: awb.h:29
IPU3-specific FrameContext.
Definition: ipa_context.h:79
RGB statistics for a given zone.
Definition: awb.h:28
struct libcamera::ipa::ipu3::algorithms::Accumulator::@4 sum
A structure containing the average red, green and blue sums.
Associate a list of ControlId with their values for an object.
Definition: controls.h:410
The base class for all IPA algorithms.
Definition: algorithm.h:22
Data structures related to geometric objects.
uint64_t blue
Sum of the average blue values of each unsaturated cell in the zone.
Definition: awb.h:33