μ-law アルゴリズム


%CE%9C-law_algorithm
( 2018年5月)(このテンプレート メッセージをいつどのように削除するかを学ぶ)
μ-law アルゴリズム( mu -lawと表記されることもあり、u-lawと近似されることもある) は圧伸アルゴリズムであり、主に北米と日本の 8 ビットPCMデジタル通信システムで使用されます。これは、 ITU-TのG.711標準の 2 つのバージョンのうちの 1 つであり、もう 1 つのバージョンは同様の A-lawです。A-law は、ヨーロッパなど、デジタル通信信号が E-1 回線で伝送される地域で使用されます。
μ-law および A-law アルゴリズムの圧伸
音質比較
μ則変換
元のファイル
これらのファイルの再生に問題がありますか? メディアのヘルプを参照して
コンパンディング アルゴリズムは、オーディオ信号のダイナミック レンジを縮小します。アナログ システムでは、これにより、伝送中に達成される信号対雑音比(SNR) が向上します。デジタル領域では、量子化誤差を減らすことができます(したがって、信号対量子化ノイズ比が増加します)。これらの SNR の増加は、同等の SNR に対する帯域幅の減少と交換できます。

コンテンツ
1 アルゴリズムの種類
1.1 連続 1.2 離散
2 実装
3 使用理由
4 A-lawとの比較
5 こちらもご覧ください
6 参考文献
7 外部リンク

アルゴリズムの種類
μ法則アルゴリズムは、アナログ形式および量子化されたデジタル形式で記述することができる。

連続
image"
μ-law 関数
image
逆μ-law関数
与えられた入力x に対して、μ-law エンコーディングの方程式は次のとおりです。ふ (X ) =
記号(X ) で( 1+ μ
| |X
| |) で( 1 + μ) −1 ≤X ≤ 1
{ F(x)=operatorname {sgn}(x){dfrac {ln(1+mu |x|)}{ln(1+mu )}},quad -1leq xleq 1}

ここで、北米および日本の規格ではμ = 255であり、 sgn( x )は符号関数です。この関数の範囲は -1 ~ 1 であることに注意して
μ-law 展開は、次の逆方程式で与えられます。ふ − 1( y) =
記号( y ) ( 1 + μ)
| | y | | − 1
μ −1 ≤ y ≤ 1
{ F^{-1}(y)=operatorname {sgn}(y){dfrac {(1+mu )^{|y|}-1}{mu }},quad -1 leq yleq 1}

離散
離散形式は、ITU-T 勧告G.711で定義されています。
G.711 では、範囲の限界で値をコーディングする方法が不明です (たとえば、+31 が 0xEF または 0xF0 のどちらにコーディングされるか)。ただし、G.191 では、μ-law エンコーダーのC 言語のサンプル コードが提供されています。正の範囲と負の範囲の差、たとえば +30 から +1 に対応する負の範囲は -31 から -2 です。これは、エンコード中に負の値を正の値に変換するために、2 の補数ではなく1 の補数(単純なビット反転) を使用することによって説明されます。
量子化μ-law アルゴリズム
14 ビット バイナリ リニア 入力コード
8ビット圧縮コード+8158 ~ +4063 256 の 16 間隔
0x80 + 間隔番号
128 の 16 間隔で +4062 ~ +2015
0x90 + 間隔番号+2014 から +991 まで 64 の 16 間隔で
0xA0 + インターバル番号+990 ~ +479 32 の 16 間隔
0xB0 + 間隔番号+478 ~ +223 16 の 16 間隔で
0xC0 + インターバル番号+222 ~ +95 8 の 16 間隔
0xD0 + インターバル番号
4 の 16 間隔で +94 ~ +31
0xE0 + インターバル番号
2 の 15 間隔で +30 から +1
0xF0 + インターバル番号0 0xFF −1 0x7F
2 の 15 間隔で -31 から -2
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 + 間隔番号
128 の 16 間隔で -4063 から -2016
0x10 + 間隔番号
−8159 から −4064 まで 256 の 16 間隔
0x00 + 間隔番号

