summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Farago <sensej007@email.cz>2019-07-31 18:00:15 +0200
committerTomas Farago <sensej007@email.cz>2020-02-05 10:16:26 +0100
commitc5c4855c86fa39f1d65ff8fffe96b6beb772814a (patch)
tree77c0a5aef2b51bf17389b2ae8aa8358513cf355a
parentb0166f3f68323add5d405b10b8468441b8ab0df9 (diff)
downloadufo-filters-c5c4855c86fa39f1d65ff8fffe96b6beb772814a.tar.gz
ufo-filters-c5c4855c86fa39f1d65ff8fffe96b6beb772814a.tar.bz2
ufo-filters-c5c4855c86fa39f1d65ff8fffe96b6beb772814a.tar.xz
ufo-filters-c5c4855c86fa39f1d65ff8fffe96b6beb772814a.zip
NLM: clean up Gauss window creation and deletion
-rw-r--r--src/ufo-non-local-means-task.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/ufo-non-local-means-task.c b/src/ufo-non-local-means-task.c
index 5ca2e2e..86857d2 100644
--- a/src/ufo-non-local-means-task.c
+++ b/src/ufo-non-local-means-task.c
@@ -94,14 +94,8 @@ compute_cumsum_local_width (UfoNonLocalMeansTaskPrivate *priv)
return local_width;
}
-/**
- * release_coefficients:
- * @priv: UfoNonLocalMeansTaskPrivate
- *
- * Release Gaussian window coefficients memory object.
- */
static void
-release_coefficients (UfoNonLocalMeansTaskPrivate *priv)
+release_gaussian_window (UfoNonLocalMeansTaskPrivate *priv)
{
if (priv->window_mem) {
UFO_RESOURCES_CHECK_CLERR (clReleaseMemObject (priv->window_mem));
@@ -109,14 +103,8 @@ release_coefficients (UfoNonLocalMeansTaskPrivate *priv)
}
}
-/**
- * create_coefficients:
- * @priv: UfoNonLocalMeansTaskPrivate
- *
- * Compute Gaussian window coefficients.
- */
static void
-create_coefficients (UfoNonLocalMeansTaskPrivate *priv)
+create_gaussian_window (UfoNonLocalMeansTaskPrivate *priv)
{
cl_int err;
gfloat *coefficients, coefficients_sum = 0.0f, sigma;
@@ -138,7 +126,6 @@ create_coefficients (UfoNonLocalMeansTaskPrivate *priv)
coefficients[i] /= coefficients_sum;
}
- release_coefficients (priv);
priv->window_mem = clCreateBuffer (priv->context,
CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
sizeof (cl_float) * wsize * wsize,
@@ -526,8 +513,8 @@ ufo_non_local_means_task_get_requisition (UfoTask *task,
priv->max_work_group_size = g_value_get_ulong (max_work_group_size_gvalue);
g_value_unset (max_work_group_size_gvalue);
}
- if (priv->use_window && !priv->window_mem) {
- create_coefficients (priv);
+ if (!priv->fast && priv->use_window && !priv->window_mem) {
+ create_gaussian_window (priv);
}
if (priv->cropped_size[0] != requisition->dims[0] || priv->cropped_size[1] != requisition->dims[1]) {
priv->cropped_size[0] = requisition->dims[0];
@@ -831,7 +818,7 @@ ufo_non_local_means_task_finalize (GObject *object)
UFO_RESOURCES_CHECK_CLERR (clReleaseContext (priv->context));
priv->context = NULL;
}
- release_coefficients (priv);
+ release_gaussian_window (priv);
release_fast_buffers (priv);
G_OBJECT_CLASS (ufo_non_local_means_task_parent_class)->finalize (object);