[FFmpeg-devel] [PATCH] ac3enc: change default floor code to 7.

Måns Rullgård mans
Tue Feb 15 22:40:25 CET 2011

Justin Ruggles <justin.ruggles at gmail.com> writes:

> On 02/15/2011 02:47 PM, M?ns Rullg?rd wrote:
>> Justin Ruggles <justin.ruggles at gmail.com> writes:
>>> This is to match the value in every (E-)AC-3 file from commercial sources.
>>> It has a negligible effect on audio quality.
>>> ---
>>>  libavcodec/ac3enc.c        |    2 +-
>>>  tests/ref/acodec/ac3_fixed |    2 +-
>>>  tests/ref/lavf/rm          |    2 +-
>>>  3 files changed, 3 insertions(+), 3 deletions(-)
>> What is the effect of this change?  Why is matching commercial encoders
>> valuable?
> Matching commercial encoders makes it easier to do encoder comparisons
> for all points in the process after bit allocation.
> There are many ways to describe the effect of this field.  One way to
> look at it is this:
> - exponents are used to estimate spectral density
> - this is used as a baseline for allocating bits to mantissas
> - one effect of the floor value is to change this baseline
> - the value effectively puts a ceiling on bit allocation
> - floor code 7 cooresponds to a negative floor value, so instead it
> raises the ceiling and allows bits to be allocated to mantissas when
> available rather than having them end up as padding at the end of the frame.
> If we have VBR AC-3 encoding at some point it would be better to use a
> value of 4 in that case, but for CBR AC-3 or E-AC-3 (see below) a value
> of 7 is better.

Sounds like there's no downside to the change then, so patch OK.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list