実装
μ-law アルゴリズムは、いくつかの方法で実装できます。
アナログ
非線形ゲインを持つ増幅器を使用して、完全にアナログ ドメインでコンパンディングを実現します。
非線形 ADC
μ-law アルゴリズムに一致するように不等間隔の量子化レベルを持つ
アナログ デジタル コンバーターを
使用し デジタル
μ-law アルゴリズムの量子化されたデジタル バージョンを使用して、データがデジタル ドメインにあるときにデータを変換します。
ソフトウェア/DSP
μ-law アルゴリズムの連続バージョンを使用して圧縮された値を計算します。

使用理由
音声のダイナミック レンジが広いため、μ-law 符号化が使用されます。アナログ信号伝送では、比較的一定のバックグラウンド ノイズが存在する場合、より細かいディテールが失われます。いずれにせよ細部の精度が損なわれることを考えると、信号が人間によってオーディオとして知覚されると仮定すると、対数を使用して信号を圧縮することにより、知覚される音響強度レベルまたはラウドネスが対数であるという事実を利用できます。応答オペアンプ(ウェーバー・フェヒナーの法則))。通信回線では、ほとんどのノイズが回線に注入されるため、圧縮されていないソースと比較して、意図した信号は静的信号よりも大幅に大きく認識されます。これが一般的なソリューションになったため、一般的なデジタル使用の前に、相互運用可能な標準を定義するために μ-law 仕様が開発されました。
デジタル システムでは、この既存のアルゴリズムは、認識可能な人間の声をエンコードするために必要なビット数を大幅に削減する効果がありました。μ-law を使用すると、サンプルをわずか 8 ビットで効果的にエンコードできます。このサンプル サイズは、ほとんどの標準的なコンピューターのシンボル サイズと都合よく一致していました。
μ-law エンコーディングは、信号のダイナミック レンジを効果的に減少させ、それによって符号化効率を高めながら、所定のビット数の線形エンコーディングで得られる信号対歪み比よりも大きな信号対歪み比が得られるように信号をバイアスします。 .
image
インターネットで一般的に入手可能な Sun Microsystems の C 言語ルーチン g711.c で生成された μ-law デコーディング。
μ-law アルゴリズムは.au フォーマットでも使用されます。これは、Unix のサウンドのデファクト スタンダードとして広く使用されている /dev/audio インターフェイスで使用されるネイティブ メソッドとして、少なくとも Sun Microsystems によるSPARCstation 1までさかのぼります。システム。au 形式は、Java 1.1 の sun.audio Java パッケージのクラスや一部の C# メソッドなど、さまざまな一般的なオーディオAPIでも使用されます。
このプロットは、μ-law がどのように小さい (よりソフトな) 値にサンプリングを集中させるかを示しています。横軸は 0 ~ 255 のバイト値を表し、縦軸は μ-law エンコーディングの 16 ビット リニア デコード値です。

A-lawとの比較
μ-law アルゴリズムは、A-law よりもわずかに広いダイナミック レンジを提供しますが、小信号の比例歪みが悪化します。慣例により、A-law は、少なくとも 1 つの国が使用する場合に国際接続に使用されます。

こちらもご覧ください
オーディオレベル圧縮
信号圧縮 G.711 テーパー浮動小数点

参考文献
^ 「波形コーディング技術 – Cisco」 . 2006-02-02 . 2020-12-07取得。
^ 「ITU-T 勧告 G.711」 .
^ G.191 : 音声およびオーディオ コーディングの標準化のためのソフトウェア ツール
Public Domain
  に は、General Services Administrationドキュメント
のパブリック ドメインの資料が組み込まれています。「連邦規格 1037C」 .

外部リンク
Waveform Coding Techniques – details of implementation
A-Law and mu-Law Companding Implementations Using the TMS320C54x (PDF)
TMS320C6000 μ-Law and A-Law Companding with Software or the McBSP (PDF)
A-law and μ-law realisation (in C)”