p_parity.c

来自「这是G.723和G.729的音频编解码的源代码」· C语言 代码 · 共 56 行

C
56
字号
/* Version 2.0    Last modified: 6/30/95 */

/*------------------------------------------------------*
 * Parity_pitch - compute parity bit for first 6 MSBs   *
 *------------------------------------------------------*/

#include "typedef.h"
#include "basic_op.h"
#include "ld8k.h"
#include "count.h"

Word16 Parity_Pitch(    /* output: parity bit (XOR of 6 MSB bits)    */
   Word16 pitch_index   /* input : index for which parity to compute */
)
{
  Word16 temp, sum, i, bit;

  temp = shr(pitch_index, 1);

  sum = 1;              move16();
  for (i = 0; i <= 5; i++) {
    temp = shr(temp, 1);
    bit = temp & (Word16)1;     logic16();
    sum = add(sum, bit);
  }
  sum = sum & (Word16)1;        logic16();

  move16();
  return sum;
}

/*--------------------------------------------------------------------*
 * check_parity_pitch - check parity of index with transmitted parity *
 *--------------------------------------------------------------------*/

Word16  Check_Parity_Pitch( /* output: 0 = no error, 1= error */
  Word16 pitch_index,       /* input : index of parameter     */
  Word16 parity             /* input : parity bit             */
)
{
  Word16 temp, sum, i, bit;

  temp = shr(pitch_index, 1);

  sum = 1;              move16();
  for (i = 0; i <= 5; i++) {
    temp = shr(temp, 1);
    bit = temp & (Word16)1;     logic16();
    sum = add(sum, bit);
  }
  sum = add(sum, parity);
  sum = sum & (Word16)1;        logic16();

  return sum;
}

⌨️ 快捷键说明

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