G.718 コーデックの詳細解説
G.718は、ITU-T(国際電気通信連合 電気通信標準化部門)によって勧告された、広帯域の
音声およびオーディオ信号を符号化するための
コーデックです。正式名称は「Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s」であり、
フレームエラーに強く、8kbpsから32kbpsまでの可変
ビットレートに対応する組み込み型の符号化方式です。
概要
G.718は、複数の
音声符号化方式を階層的に組み合わせることで、
ビットレートと
帯域幅の柔軟性を高めています。この手法はG.729.1と同様のアイデアに基づいています。コアとなる
音声符号化
アルゴリズムには、CELPの一種であるACELPが使用されています。
G.718には狭帯域版と広帯域版があり、入力および出力の
サンプリング周波数は、広帯域版が16kHz、狭帯域版が8kHzまたは16kHzです。特にコア部分の性能が高く、G.718広帯域
コーデックの8kbpsでの
音質はG.722.2の12.65kbpsと同等、G.718狭帯域
コーデックの8kbpsでの
音質はG.722.2の11.8kbpsと同等とされています。
サポートする
ビットレートは8, 12, 16, 24, 32kbpsの5種類で、出力されるビットストリームは5階層の埋め込み構造を持っています。これにより、符号化されたビット列から必要な階層のみを容易に取り出すことができます。
第1層 (8kbps): コア層であり、ACELPを符号化アルゴリズムとして使用。
第2層 (4kbps): ACELP拡張層。
第3層~第5層: MDCT(修正離散コサイン変換)を用いた符号化アルゴリズムを使用し、第2層までで符号化できなかった情報を符号化。第3層には、フレーム消失時の音質低下を防ぐための補助情報も含まれます。第3層は4kbps、それ以降は8kbps単位で情報が増加し、音質が向上します。
狭帯域版では、第1層と第2層のみが実装されます。
特徴
G.718の主な特徴は以下の通りです。
音声と
音楽の両方のオーディオ信号をサポート。
広帯域の場合のサンプリング周波数は16kHz、狭帯域の場合は8kHzまたは16kHz。
8~32kbpsまでの5種類の
ビットレートに対応 (8, 12, 16, 24, 32 kbps)。
5階層の埋め込み構造を持つビットストリーム。
コア層である8kbps層ではACELPを使用。
フレーム長は20ms、符号化遅延は広帯域の場合42.875ms、狭帯域の場合43.875ms。
複数の
音声符号化
アルゴリズムを階層的に組み合わせている。
さらに、G.718はITU-T G.722.2(AMR-WB)との
相互運用性を考慮し、オプションとしてG.722.2(12.65kbps)をサポートすることができます。この場合、第1層と第2層をG.722.2 mode 2 (12.65 kbps)に置き換えます。
G.718で符号化されたデータは、
Real-time Transport Protocol(RTP)を用いてインターネット上で送信するためのデータ形式が、IETF RFCのドラフトで提案されています。
G.718の
アルゴリズムは、既存の広帯域
音声符号化
アルゴリズムをコアとして、複数の
アルゴリズムを階層的に組み合わせたものです。コア
アルゴリズムで入力信号を符号化し、符号化できなかった残差部分を他の
アルゴリズムで追加情報として付加します。
第1層
コアとなる第1層は、
3GPP2で定義されたVMR-WB(第三世代携帯電話の広帯域
音声符号化
コーデック)の仕様をベースにしており、ACELPを使用します。
サンプリング周波数16kHzの入力信号を12.8kHzに
リサンプリングし、以下の処理を行います。
1. 12.8kHzへの
リサンプリング、
ハイパスフィルタによる
直流成分の除去などの前処理。
2.
スペクトル分析(
音声区間検出と雑音抑制用)。
3. 入力が広帯域/狭帯域かの検出。
4.
スペクトル分析結果に基づく
音声区間検出(VAD)。
5.
スペクトル分析結果に基づく雑音
スペクトル推定。
6. 推定された雑音
スペクトルを用いた雑音抑制。
7. ACELPのための線形予測係数の計算など。
8. 聴感重み付けされた
音声信号の計算。
9. オープンループでのピッチ周波数分析。
10. 背景雑音
スペクトルの推定値の更新。
11. 信号
フレーム内容による処理モードの選択。
これらの処理後、信号
フレームの内容に応じて、以下のいずれかの処理モードで符号化を行います。
無声符号化モード: 無声音の場合の処理。
有声符号化モード: 周期的な繰り返しのある
有声音の場合の処理。
遷移符号化モード: 有声音の開始時点の処理。
非連続送信とコンフォートノイズ生成 (DTX/CNG): 無音時の無音データ(SID)またはNO_DATA
フレームの生成。デコーダ側での適切なバックグラウンドノイズ(コンフォートノイズ)生成。
ジェネリック符号化モード: 上記のいずれにも分類できない場合の処理。
また、G.718はIPネットワークのようなパケットロスやパケット遅延が多い環境での利用を考慮し、フレーム消失時の音質低下を避けるための補助情報も抽出します。これらの情報は第3層に格納され、復号時に使用されます。
第2層
第2層は、第1層の拡張としてACELPを使用し、12.8kHzでサンプリングされたフレームに対して符号化処理を行います。第1層の符号化モードやコードブックの値を使い、第1層で符号化できなかった残差信号を計算し、それをACELPのコードブックを使って符号化します。基本的な動作は第1層の符号化モードにより異なりますが、以下の処理を行います。
12.8kHzでサンプリングされた6.4kHz以下の信号成分について、元の信号と第1層で符号化した信号との残差を符号化。
AMR-WBのアルゴリズムを使用し、6.4kHz~7kHzの信号成分を生成。
第3層以上
第3層以上の層は広帯域版のみで使用され、サンプリング周波数は16kHzです。これらの層では、第2層までで符号化できなかった残差部分をMDCTを用いて周波数領域の係数に変換し、入力信号の性質と人間の聴感特性に合わせて符号化します。
G.718では、信号に音声成分が多いか音楽成分が多いかを判定し、第3層と第4層で使われる符号化方法を切り替えます。音声/音楽の判定には、第2層以下で符号化できた信号と実際の入力信号との周波数領域での差を調べます。第2層以下は音声符号化用のアルゴリズムを使用しているため、音楽などを含む信号はうまく符号化できず、実際の入力信号より符号化後の信号のほうがエネルギーが大きくなる領域が多くなります。これを利用して、符号化後のエネルギーが大きくなる領域のエネルギーの総和を求めることで判定を行います。
音声成分が多い場合: 第3層と第4層では、AVQ(algebraic vector quantization)と呼ばれる方法が使用されます。
音楽成分が多い場合: 第3層ではBS-SGC(band-selective shape-gain vector quantization)が、第4層ではFPC(factorial pulse coding)と呼ばれる方法が使用されます。
第5層: 常にFPCが使用され、それ以下の層で符号化できなかった
周波数領域での残差を符号化します。
第3層以上で使用されるMDCT係数の符号化方式の概要は以下の通りです。
層 | 符号化方式 |
---|
-- | --------- |
第3層 | AVQ (音声) または BS-SGC (音楽) |
第4層 | AVQ (音声) または FPC (音楽) |
第5層 | FPC |
脚注
参考文献
Jacob Benesty, M. M. Sondhi, Yiteng Huang (ed). Springer Handbook of Speech Processing. Springer, 2007. ISBN 978-3540491255.
ITU-T Recommendation G.718 (06/2008), Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s. ITU-T, 2008.
IETF Network Working Group. RFC Draft RTP payload format for G.718 speech/audio. IETF. April, 2009.
関連項目
音声符号化
ACELP
G.722.2
G.729.1
ITU-T
VMR-WB
外部リンク
Official ITU-T G.718 recommendation
RTP payload format for G.718 speech/audio draft-ietf-avt-rtp-g718-01 - Internet Draft
ITU-T SG 16 Work Programme (2005-2008) - G.718 (ex G.VBR-EV)