HydrogenAudio

Lossy Audio Compression => MP3 => Topic started by: Johnny Blade on 2020-09-22 20:11:20

Title: MPR VBR: V0? Q1? Q2????
Post by: Johnny Blade on 2020-09-22 20:11:20
Hi there!

Please, where I can learn about MP3 VBR and "Q0", "V0", "Q1", "V1"? I know what VBR is, but I know nothing about "Q0", etc...

Thanks in advance!
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: Apesbrain on 2020-09-22 20:38:49
Some descriptions here:
https://wiki.hydrogenaud.io/index.php/LAME
https://svn.code.sf.net/p/lame/svn/trunk/lame/USAGE
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: Johnny Blade on 2020-09-22 20:55:49
Cool!!!
Thank you very much!
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: [JAZ] on 2020-09-24 18:29:51
It is easier to find the answer in the html version (although most of the content should be equal or very similar)
https://svn.code.sf.net/p/lame/svn/trunk/lame/doc/html/detailed.html#q
https://svn.code.sf.net/p/lame/svn/trunk/lame/doc/html/detailed.html#V
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: Johnny Blade on 2020-09-24 20:08:08
Dear @[JAZ]

Thanks a lot! It's very useful! I really liked it!

Anyway, EZ CD Audio Converter (program I used long before foobar2000) uses Q0, Q1, Q2 and some articles above also use V0, V1, V2... What's the difference???
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: o-l-a-v on 2020-09-24 20:33:40
Dear @[JAZ]

Thanks a lot! It's very useful! I really liked it!

Anyway, EZ CD Audio Converter (program I used long before foobar2000) uses Q0, Q1, Q2 and some articles above also use V0, V1, V2... What's the difference???

They are some of the input switches/ parameters to the lame encoder.
Here is the output from lame.exe -?

