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

川村 新,尾知 博

ここでは音声情報を小さなデータ量で表現するための基本的な技術を取り上げます.音楽CDで使われている方式や固定電話で使われている方式,パソコンのWAVEファイルで使われている方式について具体的に説明します.規格に従って処理を行おうとするとやや複雑な数式を扱う必要がでてきますが,原理そのものは比較的シンプルです.(編集部)

※ 本記事は,ディジタル・デザイン・テクノロジ No.6から転載いたしました.同誌はこちらから購入できます.


 携帯電話や小型の音楽プレーヤの普及により,複数の音声を同時かつ高速に伝送したり,小型機器に大量の音楽を保存する要求が高まっています.そのためには,音声や音楽をできるだけ小さいデータ容量で表現する必要があります.このような目的を達成するための技術を音声圧縮と呼びます.現在,表1に示すような音声圧縮技術が用いられています.

表1 音声圧縮技術の分類

 

 本稿では,音楽CDや固定電話,パソコンのWAVファイルで用いられている基本的な音声圧縮方式について説明します.音声波形そのものを符号化の対象とした波形符号化方式を取り上げます.数値計算ソフトウェアのScilabの演習を交えながら説明します.Scilabで使用するプログラムやデータは,こちらのWebページからダウンロードできます.


 

1.PCM

 空気密度の変化である音声は,マイクロホンによって電圧の変化に変換できます(図1).電圧に変換された音声は,保存や伝送における取り扱いが容易となります.



 
図1 音声信号の変換
空気密度の変化である音声は,マイクロホンによって電圧変化に変換できる.

 

 音声は,時間と振幅の両方で連続値をとります.時間と振幅の両方で連続値をとるような信号は,総じてアナログ信号と呼ばれます.

 現在ではほとんど姿を消してしまったレコード盤やテープ・レコーダは,アナログ信号である音声波形そのものをすべて記録していました.このため,大容量の音声記録には不向きでした.そこで音声信号を時間と振幅の両方でとびとびの値だけを記録して全体の容量を圧縮しようとする方法が提案されました.このような音声の圧縮方法をPCMと呼びます.PCMは音楽CDやDVDビデオの音声などに広く利用されています.

 連続値を持つ信号に対してとびとびの値だけを記録することを離散化と呼びます.以下では,PCMにおける時間と振幅の離散化についてそれぞれ詳しく説明します.

●時間の離散化

 アナログ信号に対する時間の離散化は,サンプリングと呼ばれます(図2).



図2 時間の離散化
サンプリングによって得られた値をサンプル値という.サンプリングの間隔を時間で表したのがサンプリング周期,周波数で表したのがサンプリング周波数.

 

 サンプリングによって得られた値をサンプル値といいます.また,サンプリングの間隔を時間で表したのがサンプリング周期,周波数で表したのがサンプリング周波数です.

 サンプリング周波数Fsでディジタル信号を作るとき,再現可能なアナログ信号の周波数帯域はFs/2までになります.これはサンプリング定理(1)として知られています.従って,時間の離散化については効率良く設定できます.例えば,電話に使用する音声では,会話内容が理解できる程度(300Hz~3.4kHz)としてFs=8kHz,音楽CDの記録方式では人間の可聴域(20Hz~20kHz程度)をカバーするFs=44.1kHzが用いられています(図3).



図3 サンプリング周波数により再生可能な周波数帯域が異なる
サンプリング定理により,再現可能なアナログ信号の周波数帯域はFs/2までになる.


●振幅の離散化

 振幅の離散化は量子化と呼ばれ,その間隔は量子化幅と呼ばれます.PCMでは量子化幅を一定とする一様量子化が基本になります.

 量子化後の振幅値は,2進数で表すと,物理的な電荷の有無と一致して記録しやすくなります.このため,通常,振幅の分割数は2のべき乗で設定されます.振幅の分割数が2N(Nは正の整数)の場合,「Nビット量子化」と表現されます.このときのNをビット数と呼びます.

 アナログ信号に対する2ビット量子化の様子を図4に示します.



図4 振幅の離散化(量子化)
2ビット量子化の例を示す.時間の離散化は省略している.


 連続値を持つ音声信号の振幅を有限の値で表現すると,両者の間には必ず誤差が生じ,元の値を正確に保持することはできません.このようにして生じる誤差を量子化誤差と呼びます.

 PCMにおける量子化誤差の例を図5に示します.量子化誤差はビット数を増やすことで小さくできます.例えば,3ビットであれば振幅を23=8段階,16ビットであれば216=65536段階で表現できるので16ビットの方が量子化誤差が小さくなります.音楽CDでは16ビットのPCMを採用しています.



図5 量子化誤差
量子化誤差はビット数を増やすことで小さくできる.3ビット量子化では図のように23=8段階になるが,16ビット量子化であれば216=65536段階で表現できる.


 図6に音声入力と3ビットPCM出力の関係を示します.ここで,横軸の直線部分の幅が量子化幅です.ビット数を大きくすると量子化幅が小さくなり,より高音質となります.



図6 PCMの入出力関係
PCMの原点の取り方には自由度がある.低いビット数でPCMを実行する場合には,量子化後の信号に0を含めるより,0となる信号が少ない方が優位.


 PCMの原点の取り方には自由度があります.本特集では,図6(a)のように量子化後の信号に0を含めず,入力音声の正と負の値を同じ分割数で表現する方式を採用します(2).低いビット数でPCMを実行する場合には,図6(b)に示すように量子化後の信号に0を含めるより,0となる信号が少ない図6(a)の方が音声情報の保持には優位です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日