[Speex-dev] speex on TI C5x fixed-point DSP
jean-marc.valin at usherbrooke.ca
Fri Oct 29 21:59:41 PDT 2004
> I have the encoder and decoder running now and have verified that the
> encoder is bit-exact wrt to the fixed-point code running on x86 for the
> same 30-second audio sample. Encode and decode together run in
> real-time for 8KHz data, complexity=3, on 120MHz C5509 when code and
> data are all in on-chip SRAM. I have not tested the wideband codec yet.
Cool! Just curious, how much of the DSP does it take to do that?
> I fixed the problem where extracting bytes from SpeexBits was wrong endian.
> I have not addressed this problem yet. In my testing all the Speex code
> and data in the on-chip sram of TI C5509 DSP, and it all fit. Is
> compute_weighted_codebook the only routine that looks at the raw
> codebooks? If so, I'll take a look at packing the codebooks to save a
> few KB.
compute_weighted_codebook (and the corresponding decoding function) is
the only function using the codebooks that have "exc" in the name. The
are two other places that use other codebooks.
> Patch is attached.
I looked at the patch. Seems mostly OK, though there are some minor
issues. First, I don't think it's right to say spx_int_32_t=long except
for alpha. This will likely cause problems on Itanium, Power64, SPARC64
and probably x86-64. I suggest either an explicit check for C55xx (and
later others) or a test in configure.ac.
Also, I'm not sure I get your use of "+#ifdef UNUSED" in the SpeexBits
code. Finally, there's a few changes which I think should be removed,
like for speex_alloc, speex_warning, ... same as the "#if 0" for
wideband and other debug stuff. Could you clean the patch and send it
back to me so I can apply it?
More information about the Speex-dev