[FFmpeg-devel] [PATCH] vf_blend: Use integers for divide mode
Paul B Mahol
onemda at gmail.com
Sun Feb 14 10:41:04 CET 2016
On 2/14/16, Timothy Gu <timothygu99 at gmail.com> wrote:
> 2.5x faster for 8-bit mode without autovectorization in GCC, 2x
> slower with it on x86. However, since the platforms we enable GCC
> autovectorization on most probably has support for SSE2
> optimization (added in the subsequent commit), this commit should
> in general do good.
> ---
> libavfilter/vf_blend.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
> index 2b734b4..b9e5add 100644
> --- a/libavfilter/vf_blend.c
> +++ b/libavfilter/vf_blend.c
> @@ -240,7 +240,7 @@ DEFINE_BLEND8(hardlight, (B < 128) ? MULTIPLY(2, B, A)
> : SCREEN(2, B, A))
> DEFINE_BLEND8(hardmix, (A < (255 - B)) ? 0: 255)
> DEFINE_BLEND8(darken, FFMIN(A, B))
> DEFINE_BLEND8(lighten, FFMAX(A, B))
> -DEFINE_BLEND8(divide, av_clip_uint8(((float)A / ((float)B) * 255)))
> +DEFINE_BLEND8(divide, av_clip_uint8(B == 0 ? 255 : 255 * A / B))
> DEFINE_BLEND8(dodge, DODGE(A, B))
> DEFINE_BLEND8(burn, BURN(A, B))
> DEFINE_BLEND8(softlight, (A > 127) ? B + (255 - B) * (A - 127.5) / 127.5 *
> (0.5 - fabs(B - 127.5) / 255): B - B * ((127.5 - A) / 127.5) * (0.5 - fabs(B
> - 127.5)/255))
> @@ -280,7 +280,7 @@ DEFINE_BLEND16(hardlight, (B < 32768) ? MULTIPLY(2, B,
> A) : SCREEN(2, B, A))
> DEFINE_BLEND16(hardmix, (A < (65535 - B)) ? 0: 65535)
> DEFINE_BLEND16(darken, FFMIN(A, B))
> DEFINE_BLEND16(lighten, FFMAX(A, B))
> -DEFINE_BLEND16(divide, av_clip_uint16(((float)A / ((float)B) * 65535)))
> +DEFINE_BLEND16(divide, av_clip_uint16(B == 0 ? 65535 : 65535 * A / B))
> DEFINE_BLEND16(dodge, DODGE(A, B))
> DEFINE_BLEND16(burn, BURN(A, B))
> DEFINE_BLEND16(softlight, (A > 32767) ? B + (65535 - B) * (A - 32767.5) /
> 32767.5 * (0.5 - fabs(B - 32767.5) / 65535): B - B * ((32767.5 - A) /
> 32767.5) * (0.5 - fabs(B - 32767.5)/65535))
> --
> 2.1.4
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
ok
More information about the ffmpeg-devel
mailing list