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

语音压缩

开发平台:

C/C++

  1. /*
  2.    ITU-T G.729A Speech Coder    ANSI-C Source Code
  3.    Version 1.1    Last modified: September 1996
  4.    Copyright (c) 1996,
  5.    AT&T, France Telecom, NTT, Universite de Sherbrooke
  6.    All rights reserved.
  7. */
  8. /*------------------------------------------------------*
  9.  * Parity_pitch - compute parity bit for first 6 MSBs   *
  10.  *------------------------------------------------------*/
  11. #include "typedef.h"
  12. #include "basic_op.h"
  13. #include "ld8a.h"
  14. Word16 Parity_Pitch(    /* output: parity bit (XOR of 6 MSB bits)    */
  15.    Word16 pitch_index   /* input : index for which parity to compute */
  16. )
  17. {
  18.   Word16 temp, sum, i, bit;
  19.   temp = shr(pitch_index, 1);
  20.   sum = 1;
  21.   for (i = 0; i <= 5; i++) {
  22.     temp = shr(temp, 1);
  23.     bit = temp & (Word16)1;
  24.     sum = add(sum, bit);
  25.   }
  26.   sum = sum & (Word16)1;
  27.   return sum;
  28. }
  29. /*--------------------------------------------------------------------*
  30.  * check_parity_pitch - check parity of index with transmitted parity *
  31.  *--------------------------------------------------------------------*/
  32. Word16  Check_Parity_Pitch( /* output: 0 = no error, 1= error */
  33.   Word16 pitch_index,       /* input : index of parameter     */
  34.   Word16 parity             /* input : parity bit             */
  35. )
  36. {
  37.   Word16 temp, sum, i, bit;
  38.   temp = shr(pitch_index, 1);
  39.   sum = 1;
  40.   for (i = 0; i <= 5; i++) {
  41.     temp = shr(temp, 1);
  42.     bit = temp & (Word16)1;
  43.     sum = add(sum, bit);
  44.   }
  45.   sum = add(sum, parity);
  46.   sum = sum & (Word16)1;
  47.   return sum;
  48. }