libcamera  v0.3.2+116-83c5ad0f
Supporting cameras in Linux since 2019
Classes | Functions
libcamera::ipa Namespace Reference

The IPA (Image Processing Algorithm) namespace. More...

Classes

class  AgcMeanLuminance
 A mean-based auto-exposure algorithm. More...
 
class  Algorithm
 The base class for all IPA algorithms. More...
 
class  AlgorithmFactory
 Registration of Algorithm classes and creation of instances. More...
 
class  AlgorithmFactoryBase
 
class  CameraSensorHelper
 Base class for computing sensor tuning parameters using sensor-specific constants. More...
 
class  CameraSensorHelperFactory
 Registration of CameraSensorHelperFactory classes and creation of instances. More...
 
class  CameraSensorHelperFactoryBase
 Base class for camera sensor helper factories. More...
 
class  ExposureModeHelper
 Class for splitting exposure into shutter time and total gain. More...
 
class  FCQueue
 A support class for managing FrameContext instances in IPA modules. More...
 
struct  FrameContext
 Context for a frame. More...
 
class  Histogram
 The base class for creating histograms. More...
 
class  Interpolator
 Class for storing, retrieving, and interpolating objects. More...
 
class  LscPolynomial
 Class for handling even polynomials used in lens shading correction. More...
 
class  Matrix
 Matrix class. More...
 
class  Module
 The base class for all IPA modules. More...
 
class  Pwl
 Describe a univariate piecewise linear function in two-dimensional real space. More...
 
class  Vector
 Vector class. More...
 

Functions

double rec601LuminanceFromRGB (double r, double g, double b)
 Estimate luminance from RGB values following ITU-R BT.601. More...
 
uint32_t estimateCCT (double red, double green, double blue)
 Estimate correlated colour temperature from RGB color space input. More...
 
template<typename T , typename U , unsigned int Rows, unsigned int Cols>
Matrix< U, Rows, Cols > operator* (T d, const Matrix< U, Rows, Cols > &m)
 Multiply the matrix by a scalar. More...
 
template<typename T , typename U , unsigned int Rows, unsigned int Cols>
Matrix< U, Rows, Cols > operator* (const Matrix< U, Rows, Cols > &m, T d)
 Multiply the matrix by a scalar. More...
 
template<typename T , unsigned int R1, unsigned int C1, unsigned int R2, unsigned in C2>
Matrix< T, R1, C2 > operator* (const Matrix< T, R1, C1 > &m1, const Matrix< T, R2, C2 > &m2)
 Matrix multiplication. More...
 
template<typename T , unsigned int Rows, unsigned int Cols>
Matrix< T, Rows, Cols > operator+ (const Matrix< T, Rows, Cols > &m1, const Matrix< T, Rows, Cols > &m2)
 Matrix addition. More...
 
template<typename T , unsigned int Rows, unsigned int Cols>
Vector< T, Rows > operator* (const Matrix< T, Rows, Cols > &m, const Vector< T, Cols > &v)
 Multiply a matrix by a vector. More...
 
template<typename T , unsigned int Rows>
bool operator== (const Vector< T, Rows > &lhs, const Vector< T, Rows > &rhs)
 Compare vectors for equality. More...
 
template<typename T , unsigned int Rows>
bool operator!= (const Vector< T, Rows > &lhs, const Vector< T, Rows > &rhs)
 Compare vectors for inequality. More...
 

Detailed Description

The IPA (Image Processing Algorithm) namespace.

The IPA namespace groups all types specific to IPA modules. It serves as the top-level namespace for the IPA library libipa, and also contains module-specific namespaces for IPA modules.

Function Documentation

◆ estimateCCT()

uint32_t libcamera::ipa::estimateCCT ( double  red,
double  green,
double  blue 
)

Estimate correlated colour temperature from RGB color space input.

Parameters
[in]redThe input red value
[in]greenThe input green value
[in]blueThe input blue value

This function estimates the correlated color temperature RGB color space input. In physics and color science, the Planckian locus or black body locus is the path or locus that the color of an incandescent black body would take in a particular chromaticity space as the blackbody temperature changes.

