G.729.1は ITU-T G.729 を拡張した広帯域の音声とオーディオ用のコーデックで、G.729、G.729.A、G.729.Bとの相互運用性があり、8 kbps~32 kbps の広範囲のビットレートをサポートする。主に VoIP 用に利用されている。
G.729.1の正式な名称は"G.729-based embedded variable bit-rate coder:An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729" (G.729 ベースのエンベデッド可変ビットレート符号化: G.729 とビット列互換な 8-32 kbit/sスケーラブル広帯域符号化)である。
概要
G.729.1 は G.729 をコアコーデックとし、複数の音声符号化方式を階層的に組み合わせることでビットレート、帯域幅の柔軟性を向上させたものである。
通常の電話インタフェースの2倍の帯域幅を持つ 50 Hz-7 kHz(サンプリング周波数 16kHz)の音声/オーディオ信号を入力とし、 50 Hz-4 kHz の帯域幅を持つ信号を 8~12 kbps に、 50 Hz-7 kHz の帯域幅の信号を 14~32 kbps に符号化できる
[1]。
G.729.1 がサポートする 8 kbps~32 kbps までの 12 種類のビットレートに対応してコーデックが出力するビット列は 12 階層の埋め込み構造になっている。符号化したビット列から必要な階層のみを容易に取り出すことができる
[2]。
ビットレート 8 kbpsに対応するのがコア層となる第1層で、G.729 と同じ符号化アルゴリズムを用い、出力ビット列は G.729、G.729.A、G.729.B と完全な相互運用性がある。第2層は4 kbpsのG.729の拡張層である。
第3層から12層までは 50 Hz-7 kHz の広帯域音声/オーディオ信号を扱うことができる。2 kbps 単位で情報が増えていき、それに応じて音質が向上する。
それぞれの階層と使用するアルゴリズムを以下にまとめる[2]。
G.729.1 の全体構成
階層 |
アルゴリズム |
帯域幅 |
最終的なビットレート |
説明
|
1
|
ACELP (algebraic CELP) |
50 Hz-4 kHz |
8 kbps |
コア層
|
2
|
ACELP (algebraic CELP) |
50 Hz-4 kHz |
12 kbps |
コア層の追加部分
|
3
|
TDBWE (time-domain bandwidth extension) |
4 kHz-7 kHz |
14 kbps |
粗くパラメータ化した高域成分
|
4-12
|
TDAC (time-domain aliasing cancellation) |
50 Hz-7 kHz |
16-32 kbps (2 kbps単位) |
付加情報
|
符号化した情報は第1層から第12層まで順番にビット列を並べた形で表現され、ビットレートと音質の調整は単純にビット列を切捨てることで行える。
G.729.1 の特徴を以下にまとめる。
G.729.1 の符号化データを Real-time Transport Protocol(RTP)を用いインターネット上で送るためのデータ形式は、IETF標準の RFC 4749、および RFC 5459 で定義されている
[3]
[4]。
アルゴリズム
G.729.1 は、G.729 と同様のアルゴリズムをコアとする3種類の音声符号化アルゴリズムの階層的組み合わせからなる[1]。コアのアルゴリズムで入力信号の符号化を行い、符号化できなかった残差部分を他の2つのアルゴリズムを使い付加情報として追加する。
コアには、音声符号化の代表的なアルゴリズムである CELP の一種である ACELP(algebraic code excited linear prediction)を使う[1]。これは G.729 で使われているものと同じアルゴリズムである。コア部分は 50 Hz-4 kHz の入力信号を 8-12 kbps に符号化する。
4 kHz-7 kHz までの高い周波数成分の符号化には TDBWE(time-domain bandwidth extension)と呼ばれるパラメータ符号化アルゴリズムを使う[1]。音声の低域成分と比べると、高域成分には多くの情報が含まれていないため、このアルゴリズムでは時間領域のエンベロープと周波数領域のエンベロープとをかなり粗くパラメータ化し符号化を行う。コア部分との組み合わせにより 50 Hz-7 kHz の入力を 14 kbps に符号化する。
これ以上のビットレートの場合、コア部分で符号化できなかった信号成分のみを別に符号化し、付加情報として第4層以上に追加する。コア部分で符号化できた成分と本来の信号との差(4 kHz以下の残差信号と4 kHzより上の高域成分)を、変換予測符号化(transform predictive coding)と呼ばれる手法の1つである TDAC(time-domain aliasing cancellation)アルゴリズムを使って符号化する[1]。
TDAC では、入力信号を MDCT(修正離散コサイン変換)により周波数領域のパラメータに変換したのち 18 のサブバンドに分割し、サブバンドごとのゲインとスペクトル形状とをそれぞれベクトル量子化する。エネルギーが小さいサブバンドのように聴感上重要度の低いサブバンドに少ないビットを割り当てることで情報の圧縮を行う。
また、聴感上重要度の高いサブバンドほど階層の低い層に符号化することで情報の階層化を行う。例えば、もっとも聴感上の重要度の高いサブバンドの情報は第4層に格納され、重要度の低いサブバンドはそれより高い層に格納される[1]。
また、G.729.1 はIPネットワークようなパケットロスやパケット遅延の多い環境での利用を想定しているため、これらの符号化アルゴリズムの結果とは別に、通信路での情報消失時の音質低下を避けるための補助情報も各階層に格納されている。これらの情報は必要に応じ復号時に使用される
[1]
[2]。
脚注
参考文献
関連項目
外部リンク