g729a_basic_op.h
来自「DSP上优化的G.729A代码」· C头文件 代码 · 共 81 行
H
81 行
#ifndef _H_G729ABASICOP
#define _H_G729ABASICOP
#define G729AMAX_32 (Word32)0x7fffffffL
#define G729AMIN_32 (Word32)0x80000000L
#define G729AMAX_16 (Word16)0x7fff
#define G729AMIN_16 (Word16)0x8000
extern Flag G729AOverflow;
Word16 G729Aadd_s(Word16 var1, Word16 var2);
Word16 G729Asub_s(Word16 var1, Word16 var2);
Word16 G729Ashl_s(Word16 var1, Word16 var2);
Word16 G729Ashr_s(Word16 var1, Word16 var2);
Word16 G729Amult(Word16 var1, Word16 var2);
Word32 G729AL_mult(Word16 var1, Word16 var2);
Word16 G729Around(Word32 L_var1);
Word32 G729AL_mac(Word32 L_var3, Word16 var1, Word16 var2);
Word32 G729AL_msu(Word32 L_var3, Word16 var1, Word16 var2);
Word32 G729AL_add(Word32 L_var1, Word32 L_var2);
Word32 G729AL_sub(Word32 L_var1, Word32 L_var2);
Word16 G729Amult_r(Word16 var1, Word16 var2);
Word32 G729AL_shl(Word32 L_var1, Word16 var2);
Word32 G729AL_shr(Word32 L_var1, Word16 var2);
Word16 G729Ashr_r(Word16 var1, Word16 var2);
Word32 G729AL_shr_r(Word32 L_var1, Word16 var2);
extern Word16 G729Adiv_s(Word16 var1, Word16 var2);
inline Word16 G729Aabs_s(Word16 var1)
{
return _abs2(var1);
}
inline Word16 G729Anegate(Word16 var1)
{
return (var1 == G729AMIN_16) ? G729AMAX_16 : -var1;
}
inline Word16 G729Aextract_h(Word32 L_var1)
{
return (L_var1 >> 16);
}
inline Word16 G729Aextract_l(Word32 L_var1)
{
return (Word16) L_var1;
}
inline Word32 G729AL_negate(Word32 L_var1)
{
return (L_var1 == G729AMIN_32) ? G729AMAX_32 : -L_var1;
}
inline Word32 G729AL_deposit_h(Word16 var1)
{
return (Word32) var1 << 16;
}
inline Word32 G729AL_deposit_l(Word16 var1)
{
return (Word32) var1;
}
inline Word32 G729AL_abs(Word32 L_var1)
{
return _abs(L_var1);
}
inline Word16 G729Anorm_s(Word16 var1)
{
return (_norm(var1)-16)*(var1!=0);
}
inline Word16 G729Anorm_l(Word32 L_var1)
{
return _norm(L_var1)*(L_var1!=0);
}
#endif //_H_G729ABASICOP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?