37using Components = std::map<std::string, std::vector<T>, std::less<>>;
73 std::unique_ptr<LscImplementation>
impl_;
88 const std::vector<double> &xPos,
89 const std::vector<double> &yPos)
92 impl_->sampleForCrop(analogCrop, xPos, yPos);
94 ComponentsMap lscData;
95 for (
const auto &[t, c] : data) {
96 Components &comp = lscData[t];
98 for (
const auto &[k, gains] : c) {
99 auto &quantizedGains = comp[k];
100 quantizedGains.reserve(gains.size());
102 for (
const float &gain : gains) {
108 quantizedGains.push_back(U(gain).quantized());
110 quantizedGains.push_back(gain);
115 sets_.
setData(std::move(lscData));
std::unordered_map< const ControlId *, ControlInfo > Map
The base std::unsorted_map<> container.
Definition controls.h:367
Associate a list of ControlId with their values for an object.
Definition controls.h:409
Describe a rectangle's position and dimensions.
Definition geometry.h:247
A class representing a tree structure of values.
Definition value_node.h:27
Class for storing, retrieving, and interpolating objects.
Definition interpolator.h:28
const T & getInterpolated(unsigned int key)
Retrieve an interpolated value for the given key.
Definition interpolator.h:87
const std::map< unsigned int, T > & data() const
Access the internal map.
Definition interpolator.h:82
void setData(std::map< unsigned int, T > &&data)
Set the internal map.
Definition interpolator.h:76
Base class for LscAlgorithm.
Definition lsc.h:61
void queueRequest(lsc::ActiveState &state, lsc::FrameContext &context, const ControlList &controls)
Queue a request to the lsc algorithm.
Definition lsc.cpp:179
int init(const ValueNode &tuningData, ControlInfoMap::Map &controls, const LscDescriptor &descriptor)
Definition lsc.cpp:135
std::unique_ptr< LscImplementation > impl_
The LSC algorithm implementation.
Definition lsc.h:73
bool polynomial_
Boolean flag for polynomial LSC.
Definition lsc.h:74
void process(lsc::FrameContext &context, ControlList &metadata)
Populate the list of lsc metadata.
Definition lsc.cpp:204
libIPA LSC algorithm implementation
Definition lsc.h:79
int configure(lsc::ActiveState &state, const Rectangle &analogCrop, const std::vector< double > &xPos, const std::vector< double > &yPos)
Re-sample and quantize LSC data.
Definition lsc.h:87
const ComponentsMap & getComponents() const
Return the map of LSC data per-colour-temperature.
Definition lsc.h:126
const Components interpolateComponents(unsigned int ct)
Interpolate the LSC tables for a given colour temperature.
Definition lsc.h:121
std::map< unsigned int, Components > ComponentsMap
Associate a colour temperature to a LSC table.
Definition lsc_base.h:38
Framework to manage controls related to an object.
Data structures related to geometric objects.
Helper class for linear interpolating a set of objects.
std::map< std::string, std::vector< T >, std::less<> > Components
Associate colour components with a list of gains in register format.
Definition lsc.h:37
std::map< unsigned int, Components< T > > ComponentsMap
Associate a colour temperature to a LSC table.
Definition lsc.h:40
Base types and definitions for LscImplementation class hierarchy.
Top-level libcamera namespace.
Definition backtrace.h:17
Describe the ISP LSC engine.
Definition lsc_base.h:27
The LSC active state.
Definition lsc.h:27
bool enabled
Boolean flag for the LscAlgorithm enable status.
Definition lsc.h:28
The LSC frame context.
Definition lsc.h:31
bool update
Boolean flag for the LscAlgorithm updated status.
Definition lsc.h:33
bool enabled
Boolean flag for the LscAlgorithm enable status.
Definition lsc.h:32
Data structure to manage tree of values.