libcamera  v0.0.0+3695-a2c715d8
Supporting cameras in Linux since 2019
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  * tone_mapping.h - IPU3 ToneMapping and Gamma control
6  */
7 
8 #pragma once
9 
10 #include "algorithm.h"
11 
12 namespace libcamera {
13 
14 namespace ipa::ipu3::algorithms {
15 
16 class ToneMapping : public Algorithm
17 {
18 public:
19  ToneMapping();
20 
21  int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
22  void prepare(IPAContext &context, ipu3_uapi_params *params) override;
23  void process(IPAContext &context, IPAFrameContext *frameContext,
24  const ipu3_uapi_stats_3a *stats) override;
25 
26 private:
27  double gamma_;
28 };
29 
30 } /* namespace ipa::ipu3::algorithms */
31 
32 } /* namespace libcamera */
Global IPA context data shared between all algorithms.
Definition: ipa_context.h:92
Top-level libcamera namespace.
Definition: backtrace.h:17
void prepare(IPAContext &context, ipu3_uapi_params *params) override
Fill in the parameter structure, and enable gamma control.
Definition: tone_mapping.cpp:58
int configure(IPAContext &context, const IPAConfigInfo &configInfo) override
Configure the tone mapping given a configInfo.
Definition: tone_mapping.cpp:41
A class to handle tone mapping based on gamma.
Definition: tone_mapping.h:16
Context for a frame.
Definition: ipa_context.h:79
The base class for all IPA algorithms.
Definition: algorithm.h:19
void process(IPAContext &context, IPAFrameContext *frameContext, const ipu3_uapi_stats_3a *stats) override
Calculate the tone mapping look up table.
Definition: tone_mapping.cpp:81