Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
colorspaces_inline_conversions.h File Reference
#include "common/matrices.h"
#include "common/math.h"
+ Include dependency graph for colorspaces_inline_conversions.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static void dt_apply_transposed_color_matrix (const dt_aligned_pixel_t in, const dt_colormatrix_t matrix, dt_aligned_pixel_t out)
 
static float cbrt_5f (float f)
 
static float cbrta_halleyf (const float a, const float R)
 
static float lab_f (const float x)
 
static void dt_XYZ_to_Lab (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t Lab)
 
static float lab_f_inv (const float x)
 
static void dt_Lab_to_XYZ (const dt_aligned_pixel_t Lab, dt_aligned_pixel_t XYZ)
 
static void dt_XYZ_to_xyY (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t xyY)
 
static void dt_xyY_to_XYZ (const dt_aligned_pixel_t xyY, dt_aligned_pixel_t XYZ)
 
static void dt_xyY_to_uvY (const dt_aligned_pixel_t xyY, dt_aligned_pixel_t uvY)
 
static float cbf (const float x)
 
static void dt_xyY_to_Luv (const dt_aligned_pixel_t xyY, dt_aligned_pixel_t Luv)
 
static void dt_Luv_to_Lch (const dt_aligned_pixel_t Luv, dt_aligned_pixel_t Lch)
 
static void dt_xyY_to_Lch (const dt_aligned_pixel_t xyY, dt_aligned_pixel_t Lch)
 
static void dt_uvY_to_xyY (const dt_aligned_pixel_t uvY, dt_aligned_pixel_t xyY)
 
static void dt_Luv_to_xyY (const dt_aligned_pixel_t Luv, dt_aligned_pixel_t xyY)
 
static void dt_Lch_to_Luv (const dt_aligned_pixel_t Lch, dt_aligned_pixel_t Luv)
 
static void dt_Lch_to_xyY (const dt_aligned_pixel_t Lch, dt_aligned_pixel_t xyY)
 
static void dt_XYZ_to_Rec709_D50 (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t sRGB)
 
static void dt_XYZ_to_Rec709_D65 (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t sRGB)
 
static void dt_XYZ_to_sRGB (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t sRGB)
 
static void dt_XYZ_to_sRGB_clipped (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t sRGB)
 
static void dt_Rec709_to_XYZ_D50 (const dt_aligned_pixel_t sRGB, dt_aligned_pixel_t XYZ_D50)
 
static void dt_sRGB_to_linear_sRGB (const dt_aligned_pixel_t sRGB, dt_aligned_pixel_t RGB)
 
static void dt_sRGB_to_XYZ (const dt_aligned_pixel_t sRGB, dt_aligned_pixel_t XYZ)
 
static void dt_XYZ_to_prophotorgb (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t rgb)
 
static void dt_prophotorgb_to_XYZ (const dt_aligned_pixel_t rgb, dt_aligned_pixel_t XYZ)
 
static void dt_linearRGB_to_XYZ (const dt_aligned_pixel_t linearRGB, dt_aligned_pixel_t XYZ)
 
static void dt_XYZ_to_linearRGB (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t linearRGB)
 
static void dt_Lab_to_prophotorgb (const dt_aligned_pixel_t Lab, dt_aligned_pixel_t rgb)
 
static void dt_prophotorgb_to_Lab (const dt_aligned_pixel_t rgb, dt_aligned_pixel_t Lab)
 
static float _dt_RGB_2_Hue (const dt_aligned_pixel_t RGB, const float max, const float delta)
 
static void _dt_Hue_2_RGB (dt_aligned_pixel_t RGB, const float H, const float C, const float min)
 
static void dt_RGB_2_HSL (const dt_aligned_pixel_t RGB, dt_aligned_pixel_t HSL)
 
static void dt_HSL_2_RGB (const dt_aligned_pixel_t HSL, dt_aligned_pixel_t RGB)
 
