search for: sig_shift_ti

Displaying 4 results from an estimated 4 matches for "sig_shift_ti".

2006 Feb 04
0
Speex inner_prod(), normalize, C64 MIPS
...an also be used twice in pitch_gain_search_3tap(). Are there any other places that would benefit from this optimized routine? /* Returns number of shifts to normalize a 32 bit vector to [-16384,+16384). */ static inline int norm_shift(const spx_sig_t *x, spx_sig_t max_scale, int len) { int sig_shift_ti; int i; #warn Using the optimized normalize16() function. /* Directly find the min(_norm(x[i]) rather than searching for max(abs(x[i])) and taking _norm. */ #pragma MUST_ITERATE(24,184,4) for (i=0;i<len;i++) { sig_shift_ti=min(sig_shift_ti,_norm(x[i]));...
2007 Jan 25
1
Minor fixed point scaling problem
...bits. This optimized verison uses the TI NORM instruction rather then max(abs(x)). Other DSPs have corresponding instructions. (BlackFin has SIGNBITS.) */ static int norm_shift(const spx_sig_t *x, spx_sig_t max_scale, int len) { int sig_shift_ti=32; int i; #warn Using the optimized norm_shift() function. /* TI Specific. */ #if (0) assert((len>=24)&&(len<=184)); // Check MUST_ITERATE() range. assert(0 == (len&0x03));...
2006 Feb 03
2
Speex inner_prod()
Hi, Basically, inner_prod() can and should be adapted to the architecture it will run on. It is not really sensitive to noise, so it's possible to tweak it a lot. Also, in the current code, I saturate it to +-16384, which is OK to prevent overflows. I'm not concerned with the case of a constant -16384 value because it can't really happen in practice (especially after filtering). BTW,
2007 Jan 25
3
SV: How to detect SpeexBits corruption
You might not be doing anything wrong. Speex is stateful and can get into a bad state sometimes. It's happened to me too, but not recently. And I've seen such bugs reported on this list and fixed. I suggest several approaches to solving the problem: 1) Try compiling Speex without compiler optimizations and see if the problem still occurs. Most likely it will, but this is an