[vorbis-dev] vorbis-utils features ;)
Kevin Marks
kmarks at apple.com
Wed Mar 21 19:13:29 PST 2001
At 4:35 pm -0800 21/3/01, Monty wrote:
> > This is a good idea in abstract. In practice, you want to define a
>> noise floor and truncate below that.
>
>No, you're only considering a single case, that of low level hiss.
>That's not the only case where you have [audible] audio content under
>-90dB.
>
>> The 90dB range of 16-bit audio
>> is overkill in all real-world playback environments, and preserving
>> noise in the low 4 bits is just going to make it impossible to hit
>> low bitrate targets.
>
>It's 96dB, and that's only using the most simpleminded measure of
>dynamic range. In fact, 16 bits has closer to 130dB of usable signal
>range (look at the frequency plots). I'm happy to demostrate if you
>don't believe me.
>
>Setting a hard limit that throws away potentially 1/3 of the dymanic
>range is not really a good idea.
From a pure signal processing point of view, I defer to you.
From a real world fitting music through narrow pipes point of view,
unless you do intelligent noise gating, you are never going to hit
modem bitrates. If I'm listening to music on a computer that isn't a
Cube or iMac, the fan and drives are going to raise the ambient noise
so high that having 50dB of real world signal to noise is doing very
well. (Ambient computer noise is about 40-50 dBA; running the amp
above 95-100 dBA hurts my ears).
The quantisers used in the frequency domain obviously have a big role
to play here, but making pre-filtering a necessary separate stage is
going to disappoint.
Another great test case, BTW, are the Sony Glenn Gould editions of
his Bach pieces - you can hear the piano, and faintly in the
background Glenn humming to himself. Opinions vary on whether this
humming is annoying and should be removed, or a key part of the
performance.
At 4:36 pm -0800 21/3/01, Monty wrote:
> > Conversely, if it is random, you don't have to model it precisely,
>> just use an RNG and scale down. Or, even better, filter it out with a
>> noise gate before moving to frequency space.
>>
>> Non-random noise (like the NASA ionosphere sample I posted earlier)
>> is trickier, especially for a frequency-domain codec.
>
>You've hit the nail on the head. How do you distinguish the two?
>It's an NP-hard problem [at least] in the general case. If it wasn't,
>compression would be easy.
Two approaches come to mind.
1. Define a set of presets for filtering that match certain kinds of
music, and let the user choose (Over-produced pop that has a dynamic
range of <10dB being an obvious class, classical music another,
speech another).
2. Look for obvious kinds of noise in the frequency domain (linear
ramps below a certain level?) Don't encode these frequencies
directly, but generate shaped noise and encode this as a separate
component. This is not trying to solve the hard problem, but get the
data into a better shape for your compression algorithm before
calling it.
There is a huge industry of hardware products that do this kind of
pre-filtering for MPEG video.
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Vorbis-dev
mailing list