Message ID | 20210909135449.68017-2-jeanmichel.hautbois@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Jean-Michel, Thank you for the patch. On Thu, Sep 09, 2021 at 03:54:45PM +0200, Jean-Michel Hautbois wrote: > The structure Ipu3AwbCell describes the AWB stats layout on the kernel > side. We will need it to be used by the AGC algorithm to be introduced > later, so let's make it visible from ipa::ipu3::algorithms and not only > for the AWB class. > > The IspStatsRegion will be needed by AGC too, so let's move it in the > same namespace too. > > 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> > --- > src/ipa/ipu3/algorithms/awb.h | 37 ++++++++++++++++++----------------- > 1 file changed, 19 insertions(+), 18 deletions(-) > > diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h > index a16dd68d..cc848060 100644 > --- a/src/ipa/ipu3/algorithms/awb.h > +++ b/src/ipa/ipu3/algorithms/awb.h > @@ -23,6 +23,24 @@ namespace ipa::ipu3::algorithms { > static constexpr uint32_t kAwbStatsSizeX = 16; > static constexpr uint32_t kAwbStatsSizeY = 12; > > +/* \todo Move the cell layout into intel-ipu3.h kernel header */ > +struct Ipu3AwbCell { > + unsigned char greenRedAvg; > + unsigned char redAvg; > + unsigned char blueAvg; > + unsigned char greenBlueAvg; > + unsigned char satRatio; > + unsigned char padding[3]; > +} __attribute__((packed)); > + > +struct IspStatsRegion { > + unsigned int counted; > + unsigned int uncounted; > + unsigned long long rSum; > + unsigned long long gSum; > + unsigned long long bSum; > +}; > + > class Awb : public Algorithm > { > public: > @@ -32,16 +50,7 @@ public: > void prepare(IPAContext &context, ipu3_uapi_params *params) override; > void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override; > > - struct Ipu3AwbCell { > - unsigned char greenRedAvg; > - unsigned char redAvg; > - unsigned char blueAvg; > - unsigned char greenBlueAvg; > - unsigned char satRatio; > - unsigned char padding[3]; > - } __attribute__((packed)); > - > - /* \todo Make these three structs available to all the ISPs ? */ > + /* \todo Make these structs available to all the ISPs ? */ > struct RGB { > RGB(double _R = 0, double _G = 0, double _B = 0) > : R(_R), G(_G), B(_B) > @@ -55,14 +64,6 @@ public: > } > }; > > - struct IspStatsRegion { > - unsigned int counted; > - unsigned int uncounted; > - unsigned long long rSum; > - unsigned long long gSum; > - unsigned long long bSum; > - }; > - > struct AwbStatus { > double temperatureK; > double redGain;
diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h index a16dd68d..cc848060 100644 --- a/src/ipa/ipu3/algorithms/awb.h +++ b/src/ipa/ipu3/algorithms/awb.h @@ -23,6 +23,24 @@ namespace ipa::ipu3::algorithms { static constexpr uint32_t kAwbStatsSizeX = 16; static constexpr uint32_t kAwbStatsSizeY = 12; +/* \todo Move the cell layout into intel-ipu3.h kernel header */ +struct Ipu3AwbCell { + unsigned char greenRedAvg; + unsigned char redAvg; + unsigned char blueAvg; + unsigned char greenBlueAvg; + unsigned char satRatio; + unsigned char padding[3]; +} __attribute__((packed)); + +struct IspStatsRegion { + unsigned int counted; + unsigned int uncounted; + unsigned long long rSum; + unsigned long long gSum; + unsigned long long bSum; +}; + class Awb : public Algorithm { public: @@ -32,16 +50,7 @@ public: void prepare(IPAContext &context, ipu3_uapi_params *params) override; void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override; - struct Ipu3AwbCell { - unsigned char greenRedAvg; - unsigned char redAvg; - unsigned char blueAvg; - unsigned char greenBlueAvg; - unsigned char satRatio; - unsigned char padding[3]; - } __attribute__((packed)); - - /* \todo Make these three structs available to all the ISPs ? */ + /* \todo Make these structs available to all the ISPs ? */ struct RGB { RGB(double _R = 0, double _G = 0, double _B = 0) : R(_R), G(_G), B(_B) @@ -55,14 +64,6 @@ public: } }; - struct IspStatsRegion { - unsigned int counted; - unsigned int uncounted; - unsigned long long rSum; - unsigned long long gSum; - unsigned long long bSum; - }; - struct AwbStatus { double temperatureK; double redGain;