• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: 64bit processing - Why?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
  • Follow-Ups:
    • Re: 64bit processing - Why?
      • From: Brian Willoughby <email@hidden>
References: 
 >Re: 64bit processing possible? (From: Evan Olcott <email@hidden>)
 >Re: 64bit processing possible? (From: William Stewart <email@hidden>)
 >Re: 64bit processing possible? (From: Brian Willoughby <email@hidden>)
 >Re: 64bit processing possible? (From: David Duncan <email@hidden>)
 >Re: 64bit processing possible? (From: Brian Willoughby <email@hidden>)
 >64bit processing - Why? (From: Ethan Funk <email@hidden>)
 >Re: 64bit processing - Why? (From: Brian Willoughby <email@hidden>)
 >Re: 64bit processing - Why? (From: Stephen Blinkhorn <email@hidden>)

  • Prev by Date: Re: 64bit processing - Why?
  • Next by Date: Re: 64bit processing - Why?
  • Previous by thread: Re: 64bit processing - Why?
  • Next by thread: Re: 64bit processing - Why?
  • Index(es):
    • Date
    • Thread