Code: [Select]
LAME 64bits version 3.100.1 (http://lame.sf.net)

usage: lame.exe [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

RECOMMENDED:
    lame -V2 input.wav output.mp3

OPTIONS:
  Input options:
    --scale <arg>   scale input (multiply PCM data) by <arg>
    --scale-l <arg> scale channel 0 (left) input (multiply PCM data) by <arg>
    --scale-r <arg> scale channel 1 (right) input (multiply PCM data) by <arg>
    --swap-channel  swap L/R channels
    --ignorelength  ignore file length in WAV header
    --gain <arg>    apply Gain adjustment in decibels, range -20.0 to +12.0
    --mp1input      input file is a MPEG Layer I   file
    --mp2input      input file is a MPEG Layer II  file
    --mp3input      input file is a MPEG Layer III file
    --nogap <file1> <file2> <...>
                    gapless encoding for a set of contiguous files
    --nogapout <dir>
                    output dir for gapless encoding (must precede --nogap)
    --nogaptags     allow the use of VBR tags in gapless encoding
    --out-dir <dir> output dir, must exist

  Input options for RAW PCM:
    -r              input is raw pcm
    -s sfreq        sampling frequency of input file (kHz) - default 44.1 kHz
    --signed        input is signed (default)
    --unsigned      input is unsigned
    --bitwidth w    input bit width is w (default 16)
    -x              force byte-swapping of input
    --little-endian input is little-endian (default)
    --big-endian    input is big-endian
    -a              downmix from stereo to mono file for mono encoding


  Operational options:
    -m <mode>       (j)oint, (s)imple, (f)orce, (d)ual-mono, (m)ono (l)eft (r)ight
                    default is (j)
                    joint  = Uses the best possible of MS and LR stereo
                    simple = force LR stereo on all frames
                    force  = force MS stereo on all frames.
    --preset type   type must be "medium", "standard", "extreme", "insane",
                    or a value for an average desired bitrate and depending
                    on the value specified, appropriate quality settings will
                    be used.
                    "--preset help" gives more info on these
    --comp  <arg>   choose bitrate to achieve a compression ratio of <arg>
    --replaygain-fast   compute RG fast but slightly inaccurately (default)
    --replaygain-accurate   compute RG more accurately and find the peak sample
    --noreplaygain  disable ReplayGain analysis
    --clipdetect    enable --replaygain-accurate and print a message whether
                    clipping occurs and how far the waveform is from full scale
    --flush         flush output stream as soon as possible
    --freeformat    produce a free format bitstream
    --decode        input=mp3 file, output=wav
    -t              disable writing wav header when using --decode


  Verbosity:
    --disptime <arg>print progress report every arg seconds
    -S              don't print progress report, VBR histograms
    --nohist        disable VBR histogram display
    --quiet         don't print anything on screen
    --silent        don't print anything on screen, but fatal errors
    --brief         print more useful information
    --verbose       print a lot of useful information

  Noise shaping & psycho acoustic algorithms:
    -q <arg>        <arg> = 0...9.  Default  -q 3
                    -q 0:  Highest quality, very slow
                    -q 9:  Poor quality, but fast
    -h              Same as -q 2.  
    -f              Same as -q 7.   Fast, ok quality


  CBR (constant bitrate, the default) options:
    -b <bitrate>    set the bitrate in kbps, default 128 kbps
    --cbr           enforce use of constant bitrate

  ABR options:
    --abr <bitrate> specify average bitrate desired (instead of quality)

  VBR options:
    -V n            quality setting for VBR.  default n=4
                    0=high quality,bigger files. 9=smaller files
    -v              the same as -V 4
    --vbr-old       use old variable bitrate (VBR) routine
    --vbr-new       use new variable bitrate (VBR) routine (default)
    -Y              lets LAME ignore noise in sfb21, like in CBR
                    (Default for V3 to V9.999)
    -b <bitrate>    specify minimum allowed bitrate, default  32 kbps
    -B <bitrate>    specify maximum allowed bitrate, default 320 kbps
    -F              strictly enforce the -b option, for use with players that
                    do not support low bitrate mp3
    -t              disable writing LAME Tag
    -T              enable and force writing LAME Tag


  MP3 header/stream options:
    -e <emp>        de-emphasis n/5/c  (obsolete)
    -c              mark as copyright
    -o              mark as non-original
    -p              error protection.  adds 16 bit checksum to every frame
                    (the checksum is computed correctly)
    --nores         disable the bit reservoir
    --strictly-enforce-ISO   comply as much as possible to ISO MPEG spec
    --buffer-constraint <constraint> available values for constraint:
                                     default, strict, maximum

  Filter options:
  --lowpass <freq>        frequency(kHz), lowpass filter cutoff above freq
  --lowpass-width <freq>  frequency(kHz) - default 15% of lowpass freq
  --highpass <freq>       frequency(kHz), highpass filter cutoff below freq
  --highpass-width <freq> frequency(kHz) - default 15% of highpass freq
  --resample <sfreq>  sampling frequency of output file(kHz)- default=automatic


  ID3 tag options:
    --tt <title>    audio/song title (max 30 chars for version 1 tag)
    --ta <artist>   audio/song artist (max 30 chars for version 1 tag)
    --tl <album>    audio/song album (max 30 chars for version 1 tag)
    --ty <year>     audio/song year of issue (1 to 9999)
    --tc <comment>  user-defined text (max 30 chars for v1 tag, 28 for v1.1)
    --tn <track[/total]>   audio/song track number and (optionally) the total
                           number of tracks on the original recording. (track
                           and total each 1 to 255. just the track number
                           creates v1.1 tag, providing a total forces v2.0).
    --tg <genre>    audio/song genre (name or number in list)
    --ti <file>     audio/song albumArt (jpeg/png/gif file, v2.3 tag)
    --tv <id=value> user-defined frame specified by id and value (v2.3 tag)
                    syntax: --tv "TXXX=description=content"
    --add-id3v2     force addition of version 2 tag
    --id3v1-only    add only a version 1 tag
    --id3v2-only    add only a version 2 tag
    --id3v2-utf16   add following options in unicode text encoding
    --id3v2-latin1  add following options in latin-1 text encoding
    --space-id3v1   pad version 1 tag with spaces instead of nulls
    --pad-id3v2     same as '--pad-id3v2-size 128'
    --pad-id3v2-size <value> adds version 2 tag, pad with extra <value> bytes
    --genre-list    print alphabetically sorted ID3 genre list and exit
    --ignore-tag-errors  ignore errors in values passed for tags

    Note: A version 2 tag will NOT be added unless one of the input fields
    won't fit in a version 1 tag (e.g. the title string is longer than 30
    characters), or the '--add-id3v2' or '--id3v2-only' options are used,
    or output is redirected to stdout.


MS-Windows-specific options:
    --priority <type>  sets the process priority:
                         0,1 = Low priority (IDLE_PRIORITY_CLASS)
                         2 = normal priority (NORMAL_PRIORITY_CLASS, default)
                         3,4 = High priority (HIGH_PRIORITY_CLASS))
    Note: Calling '--priority' without a parameter will select priority 0.

Misc:
    --license       print License information


MPEG-1   layer III sample frequencies (kHz):  32  48  44.1
bitrates (kbps): 32 40 48 56 64 80 96 112 128 160 192 224 256 320

MPEG-2   layer III sample frequencies (kHz):  16  24  22.05
bitrates (kbps):  8 16 24 32 40 48 56 64 80 96 112 128 144 160

MPEG-2.5 layer III sample frequencies (kHz):   8  12  11.025
bitrates (kbps):  8 16 24 32 40 48 56 64
Title: Re: MPR VBR: V0? Q1? Q2????
Post by: Johnny Blade on 2020-09-24 20:55:42
OK! Thanks, @o-l-a-v  !!!