static void dt_RGB_2_HSV (const dt_aligned_pixel_t RGB, dt_aligned_pixel_t HSV)
 
static void dt_HSV_2_RGB (const dt_aligned_pixel_t HSV, dt_aligned_pixel_t RGB)
 
static void dt_RGB_2_HCV (const dt_aligned_pixel_t RGB, dt_aligned_pixel_t HCV)
 
static void dt_Lab_2_LCH (const dt_aligned_pixel_t Lab, dt_aligned_pixel_t LCH)
 
static void dt_LCH_2_Lab (const dt_aligned_pixel_t LCH, dt_aligned_pixel_t Lab)
 
static float dt_camera_rgb_luminance (const dt_aligned_pixel_t rgb)
 
static void dt_XYZ_D50_2_XYZ_D65 (const dt_aligned_pixel_t XYZ_D50, dt_aligned_pixel_t XYZ_D65)
 
static void dt_XYZ_D65_2_XYZ_D50 (const dt_aligned_pixel_t XYZ_D65, dt_aligned_pixel_t XYZ_D50)
 
static void dt_XYZ_2_JzAzBz (const dt_aligned_pixel_t XYZ_D65, dt_aligned_pixel_t JzAzBz)
 
static void dt_JzAzBz_2_JzCzhz (const dt_aligned_pixel_t JzAzBz, dt_aligned_pixel_t JzCzhz)
 
static void dt_JzCzhz_2_JzAzBz (const dt_aligned_pixel_t JzCzhz, dt_aligned_pixel_t JzAzBz)
 
static void dt_JzAzBz_2_XYZ (const dt_aligned_pixel_t JzAzBz, dt_aligned_pixel_t XYZ_D65)
 
static void XYZ_to_LMS (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t LMS)
 
static void LMS_to_XYZ (const dt_aligned_pixel_t LMS, dt_aligned_pixel_t XYZ)
 
static void gradingRGB_to_LMS (const dt_aligned_pixel_t RGB, dt_aligned_pixel_t LMS)
 
static void LMS_to_gradingRGB (const dt_aligned_pixel_t LMS, dt_aligned_pixel_t RGB)
 
static void LMS_to_Yrg (const dt_aligned_pixel_t LMS, dt_aligned_pixel_t Yrg)
 
static void Yrg_to_LMS (const dt_aligned_pixel_t Yrg, dt_aligned_pixel_t LMS)
 
static void Yrg_to_Ych (const dt_aligned_pixel_t Yrg, dt_aligned_pixel_t Ych)
 
static void Ych_to_Yrg (const dt_aligned_pixel_t Ych, dt_aligned_pixel_t Yrg)
 
static void Ych_to_gradingRGB (const dt_aligned_pixel_t Ych, dt_aligned_pixel_t RGB)
 
static void gradingRGB_to_Ych (const dt_aligned_pixel_t RGB, dt_aligned_pixel_t Ych)
 
static void XYZ_to_Ych (const dt_aligned_pixel_t XYZ, dt_aligned_pixel_t Ych)
 
static void Ych_to_XYZ (const dt_aligned_pixel_t Ych, dt_aligned_pixel_t XYZ)
 
static void gamut_check_Yrg (dt_aligned_pixel_t Ych)
 
static float Y_to_dt_UCS_L_star (const float Y)
 
static float dt_UCS_L_star_to_Y (const float L_star)
 
static void xyY_to_dt_UCS_UV (const dt_aligned_pixel_t xyY, float UV_star_prime[2])
 
static void xyY_to_dt_UCS_JCH (const dt_aligned_pixel_t xyY, const float L_white, dt_aligned_pixel_t JCH)
 
static void dt_UCS_JCH_to_xyY (const dt_aligned_pixel_t JCH, const float L_white, dt_aligned_pixel_t xyY)
 
static void dt_UCS_JCH_to_HSB (const dt_aligned_pixel_t JCH, dt_aligned_pixel_t HSB)
 
