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 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, and matrix_dot().

Referenced by loop_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(), and XYZ_to_CAT16_LMS.

Referenced by loop_switch().

◆ dt_UCS_HCB_to_JCH()

static float4 dt_UCS_HCB_to_JCH ( const float4  HCB)
inlinestatic

Referenced by process().

◆ dt_UCS_HSB_to_JCH()

static float4 dt_UCS_HSB_to_JCH ( const float4  HSB)
inlinestatic

Referenced by process().

◆ dt_UCS_JCH_to_HCB()

static float4 dt_UCS_JCH_to_HCB ( const float4  JCH)
inlinestatic

Referenced by process().

◆ dt_UCS_JCH_to_HSB()

static float4 dt_UCS_JCH_to_HSB ( const float4  JCH)
inlinestatic

Referenced by process().

◆ dt_UCS_JCH_to_xyY()

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

References dt_UCS_L_star_to_Y().

Referenced by process().

◆ 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 float4 dt_uvY_to_xyY ( const float4  uvY)
inlinestatic

Referenced by gamut_mapping().

◆ dt_xyY_to_uvY()

static float4 dt_xyY_to_uvY ( const float4  xyY)
inlinestatic

Referenced by gamut_mapping().

◆ dt_xyY_to_XYZ()

static float4 dt_xyY_to_XYZ ( const float4  xyY)
inlinestatic

◆ 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_to_Yrg().

Referenced by gamut_mapping(), and process().

◆ gradingRGB_to_LMS()

static float4 gradingRGB_to_LMS ( const float4  RGB)
inlinestatic

References filmlightRGB_D65_to_LMS_D65, and matrix_dot().

Referenced by process(), and Yrg_to_LMS().

◆ HSL_2_RGB()

static float4 HSL_2_RGB ( const float4  HSL)
inlinestatic

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

◆ HSV_2_RGB()

static float4 HSV_2_RGB ( const float4  HSV)
inlinestatic

◆ 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 c1, c2, and dot().

◆ JzAzBz_to_JzCzhz()

static float4 JzAzBz_to_JzCzhz ( float4  JzAzBz)
inlinestatic

References M_PI_F.

◆ Lab_2_LCH()

static float4 Lab_2_LCH ( float4  Lab)
inlinestatic

References H, Lab(), and M_PI_F.

◆ lab_f()

static float4 lab_f ( float4  x)
inlinestatic

Referenced by XYZ_to_Lab().

◆ lab_f_inv()

static float4 lab_f_inv ( float4  x)
inlinestatic

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 M_PI_F.

◆ LMS_to_gradingRGB()

static float4 LMS_to_gradingRGB ( const float4  LMS)
inlinestatic

References LMS_D65_to_filmlightRGB_D65, and matrix_dot().

Referenced by LMS_to_Yrg(), and process().

◆ LMS_to_XYZ()

static float4 LMS_to_XYZ ( const float4  LMS)
inlinestatic

References LMS_2006_D65_to_XYZ_D65, and matrix_dot().

Referenced by process().

◆ LMS_to_Yrg()

static float4 LMS_to_Yrg ( const float4  LMS)
inlinestatic

References LMS_to_gradingRGB().

Referenced by pipe_RGB_to_Ych(), and process().

◆ matrix_dot()

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

◆ matrix_product()

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

References B, 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

References B, and R.

◆ prophotorgb_to_Lab()

static float4 prophotorgb_to_Lab ( float4  rgb)
inlinestatic

◆ prophotorgb_to_XYZ()

static float4 prophotorgb_to_XYZ ( float4  rgb)
inlinestatic

Referenced by prophotorgb_to_Lab().

◆ RGB_2_HSL()

static float4 RGB_2_HSL ( const float4  RGB)
inlinestatic

References B, H, R, and S.

◆ RGB_2_HSV()

static float4 RGB_2_HSV ( const float4  RGB)
inlinestatic

◆ sRGB_to_XYZ()

static float4 sRGB_to_XYZ ( float4  sRGB)
inlinestatic

◆ xyY_to_dt_UCS_JCH()

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

References xyY_to_dt_UCS_UV(), and Y_to_dt_UCS_L_star().

Referenced by process().

◆ xyY_to_dt_UCS_UV()

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

Referenced by commit_params(), and xyY_to_dt_UCS_JCH().

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

◆ 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

Referenced by Lab_to_prophotorgb().

◆ XYZ_to_sRGB()

static float4 XYZ_to_sRGB ( float4  XYZ)
inlinestatic

◆ 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

◆ Yrg_to_LMS()

static float4 Yrg_to_LMS ( const float4  Yrg)
inlinestatic

References gradingRGB_to_LMS().

Referenced by process(), and Ych_to_pipe_RGB().

◆ Yrg_to_Ych()

static float4 Yrg_to_Ych ( const float4  Yrg)
inlinestatic

Referenced by pipe_RGB_to_Ych(), and process().