aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_nlmeans.h
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-10-24 14:53:28 +0200
committerPaul B Mahol <onemda@gmail.com>2021-10-29 18:42:29 +0200
commiteaca36d495f802ebaa5729f345016463d3071c27 (patch)
tree3e719e2931a213c1e479693e01e985680d87db86 /libavfilter/vf_nlmeans.h
parent38c86e7a02c286becbe847ff7bc13d19363ce15e (diff)
downloadffmpeg-eaca36d495f802ebaa5729f345016463d3071c27.tar.gz
avfilter/vf_nlmeans: refactor line processing in preparation for x86 SIMD assembly
Diffstat (limited to 'libavfilter/vf_nlmeans.h')
-rw-r--r--libavfilter/vf_nlmeans.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavfilter/vf_nlmeans.h b/libavfilter/vf_nlmeans.h
index 0a9aab2928..d0d0056163 100644
--- a/libavfilter/vf_nlmeans.h
+++ b/libavfilter/vf_nlmeans.h
@@ -22,11 +22,25 @@
#include <stddef.h>
#include <stdint.h>
+struct weighted_avg {
+ float total_weight;
+ float sum;
+};
+
typedef struct NLMeansDSPContext {
void (*compute_safe_ssd_integral_image)(uint32_t *dst, ptrdiff_t dst_linesize_32,
const uint8_t *s1, ptrdiff_t linesize1,
const uint8_t *s2, ptrdiff_t linesize2,
int w, int h);
+ void (*compute_weights_line)(const uint32_t *const iia,
+ const uint32_t *const iib,
+ const uint32_t *const iid,
+ const uint32_t *const iie,
+ const uint8_t *const src,
+ struct weighted_avg *wa,
+ const float *const weight_lut,
+ int max_meaningful_diff,
+ int startx, int endx);
} NLMeansDSPContext;
void ff_nlmeans_init(NLMeansDSPContext *dsp);