[FFmpeg-cvslog] avfilter/vf_bilateral: stop using sigmaS as percent of width/height

Paul B Mahol git at videolan.org
Fri Jul 17 14:55:50 EEST 2020


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Jul 17 13:45:16 2020 +0200| [241cdded0fc72102f32429cb3f8c0361c518f993] | committer: Paul B Mahol

avfilter/vf_bilateral: stop using sigmaS as percent of width/height

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=241cdded0fc72102f32429cb3f8c0361c518f993
---

 doc/filters.texi           | 2 +-
 libavfilter/vf_bilateral.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 12d40029dc..74d1026bdf 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -6581,7 +6581,7 @@ The filter accepts the following options:
 @table @option
 @item sigmaS
 Set sigma of gaussian function to calculate spatial weight.
-Allowed range is 0 to 10. Default is 0.1.
+Allowed range is 0 to 512. Default is 0.1.
 
 @item sigmaR
 Set sigma of gaussian function to calculate range weight.
diff --git a/libavfilter/vf_bilateral.c b/libavfilter/vf_bilateral.c
index 3c9d8006d9..47959afdad 100644
--- a/libavfilter/vf_bilateral.c
+++ b/libavfilter/vf_bilateral.c
@@ -57,7 +57,7 @@ typedef struct BilateralContext {
 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
 
 static const AVOption bilateral_options[] = {
-    { "sigmaS", "set spatial sigma",    OFFSET(sigmaS), AV_OPT_TYPE_FLOAT, {.dbl=0.1}, 0.0,  10, FLAGS },
+    { "sigmaS", "set spatial sigma",    OFFSET(sigmaS), AV_OPT_TYPE_FLOAT, {.dbl=0.1}, 0.0, 512, FLAGS },
     { "sigmaR", "set range sigma",      OFFSET(sigmaR), AV_OPT_TYPE_FLOAT, {.dbl=0.1}, 0.0,   1, FLAGS },
     { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT,   {.i64=1},     0, 0xF, FLAGS },
     { NULL }
@@ -145,7 +145,7 @@ static void bilateral_##name(BilateralContext *s, const uint8_t *ssrc, uint8_t *
     float *slice_factor_a = s->slice_factor_a, *slice_factor_b = s->slice_factor_b;     \
     float *line_factor_a = s->line_factor_a, *line_factor_b = s->line_factor_b;         \
     float *range_table = s->range_table;                                                \
-    float alpha = expf(-sqrtf(2.f) / (sigma_spatial * width));                          \
+    float alpha = expf(-sqrtf(2.f) / sigma_spatial);                                    \
     float ypr, ycr, *ycy, *ypy, *xcy, fp, fc;                                           \
     float inv_alpha_ = 1 - alpha;                                                       \
     float *ycf, *ypf, *xcf, *in_factor;                                                 \
@@ -206,7 +206,7 @@ static void bilateral_##name(BilateralContext *s, const uint8_t *ssrc, uint8_t *
     }                                                                                     \
     memcpy(img_out_f, img_temp, sizeof(float) * width);                                   \
                                                                                           \
-    alpha = expf(-sqrtf(2.f) / (sigma_spatial * height));                                 \
+    alpha = expf(-sqrtf(2.f) / sigma_spatial);                                            \
     inv_alpha_ = 1 - alpha;                                                               \
     in_factor = map_factor_a;                                                             \
     memcpy(map_factor_b, in_factor, sizeof(float) * width);                               \



More information about the ffmpeg-cvslog mailing list