- initial import
This commit is contained in:
201
src/libs/gsmhr/gsmhr_sp_frm.h
Normal file
201
src/libs/gsmhr/gsmhr_sp_frm.h
Normal file
@@ -0,0 +1,201 @@
|
||||
#ifndef __SP_FRM
|
||||
#define __SP_FRM
|
||||
|
||||
#include "gsmhr_typedefs.h"
|
||||
#include "gsmhr_sp_rom.h"
|
||||
|
||||
|
||||
struct QuantList
|
||||
{
|
||||
/* structure which points to the beginning of a block of candidate vq
|
||||
* vectors. It also stores the residual error for each vector. */
|
||||
int iNum; /* total number in list */
|
||||
int iRCIndex; /* an index to the first vector of the
|
||||
* block */
|
||||
int16_t pswPredErr[PREQ1_NUM_OF_ROWS]; /* PREQ1 is the biggest block */
|
||||
};
|
||||
|
||||
/*_________________________________________________________________________
|
||||
| |
|
||||
| Function Prototypes |
|
||||
|_________________________________________________________________________|
|
||||
*/
|
||||
|
||||
void iir_d(int16_t pswCoeff[], int16_t pswIn[],
|
||||
int16_t pswXstate[],
|
||||
int16_t pswYstate[],
|
||||
int npts, int shifts,
|
||||
int16_t swPreFirDownSh,
|
||||
int16_t swFinalUpShift);
|
||||
|
||||
|
||||
void filt4_2nd(int16_t pswCoeff[],
|
||||
int16_t pswIn[],
|
||||
int16_t pswXstate[],
|
||||
int16_t pswYstate[],
|
||||
int npts,
|
||||
int shifts);
|
||||
|
||||
void initPBarVBarL(int32_t pL_PBarFull[],
|
||||
int16_t pswPBar[],
|
||||
int16_t pswVBar[]);
|
||||
|
||||
void initPBarFullVBarFullL(int32_t pL_CorrelSeq[],
|
||||
int32_t pL_PBarFull[],
|
||||
int32_t pL_VBarFull[]);
|
||||
|
||||
int16_t aflatRecursion(int16_t pswQntRc[],
|
||||
int16_t pswPBar[],
|
||||
int16_t pswVBar[],
|
||||
int16_t *ppswPAddrs[],
|
||||
int16_t *ppswVAddrs[],
|
||||
int16_t swSegmentOrder);
|
||||
|
||||
void aflatNewBarRecursionL(int16_t pswQntRc[],
|
||||
int iSegment,
|
||||
int32_t pL_PBar[],
|
||||
int32_t pL_VBar[],
|
||||
int16_t pswPBar[],
|
||||
int16_t pswVBar[]);
|
||||
|
||||
|
||||
void setupPreQ(int iSeg, int iVector);
|
||||
|
||||
void setupQuant(int iSeg, int iVector);
|
||||
|
||||
void getNextVec(int16_t pswRc[]);
|
||||
|
||||
void aflat(int16_t pswSpeechToLPC[],
|
||||
int piR0Index[],
|
||||
int16_t pswFinalRc[],
|
||||
int piVQCodewds[],
|
||||
int16_t swPtch,
|
||||
int16_t *pswVadFlag,
|
||||
int16_t *pswSP);
|
||||
|
||||
|
||||
int16_t fnExp2(int32_t L_Input);
|
||||
|
||||
int16_t fnLog2(int32_t L_Input);
|
||||
|
||||
void weightSpeechFrame(int16_t pswSpeechFrm[],
|
||||
int16_t pswWNumSpace[],
|
||||
int16_t pswWDenomSpace[],
|
||||
int16_t pswWSpeechBuffBase[]);
|
||||
|
||||
void getSfrmLpcTx(int16_t swPrevR0, int16_t swNewR0,
|
||||
int16_t pswPrevFrmKs[],
|
||||
int16_t pswPrevFrmAs[],
|
||||
int16_t pswPrevFrmSNWCoef[],
|
||||
int16_t pswNewFrmKs[],
|
||||
int16_t pswNewFrmAs[],
|
||||
int16_t pswNewFrmSNWCoef[],
|
||||
int16_t pswHPFSpeech[],
|
||||
short *pswSoftInterp,
|
||||
struct NormSw *psnsSqrtRs,
|
||||
int16_t ppswSynthAs[][NP],
|
||||
int16_t ppswSNWCoefAs[][NP]);
|
||||
|
||||
short int fnBest_CG(int16_t pswCframe[],
|
||||
int16_t pswGframe[],
|
||||
int16_t *pswCmaxSqr,
|
||||
int16_t *pswGmax,
|
||||
short int siNumPairs);
|
||||
|
||||
short compResidEnergy(int16_t pswSpeech[],
|
||||
int16_t ppswInterpCoef[][NP],
|
||||
int16_t pswPreviousCoef[],
|
||||
int16_t pswCurrentCoef[],
|
||||
struct NormSw psnsSqrtRs[]);
|
||||
|
||||
int16_t r0Quant(int32_t L_UnqntzdR0);
|
||||
|
||||
int16_t cov32(int16_t pswIn[],
|
||||
int32_t pppL_B[NP][NP][2],
|
||||
int32_t pppL_F[NP][NP][2],
|
||||
int32_t pppL_C[NP][NP][2],
|
||||
int32_t *pL_R0,
|
||||
int32_t pL_VadAcf[],
|
||||
int16_t *pswVadScalAuto);
|
||||
|
||||
int32_t flat(int16_t pswSpeechIn[],
|
||||
int16_t pswRc[],
|
||||
int *piR0Inx,
|
||||
int32_t pL_VadAcf[],
|
||||
int16_t *pswVadScalAuto);
|
||||
|
||||
|
||||
|
||||
void openLoopLagSearch(int16_t pswWSpeech[],
|
||||
int16_t swPrevR0Index,
|
||||
int16_t swCurrR0Index,
|
||||
int16_t *psiUVCode,
|
||||
int16_t pswLagList[],
|
||||
int16_t pswNumLagList[],
|
||||
int16_t pswPitchBuf[],
|
||||
int16_t pswHNWCoefBuf[],
|
||||
struct NormSw psnsWSfrmEng[],
|
||||
int16_t pswVadLags[],
|
||||
int16_t swSP);
|
||||
|
||||
int16_t getCCThreshold(int16_t swRp0,
|
||||
int16_t swCC,
|
||||
int16_t swG);
|
||||
|
||||
void pitchLags(int16_t swBestIntLag,
|
||||
int16_t pswIntCs[],
|
||||
int16_t pswIntGs[],
|
||||
int16_t swCCThreshold,
|
||||
int16_t pswLPeaksSorted[],
|
||||
int16_t pswCPeaksSorted[],
|
||||
int16_t pswGPeaksSorted[],
|
||||
int16_t *psiNumSorted,
|
||||
int16_t *pswPitch,
|
||||
int16_t *pswHNWCoef);
|
||||
|
||||
short CGInterpValid(int16_t swFullResLag,
|
||||
int16_t pswCIn[],
|
||||
int16_t pswGIn[],
|
||||
int16_t pswLOut[],
|
||||
int16_t pswCOut[],
|
||||
int16_t pswGOut[]);
|
||||
|
||||
void CGInterp(int16_t pswLIn[],
|
||||
short siNum,
|
||||
int16_t pswCIn[],
|
||||
int16_t pswGIn[],
|
||||
short siLoIntLag,
|
||||
int16_t pswCOut[],
|
||||
int16_t pswGOut[]);
|
||||
|
||||
int16_t quantLag(int16_t swRawLag,
|
||||
int16_t *psiCode);
|
||||
|
||||
void findBestInQuantList(struct QuantList psqlInList,
|
||||
int iNumVectOut,
|
||||
struct QuantList psqlBestOutList[]);
|
||||
|
||||
int16_t findPeak(int16_t swSingleResLag,
|
||||
int16_t pswCIn[],
|
||||
int16_t pswGIn[]);
|
||||
|
||||
void bestDelta(int16_t pswLagList[],
|
||||
int16_t pswCSfrm[],
|
||||
int16_t pswGSfrm[],
|
||||
short int siNumLags,
|
||||
short int siSfrmIndex,
|
||||
int16_t pswLTraj[],
|
||||
int16_t pswCCTraj[],
|
||||
int16_t pswGTraj[]);
|
||||
|
||||
int16_t
|
||||
maxCCOverGWithSign(int16_t pswCIn[],
|
||||
int16_t pswGIn[],
|
||||
int16_t *pswCCMax,
|
||||
int16_t *pswGMax,
|
||||
int16_t swNum);
|
||||
|
||||
void getNWCoefs(int16_t pswACoefs[],
|
||||
int16_t pswHCoefs[]);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user