Dithering 101


Hey, guys. This is Eric Tarr for theproaudiofiles.com.

I’ve been going through a series of videos where I’m demonstrating techniques that you can use to analyze your effects plug-ins. My approach has been to try to come up with some creative visualizations to help you see and understand the processing that’s taking place.

I’ve already looked at spectral processors, distortion or saturation processors, and also dynamic range processors.

In this video, I’d like to change it up a little bit. I’d like to look at dithering. Now, I know what you’re going to say. That’s not a very exciting or as cool as looking at those other kinds of creative effects, but what I want to argue is that dithering is a very important and necessary part of working with audio; especially if you’re working inside of a digital audio workstation as a mastering or mixing engineer.

You should absolutely understand what is dithering and how does it work? I’d like to show you these things with this video.

Now, I’ll be the first to admit that dithering can be kind of confusing for a couple of reasons. First off, I think that it seems counter intuitive to a lot of audio engineers, because typically, when you think about working with signals and noise, what you would like to do is reduce the amplitude of the noise relative to the signal as much as possible.

But with dithering, we do the exact opposite. We actually intentionally add in noise, which seems backwards. But the thing to understand is that when we add in this noise, it’s actually going to have a perceptually pleasing end result.

Another thing that makes dithering kind of confusing is if we’re using it properly, we don’t even notice that it’s there, and in fact, the whole point of dithering is to make it very difficult to see something called “quantization noise,” or hear something called “quantization noise” that shows up anytime we change the resolution of a signal from a higher resolution to a lower resolution.

So, what I’m actually going to do in this video is kind of over-exaggerate the concept of dither noise to help you really understand how it’s going to work, even if we normally can’t hear it.

As an example of this, throughout this whole video, I’ve actually had 16-bit dither noise going on in the background. If you’re listening over computer speakers or your laptop speakers, or headphones, it’s probably pretty difficult to hear relative to the amplitude of my voice.

Here, when I’m working inside of Ozone 6, I can change the amplitude of the dither noise that’s going to be added in. Right now, I’ve just got it on 16-bit, which is the standard you’d want to use for CD if you’re mixing down to 16-bit, or you could use 24-bit if you’re working with DVD audio, but here, I can actually increase the amplitude of the noise up to 8-bit.

Probably at this point, you’re able to hear that there is some noise being mixed in with the background – in the background relative to my voice. I can also increase the amplitude of this noise.

[dither noise increases]

Make it easier for you to hear.

[dither noise lowers]

So what I’m going to have to do in this video to help you understand it is to exaggerate, or show you the concept of dither noise, not at 16 bits, but at lower bits.

Well, what is the whole purpose of dither then? Well, one thing you need to understand is when you’re working inside of a digital audio workstation, your computer is going to be processing audio at a very high resolution, at 32-bit floating point.

Now, whenever you want to listen to that audio back, either play it back on a CD, or on a movie like I was talking about before, you half to reduce the resolution from 32-bit floating point down to 16-bit or 24. Anytime you reduce the resolution of a signal, you have quantization error that comes in, or also called quantization noise.

So just by doing that change in resolution, you have noise that gets added in. So what we’re going to do is pick and choose the noise that’s going to get added in, so you need to understand that noise is inevitable whenever you change resolution, but we’re going to use dither noise in order to be very intentional about the noise that’s going to get added in.

So, as the example of this to further illustrate it, visually, here I’ve got three tracks side-by-side.

I’ve got an original sine wave track that’s been printed here at full resolution. This is 16 bits. Then what I did was I performed bit reduction on it down to 2-bits.

So, you can see that the resulting signal looks a little bit different, and in a second, we’ll listen to it, and analyze it to see what’s the difference.

So, this is what happens to a signal when you go from a higher resolution down to a lower resolution. Now, I’ve also got down here when I took the original signal and printed it down to 4-bit, you can see that the signal, when it’s at a lower resolution, it doesn’t look as smooth.

Now, when it’s at 16-bit audio, it still looks really smooth, but this is kind of the concept of going from higher resolution down to lower resolution. What is the end result to that signal?

Well, another good thing to do is hear – let’s play back the signals – the various signals – and analyze what the signal sounds like. So what I can do here, for the example, is I’m going to use a sine wave generator here at 300Hz. This is the stock Pro Tools plug-in.

Then what I’m going to do is I’m going to buss this signal from this auxiliary track here of “tone.” I’m going to buss it over here to another auxiliary track that I’m going to call “Sum.” On this summing track, I’ve got another plug-in up here that I can use to change the bit-depth.

So I can go from full resolution of 16-bit, I can go down to 2-bit, 4-bit, 6-bit, and see, what is the end result when we change the resolution of a signal? When we go from a higher resolution down to a lower resolution.

Then I’ve also got iZotope Insight here that I can use. It’s a spectrum analyzer to see the end result after the signal gets reduced in resolution. So what I’m going to do – let me go ahead and bypass Ozone 6 – I’ll bring in the tone and we can look at what it is at full resolution. We’ll see the 300Hz tone here. Then we’ll see what happens when I reduce the resolution of the signal down to 2-bits and 4-bits and so on.

Here’s 300Hz.

[sine wave plays, getting bit-reduced]

I’m going to mute this, but we can still look at the result. So, we still have our 300Hz signal, but when I reduce the signal down to 2-bits, you can see that there is a sequence of harmonics that are also created. This is the distortion that comes in when you go from then higher resolution down to a lower resolution.

