![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <assert.h>#include <math.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <time.h>#include "common/darktable.h"#include "develop/imageop_math.h"
Include dependency graph for luminance_mask.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | MIN_FLOAT exp2f(-16.0f) |
| #define | LOOP(fn) |
Typedefs | |
| typedef enum dt_iop_luminance_mask_method_t | dt_iop_luminance_mask_method_t |
Enumerations | |
| enum | dt_iop_luminance_mask_method_t { DT_TONEEQ_MEAN = 0 , DT_TONEEQ_LIGHTNESS , DT_TONEEQ_VALUE , DT_TONEEQ_NORM_1 , DT_TONEEQ_NORM_2 , DT_TONEEQ_NORM_POWER , DT_TONEEQ_GEOMEAN , DT_TONEEQ_LAST } |
Functions | |
| static float | linear_contrast (const float pixel, const float fulcrum, const float contrast) |
| __OMP_DECLARE_SIMD__ (aligned(image, luminance:64) uniform(image, luminance)) static void pixel_rgb_mean(const float *const restrict image | |
| __OMP_SIMD__ (reduction(+:lum) aligned(image:64)) for(int c=0 | |
Variables | |
| float *const restrict | luminance |
| float *const restrict const size_t | k |
| float *const restrict const size_t const size_t | ch |
| float *const restrict const size_t const size_t const float | exposure_boost |
| float *const restrict const size_t const size_t const float const float | fulcrum |
| float *const restrict const size_t const size_t const float const float const float | contrast_boost |
| #define LOOP | ( | fn | ) |
| #define MIN_FLOAT exp2f(-16.0f) |
Definition at line 34 of file luminance_mask.h.
| Enumerator | |
|---|---|
| DT_TONEEQ_MEAN | |
| DT_TONEEQ_LIGHTNESS | |
| DT_TONEEQ_VALUE | |
| DT_TONEEQ_NORM_1 | |
| DT_TONEEQ_NORM_2 | |
| DT_TONEEQ_NORM_POWER | |
| DT_TONEEQ_GEOMEAN | |
| DT_TONEEQ_LAST | |
Definition at line 37 of file luminance_mask.h.
| __OMP_DECLARE_SIMD__ | ( | aligned(image, luminance:64) uniform(image, luminance) | ) | const |
|
pure virtual |
|
static |
DOCUMENTATION
Lightness map computation
Flatten an RGB image into a lightness/luminance map (grey image) using several vector norms, and other pseudo-norms.
These functions are all written to be vectorizable, using the base image pointer and the explicit index of the current pixel. They perform exposure and contrast compensation as well, for better cache handling.
Buffers need to be 64-bits aligned.
The outputs are clipped to avoid negative and close-to-zero results that could backfire in the exposure computations.
Definition at line 68 of file luminance_mask.h.
| float* const restrict const size_t const size_t ch |
Definition at line 78 of file luminance_mask.h.
Referenced by __attribute__(), _add_node_from_picker(), _apply_mix(), _apply_tonecurves(), _area_button_press_callback(), _area_button_press_callback(), _area_draw_callback(), _area_draw_callback(), _area_draw_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _auto_levels(), _blendif_clean_output_channels(), _blendop_blendif_boost_factor_callback(), _blendop_blendif_polarity_callback(), _blendop_blendif_sliders_callback(), _blendop_blendif_sliders_reset_callback(), _blendop_blendif_update_tab(), _create_tooltip_text(), _develop_blend_process_feather(), _dt_focus_cdf22_wtf(), _generate_curve_lut(), _get_auto_exp_histogram(), _init_default_curves(), _iop_clipping_set_max_clip(), _lens_fill_vignette_row(), _move_point_internal(), _move_point_internal(), _move_point_internal(), _move_point_internal(), _process(), _reset_nodes(), _reset_parameters(), _retouch_blur_cl(), _retouch_clone_cl(), _retouch_heal_cl(), _sanitize_requested_layer_name(), _sanitize_requested_layer_name(), _scrolled(), _transform_lab_to_rgb_matrix(), _transform_matrix_rgb(), _transform_rgb_to_lab_matrix(), _update_curve_cache(), _update_sample_label(), apply_global_distortion_map(), apply_toneequalizer(), area_draw(), area_motion_notify(), auto_detect_WB(), build_channel_basecurve(), cleanup_pipe(), color_picker_apply(), color_temptint_sliders(), commit_params(), commit_params(), compute_luminance_mask(), conv_num(), denoiseprofile_button_press(), denoiseprofile_draw(), display_luminance_mask(), dt_box_max(), dt_box_mean(), dt_box_mean_horizontal(), dt_box_mean_vertical(), dt_box_min(), dt_develop_blend_get_mask_usage(), dt_develop_blend_process(), dt_develop_blend_process_cl(), dt_dwt_init(), dt_gaussian_blur(), dt_heal(), dt_heal_cl(), dt_imageio_flip_buffers_ui8_to_float(), dt_iop_basecurve_button_press(), dt_iop_basecurve_motion_notify(), dt_iop_basecurve_sanity_check(), dt_iop_colorzones_get_params(), dt_iop_copy_image_roi(), dt_iop_denoiseprofile_get_params(), dt_iop_equalizer_iwtf(), dt_iop_equalizer_wtf(), dt_iop_gui_update_blendif(), dt_iop_image_add_const(), dt_iop_image_add_image(), dt_iop_image_alloc(), dt_iop_image_copy_by_size(), dt_iop_image_div_const(), dt_iop_image_fill(), dt_iop_image_invert(), dt_iop_image_linear_blend(), dt_iop_image_mul_const(), dt_iop_image_scaled_copy(), dt_iop_image_sub_image(), dt_iop_rawdenoise_get_params(), dt_iop_tonecurve_button_press(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_key_press(), dt_iop_tonecurve_motion_notify(), dt_iop_tonecurve_sanity_check(), dt_ioppr_transform_image_colorspace_cl(), dt_ioppr_transform_image_colorspace_rgb_cl(), dt_lightroom_import(), filmic_chroma_v2_v3(), filmic_chroma_v4(), filmic_split_v4(), filmic_v5(), gauss_reduce(), gauss_reduce(), get_params(), gui_changed(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_post_expose(), guided_filter(), guided_filter_cl(), guided_filter_cl_fallback(), image_lab2rgb(), image_rgb2lab(), init(), init_pipe(), interpolate_bilinear(), legacy_params(), main(), mask_clipped_pixels(), passthrough_color(), pixelpipe_process_on_CPU(), process(), process(), process(), process(), process(), process(), process(), process(), process_cl(), process_cl(), process_clip(), process_clusters(), process_cmatrix_bm(), process_common_cleanup(), process_common_setup(), process_display(), process_drago(), process_filmic(), process_gray(), process_hsl_v1(), process_hsl_v2(), process_lcms2_bm(), process_lcms2_proper(), process_reinhard(), process_rgb(), process_v1(), process_v3(), process_wavelets_cl(), rawdenoise_button_press(), rawdenoise_draw(), reconstruct_highlights(), rt_adjust_levels(), rt_adjust_levels_cl(), rt_copy_in_to_out(), rt_copy_mask_to_alpha(), rt_process_stats(), rt_process_stats_cl(), set_storage_by_name(), thinplate_match(), to_lin(), to_log(), wavelets_reconstruct_ratios(), and wavelets_reconstruct_RGB().
| float* const restrict const size_t const size_t const float const float const float contrast_boost |
Definition at line 80 of file luminance_mask.h.
Referenced by legacy_params().
| float* const restrict const size_t const size_t const float exposure_boost |
Definition at line 79 of file luminance_mask.h.
Referenced by legacy_params().
| float* const restrict const size_t const size_t const float const float fulcrum |
Definition at line 80 of file luminance_mask.h.
Referenced by linear_contrast().
| float* const restrict const size_t k |
Definition at line 78 of file luminance_mask.h.
Referenced by __attribute__(), __OMP_DECLARE_SIMD__(), __OMP_DECLARE_SIMD__(), __OMP_DECLARE_SIMD__(), _add_node(), _add_node(), _add_node(), _add_node(), _add_node(), _apply_mix(), _apply_mono_grain_kernel(), _apply_preferences(), _apply_tonecurves(), _area_button_press_callback(), _area_button_press_callback(), _area_button_press_callback(), _area_draw_callback(), _area_draw_callback(), _area_draw_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _bin_pixels_waveform(), _bin_vectorscope(), _blendop_blendif_sliders_callback(), _blendop_blendif_update_tab(), _brush_events_button_pressed(), _brush_events_post_expose(), _brush_get_pts_border(), _build_layer_kernel_bank(), _call_shortcut_cclosure(), _clamp_display_rgb_array_simd(), _clamp_float_to_uint8(), _color_picker_convert_buffer(), _color_picker_direct_hsl(), _color_picker_direct_lch_or_jzczhz(), _color_picker_hsl(), _color_picker_jzczhz(), _color_picker_lch(), _color_picker_rgb_or_lab(), _colorchecker_rebuild_patch_list(), _compute_correction(), _create_crystal_kernel(), _create_pdf(), _create_tooltip_text(), _create_waveform_image(), _delete_node(), _detect_printers_callback(), _develop_blend_process_mask_tone_curve(), _distort_paths(), _downsample_bayer_half_size(), _draw_axes(), _draw_color_picker(), _draw_cube(), _draw_curve(), _draw_graph_background(), _draw_paths(), _draw_samples(), _dt_style_update_from_image(), _edit_preset_response(), _ellipse_events_mouse_moved(), _ellipse_get_distance(), _exif_import_tags(), _export_final_buffer_to_uint16(), _extract_luminance_kernel(), _extract_patches(), _extract_rgb_kernels(), _fill_current_layer(), _finalize_color_grain_kernel(), _find_max_histogram(), _find_selected_node(), _float_to_fract(), _float_to_fract(), _generate_curve_lut(), _get_active_marker_internal(), _get_selected_area(), _get_selected_area(), _gradient_get_points(), _gradient_get_pts_border(), _gradient_slider_button_press(), _gradient_slider_draw(), _gradient_slider_set_defaults(), _gtk_log_writer_filter(), _gui_set_single_expanded(), _gui_styles_update_view(), _handle_xpath(), _hit_paths(), _image_distance_transform(), _import_get_thumbnail(), _init_8(), _init_drawing(), _init_unbounded_coeffs(), _interpolate_and_mask(), _interpolate_and_mask_xtrans(), _iop_tooltip_callback(), _iop_zonesystem_calculate_zonemap(), _iop_zonesystem_zone_index_from_lightness(), _is_identity(), _lens_fill_vignette_row(), _lib_snapshots_add_button_clicked_callback(), _lib_snapshots_toggled_callback(), _masks_blur_13x13_coeff(), _masks_blur_5x5_coeff(), _metadata_view_update_values(), _page_delete_area(), _picker_max_chroma_for_m_hue(), _pixelpipe_pick_from_image(), _polygon_crop_to_roi(), _polygon_find_self_intersection(), _polygon_get_mask(), _polygon_get_mask_roi(), _prerender_job(), _presets_show_edit_dialog(), _print_button_clicked(), _print_job_run(), _print_nan_debug(), _print_setup_initial_image(), _process(), _process_histogram(), _process_vectorscope(), _record_point_area(), _reset_channel_nodes(), _reset_nodes(), _rule_get_item(), _rule_get_mode(), _rule_get_string(), _rule_set_item(), _rule_set_mode(), _rule_set_string(), _sample_picker_buffer(), _sample_picker_from_cache(), _sample_raw_segment_cubic_arclen(), _select_base_display_color(), _shortcut_search_save_recent_entry(), _show_drawlayer_wait_dialog(), _simplex(), _slider_move(), _swap_byteorder_float_to_uint8(), _table_to_list(), _trace_buffer_content(), _uint8_to_float(), _update_curve_cache(), _update_recentcollections(), apply_auto_Dmin(), apply_correction(), apply_curve(), apply_global_distortion_map_cl(), apply_legacy_curve(), apply_linear_blending(), apply_linear_blending_w_geomean(), apply_toneequalizer(), area_button_press(), area_draw(), area_draw(), area_motion_notify(), autoset(), backtransform_Y0U0V0(), blur_line(), blur_line(), blur_line_z(), build_gui_kernel(), build_mask(), calculate_clut_3dl(), capture_histogram(), choleski_decompose_fast(), choleski_decompose_safe(), cleanup(), color_picker_apply(), color_picker_helper_4ch_converted_parallel(), color_picker_helper_4ch_parallel(), color_picker_helper_bayer_parallel(), color_picker_helper_bayer_seq(), color_picker_helper_xtrans_parallel(), color_picker_helper_xtrans_seq(), commit_params(), commit_params(), commit_params(), commit_params(), compute_curve_lut(), compute_log_histogram_and_stats(), compute_lut_correction(), compute_patches_delta_E(), compute_ratios(), copy_pixel(), create_lens_kernel(), crop_fitness(), decompress_plain(), denoiseprofile_button_press(), denoiseprofile_draw(), display_mask(), dsvd(), dt_apply_printer_profile(), dt_bauhaus_draw_baseline(), dt_bauhaus_popup_draw(), dt_bauhaus_slider_set_stop(), dt_bilateral_splat(), dt_collection_deserialize(), dt_collection_serialize(), dt_color_checker_get_patch_by_name(), dt_colorchecker_find_builtin(), dt_colormatrix_mul(), dt_colorrings_curve_periodic_sample(), dt_colorrings_eval_local_field(), dt_colorrings_eval_sparse_local_field(), dt_colorspaces_conversion_matrices_rgb(), dt_colorspaces_create_alternate_profile(), dt_colorspaces_create_darktable_profile(), dt_colorspaces_create_vendor_profile(), dt_colorspaces_create_xyzmatrix_profile(), dt_colorspaces_cygm_to_rgb(), dt_colorspaces_get_matrix_from_profile(), dt_colorspaces_pseudoinverse(), dt_colorspaces_rgb_to_cygm(), dt_control_add_job(), dt_control_flush_jobs_queue(), dt_control_jobs_init(), dt_control_merge_hdr_job_run(), dt_control_merge_hdr_process(), dt_control_shutdown(), dt_control_signal_init(), dt_database_backup(), dt_dev_pixelpipe_cache_invalidate_hashes(), dt_dev_pixelpipe_cleanup(), dt_dev_pixelpipe_process(), dt_develop_blend_params_is_all_zero(), dt_dlopencl_init(), dt_draw_curve_smaple_values(), dt_draw_grid(), dt_draw_grid_zoomed(), dt_draw_histogram_8_linxliny(), dt_draw_histogram_8_linxlogy(), dt_draw_histogram_8_logxliny(), dt_draw_histogram_8_logxlogy(), dt_draw_histogram_8_zoomed(), dt_draw_horizontal_lines(), dt_draw_loglog_grid(), dt_draw_semilog_x_grid(), dt_draw_semilog_y_grid(), dt_draw_star(), dt_draw_vertical_lines(), dt_fast_mexp2f(), dt_focus_create_clusters(), dt_focus_draw_clusters(), dt_gaussian_blur(), dt_gaussian_blur_cl(), dt_gaussian_init(), dt_gaussian_init_cl(), dt_get_help_url(), dt_get_media_type(), dt_get_papers(), dt_histogram_helper(), dt_histogram_max_helper(), dt_histogram_worker(), dt_image_init(), dt_imageio_dng_write_tiff_header(), dt_imageio_export_with_flags(), dt_imageio_flip_buffers_ui8_to_float(), dt_imageio_jpeg_compress(), dt_imageio_jpeg_write_with_icc_profile(), dt_imageio_open_j2k(), dt_imageio_open_png(), dt_imageio_open_rawspeed(), dt_imageio_open_rawspeed_sraw(), dt_imageio_write_dng(), dt_init(), dt_interpolation_resample_cl(), dt_iop_basecurve_button_press(), dt_iop_basecurve_draw(), dt_iop_basecurve_motion_notify(), dt_iop_basecurve_sanity_check(), dt_iop_channelmixer_shared_mul3x3(), dt_iop_clip_and_zoom_8(), dt_iop_colorzones_get_params(), dt_iop_denoiseprofile_get_params(), dt_iop_estimate_exp(), dt_iop_flip_and_zoom_8(), dt_iop_gui_init_blendif(), dt_iop_image_add_const(), dt_iop_image_add_image(), dt_iop_image_copy(), dt_iop_image_div_const(), dt_iop_image_fill(), dt_iop_image_invert(), dt_iop_image_linear_blend(), dt_iop_image_mul_const(), dt_iop_image_scaled_copy(), dt_iop_image_sub_image(), dt_iop_levels_area_draw(), dt_iop_levels_compute_levels_automatic(), dt_iop_levels_compute_levels_manual(), dt_iop_levels_motion_notify(), dt_iop_load_module_by_so(), dt_iop_lowlight_get_params(), dt_iop_rawdenoise_get_params(), dt_iop_tonecurve_button_press(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_motion_notify(), dt_iop_tonecurve_sanity_check(), dt_iop_zonesystem_bar_button_press(), dt_iop_zonesystem_bar_draw(), dt_iop_zonesystem_preview_draw(), dt_ioppr_get_iop_order_list_kind(), dt_ioppr_update_for_entries(), dt_lib_colorpicker_set_box_area(), dt_lightroom_import(), dt_local_laplacian_cl(), dt_local_laplacian_free_cl(), dt_local_laplacian_init_cl(), dt_lut3d_pyramid_interp(), dt_lut3d_tetrahedral_interp(), dt_lut3d_trilinear_interp(), dt_masks_blur_9x9_coeff(), dt_masks_create_menu(), dt_mimap_cache_evict(), dt_mipmap_cache_get_fitting_size(), dt_mipmap_cache_get_matching_size(), dt_mipmap_cache_init(), dt_mipmap_cache_remove(), dt_noiseprofile_get_matching(), dt_noiseprofile_interpolate(), dt_noiseprofile_verify(), dt_opencl_cleanup_device(), dt_opencl_create_kernel(), dt_opencl_device_init(), dt_opencl_events_flush(), dt_opencl_events_profiling(), dt_opencl_events_reset(), dt_opencl_init(), dt_points_init(), dt_print_file(), dt_printing_clear_boxes(), dt_printing_get_image_box(), dt_printing_setup_display(), dt_printing_setup_page(), dt_simd_memcpy(), dt_ui_panel_show(), dt_ui_restore_panels(), dtgtk_cairo_paint_modulegroup_favorites(), dtgtk_gradient_slider_multivalue_get_values(), dtgtk_gradient_slider_multivalue_set_markers(), dtgtk_gradient_slider_multivalue_set_resetvalues(), dtgtk_gradient_slider_multivalue_set_scale_callback(), dtgtk_gradient_slider_multivalue_set_values(), easter(), eaw_synthesize(), edge_enhance(), edge_enhance_1d(), eigf_blending(), eigf_blending_no_mask(), eigf_variance_analysis(), eigf_variance_analysis_no_mask(), encode_colorchecker(), encode_tonecurve(), enter(), expose(), extract_color_checker(), fast_mexp2f(), filmic_chroma_v1(), filmic_chroma_v2_v3(), filmic_chroma_v4(), filmic_split_v1(), filmic_split_v2_v3(), filmic_split_v4(), filmic_v5(), finalize_store(), find_coeffs(), find_hovered(), find_temperature_from_raw_coeffs(), fit_curve(), gauss_make_triangular(), gauss_reduce(), gauss_solve_triangular(), generate_thumbnail_cache(), get_cluster(), get_clusters(), get_corner(), get_corner(), get_corner(), get_error(), get_interpolate(), get_manifolds(), get_params(), get_params(), get_scales(), get_skin_tones_range(), get_white_balance_coeff(), green_equilibration_cl(), gui_changed(), gui_cleanup(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_init(), gui_post_expose(), gui_post_expose(), gui_reset(), gui_reset(), gui_update(), gui_update_from_coeffs(), guided_filter_tiling(), heat_PDE_diffusion(), heat_PDE_diffusion(), init(), init(), init_global(), init_kernel(), init_pipe(), init_presets(), init_reconstruct(), init_reconstruct(), init_tab_general(), inpaint_mask(), interpolate_color(), interpolate_color_xtrans(), interpolate_paths(), invert_histogram(), invert_histogram(), key_pressed(), kmeans(), kth_smallest(), leave(), legacy_params(), lens_set(), LinEqSolve(), local_laplacian_internal(), HashTablePermutohedral< KD, VD >::lookup(), loop_switch(), lowlight_button_press(), lowlight_draw(), lowlight_motion_notify(), interpol::smooth_cubic_spline< T >::LU_factor(), interpol::smooth_cubic_spline< T >::LU_solve(), main(), main(), main(), mask_clipped_pixels(), mat3mul(), mat3mulv(), mat3SSEmul(), mat4mulv(), matrice_pseudoinverse(), matrix_multiply(), memset_zero(), modify_roi_in(), modify_roi_out(), mouse_moved(), mouse_moved(), mul2xyz(), mutate(), nextpow2(), nfa(), nlmeans_denoise_cl(), nlmeans_denoiseprofile_cl(), node_alloc(), node_gc(), normalize_manifolds(), pixelpipe_process_on_CPU(), polar_decomposition(), pre_median_b(), precondition_Y0U0V0(), preload_image_cache(), pretty_print_collection(), process(), process(), process(), process(), process(), process(), process_cl(), process_clip(), process_cmatrix_fastpath_clipping(), process_cmatrix_fastpath_simple(), process_cmatrix_proper(), process_common_cleanup(), process_common_setup(), process_data(), process_display(), process_drago(), process_fastpath_apply_tonecurves(), process_fastpath_matrix(), process_filmic(), process_fusion(), process_gray(), process_hsl_v1(), process_hsl_v2(), process_lcms2_bm(), process_lcms2_proper(), process_nlmeans_cl(), process_random(), process_reinhard(), process_rgb(), process_v1(), process_v3(), process_wavelets(), process_wavelets(), process_wavelets_cl(), profile_callback(), pseudo_solve_gaussian(), QR_dec(), quantize(), rawdenoise_button_press(), rawdenoise_draw(), read_histogram(), read_image(), read_pfm(), read_plain(), reduce_artifacts(), reload_defaults(), restore_ratios(), rol32(), rol32(), scrolled(), set_params(), set_presets(), set_storage_by_name(), HashTablePermutohedral< KD, VD >::Key::setHash(), shift_left(), shift_right(), smooth_path_linsys(), smooth_paths_linsys(), thinplate_match(), transpose_dot_matrix(), transpose_dot_matrix(), transpose_dot_vector(), transpose_dot_vector(), unselect_all(), update_bounding_box(), update_profile_list(), update_warp_count(), variance_analyse(), wavelets_detail_level(), wavelets_reconstruct_ratios(), wavelets_reconstruct_RGB(), WB_high_picker_callback(), WB_low_picker_callback(), write_image(), write_image(), and xyz2mul().
| float* const restrict luminance |
Definition at line 77 of file luminance_mask.h.
Referenced by _extract_luminance_kernel(), apply_toneequalizer(), autoset(), color_picker_apply(), compute_log_histogram_and_stats(), compute_luminance_mask(), display_luminance_mask(), draw_exposure_cursor(), get_luminance_from_buffer(), get_rgb_matrix_luminance(), get_shade_from_luminance(), linear_saturation(), process(), and test_linear_saturation().