|
libcamera v0.7.2+rpt20261009
Supporting cameras in Linux since 2019
|
A class to handle tone mapping based on gamma. More...


Public Member Functions | |
| int | init (IPAContext &context, const ValueNode &tuningData) override |
| Initialize the Algorithm with tuning data. | |
| int | configure (IPAContext &context, const IPAConfigInfo &configInfo) override |
| Configure the tone mapping given a configInfo. | |
| void | queueRequest (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, const ControlList &controls) override |
| Provide control values to the algorithm. | |
| void | prepare (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, ipu3_uapi_params *params) override |
| Fill in the parameter structure, and enable gamma control. | |
| void | process (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, const ipu3_uapi_stats_3a *stats, ControlList &metadata) override |
| Calculate the tone mapping look up table. | |
Public Member Functions inherited from libcamera::ipa::Algorithm< _Module > | |
| virtual int | init (typename Module::Context &context, const ValueNode &tuningData) |
| Initialize the Algorithm with tuning data. | |
| virtual int | configure (typename Module::Context &context, const typename Module::Config &configInfo) |
| Configure the Algorithm given an IPAConfigInfo. | |
| virtual void | queueRequest (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, const ControlList &controls) |
| Provide control values to the algorithm. | |
| virtual void | prepare (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, typename Module::Params *params) |
| Fill the params buffer with ISP processing parameters for a frame. | |
| virtual void | process (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, const typename Module::Stats *stats, ControlList &metadata) |
| Process ISP statistics, and run algorithm operations. | |
Additional Inherited Members | |
Public Types inherited from libcamera::ipa::Algorithm< _Module > | |
| using | Module = _Module |
| The IPA module type for this class of algorithms. | |
A class to handle tone mapping based on gamma.
This algorithm improves the image dynamic using a look-up table which is generated based on a gamma parameter.
|
override |
Configure the tone mapping given a configInfo.
| [in] | context | The shared IPA context |
| [in] | configInfo | The IPA configuration data |
|
override |
Initialize the Algorithm with tuning data.
| [in] | context | The shared IPA context |
| [in] | tuningData | The tuning data for the algorithm |
This function is called once, when the IPA module is initialized, to initialize the algorithm. The tuningData ValueNode contains the tuning data for algorithm.
|
override |
Fill in the parameter structure, and enable gamma control.
| [in] | context | The shared IPA context |
| [in] | frame | The frame context sequence number |
| [in] | frameContext | The FrameContext for this frame |
| [out] | params | The IPU3 parameters |
Populate the IPU3 parameter structure with our tone mapping look up table and enable the gamma control module in the processing blocks.
|
override |
Calculate the tone mapping look up table.
| [in] | context | The shared IPA context |
| [in] | frame | The current frame sequence number |
| [in] | frameContext | The current frame context |
| [in] | stats | The IPU3 statistics and ISP results |
| [out] | metadata | Metadata for the frame, to be filled by the algorithm |
The tone mapping look up table is generated as an inverse power curve from our gamma setting.
|
override |
Provide control values to the algorithm.
| [in] | context | The shared IPA context |
| [in] | frame | The frame number to apply the control values |
| [in] | frameContext | The current frame's context |
| [in] | controls | The list of user controls |
This function is called for each request queued to the camera. It provides the controls stored in the request to the algorithm. The frame number is the Request sequence number and identifies the desired corresponding frame to target for the controls to take effect.
Algorithms shall read the applicable controls and store their value for later use during frame processing.