The thing to know about it is that these harmonics are all related to the fundamental, or the original signal. So we’ve got the 300Hz signal originally, then we’ve got harmonics at 600, 900, 1200, every 300Hz or so.

The thing to understand about this is that without any other kind of processing, or dithering, taking place, the noise that’s essentially added in, these harmonics we call “quantization noise,” the distortion that comes in, these harmonics are all related, or another term for it is “correlated,” with the original signal, and that’s a problem, because these harmonics will actually be easier to hear than if the noise was random, and so what we would like to do is add in noise in such a way that the distortion that occurs, or the noise that occurs, is uncorrelated with the original signal.

So, the approach to this is going to be to mix in noise. So, another thing that I’ve done here is I’ve got a second auxiliary track called my “noise” track over here. I’ve got white noise on this track, and then what I’m going to do is blend in this noise along with my tone, and see the end result up here.

What we would like to have is the 300Hz tone, and then try and remove, or make the rest of the signal uncorrelated with this signal. So I can blend in the noise here, and we’ll even listen to it at least initially so that you can hear that this is happening, and watch the end result over here on the spectrogram.

[sine wave plays]

Alright, so you can see, I still have my 300Hz tone, but then what I’ve done is I’ve blended in noise so that the harmonics that are created from the distortion are no longer there. They’re being masked by this noise. That’s a good thing.

Now, certainly at 2-bits, this is an example where you can hear the level of the noise that needs to be blended in to de-correlate that distortion from the original signal.

But, what I’m going to do then – let me turn down this noise – let me go through some more examples where I go up to about 4-bit. You can still see I’ve got harmonics at the same frequencies. They’re related to the original signal, but I can still blend in some noise here, and now, they disappear. Alright, we can listen to this.

[sine wave plays with noise, then without noise]

Now the relative level of the noise is much quieter. As I continue up, let’s try – let me turn the noise down – let’s try 8-bits.

Alright, I’ve still got these harmonics, but all I need to do now is blend in some noise, such that these harmonics are going to disappear, and we just have some low level noise.

[sine wave plays, layering in noise]

So again, the noise is very, very quiet.

I could continue this on all the way up. Maybe I’ll increase this. You’ll see the harmonics, they are being reduced in amplitude, but they’re still there. If I get up to 10-bits…

Now, at this point, I really just need a very, very quiet level of noise in order to mask those harmonics. The same thing holds true when we go from 32-bit floating point down to 16-bit. All that we end up doing with dither noise is we add in a very, very low level of noise to mask those correlated harmonics with the original signal. That way, we primarily just hear that original signal, and then the distortion or noise that’s left over is very difficult for our ears to hear.

The last thing I’ll demonstrate when it comes to dither is I’m going to pull back up here my Ozone 6 plug-in. We can look at this. Within Ozone 6, you have the possibility to do what’s called “noise shaping.” So, here I’ve got 16-bit going. I can turn on noise shaping. What this is going to do is provide – or, apply a spectral curve to the additive noise that’s coming in.

So instead of having equal amplitude at all frequencies where the possibility for – probability of equal amplitude at all frequencies, we can perform spectral shaping on it, such that we still add in the same relative level of noise, however, we focus the frequency content into frequency regions that are very difficult for our ear to perceive.

That way, we can still add in this random noise to have the good perceptual effects, but we’re actually making it even more difficult for our ears to hear, because we bring in high frequency around 15-20kHz, such that our ears are not very sensitive to this region, and we scoop out some of the mid-range around 2kHz, 5kHz, 10kHz. In this range, we make the noise quieter.

So, to illustrate this, what I’m going to do – let me go ahead and bypass this one – I’ve got an EQ that I can bring up here, and I’m going to do a similar kind of thing. I’m going to send my noise through the EQ. Maybe I’ll just turn off the tone now and we can listen to how I’m going to shape this.

So, we’ve got the low level noise here… Bring it up a little bit…


Now, watch what I’m going to do. I’m going to turn up, using the high shelf, here I can bring it in. Bring up the high shelf here. Now I need to turn down the output so I match the relative level.

Okay. Then I’m also going to scoop out my mid-range. This is just a conceptual example of what I had before. I’ll scoop out my mid-range so that I push the content of the noise, you can see over here, into the higher frequencies.

The mid-range frequencies that our ears are going to be more sensitive to, I reduced the amplitude there.

Next, I can go back and look at what happens if I blend this noise in. It will still have the same positive effect of removing these harmonics – so I can bring this down maybe to about 8-bit – now I can bring in noise that’s very difficult for our ears to hear, that’s going to de-correlate these harmonics from the original tone.

[sine wave, adding in noise]

So, there you have it. I’ve tried to demonstrate in a visual way why dithering is helpful, and perceptually important. I’ve also discussed some of the parameters – typical parameters you might find in a plug-in like Ozone, where you need to understand what bit-depth level to choose, and then if you want to use some noise shaping to make it more difficult in order to hear that dither noise being added in. Whether it’s at 16-bit or 24-bit.

Eric Tarr

Eric Tarr

Eric Tarr is a musician, audio engineer, and producer based in Columbus, Ohio. Currently a Professor of Audio Engineering Technology at Belmont University in Nashville, TN.
Smiley face