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

📄 operg722.c

📁 ITU-T G.191中包含的G.722语音压缩编解码程序
💻 C
📖 第 1 页 / 共 3 页
字号:
 |                                                                           | |   Negate var1 with saturation, saturate in the case where input is -32768:| |                negate(var1) = sub(0,var1).                                | |                                                                           | |   Complexity weight : 1                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    var1                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    var_out                                                                | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                | |___________________________________________________________________________| */Word16 negate (var1)Word16 var1;{  Word16          var_out;  var_out = (var1 == MIN_16) ? MAX_16 : -var1;  return (var_out);}/* ....................... end of negate() ............................ *//*___________________________________________________________________________ |                                                                           | |   Function Name : L_add                                                   | |                                                                           | |   Purpose :                                                               | |                                                                           | |   32 bits addition of the two 32 bits variables (L_var1+L_var2) with      | |   overflow control and saturation; the result is set at +214783647 when   | |   overflow occurs or at -214783648 when underflow occurs.                 | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    L_var2   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |___________________________________________________________________________| */Word32 L_add (L_var1, L_var2)Word32 L_var1;Word32 L_var2;{  Word32          L_var_out;  L_var_out = L_var1 + L_var2;  if (((L_var1 ^ L_var2) & MIN_32) == 0L)  {    if ((L_var_out ^ L_var1) & MIN_32)    {      L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32;    }  }  return (L_var_out);}/* ....................... end of L_add() ............................ *//*___________________________________________________________________________ |                                                                           | |   Function Name : L_shr                                                   | |                                                                           | |   Purpose :                                                               | |                                                                           | |   Arithmetically shift the 32 bit input L_var1 right var2 positions with  | |   sign extension. If var2 is negative, arithmetically shift L_var1 left   | |   by -var2 and zero fill the var2 LSB of the result. Saturate the result  | |   in case of underflows or overflows.                                     | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    var2                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |___________________________________________________________________________| */Word32 L_shr (L_var1, var2)Word32 L_var1;Word16 var2;{  Word32          L_var_out;  if (var2 < (Word16) 0)  {    L_var_out = L_shl (L_var1, -var2);  }  else  {    if (var2 >= (Word16) 31)    {      L_var_out = (L_var1 < 0L) ? -1L : 0L;    }    else    {      if (L_var1 < 0L)      {	L_var_out = ~((~L_var1) >> var2);      }      else      {	L_var_out = L_var1 >> var2;      }    }  }  return (L_var_out);}/* ....................... end of L_shr() ............................ *//*___________________________________________________________________________ |                                                                           | |   Function Name : L_shl                                                   | |                                                                           | |   Purpose :                                                               | |                                                                           | |   Arithmetically shift the 32 bit input L_var1 left var2 positions. Zero  | |   fill the var2 LSB of the result. If var2 is negative, L_var1 right by   | |   -var2 arithmetically shift with sign extension. Saturate the result in  | |   case of underflows or overflows.                                        | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    var2                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |___________________________________________________________________________| */Word32 L_shl (L_var1, var2)Word32 L_var1;Word16 var2;{  Word32          L_var_out = 0L;  if (var2 <= (Word16) 0)  {    L_var_out = L_shr (L_var1, -var2);  }  else  {    for (; var2 > (Word16) 0; var2--)    {      if (L_var1 > (Word32) 0X3fffffffL)      {	L_var_out = MAX_32;	break;      }      else      {	if (L_var1 < (Word32) 0xc0000000L)	{	  L_var_out = MIN_32;	  break;	}      }      L_var1 *= 2L;      L_var_out = L_var1;    }  }  return (L_var_out);}/* ....................... end of L_shl() ............................ */

⌨️ 快捷键说明

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