G.729
ITU-Tが定めた電話音声の符号化方式である。発声のモデルを使って音声を表すCS-ACELPを用い、8kビット/秒に圧縮する。
イマシルちゃんの解説
電話の声を少ないデータで届けたいときに使う音声符号化方式がG.729だよ。
発声の仕組みをモデルにしたCS-ACELPという方法で、音声データを毎秒8kビットに圧縮するんだ。
声の特徴を分析して、音を作るための設定値に置き換えるよ。
送るのは波の高さの一覧ではなく、声を組み立て直すための「設計図」のような情報なんだ。
受け取る側はその情報を使って元の声に近い音を合成するの。
通話に必要なデータ量を抑えられるので、使える回線の容量が限られる場面で役立つよ。
この解説はわかりやすかったですか?
より深い解説
定義
G.729は、ITU-T勧告で定められた音声符号化方式(コーデック)で、符号化アルゴリズムとしてCS-ACELP(Conjugate Structure Algebraic Code Excited Linear Prediction:共役構造代数符号励振線形予測)を用いる。電話帯域(300~3,400Hz)の音声を、8kビット/秒に圧縮する。
仕組み:音声の「設計図」を送る
G.729は、音声の波形そのものを送る波形符号化ではなく、人の発声の仕組みをモデル化したハイブリッド符号化(分析合成型)の方式である。
- 音声を10ミリ秒の単位(フレーム)に区切る
- 声道(のどや口の形)の特性を、線形予測(LPC)で求めたフィルタの係数として表す
- フィルタに入力する音源(声帯の振動や息の音)を、あらかじめ決めた符号帳(コードブック)から最も近いものを選び、その番号で表す
- フィルタ係数と符号帳の番号だけを送る
受信側は、受け取った番号から音源を取り出してフィルタに通し、音声を合成する。1フレーム(10ミリ秒)は80ビット(10バイト)で表される。
パケットに入る音声データの量
G.729は8kビット/秒なので、パケット化周期ごとのペイロードは次のようになる。
| パケット化周期 | 計算 | ペイロード |
|---|---|---|
| 10ミリ秒 | 8,000 × 0.01 = 80ビット | 10バイト |
| 20ミリ秒 | 8,000 × 0.02 = 160ビット | 20バイト |
| 30ミリ秒 | 8,000 × 0.03 = 240ビット | 30バイト |
20ミリ秒のパケットには、10ミリ秒のフレームが2つ入る。
G.711との比較
| G.711 | G.729 | |
|---|---|---|
| 方式 | PCM(波形符号化) | CS-ACELP(ハイブリッド符号化) |
| 符号化速度 | 64kビット/秒 | 8kビット/秒 |
| 音質 | 高い(固定電話並み) | やや劣る |
| 遅延 | 小さい | 大きい(フレームの分析と先読みが必要) |
| 処理の負荷 | 小さい | 大きい |
G.729は帯域を大きく節約できる反面、符号化の処理で遅延が増え、音質もG.711より劣る。また、圧縮の過程で音声以外の信号(FAXやモデムの信号、DTMFのトーン)は正しく伝えられないため、それらは別の方法で送る必要がある。
バリエーション
| 名前 | 特徴 |
|---|---|
| G.729A(Annex A) | 計算量を減らした簡易版。G.729と相互に通信できる |
| G.729B(Annex B) | 無音を検出して送信を止めるVAD(音声区間検出)と、受信側で自然な背景雑音を作るCNG(コンフォートノイズ生成)を加えたもの |
会話では、片方が話している間、もう片方はほぼ無音である。無音のときに送らないことで、平均の帯域をさらに減らせる。
実際の試験ではここに出る!全3問
ネットワークスペシャリスト
テクニカルエンジニア(ネットワーク)
- 午前