Quantization (signal processing): Difference between revisions

Content deleted Content added
Cat5nap (talk | contribs)
Adding some rigor (the prior version was not, strictly speaking, correct)
Copyeditting; quantization isn't an process on signals, per se, but the dimensions of the signal; added section on JPEG
Line 1:
[[Image:FloorQuantizer.png|right|frame|Quantization of ''x'' using ''Q(x)'' = floor(''Lx'')/''L''.]]
 
In [[digital signal processing]], '''quantization''' is the process of approximating a continuous signalrange of values (or a very large set of possible discrete values) by a relatively-small set of discrete symbols or integer values. A common application of quantization is the conversion of an [[analog]] signal to a [[digital]] one via [[analog-to-digital converter|analog-to-digital conversion]]. The simplest and best-known form of quantization is referred to as ''scalar'' quantization, since it operates on scalar (as opposed to multi-dimensional vector) input data. In general, a scalar quantization operator can be represented as
More specifically, a [[signal (information theory)|signal]] can be multi-dimensional and quantization need not be applied to all dimensions.
A discrete signal need not necessarily be quantized (a pedantic point, but true nonetheless and can be a point of confusion). ''See [[ideal sampler]].''
 
A common use of quantization is in the conversion of a [[continuous signal]] into a [[discrete signal]] by [[sample (signal)|sampling]] and then quantizing.
Both of these steps are performed in [[analog-to-digital converter]]s with the quantization level specified by a number of [[bit]]s.
A specific example would be [[compact disc]] (CD) audio which is sampled at 44,100 [[Hz]] and quantized with 16 bits (2 [[byte]]s) which can be one of 65,536 (<math>2^16</math>) possible values per sample.
 
The simplest and best-known form of quantization is referred to as [[scalar]] quantization, since it operates on scalar (as opposed to multi-dimensional [[vector]]) input data.
In general, a scalar quantization operator can be represented as
 
:<math>Q(x) = g(\operatorname{round}(f(x)))</math>
 
where ''<math>x''</math> is a real number, ''<math>i'' = \operatorname{round}(''f''(''x''))</math> is an integer, and ''<math>f''(''x'')</math> and ''<math>g''(''i'')</math> are arbitrary real-valued functions.
The integer value ''<math>i'' = \operatorname{round}(''f''(''x''))</math> is the representation that is typically stored or transmitted, and then the final interpretation is constructed using ''<math>g''(''i'')</math> when the data is later interpreted.
The integer value ''<math>i''</math> is sometimes referred to as the ''quantization index''.
 
In computer audio and most other applications, a method known as ''uniform quantization'' is the most common.
If ''<math>x''</math> is a real valued number between -1 and 1, a uniform quantization operator that uses ''M'' bits of two's complement precision to represent each quantization index can be expressed as
 
:<math>Q(x) = \frac{\operatorname{round}(2^{M-1}x)}{2^{M-1}}</math>.
 
In this case the ''<math>f''(''x'')</math> and ''<math>g''(''i'')</math> operators are just multiplying scale factors (one multiplier being the inverse of the other).
The value <math>2^{-(M-1)}</math> is often referred to as the ''quantization step size''.
Using this quantization law and assuming that quantization noise is approximately [[uniform distribution (continuous)|uniformly distributed]] over the quantization step size (an assumption typically accurate for rapidly varying ''<math>x''</math> or high ''<math>M''</math>) and assuming that the input signal ''<math>x''</math> to be quantized is approximately uniformly distributed over the entire interval from -1 to 1, the [[signal to noise ratio]] (SNR) of the quantization can be computed as
 
:<math>
:<math>\frac{S}{N_q} \approx 20 \operatorname{log}_{10}(2^M) = 6.0206M \operatorname{dB}</math>.
=
6.0206 M \operatorname{dB}</math>.
 
From this equation, it is often said that the SNR is approximately 6 [[decibel|dB]] per [[bit]].
:<math>\frac{S}{N_q} \approx 20 \operatorname{log}_{10}(2^M) = 6.0206M \operatorname{dB}</math>.
 
In digital [[telephone|telephony]], two popular quantization schemes are the '[[A-law algorithm|A-law]]' (dominant in [[Europe]]) and '[[Mu-law algorithm|&micro;-law]]' (dominant in [[North America]] and [[Japan]]).
From this equation, it is often said that the SNR is approximately 6 dB per bit.
These schemes map discrete analog values to an 8-bit scale that is nearly linear for small values and then increases logarithmically as amplitude grows.
Because the human ear's perception of [[loudness]] is roughly logarithmic, this provides a higher signal to noise ratio over the range of audible sound intensities for a given number of bits.
 
==Compression==
In digital [[telephone|telephony]], two popular quantization schemes are the '[[A-law algorithm|A-law]]' (dominant in [[Europe]]) and '[[Mu-law algorithm|&micro;-law]]' (dominant in [[North America]] and [[Japan]]). These schemes map discrete analog values to an 8 bit scale that is nearly linear for small values and then increases logarithmically as amplitude grows. Because the human ear's perception of [[loudness]] is roughly logarithmic, this provides a higher signal to noise ratio over the range of audible sound intensities for a given number of bits.
Quantization also plays a part in [[lossy data compression]].
One such lossy compression scheme is [[JPEG]].
During compression, the coefficients of the [[discrete cosine transform]] are quantized to facilitate the [[entropy encoding]] step.
So by reducing the set of values (the post-quantized step of JPEG typically yields many zero values which be exploited to reduce the number of bits needed) by quantization, higher compression ratios can be achieved.
 
==See also==