Hi Everyone,

Here is a description of the new mid/side stereo switching
criterion (in lame3.12pre8).  (text on the web page too)

Just to clarify the mid/side stereo and jstereo terms that I find myself
using interchangeably:  

There are two stereo modes, "stereo" and "jstereo".  "stereo" is just
the normal independent coding of left & right channels.  "jstereo"
means the frames may use normal stereo, stereo, mid/side stereo or
intensity stereo.  (FhG and LAME never use intensity stereo).  In
jstereo mode, the encoder has to decide for each frame if it should be
encoded stereo or mid/side stereo.

mid/side stereo encodes the mid and side channels instead of left and
right.  It allocates more bits to the mid channel than the side
channel.  For signals without a lot of stereo separation, there will
be very little information in the side channel and this trick will
improve bandwidth.  If the left & right channels differ by a lot, then
the side channel will contain a lot of information.  Errors encoding
this information will show up as noise in *both* the left & right
channels after decoding.  

The new ms_stereo switch uses mid/side stereo only when the difference
between L & R masking thresholds (averaged over all scalefactors) is
less then 5db.  This algorithm is based on the one given in the
mid/side encoding paper (see References on www.sulaco.org/mp3).  In
several test samples it does an amazing job mimicking the FhG
encoder (see below).   

I believe the idea behind this is the following: If one channel has
much less noise masking in a certain band, than masked noise in one
channel that is spread to the other channel (by mid/side stereo) may
no longer be masked.  If both channels have the same masking, then the
noise spread between both channels will be equally well masked.



                         regular stereo frames:                 
Fools.wav:  (1180 frames)
FhG                      frames 794-805,903 
new LAME                 frames 794-804,870,903,967,1018
old LAME                 over 500 frames used regular stereo


IfYouCould.wav: (80 frames) 
FhG                           44,52,61
new LAME                      43,44,52,60,61    (like FhG, 2 extra)
old LAME                      34,63,66,67       (completely unlike FhG)


mstest.wav: (156 frames)   (from Scott Miller)
FhG:                     138 frames use regular stereo
new LAME                 139 frames use regular stereo
old LAME                   8 frames use regular stereo


t1.wav: 160 frames (from Nils Faerber)
FhG:                  40-43, 81-84, 122-125, 145-151
new LAME:             39-42, 81-84, 121-125,    149  
old LAME:        constant inappropriate toggling of ms_stereo 


Castanets.wav:  (253 frames)
All encoders use all ms_stereo for all frames

else3.wav: 217 frames
All encoders use all ms_stereo for all frames




--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to