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

语音压缩

开发平台:

C/C++

  1. /* Version 3.3    Last modified: December 26, 1995 */
  2. /*------------------------------------------------------*
  3.  * Parity_pitch - compute parity bit for first 6 MSBs   *
  4.  *------------------------------------------------------*/
  5. #include "typedef.h"
  6. #include "basic_op.h"
  7. #include "ld8k.h"
  8. Word16 Parity_Pitch(    /* output: parity bit (XOR of 6 MSB bits)    */
  9.    Word16 pitch_index   /* input : index for which parity to compute */
  10. )
  11. {
  12.   Word16 temp, sum, i, bit;
  13.   temp = shr(pitch_index, 1);
  14.   sum = 1;
  15.   for (i = 0; i <= 5; i++) {
  16.     temp = shr(temp, 1);
  17.     bit = temp & (Word16)1;
  18.     sum = add(sum, bit);
  19.   }
  20.   sum = sum & (Word16)1;
  21.   return sum;
  22. }
  23. /*--------------------------------------------------------------------*
  24.  * check_parity_pitch - check parity of index with transmitted parity *
  25.  *--------------------------------------------------------------------*/
  26. Word16  Check_Parity_Pitch( /* output: 0 = no error, 1= error */
  27.   Word16 pitch_index,       /* input : index of parameter     */
  28.   Word16 parity             /* input : parity bit             */
  29. )
  30. {
  31.   Word16 temp, sum, i, bit;
  32.   temp = shr(pitch_index, 1);
  33.   sum = 1;
  34.   for (i = 0; i <= 5; i++) {
  35.     temp = shr(temp, 1);
  36.     bit = temp & (Word16)1;
  37.     sum = add(sum, bit);
  38.   }
  39.   sum = add(sum, parity);
  40.   sum = sum & (Word16)1;
  41.   return sum;
  42. }