⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g7231_dec_cng.c

📁 G723.1语音压缩解压在tms320c54系列上的实现代码,本人已在CCS上仿真通过. 包含全部源代码,主函数请自已写(本人的就不奉送了:
💻 C
字号:

#include "typedef.h"
#include "G7231_cst_lbc.h"
#include "G7231_tab_lbc.h"
#include "G7231_util_lbc.h"
#include "G7231_lsp.h"
#include "G7231_exc_lbc.h"
#include "G7231_basop.h"
#include "G7231_util_cng.h"
#include "G7231_dec_cng.h"
#include "G7231_decod.h"
#include "intrindefs.h"

G7231DECCNGDEF G7231DecCng;

void G7231Init_Dec_Cng(void)
{
    int i;

    G7231DecCng.PastFtyp = 1;
    G7231DecCng.SidGain = 0;
    for(i=0; i<G7231LpcOrder; i++) G7231DecCng.LspSid[i] = G7231LspDcTable[i] ;
    G7231DecCng.RandSeed = 12345;
    return;
}

void G7231Dec_Cng(Word16 Ftyp, G7231LINEDEF *Line, Word16 *DataExc, Word16 *QntLpc)
{

    Word16 temp;
    int i;

    if(Ftyp == 2) {

        G7231DecCng.SidGain = G7231Dec_SidGain(Line->Sfs[0].Mamp);

        G7231Lsp_Inq( G7231DecCng.LspSid, G7231DecStat.PrevLsp, Line->LspId, 0) ;
    }

    else {

        if(G7231DecCng.PastFtyp == 1) {

            temp = G7231Qua_SidGain(&G7231DecCng.SidGain, &G7231DecCng.CurGain, 0);
            G7231DecCng.SidGain = G7231Dec_SidGain(temp);
        }
    }


    if(G7231DecCng.PastFtyp == 1) {
        G7231DecCng.CurGain = G7231DecCng.SidGain;
    }
    else {
        G7231DecCng.CurGain = G7231extract_h(G7231L_add( G7231L_mult(G7231DecCng.CurGain,0x7000),
                    G7231L_mult(G7231DecCng.SidGain,0x1000) ) ) ;
    }
    G7231Calc_Exc_Rand_De(G7231DecCng.CurGain, G7231DecStat.PrevExc, DataExc,
                    &G7231DecCng.RandSeed, Line);

    G7231Lsp_Int( QntLpc, G7231DecCng.LspSid, G7231DecStat.PrevLsp ) ;

    for ( i = 0 ; i < G7231LpcOrder ; i ++ )
        G7231DecStat.PrevLsp[i] = G7231DecCng.LspSid[i] ;

    return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -