I just have a few questions about how LAME works that I was curious about.
In the Hydrogenaudio Wiki here, there's a table showing lowpass filters applicable to various command-line switches.
I'm just curious why it is a frequency band rather than a fixed frequency value. When I think of a lowpass filter, I think of values below a fixed cutoff value being allowed to pass, and values above the fixed cutoff being filtered out. How does it work when the cutoff is a band rather than a fixed value?
And where do these frequency bands come from? I mean, why have these pairs of values in particular been chosen as the endpoints of each range?
Then, I was also wondering about the lowpass filter used by LAME by default. This varies depending on the target bitrate/quality. I had a look at the LAME source code (which is over my head), but in lame.c I found what appears to be a table mapping default lowpass filters to target bitrates:
const band_pass_t freq_map[] = {
{8, 2000},
{16, 3700},
{24, 3900},
{32, 5500},
{40, 7000},
{48, 7500},
{56, 10000},
{64, 11000},
{80, 13500},
{96, 15100},
{112, 15600},
{128, 17000},
{160, 17500},
{192, 18600},
{224, 19400},
{256, 19700},
{320, 20500}
};
Again, I'm just curious how/why these frequencies in particular were chosen for each target bitrate.
Thanks.