static void dt_UCS_HSB_to_JCH (const dt_aligned_pixel_t HSB, dt_aligned_pixel_t JCH)
 
static void dt_UCS_JCH_to_HCB (const dt_aligned_pixel_t JCH, dt_aligned_pixel_t HCB)
 
static void dt_UCS_HCB_to_JCH (const dt_aligned_pixel_t HCB, dt_aligned_pixel_t JCH)
 
static void dt_UCS_HSB_to_HPW (const dt_aligned_pixel_t HSB, dt_aligned_pixel_t HPW)
 
static void dt_UCS_HPW_to_HSB (const dt_aligned_pixel_t HPW, dt_aligned_pixel_t HSB)
 

Variables

static const dt_aligned_pixel_t d50 = { 0.9642f, 1.0f, 0.8249f }
 
static const dt_colormatrix_t sRGB_to_xyz_transposed
 
static const dt_colormatrix_t xyz_to_srgb_transposed
 
static const dt_colormatrix_t XYZ_D65_to_LMS_2006_D65
 
static const dt_colormatrix_t LMS_2006_D65_to_XYZ_D65
 
static const dt_colormatrix_t filmlightRGB_D65_to_LMS_D65
 
static const dt_colormatrix_t LMS_D65_to_filmlightRGB_D65
 

Function Documentation

◆ _dt_Hue_2_RGB()

static void _dt_Hue_2_RGB ( dt_aligned_pixel_t  RGB,
const float  H,
const float  C,
const float  min 
)
inlinestatic

References f(), and H.

Referenced by dt_HSL_2_RGB(), and dt_HSV_2_RGB().

◆ _dt_RGB_2_Hue()

static float _dt_RGB_2_Hue ( const dt_aligned_pixel_t  RGB,
const float  max,
const float  delta 
)
inlinestatic

◆ cbf()

static float cbf ( const float  x)
inlinestatic

Referenced by dt_Luv_to_xyY(), and dt_xyY_to_Luv().

◆ cbrt_5f()

static float cbrt_5f ( float  f)
inlinestatic

References f().

Referenced by lab_f().

◆ cbrta_halleyf()

static float cbrta_halleyf ( const float  a,
const float  R 
)
inlinestatic

References R.

Referenced by lab_f().

◆ dt_apply_transposed_color_matrix()

◆ dt_camera_rgb_luminance()

static float dt_camera_rgb_luminance ( const dt_aligned_pixel_t  rgb)
inlinestatic

◆ dt_HSL_2_RGB()

static void dt_HSL_2_RGB ( const dt_aligned_pixel_t  HSL,
dt_aligned_pixel_t  RGB 
)
inlinestatic

◆ dt_HSV_2_RGB()

static void dt_HSV_2_RGB ( const dt_aligned_pixel_t  HSV,
dt_aligned_pixel_t  RGB 
)
inlinestatic

References _dt_Hue_2_RGB(), and m.

Referenced by _blend_HSV_color(), and _blend_HSV_value().

◆ dt_JzAzBz_2_JzCzhz()

static void dt_JzAzBz_2_JzCzhz ( const dt_aligned_pixel_t  JzAzBz,
dt_aligned_pixel_t  JzCzhz 
)
inlinestatic

References DT_M_PI_F.

Referenced by _blendif_jzczhz(), _rgb_to_JzCzhz(), and rgb_to_JzCzhz().

◆ dt_JzAzBz_2_XYZ()

static void dt_JzAzBz_2_XYZ ( const dt_aligned_pixel_t  JzAzBz,
dt_aligned_pixel_t  XYZ_D65 
)
inlinestatic

References c1, and c2.

Referenced by _channel_display_false_color(), and process().

◆ dt_JzCzhz_2_JzAzBz()

static void dt_JzCzhz_2_JzAzBz ( const dt_aligned_pixel_t  JzCzhz,
dt_aligned_pixel_t  JzAzBz 
)
inlinestatic

