Re: [linux-audio-dev] float a/d (was Linux support for IEEE1394 mLAN?)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] float a/d (was Linux support for IEEE1394 mLAN?)
From: Karl JH Millar (kmillar_AT_MIT.EDU)
Date: Sun Sep 24 2000 - 23:58:16 EEST


Benno wrote:

> I fully agree: I'm by no means an audio quality expert, but
> the calculus lessons tells me that 32bit float is NOT enough for high
> quality audio.
> (as you said: mix 128voices together and you might loose 7bits in precision
> in some cases, that means 24-7 = 17bits ! do some more processing and
> we see that we go below the 16bit consumer audio quality !)

Loosing 7bits precision only occurs in somewhat pathological case. Typically
you would lose half as much, ie 3 bits precision. (The reason for this is
that the errors will be distributed randomly).

Tom: >But aren't standard high quality 24 bit DACs enough ?

Not only are they enough, but noone can make a high quality 24 bit DAC anyway
(or at least not cheaply). An ideal 24 bit DAC is capable of producing
voltages accurate to a part in 10^7 or better. The only
way I know of getting this kind of accuracy involves an electricly shielded
room, a large array of superconducting Josephson junctions immersed in liquid
nitrogen and a precision microwave signal. This kind of setup costs many
tens of thousands of dollars.

Of course the background noise in your silenced studio is going to appear
in the lower bits of a 24 bit signal anyway, and your microphone is unlikely
to be that accurate either.
As far as I can tell, there is no point at all in trying to get better
accuracy than 24 bits. It just doesn't make sense.

> The problems mostly lie in the audio software because some apps provide
> too little internal precision (by doing all using 32bit floats)).
>
> And some more questions arise when we talk about PPC Altivec / PIII SIMD
> instructions:
> as we know these instruction can peform up to 4 32bit float operations
> simultaneously.
> That means great speed, but I think in some cases , the resulting audio
> precision will not be enough to be called "professional audio quality".

Working with 32-bit floats (which have a 24 bit mantissa) is enough for most
types of processing. A lot of the processing that people do (volume changes,
delays, most reverb algorithms, high frequency equalisation, compression) can
be done with 32-bit floats, while only adding any noise in the bottom bit. One
could pass a signal through thousands of such processors before you'll start
hearing quality problems.
For some types of processing however, you need a lot more precision. In
particular, for processors that contain a significant amount of feedback (eg a
low-frequency IIR filter) you often need to use a lot more precision in the
processing. Otherwise you can process a 24-bit signal down to 16-bits (or
worse) in a single step. Similar problems exist for low-frequency FIR filters
too.

Karl.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Sep 25 2000 - 03:17:13 EEST