g 729コーデックのまとめ


オーディオコーデックというブロックの内容については、g 729というアルゴリズムが少し面倒だと感じます.
ネットで資料を探すとg 729についていろいろな内容があり、大体理解しました.g 729アルゴリズムは1つのクラスで、中にはまだ具体的なものがたくさんあります.ITUの公式サイトでダウンロードしたg 729バッグの中には、g 729 a、g 729 b、g 729 cなど、いろいろなものがあります.自分は本当にどれを使うべきか分かりません.ドキュメントをよく読んでから、g 729 aが自分に合っていることに気づきました.具体的には、それぞれ実現する機能が異なり、あるアルゴリズムでは符号レート選択について、あるアルゴリズムではVDAなどの機能を提供しているが、自分では使えないので、g 729 aという最も基本的な圧縮アルゴリズムを選択した.ネットで検索してみると、g 729とg 729 aの違いは、g 729 aのアルゴリズムの品質が向上し、g 729の強化版に相当し、うん、それだ.
linuxでコンパイルをしていたら、圧縮後のファイルが、圧縮前のファイルよりも大きいなんて、私も酔っ払っていました.インターネットで検索してみると、多くの人がITUでダウンロードしたものは、コンパイル後も同じ問題に直面していることがわかりました.問題の鍵はどのように最適化するかにある.はい、引き続き資料を探して、私はとても資料がこのブロックを最適化する内容について、すべて不完全であることを発見しました.これはちょっと穴があいていますね.見に行きたければ、「g 729アルゴリズムでシリアル化」を検索すればいい.次は長い間探してやっと見つけたのですbitsについてです.cファイルの修正は、皆さんに役に立つことを願っています.
#include "stdafx.h"
#include "typedef.h"
#include "ld8a.h"
#include "tab_ld8a.h"

static void bit2byte(Word16 para,int bitlen,unsigned char * bits,int bitpos) ;
static Word16 byte2bit(int bitlen,unsigned char * bits,int bitpos) ;

void prm2bits_ld8k(Word16 *para,unsigned char *bits)
{
  int i;
  int bitpos = 0;
  for (i = 0;i> (bitlen - i -1) ) &0x01;
    newbyte = (1 << (7-bitpos%8));
    if(bit == 1)
    	*p |= newbyte;
    else
    	*p &= ~newbyte;
    bitpos++;
    if (bitpos % 8 == 0)
      p++;
  }
}

void bits2prm_ld8k(unsigned char *bits,Word16 *para)
{
  int i;
  int bitpos = 0;
  for (i = 0;i> (7 - bitpos % 8)) &0x01;
    if (bit == 1) 
    {
      newbyte = (1<
これは主要なもので、ネットで探したもので、他の枝葉末節のものは私は上に書かないで、必要ならば、みんなは検索してみることができます.しかも自分でテストしたので、16:1の圧縮が可能です.
ps:memcpy関数を使用してコピーするピットのお父さんの問題に遭遇しましたが、パラメータがcharタイプの場合、できます.パラメータがword 16タイプの場合、失敗します.まあ、自分の理解が足りないかもしれません.