g729a_de_acelp.c

来自「DSP上优化的G.729A代码」· C语言 代码 · 共 46 行

C
46
字号
#include "../Common/typedef.h"
#include "../Include/G729A_basic_op.h"
#include "../Include/G729A_ld8a.h"

void G729ADecod_ACELP(Word16 sign, Word16 index, Word16 cod[])
{
	Word16 i, j;
	Word16 pos[4];

	i      = index & (Word16)7;
	pos[0] = _sadd(i, _sshl(i, 2));           
	
	index  = _sshvr(index, 3);
	i      = index & (Word16)7;
	i      = _sadd(i, _sshl(i, 2));           
	pos[1] = _sadd(i, 1);
	
	index  = _sshvr(index, 3);
	i      = index & (Word16)7;
	i      = _sadd(i, _sshl(i, 2));           
	pos[2] = _sadd(i, 2);
	
	index  = _sshvr(index, 3);
	j      = index & (Word16)1;
	index  = _sshvr(index, 1);
	i      = index & (Word16)7;
	i      = _sadd(i, _sshl(i, 2));           
	i      = _sadd(i, 3);
	pos[3] = _sadd(i, j);
	
	for (i=0; i<G729A_L_SUBFR; i++) 
	{
		cod[i] = 0;
	}
	for (j=0; j<4; j++)
	{
		
		i = sign & (Word16)1;
		sign = _sshvr(sign, 1);
		cod[pos[j]] = (i != 0) ? 8191 : -8192;
	}
	
	return;
}

⌨️ 快捷键说明

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