HydrogenAudio

Hydrogenaudio Forum => General Audio => Topic started by: amiti on 2012-10-06 22:54:00

Title: Into which bit should noise be added in order to dither 32bit file to
Post by: amiti on 2012-10-06 22:54:00
When adding noise to audio data in order to dither it into lower bit depth, should the noise be added to higher bit than the desired outcome bit depth? For example when 24bit data is meant to be dithered into 16 bit , the white noise should be added between the 17th to the 24th bits of the original file?

I saw this plugin for foobar : foo_dsp_noise (http://www.hydrogenaudio.org/forums/index.php?showtopic=73072&st=0&p=810370&#entry810370). With this plugin foobar can add TPDF noise up into the 24th bit but not higher. Does this mean it is usable only for dithering to 16bit and not to 24bit output?

Title: Into which bit should noise be added in order to dither 32bit file to
Post by: Glenn Gundlach on 2012-10-07 01:31:15
I think that depending on the current binary value, it could change ALL of them. E.G. $7FFF to $8000

Title: Into which bit should noise be added in order to dither 32bit file to
Post by: amiti on 2012-10-07 06:12:46
You are correct Glenn but the chosen bit means how strong the noise is. If the noise added is strong enough it will remain exactly the same after reducing bit depth. For example if we take 24 bit file and add noise in its 15th bit , then after reducing bitdepth to 16  the noise added will remain exactly the same and won't create the dither affect. Am I correct?
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: punkrockdude on 2012-10-07 13:16:13
Valueable thread! Keep the information coming! The details are somewhat hard to get but not to hard. Regards.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: bandpass on 2012-10-07 13:56:38
I saw this plugin for foobar : foo_dsp_noise (http://www.hydrogenaudio.org/forums/index.php?showtopic=73072&st=0&p=810370&#entry810370). With this plugin foobar can add TPDF noise up into the 24th bit but not higher. Does this mean it is usable only for dithering to 16bit and not to 24bit output?

Dithering to 24-bits is considered unnecessary, this resolution being high enough that (with normal levels) it doesn't really matter what's going on in the LSB.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: Nick.C on 2012-10-07 19:18:43
I saw this plugin for foobar : foo_dsp_noise (http://www.hydrogenaudio.org/forums/index.php?showtopic=73072&st=0&p=810370&#entry810370). With this plugin foobar can add TPDF noise up into the 24th bit but not higher. Does this mean it is usable only for dithering to 16bit and not to 24bit output?
You should start counting from the least-significant-bit (lsb), i.e. bit 0. Therefore dither would be applied at the the eighth bit.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: amiti on 2012-10-08 14:04:06
Quote
You should start counting from the least-significant-bit (lsb), i.e. bit 0. Therefore dither would be applied at the the eighth bit.


Nick , so you are saying that dither noise should be added at the 17th bit(if counting  from the msb side)? Theoretically then , when dithering from 32bit to 24 bits (although some would consider it useless) noise should be added from the 25th bit (when counting from most significant bit side)?
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: Arnold B. Krueger on 2012-10-08 14:51:36
When adding noise to audio data in order to dither it into lower bit depth, should the noise be added to higher bit than the desired outcome bit depth? For example when 24bit data is meant to be dithered into 16 bit , the white noise should be added between the 17th to the 24th bits of the original file?

I saw this plugin for foobar : foo_dsp_noise (http://www.hydrogenaudio.org/forums/index.php?showtopic=73072&st=0&p=810370&#entry810370). With this plugin foobar can add TPDF noise up into the 24th bit but not higher. Does this mean it is usable only for dithering to 16bit and not to 24bit output?


The usual terminology that is used to characterize the amplitude of the dither signal, is given in bits, whose lowest order value is the same as the LSB.

The amount of dither that is required to randomize the quantization error depends on the PDF of the dither signal.  The usual criteria for randomzing the quantization error is the highest order of moment that is randomized.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: 2Bdecided on 2012-10-08 17:39:17
You add as many bits of dither as you are removing bits from the signal. So 16>8, 24>16 and 32>24 all require dither noise added to the 8LSBs, because you are chopping 8-bits off. 32>8 would require 24-bits of dither!

If you add an 8-bit pseudo random number generator, you'll get flat rectangular dither. Add two (or add one then subtract another) and you'll get flat triangular dither (which, because you're adding two 8-bit numbers, will often fill the 9 LSBs).

Of course by adding a number to the 8 LSBs, you may change the value of any or all bits. Just like adding 1 to 899 changes all the decimal numbers, even though it is a single digit.

Cheers,
David.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: amiti on 2012-10-09 20:33:53
Thank you, Arnold and David.

So if I understand correctly  , using the usual terminology , for a target of 16 bit I would need to add noise of 16th bit order? That would mean 17-24 bits (or more if original is in higher resolution) of the original data would be added with noise?
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: 2Bdecided on 2012-10-10 09:59:22
Yes. Exactly.

But that's only true for rectangular PDF dither. Which you would never use.

So, no.

This is the classic paper on the subject...
http://www.drewdaniels.com/dither.pdf (http://www.drewdaniels.com/dither.pdf)

There are others. See the AES library links from the (mediocre) wikipedia article (http://en.wikipedia.org/wiki/Dither).

Cheers,
David.
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: krabapple on 2012-10-27 20:26:51
You add as many bits of dither as you are removing bits from the signal. So 16>8, 24>16 and 32>24 all require dither noise added to the 8LSBs, because you are chopping 8-bits off. 32>8 would require 24-bits of dither!


Is truncation from 32 to 24 bits generally thought to be audible?
Title: Into which bit should noise be added in order to dither 32bit file to
Post by: Arnold B. Krueger on 2012-10-27 20:29:27
You add as many bits of dither as you are removing bits from the signal. So 16>8, 24>16 and 32>24 all require dither noise added to the 8LSBs, because you are chopping 8-bits off. 32>8 would require 24-bits of dither!


Is truncation from 32 to 24 bits generally thought to be audible?


No, and in general with real-world recordings truncation from 24->16 isn't audible either.