january 15 2002 (update May 03 2002)
Variable BitRate encoding is designed for size & quality optimalization. Where there is silence in the music, it is less "demanding" in terms of its encodability, it makes sense to drop the bit rate, simply because there's not much there to encode, and the wasted space is overkill. Where the full orchestra and high noise percussion is joining in, the encoder will choose a higher bitrate appropriate to the demands. Some parts of the music can be encoded in 128 kbps (kilo bits per second) without any quality loss, other parts get the full 320 kbps to make the best of it. But on the average, the size of the VBR-encoded mp3 file will be (much) lower than one with a constant 320 kbps encoding. Why wasting disc space? Why going for less then highest quality? That's the goal of VBR. Read a complete discussion on the http://www.r3mix.net/ site (click the "quality" tag in the menu).
For those who only listen to mp3's, nothing changes. Play the VBR-mp3's in your favourite mp3-player. However, some stand alone MP3 players don't understand VBR. Other players sometimes wrongly interprete the length of the music. The following discussion is only relevant to those who make mp3's.
a) Stick to your favourite ripping application and rip wav's to your hard disc.
b) Use RazorLame Version 1.1.5 and Lame Version 3.92 for encoding the wav's into mp3's. Lame has implemented the latest VBR technology. RazorLame is a Windows front-end for Lame. Download these free applications and install them, starting with Lame, on your system.
I'll give you the essentials here.
Time: the VBR encoding process consumes much more processor power than the CBR encoding process. Some stand alone MP3 players don't understand VBR.
"--alt-preset extreme" is a custom option designed for maximum quality and minimum size. Just fine for alt.binaries.sounds.music.classical and its quality fanatics. There are more presets (see 7 below) of which "--alt-preset standard" results in smaller files and less quality. Most people will not be able to hear the quality difference between "--alt-preset extreme" and "--alt-preset standard".
Alt presets trigger a bunch of code-level enhancements that are not possible to achieve with command line switches. Therefore, alt presets are for our convenience.
Above, answer 4, is explained how to set the "--alt-preset" option. You can add other command line settings after "--alt-preset extreme" or "--alt-preset standard".
Yes, and you might prefer one of the options listed below instead of "--alt-preset extreme".
| --alt-preset insane | This is almost the same as constant bitrate (CBR) 320 kbps. It is not VBR.You get the best quality, but at the cost of a waste of disk space and bandwith: insane. There is a small difference with CBR 320: the low pass filter is moved down a little from 21.4 KHz to about 20.5 kHz. |
| --alt-preset extreme | The highest quality - in fact the same as the "insane" option above - with the smallest file size. The bitrate usually averages around the 256 kbps, but achieves CBR 320 kbps quality. Depending on the complexity of the sound wav, the resulting mp3 is about 224-256 kbps on the average. In case of old recordings, I found file sizes around 160 kbps. |
| --alt-preset fast extreme | If you get irritated of the time consuming encoding process with "--alt-preset extreme", you might try this option. The quality is, according to the developers, "very slightly lower" than "--alt-preset extreme". But the encoding is faster. The file size is larger, though. |
| --alt-preset standard | This is still "Very High Quality", with bitrates averaging around 192 kbps, but targetting CBR 256 kbps quality. |
| --alt-preset fast standard | You got it: "Very Slightly Lower Quality", but a much faster encoding prodess and somewhat larger mp3 files. |
| --alt-preset <bitrate> | Average BitRate, or ABR. "In this mode, you choose the encoder will maintain an average bitrate while using higher bitrates for the parts of your music that need more bits. The result will be of higher quality than CBR encoding but the average file size will remain predictible, so this mode is highly recommended over CBR. This encoding mode is similar to what is reffered as vbr in AAC or Liquid Audio (2 other compression technologies)." [citated from the Lame documentation]. Can be tuned from 320 kbps (useful??) down to 80 kbps. |
| --alt-preset CBR <bitrate> | These switches take care of optimization for that specific bit rate. If you want to use CBR, you better use these --alt-preset switches. |
CDex and CoolEdit are programs that can rip your CD's. I suggested above you rip wav's to your hard disc and use RazorLame to encode the wav's into mp3's. But you can use CDex and Cooledit in conjunction with Lame 3.92 so that you can rip and encode in one go. You need to install the following Lame 3.92 dll's: http://www.inf.ufpr.br/~rja00/lameDLLs.zip. Instructions included. I didn't check if this works or not.
With Exact Audio Copy (EAC) it is also possible to use Lame 3.92. Assuming you are using Version 0.9, press F11, go to the "External compression" tab, check the field "use external program for compression", enter the location of lame.exe (I'm assuming you installed Lame 3.92) in the appropriate field, and finally in the field "Additional command line options" enter the magic phrase "--alt-preset extreme" (or, if you don't plan to play your mp3 in a full Dolby movie theatre, "--alt-preset standard") . This works fine and it spares one operation. Personally, I prefer ripping wav's in the first step and encoding them in a second step, because my CD-rom does not synchronize well with the relatively slow encoding process.
Warning on bad mp3 encoders
Please note, not all mp3 encoders are good encoders. Various Xing encoders, and software using Xing encoders (most famous/popular among them: AudioCatalyst) are notoriously bad and are not recommended. The same (to a lesser degree) applies to FhG's Fastenc encoder.
Lame is the preferred encoder at the moment. If you are using an old Lame encoder, pre 3.89, check for the newest encoder (currently 3.92) from the Lame site. As explained in this faq, use the alt-presets in Lame for highest quality. Even if you prefer Constant Bitrate (CBR) over Variable Bitrate (VBR), use the alt preset "--alt-preset CBR <bitrate>"
Someone pointed out that limiting the lowest possible bitrate in VBR is useless: "-b 160" in VBR limits the lowest possible bitrate to 160. This serves little purpose when VBR is used, for they use mostly 160k+ frame anyway. For those few frames where LAME would use 128k, forcing it to use 160k frames would usually make those extra bits "bit reservoir". The result is less bitrate variation, but more complex internal structure (because of more bit reservoir usage). Since one of the main advantage of VBR is to minimize the use of bit reservoir, this doesn't make much sense. In case you insist upon using -b 160, please use "--alt-preset standard -b 160" or "--alt-preset extreme -b 160".
Different from pre-3.90 LAME (and the document that's still on LAME's website), -q 0 is no longer about (best) quality. It activate an experimental noise shaping method, hence should be reserved for experimental purpose, not for production usage.
Windows users can find out what encoder was used (along with a host of other information) with a freeware program called "EncSpot", available at http://www.guerillasoft.com/Encspot.
Jerry made a good point for the advanced EAC/Lame user. I copied his suggestions below 'as is', since I did not check them. Here it is:
If you constantly switch between two different LAME parameters in EAC (two different presets), you may do this:
%lsetting 1%l%hsetting 2%h %s %d
It looks messy, but is in fact quite simply. The keywords are "%l" and "%h". A pair of "%l" enclose the "low quality" setting, while a pair of "%h" enclose the "high quality" setting. With this, you can use the two quality radio buttons to choose between the two settings. Here, "low quality" and "high quality" are just nominal (to go with the radio buttons), but in fact they can be anything, and setting 1 doesn't have to be of lower quality than setting 2.
E.g.
%l--alt-preset standard%l%h--alt-preset extreme%h %s %d
(VBR standard for LQ and VBR extreme for HQ)
--alt-preset %lstandard%l%hextreme%h %s %d
(same effect)
--alt-preset standard %l-m s%l%h-m j%h %s %d
(VBR standard stereo for LQ, and VBR standard joint stereo for HQ)
--alt-preset standard %l-m s%l %s %d
(same effect, for joint stereo is VBR default)
--alt-preset %lCBR 192%l%hstandard%h %s %d
(CBR 192 for LQ, VBR standard for HQ)
The alt presets in Lame use Joint Stereo (JS). Joint Stereo looks for signals that are identical in the left and right channel and if it finds any they are encoded as mono. This means that 50% bits are saved for the mono encoded signals and these bits are used to improve the encoding accuracy (very simplified explanation).
Joint stereo got a bad name for some other encoders (and maybe some very early versions of LAME) do it in an over-aggresive way, resulting in more artifacts. But that's not a problem with the newest LAME (so far there's no substantiated claim to the contrary). Forcing stero (-m s) more likely will reduce the effectiveness of bits allocation, so it's not adviced.
If you do want to use the alt presets but don't want Joint Stereo, than put -m s along with the alt presets, like "--alt-preset standard -m s"
So we now have CBR, ABR and VBR, the last one offering the best performance in terms of quality and file size. Stick to you favourite ripping program and use it for extracting wav's to your hard disc. Use Lame 3.92 and RazorLame 1.1.5 to encode your wav's into mp3's. In RazorLame, go to the "Edit | Lame Options", click the "Expert" tab, enter "--alt-preset extreme" in the "Customs options" field and check the field "Only use custom options". If you want more speed, use the preset "--alt-preset fast extreme".