G.726 Adpcm - MULTIMEDIA

ITU G.726 supersedes ITU standards G.721 and G.723. It provides another version of G.711, including companding, at a lower bitrate. G.726 can encode 13 - or 14 - bit PCM samples or 8 - bit μ - law or A - law encoded data into 2-, 3-, 4-, or 5 - bit codewords. It can be used in speech transmission over digital networks, videoconferencing, and ISDN communications. The G.726 standard works by adapting & fixed quantizer in a simple way. The different sizes of codewords used amount to bitrates of 16 kbps, 24 kbps, 32 kbps, or 40 kbps, at an 8 kHz sampling rate. The standard defines a multiplier constant α that will change for every difference value en, depending on the current scale of signals. Define a scaled difference signal fn as follows:

scaled difference signal fn

where snis the predicted signal value. fn is then fed into the quantizer for quantization. Here, the input value is defined as a ratio of a difference with the factor α.

By changing the value of a, the quantizer can adapt to change in the range of the difference signal. The quantizer is a nonuniform midtread quantizer, so it includes the value zero. The quantizer is backward adaptive.

A backward - adaptive quantizer works in principle by noticing if too many values are quantized to values far from zero (which would happen if the quantizer step size in f were too small) or if too many values fell close to zero too much of the time (which would happen if the quantizer step size were too large).

In fact, an algorithm due to Jayant allows us to adapt a backward quantizer step size after receiving just one output! The Jayant quantizer simply expands the step size if the quantized input is in the outer levels of the quantizer and reduces the step size if the input is near zero.

Suppose we have a uniform quantizer, so that every range to which we compare input values is of size Δ. For example, for a 3 - bit quantizer, there are k = 0.. 7 levels. For 3 - bit G.726, only 7 levels are used, grouped around zero.

The Jayant quantizer assigns multiplier values Mk to each level, with values smaller than 1 for levels near zero and values larger than 1 for outer levels.

The multiplier multiplies the step size for the next signal value. That way, outer values enlarge the step size and are likely to bring the next quantized value back to the middle of the available levels. Quantized values near the middle reduce the step size and are likely to bring the next quantized value closer to the outer levels.

So, for signal fn, the quantizer step size A is changed according to the quantized value k, for the previous signal value f n-1, by the simple formula

previous signal value f n-1

Since the quantized version of the signal is driving the change, this is indeed a backward - adaptive quantizer.

In G.726, how α is allowed to change depends on whether the audio signal is actually speech or is likely data that is simply using a voice band. In the former case, sample - to - sample differences can fluctuate a great deal, whereas in the latter case of data transmission, this is less true. To adjust to either situation, the factor α is adjusted using a formula with two pieces.

G.726 works as a backward - adaptive Jayant quantizer by using fixed quantizer steps based on the logarithm of the input difference signal, endivided by α.

The divisor α is written in terms of its logarithm:

α is written in terms of its logarithm

Since we wish to distinguish between situations when difference values are usually small, and when they are large, α is divided into a so - called locked part, αL and an unlocked part, αν.The idea is that the locked pail is a scale factor for small difference values and changes slowly, whereas the unlocked part adapts quickly to larger differences. These correspond to log quantities βL and βU.

The logarithm value is written as a sum of two pieces,

logarithm value is written as a sum of two pieces

where A changes so that it is about 1 for speech, and about 0 for voice - band data. It is calculated based on the variance of the signal, keeping track of several past signal values. The "unlocked" part adapts via the equation

where Mk is a Jayant multiplier for the kth level. The locked part is slightly modified from the unlocked part, via

locked part is slightly modified from the unlocked part

where B is a small number, say 2 - 6.

The G.726 predictor is complicated: it uses a linear combination of six quantized differences and two reconstructed signal values from the previous six signal values fn.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status