Digital Sound & Music: Concepts, Applications, & Science, Chapter 5, last updated 6/25/2013
57
mu_inverse(127/128) = 0.9574
ceil(32768*0.9574) = 31373
Both 32145 and 32178 convert back to 31373.
With mu-law encoding, the results are better than they would have been if a linear
method of bit reduction had been used. Let’s look at the linear method. Again suppose we
convert from 16 to 8 bits by dividing by 256 and rounding down. Then both 16-bit values of 33
and 66 would convert to 0 at 8 bits. To convert back up to 16 bits, we multiply by 256 again and
still have 0. We’ve lost all the information in these samples. On the other hand, by a linear
method both 32145 and 32178 convert to 125 at 8 bits. When they’re scaled back to 16 bits, they
both become 32000. A comparison of percentage errors for all of these samples using the two
conversion methods is shown in Table 5.2. You can see that mu-law encoding preserves
information at low amplitudes that would have been lost by a linear method. The overall result is
that with a bit depth of only 8 bits for transmitting the data, it is possible to retrieve a dynamic
range of about 12 bits or 72 dB when the data is uncompressed to 16 bits (as opposed to the 48
dB expected from just 8 bits). The dynamic range is increased because fewer of the low
amplitude samples fall below the noise floor.
original
sample at 16
bits
sample after
linear
companding, 16
to 8 to 16
error sample after
nonlinear
companding,
16 to 8 to 16
percentage
error
33 0 100% 32 3%
66 0 100% 63 4.5%
32145 32000 0.45% 31373 2.4%
32178 32000 0.55% 31373 2.5%
Table 5.2 Comparison of error in linear and nonlinear companding
Rather than applying the mu-law function directly, common implementations of mu-law
encoding achieve an equivalent effect by dividing the 8-bit encoded sample into a sign bit,
mantissa, and exponent, similar to the way floating point numbers are represented. An
advantage of this implementation is that it can be performed with fast bit-shifting operations.
The programming exercise associated with this section gives more information about this
implementation, comparing it with a literal implementation of the mu-law and inverse mu-law
functions based on logarithms.
Mu-law encoding (and its relative, A-law, which is used Europe) reduces the amount of
data in an audio signal by quantizing low-amplitude signals with more precision than high
amplitude ones. However, since this bit-depth reduction happens in conjunction with
digitization, it might more properly be considered a conversion rather than a compression
method.
Actual audio compression relies on an analysis of the frequency components of the audio
signal coupled with a knowledge of how the human auditory system perceives sound a field of
study called psychoacoustics. Compression algorithms based on psychoacoustical models are
grouped under the general category of perceptual encoding, as is explained in the following
section.
Previous Page Next Page