[Speex-dev] What establishes "average" bitrate in Variable Bitrate (VBR) Mode?

Randy Yates yates at ieee.org
Mon Apr 12 05:14:00 PDT 2010


Jean-Marc Valin <jean-marc.valin at usherbrooke.ca> writes:

> On 2010-04-11 10:09, Randy Yates wrote:
>> If I specify VBR mode via
>>
>>    speex_encoder_ctl(pSpeexEncoder, SPEEX_SET_VBR,&isTrue);
>
> Try:
>
> speex_encoder_ctl(pSpeexEncoder, SPEEX_SET_ABR, &desiredRate);

Jean-Marc,

There is a disconnect here somewhere. ABR is "average bitrate mode."
This is not the mode I am referring to. I am referring to VBR mode.

Let me try to explain my question better.

In constant bitrate mode, we are forced to specify that the encoder
perform at a certain "quality" (not the quality parameter, but quality
in terms of the mean-square error between the original signal and the
reconstructed signal) because we MUST specify the bitrate (assuming a
fixed value of complexity).

In variable bitrate mode, there is no direct way (that I see) to specify
the quality. However, given that the bitrate is less than the entropy
rate [cover] of the signal, the quality (or performance, if you will)
will be less than perfect. 

So my question is, in VBR mode, is there a way to specify how much less
than "perfect" the codec will perform at? 

Here's another question that perhaps asks the same thing in a much
different (and more practical) way: If I run the encoder in VBR mode,
encode a signal, and get a file size of x kilobytes, is there some way
to reconfigure the encoder so that I will get a file size of y
kilobytes, y < x, given that I am willing to accept a lesser quality
signal?

--Randy

@book{cover,
  title = "Elements of Information Theory",
  author = "Thomas M. Cover and Joy A. Thomas",
  publisher = "John Wiley and Sons, Inc.",
  year = "1991"}

-- 
Randy Yates                      % "With time with what you've learned, 
Digital Signal Labs              %  they'll kiss the ground you walk 
mailto://yates@ieee.org          %  upon."
http://www.digitalsignallabs.com % '21st Century Man', *Time*, ELO


More information about the Speex-dev mailing list