ipa: ipu3: Move the AWB stats structures
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>
This commit is contained in:
parent
4c992d6975
commit
22ccbe2e5c
1 changed files with 19 additions and 18 deletions
|
@ -23,15 +23,7 @@ namespace ipa::ipu3::algorithms {
|
||||||
static constexpr uint32_t kAwbStatsSizeX = 16;
|
static constexpr uint32_t kAwbStatsSizeX = 16;
|
||||||
static constexpr uint32_t kAwbStatsSizeY = 12;
|
static constexpr uint32_t kAwbStatsSizeY = 12;
|
||||||
|
|
||||||
class Awb : public Algorithm
|
/* \todo Move the cell layout into intel-ipu3.h kernel header */
|
||||||
{
|
|
||||||
public:
|
|
||||||
Awb();
|
|
||||||
~Awb();
|
|
||||||
|
|
||||||
void prepare(IPAContext &context, ipu3_uapi_params *params) override;
|
|
||||||
void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override;
|
|
||||||
|
|
||||||
struct Ipu3AwbCell {
|
struct Ipu3AwbCell {
|
||||||
unsigned char greenRedAvg;
|
unsigned char greenRedAvg;
|
||||||
unsigned char redAvg;
|
unsigned char redAvg;
|
||||||
|
@ -41,7 +33,24 @@ public:
|
||||||
unsigned char padding[3];
|
unsigned char padding[3];
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
/* \todo Make these three structs available to all the ISPs ? */
|
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:
|
||||||
|
Awb();
|
||||||
|
~Awb();
|
||||||
|
|
||||||
|
void prepare(IPAContext &context, ipu3_uapi_params *params) override;
|
||||||
|
void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override;
|
||||||
|
|
||||||
|
/* \todo Make these structs available to all the ISPs ? */
|
||||||
struct RGB {
|
struct RGB {
|
||||||
RGB(double _R = 0, double _G = 0, double _B = 0)
|
RGB(double _R = 0, double _G = 0, double _B = 0)
|
||||||
: R(_R), G(_G), B(_B)
|
: 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 {
|
struct AwbStatus {
|
||||||
double temperatureK;
|
double temperatureK;
|
||||||
double redGain;
|
double redGain;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue