亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bits.c

?? ITU-T G.729的一個實現例子(包括附錄b的vod檢測等功能)
?? C
字號:
/*
   ITU-T G.729 Speech Coder with Annex B    ANSI-C Source Code
   Version 1.3    Last modified: August 1997

   Copyright (c) 1996,
   AT&T, France Telecom, NTT, Universite de Sherbrooke, Lucent Technologies,
   Rockwell International
   All rights reserved.
*/

/*****************************************************************************/
/* bit stream manipulation routines                                          */
/*****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include "typedef.h"
#include "ld8k.h"
#include "tab_ld8k.h"
#include "vad.h"
#include "dtx.h"
#include "tab_dtx.h"
#include "octet.h"

/* prototypes for local functions */
static void  int2bin(Word16 value, Word16 no_of_bits, Word16 *bitstream);
static Word16   bin2int(Word16 no_of_bits, Word16 *bitstream);

/*----------------------------------------------------------------------------
 * prm2bits_ld8k -converts encoder parameter vector into vector of serial bits
 * bits2prm_ld8k - converts serial received bits to  encoder parameter vector
 *
 * The transmitted parameters are:
 *
 *     LPC:     1st codebook           7+1 bit
 *              2nd codebook           5+5 bit
 *
 *     1st subframe:
 *          pitch period                 8 bit
 *          parity check on 1st period   1 bit
 *          codebook index1 (positions) 13 bit
 *          codebook index2 (signs)      4 bit
 *          pitch and codebook gains   4+3 bit
 *
 *     2nd subframe:
 *          pitch period (relative)      5 bit
 *          codebook index1 (positions) 13 bit
 *          codebook index2 (signs)      4 bit
 *          pitch and codebook gains   4+3 bit
 *----------------------------------------------------------------------------
 */
void prm2bits_ld8k(
 Word16   prm[],           /* input : encoded parameters  (PRM_SIZE parameters)  */
  Word16 bits[]           /* output: serial bits (SERIAL_SIZE ) bits[0] = bfi
                                    bits[1] = 80 */
)
{
  Word16 i;
  *bits++ = SYNC_WORD;     /* bit[0], at receiver this bits indicates BFI */

  switch(prm[0]){

    /* not transmitted */
  case 0 : {
    *bits = RATE_0;
    break;
  }

  case 1 : {
    *bits++ = RATE_8000;
    for (i = 0; i < PRM_SIZE; i++) {
      int2bin(prm[i+1], bitsno[i], bits);
      bits += bitsno[i];
    }
    break;
  }

  case 2 : {

#ifndef OCTET_TX_MODE
    *bits++ = RATE_SID;
    for (i = 0; i < 4; i++) {
      int2bin(prm[i+1], bitsno2[i], bits);
      bits += bitsno2[i];
    }
#else
    *bits++ = RATE_SID_OCTET;
    for (i = 0; i < 4; i++) {
      int2bin(prm[i+1], bitsno2[i], bits);
      bits += bitsno2[i];
    }
    *bits++ = BIT_0;
#endif

    break;
  }

  default : {
    printf("Unrecognized frame type\n");
    exit(-1);
  }

  }

  return;
}

/*----------------------------------------------------------------------------
 * int2bin convert integer to binary and write the bits bitstream array
 *----------------------------------------------------------------------------
 */
static void int2bin(
 Word16 value,             /* input : decimal value */
 Word16 no_of_bits,        /* input : number of bits to use */
 Word16 *bitstream       /* output: bitstream  */
)
{
   Word16 *pt_bitstream;
   Word16   i, bit;

   pt_bitstream = bitstream + no_of_bits;

   for (i = 0; i < no_of_bits; i++)
   {
     bit = value & (Word16)0x0001;      /* get lsb */
     if (bit == 0)
         *--pt_bitstream = BIT_0;
     else
         *--pt_bitstream = BIT_1;
     value >>= 1;
   }
}

/*----------------------------------------------------------------------------
 *  bits2prm_ld8k - converts serial received bits to  encoder parameter vector
 *----------------------------------------------------------------------------
 */
void bits2prm_ld8k(
 Word16 bits[],          /* input : serial bits (80)                       */
 Word16   prm[]          /* output: decoded parameters (11 parameters)     */
)
{
  Word16 i;
  Word16 nb_bits;

  nb_bits = *bits++;        /* Number of bits in this frame       */

  if(nb_bits == RATE_8000) {
    prm[1] = 1;
    for (i = 0; i < PRM_SIZE; i++) {
      prm[i+2] = bin2int(bitsno[i], bits);
      bits  += bitsno[i];
    }
  }
  else
#ifndef OCTET_TX_MODE
    if(nb_bits == RATE_SID) {
      prm[1] = 2;
      for (i = 0; i < 4; i++) {
        prm[i+2] = bin2int(bitsno2[i], bits);
        bits += bitsno2[i];
      }
    }
#else
  /* the last bit of the SID bit stream under octet mode will be discarded */
  if(nb_bits == RATE_SID_OCTET) {
    prm[1] = 2;
    for (i = 0; i < 4; i++) {
      prm[i+2] = bin2int(bitsno2[i], bits);
      bits += bitsno2[i];
    }
  }
#endif

  else {
    prm[1] = 0;
  }
  return;

}

/*----------------------------------------------------------------------------
 * bin2int - read specified bits from bit array  and convert to integer value
 *----------------------------------------------------------------------------
 */
static Word16 bin2int(            /* output: decimal value of bit pattern */
 Word16 no_of_bits,        /* input : number of bits to read */
 Word16 *bitstream       /* input : array containing bits */
)
{
   Word16   value, i;
   Word16 bit;

   value = 0;
   for (i = 0; i < no_of_bits; i++)
   {
     value <<= 1;
     bit = *bitstream++;
     if (bit == BIT_1)  value += 1;
   }
   return(value);
}

Word16 read_frame(FILE *f_serial, Word16 *parm)
{
  Word16  i;
  Word16  serial[SERIAL_SIZE];          /* Serial stream               */

  if(fread(serial, sizeof(short), 2, f_serial) != 2) {
    return(0);
  }

  if(fread(&serial[2], sizeof(Word16), (size_t)serial[1], f_serial)
     != (size_t)serial[1]) {
    return(0);
  }

  bits2prm_ld8k(&serial[1], parm);

  /* This part was modified for version V1.3 */
  /* for speech and SID frames, the hardware detects frame erasures
     by checking if all bits are set to zero */
  /* for untransmitted frames, the hardware detects frame erasures
     by testing serial[0] */

  parm[0] = 0;           /* No frame erasure */
  if(serial[1] != 0) {
   for (i=0; i < serial[1]; i++)
     if (serial[i+2] == 0 ) parm[0] = 1;  /* frame erased     */
  }
  else if(serial[0] != SYNC_WORD) parm[0] = 1;

  if(parm[1] == 1) {
    /* check parity and put 1 in parm[5] if parity error */
    parm[5] = Check_Parity_Pitch(parm[4], parm[5]);
  }

  return(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜看片网址| 欧美一区二区久久| 6080午夜不卡| 国产精品久久福利| 老司机精品视频一区二区三区| 成人免费视频视频| 精品国产精品一区二区夜夜嗨| 亚洲一区二区3| 成人动漫视频在线| 久久免费美女视频| 日韩电影在线免费| 欧美色区777第一页| 中文字幕人成不卡一区| 国产高清亚洲一区| 日韩三级在线免费观看| 日韩中文字幕区一区有砖一区| 99精品久久只有精品| 国产日韩综合av| 久久 天天综合| 欧美成人免费网站| 蜜臀av性久久久久蜜臀av麻豆| 91传媒视频在线播放| 亚洲欧洲av在线| 床上的激情91.| 国产精品视频第一区| 国产成人精品免费网站| 精品裸体舞一区二区三区| 日本在线不卡视频一二三区| 91麻豆精品国产自产在线观看一区| 亚洲一卡二卡三卡四卡| 欧美性大战xxxxx久久久| 一区二区三区中文字幕| 色婷婷综合中文久久一本| 亚洲色图一区二区| 在线看国产一区| 五月综合激情网| 91精品国产色综合久久| 免费成人美女在线观看.| 日韩视频免费观看高清在线视频| 日本亚洲欧美天堂免费| 欧美一区永久视频免费观看| 美女视频一区二区三区| 欧美成人性战久久| 国产一区二区在线观看视频| 久久综合中文字幕| jlzzjlzz欧美大全| 一区二区三区在线观看网站| 欧美人成免费网站| 美女高潮久久久| 精品粉嫩超白一线天av| 成人在线一区二区三区| 国产精品久久久久7777按摩| 欧美午夜精品一区| 免费xxxx性欧美18vr| 久久久亚洲高清| 91高清视频免费看| 免费观看在线色综合| 亚洲国产成人午夜在线一区| 一本色道综合亚洲| 日本不卡的三区四区五区| 国产视频亚洲色图| 欧美视频自拍偷拍| 九九九精品视频| 中文字幕不卡三区| 欧美日韩国产三级| 国产成人aaa| 亚洲国产一区二区三区青草影视| 日韩一区二区免费视频| 成人免费高清在线| 午夜精品一区二区三区电影天堂| 久久午夜电影网| 色系网站成人免费| 国产一区二区毛片| 午夜不卡在线视频| 国产精品久久综合| 日韩欧美高清dvd碟片| 99久久久精品免费观看国产蜜| 全国精品久久少妇| 亚洲女同一区二区| 久久久精品蜜桃| 69p69国产精品| 91浏览器在线视频| 精品亚洲免费视频| 香蕉av福利精品导航| 国产精品欧美一级免费| 日韩一区二区在线观看视频| 色av一区二区| 99在线热播精品免费| 黑人巨大精品欧美一区| 亚洲bdsm女犯bdsm网站| 亚洲欧美另类图片小说| 久久久久久久久久久电影| 欧美日韩久久久| 色域天天综合网| 菠萝蜜视频在线观看一区| 九一久久久久久| 美女高潮久久久| 三级久久三级久久| 亚洲一区二区成人在线观看| 自拍偷拍亚洲综合| 国产精品毛片久久久久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品一区二区免费在线观看| 亚洲最新视频在线观看| 亚洲视频一二三| 最新热久久免费视频| 国产精品色哟哟| 久久久www免费人成精品| 精品日韩在线一区| 日韩欧美成人一区二区| 欧美丰满高潮xxxx喷水动漫| 欧美日韩高清在线播放| 欧美视频在线一区| 欧美日韩国产小视频在线观看| 欧美在线短视频| 欧美中文字幕一区二区三区 | 中文字幕一区二区三区四区 | 欧美不卡在线视频| 91精品国产91久久久久久一区二区| 欧美日韩一区中文字幕| 欧美三级视频在线播放| 欧美丝袜丝交足nylons| 欧美老女人在线| 欧美成人精品福利| 国产欧美一区二区精品忘忧草| 久久久精品影视| 1000部国产精品成人观看| 日韩毛片在线免费观看| 亚洲影院久久精品| 肉色丝袜一区二区| 国产综合色视频| 99精品欧美一区二区三区小说 | 色偷偷久久人人79超碰人人澡 | av一本久道久久综合久久鬼色| 99在线视频精品| 在线区一区二视频| 91精品国产色综合久久| 久久久精品免费观看| 亚洲人一二三区| 日韩国产欧美三级| 国产91精品入口| 欧美性色综合网| 国产性天天综合网| ...av二区三区久久精品| 一区二区三区美女| 蜜臀久久99精品久久久久久9| 激情图片小说一区| 在线观看免费一区| 在线视频观看一区| 色综合av在线| 在线观看日产精品| 在线观看日韩毛片| 欧美日韩免费在线视频| 在线看不卡av| 欧美日本视频在线| 欧美日韩一区在线| 91精品在线免费观看| 欧美一激情一区二区三区| 日韩免费看网站| 久久影院视频免费| 久久久久国产免费免费| 国产女人水真多18毛片18精品视频 | 国产成人鲁色资源国产91色综 | 国产一区二区在线影院| 国产成人午夜视频| 成人永久免费视频| 色88888久久久久久影院按摩| 日本伦理一区二区| 日韩一区和二区| 国产女人18毛片水真多成人如厕 | 国产剧情一区二区三区| 成人一区二区视频| 97久久精品人人澡人人爽| 在线一区二区三区| 欧美一级精品在线| 欧美高清在线一区二区| 一区二区三区中文字幕电影| 日本亚洲电影天堂| 国产91对白在线观看九色| 在线欧美一区二区| 欧美v国产在线一区二区三区| 久久精品视频网| 亚洲一区在线观看免费观看电影高清| 午夜精品123| 国产精品亚洲午夜一区二区三区| 99久久99久久精品免费看蜜桃| 欧美日产在线观看| 国产精品天美传媒| 日韩电影在线免费观看| 懂色av中文字幕一区二区三区| 日本高清不卡一区| 欧美精品一区二区蜜臀亚洲| 亚洲欧美另类图片小说| 蜜臀av性久久久久蜜臀aⅴ流畅| av资源网一区| 欧美精品一区二区三区很污很色的| 亚洲欧洲精品一区二区精品久久久| 天天影视网天天综合色在线播放| 国产精品99久久久久久久vr | av成人免费在线观看|