⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g729ev_main_prm.c

📁 最新的ITU-T的宽带语音编解码标准G.729.1,是对原先的G.729的最好的调整.码流输出速率可以进行自适应调整.满足未来通信要求.希望对大家有所帮助.
💻 C
📖 第 1 页 / 共 2 页
字号:
#if(WMOPS)  move16();  move16();#endif  /* Get 8k bistream */  /* --> first subframe (80 bits) */  IF(sub(decstat->decStG729.g729b_bst, 1) != 0)  {    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);    bit_ptr += 8;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 10);    bit_ptr += 10;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);    bit_ptr += 8;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);    bit_ptr += 1;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;#if(WMOPS)    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();#endif  } ELSE  {                             /* G.729 mode */    IF(sub(decstat->decStG729.ftyp[0], 1) == 0)    {                           /* speech frame (80 bits) */      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);      bit_ptr += 8;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 10);      bit_ptr += 10;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);      bit_ptr += 8;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);      bit_ptr += 1;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);      bit_ptr += 13;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);      bit_ptr += 7;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);      bit_ptr += 13;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);      bit_ptr += 7;#if(WMOPS)      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();#endif    } ELSE if (sub(decstat->decStG729.ftyp[0], 2) == 0)    {                           /* SID frame (15 bits) */      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);      bit_ptr += 1;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      prm_ptr += 7;#if(WMOPS)      move16();      move16();      move16();      move16();      move16();#endif    }    ELSE if   (sub(decstat->decStG729.ftyp[0], 0) == 0)    {                           /* not transmited frame (0 bit) */      prm_ptr += 11;#if(WMOPS)      move16();#endif    }  }  if (sub(decstat->g729b_bst, 1) == 0)  {    bit_ptr += 2;               /* Bypass syncword and number of bits in g729 second frame */#if(WMOPS)    move16();#endif  }  /* --> second subframe (80 bits) */  prm_ptr += 6;                 /* jump to beginning of 2nd 8k subframe coder parameters */#if(WMOPS)  move16();#endif  IF(sub(decstat->decStG729.g729b_bst, 1) != 0)  {    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);    bit_ptr += 8;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 10);    bit_ptr += 10;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);    bit_ptr += 8;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);    bit_ptr += 1;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;#if(WMOPS)    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();#endif  }  ELSE  {                             /* G.729B mode */    IF(sub(decstat->decStG729.ftyp[1], 1) == 0)    {                           /* speech frame (80 bits) */      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);      bit_ptr += 8;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 10);      bit_ptr += 10;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 8);      bit_ptr += 8;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);      bit_ptr += 1;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);      bit_ptr += 13;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);      bit_ptr += 7;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);      bit_ptr += 13;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);      bit_ptr += 7;#if(WMOPS)      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();      move16();#endif    }    ELSE if   (sub(decstat->decStG729.ftyp[1], 2) == 0)    {                           /* SID frame (15 bits) */      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 1);      bit_ptr += 1;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);      bit_ptr += 4;      *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);      bit_ptr += 5;      prm_ptr += 7;#if(WMOPS)      move16();      move16();      move16();      move16();#endif    }    ELSE if   (sub(decstat->decStG729.ftyp[1], 0) == 0)    {                           /* not transmited frame (0 bit) */      prm_ptr += 11;#if(WMOPS)      move16();#endif    }  }  IF(rate >= 12000)  {    /* Get 12k bitstream */    /* --> first subframe (40 bits) */    prm_ptr -= 17;              /* jump to the beginning of the 1st 12k subframe coder parameters */    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 3);    bit_ptr += 3;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 3);    bit_ptr += 3;    /* --> second subframe (40 bits) */    prm_ptr += 11;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 3);    bit_ptr += 3;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 13);    bit_ptr += 13;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 3);    bit_ptr += 3;    /* --> get FEC information */    bit_FEC[0] = itu_192_bitstream[197];    bit_FEC[1] = itu_192_bitstream[237];    ind_FER[0] = G729EV_MAIN_bin2int(bit_FEC, 2);#if(WMOPS)    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();#endif  }  IF(rate >= 14000)  {    /* Get 14k bitstream (33 bits) */    /* prm_ptr -= 8;    jump to TDBWE coder parameters */    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;    ind_FER[2] = G729EV_MAIN_bin2int(bit_ptr, 7);    bit_ptr += 7;#if(WMOPS)    move16();    move16();    move16();    move16();    move16();    move16();    move16();    move16();#endif  }  IF(rate >= 16000)  {    ind_FER[1] = G729EV_MAIN_bin2int(bit_ptr, 5);    bit_ptr += 5;    *prm_ptr++ = G729EV_MAIN_bin2int(bit_ptr, 4);    bit_ptr += 4;#if(WMOPS)    move16();    move16();#endif    /* TDAC bitstream is read in TDAC decoder */  }}

⌨️ 快捷键说明

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