μ-lawアルゴリズムは対数を用いたコンパンディングアルゴリズムの一種である[1]。他のコンパンディングアルゴリズムと同様、信号のダイナミックレンジを低減させる。アナログでは、S/Nを向上させる効果があり、デジタルでは量子化誤差を低減させる(結果としてS/Nが向上する)。S/N向上と引き換えに帯域幅が狭くなる。
主に北アメリカと日本のデジタル通信システムに使われている。ヨーロッパでは、類似するA-lawアルゴリズムを使っている。 アルゴリズムには、アナログ版と量子化されたデジタル版がある。 入力 x に対する μ-law 符号化は、以下の式で表される[2]。 F ( x ) = sgn ( x ) ln ( 1 + μ 。 x 。 ) ln ( 1 + μ ) − 1 ≤ x ≤ 1 {\displaystyle F(x)=\operatorname {sgn}(x){\frac {\ln(1+\mu |x|)}{\ln(1+\mu )}}~~~~-1\leq x\leq 1} μ-law の伸張は以下の逆関数で与えられる。 F − 1 ( y ) = sgn ( y ) ( 1 / μ ) [ ( 1 + μ ) 。 y 。 − 1 ] − 1 ≤ y ≤ 1 {\displaystyle F^{-1}(y)=\operatorname {sgn}(y)(1/\mu )[(1+\mu )^{|y|}-1]~~~~-1\leq y\leq 1} μを増加させると強い信号がより圧縮される(図参考)。図. μ-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ビットの圧縮済み符号 μ-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が使われる。
アルゴリズム
連続
離散
+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 + インターバル数
00xFF
-10x7F
-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 + インターバル数
実装
アナログ
コンパンディングをアナログで行う。
非線形ADC
アナログ-デジタル変換回路での量子化の際にμ-lawアルゴリズムを使う。
デジタル
デジタルでμ-lawアルゴリズムを適用する。
利用
背景
A-lawとの比較
関連項目
G.711
Sunオーディオファイル
A-lawアルゴリズム
脚注^ "μ-law companding transformation" Tachibana, et al. (2018). An Investigation of Noise Shaping with Perceptual Weighting for Wavenet-Based Speech Generation
^ “ ⇒Cisco - Waveform Coding Techniques”. 2008年7月29日閲覧。
^ “ ⇒ITU-T Recommendation G.711”. 2008年9月7日閲覧。
外部リンク
⇒Waveform Coding Techniques - 実装の詳細がある。
⇒A-Law and mu-Law Companding Implementations Using the TMS320C54x (PDF)
⇒TMS320C6000 μ-Law and A-Law Companding with Software or the McBSP (PDF)
表
話
編
歴
データ圧縮方式
可逆
ゴロム
ハフマン
適応型