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

📄 g729a_dec_gain.c

📁 在DSP上实现的G.729优化代码 编译过的 大家快来下载啊
💻 C
字号:
#include "../Common/typedef.h"
#include "../Include/G729A_basic_op.h"
#include "../Include/G729A_ld8a.h"
#include "../Include/G729A_tab_ld8a.h"

void G729ADec_gain(Word16 index, Word16 code[], Word16 L_subfr, Word16 bfi, Word16 *gain_pit, Word16 *gain_cod)
{
	Word16  index1, index2, tmp;
	Word16  gcode0, exp_gcode0;
	Word32  L_gbk12, L_acc, L_accb;
	void    G729AGain_predict( Word16 past_qua_en[], Word16 code[], Word16 L_subfr,
		Word16 *gcode0, Word16 *exp_gcode0 );
	void    G729AGain_update( Word16 past_qua_en[], Word32 L_gbk12 );
	void    G729AGain_update_erasure( Word16 past_qua_en[] );
	
	static Word16 G729A_past_qua_en[4] = { -14336, -14336, -14336, -14336 };
	
	if(bfi != 0)
	{
		*gain_pit = G729Amult( *gain_pit, 29491 );      
		*gain_pit = _min2(*gain_pit, 29491);
		*gain_cod = G729Amult( *gain_cod, 32111 );     
		
		G729AGain_update_erasure(G729A_past_qua_en);
		
		return;
	}
	
	index1 = G729A_imap1[ G729Ashr_s(index,G729A_NCODE2_B) ] ;
	index2 = G729A_imap2[ index & (G729A_NCODE2-1) ] ;
	*gain_pit = G729Aadd_s( G729A_gbk1[index1][0], G729A_gbk2[index2][0] );
	
	G729AGain_predict( G729A_past_qua_en, code, L_subfr, &gcode0, &exp_gcode0 );
	
	L_acc = G729AL_deposit_l( G729A_gbk1[index1][1] );
	L_accb = G729AL_deposit_l( G729A_gbk2[index2][1] );
	L_gbk12 = G729AL_add( L_acc, L_accb );                       
	tmp = G729Aextract_l( G729AL_shr( L_gbk12,1 ) );                   
	L_acc = G729AL_mult(tmp, gcode0);            
	
	L_acc = G729AL_shl(L_acc, G729Aadd_s( G729Anegate(exp_gcode0),(-12-1+1+16) ));
	*gain_cod = G729Aextract_h( L_acc );                          
	
	G729AGain_update( G729A_past_qua_en, L_gbk12 );
	
	return;
	
}

⌨️ 快捷键说明

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