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

Go to the source code of this file.

Functions

static float4 matrix_dot (const float4 vector, const float4 matrix[3])
 
static float4 matrix_product (const float4 xyz, constant const float *const matrix)
 
static float3 matrix_dot_float4_rows (const float4 row0, const float4 row1, const float4 row2, const float3 xyz)
 
static float3 matrix_dot_float4 (const constant float4 *const matrix, const float3 xyz)
 
static float4 matrix_product_float4 (const float4 xyz, constant const float *const matrix)
 
static float4 Lab_2_LCH (float4 Lab)
 
static float4 LCH_2_Lab (float4 LCH)
 
static float4 lab_f (float4 x)
 
static float4 XYZ_to_Lab (float4 xyz)
 
static float4 lab_f_inv (float4 x)
 
static float4 Lab_to_XYZ (float4 Lab)
 
static float4 prophotorgb_to_XYZ (float4 rgb)
 
static float4 XYZ_to_prophotorgb (float4 XYZ)
 
static float4 Lab_to_prophotorgb (float4 Lab)
 
static float4 prophotorgb_to_Lab (float4 rgb)
 
static float4 RGB_2_HSL (const float4 RGB)
 
static float Hue_2_RGB (float v1, float v2, float vH)
 
static float4 HSL_2_RGB (const float4 HSL)
 
static float4 RGB_2_HSV (const float4 RGB)
 
static float4 HSV_2_RGB (const float4 HSV)
 
static float4 XYZ_to_sRGB (float4 XYZ)
 
static float4 sRGB_to_XYZ (float4 sRGB)
 
static float4 XYZ_to_JzAzBz (float4 XYZ_D65)
 
static float4 JzAzBz_2_XYZ (const float4 JzAzBz)
 
static float4 JzAzBz_to_JzCzhz (float4 JzAzBz)
 
static float4 XYZ_to_LMS (const float4 XYZ)
 
static float4 LMS_to_XYZ (const float4 LMS)
 
static float4 gradingRGB_to_LMS (const float4 RGB)
 
static float4 LMS_to_gradingRGB (const float4 LMS)
 
static float4 LMS_to_Yrg (const float4 LMS)
 
static float4 Yrg_to_LMS (const float4 Yrg)
 
static float4 Yrg_to_Ych (const float4 Yrg)
 
static float4 Ych_to_Yrg (const float4 Ych)
 
static float4 dt_xyY_to_uvY (const float4 xyY)
 
static float4 dt_uvY_to_xyY (const float4 uvY)
 
static float4 dt_XYZ_to_xyY (const float4 XYZ)
 
static float4 dt_xyY_to_XYZ (const float4 xyY)
 
static float4 convert_XYZ_to_bradford_LMS (const float4 XYZ)
 
static float4 convert_bradford_LMS_to_XYZ (const float4 LMS)
 
static float4 convert_XYZ_to_CAT16_LMS (const float4 XYZ)
 
static float4 convert_CAT16_LMS_to_XYZ (const float4 LMS)
 
static void bradford_adapt_D50 (float4 *lms_in, const float4 origin_illuminant, const float p, const int full)
 
static void CAT16_adapt_D50 (float4 *lms_in, const float4 origin_illuminant, const float D, const int full)
 
static void XYZ_adapt_D50 (float4 *lms_in, const float4 origin_illuminant)
 
static float4 gamut_check_Yrg (float4 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 float4 xyY, float UV_star_prime[2])
 
static float4 xyY_to_dt_UCS_JCH (const float4 xyY, const float L_white)
 
static float4 dt_UCS_JCH_to_xyY (const float4 JCH, const float L_white)
 
static float4 dt_UCS_JCH_to_HSB (const float4 JCH)
 
static float4 dt_UCS_HSB_to_JCH (const float4 HSB)
 
static float4 dt_UCS_JCH_to_HCB (const float4 JCH)
 
static float4 dt_UCS_HCB_to_JCH (const float4 HCB)
 

Function Documentation

◆ bradford_adapt_D50()

static void bradford_adapt_D50 ( float4 *  lms_in,
const float4  origin_illuminant,
const float  p,
const int  full 
)
inlinestatic

◆ CAT16_adapt_D50()

static void CAT16_adapt_D50 ( float4 *  lms_in,
const float4  origin_illuminant,
const float  D,
const int  full 
)
inlinestatic

◆ convert_bradford_LMS_to_XYZ()

static float4 convert_bradford_LMS_to_XYZ ( const float4  LMS)
inlinestatic

◆ convert_CAT16_LMS_to_XYZ()