References DT_M_PI_F.

Referenced by _channel_display_false_color().

◆ dt_Lab_2_LCH()

◆ dt_Lab_to_prophotorgb()

static void dt_Lab_to_prophotorgb ( const dt_aligned_pixel_t  Lab,
dt_aligned_pixel_t  rgb 
)
inlinestatic

◆ dt_Lab_to_XYZ()

◆ dt_LCH_2_Lab()

◆ dt_Lch_to_Luv()

static void dt_Lch_to_Luv ( const dt_aligned_pixel_t  Lch,
dt_aligned_pixel_t  Luv 
)
inlinestatic

◆ dt_Lch_to_xyY()

static void dt_Lch_to_xyY ( const dt_aligned_pixel_t  Lch,
dt_aligned_pixel_t  xyY 
)
inlinestatic

◆ dt_linearRGB_to_XYZ()

static void dt_linearRGB_to_XYZ ( const dt_aligned_pixel_t  linearRGB,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

◆ dt_Luv_to_Lch()

static void dt_Luv_to_Lch ( const dt_aligned_pixel_t  Luv,
dt_aligned_pixel_t  Lch 
)
inlinestatic

References M_PI.

Referenced by _process_vectorscope(), and dt_xyY_to_Lch().

◆ dt_Luv_to_xyY()

static void dt_Luv_to_xyY ( const dt_aligned_pixel_t  Luv,
dt_aligned_pixel_t  xyY 
)
inlinestatic

◆ dt_prophotorgb_to_Lab()

static void dt_prophotorgb_to_Lab ( const dt_aligned_pixel_t  rgb,
dt_aligned_pixel_t  Lab 
)
inlinestatic

◆ dt_prophotorgb_to_XYZ()

static void dt_prophotorgb_to_XYZ ( const dt_aligned_pixel_t  rgb,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

◆ dt_Rec709_to_XYZ_D50()

static void dt_Rec709_to_XYZ_D50 ( const dt_aligned_pixel_t  sRGB,
dt_aligned_pixel_t  XYZ_D50 
)
inlinestatic

◆ dt_RGB_2_HCV()

static void dt_RGB_2_HCV ( const dt_aligned_pixel_t  RGB,
dt_aligned_pixel_t  HCV 
)
inlinestatic

References _dt_RGB_2_Hue(), and H.

◆ dt_RGB_2_HSL()

static void dt_RGB_2_HSL ( const dt_aligned_pixel_t  RGB,
dt_aligned_pixel_t  HSL 
)
inlinestatic

◆ dt_RGB_2_HSV()

static void dt_RGB_2_HSV ( const dt_aligned_pixel_t  RGB,
dt_aligned_pixel_t  HSV 
)
inlinestatic

◆ dt_sRGB_to_linear_sRGB()

static void dt_sRGB_to_linear_sRGB ( const dt_aligned_pixel_t  sRGB,
dt_aligned_pixel_t  RGB 
)
inlinestatic

Referenced by dt_sRGB_to_XYZ().

◆ dt_sRGB_to_XYZ()

static void dt_sRGB_to_XYZ ( const dt_aligned_pixel_t  sRGB,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

◆ dt_UCS_HCB_to_JCH()

static void dt_UCS_HCB_to_JCH ( const dt_aligned_pixel_t  HCB,
dt_aligned_pixel_t  JCH 
)
inlinestatic

◆ dt_UCS_HPW_to_HSB()

static void dt_UCS_HPW_to_HSB ( const dt_aligned_pixel_t  HPW,
dt_aligned_pixel_t  HSB 
)
inlinestatic

◆ dt_UCS_HSB_to_HPW()

static void dt_UCS_HSB_to_HPW ( const dt_aligned_pixel_t  HSB,
dt_aligned_pixel_t  HPW 
)
inlinestatic

◆ dt_UCS_HSB_to_JCH()

static void dt_UCS_HSB_to_JCH ( const dt_aligned_pixel_t  HSB,
dt_aligned_pixel_t  JCH 
)
inlinestatic

◆ dt_UCS_JCH_to_HCB()

static void dt_UCS_JCH_to_HCB ( const dt_aligned_pixel_t  JCH,
dt_aligned_pixel_t  HCB 
)
inlinestatic

◆ dt_UCS_JCH_to_HSB()

static void dt_UCS_JCH_to_HSB ( const dt_aligned_pixel_t  JCH,
dt_aligned_pixel_t  HSB 
)
inlinestatic

◆ dt_UCS_JCH_to_xyY()

static void dt_UCS_JCH_to_xyY ( const dt_aligned_pixel_t  JCH,
const float  L_white,
dt_aligned_pixel_t  xyY 
)
inlinestatic

◆ dt_UCS_L_star_to_Y()

static float dt_UCS_L_star_to_Y ( const float  L_star)
inlinestatic

Referenced by dt_UCS_JCH_to_xyY().

◆ dt_uvY_to_xyY()

static void dt_uvY_to_xyY ( const dt_aligned_pixel_t  uvY,
dt_aligned_pixel_t  xyY 
)
inlinestatic

Referenced by dt_Luv_to_xyY().

◆ dt_xyY_to_Lch()

static void dt_xyY_to_Lch ( const dt_aligned_pixel_t  xyY,
dt_aligned_pixel_t  Lch 
)
inlinestatic

◆ dt_xyY_to_Luv()

static void dt_xyY_to_Luv ( const dt_aligned_pixel_t  xyY,
dt_aligned_pixel_t  Luv 
)
inlinestatic

◆ dt_xyY_to_uvY()

static void dt_xyY_to_uvY ( const dt_aligned_pixel_t  xyY,
dt_aligned_pixel_t  uvY 
)
inlinestatic

Referenced by dt_xyY_to_Luv().

◆ dt_xyY_to_XYZ()

static void dt_xyY_to_XYZ ( const dt_aligned_pixel_t  xyY,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

◆ dt_XYZ_2_JzAzBz()

static void dt_XYZ_2_JzAzBz ( const dt_aligned_pixel_t  XYZ_D65,
dt_aligned_pixel_t  JzAzBz 
)
inlinestatic

Conversion algorithms between XYZ and JzAzBz and JzCzhz are described in the following paper:

Perceptually uniform color space for image signals including high dynamic range and wide gamut https://www.osapublishing.org/oe/fulltext.cfm?uri=oe-25-13-15131&id=368272

References A, c1, c2, and for_each_channel.

Referenced by _blendif_jzczhz(), _rgb_to_JzCzhz(), commit_params(), process(), and rgb_to_JzCzhz().

◆ dt_XYZ_D50_2_XYZ_D65()

static void dt_XYZ_D50_2_XYZ_D65 ( const dt_aligned_pixel_t  XYZ_D50,
dt_aligned_pixel_t  XYZ_D65 
)
inlinestatic

References for_each_channel.

Referenced by rgb_to_JzCzhz().

◆ dt_XYZ_D65_2_XYZ_D50()

static void dt_XYZ_D65_2_XYZ_D50 ( const dt_aligned_pixel_t  XYZ_D65,
dt_aligned_pixel_t  XYZ_D50 
)
inlinestatic

References for_each_channel.

◆ dt_XYZ_to_Lab()

◆ dt_XYZ_to_linearRGB()

static void dt_XYZ_to_linearRGB ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  linearRGB 
)
inlinestatic

◆ dt_XYZ_to_prophotorgb()

static void dt_XYZ_to_prophotorgb ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  rgb 
)
inlinestatic

◆ dt_XYZ_to_Rec709_D50()

static void dt_XYZ_to_Rec709_D50 ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  sRGB 
)
inlinestatic

◆ dt_XYZ_to_Rec709_D65()

static void dt_XYZ_to_Rec709_D65 ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  sRGB 
)
inlinestatic

