But just to be clear, I'm NOT trying to refute what 2Bdecided posted earlier in his log. The concerns are still totally valid, we just have to test and consider what we and LAME are doing more carefully. I next did further tests, that duplicate 2Bdecided's results well, yet also raise even more questions about what we can take from LAME's VBR histogram displays. I took Track01.wav (the one with the vocals and less stereo separation) and made it into a mono WAV file by mixing the channels. Then I took that mono file and duped the channels and made a Stereo Duped "mono" WAV file out of it.
C:\Program Files\Lame395>lame -h -V 5 d:\lists\Track01mono.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding d:\lists\Track01mono.wav to d:\lists\Track01mono.wav.mp3
Encoding as 44.1 kHz VBR(q=5) single-ch MPEG-1 Layer III (ca. 11.9x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:06/ 0:06| 0:06/ 0:06| 14.811x| 0:00
32 [ 83] ***
40 [ 5] *
48 [ 19] *
56 [ 142] *****
64 [ 904] *****************************
80 [2088] ******************************************************************
96 [ 269] *********
112 [ 67] ***
128 [ 22] *
160 [ 1] *
192 [ 0]
224 [ 0]
256 [ 0]
320 [ 0]
average: 75.8 kbps
C:\Program Files\Lame395>lame -h -V 5 d:\lists\Track01dupedstereo.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding d:\lists\Track01dupedstereo.wav
to d:\lists\Track01dupedstereo.wav.mp3
Encoding as 44.1 kHz VBR(q=5) j-stereo MPEG-1 Layer III (ca. 11.9x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:07/ 0:07| 0:07/ 0:07| 12.822x| 0:00
32 [ 72] **
40 [ 5] *
48 [ 7] *
56 [ 38] **
64 [ 446] *************
80 [2423] ******************************************************************
96 [ 496] **************
112 [ 81] ***
128 [ 27] *
160 [ 5] *
192 [ 0]
224 [ 0]
256 [ 0]
320 [ 0]
average: 80.1 kbps MS: 3600 (100.0%)
So, at V5 level of quality there are no problems. We can be confident this sample can be safely encoded as 320 kbps Forced Stereo (well, in this case it doesn't matter as the Forced Stereo and Joint Stereo output is identical, but we can pretend it wasn't).
C:\Program Files\Lame395>lame -h -V 2 d:\lists\Track01mono.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding d:\lists\Track01mono.wav to d:\lists\Track01mono.wav.mp3
Encoding as 44.1 kHz VBR(q=2) single-ch MPEG-1 Layer III (ca. 7.3x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:05/ 0:05| 0:05/ 0:05| 16.660x| 0:00
32 [ 55] **
96 [2861] ******************************************************************
112 [ 430] **********
128 [ 171] ****
160 [ 70] **
192 [ 10] *
224 [ 3] *
256 [ 0]
320 [ 0]
average: 100.1 kbps
This result is fairly similar to what 2Bdecided got. There are some 192 and 224 kbps frames which could potentially be a problem for 320 CBR Stereo files, although the amount is so few perhaps it could be ignored.
C:\Program Files\Lame395>lame -h -V 2 d:\lists\Track01dupedstereo.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding d:\lists\Track01dupedstereo.wav
to d:\lists\Track01dupedstereo.wav.mp3
Encoding as 44.1 kHz VBR(q=2) j-stereo MPEG-1 Layer III (ca. 7.3x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:06/ 0:06| 0:06/ 0:06| 14.811x| 0:00
32 [ 53] ****
96 [ 831] ****************************************************
112 [1061] ******************************************************************
128 [1026] ****************************************************************
160 [ 559] ***********************************
192 [ 70] *****
224 [ 0]
256 [ 0]
320 [ 0]
average: 120.7 kbps MS: 3600 (100.0%)
This is kind of similar too, but upon closer inspection there are some weird things that throw this kind of analysis into question. One, why is the Duped Stereo file 20% bigger than the True Mono file? Two, what happened to our 3 worst-offending 224 kbps frames? They seem to have mysteriously gotten better and gone away. Maybe this can be explained by the bit reservoir. Overall the Duped Stereo file is bigger and there are far more 192 kbps frames...perhaps this fills the reservoir faster and made no need for those 3 bad 224 kbps frames. But this still doesn't explain why overall the Duped Stereo file is so much bigger than the Mono file.
C:\Program Files\Lame395>lame -h -V 0 d:\lists\Track01mono.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding d:\lists\Track01mono.wav to d:\lists\Track01mono.wav.mp3
Encoding as 44.1 kHz VBR(q=0) single-ch MPEG-1 Layer III (ca. 5.7x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:04/ 0:04| 0:04/ 0:04| 20.251x| 0:00
32 [ 53] **
128 [2747] ******************************************************************
160 [ 733] ******************
192 [ 67] **
224 [ 0]
256 [ 0]
320 [ 0]
average: 134.3 kbps
True mono, highest V 0 quality. No higher quality can be gotten. File is much bigger than even the V2 stereo duped file. But strangely enough, there are zero 224 kbit frames again, and oddly enough there are even less 192 kbit frames than in the V 2 stereo duped file.
C:\Program Files\Lame395>lame -h -V 0 d:\lists\Track01dupedstereo.wav
LAME version 3.95 MMX (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding d:\lists\Track01dupedstereo.wav
to d:\lists\Track01dupedstereo.wav.mp3
Encoding as 44.1 kHz VBR(q=0) j-stereo MPEG-1 Layer III (ca. 5.7x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
3597/3599 (100%)| 0:05/ 0:05| 0:05/ 0:05| 16.894x| 0:00
32 [ 48] ***
128 [ 759] **********************************
160 [1483] ******************************************************************
192 [1201] ******************************************************
224 [ 109] *****
256 [ 0]
320 [ 0]
average: 164.2 kbps MS: 3600 (100.0%)
Duped stereo apparently makes LAME go berserk in this scenario. Huge portion of the entire song rises above 192 kbps, when it shouldn't have to.
I dunno, these results are odd. I fully agree that there can potentially be mono/single channels that require more than 160 kbps to encode transparently at times. But do our test samples really contain such times? How much can we trust these histograms to tell us how many bits we really needed? And even if we could trust these "mono" histograms, when encoding typical stereo files in Joint Stereo VBR the histogram could be next-to-useless.
Oh yeah, I should mention the songs I used. I am using the opening vocals theme song and the main BGM theme song for an anime cartoon called Fate/Stay Night.

QUOTE (haregoo @ May 1 2007, 19:14)

None of us use v3.95, Porcupine. You've done no valid statement about quality so far.
Try the sample I've posted. Most of frames would be M/S regardless bitrate.
Encoder: LAME v3.97 (-V2 --vbr-new).
None of my statements are proven to still exist in 3.97 sure (although the LAME history changelog makes no statement about changes in these areas). I believe I my statements are still very valid so far. They are surely valid for LAME 3.95. Feel free to test for yourself if they remain valid in 3.97, I would be interested to know also. You don't have to use my samples, I'm sure any song with reasonable stereo separation would be useful.
I notice that in your graph you used -V 2, which as I just said has "nssafejoint" stuck to OFF, so your graph is totally expected and completely consistent with the results I got myself.
Oh yeah, if you do decide to test 3.97 for me/us you should probably use the "-q 3" switch like 2Bdecided did not the "-h" (q 2) switch because the -q switches were remapped for LAME 3.97 and my -h is equal to your -q 3 (I tested this earlier, before erasing my LAME 3.97). I guess -q 3 is also the default for -V 2 in LAME 3.97, but the default for -V 0 may be something else. It probably doesn't matter either way but just in case it does....
Maybe you even have the same CD I do, since you probably like Hare+Guu maybe you like Fate/Stay Night too. I got my songs off the regular standard OST for it.