Re: Stereo > Mono Downmixing on iOS
Re: Stereo > Mono Downmixing on iOS
- Subject: Re: Stereo > Mono Downmixing on iOS
- From: Brian Willoughby <email@hidden>
- Date: Tue, 05 Apr 2011 19:09:00 -0700
On Apr 5, 2011, at 05:27, tahome izwah wrote:
2011/4/4 Brian Willoughby <email@hidden>:
On Apr 3, 2011, at 23:49, tahome izwah wrote:
Care to share any pointers?
Sample Rate Conversion is one good example. See:
http://src.infinitewave.ca/
Apple's AudioConverter SRC in CoreAudio comes in very close to the
top of
the list in quality. That site does not strictly have a "list"
but you can
browse the various SRC implementations and find the best performers
interactively. That said, the iZotope 64-bit SRC is just about
the only one
which outdoes Apple's (presumably 32-bit) implementation. I'm fairly
certain that the 64-bit implementation is the bulk of the reason
for the
increased performance. Note the noise floor of 24-bit and 32-bit SRC
algorithms, and compare the nearly-silent 64-bit implementation.
"Nearly silent" is a matter of context. For everything I've done so
far 32 bit floating point precision has always been "enough" (another
POV term). IMHO, nobody can reproduce let alone actually hear noise
below -100 dB DFS in a digital system so I was curious if there is
really some sort of double blind study that would clearly show that
64bit is better than 32bit from a perceptual perspective. Of course,
you can never use too many bits, but I have always been more inclined
to doubt the usefulness of doubling the bandwidth in practice. Hi end
audio and voodoo seem to have a lot in common, and unless someone can
really provide some shred of proof that 64bit is really making my DSP
sound better I'll happily settle for using twice the bus bandwidth to
provide good sound instead of halving it to provide supposedly better
sound.
My 2 cents, FWIW
The only problem with your 100 dB S/N ratio is that it treats all
"noise" as if it is the same. Noise from analog sources is typically
Gaussian and entirely uncorrelated to the signal. The human ear
+brain system is well evolved to ignore natural Gaussian noise. In
contrast, digital noise such as quantization noise, truncation noise,
rounding noise, and even some dithering noise can be detected because
it is either highly correlated to the signal or at the very least non-
Gaussian in nature.
Another factor is that it is entirely possible and well-proven that
signals below the noise floor can still be discerned by the human
hearing system. Thus, if your algorithms are entirely oblivious to
what occurs below -100 dBFS, then there could easily be audible
problems.
Basically, different algorithms need different bit depths. Summing
is certainly fine in 24-bit fixed or 32-bit float. Gain operations
can produce 48-bit results, depending upon the number of significant
digits in the scaling factor. Once you leave the time domain and
enter the frequency domain, various aspects of the math can result in
requirements for very deep words. Sometimes this can be avoided by
allowing the frequency response to vary slightly away from the ideal
desired response. However, sometimes it is not possible to avoid the
need for significantly more than 32-bit resolution.
Since this thread started with stereo-to-mono down-mixing, it's
fairly easy to say that 32-bit is plenty. Only if other processing
were added would a wider bit-depth be needed.
Brian Willoughby
Sound Consulting
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden