diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-21 00:54:36 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-21 00:58:56 +0100 |
commit | 7cdce8cb55e7af25b88b45b6338402baad1e9ec9 (patch) | |
tree | d6193f3a92784751710907bf6d77f3670c2b3adf /libavfilter/vf_boxblur.c | |
parent | 1ac5abb1d062b6ca983d494068bb9fd30390a941 (diff) | |
download | ffmpeg-streaming-7cdce8cb55e7af25b88b45b6338402baad1e9ec9.zip ffmpeg-streaming-7cdce8cb55e7af25b88b45b6338402baad1e9ec9.tar.gz |
avfilter/vf_boxblur: factor rounder offset out
3322 -> 3204 cycles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_boxblur.c')
-rw-r--r-- | libavfilter/vf_boxblur.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c index 1fa5135..a908b6d 100644 --- a/libavfilter/vf_boxblur.c +++ b/libavfilter/vf_boxblur.c @@ -227,19 +227,21 @@ static inline void blur(uint8_t *dst, int dst_step, const uint8_t *src, int src_ sum += src[x*src_step]<<1; sum += src[radius*src_step]; + sum = sum*inv + (1<<15); + for (x = 0; x <= radius; x++) { - sum += src[(radius+x)*src_step] - src[(radius-x)*src_step]; - dst[x*dst_step] = (sum*inv + (1<<15))>>16; + sum += (src[(radius+x)*src_step] - src[(radius-x)*src_step])*inv; + dst[x*dst_step] = sum>>16; } for (; x < len-radius; x++) { - sum += src[(radius+x)*src_step] - src[(x-radius-1)*src_step]; - dst[x*dst_step] = (sum*inv + (1<<15))>>16; + sum += (src[(radius+x)*src_step] - src[(x-radius-1)*src_step])*inv; + dst[x*dst_step] = sum >>16; } for (; x < len; x++) { - sum += src[(2*len-radius-x-1)*src_step] - src[(x-radius-1)*src_step]; - dst[x*dst_step] = (sum*inv + (1<<15))>>16; + sum += (src[(2*len-radius-x-1)*src_step] - src[(x-radius-1)*src_step])*inv; + dst[x*dst_step] = sum>>16; } } |