My query is regarding the ** pre selection process** done for
quantization of gains in section 3.9.2 of ITU-T recommendation for G.729 speech
codec standard.

__Case 1.__

According to the draft, two fixed gain codebooks and are given. Each of them have two columns, first is quantized adaptive codebook gain & second is quantized fixed codebook gain

Characteristics of are:

FONT face="Wingdings" size="1">

Each of second column elements is greater than corresponding first column elements.FONT face="Times New Roman" size="1"> This codebook has total 8 entries.

Characteristics of are:

FONT face="Wingdings" size="1"> Each of first column elements is greater than corresponding first column elements.

FONT face="Times New Roman" size="1"> This codebook has total 16 entries.

During preselection,
a cluster of ** four **vectors
whose

**are close to unquantized fixed codebook vector gc are chosen from**

__second elements____and a cluster of__

__eigh____t__vectors whose

**are close to unquantized adaptive codebook vector gp are chosen from**

__first elements____.__

hence exhaustive
search is done on 50% of ** remaining** vectors of these two codebooks, i.e, 4 X 8 =
32 possibilities to find combination of two indices GA for and GB for such that the mean square error of eq. 63 is
minimized.

__Case 2.__

According to implementation of G.729 codec in C language given by ITU-T, the preselection & quantization of gains is done as follows:

The gain codebooks given are fixed, one is thr1 of length 4, which contains only quantized value for , and other is thr2 of length 8 which contains value only for

, the indices for preselection are derived from these codebooks only.

The value of predicted fixed codebook gain is checked first.

If is positive, following some mathematical criteria indices
indice1 ( which is between 1- 4) is selected from thr1 codebook & indice2 (
which is between 1- 8) is selected from thr2 codebook. These indices indices1
& indices2 are used to find GA & GB from gain codebooks __ and ____,__

The differences in both of these criteria are:

The no of codebooks used & their lengths.

The required vectors indices GA & GB which
minimizes the mean squared error are selected directly amongst all given vectors
of codebooks __ and ____,__
while in 2ndcase it is derived from indices found amongst codebooks thr1 &
thr2.

Why the implementation method differs in such a way from the proposed one, could anyone explain please?

Also, **for decoding the adaptive codebook
vector**, while finding the *frac *part for T2 the equation
is:

*frac* = P2 - 2 - 3((P2 + 2)/3 -
1)
(Page 27)

but this equation when solved shall always give the value -1 . Why so ?

Regards,

Saloni