On Mar 7, 2011, at 08:46, Paul Davis wrote: > On Mon, Mar 7, 2011 at 11:25 AM, Brian Willoughby > <bri...@sounds.wa.com> wrote: >> All professional tools use conversion factors such as 0x8000 for >> float-to-int and int-to-float because it has a single significant >> bit, and thus this factor does not increase the bit depth of the >> samples passing through. > > i'm not sure what "all" means, but i don't think its remotely as clear > cut as you insist: > > http://blog.bjornroche.com/2009/12/int-float-int-its-jungle-out- > there.html > > moreover, its critically important to note that this issue arises > primarily for float<=>16 bit int conversions, where generally > dithering should be done anyway. the noise introduced by dithering > will be at least on the same order of magnitude as the 0.005% error > caused by different choices in the conversion factor. conversions to > other bit depths don't face (precisely) the same issue. > > its great that you're absolutely convinced that your view of this is > right. i generally have a lot of respect for your opinions. the > problem is that there are 4 other people whose opinions i respect > equally, and when i've discussed it with them, my only conclusion in > aggregate has to be "it depends".
Thanks. I should qualify my statements by explaining that I'm talking about real music that comes from an A/D, with the understanding that 24-bit integers in twos-complement format are the standard. I should also point out that my goal is to preserve the original bits unless an operation other than format conversion is specifically enabled. In the context of FLAC - a lossless audio codec - this is entirely compatible. My statements would not be appropriate for synthesized waveforms that did not originate in the real world by way of A/D converters. In that world, there is freedom to deviate from the specific limitations of A/D converters, and thus there might be some hesitance to apply a default conversion that might clip certain synthesized waveforms that were created without concern for the realities of analog conversion. In that case, I would suggest that those who create such entirely synthetic waveforms should take the extra steps necessary to condition their signals for actual D/A converters, and then a transparent float-to-int conversion would not cause any additional problems. It's only when the synthetic algorithms rely on side effects of a lossy conversion that things get hairy. Brian _______________________________________________ Flac-dev mailing list Flac-dev@xiph.org http://lists.xiph.org/mailman/listinfo/flac-dev