On Thu, 2007-02-22 at 21:45 +0000, Tim Orford wrote:
> 32 bit seems to be plenty for us mere mortals with more practical
the issue is not complexity, its whether the operations produce results
outside of the range of a 24 bit integer. if they do not, then floating
point is 100% accurate, and greater resolution/bit depth is of no use.
if they do, then things get more interesting.
> Some nice products do use 64 bits (or other high resolution integer
dither is a perennial subject on many pro-audio/DSP mailing lists.
having just survived the latest one on another list, i don't wish to
start another here. i will just note that Nika is smart, but his paper
skips over some basic issues in a way that causes his results to appear
more important than they actually are. adding two 24 bit numbers does
not create a 48 bit result. multiplying a 24 bit number by a relatively
small number does not create a 48 bit result. in fact, for the vast
majority of possble 24 bit sample values and the vast majority of gain
coefficients used in audio processing, the result is still a 24 bit
number. his results/conclusions are not incorrect, they just apply to
the majority of data flow through a typical 32 bit floating point
> This old article also points out some mathematical problems:
many of these articles seem, like Nika's, to assume that the full
representational range of the 32 bit floating point number will be in
use. it is certainly true that there are many inaccuracies when
representing computational results with floating point numbers *BUT*
these do not apply (or certainly do not apply in the same way) when the
range of values that you are representing remains within the bounds of
the 24 bit mantissa.
for most audio, most of the time, this condition is satisfied.
i will admit to a minor uncertainty in this when it comes to the
normalized form that is generally used: i.e. full scale (0 dBFS) samples
are represented not by 2^24-1 but by 1.0. i have a suspicion that this
still allows 100% accurate computation as long as the final answer is
less than 1.0, but on this i am slightly less sure than i would like.
> The primary use for 64 bit is the critical mastering stage, where it
as i've explained repeatedly, the "64 bitness" of a processor is
irrelevant when discussing 32 bit floating point math except for an
increase in bus bandwidth, register width and a few other factors that
affect speed, not accuracy.