BASOP.H
上传用户:meifeng08
上传日期:2013-06-18
资源大小:5304k
文件大小:3k
源码类别:

语音压缩

开发平台:

C/C++

  1. /*________________________________________________________
  2. ___________________
  3.  |
  4.                   |
  5.  |   Constants and Globals
  6.                   |
  7. |_________________________________________________________
  8. __________________|
  9. */
  10. extern Flag Overflow;
  11. extern Flag Carry;
  12. #define MAX_32 (Word32)0x7fffffffL
  13. #define MIN_32 (Word32)0x80000000L
  14. #define MAX_16 (Word16)0x7fff
  15. #define MIN_16 (Word16)0x8000
  16. /*________________________________________________________
  17. ___________________
  18.  |
  19.                   |
  20.  |   Operators prototypes
  21.                   |
  22. |_________________________________________________________
  23. __________________|
  24. */
  25. Word16 add(Word16 var1, Word16 var2);     /* Short add,           1 */
  26. Word16 sub(Word16 var1, Word16 var2);     /* Short sub,           1 */
  27. Word16 abs_s(Word16 var1);                /* Short abs,           1 */
  28. Word16 shl(Word16 var1, Word16 var2);     /* Short shift left,    1 */
  29. Word16 shr(Word16 var1, Word16 var2);     /* Short shift right,   1 */
  30. Word16 mult(Word16 var1, Word16 var2);    /* Short mult,          1 */
  31. Word32 L_mult(Word16 var1, Word16 var2);  /* Long mult,           1 */
  32. Word16 negate(Word16 var1);               /* Short negate,        1 */
  33. Word16 extract_h(Word32 L_var1);          /* Extract high,        1 */
  34. Word16 extract_l(Word32 L_var1);          /* Extract low,         1 */
  35. Word16 round(Word32 L_var1);              /* Round,               1 */
  36. Word32 L_mac(Word32 L_var3, Word16 var1, Word16 var2); /* Mac,    1 */
  37. Word32 L_msu(Word32 L_var3, Word16 var1, Word16 var2); /* Msu,    1 */
  38. Word32 L_macNs(Word32 L_var3, Word16 var1, Word16 var2);/*[Mac without sat, 
  39. 1*/
  40. Word32 L_msuNs(Word32 L_var3, Word16 var1, Word16 var2);/* Msu without sat, 
  41. 1*/
  42. Word32 L_add(Word32 L_var1, Word32 L_var2);   /* Long add,        2 */
  43. Word32 L_sub(Word32 L_var1, Word32 L_var2);   /* Long sub,        2 */
  44. Word32 L_add_c(Word32 L_var1, Word32 L_var2); /*Long add with c,  2 */
  45. Word32 L_sub_c(Word32 L_var1, Word32 L_var2); /*Long sub with c,  2 */
  46. Word32 L_negate(Word32 L_var1);               /* Long negate,     2 */
  47. Word16 mult_r(Word16 var1, Word16 var2);  /* Mult with round,     2 */
  48. Word32 L_shl(Word32 L_var1, Word16 var2); /* Long shift left,     2 */
  49. Word32 L_shr(Word32 L_var1, Word16 var2); /* Long shift right,    2 */
  50. Word16 shr_r(Word16 var1, Word16 var2);/* Shift right with round, 2 */
  51. Word16 mac_r(Word32 L_var3, Word16 var1, Word16 var2);/* Mac with rounding, 
  52. 2*/
  53. Word16 msu_r(Word32 L_var3, Word16 var1, Word16 var2);/* Msu with rounding, 
  54. 2*/
  55. Word32 L_deposit_h(Word16 var1);       /* 16 bit var1 -> MSB,     2 */
  56. Word32 L_deposit_l(Word16 var1);       /* 16 bit var1 -> LSB,     2 */
  57. Word32 L_shr_r(Word32 L_var1, Word16 var2);/* Long shift right with round, 
  58.  3*/
  59. Word32 L_abs(Word32 L_var1);            /* Long abs,              3 */
  60. Word32 L_sat(Word32 L_var1);            /* Long saturation,       4 */
  61. Word16 norm_s(Word16 var1);             /* Short norm,           15 */
  62. Word16 div_s(Word16 var1, Word16 var2); /* Short division,       18 */
  63. Word16 norm_l(Word32 L_var1);           /* Long norm,            30 */
  64. /*
  65.    Additional operators
  66. */
  67. Word32 L_mls( Word32, Word16 ) ;        /* Wght ?? */
  68. Word16 div_l( Word32, Word16 ) ;
  69. Word16 i_mult(Word16 a, Word16 b);