μ-lawアルゴリズム

出典: フリー百科事典『ウィキペディア(Wikipedia)』

μ-lawアルゴリズム対数を用いたコンパンディングアルゴリズムの一種である[1]。他のコンパンディングアルゴリズムと同様、信号ダイナミックレンジを低減させる。アナログでは、S/Nを向上させる効果があり、デジタルでは量子化誤差を低減させる(結果としてS/Nが向上する)。S/N向上と引き換えに帯域幅が狭くなる。

主に北アメリカ日本デジタル通信システムに使われている。ヨーロッパでは、類似するA-lawアルゴリズムを使っている。

アルゴリズム[編集]

アルゴリズムには、アナログ版と量子化されたデジタル版がある。

連続[編集]

入力 x に対する μ-law 符号化は、以下の式で表される[2]

μ-law の伸張は以下の逆関数で与えられる。

μを増加させると強い信号がより圧縮される(図参考)。

図. μ-law(x軸: 線形信号, y軸: μ-law信号)

離散[編集]

これは、ITU-T勧告 G.711 に定義されている[3]

G.711 では、境界にある値の扱いが不明確である(例えば、+31 は 0xEF なのか 0xF0 なのか)。しかし、G.191 にあるC言語によるμ-lawエンコーダの例は、以下のようになっている。正の値と負の値の違いに注意が必要である。例えば、+30 から +1 の範囲に対応する負の範囲は -31 から -2 である。これは、2の補数ではなくむしろ1の補数(単純なビット反転)で説明できる。

量子化 μ-law アルゴリズム
14ビットの二進線形入力符号 8ビットの圧縮済み符号
+8158 から +4063 まで、256毎の16インターバル 0x80 + インターバル数
+4062 から +2015 まで、128毎の16インターバル 0x90 + インターバル数
+2014 から +991 まで、64毎の16インターバル 0xA0 + インターバル数
+990 から +479 まで、32毎の16インターバル 0xB0 + インターバル数
+478 から +223 まで、16毎の16インターバル 0xC0 + インターバル数
+222 から +95 まで、8毎の16インターバル 0xD0 + インターバル数
+94 から +31 まで、4毎の16インターバル 0xE0 + インターバル数
+30 から +1 まで、2毎の15インターバル 0xF0 + インターバル数
0 0xFF
-1 0x7F
-31 から -2 まで、2毎の15インターバル 0x70 + インターバル数
-95 から -32 まで、4毎の16インターバル 0x60 + インターバル数
-223 から -96 まで、8毎の16インターバル 0x50 + インターバル数
-479 から -224 まで、16毎の16インターバル 0x40 + インターバル数
-991 から -480 まで、32毎の16インターバル 0x30 + インターバル数
-2015 から -992 まで、64毎の16インターバル 0x20 + インターバル数
-4063 から -2016 まで、128毎の16インターバル 0x10 + インターバル数
-8159 から -4064 まで、256毎の16インターバル 0x00 + インターバル数

実装[編集]

μ-lawアルゴリズムの実装には、以下の3種類がある。

アナログ
コンパンディングをアナログで行う。
非線形ADC
アナログ-デジタル変換回路での量子化の際にμ-lawアルゴリズムを使う。
デジタル
デジタルでμ-lawアルゴリズムを適用する。

利用[編集]

北アメリカおよび日本でのデジタル通信システム規格では μ = 255(8ビット)のμ-lawアルゴリズムが利用されている。

背景[編集]

この符号化を使うのは、音声のダイナミックレンジが広いためである。アナログでは、ある一定の背景雑音が混じることで、信号の詳細が失われる。元々音の信号であるため、人間の聴覚対数的に音の強さ(音の大きさ)を知覚するという事実を利用し、対数応答オペアンプを使って信号を対数的に圧縮する。電気信号にノイズが乗るのは主に信号線上であり、対数的に圧縮してからノイズが乗っても、信号を元に戻したときに音の大きい部分は確実に大きく知覚される。この手法は電気通信でデジタル化以前からよく使われ、μ-law 仕様が規格間の互換性のために定義された。

デジタルが使われるようになると、以前から使っていたアルゴリズムが音声を表す信号に必要なビット数の削減にも効果があることがわかった。μ-lawを使うと、標本を8ビットで表すことができ、コンピュータの処理単位とも一致した。

μ-law 符号化は、信号のダイナミックレンジを効率的に低減させ、同じビット数で線形符号化で信号を送った場合に比べて、S/Nを低減させることができる。

μ-lawアルゴリズムは、Sunオーディオファイルでも使われ、UNIXにおけるデファクトスタンダードとして使われた。Sunオーディオファイルのフォーマットは、Java 1.1 の sun.audio パッケージや一部のC#メソッドでもオーディオAPIとして使われている。

A-lawとの比較[編集]

μ-law は A-law よりも若干ダイナミックレンジが広いが、微細な信号の歪みが大きくなる。規定により、1カ国でもA-lawを使う国があれば、国際接続ではA-lawが使われる。

関連項目[編集]

脚注[編集]

  1. ^ "µ-law companding transformation" Tachibana, et al. (2018). An Investigation of Noise Shaping with Perceptual Weighting for Wavenet-Based Speech Generation. doi: 10.1109/ICASSP.2018.8461332
  2. ^ Cisco - Waveform Coding Techniques”. 2008年7月29日閲覧。
  3. ^ ITU-T Recommendation G.711”. 2008年9月7日閲覧。

外部リンク[編集]