◆ dt_XYZ_to_sRGB()

static void dt_XYZ_to_sRGB ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  sRGB 
)
inlinestatic

◆ dt_XYZ_to_sRGB_clipped()

static void dt_XYZ_to_sRGB_clipped ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  sRGB 
)
inlinestatic

uses D50 white point and clips the output to [0..1].

References CLIP, dt_XYZ_to_sRGB(), and for_each_channel.

Referenced by cairo_surface_create_from_xyz_data(), and checker_set_color().

◆ dt_XYZ_to_xyY()

static void dt_XYZ_to_xyY ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  xyY 
)
inlinestatic

◆ gamut_check_Yrg()

static void gamut_check_Yrg ( dt_aligned_pixel_t  Ych)
inlinestatic

References Ych_to_Yrg().

◆ gradingRGB_to_LMS()

static void gradingRGB_to_LMS ( const dt_aligned_pixel_t  RGB,
dt_aligned_pixel_t  LMS 
)
inlinestatic

◆ gradingRGB_to_Ych()

static void gradingRGB_to_Ych ( const dt_aligned_pixel_t  RGB,
dt_aligned_pixel_t  Ych 
)
inlinestatic

◆ lab_f()

static float lab_f ( const float  x)
inlinestatic

References cbrt_5f(), and cbrta_halleyf().

