Ansel
0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
locallaplaciancl.h
Go to the documentation of this file.
1
/*
2
This file is part of darktable,
3
Copyright (C) 2016 johannes hanika.
4
Copyright (C) 2019 Aurélien PIERRE.
5
Copyright (C) 2020 Pascal Obry.
6
Copyright (C) 2021 Chris Elston.
7
Copyright (C) 2022 Martin Bařinka.
8
9
darktable is free software: you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation, either version 3 of the License, or
12
(at your option) any later version.
13
14
darktable is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
20
along with darktable. If not, see <http://www.gnu.org/licenses/>.
21
*/
22
#pragma once
23
#ifdef HAVE_OPENCL
24
typedef
struct
dt_local_laplacian_cl_global_t
25
{
26
int
kernel_pad_input
;
27
int
kernel_gauss_expand
;
28
int
kernel_gauss_reduce
;
29
int
kernel_laplacian_assemble
;
30
int
kernel_process_curve
;
31
int
kernel_write_back
;
32
}
33
dt_local_laplacian_cl_global_t
;
34
35
typedef
struct
dt_local_laplacian_cl_t
36
{
37
int
devid
;
38
dt_local_laplacian_cl_global_t
*
global
;
39
40
int
width
,
height
;
41
int
num_levels
;
42
float
sigma
,
highlights
,
shadows
,
clarity
;
43
int
blocksize
,
blockwd
,
blockht
;
44
int
max_supp
;
45
size_t
bwidth
,
bheight
;
46
47
// pyramid of padded monochrome input buffer
48
cl_mem *
dev_padded
;
49
// pyramid of padded output buffer, monochrome, too:
50
cl_mem *
dev_output
;
51
// one pyramid of padded monochrome buffers for every value
52
// of gamma (curve parameter) that we process:
53
cl_mem **
dev_processed
;
54
}
55
dt_local_laplacian_cl_t
;
56
57
dt_local_laplacian_cl_global_t
*
dt_local_laplacian_init_cl_global
();
58
void
dt_local_laplacian_free_cl_global
(
dt_local_laplacian_cl_global_t
*
g
);
59
dt_local_laplacian_cl_t
*
dt_local_laplacian_init_cl
(
60
const
int
devid,
61
const
int
width
,
// width of input image
62
const
int
height
,
// height of input image
63
const
float
sigma
,
// user param: separate shadows/mid-tones/highlights
64
const
float
shadows,
// user param: lift shadows
65
const
float
highlights,
// user param: compress highlights
66
const
float
clarity);
// user param: increase clarity/local contrast
67
void
dt_local_laplacian_free_cl
(
dt_local_laplacian_cl_t
*
g
);
68
cl_int
dt_local_laplacian_cl
(
dt_local_laplacian_cl_t
*
g
, cl_mem input, cl_mem output);
69
#endif
70
// clang-format off
71
// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
72
// vim: shiftwidth=2 expandtab tabstop=2 cindent
73
// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
74
// clang-format on
width
int width
Definition
bilateral.h:1
height
int height
Definition
bilateral.h:1
g
const float g
Definition
colorspaces_inline_conversions.h:674
dt_local_laplacian_init_cl_global
dt_local_laplacian_cl_global_t * dt_local_laplacian_init_cl_global()
Definition
locallaplaciancl.c:41
dt_local_laplacian_free_cl_global
void dt_local_laplacian_free_cl_global(dt_local_laplacian_cl_global_t *g)
Definition
locallaplaciancl.c:55
dt_local_laplacian_cl
cl_int dt_local_laplacian_cl(dt_local_laplacian_cl_t *g, cl_mem input, cl_mem output)
Definition
locallaplaciancl.c:143
dt_local_laplacian_init_cl
dt_local_laplacian_cl_t * dt_local_laplacian_init_cl(const int devid, const int width, const int height, const float sigma, const float shadows, const float highlights, const float clarity)
Definition
locallaplaciancl.c:90
dt_local_laplacian_free_cl
void dt_local_laplacian_free_cl(dt_local_laplacian_cl_t *g)
Definition
locallaplaciancl.c:69
sigma
const float sigma
Definition
src/develop/noise_generator.h:71
dt_local_laplacian_cl_global_t
Definition
locallaplaciancl.h:25
dt_local_laplacian_cl_global_t::kernel_pad_input
int kernel_pad_input
Definition
locallaplaciancl.h:26
dt_local_laplacian_cl_global_t::kernel_laplacian_assemble
int kernel_laplacian_assemble
Definition
locallaplaciancl.h:29
dt_local_laplacian_cl_global_t::kernel_write_back
int kernel_write_back
Definition
locallaplaciancl.h:31
dt_local_laplacian_cl_global_t::kernel_gauss_reduce
int kernel_gauss_reduce
Definition
locallaplaciancl.h:28
dt_local_laplacian_cl_global_t::kernel_gauss_expand
int kernel_gauss_expand
Definition
locallaplaciancl.h:27
dt_local_laplacian_cl_global_t::kernel_process_curve
int kernel_process_curve
Definition
locallaplaciancl.h:30
dt_local_laplacian_cl_t
Definition
locallaplaciancl.h:36
dt_local_laplacian_cl_t::dev_output
cl_mem * dev_output
Definition
locallaplaciancl.h:50
dt_local_laplacian_cl_t::dev_padded
cl_mem * dev_padded
Definition
locallaplaciancl.h:48
dt_local_laplacian_cl_t::height
int height
Definition
locallaplaciancl.h:40
dt_local_laplacian_cl_t::sigma
float sigma
Definition
locallaplaciancl.h:42
dt_local_laplacian_cl_t::blockwd
int blockwd
Definition
locallaplaciancl.h:43
dt_local_laplacian_cl_t::blocksize
int blocksize
Definition
locallaplaciancl.h:43
dt_local_laplacian_cl_t::global
dt_local_laplacian_cl_global_t * global
Definition
locallaplaciancl.h:38
dt_local_laplacian_cl_t::width
int width
Definition
locallaplaciancl.h:40
dt_local_laplacian_cl_t::highlights
float highlights
Definition
locallaplaciancl.h:42
dt_local_laplacian_cl_t::bwidth
size_t bwidth
Definition
locallaplaciancl.h:45
dt_local_laplacian_cl_t::max_supp
int max_supp
Definition
locallaplaciancl.h:44
dt_local_laplacian_cl_t::dev_processed
cl_mem ** dev_processed
Definition
locallaplaciancl.h:53
dt_local_laplacian_cl_t::bheight
size_t bheight
Definition
locallaplaciancl.h:45
dt_local_laplacian_cl_t::clarity
float clarity
Definition
locallaplaciancl.h:42
dt_local_laplacian_cl_t::blockht
int blockht
Definition
locallaplaciancl.h:43
dt_local_laplacian_cl_t::devid
int devid
Definition
locallaplaciancl.h:37
dt_local_laplacian_cl_t::num_levels
int num_levels
Definition
locallaplaciancl.h:41
dt_local_laplacian_cl_t::shadows
float shadows
Definition
locallaplaciancl.h:42
src
common
locallaplaciancl.h
Generated by
1.9.8