[Speex-dev] Precomputing the remaining floating pointoperations.

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Tue Sep 27 17:15:50 PDT 2005


Le mardi 27 septembre 2005 à 23:24 +0200, Nic Roets a écrit :
> Firstly, running for more channels will not break my hack. All that's needed
>  is to call RECOPLAY_MARK with different identifiers (say nb, wb or uwb)
>  before doing the appropriate initialization.

Still, too many ways it can fail. You can maintain it as a separate
patch it you like, but this is not going in the main tree.

>  Secondly, my attempts to do the Gaussian in fixed point went like this :
...
>    for (i=0;i<st->lpcSize+1;i++) {
>       st->lagWindow[i]=gauss;
>       for (j=i*i; j < (i+1)*(i+1); j++) {
>          gauss = MULT16_16_Q15 (gauss, st->lag_factor_gauss);
>       }
>    }

Way more complicated that it needs to be

> A Taylor expansion will be more accurate.

Not only more accurate, but a lot simpler because I'm only using a very
small portion of the gaussian. I think a third order approximation would
work.



More information about the Speex-dev mailing list