[Speex-dev] Decoding only a certain frame results in different values than when decoding the entire file
Hermann Weber
hermie.weber at gmx.de
Fri Dec 23 10:03:36 PST 2011
I found out something:
The more frames I decode before the frame that I actually want to
decode, the better the quality becomes.
For example when I basically want to decode frame #100, I read frame #80
to #100, and then frame 100 has the quality that I need.
Why? Is there any information on this behaviour?
Thank you.
Hermann
Am 23.12.2011 18:37, schrieb Hermann Weber:
> It would be nice to get more input.
> I am really lost because I am not sure what is going on here, and there
> are no sources to investigate on.
>
> Thank you.
>
> Hermann
>
> Am 22.12.2011 20:55, schrieb Hermann Weber:
>> To make it complete, here is the code that I am using to encode a large
>> file:
>>
>> int __stdcall SpxEncode(unsigned char* inBuf, unsigned char* outBuf,
>> unsigned int inlen)
>> {
>> //char *testFile;
>> //FILE *ftest;
>> //testFile = "test";
>> //ftest = fopen(testFile, "wb");
>> //fwrite(inBuf,1,inlen,ftest);
>>
>> //take every 320 bytes
>> //copy every short to float array, and make sure to put null in
>> unused area
>>
>> float input[MAX_FRAME_SIZE];
>> char cbits[MAX_FRAME_BYTES];
>> unsigned int inBufpos = 0, j, outBufpos = 0;
>> short *sinBuf;
>>
>> sinBuf = (short*) inBuf;
>>
>> do
>> {
>> j = 0;
>> do
>> {
>> //copy to float array
>> input[j] = sinBuf[inBufpos];
>> inBufpos++; j++;
>> }
>> while ((inBufpos % 160 != 0)&& (inBufpos != (inlen/2)));
>>
>> //fill the rest with null
>> if (inBufpos == (inlen/2))
>> for (j=(inBufpos%160); j<160; j++) input[j] = 0;
>>
>> speex_bits_reset(&bits);
>> speex_encode(encstate, input,&bits);
>>
>> /*Copy the bits to an array of char that can be written*/
>> speex_bits_write(&bits, cbits, MAX_FRAME_BYTES);
>> for (j=0; j<62; j++)
>> {
>> outBuf[outBufpos] = cbits[j];
>> outBufpos++;
>> }
>>
>> }
>> while (inBufpos != (inlen/2));
>>
>> //fwrite(outBuf, 1, outBufpos, ftest);
>> //fclose(ftest);
>> return 42;
>> }
>> _______________________________________________
>> Speex-dev mailing list
>> Speex-dev at xiph.org
>> http://lists.xiph.org/mailman/listinfo/speex-dev
>>
> _______________________________________________
> 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