Thanks for your comments. I must have been writing my reply when you posted yours. =:) I guess I was on the right track.
-Greg --- Phil Frost <[EMAIL PROTECTED]> wrote: > On Wed, Aug 01, 2007 at 02:12:41PM -0400, Paul Winkler wrote: > > On Wed, Aug 01, 2007 at 10:45:59AM -0700, Gregory Alan Hildstrom wrote: > > > Are there any wav/audio programs out there that use the full float range > > > of 3.4e+/-38? It > seems to > > > me that this larger range would use more of the 32 bits. > > > > That's not how float works. *Any* floating point number uses the full > > precision of all 32 bits (or 64, or whatever). This is because the > > radix point (like decimal point, but binary) can be anywhere. > > > > What you're saying would be true of fixed-point numbers. > > > > http://en.wikipedia.org/wiki/Floating_point > > I reckon there is more to it than that. I'd say any AC signal centered > on 0 uses at least all the bits available in the mantissa. Clearly one > can not be using all 32 bits if one's signal does not have 2**32 > possible values. I can't tell you off the top of my head how many > distinct values can represented within -1 to +1 with a 32 bit float, but > since it's less than the full range I can tell you it's more than 2**24 > and less than 2**32. > > True, a bigger range may not result in a higher quality signal, but in > the context of compression, it may be important. No value between -1 and > +1 has a biased exponent greater than 0x7f. Consequently, there are at > best 2**31 values an audio signal could use, and one bit that will be > always zero. > > Of those 2**31 possible values, the vast majority of them lie around > zero. Cutting the range in half (to -.5 to +.5) excludes only 1/127th of > the possible values. After cutting the range in half 64 times to about > +/- .00000000000000000005421, roughly half of the 2**31 previously > possible values still lie within this range. Would you say half of a > typical audio signal lies within this range? I'm not about to go write a > program to find out, but I hope you will accept my guess of "no". The > point is this: floating point numbers have a lot of potential values > around zero that are unlikely to be used. > > But wait, it gets worse! When was the last time you saw an audio > interface with a 31 bit analog to digtal converter? Maybe they exist, > but I consider myself lucky to get 24 bits. No matter how you cram 24 > bits in to a 32 bit float, you still have 8 bits that mean nothing, even > if they have been shuffled around a bit. > > I would suspect that many ardour sessions contain WAVs with floats which > came from a 24 or 16 bit source. I haven't looked at the jack source, > but it seems to me that the conversion between 32 bit floats in +/- 1 > and 24 bit integers can be lossless. A trivial archiver could do this > conversion and make the session roughly 75% of the original size. > > Of course, if this isn't the case for some sessions, this trivial > archiver can't be useful and lossless anymore, which raises another > point worth considering: if testing a lossless compression for float > signals, consider testing with something that didn't come straight from > a digital integer source. I'd suspect that IIR filters and reverbs in > the right circumstances will fill in a good many of the values near zero > that may typically be unused. > _______________________________________________ > Linux-audio-dev mailing list > [email protected] > http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev > _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev
