FixedCodebookSearch_G729

Searches for the fixed codebook vector.

Syntax

IppStatus ippsFixedCodebookSearch_G729_16s(const Ipp16s* pSrcFixedCorr, Ipp16s* pSrcDstMatrix, Ipp16s* pDstFixedVector, Ipp16s* pDstFixedIndex, Ipp16s* pSearchTimes, Ipp16s subFrame);

IppStatus ippsFixedCodebookSearch_G729_32s16s(const Ipp16s* pSrcFixedCorr, Ipp32s* pSrcDstMatrix, Ipp16s* pDstFixedVector, Ipp16s* pDstFixedIndex, Ipp16s* pSearchTimes, Ipp16s subFrame);

IppStatus ippsFixedCodebookSearch_G729A_16s(const Ipp16s* pSrcFixedCorr, Ipp16s* pSrcDstMatrix, Ipp16s* pDstFixedVector, Ipp16s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729A_32s16s(const Ipp16s* pSrcFixedCorr, Ipp32s* pSrcDstMatrix, Ipp16s* pDstFixedVector, Ipp16s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729E_16s(int mode, const Ipp16s* pSrcFixedTarget, const Ipp16s* pSrcLtpResidual, const Ipp16s* pSrcImpulseResponse, Ipp16s* pDstFixedVector, Ipp16s* pDstFltFixedVector, Ipp16s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729D_16s(const Ipp16s* pSrcFixedCorr, const Ipp16s* pSrcImpulseResponse, Ipp16s* pSrcDstMatrix, Ipp16s* pDstFixedVector, Ipp16s* pDstFltFixedVector, Ipp16s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729_32f (const Ipp32f* pSrcFixedCorr, Ipp32f* pSrcDstMatrix, Ipp32f* pDstFixedVector, Ipp32s* pDstFixedIndex, Ipp32s* pSearchTimes, Ipp32s subFrame);

IppStatus ippsFixedCodebookSearch_G729A_32f (const Ipp32f* pSrcFixedCorr, Ipp32f* pSrcDstMatrix, Ipp32f* pDstFixedVector, Ipp32s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729D_32f (Ipp32f* pSrcDstFixedCorr, Ipp32f* pSrcDstMatrix, const Ipp32f* pSrcImpulseResponse, Ipp32f* pDstFixedVector, Ipp32f* pDstFltFixedVector, Ipp32s* pDstFixedIndex);

IppStatus ippsFixedCodebookSearch_G729E_32f (int mode, Ipp32f* pSrcDstFixedCorr, const Ipp32f* pSrcLtpResidual, const Ipp32f* pSrcImpulseResponse, Ipp32f* pDstFixedVector, Ipp32f* pDstFltFixedVector, Ipp32s* pDstFixedIndex);

Parameters

mode

Indicates forward (= 0) or backwards (= 1) LP analysis mode.

pSrcFixedCorr

Pointer to the correlation signal of fixed-codebook search vector [40], in Q13.

pSrcDstMatrix

Pointer to the Toepliz matrix of length 616 (elements of Ipp16s type in Q9 or Ipp32s type in Q25).

pSrcFixedTarget

Pointer to the input updated target speech vector.

pSrcLtpResidual

Pointer to the input residual after long term prediction vector.

pSrcImpulseResponse

Pointer to the LP synthesis filter [40].

pDstFixedVector

Pointer to the fixed-codebook vector [40], in Q13.

pDstFltFixedVector

Pointer to the output filtered fixed-codebook vector.

pDstFixedIndex

Pointer to the fixed-codebook index. The first element is the sign codeword S and the second element is the position codeword C. Index length is the following: 2 - for all G729, all G729A, and G729D_32f flavors; 4 - for all G729E flavors; 1 - for G729D_16s flavor.

pSearchTimes

Pointer to the maximum search time for the remaining subframes.

subFrame

Subframe number, 0 or 1.

Description

These functions are declared in the ippsc.h file. They search for the fixed-codebook vector and corresponding vector index, respectively. They are applied in subframes.

The first function ippsFixedCodebookSearch_G729 is designed for G.729/B codec and uses the nested-loop search approach [ITU729B]. The Toepliz matrix is updated in this function.

The function ippsFixedCodebookSearch_G729A is designed for G.729A codec and uses the iterative depth-first, tree search approach [ITU729A].

Both ippsFixedCodebookSearch_G729 and ippsFixedCodebookSearch_G729A functions search four signed pulses in positions given by the following table:

Pulses Positions
i0

0,5,10,15,20,25,30,35

i1

1,6,11,16,21,26,31,36

i2

2,7,12,17,22,27,32,37

i3

3,8,13,18,23,28,33,38,4,9,14,19,24,29,34,39

The function ippsFixedCodebookSearch_G729E is designed for G.729E codec and searches ten signed pulses in five tracks in positions shown in the following table:

Pulses Positions
i0, i1

0,5,10,15,20,25,30,35

i2, i3

1,6,11,16,21,26,31,36

i4, i5

2,7,12,17,22,27,32,37

i6, i7

3,8,13,18,23,28,33,38

i8, i9

4,9,14,19,24,29,34,39

The two pulses for each track may overlap resulting in a single pulse with duplicated amplitude.

The function ippsFixedCodebookSearch_G729D is designed for G.729D codec and searches for two signed pulses in two overlapping tracks given in the following table:

Pulses Positions
i0

1, 3, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38

i1

0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when one of the specified pointers is NULL.

ippStsRangeErr

Indicates an error when subFrame is not 0 or 1 (for integer functions only).

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.