Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
process.c File Reference
#include "common/darktable.h"
#include "common/distance_transform.h"
#include "common/gaussian.h"
#include "common/solvers/sparse_cholesky_cl.h"
#include "develop/imageop_math.h"
#include "iop/highlights/blur.h"
#include "iop/highlights/gather.h"
#include "iop/highlights/knee.h"
#include "iop/highlights/process.h"
#include "iop/highlights/region.h"
#include "iop/highlights/segmentation.h"
#include "iop/highlights/selftests.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
+ Include dependency graph for process.c:

Go to the source code of this file.

Macros

#define HL_CL_RELEASE(mem_obj)
 

Functions

__DT_CLONE_TARGETS__ int process_harmonic_bayer (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const void *const restrict ivoid, void *const restrict ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_aligned_pixel_t clips)
 
__DT_CLONE_TARGETS__ int process_harmonic_xtrans (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const void *const restrict ivoid, void *const restrict ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_aligned_pixel_t clips)
 
static __DT_CLONE_TARGETS__ int _harmonic_reconstruct_host (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const float *const restrict input, float *const restrict interpolated, float *const restrict clipping_mask, const dt_iop_roi_t *const roi_in, const dt_aligned_pixel_t clips, const dt_aligned_pixel_t normalization, const float **remosaic_input_out, float **input_corr_out, const _hl_knee_curve_t knee_pre[3])
 
static cl_int _harmonic_cl_roundtrip (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_aligned_pixel_t clips)
 
static cl_int _harmonic_reconstruct_cl (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem raw_buf, cl_mem interp_buf, cl_mem mask_buf, cl_mem *corr_out, const dt_iop_roi_t *const roi_in, const dt_aligned_pixel_t clips, const dt_aligned_pixel_t norm, cl_mem dev_xtrans, const _hl_knee_curve_t knee_pre[3])
 
cl_int process_harmonic_cl (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_aligned_pixel_t clips)
 

Macro Definition Documentation

◆ HL_CL_RELEASE

#define HL_CL_RELEASE (   mem_obj)
Value:
do \
{ \
dt_opencl_release_mem_object(mem_obj); \
(mem_obj) = NULL; \
} while(0)

Definition at line 439 of file process.c.

Function Documentation

◆ _harmonic_cl_roundtrip()

◆ _harmonic_reconstruct_cl()

static cl_int _harmonic_reconstruct_cl ( struct dt_iop_module_t self,
const dt_dev_pixelpipe_t pipe,
const dt_dev_pixelpipe_iop_t piece,
cl_mem  raw_buf,
cl_mem  interp_buf,
cl_mem  mask_buf,
cl_mem *  corr_out,
const dt_iop_roi_t *const  roi_in,
const dt_aligned_pixel_t  clips,
const dt_aligned_pixel_t  norm,
cl_mem  dev_xtrans,
const _hl_knee_curve_t  knee_pre[3] 
)
static

◆ _harmonic_reconstruct_host()

◆ process_harmonic_bayer()

◆ process_harmonic_cl()

cl_int process_harmonic_cl ( struct dt_iop_module_t self,
const dt_dev_pixelpipe_t pipe,
const dt_dev_pixelpipe_iop_t piece,
cl_mem  dev_in,
cl_mem  dev_out,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out,
const dt_aligned_pixel_t  clips 
)

Definition at line 698 of file process.c.

References _aniso_stage_cl_selftest(), _build_xtrans_bilinear_lookup(), _cf_harmonic_fill_cl_selftest(), _cf_joint_stage_cl_selftest(), _cf_stage_cl_selftest(), _compute_laplacian_normalization(), _harmonic_cl_roundtrip(), _harmonic_reconstruct_cl(), _harmonic_reconstruct_host(), _hf_stage_cl_selftest(), _hl_knee_estimate_cl(), _joint_core_stage_cl_selftest(), _knee_cl_selftest(), _region_blur_cl_selftest(), _region_guided_filter_cl_selftest(), _selfdome_stage_cl_selftest(), _sp_chol_cl_selftest(), dt_dev_pixelpipe_t::devid, double(), dt_dev_pixelpipe_iop_t::dsc_in, DT_DEBUG_OPENCL, dt_dev_get_roi_filters(), DT_HL_BAND_OVR, DT_HL_KNEE_DET, dt_opencl_alloc_device(), dt_opencl_alloc_device_buffer(), dt_opencl_copy_device_to_host(), dt_opencl_copy_host_to_device_constant(), DT_OPENCL_DEFAULT_ERROR, dt_opencl_enqueue_copy_buffer_to_image(), dt_opencl_enqueue_copy_image_to_buffer(), dt_opencl_enqueue_kernel_2d(), dt_opencl_finish(), dt_opencl_read_buffer_from_device(), dt_opencl_release_mem_object(), dt_opencl_set_kernel_arg(), dt_opencl_write_host_to_device(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, dt_print(), dt_iop_buffer_dsc_t::filters, for_four_channels, dt_iop_module_t::global_data, height, dt_iop_roi_t::height, HL_CL_RELEASE, i, IS_NULL_PTR, kernel(), dt_iop_highlights_global_data_t::kernel_highlights_bilinear_and_mask, dt_iop_highlights_global_data_t::kernel_highlights_bilinear_and_mask_xtrans, dt_iop_highlights_global_data_t::kernel_highlights_box_blur, dt_iop_highlights_global_data_t::kernel_highlights_remosaic_and_replace, dt_iop_highlights_global_data_t::kernel_highlights_remosaic_and_replace_xtrans, lookup(), ROUNDUPDHT, ROUNDUPDWD, TRUE, width, dt_iop_roi_t::width, dt_iop_roi_t::x, dt_iop_buffer_dsc_t::xtrans, and dt_iop_roi_t::y.

Referenced by process_cl().

◆ process_harmonic_xtrans()