Log in

View Full Version : 32-bit float


Pages : [1] 2

Thunderbolt8
30th July 2011, 11:37
Im wondering what or if theres a difference in quality (meaning a deviation from bit-perfection) of having the same music as 32-bit float or 24-bit (int).

assuming a soundcard can record in 24-bit but still do processing with 32-bit float, could the recorded file processed in 32-bit float then have more quality than before? I guess not.

but what if then dithering down to 24-bit from 32-bit float? is there a real loss of quality? or are only zero-bytes being reduced?

it seems that after certain processes like resampling, at least some tools automatically convert the processed file to 32-bit float during that process (of course, resampling is already loss of quality, but I'd like to know just about the difference in bitdepth)

IanB
30th July 2011, 23:53
Processing with 32-bit floats allows you to maintain the resolution of the original 24-bit data, independent of scale.

If you change the level down by 20db as part of your processing then back up by 20db latter, with floats you lose nothing, with 24-bit integers you would trash the bottom bits.

If you change the level up by 20db as part of your processing then back down by 20db latter, with floats you lose nothing, with 24-bit integers you would overflow and trash the top bits.

Modern processors eat 32-bit float computations for breakfast. In most cases floats are just as fast as integers especially when you factor extra scaling protection code into the integer algorithm. The 32-bit float version of the ResampleAudio() filter I wrote for Avisynth runs just as fast as the original 16-bit integer version and the integer version has to use 32-bit and 64-bit intermediate calculations to avoid overflow and/or truncation.

Thunderbolt8
31st July 2011, 00:09
does the soundcard natively have to support 32-bit processing for that to work? or is it fine if only the software does this?

and what would be advised when having 32-bit float tracks, but the soundcard does only allow output up to 24-bit? letting the card/driver do the resampling at playback? or dithering down by software like izotope?

Thunderbolt8
4th August 2011, 13:45
considering that converting from 32-bit float to 24-bit int is supposed to be lossless and I want to do this conversion with a program like izotope rx 2 advanced, I can save the output at 24-bit, but then have to choose between to save the file with dithering or no dithering/truncate. since dithering doesnt seem to make much sense here, choosing truncate doesnt harm the audio quality, does it?

I can also choose to tick 'preserve non-audio data' in both cases, what is this option good for and would it make sense in either situation?

another thing regarding resampling: what exactly does filter steepness mean? I read this: "Higher steepness will reject unwanted frequencies but cause more ringing in the time-domain and a higher CPU load".
but what does 'more ringing' mean in the field of audio, is this bad for the sound quality?

Ghitulescu
4th August 2011, 15:18
32b float is only a "computational" scheme. No real audio files are 32b. Why are you so concerned about an infinite small loss? Not very long time ago, all studio processors had 16b engines and not so many people complained about (ok, there is the old fight between analogists and digitalists). Today even the cheapest processors feature 24b engines (the supporters of analog audio will complain about 24b, too).

24b should be enough for most applications, considering that 24b of resolution would encompass EVERYTHING, from the silence of the grass growth to noises way beyond turbojets - there will always be a headroom, not to thrash both ends. That's the job of the sound engineer. In fact, most 24b music has a dynamic of only 18-20b. Much more important is the bandwidth (sampling, ie 48, 96, 128kHz etc.).

From 24b to 32b float there's no dithering. Only for reconversion may be one. Since there are two schools of thought, use dither or truncate - as you think it would sound better. That's the reason of having both - should one of them be always superior, the "loser" would have been removed.

hello_hello
4th August 2011, 16:44
another thing regarding resampling: what exactly does filter steepness mean? I read this: "Higher steepness will reject unwanted frequencies but cause more ringing in the time-domain and a higher CPU load".
but what does 'more ringing' mean in the field of audio, is this bad for the sound quality?

Ringing is a bad thing. Whether you'll ever be able to hear it is another story. http://en.wikipedia.org/wiki/Low-pass_filter

Thunderbolt8
4th August 2011, 19:02
32b float is only a "computational" scheme. No real audio files are 32b. Why are you so concerned about an infinite small loss? Not very long time ago, all studio processors had 16b engines and not so many people complained about (ok, there is the old fight between analogists and digitalists). Today even the cheapest processors feature 24b engines (the supporters of analog audio will complain about 24b, too).

24b should be enough for most applications, considering that 24b of resolution would encompass EVERYTHING, from the silence of the grass growth to noises way beyond turbojets - there will always be a headroom, not to thrash both ends. That's the job of the sound engineer. In fact, most 24b music has a dynamic of only 18-20b. Much more important is the bandwidth (sampling, ie 48, 96, 128kHz etc.).

From 24b to 32b float there's no dithering. Only for reconversion may be one. Since there are two schools of thought, use dither or truncate - as you think it would sound better. That's the reason of having both - should one of them be always superior, the "loser" would have been removed.its all about bit perferct output. I simply want that so I can concentrate on the music, knowing that no tinkering has been done. its just a thing for the brain to relax, no matter how small or inaudible the difference might be.
therefore, hearing tests also wont be any good, I need the mathematical correct solution.

so for reconversion of 32-bit to 24-bit, theres definately a certain loss to be expected, no matter what method I choose?

Ringing is a bad thing. Whether you'll ever be able to hear it is another story.how would it sound, what do I have to listen for to identify ringing?

IanB
5th August 2011, 02:05
Unless you have some digital synthesiser generated music, the sound recording you have will at beast have come via a microphone (physical transducer), a microphone pre-amplifier (noisy analogue device) and then an Analogue to Digital converter. More probably there will be an assortment of mixing equipment involved as well. Out of all this you get a 24bit PCM data stream. This is a set of integer numbers between -8388608 and 8388607 representing the amplitude of the sound and the analogue noise.

To more easily process this data it is converted, losslessly to 32 bit IEEE floating point numbers Unless the processing algorithms cause the numbers to exceed the maximum or minimum permissible floating point value the original sound data will be intact although modified as required by the processing algorithms.

Now when it comes time to play the sound back the 32 bit IEEE floating point numbers need to be converted back to a 24bit PCM data stream. Okay the floating point number can have a values of 123456.789. Do you convert it to 123456 or 123457 ultimately it does not really matter the difference between the 2 values is less than -138db of full scale. And the best analogue amplifiers might approach 100db noise floor. The crap in domestic PC sound cards is often lucky to achieve 50db.

So do you really care about a -138db difference.

Thunderbolt8
5th August 2011, 02:11
yes, I just want to know whats the best way to get it as correct as it can be.

IanB
5th August 2011, 02:44
Use the software path, it might be a little slower but that way it is at least reproducible, the alternative is a black box.

Thunderbolt8
5th August 2011, 08:55
alright, Ill dither down to 24-bits then. thanks

IgorC
5th August 2011, 10:00
Every electronic component adds thermal noise. The best real performance of DACs is 120-126 db (20-21 bits). Doesn't matter if it's 32 or 24 bits for playback.
You can make your own study. There are a lot of articles and information about it.

Ghitulescu
5th August 2011, 10:12
If you understand the DAC as the device and not as the chip. The chip might have the specs, but the analog part surrounding it sinks the values to ~120dB for really good gear. Beware, most el cheapo manufacturers cite the specs of the chip not of the card :devil:

And please don't get into the thinking pit of "24b is better than 16b", or "132dB is better than 98". In terms of noise you cannot distinguish -98dB (a good CD) from -132dB (a good DVD-A, SACD or BD-A). Few people can go beyond -70dB (mostly because of budget gear), and remember -132dB is not the double of -66dB :) :), electrical doubling occurs each 6dB :) There are pro ADCs that still work on 96/24 and give a much pleasant sound than any budget 192/24 card. Sound is more than [only] figures.

Thunderbolt8
5th August 2011, 20:27
well I cant/dont want to change the device I have. but I can make sure to get the best out of it.

IgorC
5th August 2011, 20:42
If you understand the DAC as the device and not as the chip..
Yep


Few people can go beyond -70dB

Agree. There was some study which has shown that most people couldn't spot the difference already at 12-13 bits (70-80 dB)
The limiting factors are noises of the environment.
People buy expensive soundcards but they hardly can get more than 80 dB because PC fan's noise. It's ridiculous. Today even silent notebooks with good on-board HD audio chip have actually much better quality. Or one should go for silent and treated room with appropriate hardware.


Also there were some successful blind tests where the difference between 16 and 24 bits was spoted.
But it's not for everyone. The conditions of the test were ideal (deep silence, high concentration etc.)
So ~18-20 bits still makes sense. More than 20 bits doesn't have any advantage for playback.

http://www.hydrogenaudio.org/forums/index.php?showtopic=80294&st=25

http://www.hydrogenaudio.org/forums/index.php?showtopic=81467&hl=

IgorC
5th August 2011, 20:45
well I cant/dont want to change the device I have. but I can make sure to get the best out of it.
That's is the whole point. You can't get more than 120-126 dB (20-21 bits) of ANY device.

The thermal noise is everywhere.

pandy
10th August 2011, 10:07
only if you use full 24bit (ie up to 0dBFS from -inf) mostly good audio not going up to 0dBFS so higher resolution can be used for noise-shaping and lower quantization distortions.
Also white or uncorrelated noise is not a problem - problem are with signal correlated distortions - this can be easily heard as unwanted sound coloration (well maybe not by the people that listening very frequently and loudly loosely compressed audio ;) )

Ghitulescu
10th August 2011, 12:56
only if you use full 24bit (ie up to 0dBFS from -inf) mostly good audio not going up to 0dBFS .....

The reason for going up to 24b (through 18, and then 20b) was not the accuracy of the WAVE, nor the noise floor, but the sound processing. It was very comfy for the sound engineer to set the level at -18dBFS and still have a reasonably dynamic and a lower noise floor. It was very comfy for the sound engineer to perform any processing without the risk of overloading the WAVE (clipping) or diminishing the dynamics. More digits, less rounding errors.

IgorC
10th August 2011, 16:54
Also white or uncorrelated noise is not a problem
It is a main problem for playback.

Let me point that the original poster asks if there is any benefit of high bit depth for playback.
There is point to go for 32 bits during processing the audio (mixing, special effects etc) but not for final playback.

It isn't matter of point of view but the fact.

There is example of high quality ADC 24 bits which still has a real 20-21 bits.
http://focus.ti.com/docs/prod/folders/print/pcm4222.html

pandy
12th August 2011, 09:31
In fact - 32 bit float is in real life like 24 bit int - float is only used for calculation to avoid problems with unexpected change of range - but 32 bit float is not enough with some algorithms - so many Audio DSP use format like 48 - 56 bit int to keep decent headroom and accuracy for calculations.

So in real life 24 bit int can be sometimes better than 32 bit float.

This DAC is one of the best http://focus.ti.com/docs/prod/folders/print/pcm1792a.html - it offer You 132dB dynamics however in theory thanks to noise-shaping and multiple DAC configuration You should be able (at least in theory achieve more than 144dB dynamics).
Even for 16bit DAC You can easily achieve more than 130dB dynamics with proper processing.

IgorC
12th August 2011, 19:08
it offer You 132dB dynamics
132dB is equivalent to 21-22 bits.

While You will trying to hear those last 21-22 bits You will be getting a permanent hearing damage because of excessively loud sound. (threshold of pain is at ~130 dB).

Thunderbolt8
12th August 2011, 21:04
whats the loudness level you need to hear sound beyond 16 bit?

IgorC
13th August 2011, 20:25
http://tinyurl.com/4xw5xgk

Ghitulescu
13th August 2011, 21:19
whats the loudness level you need to hear sound beyond 16 bit?

Compared to what?

Thunderbolt8
14th August 2011, 00:03
Compared to what?
you said that 132dB is equivalent to 21-22 bits. so which decibel level is equivalent to 16 bits?

Ghitulescu
14th August 2011, 07:59
A dB is a comparison unit of measure. It compares a value with another one.
16b (65536 discrete levels) equals ~98dB from the lowest to the highest value.

Thunderbolt8
14th August 2011, 17:51
so does that mean as long as I dont turn my music louder than 98db I cant hear the difference between 16 and 24 bit?

hello_hello
14th August 2011, 22:43
so does that mean as long as I dont turn my music louder than 98db I cant hear the difference between 16 and 24 bit?

98db is the maximum possible difference between the quietest and loudest sounds. How much you amplify the audio doesn't change it's dynamic range and just because a particular format offers a maximum theoretical dynamic range doesn't mean it's the same as the dynamic range of the audio itself. For instance CDs can have a dynamic range of about 90db http://en.wikipedia.org/wiki/Dynamic_range#cite_note-Fries2005-9 but the average CD containing pop music probably only has a dynamic range of about 10db or less.

If you used the full dynamic range of a CD, by the time you turned it up to the point where the very quietest parts are easily audible the loudest parts would probably be getting uncomfortably loud. If you kept the quietest parts at the same level and increased the dynamic range to 130db, assuming your sound system was capable of reproducing it, you'd probably be in ear damage territory while listening to the loud bits.

Keep in mind that to the human ear, a 10db increase in volume is perceived as a doubling of the volume, or being twice as loud (it varies according to the starting volume and individual perception but 10db is generally considered to be double).
What sort of audio sources are you listening to and what's the signal to noise ratio of the equipment you're using?

IanB
14th August 2011, 23:04
Also remember that the quietest sound would used the values +1 and -1, which is a square wave Not very nice to listen to and not a very faithful representation of the original signal. (The loudest uses 32767, 16 bit and 8388607, 24 bit).

You probably want more values available to accurately represent your quietest sounds, say well more than 8 bits worth. You want the quietest sounds to disappear from your hearing range before they start to get quantisation noise effects. Thus use 16 bit storage, but claim only ~8bits for dynamic range. Or use 24 bit storage, but claim only ~12bits for dynamic range.

Ghitulescu
15th August 2011, 10:31
so does that mean as long as I dont turn my music louder than 98db I cant hear the difference between 16 and 24 bit?

If you want to hear both ends, 0dBFS and 98dBFS, just forget it with a normal, even HiFi, AVR. Nobody can have the whole dinamic range a CD at home, and few can have it even in a studio. People say that the best CDs were manufactured in the early 90ies, yet many studio old timers of that time had a dynamic range of only 90dB. Most of modern, payable, AVRs stop at -70dB and most loudspeakers also have an optimum power (in other words, they are designed for lower - read home HiFi, or for higher volumes -read live events, concerts, but not for both). One cannot use a HiFi LS for a live concert, it will last maybe 20 minutes with luck, nor a live LS will be able to reproduce the lower levels in an adequate way.

Piece of advice: leave the things as they are - chances are that modifying what the studio gave you will result in a worse situation. Of course, unless you know what you're doing, which is not exactly the case here. If you care about quality, make sure your windows won't interefere with the signal, use ASIO or similar drivers.

IgorC
16th August 2011, 03:03
Yesterday I've made an experiment.
During the night with deep silence I put the minimum volume I could barely hear in foobar player. Foobar's volume info said it was -88 dB. I could barely differentiate the music and the noise of notebook's cooler (which is very very quiet without CPU load. And CPU is low-wattage 25W). Then I started to increase the volume. The listening was comfortable until around -8dB. Something louder was already unpleasant. That's around 80 dB. And it with near-ideal conditions: DVD-Audio material, reference class headphones and external USB soundcard during night (deep silence). Also I've must shut down heater and took away the wall clocks.

IanB
16th August 2011, 03:34
So letting 0db be the peak value 8388607 in 24 bit.
-8db would be the peak value 3339565, 22 bits.
and -88db would be the peak value 334, 9 bits.


And letting 0db be the peak value 32767 in 16 bit.
-8db would be the peak value 13045, 14 bits.
and -88db would be the peak value 3, 2 bits.

So it would seem for this thought experiment that 16bit PCM is struggling at the bottom end to adequately represent the original signal, this is more an indictment on PCM being a lousy way to encode audio information.

Ghitulescu
17th August 2011, 15:20
Yesterday I've made an experiment.
During the night with deep silence I put the minimum volume I could barely hear in foobar player. Foobar's volume info said it was -88 dB. I could barely differentiate the music and the noise of notebook's cooler (which is very very quiet without CPU load. And CPU is low-wattage 25W). Then I started to increase the volume. The listening was comfortable until around -8dB. Something louder was already unpleasant. That's around 80 dB.
You have an outstanding hearing.
However I wouldn't use a computer for such tests, I would use calibrated tools (tracks recorded with various signals (usually at 1kHz, as this is the frequency most heard by the human ear) at various levels, calibrated CDplayers, and calibrated headphones, tipically closed not open like the vast majority of reference headphones - exactly like in a testing room).

IgorC
17th August 2011, 18:43
open like the vast majority of reference headphones
Yes, you're right. The isolation isn't priority for reference headphones. But if I'm not wrong the isolation is reached at cost of other characteristics (for example price, frequency response)

hello_hello
17th August 2011, 20:19
You have an outstanding hearing.
However I wouldn't use a computer for such tests, I would use calibrated tools......

I don't think he was trying to test the range of his hearing, more what would be a comfortable dynamic range when listening to typical audio sources, although to me his test didn't seem to indicate his hearing is anything other than normal.

I tried the same thing myself, except under more "typical" conditions. At -88db I couldn't hear anything from my speakers while running them at their usual level, even with my ear pressed up against them. I could hear a little hiss, but no audio until I turned the amplifier up.
Under normal conditions, the practical noise floor for my system seems to be only around -50db (according to foobar's output with the amplifier turned up until just before background hiss became audible), although with an adjustment for the level of my replay-gained MP3s, the nearby computer noise and the central heating, I think 80db could be expected under "ideal" conditions.
Even a 50db dynamic range seemed more than enough to me for listening to typical audio under typical conditions. Taking foorbar's volume up to 0db wasn't quite uncomfortable (although that tends to be fairly relative and frequency dependant anyway), but it was plenty loud.

In my case when watching movies I run a compressor on the audio (probably around 10db) while watching them in my usual 50-60db of dynamic range listening environment. I guess it follows the higher the noise floor, the less dynamic range you'd want, but I've never been a huge fan of overly-dynamic soundtrack audio anyway, even under more ideal conditions.

Edit: Thinking about it, there's probably a couple of other factors which reduce my dynamic range. I was only running the soundcard's volumes at about 75%, and I've got two PCs (only one was on at the time) running into a little mixer which outputs to the amplifier.

IgorC
18th August 2011, 03:58
I don't think he was trying to test the range of his hearing.

I'm not claiming to be a golden ear or anything but such experiment actually represents a dynamic range (by definition it's ratio between the largest and smallest values) that I could achieve during real playback. Of course there are many other variables around.


At -88db I couldn't hear anything from my speakers while running them at their usual level, even with my ear pressed up against them.

I'm not sure if speakers can be barely representative for such experiments. THD of the speakers are much more higher comparing to headphones and of course no isolation.
It's 10x times more expensive to build same quality audio system with speakers than with headphones.

As Ghitulesu has mentioned such tests should be performed with closed headphones (great sensibility and high isolation).

Ghitulescu
18th August 2011, 08:24
Yes, you're right. The isolation isn't priority for reference headphones. But if I'm not wrong the isolation is reached at cost of other characteristics (for example price, frequency response)

Nope, try distorsions instead ;)

hello_hello
18th August 2011, 09:10
I'm not claiming to be a golden ear or anything but such experiment actually represents a dynamic range (by definition it's ratio between the largest and smallest values) that I could achieve during real playback.

That's what I said.....

I'm not sure if speakers can be barely representative for such experiments. THD of the speakers are much more higher comparing to headphones and of course no isolation.

Well if you're after the dynamic range you could achieve during real playback, and you don't normally use headphones for real playback, I'm not sure why you'd want to test the dynamic range you could achieve during normal playback using headphones.

Ghitulescu
18th August 2011, 14:28
I don't think he was trying to test the range of his hearing, more what would be a comfortable dynamic range when listening to typical audio sources, although to me his test didn't seem to indicate his hearing is anything other than normal.

I tried the same thing myself, except under more "typical" conditions. At -88db I couldn't hear anything from my speakers while running them at their usual level, even with my ear pressed up against them. I could hear a little hiss, but no audio until I turned the amplifier up.
Under normal conditions, the practical noise floor for my system seems to be only around -50db (according to foobar's output with the amplifier turned up until just before background hiss became audible), although with an adjustment for the level of my replay-gained MP3s, the nearby computer noise and the central heating, I think 80db could be expected under "ideal" conditions.
Even a 50db dynamic range seemed more than enough to me for listening to typical audio under typical conditions. Taking foorbar's volume up to 0db wasn't quite uncomfortable (although that tends to be fairly relative and frequency dependant anyway), but it was plenty loud.

In my case when watching movies I run a compressor on the audio (probably around 10db) while watching them in my usual 50-60db of dynamic range listening environment. I guess it follows the higher the noise floor, the less dynamic range you'd want, but I've never been a huge fan of overly-dynamic soundtrack audio anyway, even under more ideal conditions.

Edit: Thinking about it, there's probably a couple of other factors which reduce my dynamic range. I was only running the soundcard's volumes at about 75%, and I've got two PCs (only one was on at the time) running into a little mixer which outputs to the amplifier.

I'll explain to you, but this is valid for the OP too and other interested members as well.

When an AVR says -50dB (if it says), it means that no matter what dynamics the audio signal has, it will be reduced by this number of dB. A turbojet (Boeing 747 :)) yielding 130dB above reference level, if heard over an AVR saying -50dB on its display will be heard as a violin in a concert hall (live, in the first row). One can regard this as a compression threshold. The whole 130dBFS scale is compressed within -130 and -50dB (or 80 dB). A 0dB indication must be interpreted as no reduction at all, the turbojet must be heard as in airport at 1m away from its jets. From the AVRs' point of view.

Now, the story is not at its end. The loudspeakers also have a convertion ratio. That's why 2 different loudspeakers connected to the same AVR in the same conditions will sound differently (in terms of loudness for our case, but also in terms of frequencies, distorsions and so on).

hello_hello
18th August 2011, 17:46
I'll explain to you, but this is valid for the OP too and other interested members as well.

Nothing like having the obvious explained, I guess.

When an AVR says -50dB (if it says), it means that no matter what dynamics the audio signal has, it will be reduced by this number of dB.

And here was me thinking it meant no matter what the dynamics, the audio will be increased by the square root of that number of db.

A turbojet (Boeing 747 ) yielding 130dB above reference level, if heard over an AVR saying -50dB on its display will be heard as a violin in a concert hall (live, in the first row). One can regard this as a compression threshold.

So you're saying -50db will be quieter than 0db?? Wow....

The whole 130dBFS scale is compressed within -130 and -50dB (or 80 dB).

You'll have to explain what you're talking about when you say "no matter what dynamics the audio signal has, it will be reduced by this number of dB" vs. "the whole 130dBFS scale is compressed within -130 and -50dB (or 80 dB)".

A 0dB indication must be interpreted as no reduction at all, the turbojet must be heard as in airport at 1m away from its jets. From the AVRs' point of view.

No.... I think 0db should be be interpreted as a lollipop.

Now, the story is not at its end. The loudspeakers also have a convertion ratio. That's why 2 different loudspeakers connected to the same AVR in the same conditions will sound differently (in terms of loudness for our case, but also in terms of frequencies, distorsions and so on).

Really?? You mean some speakers are more efficient than others, and they don't all have the same frequency response???

Maybe now you could explain what point you were trying to make with your explanation?

Ghitulescu
18th August 2011, 19:09
Sorry, the explanation was not for you, my mistake. It was for people that understand the basics of hearing, electronics and units of measure. You have no idea of any of the three items, yet you plague my posts with silly statements and "trick questions". If you think that you can hide your incompetence and lack of practice behind a courtain of "smart" questions, think again. You don't fool anyone here.

The OP wanted to know whether 24b is better or not than 32b float. He had his answers already given.

hello_hello
18th August 2011, 20:02
Sorry, the explanation was not for you, my mistake. It was for people that understand the basics of hearing, electronics and units of measure. You have no idea of any of the three items, yet you plague my posts with silly statements and "trick questions". If you think that you can hide your incompetence and lack of practice behind a courtain of "smart" questions, think again. You don't fool anyone here.

You offered your "explanation" (no offence to real explanations offered in this forum). I didn't request the input of a pseudo expert who can't even answer smart questions asked by someone they claim doesn't have any real knowledge on the topic. But let's face it, that's your standard fall back line time and time again. Ever heard the story of the boy who cried wolf?
Trick questions? Funny stuff! It's you who's not fooling anyone.

The OP wanted to know whether 24b is better or not than 32b float. He had his answers already given.

Pretending to develop a sudden interest in the original topic, which by your own admission has already been asked and answered, doesn't fool anyone either.

pandy
22nd August 2011, 17:22
First - lets everyone cover ears by hand or even better - use some cup or glass - easily i think everyone (maybe except youngest generation with ears destroyed by over-compressed portable audio) can easily hear some noise - this is blood circulating in veins - this is minimum sound level that human can achieve - noise generated by body itself (btw ear can produce sounds to) - from other side there absolute level of sound that can not only make You deaf but also can kill.

Somewhere between those two points there is usable human hearing range.

From few reasons 0dBFS level should be avoided (why - more in www.tcelectronic.com/media/level_paper_aes109.pdf)

Real usable dynamic range on CD is limited (usually from top on -12dBFS) to 80 - 82dB - in many cases for high quality reproduction this is not enough - thus we need some processing (dithering, noise-shaping) to improve part of the spectrum - the one most interested from human ear point of view (see Fletcher Manson curves) - most interesting area need around 110 - 120dB dynamics -this can be achieved with 16 bit DAC but seems that 24 bit DAC is better. Even if in real life most of us don't have opportunity to listen sounds with high dynamic it is always better to operate not to close to border for technology.
Seems also that most of people thinks on dynamics as signal to noise (uncorrelated with signal) which is for digital systems not fully true (sine 1kHz with level -90dB is in 16 bit system represented by 1 bit ie this is no longer sine but square wave (ok, not fully true however very close to be true)) - we need more than 16 bit to accurate represent -80 - -90 dBFS signals - what is really funny We can hear that something is wrong even if this is bellow noise floor - SNR is no longer so simple to describe our hearing system - we can hear noise AND we can hear signal even bellow noise.

And once more 32 bit float can be (sometimes) worse than 24 bit int - 32 bit offer higher range at a cost of accuracy (on few cases).

IanB
22nd August 2011, 23:11
...
And once more 32 bit float can be (sometimes) worse than 24 bit int - 32 bit offer higher range at a cost of accuracy (on few cases).
Not sure I understand here, :confused: 24 bit int -> float -> 24 bit int is always lossless. An ieee 32 bit float has sufficient mantissa bits to uniquely represent all possible 24 bit int values, i.e. -8388608 to 8388607.

There are a plethora of float values that cannot be converted to 24 bit int, but these could never have come from 24 bit int in the first place. There are also many dumb things that can be done when processing floats, e.g. add values greater than 8388608 and latter subtract them, but these could not be done with 24 bit int anyway.

Ghitulescu
23rd August 2011, 06:43
Not sure I understand here, :confused: 24 bit int -> float -> 24 bit int is always lossless. An ieee 32 bit float has sufficient mantissa bits to uniquely represent all possible 24 bit int values, i.e. -8388608 to 8388607.

There are a plethora of float values that cannot be converted to 24 bit int, but these could never have come from 24 bit int in the first place. There are also many dumb things that can be done when processing floats, e.g. add values greater than 8388608 and latter subtract them, but these could not be done with 24 bit int anyway.

Well, going from float to integer is always done with a rounding. While it may be that 24bi->32bf->24bi would be lossless, any processing (the reason for a conversion to 32bf) would change this.

pandy
23rd August 2011, 17:21
Not sure I understand here, :confused:

http://www.rane.com/note157.html

IanB
23rd August 2011, 23:51
@pandy, Interesting paper. Yes 32bit float can have insufficient mantissa bits for many calculations, but it is also certain that 24 bit fix point arithmetic will have insufficient bits in the same cases.There are also many dumb things that can be done when processing floats, e.g. add values greater than 8388608 and latter subtract them, but these could not be done with 24 bit int anyway.People writing digital signal processing code need to understand the algorithms and where the bits wax and wane to not introduce unpleasant results. So in some code you may need to use Double float or even long double float and for fixed point calculations use 64bit or more. Yes a dickhead programmer could abuse 32 bit floats and get crap results. A good programmer can know exactly what they are doing and achieve very good results with only 24 bit fixed point but that same good programmer could achieve even better results with 32 bit floats.

pandy
24th August 2011, 08:57
@pandy, Interesting paper. Yes 32bit float can have insufficient mantissa bits for many calculations, but it is also certain that 24 bit fix point arithmetic will have insufficient bits in the same cases.

I fully agree - issue is that in most of cases float can give kind of unrealistic confidence to developer - high dynamic range, high accuracy - more or less this is true however... there are some areas when this can be potential problem.
Usually developer writing code for fixed 24 bit care more (or rather delegate some areas to silicone he must solve for example range/scaling problems by himself).
What is really funny some very cheap Audio DSP (targeted to pure consumer market) using not 24 or 48 but 56 or even at some stage 72 bits fixed point arithmetic.
I think that 24 bit fixed is anyway 32 bit on most of the universal CPU's thus they can use internally 32/64 bits fixed point precission.


People writing digital signal processing code need to understand the algorithms and where the bits wax and wane to not introduce unpleasant results. So in some code you may need to use Double float or even long double float and for fixed point calculations use 64bit or more. Yes a dickhead programmer could abuse 32 bit floats and get crap results. A good programmer can know exactly what they are doing and achieve very good results with only 24 bit fixed point but that same good programmer could achieve even better results with 32 bit floats.

So i knew a bit this area and from my experience looks like most of developers do not try understand that writing software for a PC is slightly different than writing software for real time, embedded, DSP like areas.

redscreen
3rd February 2013, 22:37
Hello.
It's a little difficult for me to understand because I'm french.
But in fact, I would like to treat a 16bit file with "IzotopeRx2" :
So I import it in Izotope, I treat it, but the file is automatically converted to 32bits float.
And when I "save as", I have to chose 16bit, but there is several options for dithering :
-None (truncate)
-White noise (TPDF)
-Noise shaping (MBIT+)
Wich option is good for me here ?
(I come from 16bit to finish in 16bit).

pandy
4th February 2013, 12:24
Hello.
It's a little difficult for me to understand because I'm french.
But in fact, I would like to treat a 16bit file with "IzotopeRx2" :
So I import it in Izotope, I treat it, but the file is automatically converted to 32bits float.
And when I "save as", I have to chose 16bit, but there is several options for dithering :
-None (truncate)
-White noise (TPDF)
-Noise shaping (MBIT+)
Wich option is good for me here ?
(I come from 16bit to finish in 16bit).

It depend what is your final render device - if this is for CD (or similar uncompressed device) then go for Noise shaping, if this is to encode (compress file format like mp3) then go for dithering. Truncate is usually not a good solution at all. If your intention is compression then perhaps you can export 24 bit int or even 32 bit float then encoder will manage (it should) higher resolution internally (better audio quality expected).