![Μ-lawアルゴリズム Μ-lawアルゴリズム](/modules/owlapps_apps/img/nopic.jpg)
μ-lawアルゴリズムは対数を用いたコンパンディングアルゴリズムの一種である。他のコンパンディングアルゴリズムと同様、信号のダイナミックレンジを低減させる。アナログでは、S/Nを向上させる効果があり、デジタルでは量子化誤差を低減させる(結果としてS/Nが向上する)。S/N向上と引き換えに帯域幅が狭くなる。
主に北アメリカと日本のデジタル通信システムに使われている。ヨーロッパでは、類似するA-lawアルゴリズムを使っている。
アルゴリズムには、アナログ版と量子化されたデジタル版がある。
入力 x に対する μ-law 符号化は、以下の式で表される。
μ-law の伸張は以下の逆関数で与えられる。
μを増加させると強い信号がより圧縮される(図参考)。
これは、ITU-T勧告 G.711 に定義されている。
G.711 では、境界にある値の扱いが不明確である(例えば、+31 は 0xEF なのか 0xF0 なのか)。しかし、G.191 にあるC言語によるμ-lawエンコーダの例は、以下のようになっている。正の値と負の値の違いに注意が必要である。例えば、+30 から +1 の範囲に対応する負の範囲は -31 から -2 である。これは、2の補数ではなくむしろ1の補数(単純なビット反転)で説明できる。
μ-lawアルゴリズムの実装には、以下の3種類がある。
北アメリカおよび日本でのデジタル通信システム規格では μ = 255(8ビット)のμ-lawアルゴリズムが利用されている。
この符号化を使うのは、音声のダイナミックレンジが広いためである。アナログでは、ある一定の背景雑音が混じることで、信号の詳細が失われる。元々音の信号であるため、人間の聴覚は対数的に音の強さ(音の大きさ)を知覚するという事実を利用し、対数応答オペアンプを使って信号を対数的に圧縮する。電気信号にノイズが乗るのは主に信号線上であり、対数的に圧縮してからノイズが乗っても、信号を元に戻したときに音の大きい部分は確実に大きく知覚される。この手法は電気通信でデジタル化以前からよく使われ、μ-law 仕様が規格間の互換性のために定義された。
デジタルが使われるようになると、以前から使っていたアルゴリズムが音声を表す信号に必要なビット数の削減にも効果があることがわかった。μ-lawを使うと、標本を8ビットで表すことができ、コンピュータの処理単位とも一致した。
μ-law 符号化は、信号のダイナミックレンジを効率的に低減させ、同じビット数で線形符号化で信号を送った場合に比べて、S/Nを低減させることができる。
μ-lawアルゴリズムは、Sunオーディオファイルでも使われ、UNIXにおけるデファクトスタンダードとして使われた。Sunオーディオファイルのフォーマットは、Java 1.1 の sun.audio
パッケージや一部のC#メソッドでもオーディオAPIとして使われている。
μ-law は A-law よりも若干ダイナミックレンジが広いが、微細な信号の歪みが大きくなる。規定により、1カ国でもA-lawを使う国があれば、国際接続ではA-lawが使われる。
Owlapps.net - since 2012 - Les chouettes applications du hibou