diff options
author | Tomas Farago <sensej007@email.cz> | 2019-07-15 15:36:34 +0200 |
---|---|---|
committer | Tomas Farago <sensej007@email.cz> | 2020-02-05 10:16:26 +0100 |
commit | da6a854a6759bbc2dc1c83bb23f5a2d154a68619 (patch) | |
tree | fcbf59377363a7873483eb96128f5a44ce65577d | |
parent | 4539cb2452c5651023286483ce4b6e142cca742e (diff) | |
download | ufo-filters-da6a854a6759bbc2dc1c83bb23f5a2d154a68619.tar.gz ufo-filters-da6a854a6759bbc2dc1c83bb23f5a2d154a68619.tar.bz2 ufo-filters-da6a854a6759bbc2dc1c83bb23f5a2d154a68619.tar.xz ufo-filters-da6a854a6759bbc2dc1c83bb23f5a2d154a68619.zip |
NLM: improve memory access pattern
-rw-r--r-- | src/kernels/nlm.cl | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/kernels/nlm.cl b/src/kernels/nlm.cl index 852c90c..0f1cbcd 100644 --- a/src/kernels/nlm.cl +++ b/src/kernels/nlm.cl @@ -39,8 +39,8 @@ dist (read_only image2d_t input, coeff /= wsize * wsize; } - for (int i = -radius; i < radius + 1; i++) { - for (int j = -radius; j < radius + 1; j++) { + for (int j = -radius; j < radius + 1; j++) { + for (int i = -radius; i < radius + 1; i++) { tmp = read_imagef (input, sampler, (float2) ((p.x + i) / width, (p.y + j) / height)).x - read_imagef (input, sampler, (float2) ((q.x + i) / width, (q.y + j) / height)).x; if (window_coeffs) { @@ -75,8 +75,8 @@ nlm_noise_reduction (read_only image2d_t input, float total_weight = 0.0f; float pixel_value = 0.0f; - for (int i = x - search_radius; i < x + search_radius + 1; i++) { - for (int j = y - search_radius; j < y + search_radius + 1; j++) { + for (int j = y - search_radius; j < y + search_radius + 1; j++) { + for (int i = x - search_radius; i < x + search_radius + 1; i++) { d = dist (input, sampler, (float2) (x + 0.5f, y + 0.5f), (float2) (i + 0.5f, j + 0.5f), patch_radius, width, height, h_2, variance, window_coeffs); weight = exp (-d); |