Referenced by dt_XYZ_to_Lab().

◆ lab_f_inv()

static float lab_f_inv ( const float  x)
inlinestatic

Referenced by dt_Lab_to_XYZ().

◆ LMS_to_gradingRGB()

static void LMS_to_gradingRGB ( const dt_aligned_pixel_t  LMS,
dt_aligned_pixel_t  RGB 
)
inlinestatic

◆ LMS_to_XYZ()

static void LMS_to_XYZ ( const dt_aligned_pixel_t  LMS,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

References dot_product(), and LMS_2006_D65_to_XYZ_D65.

Referenced by Ych_to_XYZ().

◆ LMS_to_Yrg()

static void LMS_to_Yrg ( const dt_aligned_pixel_t  LMS,
dt_aligned_pixel_t  Yrg 
)
inlinestatic

◆ xyY_to_dt_UCS_JCH()

static void xyY_to_dt_UCS_JCH ( const dt_aligned_pixel_t  xyY,
const float  L_white,
dt_aligned_pixel_t  JCH 
)
inlinestatic

◆ xyY_to_dt_UCS_UV()

static void xyY_to_dt_UCS_UV ( const dt_aligned_pixel_t  xyY,
float  UV_star_prime[2] 
)
inlinestatic

References for_each_channel.

Referenced by xyY_to_dt_UCS_JCH().

◆ XYZ_to_LMS()

static void XYZ_to_LMS ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  LMS 
)
inlinestatic

References dot_product(), and XYZ_D65_to_LMS_2006_D65.

Referenced by XYZ_to_Ych().

◆ XYZ_to_Ych()

static void XYZ_to_Ych ( const dt_aligned_pixel_t  XYZ,
dt_aligned_pixel_t  Ych 
)
inlinestatic

References LMS_to_Yrg(), XYZ_to_LMS(), and Yrg_to_Ych().

Referenced by pipe_RGB_to_Ych().

◆ Y_to_dt_UCS_L_star()

static float Y_to_dt_UCS_L_star ( const float  Y)
inlinestatic

The following is darktable Uniform Color Space 2022 © Aurélien Pierre https://eng.aurelienpierre.com/2022/02/color-saturation-control-for-the-21th-century/

Use this space for color-grading in a perceptual framework. The CAM terms have been removed for performance.

Referenced by xyY_to_dt_UCS_JCH().

◆ Ych_to_gradingRGB()

static void Ych_to_gradingRGB ( const dt_aligned_pixel_t  Ych,
dt_aligned_pixel_t  RGB 
)
inlinestatic

◆ Ych_to_XYZ()

