From 1bc873acd6e15eaca8c2aebfd7dc6472b0429c50 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 7 Oct 2015 17:57:58 +0200 Subject: [PATCH] swresample/resample: manually unroll the main loop in bessel() About 10% faster Signed-off-by: Michael Niedermayer --- libswresample/resample.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libswresample/resample.c b/libswresample/resample.c index d6737d956a..036eff391f 100644 --- a/libswresample/resample.c +++ b/libswresample/resample.c @@ -51,11 +51,13 @@ static double bessel(double x){ x= x*x/4; t = x; v = 1 + x; - for(i=1; v != lastv; i++){ - lastv=v; + for(i=1; v != lastv; i+=2){ t *= x*inv[i]; v += t; - av_assert2(i<99); + lastv=v; + t *= x*inv[i + 1]; + v += t; + av_assert2(i<98); } return v; }