Databases Reference
In-Depth Information
the order in which the various parts of the residual sequence are encoded becomes important.
From a perceptual perspective it is important that the encoder be able to relatively accurately
encode any voiced segments present in the block. In order to do this the algorithm uses the
notion of a start state . The power in the residual signal for each block is computed (with
optional weighting) and the two consecutive blocks with the highest residual signal power are
identified as containing the start state segment. Which set of two subblocks contains the start
state is encoded using 2 bits for the high-rate case and 3 bits for the low-rate case. Of the 80
samples contained in these two blocks 57 samples for the high-rate case and 58 samples for
the low-rate case are selected as the start state segment by discarding either the first 23 or 22
samples from the first of these two subblocks or the last 23 or 22 samples from the second of
the two subblocks based on which portion has lower residual power. This decision is encoded
using one bit.
The start state segment is filtered using a set of all-pass filters
{
P k (
z
) }
where
A rk (
z
)
P k (
z
) =
A k (
z
)
where
A rk (
z 11
z i 10
z
) =
+
a k (
˜
i
+
1
)
i
and k corresponds to the subblocks containing the start state segment.
The maximum element of the all-pass sequence is identified and the base-10 logarithm of
this value is quantized using a quantization table specified in RFC 3951. The quantized value
q max is used to generate a scaling factor
α
given by
5
10 q max
The all-pass filtered residual samples are multiplied by
4
.
α =
α
to generate a normalized sequence,
which is filtered using a perceptual weighting filter W k (
z
)
given by
1
W k (
) =
z
z
4222 )
This filtered sequence is encoded using a DPCM system with a 3-bit quantizer and a predictor
ρ k (
A k (
0
.
z
)
, where
1
W k (
ρ k (
z
) =
1
)
In order to recover the residual sequence, first the effect of scaling is undone by dividing each
sample by
z
. Then the effect of the all-pass filtering is undone by time-reversing the unscaled
sequence, filtering it using the all-pass filter and circular convolution, and then undoing the
time reversal.
The residual sequence from the start state segment is used to form a codebook that is
used to encode the 23 or 22 samples discarded from the two subblocks when obtaining the
start state. After this codebooks are generated for the encoding of each of the 40 samples in
the remaining subblocks. First the subblocks following the start state are encoded, then the
subblocks preceding the subblocks are encoded.
α
 
Search WWH ::




Custom Search