libcamera v0.7.2+rpt20261009
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
tone_mapping.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2021, Google inc.
4 *
5 * IPU3 ToneMapping and Gamma control
6 */
7
8#pragma once
9
10#include <linux/intel-ipu3.h>
11
12#include <libipa/fixedpoint.h>
13#include <libipa/gamma.h>
14
15#include "algorithm.h"
16
17namespace libcamera {
18
19namespace ipa::ipu3::algorithms {
20
21class ToneMapping : public Algorithm
22{
23public:
25
26 int init(IPAContext &context, const ValueNode &tuningData) override;
27 int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
28 void queueRequest(IPAContext &context, const uint32_t frame,
29 IPAFrameContext &frameContext,
30 const ControlList &controls) override;
31 void prepare(IPAContext &context, const uint32_t frame,
32 IPAFrameContext &frameContext, ipu3_uapi_params *params) override;
33 void process(IPAContext &context, const uint32_t frame,
34 IPAFrameContext &frameContext,
35 const ipu3_uapi_stats_3a *stats,
36 ControlList &metadata) override;
37
38private:
39 static constexpr unsigned int kNumLutNodes = IPU3_UAPI_GAMMA_CORR_LUT_ENTRIES;
41};
42
43} /* namespace ipa::ipu3::algorithms */
44
45} /* namespace libcamera */
Associate a list of ControlId with their values for an object.
Definition controls.h:453
A class representing a tree structure of values.
Definition value_node.h:27
The base class for all IPA algorithms.
Definition algorithm.h:23
The libipa gamma correction algorithm.
Definition gamma.h:65
A class to handle tone mapping based on gamma.
Definition tone_mapping.h:22
int init(IPAContext &context, const ValueNode &tuningData) override
Initialize the Algorithm with tuning data.
Definition tone_mapping.cpp:37
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.
Definition tone_mapping.cpp:111
void prepare(IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, ipu3_uapi_params *params) override
Fill in the parameter structure, and enable gamma control.
Definition tone_mapping.cpp:77
void queueRequest(IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, const ControlList &controls) override
Provide control values to the algorithm.
Definition tone_mapping.cpp:59
int configure(IPAContext &context, const IPAConfigInfo &configInfo) override
Configure the tone mapping given a configInfo.
Definition tone_mapping.cpp:49
libipa implementation of a gamma curve correction algorithm
Algorithm common interface.
Top-level libcamera namespace.
Definition backtrace.h:17
Global IPA context data shared between all algorithms.
Definition ipa_context.h:73
IPU3-specific FrameContext.
Definition ipa_context.h:60