[Speex-dev] Encode/Decode problem
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Fri Aug 12 17:56:10 PDT 2005
Hi,
If you're looking at only one frame, I can understand why you don't get
the same thing. In narrowband more, Speex introduces a 80-sample delay,
not to mention that the decoded signal is supposed to _sound_ the same,
not necessarily _look_ the same.
Jean-Marc
Le vendredi 12 août 2005 à 10:05 -0500, James Stanton a écrit :
> I'm trying to use the speex API, and I think I'm missing something. I'm
> running on Mac OSX Tiger, and the attached microphone is a iSight. If I
> call the "speex_encode_int" function, and then immediately call the
> "speex_decode_int" function, shouldn't I get back the same data? i.e.
> in my example code, shouldn't the two arrays contain at least similar
> data? The data I'm seeing is drastically different. If so, is the
> encoding data sensitive? If my data being fed in is wrong, will the
> encoding and decoding not work correctly? Any help would be greatly
> appriciated.
>
> Thanks!
>
> Jamie Stanton
> jstanton at clairvista.com
>
> I've got the following code:
>
> static void testAudio(UInt8 *data, long dataLength)
> {
> //data is a linear PCM stream from an attached microphone. sample rate
> is 8000, 16 bits per sample
> void *state;
> void *state2;
> SpeexBits bits;
> short tempShort;
> short tempPtr[160];
> short tempPtrDecode[160];
> state = speex_encoder_init(&speex_nb_mode);
> state2 = speex_decoder_init(&speex_nb_mode);
> speex_bits_init(&bits);
> //code simplified to just read in the first frame
> for (int i = 0; i < 320; i +=2)
> {
> tempShort = *((short*)(data + i));
> tempPtr[i / 2] = tempShort;
> }
> speex_bits_reset(&bits);
> speex_encode_int(state, tempPtr, &bits);
> speex_bits_rewind(&bits);
> speex_decode_int(state2, &bits, tempPtrDecode);
> //tempPtr != tempPtrDecode, it's not even close.
> }
>
>
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev
>
--
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
More information about the Speex-dev
mailing list