>
> Insted of just disabling J-stereo at 160+ could we not change the M/S
> switching alg to take into account 'bit-pressure' so that it would weigh
> it's estimated 'badness' of encoding w/ M/S against the amount of spectral
> info.
>
> This way, it would seldom encode w/ Mid-side at high bit rates unless the
> side channel contains almost no energy.
>
> In VBR mode we could have the quality setting affect a threshold of side
> channel energy to tell it when to up the bitrate to avoid M/S or just
> encode in MS. It would be nice to tell it to always use M/S when the side
> channel is digial-silence. (mono input mixed with stereo).
>
This is not as sophisticated as you are suggesting, but maybe it is a
step in the right direction. I just added a new variable, called
"compression_factor". It is just how much compression (fixed bitrate)
is being done. For example:
44.1kHz at 128kbs: compression factor = 11
44.1kHz at 160kbs: compression factor = 8.82
There are two default settings based on this value (both overrided
by command options)
compression_factor
<= 8 default mode is stereo instead of jstereo
<= 9 do not use scalefactor band 21 cutoff
(16kHz cutoff) (sfb21=0)
The problem is what happens during VBR, when the compression_factor is
constantly changing. Right now we dont allow the stereo mode or sfb21
flag to change. This is because of the observation a while ago that
switching M/S stereo on and off created annoying artifacts. (at fixed
128kbs). Thus if you were using VBR, and the compression_factor was
hovering around 8, M/S stereo could be frequently turning on and off.
I would bet that with this higher compression factor, the artifacts
would be much less than they are at 44kHz/128kbs, but I dont think
anyone has tested this. I think someone did report that Xing VBR mode
continues to use M/S stereo at high bitrates.
Same problem with the sfb21 flag. Should we allow it to be turned
on and off during VBR encoding based on the number of bits
being used?
> As far as VBR goes would it be wise to ignore the set minimum bit rate and
> encode at 32Kb/s during frames consisting of nothing but digital silence?
>
> This would allow me to encode with a minimum bitrate of 160Kb/s, but allow
> it to drop to 32Kb/s during frames of true silence and only use M/S if the
> side channel is almost non-existant.
>
We should probably do this, but I dont know how much it will
improve filesize. I'll bet a typical song is about 1% analog silence?
Meaning the extra code to handle this would save at most 1% in
MP3 filesize.
Mark
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )