Freigeben über


A Lesson in Dynamic Range (or Why 32 Bits per Sample Should Never Catch On)

Anywhere you go, you will be able to find people who will insist that more is better. Bigger cars, larger portions, and more bits in your audio samples. But we thinking people know that there is such as too much of a good thing, don't we? I refer, of course, to having too many audio sample bits. 

The amount of bits in a number determines the allowable range of that number.  Each bit you add doubles the maximum number.  Each bit also doubles the ratio between the maximum value and the granularity.  This ratio, remember, is the dynamic range of the signal, and is measured in dB.  Since each bit is a doubling, and each doubling adds 6.02dB (we'll just call it 6 - it makes the math easier), then the dynamic range of a digital signal is equal to numberOfBitsPerSample * 6dB.  For 8bit audio, that's 48dB.  Sixteen-bit samples have 96dB, which is nearly our range of normal hearing.

Okay, so we can find a dB value.  But how does this apply to the real world?  A raw dB value is nothing more than a ratio between two numbers, and isn't generally all that useful.  In order to make it a meaningful measurement, we have to specify a well-known value against which we're comparing the measurement.  This value is called the reference level.  We then speak of a measurement in dBxyz, where xyz specifies the reference.  For example, you might see a voltage measured in dBV, which is the ratio to 1.0 Volts RMS.  In the digital world, you often see dBFS, or decibels relative to digital Full Scale.  In an earlier post, I used the term "dBSPL" without defining it (and got called out for it - Thanks, Steve).  Well, As TommyK helpfully points out, dBSPL is air pressure relative to 0.00002 Pascals - the threshhold of hearing.  This makes dBSPL a very useful measurement for sounds in air.

So let's consider an audiophile's dream - a 32-bit-per-sample signal.  Now consider an ultimate amplifier and speaker that can take advantage of all 32-bits in air.  First of all You want to set the lowest bit at 0dBSPL.  Anything lower would not only be below the threshhold of hearing even at 3kHz (the most sensitive point), but would also be drowned out by the noise of random air molecules bouncing off of your speaker.  So if the low-end is at 0dBSPL, what's the high-end of 32 bits?  From our equation above, 32 bits per sample provides a 192dB dynamic range.  Overkill?  The threshhold of pain is about 120dBSPL, and it's generally accepted that being exposed to over 140dBSPL will result in permanent hearing damage.

Put another way, 0.00002 Pa + 192dB works out to be about 85kPa.  One atmosphere of pressure is 101.325kPa.  When our ultimate amp/speaker plays Mozart at full-scale, it create a sound pressure wave capable of moving nearly the whole atmosphere several thousand times per second.  Standing in that mosh pit is a good way to come down with an instantly lethal case of the bends.  The word 'explode' also comes to mind.

On the plus side, I guess you won't really have to worry about hearing damage afterward.

Comments

  • Anonymous
    August 22, 2006
    Ok, I'm not an audio guy ... but I can see how extreme audiophiles can benefit from 32 bits per signal sample.

    Why have the 6.02 dB increment per bit? Why not reduce this amount, or make it variable?

    I'm asking instead of going the standard way it's done 6.02dB per bit .. why not implement so that 32 bits per signal sample doesnt have to mean that you need to go up to 192dB.

    That is, sample only the range of human hearing. low end is 1 dB ? and then the upper end .. 120 dB?

    so then you split that 119 db into 4 billion slices (aka a 32 bit number). If you know the regions that human hearing is best suited for you can increase the resolution in those  predetermined regions  4 dB per bit? (losing resolution at the less significant zones 7 dB per bit?).
  • Anonymous
    August 23, 2006
    the 6.02dB increment per bit is not a thing that /can/ be changed.  a 6.02 dB increase is /exactly/ a doubling in sound value, and so doubling the number of values you have also doubles the amount of dynamic range you have, which is what's being looked for.

    On the other hand, there are sort-of workarounds, if you're willing to do strange things - imaging technology uses a value called gamma, which is essentially a power to which all the input values are raised to when being output.  However, sound is different: the input is a signed value, so raising it to a power is unacceptable (a sine wave, squared, gets its frequency doubled; raising a negative number to a noninteger power gives a complex number).  Even if we change the baseline, applying a gamma-like function will create distortion.

    On the other hand, one of the most common formats for digital audio is a 32-bit float, which is essentially a 24-bit number with 8 bits of gain.  Though the gain is rarely used, it allows you to get something along the lines of 256-bit range - or about 1,500 decibels - without actually dropping 256 bits of data on each piece of audio.  Not that you'll ever find a microphone that can cover a range that large.

    Vorn
  • Anonymous
    August 23, 2006
    er.  more than that.  256 + 24 = 279; 280 * 6 = 1680 dB.

    Vorn
  • Anonymous
    August 23, 2006
    In my previous post, I don't think I explained very well why a 32-bit signal wouldn't work on the low-end. ...
  • Anonymous
    December 04, 2006
    Output level is one of the simplest fidelity metrics to understand, but don't take that to mean it's
  • Anonymous
    July 10, 2007
    The technique Tricky mentions is of course possible. Something like it has been used in telecomm for years where more bits really hurts because of limited transmission BW. e.g. mu law and A-law.  Vorn's says 6dB per bit can't be changed, which is true if you are using standard ADC chips when the original music is captured.  If instead a whole new digital audio infrastructure was in place utilizing a new analog to digital map... not a small undertaking, and not likely to ever happen.  The masses are going the other direction - MP3/AAC as opposed to say SACD.  Of course AAC uses techniques much more sophisticated to increase effective resolution per bit per second.
  • Anonymous
    August 21, 2007
    The comment has been removed
  • Anonymous
    December 31, 2007
    Random stuff.
  • Anonymous
    December 31, 2007
    PingBack from http://msdnrss.thecoderblogs.com/2007/12/31/2007-year-end-link-clearance/
  • Anonymous
    January 01, 2008
    Random stuff.
  • Anonymous
    April 06, 2008
    PingBack from http://xosfaere.wordpress.com/2007/07/06/digital-audio-series/