Browse Source

swresample/resample: manually unroll the main loop in bessel()

About 10% faster

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.0
Michael Niedermayer 10 years ago
parent
commit
1bc873acd6
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      libswresample/resample.c

+ 5
- 3
libswresample/resample.c View File

@@ -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;
}


Loading…
Cancel
Save