[speex-dev] Speex test cases?

John Hayes jhayes at thereinc.com
Sun Feb 9 18:50:17 PST 2003



I'm trying to get speex to encode a bit faster, mainly by rewriting a few
functions in SSE and translating the GCC __asm__ to VC __asm.

There's 2 functions I'm targeting, first is vq_nbest which consumes 40% of
the time at high complexity and split_cb_search_shape_sign. Which consumes
just over 30%. I've split out two functions from:

cb_search_precompute_energy - loop at the comment:
        /* Pre-compute codewords response and energy */
cb_search_update target - loop at the comment:
        /* New code: update the rest of the target only if it's worth it */

These functions represent 1/2 of the compute time at complexity 10 and 4/5
at complexity 4.

The next hot functions at low complexity are: qmf_decomp, fir_mem_up and
pitch_gain_search_3tap

Some questions I have:

1. I haven't been able to get the version of iir_mem2 in filters_sse.h
translated and working. Does this work with GCC, I'm burning my eyeballs
trying to spot the difference in my version.
2. I don't have a good source of wav data for testing. I've noticed that
introducing bugs into speex (even gross ones like returning completely
incorrect codebook entries) tends to, sometimes subtly, degrade quality
instead of blowing up. Is there an existing set of source data - and maybe
even a test harness that will do binary comparison, so I can avoid writing
one?
3. I noticed the idea of a fixed-point version of speex on the webpage, what
kind of performance difference is expected from that and are the value
ranges already known?

Thanks,

John

--- >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 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Speex-dev mailing list