Mercurial > libavcodec.hg
changeset 2062:37ca6f8677de libavcodec
cubic filter instead of truncated sinc
looks much better for upscaling & scaling where src and dst size are quite similar
author | michael |
---|---|
date | Sun, 06 Jun 2004 13:46:50 +0000 |
parents | c28b03fea50f |
children | 99556d33f102 |
files | imgresample.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/imgresample.c Sun Jun 06 03:52:42 2004 +0000 +++ b/imgresample.c Sun Jun 06 13:46:50 2004 +0000 @@ -554,12 +554,18 @@ for(ph=0;ph<NB_PHASES;ph++) { norm = 0; for(i=0;i<NB_TAPS;i++) { - +#if 1 + const float d= -0.5; //first order derivative = -0.5 + x = fabs(((float)(i - FCENTER) - (float)ph / NB_PHASES) * factor); + if(x<1.0) y= 1 - 3*x*x + 2*x*x*x + d*( -x*x + x*x*x); + else y= d*(-4 + 8*x - 5*x*x + x*x*x); +#else x = M_PI * ((float)(i - FCENTER) - (float)ph / NB_PHASES) * factor; if (x == 0) y = 1.0; else y = sin(x) / x; +#endif tab[i] = y; norm += y; }