[Speex-dev] New function for manipulating SpeexBits

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Sat Dec 9 11:20:27 PST 2006


How's that different from the current speex_bits_init_buffer()?

	Jean-Marc

Miles, Stewart a écrit :
> It would be nice to have the following function added to the speex
> bits...
> 
> void speex_bits_read_from_buffer(
>     SpeexBits * const bits, 
>     void      * const buff, 
>     const int         buf_size)
> {
>     bits->bytes    = (char*)buff;
>     bits->buf_size = buf_size;
>     bits->nbBits   = buf_size << 3;
>     bits->bytePtr  = 0;
>     bits->bitPtr   = 0;
>     bits->owner    = 0;
>     bits->overflow = 0;
> }
> 
> ... so a bitstream can be assigned to a SpeexBits structure for
> processing by a decoder rather than unnecessarily copying the data.
> 
> 
> As an aside, I'm working on a certain high profile embedded game's
> console at the moment and one of the performance problems is due to all
> of the copying speex performs without calling memcpy.  Although memcpy()
> is generally a pretty nasty function when copying very small blocks of
> data (< 128 bits) from a performance point of view it does have
> significant advantages when copying longer runs as some architectures
> are optimized for 128bit memory access others 64bit access etc, 8 bit
> stores can actually result in code that's up to 16 times slower (in the
> case of the 128bit architecture).
> 
> Thanks, keep up the good work
> 
> Stewart Miles
> http://www.mobygames.com/developer/sheet/view/developerId,62864/
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev
> 
> 
> 


More information about the Speex-dev mailing list