diff options
Diffstat (limited to 'src/ipa/rkisp1/algorithms/lsc.h')
-rw-r--r-- | src/ipa/rkisp1/algorithms/lsc.h | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/ipa/rkisp1/algorithms/lsc.h b/src/ipa/rkisp1/algorithms/lsc.h index da81ea53..e2a93a56 100644 --- a/src/ipa/rkisp1/algorithms/lsc.h +++ b/src/ipa/rkisp1/algorithms/lsc.h @@ -7,6 +7,8 @@ #pragma once +#include <map> + #include "algorithm.h" namespace libcamera { @@ -26,17 +28,31 @@ public: rkisp1_params_cfg *params) override; private: - std::vector<uint16_t> rData_; - std::vector<uint16_t> grData_; - std::vector<uint16_t> gbData_; - std::vector<uint16_t> bData_; - + struct Components { + uint32_t ct; + std::vector<uint16_t> r; + std::vector<uint16_t> gr; + std::vector<uint16_t> gb; + std::vector<uint16_t> b; + }; + + void setParameters(rkisp1_params_cfg *params); + void copyTable(rkisp1_cif_isp_lsc_config &config, const Components &set0); + void interpolateTable(rkisp1_cif_isp_lsc_config &config, + const Components &set0, const Components &set1, + const uint32_t ct); + + std::map<uint32_t, Components> sets_; std::vector<double> xSize_; std::vector<double> ySize_; uint16_t xGrad_[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; uint16_t yGrad_[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; uint16_t xSizes_[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; uint16_t ySizes_[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; + struct { + uint32_t original; + uint32_t adjusted; + } lastCt_; }; } /* namespace ipa::rkisp1::algorithms */ |