Re: 64bit processing - Why?
Re: 64bit processing - Why?
- Subject: Re: 64bit processing - Why?
- From: William Stewart <email@hidden>
- Date: Thu, 30 Jul 2009 20:23:17 -0700
I believe it is possible to configure SSE registers to deal with
double (2) or single precision floats (4) - that is one difference
between SSE and Atlivec because Altivec just dealt with single
precision floats.
Point(1)
DSP processing
I'd also add (or restate) my original comment that it is not uncommon
to use double within the DSP, but we have generally found it more
efficient to use doubles sparingly where the extra precision is worth
the CPU cost, and then other places to use single precision where
there is no gain in using doubles. This is really a case by case
analysis and knowing the affect of precision on your filter designs
and uses.
Whether you want to keep a whole signal chain in double or single
float precision is an interesting debate with various costs and
benefits as is being discussed (don't have much to add to those points)
Point(2)
AUHAL
As for the output stage. The best DAC/ADC performance I've seen that
is commercially available is within the 110 to 120 dB range. Its hard
to get up to the 120dB mark. That still leaves 4 bits of dynamic range
unused from a 24 bit signal path (which single precision floats can
represent). So, most (if not all shipping at least) available
converters use 24bits and as Ethan explained, this is quite a wide
dynamic range (bleeding ears 'n all)!
Ok, so going from the single float to the 24bit int. You have NO loss
or precision when doing this conversion. There is no truncation or
other loss of resolution in this transformation (provided that the
float is within the nominal range of -1 < 1).
If you have a double precision signal chain, you can do the dithering
yourself to single precision float. That is then faithfully preserved
through the rest of the signal chain to the 24bit converters.
So, I don't see how using AUHAL poses a problem here. But, maybe I'm
just stupid!
Bill
On Jul 30, 2009, at 7:12 PM, Stephen Blinkhorn wrote:
On 30 Jul 2009, at 18:07, Brian Willoughby wrote:
I will try to be brief (which is uncharacteristic for me, I admit).
There are more factors than simple dynamic range
My thoughts exactly. The clue is in the name?: double _precision_.
A modular-ish synth plugin I am working on passes signals around
internally with double precision. A while ago I changed the whole
thing so it worked with 32 bit floats instead and I instantly felt a
loss of fidelity even though the AU outputs are obviously 32 bit
floats. Lots of people are starting to conduct tests like this and
many people report similar findings.
I don't think anyone has mentioned this yet and correct me if I'm
wrong but you can't do double precision computation with SSE/Altivec
which could be significant for certain plugins.
Stephen
_______________________________________________
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
_______________________________________________
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