If a narrow range of color temperatures is considered (those encapsulating daylight being the most practical case) one can approximate the Planckian locus in order to calculate the CCT in terms of chromaticity coordinates.

More detailed information can be found in: https://en.wikipedia.org/wiki/Color_temperature#Approximation

Returns
The estimated color temperature

◆ operator!=()

template<typename T , unsigned int Rows>
bool libcamera::ipa::operator!= ( const Vector< T, Rows > &  lhs,
const Vector< T, Rows > &  rhs 
)

Compare vectors for inequality.

Returns
True if the two vectors are not equal, false otherwise

◆ operator*() [1/4]

template<typename T , typename U , unsigned int Rows, unsigned int Cols>
Matrix::Matrix< U, Rows, Cols > libcamera::ipa::operator* ( d,
const Matrix< U, Rows, Cols > &  m 
)

Multiply the matrix by a scalar.

Template Parameters
TType of the numerical scalar value
UType of numerical values in the matrix
RowsNumber of rows in the matrix
ColsNumber of columns in the matrix
Parameters
dThe scalar multiplier
mThe matrix
Returns
Product of scalar d and matrix m

◆ operator*() [2/4]

template<typename T , typename U , unsigned int Rows, unsigned int Cols>
Matrix::Matrix< U, Rows, Cols > libcamera::ipa::operator* ( const Matrix< U, Rows, Cols > &  m,
d 
)

Multiply the matrix by a scalar.

Template Parameters
TType of the numerical scalar value
UType of numerical values in the matrix
RowsNumber of rows in the matrix
ColsNumber of columns in the matrix
Parameters
dThe scalar multiplier
mThe matrix
Returns
Product of scalar d and matrix m

◆ operator*() [3/4]

template<typename T , unsigned int R1, unsigned int C1, unsigned int R2, unsigned in C2>
Matrix< T, R1, C2 > libcamera::ipa::operator* ( const Matrix< T, R1, C1 > &  m1,
const Matrix< T, R2, C2 > &  m2 
)

Matrix multiplication.

Template Parameters
TType of numerical values in the matrices
R1Number of rows in the first matrix
C1Number of columns in the first matrix
R2Number of rows in the second matrix
C2Number of columns in the second matrix
Parameters
m1Multiplicand matrix
m2Multiplier matrix
Returns
Matrix product of matrices m1 and m2

◆ operator*() [4/4]

template<typename T , unsigned int Rows, unsigned int Cols>
Vector< T, Rows > libcamera::ipa::operator* ( const Matrix< T, Rows, Cols > &  m,
const Vector< T, Cols > &  v 
)

Multiply a matrix by a vector.

Template Parameters
TNumerical type of the contents of the matrix and vector
RowsThe number of rows in the matrix
ColsThe number of columns in the matrix (= rows in the vector)
Parameters
mThe matrix
vThe vector
Returns
Product of matrix m and vector v

◆ operator+()

template<typename T , unsigned int Rows, unsigned int Cols>
Matrix< T, Rows, Cols > libcamera::ipa::operator+ ( const Matrix< T, Rows, Cols > &  m1,
const Matrix< T, Rows, Cols > &  m2 
)

Matrix addition.

Template Parameters
TType of numerical values in the matrices
RowsNumber of rows in the matrices
ColsNumber of columns in the matrices
Parameters
m1Summand matrix
m2Summand matrix
Returns
Matrix sum of matrices m1 and m2

◆ operator==()

template<typename T , unsigned int Rows>
bool libcamera::ipa::operator== ( const Vector< T, Rows > &  lhs,
const Vector< T, Rows > &  rhs 
)

Compare vectors for equality.

Returns
True if the two vectors are equal, false otherwise

◆ rec601LuminanceFromRGB()

double libcamera::ipa::rec601LuminanceFromRGB ( double  r,
double  g,
double  b 
)

Estimate luminance from RGB values following ITU-R BT.601.

Parameters
[in]rThe red value
[in]gThe green value
[in]bThe blue value

This function estimates a luminance value from a triplet of Red, Green and Blue values, following the formula defined by ITU-R Recommendation BT.601-7 which can be found at https://www.itu.int/rec/R-REC-BT.601

Returns
The estimated luminance value