HydrogenAudio

Misc. => Recycle Bin => Topic started by: Sonny on 2003-12-07 20:24:30

Title: [DOUBLEPOST] Distortion From Joint Stereo (LAME)
Post by: Sonny on 2003-12-07 20:24:30
I’ve just registered to share my experience with you. I’ll TRY to be concise.

I’ve experienced some MASSIVE distorsion on high tunes, encoding some Metal songs that require high bitrate to sound good. After MANY try, I know what causes this distorsion : the Joint Stereo (JS) process (I use LAME 3.93 + RazorLame 1.1.5).

JS is supposed to be better than True Stereo (TS). Theorically. Indeed, JS encodes 2 channels, middle (M) and side (S) instead of left (L) and right ( R). Demonstration :
If M=(L+R)/2 and S=(L-R)/2 , then it's easy to get the L and R channel back :
M+S=(L+R+L-R)/2 = 2L/2=L and M-S=(L+R-(L-R))/2=(L+R-L+R)/2=2R/2=R
The trick is : you encode M on one side, and on the other, the more L and R are similar, the less the S channel will need bits to be properly encoded (ex: if L=R (=Mono), the needed space for S channel is zero !)
Conclusion : if you compare 2 files with the same size, the bits gained on similarities between L and R channel on the file encoded with JS enable an overall better encoding quality over the file encoded with TS.

Again, this is theory. Here what happen to me practically :
Sample encoded in 320kbps and TS (archive quality, 1.77Mo). (http://forzainter.free.fr/test/320-TS.mp3) Very close to the WAV sample.
Sample encoded with the --alt-preset standard, in JS (195kbps, 1.07Mo). (http://forzainter.free.fr/test/V2.mp3) You can hear the distorsion of high tunes even with a crappy sound board like mine !
Sample encoded with the --alt-preset standard -V 3, in JS (176kbps, 0.98Mo). (http://forzainter.free.fr/test/V3.mp3) In this file, I’ve lowered a bit the quality of the encoding (standard is ‘-V 2’). The overall quality should be good but the distorsion is now HUGE. 
You can imagine what happens if I lower again the quality !!
Now let’s encode the sample in TS.
Sample encoded with the --alt-preset standard -V 4 –m s, in TS (188kbps, 1.04Mo). (http://forzainter.free.fr/test/V4-TS.mp3) See? This file was encoded in lower quality (‘only’ -V4), yet, there is  no more distortion !! 

Finally, here is a comparison of JS/TS encoding at lower bitrate :
Sample encoded @128kbps with JS (727ko). (http://forzainter.free.fr/test/128-TS.mp3)
Sample encoded @128kbps with TS (727ko). (http://forzainter.free.fr/test/128-JS.mp3)
There is no need to be a sound engineer to get the difference.

To end this test, here is a few remarks:
I’ve tried to encode in JS with the previous version of LAME (3.92), but I got the same result.
I’m not an expert, so tell me where I’m wrong or what could get this thing work good.
I’ve always been a convinced Lame user. I’m not THAT convinced now. But I’m not sure what to do. Continue in TS with Lame or change for something new. Any advice?
Finally, excuse my english, I’m just french!
Title: [DOUBLEPOST] Distortion From Joint Stereo (LAME)
Post by: Jan S. on 2003-12-07 20:26:26
Don't double post (http://www.hydrogenaudio.org/forums/index.php?showtopic=16170&).