Hi,
I think that the introduction of the lsp_look lookup array
isn't ideal and found a better change that can be applied.
in floor0_map_lazy_init() you can replace
look->linearmap[W][j]=val;
by
look->linearmap[W][j]=vorbis_coslook(M_PI*val/look->ln);
and in vorbis_lsp_to_curve you then replace
float w=vorbis_coslook(wdel*k);
...
}while(map[i]==k);
by
float w=map[i];
...
}while(map[i]==w);
then get rid of the ln function parameter and the k local variable.
<p><p>Next the fact that p and q are initialised to 1/sqrt(2),
multiplied by a series of factors and finally squared
means that on exit the 1/sqrt(2) becomes a 1/2 factor
and me think that there are some multiplications
that can be spared in the process by doing
float p=lsp[0]-w;
float q=lsp[1]-w;
int c=(m>>1)-1;
...
q=frexp(p+q,&qexp);
qexp--;
André
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to
'vorbis-dev-request@xiph.org'
containing only the word 'unsubscribe' in the body. No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.