Joint stereo coding methods try to increase the coding efficiency when encoding stereo signals by exploiting commonalties between the left and right channel signal.
Mid-side and intensity stereo
There are two usual joint stereo coding algorithms, namely mid-side (ms) stereo coding and intensity stereo coding. Mid-side stereo applies a matrix to the left and right channel signals, computing sum and difference of the two original signals.
Whenever a signal is concentrated in the middle of the stereo image, mid-side stereo can achieve a significant saving in bitrate. Even more important is the fact that by applying the inverse matrix in the decoder the quantization noise becomes correlated and falls in the middle of the stereo image where it is masked by the signal.
Intensity stereo coding is a method that achieves a saving in bitrate by replacing the left and the right signal by a single representing signal plus directional information. This replacement is psychoacoustically justified in the higher frequency range since the human auditory system is insensitive to the signal phase at frequencies above approximately 2kHz.
Intensity stereo is by definition a lossy coding method thus it is primarily useful at low bitrates. For coding at higher bitrates only ms stereo should be used.
Some more details, history and examples about joint stereo & mid/side coding:
mid/side can be lossless like obviously in Lossless formats Flac, Wavpack, Monkey's Audio (ape) etc., but in lossy encoders the encoder tries to do the best to minimize all losses in perception. And here the encoder has not only to deal with stereo modes, but also with mids, highs etc. etc. So, regarding lossy formats like MP3 (Lame, Fraunhofer, Xing), Musepack (MPC), Vorbis etc., the mid/side coding might be even mathematical lossless, might be perceptual lossless (=transparent), or not so lossless at all at low bitrates. So, it depends in the lossy formats about the quality of mid/side (js) coding. From obvious bad sounding bugs like in some old Fraunhofer mp3 ("Radium hack"), not so optimized perfomance like in mp3-Xing, up to the optimized js-modes in mp3-Lame, which offer frame-dependent stereo or mid/side coding to achieve maximum qualities. And advanced formats like mp3-lame, Musepack-MPC or Vorbis-ogg offer increasing js(mid/side//stereo)qualities in increasing general quality (q) levels, examples: Mp3-Lame inside the presets eg. -V quality levels, with different -msfix values up to the "nssafejoint" mode in 320 kbit cbr. Musepack-MPC inside the various q-levels/presets and the --ms x switch. Vorbis in its presets, 1 example above q6 the "lossless stereo coupling".
So, regarding js/mid/side coding, there is no black & white, there are shades of grey, dependent on the target bitrate or quality level. (Even if you ignore faulty implementations like in old Fraunhofer/"Radium hack" or Xing). But it should be said, that the prejudice of js=bad originates with high probability by these old faulty implementations of ancient encoders.
Text © Menno Bakker - Audiocoding
written by user - High Quality Audio guides