![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
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 |
|
inlinestatic |
Referenced by dt_HSL_2_RGB(), and dt_HSV_2_RGB().
|
inlinestatic |
Referenced by dt_RGB_2_HCV(), dt_RGB_2_HSL(), and dt_RGB_2_HSV().
|
inlinestatic |
Referenced by dt_Luv_to_xyY(), and dt_xyY_to_Luv().
|
inlinestatic |
|
inlinestatic |
References for_each_channel.
Referenced by _create_vectorscope_image(), _process_vectorscope(), _transform_lab_to_rgb_matrix(), _transform_matrix_rgb(), _transform_rgb_to_lab_matrix(), dt_ioppr_lab_to_rgb_matrix(), dt_ioppr_rgb_matrix_to_xyz(), dt_linearRGB_to_XYZ(), dt_prophotorgb_to_XYZ(), dt_Rec709_to_XYZ_D50(), dt_XYZ_to_linearRGB(), dt_XYZ_to_prophotorgb(), dt_XYZ_to_Rec709_D50(), dt_XYZ_to_Rec709_D65(), process(), process_cmatrix_bm(), process_cmatrix_fastpath_clipping(), process_cmatrix_fastpath_simple(), and process_cmatrix_proper().
|
inlinestatic |
|
inlinestatic |
References _dt_Hue_2_RGB(), HSL, and m.
Referenced by _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), _blend_lightness(), and _channel_display_false_color().
|
inlinestatic |
References _dt_Hue_2_RGB(), and m.
Referenced by _blend_HSV_color(), and _blend_HSV_value().
|
inlinestatic |
References DT_M_PI_F.
Referenced by _blendif_jzczhz(), _rgb_to_JzCzhz(), and rgb_to_JzCzhz().
|
inlinestatic |
Referenced by _channel_display_false_color(), and process().
|
inlinestatic |
References DT_M_PI_F.
Referenced by _channel_display_false_color().
|
inlinestatic |
References DT_M_PI_F, and Lab().
Referenced by _auto_set_exposure(), _auto_set_illuminant(), _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), _blendif_lch(), _color_picker_lch(), _display_channel(), _draw_color_picker(), _sample_tooltip_callback(), _select_base_display_color(), _update_sample_label(), process_display(), and process_v1().
|
inlinestatic |
References dt_Lab_to_XYZ(), dt_XYZ_to_prophotorgb(), and Lab().
Referenced by commit_params(), process(), and process_data().
|
inlinestatic |
uses D50 white point.
References d50, f(), for_each_channel, Lab(), and lab_f_inv().
Referenced by _auto_set_exposure(), _auto_set_illuminant(), _channel_display_false_color(), _colormanage_ui_color(), _extract_patches(), _paint_hue(), _target_color_draw(), _transform_lab_to_rgb_matrix(), apply_auto_black(), apply_auto_grey(), apply_auto_white_point_source(), apply_autocolor(), apply_autogrey(), apply_autoluma(), apply_autotune(), apply_gain_auto(), apply_gain_neutralize(), apply_gamma_auto(), apply_gamma_neutralize(), apply_lift_auto(), apply_lift_neutralize(), checker_draw(), checker_set_color(), color_picker_apply(), commit_params(), detail_enhance(), dt_ioppr_lab_to_rgb_matrix(), dt_Lab_to_prophotorgb(), extract_color_checker(), get_skin_tones_range(), image_lab2rgb(), image_lab_to_xyz(), paint_hue(), process(), process(), process(), rt_adjust_levels(), and target_color_draw().
|
inlinestatic |
References DT_M_PI_F, and Lab().
Referenced by _auto_set_exposure(), _auto_set_illuminant(), _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), _channel_display_false_color(), _paint_hue(), _target_color_draw(), Lch_to_color_name(), paint_hue(), process_v1(), and target_color_draw().
|
inlinestatic |
Referenced by _process_vectorscope(), and dt_Lch_to_xyY().
|
inlinestatic |
References dt_Lch_to_Luv(), and dt_Luv_to_xyY().
Referenced by illum_xy_callback(), and update_xy_color().
|
inlinestatic |
References dt_apply_transposed_color_matrix(), and sRGB_to_xyz_transposed.
Referenced by image_rgb2lab(), rt_adjust_levels(), and rt_process_stats().
|
inlinestatic |
References M_PI.
Referenced by _process_vectorscope(), and dt_xyY_to_Lch().
|
inlinestatic |
References cbf(), DT_ALIGNED_PIXEL, and dt_uvY_to_xyY().
Referenced by _create_vectorscope_image(), _process_vectorscope(), and dt_Lch_to_xyY().
|
inlinestatic |
References dt_prophotorgb_to_XYZ(), dt_XYZ_to_Lab(), and Lab().
Referenced by commit_params(), process(), process(), and process_data().
|
inlinestatic |
References dt_apply_transposed_color_matrix().
Referenced by apply_autocolor(), apply_autogrey(), commit_params(), dt_prophotorgb_to_Lab(), process(), and process().
|
inlinestatic |
References dt_apply_transposed_color_matrix().
Referenced by dt_develop_blendif_lab_blend(), and dt_sRGB_to_XYZ().
|
inlinestatic |
References _dt_RGB_2_Hue(), and H.
|
inlinestatic |
References _dt_RGB_2_Hue(), H, HSL, and S.
Referenced by _blend_chromaticity(), _blend_color(), _blend_coloradjust(), _blend_hue(), _blend_lightness(), _blendif_hsl(), _color_picker_hsl(), _display_channel(), and _update_sample_label().
|
inlinestatic |
References _dt_RGB_2_Hue(), H, and S.
Referenced by _blend_HSV_color(), _blend_HSV_value(), and _update_sample_label().
|
inlinestatic |
Referenced by dt_sRGB_to_XYZ().
|
inlinestatic |
References dt_Rec709_to_XYZ_D50(), and dt_sRGB_to_linear_sRGB().
Referenced by _select_base_display_color(), and process().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
References dt_UCS_L_star_to_Y(), and for_each_channel.
|
inlinestatic |
Referenced by dt_UCS_JCH_to_xyY().
|
inlinestatic |
Referenced by dt_Luv_to_xyY().
|
inlinestatic |
References dt_Luv_to_Lch(), and dt_xyY_to_Luv().
Referenced by _auto_set_illuminant(), _develop_ui_pipe_finished_callback(), commit_profile_callback(), get_skin_tones_range(), gui_changed(), reload_defaults(), and update_xy_color().
|
inlinestatic |
References cbf(), DT_ALIGNED_PIXEL, and dt_xyY_to_uvY().
Referenced by _bin_pixels_vectorscope_in_roi(), _process_vectorscope(), and dt_xyY_to_Lch().
|
inlinestatic |
Referenced by dt_xyY_to_Luv().
|
inlinestatic |
|
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().
|
inlinestatic |
References for_each_channel.
Referenced by rgb_to_JzCzhz().
|
inlinestatic |
References for_each_channel.
|
inlinestatic |
References d50, f(), for_each_channel, Lab(), and lab_f().
Referenced by _auto_set_exposure(), _auto_set_illuminant(), _pixelpipe_pick_from_image(), _select_base_display_color(), _transform_rgb_to_lab_matrix(), commit_params(), compute_patches_delta_E(), detail_enhance(), dt_develop_blendif_lab_blend(), dt_ioppr_rgb_matrix_to_lab(), dt_prophotorgb_to_Lab(), get_Lab_from_box(), hue_conversion(), image_rgb2lab(), process(), process(), process_cmatrix_bm(), process_cmatrix_fastpath_clipping(), process_cmatrix_fastpath_simple(), process_cmatrix_proper(), rt_adjust_levels(), and rt_process_stats().
|
inlinestatic |
References dt_apply_transposed_color_matrix(), and xyz_to_srgb_transposed.
Referenced by image_lab2rgb(), and rt_adjust_levels().
|
inlinestatic |
|
inlinestatic |
Uses D50
References dt_apply_transposed_color_matrix().
Referenced by _XYZ_to_REC_709_normalized(), dt_XYZ_to_sRGB(), and illuminant_xy_to_RGB().
|
inlinestatic |
Uses D65
References dt_apply_transposed_color_matrix(), and xyz_to_srgb_transposed.
Referenced by _channel_display_false_color(), _convert_GUI_colors(), color_temptint_sliders(), convert_any_LMS_to_RGB(), gui_init(), and paint_chroma_slider().
|
inlinestatic |
uses D50 white point.
References dt_XYZ_to_Rec709_D50().
Referenced by _auto_set_exposure(), _auto_set_illuminant(), _paint_hue(), _target_color_draw(), checker_draw(), color_picker_apply(), dt_XYZ_to_sRGB_clipped(), paint_hue(), process(), and target_color_draw().
|
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().
|
inlinestatic |
|
inlinestatic |
References Ych_to_Yrg().
|
inlinestatic |
References dot_product(), and filmlightRGB_D65_to_LMS_D65.
Referenced by gradingRGB_to_Ych(), and Yrg_to_LMS().
|
inlinestatic |
References gradingRGB_to_LMS(), LMS_to_Yrg(), and Yrg_to_Ych().
|
inlinestatic |
References cbrt_5f(), and cbrta_halleyf().
Referenced by dt_XYZ_to_Lab().
|
inlinestatic |
Referenced by dt_Lab_to_XYZ().
|
inlinestatic |
References dot_product(), and LMS_D65_to_filmlightRGB_D65.
Referenced by LMS_to_Yrg(), and Ych_to_gradingRGB().
|
inlinestatic |
References dot_product(), and LMS_2006_D65_to_XYZ_D65.
Referenced by Ych_to_XYZ().
|
inlinestatic |
References for_four_channels, and LMS_to_gradingRGB().
Referenced by gradingRGB_to_Ych(), and XYZ_to_Ych().
|
inlinestatic |
References xyY_to_dt_UCS_UV(), and Y_to_dt_UCS_L_star().
|
inlinestatic |
References for_each_channel.
Referenced by xyY_to_dt_UCS_JCH().
|
inlinestatic |
References dot_product(), and XYZ_D65_to_LMS_2006_D65.
Referenced by XYZ_to_Ych().
|
inlinestatic |
References LMS_to_Yrg(), XYZ_to_LMS(), and Yrg_to_Ych().
Referenced by pipe_RGB_to_Ych().
|
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().
|
inlinestatic |
References LMS_to_gradingRGB(), Ych_to_Yrg(), and Yrg_to_LMS().
Referenced by commit_params().
|
inlinestatic |
References LMS_to_XYZ(), Ych_to_Yrg(), and Yrg_to_LMS().
Referenced by gui_init(), and paint_chroma_slider().
|
inlinestatic |
Referenced by gamut_check_Yrg(), Ych_to_gradingRGB(), and Ych_to_XYZ().
|
inlinestatic |
References for_four_channels, and gradingRGB_to_LMS().
Referenced by Ych_to_gradingRGB(), and Ych_to_XYZ().
|
inlinestatic |
Referenced by gradingRGB_to_Ych(), and XYZ_to_Ych().
uses D50 white point.
Referenced by dt_Lab_to_XYZ(), dt_XYZ_to_Lab(), Lab_to_XYZ(), and XYZ_to_Lab().
|
static |
Referenced by gradingRGB_to_LMS(), and gradingRGB_to_LMS().
|
static |
Referenced by filmic_v4_prepare_matrices(), LMS_to_XYZ(), and LMS_to_XYZ().
|
static |
Referenced by LMS_to_gradingRGB(), and LMS_to_gradingRGB().
|
static |
Referenced by dt_linearRGB_to_XYZ().
|
static |
Referenced by filmic_v4_prepare_matrices(), process(), XYZ_to_LMS(), and XYZ_to_LMS().
|
static |
Referenced by dt_XYZ_to_linearRGB(), and dt_XYZ_to_Rec709_D65().