Re: long double data type
Re: long double data type
- Subject: Re: long double data type
- From: Dominik Peklo <email@hidden>
- Date: Wed, 16 Jun 2010 08:38:09 +0800
Excellent topic, gentlemen.
Thanks for everyone sharing the implementation details. Shame on those laughing for they have no clue what they're talking about. Precision in DSP routines and precision of final quantized/dithered output sample are two very different things.
Personally, I would take fixed point over floating point any day. In audio, there's no need for extended dynamic range afforded by exponent. The range of interest is only 0dBFS and down. 32b float wastes 8b on exponent, extending dynamic range by 256dB over the 144dB afforded by mantissa.
There's little point in keeping some inaudible signal -200dB down at 24b resolution. The second it gets added with a stronger signal it gets discarded or severely truncated. Defying the purpose of keeping it at high resolution.
32b fixed point gives 192dB already and is higher resolution than 32b float for signals above -48dBFS which is likely the majority of samples. No significant bits ever get discarded by summing individual signals.
Moving to 64b, it's 53b vs. 64b of resolution double vs. fixed. In order to benefit from double, the signal would have to be bellow -66dBFS, which is very low already.
Depending on algorithm and the magnitudes of internal variables, it might make more sense to use fixed point over floating point. Care has to be taken especially with recursive filters where state variables keep decreasing in magnitude - that's where float is of good use.
Now 128b fixed point is ways better than the 80b extended double, no question about that. I'm not sure how they compare performance-wise, but for Luigi's objective of high resolution it's 64b vs. 128b. Plus the memory taken is the same.
Regards,
Dominik
_______________________________________________
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