![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <stdint.h>#include <stdlib.h>
Include dependency graph for lut3d.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Typedefs | |
| typedef enum dt_lut3d_interpolation_t | dt_lut3d_interpolation_t |
Enumerations | |
| enum | dt_lut3d_interpolation_t { DT_LUT3D_INTERP_TETRAHEDRAL = 0 , DT_LUT3D_INTERP_TRILINEAR = 1 , DT_LUT3D_INTERP_PYRAMID = 2 } |
Functions | |
| void | dt_lut3d_apply (const float *in, float *out, size_t pixel_nb, const float *clut, uint16_t level, float normalization, dt_lut3d_interpolation_t interpolation) |
| Apply one interpolation model over a packed RGB CLUT. | |
| void | dt_lut3d_tetrahedral_interp (const float *in, float *out, size_t pixel_nb, const float *clut, uint16_t level, float normalization) |
| void | dt_lut3d_trilinear_interp (const float *in, float *out, size_t pixel_nb, const float *clut, uint16_t level, float normalization) |
| void | dt_lut3d_pyramid_interp (const float *in, float *out, size_t pixel_nb, const float *clut, uint16_t level, float normalization) |
| typedef enum dt_lut3d_interpolation_t dt_lut3d_interpolation_t |
| void dt_lut3d_apply | ( | const float * | in, |
| float * | out, | ||
| size_t | pixel_nb, | ||
| const float * | clut, | ||
| uint16_t | level, | ||
| float | normalization, | ||
| dt_lut3d_interpolation_t | interpolation | ||
| ) |
Apply one interpolation model over a packed RGB CLUT.
The interpolation always happens in the normalized [0, 1] lattice domain. normalization lets callers map scene-referred RGB into that domain before lookup and restore the white level afterwards without rescaling the whole buffer in separate passes.
All modules using a dense RGB CLUT should go through this shared runtime so file-backed LUTs and procedurally-generated LUTs only differ by how they author the lattice values, not by how they traverse the cells.
References DT_LUT3D_INTERP_PYRAMID, DT_LUT3D_INTERP_TETRAHEDRAL, DT_LUT3D_INTERP_TRILINEAR, dt_lut3d_pyramid_interp(), dt_lut3d_tetrahedral_interp(), dt_lut3d_trilinear_interp(), and out.
Referenced by dt_colorrings_apply_rgb_lut(), and process().
| void dt_lut3d_pyramid_interp | ( | const float * | in, |
| float * | out, | ||
| size_t | pixel_nb, | ||
| const float * | clut, | ||
| uint16_t | level, | ||
| float | normalization | ||
| ) |
| void dt_lut3d_tetrahedral_interp | ( | const float * | in, |
| float * | out, | ||
| size_t | pixel_nb, | ||
| const float * | clut, | ||
| uint16_t | level, | ||
| float | normalization | ||
| ) |
| void dt_lut3d_trilinear_interp | ( | const float * | in, |
| float * | out, | ||
| size_t | pixel_nb, | ||
| const float * | clut, | ||
| uint16_t | level, | ||
| float | normalization | ||
| ) |