• 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: Brian Willoughby <email@hidden>
  • Date: Thu, 30 Jul 2009 18:28:05 -0700

Dither is most certainly additive. You want to avoid it as much as possible, postponing until the final stage.

Strange thing is that summing should not involve anything that would require increased precision, and yet some people claim to hear better results from summing at 80 bits rather than at 32. The reason I'm surprised by these claims is that pure summing is only addition, and you can sum large numbers of channels without adding too many bits, certainly far less than double.

As soon as you get to gain (or EQ) or anything involving multiplication, you're forced to truncate in some way. Even double- precision involves truncation. So the choice is between truncating to 64 or to 32. Obviously, the quantization noise is 144 dB louder when truncating to single-precision.

Although it seems like you should be able to connect all processing via single-precision - a hypothesis that you may have abandoned now that you know dithering is cumulative - there's also the consideration that some effects are simple building blocks which are used together to create a more complex effect. In these cases, being forced to use single-precision between effects would give an unfair advantage to developers who combine the building blocks internally at double precision.

There seems to be some controversy, though, Some believe that double precision allows dithering to be completely skipped until the very end, with dither done only once from 64 or 80 to 24. Others maintain that even the 64-bit multiplication should be dithered, even though the errors are more than 384 dB down, and that camp are happy to deal with the cumulative dither at nearly every stage of the digital processing. It's unclear to me whether the members of the latter camp simply prefer the sound of dither noise or are actually hearing the results of removed quantization noise. I'm leaning towards the former camp, but still prefer the option to try things both ways.

Brian Willoughby
Sound Consulting


On Jul 30, 2009, at 17:57, Ethan Funk wrote:

I hope I have not miss understood: we are talking about the numeric format used *between* processing units not the format used within the unit correct?

I have no complaint about using double precision numbers were non- linear, large coefficient array FIR or recursive IIR DSP operations are being performed. In such situation, it may be and often is called for. But why force all the other simple summing and scaling that goes on in the chain before and after to be double precision just for the sake of a section of DSP code that needed the precision internally? I bet the overhead of doing a double to single with dither before coming out of a piece of DSP code is small compared to having to drag doubles thought the whole audio chain.

If I go from single to double, then *dither* back to single, I don't lose anything from the original single. I should be able to do that over and over again with out degradation correct? Or is my assumption wrong - is the dither "noise" additive?

Ethan...

_______________________________________________
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: Richard Dobson <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: Ethan Funk <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