static float4 convert_CAT16_LMS_to_XYZ ( const float4  LMS)
inlinestatic

References CAT16_LMS_to_XYZ, LMS, and matrix_dot().

Referenced by loop_switch(), and switch().

◆ convert_XYZ_to_bradford_LMS()

static float4 convert_XYZ_to_bradford_LMS ( const float4  XYZ)
inlinestatic

◆ convert_XYZ_to_CAT16_LMS()

static float4 convert_XYZ_to_CAT16_LMS ( const float4  XYZ)
inlinestatic

References matrix_dot(), XYZ, and XYZ_to_CAT16_LMS.

Referenced by loop_switch(), and switch().

◆ dt_UCS_HCB_to_JCH()

static float4 dt_UCS_HCB_to_JCH ( const float4  HCB)
inlinestatic

References HCB, and JCH.

◆ dt_UCS_HSB_to_JCH()

static float4 dt_UCS_HSB_to_JCH ( const float4  HSB)
inlinestatic

References HSB, and JCH.

◆ dt_UCS_JCH_to_HCB()

static float4 dt_UCS_JCH_to_HCB ( const float4  JCH)
inlinestatic

References HCB, and JCH.

◆ dt_UCS_JCH_to_HSB()

static float4 dt_UCS_JCH_to_HSB ( const float4  JCH)
inlinestatic

References HSB, and JCH.

◆ dt_UCS_JCH_to_xyY()

static float4 dt_UCS_JCH_to_xyY ( const float4  JCH,
const float  L_white 
)
inlinestatic

◆ dt_UCS_L_star_to_Y()

static float dt_UCS_L_star_to_Y ( const float  L_star)
inlinestatic

References L_star.

Referenced by dt_UCS_JCH_to_xyY().

◆ dt_uvY_to_xyY()

static float4 dt_uvY_to_xyY ( const float4  uvY)
inlinestatic

References uvY, and xyY.

◆ dt_xyY_to_uvY()

static float4 dt_xyY_to_uvY ( const float4  xyY)
inlinestatic

References uvY, and xyY.

◆ dt_xyY_to_XYZ()

static float4 dt_xyY_to_XYZ ( const float4  xyY)
inlinestatic

References xyY, and XYZ.

Referenced by _create_vectorscope_image(), and _process_vectorscope().

◆ dt_XYZ_to_xyY()

static float4 dt_XYZ_to_xyY ( const float4  XYZ)
inlinestatic

◆ gamut_check_Yrg()

static float4 gamut_check_Yrg ( float4  Ych)
inlinestatic

References Ych, Ych_to_Yrg(), and Yrg.

◆ gradingRGB_to_LMS()

static float4 gradingRGB_to_LMS ( const float4  RGB)
inlinestatic

References filmlightRGB_D65_to_LMS_D65, matrix_dot(), and RGB.

Referenced by Yrg_to_LMS().

◆ HSL_2_RGB()

static float4 HSL_2_RGB ( const float4  HSL)
inlinestatic

References B, H, HSL, Hue_2_RGB(), L, R, and S.

◆ HSV_2_RGB()

static float4 HSV_2_RGB ( const float4  HSV)
inlinestatic

References HSV, i, p, RGB, t, and v.

◆ Hue_2_RGB()

static float Hue_2_RGB ( float  v1,
float  v2,
float  vH 
)
inlinestatic

Referenced by HSL_2_RGB().

◆ JzAzBz_2_XYZ()

static float4 JzAzBz_2_XYZ ( const float4  JzAzBz)
inlinestatic

References AI, b, c1, c2, c3, d, d0, dot(), g, IzAzBz, JzAzBz, LMS, MI, n_inv, p_inv, XYZ, and XYZ_D65.

◆ JzAzBz_to_JzCzhz()

static float4 JzAzBz_to_JzCzhz ( float4  JzAzBz)
inlinestatic

References h, JzAzBz, JzCzhz, and M_PI_F.

◆ Lab_2_LCH()

static float4 Lab_2_LCH ( float4  Lab)
inlinestatic

References C, H, L, Lab, and M_PI_F.

◆ lab_f()

static float4 lab_f ( float4  x)
inlinestatic

References x.

Referenced by XYZ_to_Lab().

◆ lab_f_inv()

static float4 lab_f_inv ( float4  x)
inlinestatic

References x.

Referenced by Lab_to_XYZ().

◆ Lab_to_prophotorgb()

static float4 Lab_to_prophotorgb ( float4  Lab)
inlinestatic

◆ Lab_to_XYZ()

static float4 Lab_to_XYZ ( float4  Lab)
inlinestatic

