1. regarding the difficulty of decoding VBR
it's hard to believe the supposed difficulty of implementing a proper mp3 decoder when an open source project (rockbox: http://rockbox.org/ ) has full support for several (and some much more hardware demanding) codecs.
old 140mhz coldfire processors are decoding ALL proper mp3 streams at about 5x - 4x realtime.
as implemented in rockbox, the mp3 decoder does not vary according to encoding strategy much, but it DOES vary significantly in regards to filesize. so the OPPOSITE argument could be made, that it is easier and faster to decode a VBR file averaging 190kbps (i.e. -V2) then it is to decode a 320kbps CBR file.
for rockbox this is generally true for most target architectures (and for all codecs other than some lossless implementations like monkey's audio and wavpack which take a decoding hit with more complicated encoding settings.)
data can be found on the rockbox site to support these claims here:
http://www.rockbox.org/twiki/bin/view/Main/IriverRuntime
http://www.rockbox.org/twiki/bin/view/Main...manceComparison
this can also be verified through lame. both encoding and decoding takes longer with CBR 320 files then it does via -V0 VBR files.
VBR encoding
mike@xmixahlx:~$ time lame -V6 --silent --noreplaygain 41_30sec.wav 41_30sec-V6.mp3
real 0m1.222s
user 0m1.216s
sys 0m0.004s
mike@xmixahlx:~$ time lame -V5 --silent --noreplaygain 41_30sec.wav 41_30sec-V5.mp3
real 0m1.298s
user 0m1.276s
sys 0m0.016s
mike@xmixahlx:~$ time lame -V4 --silent --noreplaygain 41_30sec.wav 41_30sec-V4.mp3
real 0m1.313s
user 0m1.284s
sys 0m0.016s
mike@xmixahlx:~$ time lame -V3 --silent --noreplaygain 41_30sec.wav 41_30sec-V3.mp3
real 0m1.342s
user 0m1.328s
sys 0m0.016s
mike@xmixahlx:~$ time lame -V2 --silent --noreplaygain 41_30sec.wav 41_30sec-V2.mp3
real 0m1.409s
user 0m1.400s
sys 0m0.008s
mike@xmixahlx:~$ time lame -V1 --silent --noreplaygain 41_30sec.wav 41_30sec-V1.mp3
real 0m1.580s
user 0m1.408s
sys 0m0.016s
mike@xmixahlx:~$ time lame -V0 --silent --noreplaygain 41_30sec.wav 41_30sec-V0.mp3
real 0m1.482s
user 0m1.448s
sys 0m0.024s
CBR encoding
mike@xmixahlx:~$ time lame -b 128 --silent --noreplaygain 41_30sec.wav 41_30sec-128.mp3
real 0m2.064s
user 0m2.052s
sys 0m0.016s
mike@xmixahlx:~$ time lame -b 160 --silent --noreplaygain 41_30sec.wav 41_30sec-160.mp3
real 0m2.154s
user 0m2.120s
sys 0m0.032s
mike@xmixahlx:~$ time lame -b 192 --silent --noreplaygain 41_30sec.wav 41_30sec-192.mp3
real 0m1.770s
user 0m1.768s
sys 0m0.000s
mike@xmixahlx:~$ time lame -b 224 --silent --noreplaygain 41_30sec.wav 41_30sec-224.mp3
real 0m1.807s
user 0m1.768s
sys 0m0.012s
mike@xmixahlx:~$ time lame -b 256 --silent --noreplaygain 41_30sec.wav 41_30sec-256.mp3
real 0m1.779s
user 0m1.752s
sys 0m0.028s
mike@xmixahlx:~$ time lame -b 320 --silent --noreplaygain 41_30sec.wav 41_30sec-320.mp3
real 0m1.686s
user 0m1.676s
sys 0m0.008s
VBR decoding
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V6.mp3
real 0m0.271s
user 0m0.252s
sys 0m0.008s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V5.mp3
real 0m0.273s
user 0m0.256s
sys 0m0.004s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V4.mp3
real 0m0.270s
user 0m0.248s
sys 0m0.020s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V3.mp3
real 0m0.272s
user 0m0.256s
sys 0m0.016s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V2.mp3
real 0m0.289s
user 0m0.272s
sys 0m0.020s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V1.mp3
real 0m0.289s
user 0m0.276s
sys 0m0.008s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-V0.mp3
real 0m0.293s
user 0m0.272s
sys 0m0.020s
CBR decoding
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-128.mp3
real 0m0.256s
user 0m0.240s
sys 0m0.016s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-160.mp3
real 0m0.267s
user 0m0.256s
sys 0m0.012s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-192.mp3
real 0m0.274s
user 0m0.264s
sys 0m0.008s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-224.mp3
real 0m0.285s
user 0m0.256s
sys 0m0.028s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-256.mp3
real 0m0.291s
user 0m0.280s
sys 0m0.008s
mike@xmixahlx:~$ time lame --silent --decode 41_30sec-320.mp3
real 0m0.306s
user 0m0.296s
sys 0m0.008s
2. regarding VBR being an inferior encoding strategy to CBR
in current years (i.e. >2000 e.g. 3.90beta, since --dm-presets/--alt-presets/--presets) with lame the opposite has proved true except for specific problem samples.
later