Searches for the fixed codebook vector.
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);
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. |
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 |
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). |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.