References d50, f, Lab, and lab_f_inv().

Referenced by Lab_to_prophotorgb().

◆ LCH_2_Lab()

static float4 LCH_2_Lab ( float4  LCH)
inlinestatic

References a, b, L, LCH, and M_PI_F.

◆ LMS_to_gradingRGB()

static float4 LMS_to_gradingRGB ( const float4  LMS)
inlinestatic

References LMS, LMS_D65_to_filmlightRGB_D65, and matrix_dot().

Referenced by LMS_to_Yrg().

◆ LMS_to_XYZ()

static float4 LMS_to_XYZ ( const float4  LMS)
inlinestatic

◆ LMS_to_Yrg()

static float4 LMS_to_Yrg ( const float4  LMS)
inlinestatic

References a, LMS, lms, LMS_to_gradingRGB(), and rgb.

◆ matrix_dot()

static float4 matrix_dot ( const float4  vector,
const float4  matrix[3] 
)
inlinestatic

◆ matrix_dot_float4()

static float3 matrix_dot_float4 ( const constant float4 *const  matrix,
const float3  xyz 
)
inlinestatic

References matrix, and matrix_dot_float4_rows().

◆ matrix_dot_float4_rows()

static float3 matrix_dot_float4_rows ( const float4  row0,
const float4  row1,
const float4  row2,
const float3  xyz 
)
inlinestatic

References dot(), row0, row1, and row2.

Referenced by matrix_dot_float4(), and matrix_product_float4().

◆ matrix_product()

static float4 matrix_product ( const float4  xyz,
constant const float *const  matrix 
)
inlinestatic

References a, B, matrix, and R.

Referenced by rgb_matrix_to_xyz().

◆ matrix_product_float4()

static float4 matrix_product_float4 ( const float4  xyz,
constant const float *const  matrix 
)
inlinestatic

◆ prophotorgb_to_Lab()

static float4 prophotorgb_to_Lab ( float4  rgb)
inlinestatic

◆ prophotorgb_to_XYZ()

static float4 prophotorgb_to_XYZ ( float4  rgb)
inlinestatic

References rgb, and XYZ.

Referenced by prophotorgb_to_Lab().

◆ RGB_2_HSL()

static float4 RGB_2_HSL ( const float4  RGB)
inlinestatic

References B, H, L, R, RGB, and S.

◆ RGB_2_HSV()

static float4 RGB_2_HSV ( const float4  RGB)
inlinestatic

References delta, HSV, and RGB.

◆ sRGB_to_XYZ()

static float4 sRGB_to_XYZ ( float4  sRGB)
inlinestatic

References sRGB, and XYZ.

◆ xyY_to_dt_UCS_JCH()

static float4 xyY_to_dt_UCS_JCH ( const float4  xyY,
const float  L_white 
)
inlinestatic

◆ xyY_to_dt_UCS_UV()

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

◆ XYZ_adapt_D50()

static void XYZ_adapt_D50 ( float4 *  lms_in,
const float4  origin_illuminant 
)
inlinestatic

◆ XYZ_to_JzAzBz()

static float4 XYZ_to_JzAzBz ( float4  XYZ_D65)
inlinestatic

References A, dot(), M, and XYZ_D65.

◆ XYZ_to_Lab()

static float4 XYZ_to_Lab ( float4  xyz)
inlinestatic

References d50, and lab_f().

Referenced by prophotorgb_to_Lab().

◆ XYZ_to_LMS()

static float4 XYZ_to_LMS ( const float4  XYZ)
inlinestatic

◆ XYZ_to_prophotorgb()

static float4 XYZ_to_prophotorgb ( float4  XYZ)
inlinestatic

References rgb, and XYZ.

Referenced by Lab_to_prophotorgb().

◆ XYZ_to_sRGB()

static float4 XYZ_to_sRGB ( float4  XYZ)
inlinestatic

References sRGB, and XYZ.

◆ 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 process(), and xyY_to_dt_UCS_JCH().

◆ Ych_to_Yrg()

static float4 Ych_to_Yrg ( const float4  Ych)
inlinestatic

References c, g, h, r, and Ych.

Referenced by gamut_check_Yrg().

◆ Yrg_to_LMS()

static float4 Yrg_to_LMS ( const float4  Yrg)
inlinestatic

References a, b, denom, g, gradingRGB_to_LMS(), lms, r, rgb, and Yrg.

◆ Yrg_to_Ych()

static float4 Yrg_to_Ych ( const float4  Yrg)
inlinestatic

References c, g, h, r, and Yrg.