音声圧縮処理の基本 ―― 音楽CDやWAVファイルで使われている波形符号化方式

川村 新,尾知 博

● G.726 ADPCMエンコーダの詳細

 以下ではG.726のそれぞれの処理の詳細を図19に示します.具体的な内容について順を追って解説します.



 


図19 G.726 ADPCMの詳細  ※ クリックすると拡大表示されます
y(n)を決めるためには多くの式が必要だが,最初は式(12)だけを計算し,式(9)に代入すればy(n)が得られる.そのほかの式はy(n)決定後に順次計算し,その結果を次の時刻で用いる.

 

①入力信号sl(n)を得る
 最初に,観測信号sl(n)を得ます.

②予測値se(n)を計算する
 再合成信号sr(n)と量子化された差分信号dq(n)の過去の値を利用して,sl(n)に対する予測値se(n)を図19の式(5)および式(6)で計算します.
 ここで,フィルタ係数は1時刻前に計算されたものを用います.

③差分信号d(n)を得る
 入力信号と予測値との差分信号を図19の式(7)で計算します.

④適応量子化幅y(n)を更新する
 差分信号d(n)に対して適応量子化を行います.実際には,基準となる幅Δ(n)で|d(n)|を割り,その対数に対して量子化を行っています.

 G.726で定められているパラメータ設定値は,図19の表に示すようにADPCMを何ビットで行うかによって異なります.量子化の対象信号,ADPCM信号の絶対値,量子化後の値,適応量子化幅y(n)を更新するためのパラメータ(W,F)の関係が決められています.

 さて,パラメータからADPCM値を得るためには,まず適応量子化幅y(n)を決定しなければなりません.適応量子化では,量子化の結果が大きいときは量子化幅を大きく,逆に量子化の結果が小さいときは量子化幅を小さくします.これを実現するために,量子化の結果として得られたADPCM値の平均値を利用します.具体的には,重み付けされたADPCM値の短時間平均と,長時間平均から,適応量子化幅y(n)を図19の式(9)~式(11)で計算します.

⑤ADPCM信号I(n)を計算する
 適応量子化幅y(n)が決まれば,ADPCM信号|I(n)|も決まります. ADPCM信号は,符号ビットと合わせて送信されます.

⑥量子化差分信号dq(n)を計算する
 ADPCM信号|I(n)|に対応して量子化後の値も決定します.さらに現在の信号と予測値との差分信号を量子化したものに相当する量子化差分信号dq(n)も計算できます.dq(n)を求める手順は逆適応量子化と呼ばれます.

⑦再合成信号sr(n)を計算する
 逆適応量子化により求まった量子化差分信号dq(n)と予測信号se(n)から,再合成信号sr(n)が得られます.sr(n)は,量子化差分信号dq(n)と予測信号se(n)を合わせたものなので,ADPCM信号から作成した現在の入力信号を表わしています.量子化誤差が0ならば,dq(n)=d(n)より,sr(n)=sl(n)となります.sr(n)は適応予測器への入力となり,次の時刻の音声信号の予測に用いられます.

⑧予測係数を更新する
 最後に,適応予測器のフィルタ係数を更新します.sr(n)は次の時刻の入力信号とある程度関係しているので,予測係数の更新に用いられます.なお,sl(n)ではなくsr(n)を予測係数の更新に用いる理由は,後で説明するデコーダ出力をsr(n)と一致させるためです.

●ADPCMデコーダ

 ADPCMデコーダの構成を図20に示します.デコーダ側で用いる処理は,エンコーダ側の処理とほとんど同じです.



図20 ADPCMデコーダの構成
デコーダ側で用いる処理は,エンコーダ側の処理とほとんど同じ.

 

①ADPCM信号I(n)の取得
 まず,ADPCM信号I(n)を受信します.

②適応量子化幅y(n)の更新
 エンコーダと同様にy(n)を計算します.パラメータの初期値が同じならば,y(n)はエンコーダ側と同じ値になります.

③逆量子化信号dq(n)の計算
 パラメータの表を参照して逆量子化を行い,量子化差分信号dq(n)を得ます.

④予測信号se(n)の計算
 エンコーダと同様に予測値se(n)を求めます.

⑤再合成信号sr(n)の計算
 再合成信号を得ます.エンコーダから送信されたADPCM信号I(n)を正確に受信し,各変数の初期値が同じならば,エンコーダ側の再合成信号sr(n)に一致します.このsr(n)がデコーダ側の出力信号となります.

⑥予測係数の更新
 再合成信号sr(n)を得た後,エンコーダと同様に適応予測器のフィルタ係数を更新します.

 以上の繰り返しによりデコーダの処理が行われます.ADPCMではエンコーダ,デコーダで得られる値はほぼ同じになることから,高い精度で音声を復元できます.

 G.726では,予測係数と量子化幅のいずれも適応的に更新します.予測係数を一定として量子化幅を適応的に変化させるものや,量子化幅を一定として予測係数を変化させるものも同じようにADPCMと呼ぶことがあります.

●Scilab演習 ---- ADPCMを実行する

 説明した手順の通りに3ビットのADPCMをScilabで実現してみます.処理が複雑なので,プログラムを省略します.必要な方はこちらのWebページからダウンロードしてください.デコーダ側で得られた再合成信号sr(n)の結果を図21に示します.



図21 ADPCMの再合成信号のシミュレーション
ADPCMでは3ビットでも,原音声を比較的高い精度で復元できる.

 

 ADPCMでは3ビットでも,原信号を比較的高い精度で復元できることが分かります.

 

●参考・引用*文献
(1) 飯國洋二;基礎から学ぶ信号処理,倍風館,2004年.
(2) 古井貞熙;ディジタル音声処理,東海大学出版社,1985年.
(3) ITU-T;Recommendation G.711(11/88),http://www.itu.int/rec/T-REC-G.711-198811-I/
(4) ITU-T;Recommendation G.726,http://www.itu.int/rec/T-REC-G.726/e

 

かわむら・あらた
大阪大学大学院 基礎工学研究科 システム創成専攻 助教
おち・ひろし
九州工業大学大学院 情報工学研究院 電子情報工学研究系 教授

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日