d-tread, and 2. has codewords which are not equally spaced, making it non-uniform. Meanwhile, the quantizer in Figure E4.5(b): 1. does not have zero as one of its codewords, making it mid-rise, and 2. has equally spaced codewords, making it uniform. Source Coding and Decoding: Making it Digital Figure E4.5 Two Quantizers 4.2.2 The Good Quantizer Now that you've got an understanding of what a quantizer is and does, let's see how to build a good quantizer for a given application. What Is a Good Quantizer? Before we can talk about how one goes about building a good quantizer, we must understand what is meant by a good quantizer. We'll introduce a measure of perfor- mance that we can use to tell us if a quantizer is a good one. Measures of Performance A quantizer maps an input amplitude to an output amplitude, and the output amplitude takes on one of N allowed values. As we mentioned earlier, we'd like to keep the input amplitude and output amplitude close, because in this way less information is lost in the quantizer. With this in mind, at any moment of time, we can tell how well a quantizer is doing by looking at the difference between the amplitude into the quantizer and the amplitude coming out of the quantizer. That is, at any moment of time, the quantizer performance can be measured by the error signal (4.17) where x is the input to the quantizer at time t and x is the output of the quantizer at that same time t. A good quantizer has a small error term, and a poor quantizer has a large error term. Engineers, however, are usually not SO interested in how well something is doing at a moment in time (unless, of course, it's an explosion or something equally dramatic), but rather at how things are doing overall, or on average. To provide overall measures of performance, engineers assume that there are some things about the amplitudes coming Chapter Four into the quantizer that are known (or can be "guess-timated"). Specifically, we assume that we can determine (and we usually can) how likely it is that a particular