static void Ych_to_XYZ ( const dt_aligned_pixel_t  Ych,
dt_aligned_pixel_t  XYZ 
)
inlinestatic

◆ Ych_to_Yrg()

static void Ych_to_Yrg ( const dt_aligned_pixel_t  Ych,
dt_aligned_pixel_t  Yrg 
)
inlinestatic

◆ Yrg_to_LMS()

static void Yrg_to_LMS ( const dt_aligned_pixel_t  Yrg,
dt_aligned_pixel_t  LMS 
)
inlinestatic

◆ Yrg_to_Ych()

static void Yrg_to_Ych ( const dt_aligned_pixel_t  Yrg,
dt_aligned_pixel_t  Ych 
)
inlinestatic

Referenced by gradingRGB_to_Ych(), and XYZ_to_Ych().

Variable Documentation

◆ d50

const dt_aligned_pixel_t d50 = { 0.9642f, 1.0f, 0.8249f }
static

uses D50 white point.

Referenced by dt_Lab_to_XYZ(), dt_XYZ_to_Lab(), Lab_to_XYZ(), and XYZ_to_Lab().

◆ filmlightRGB_D65_to_LMS_D65

const dt_colormatrix_t filmlightRGB_D65_to_LMS_D65
static
Initial value:
= { { 0.95f, 0.38f, 0.00f, 0.f },
{ 0.05f, 0.62f, 0.03f, 0.f },
{ 0.00f, 0.00f, 0.97f, 0.f } }

Referenced by gradingRGB_to_LMS(), and gradingRGB_to_LMS().

◆ LMS_2006_D65_to_XYZ_D65

const dt_colormatrix_t LMS_2006_D65_to_XYZ_D65
static
Initial value:
= { { 1.80794659f, -1.29971660f, 0.34785879f, 0.f },
{ 0.61783960f, 0.39595453f, -0.04104687f, 0.f },
{ -0.12546960f, 0.20478038f, 1.74274183f, 0.f } }

Referenced by filmic_v4_prepare_matrices(), LMS_to_XYZ(), and LMS_to_XYZ().

◆ LMS_D65_to_filmlightRGB_D65

const dt_colormatrix_t LMS_D65_to_filmlightRGB_D65
static
Initial value:
= { { 1.0877193f, -0.66666667f, 0.02061856f, 0.f },
{ -0.0877193f, 1.66666667f, -0.05154639f, 0.f },
{ 0.f, 0.f, 1.03092784f, 0.f } }

Referenced by LMS_to_gradingRGB(), and LMS_to_gradingRGB().

◆ sRGB_to_xyz_transposed

const dt_colormatrix_t sRGB_to_xyz_transposed
static
Initial value:
=
{ { 0.4360747f, 0.2225045f, 0.0139322f },
{ 0.3850649f, 0.7168786f, 0.0971045f },
{ 0.1430804f, 0.0606169f, 0.7141733f } }

Referenced by dt_linearRGB_to_XYZ().

◆ XYZ_D65_to_LMS_2006_D65

const dt_colormatrix_t XYZ_D65_to_LMS_2006_D65
static
Initial value:
= { { 0.257085f, 0.859943f, -0.031061f, 0.f },
{ -0.394427f, 1.175800f, 0.106423f, 0.f },
{ 0.064856f, -0.076250f, 0.559067f, 0.f } }

Referenced by filmic_v4_prepare_matrices(), process(), XYZ_to_LMS(), and XYZ_to_LMS().

◆ xyz_to_srgb_transposed

const dt_colormatrix_t xyz_to_srgb_transposed
static
Initial value:
=
{ { 3.1338561f, -0.9787684f, 0.0719453f },
{ -1.6168667f, 1.9161415f, -0.2289914f },
{ -0.4906146f, 0.0334540f, 1.4052427f } }

Referenced by dt_XYZ_to_linearRGB(), and dt_XYZ_to_Rec709_D65().