Quantization Error (Case without Clipping)


我在閱讀這篇論文: “Optimal Clipping and Magnitude-aware Differentiation for Improved Quantization-aware Training” [arxiv] 的時候, 看到這個式子說明 uniform constrained quantizer 有這樣的 quantization error:
J=s2max4B3

當下看得我一頭霧水, 後來查了資料才了解這個 quantization error 的推導, 因此筆記一下. [來源1], [來源2]

這裡要特別說明一下, 這邊的 quantization error 沒有考慮超過最大最小值造成的 clipping error. 將 clipping error 一起考慮是開頭說的那篇論文會探討的情況.

這樣的 quantization error 分析在傳統訊號處理可以看到, 例如 analog 訊號經過 ADC 變成 digital 訊號後會有 quantization 損失. 如果 quantization bit 增加 1 bit 則 SNR 增加約 6dB. 又如果採用 nonlinear quantization 則對音量較低的情況其 SNR 提昇會比 linear quantization 好. Nonlinear quantization 又分 μ-law (北美 and 日本) 和 A-law (歐洲 and 其他). 這些內容在下面的筆記都會解釋. Let’s go~

Uniform Quantization


令 quantization step size 為 Δv=smax/2B1, 其中 B 為 bit 數, 數值範圍在 [smax,smax] 之間. 則 input x 和 quantized xq 的關係如下圖 (圖片裡的 mp=smax): [來源1]

我們將 quantization error q=xxq 畫出來則如下圖: [來源1]

所以 quantization error q:=xxq 數值範圍分布在 [Δv/2,Δv/2] 之間. 到這邊應該都滿清楚的.
此時做了一個假設, 假設 q 的分布是 uniform distribution, 所以 power of q 的期望值為:
Pq=Δv/2Δv/2q21Δvdq=1Δv[q33]Δv/2Δv/2=...=(Δv)212=(smax/2B1)212=s2max11222(B1)=s2max4B3

開頭那個奇怪的式子就是這麼來的. 另外 SNR 可以這麼表示:
SNR=Signal PowerNoise Power=PsPq=10log10(34Bs2maxPs)=10log10(3Ps/s2max)+20Blog10(2)α+6B
其中 α 與 signal power 有關, 可以發現如果增加 1 bit 的表示能力, SNR 能提升約 6dB.

Non-uniform Quantization


另外考慮到一般訊號數值大的只占少部分, smax 容易被 outlier 影響, 因此 quantization error 就會比較大. 如果說我們先將訊號做 nonlinear 壓縮 (compresser), i.e. 數值大的會被加比較多, 數值小的壓一點就好 (見下圖), 這樣數值間的差異變小後, 再經過 linear quantization 的話, quantization error 就不會那麼大了.

相對的解碼的時候要做擴展 (expander).
由於在 transmitter/receiver 端我們會做 compress/expand, 所以我們稱為 compander = compresser + expander
Telephone system (北美和日本):

  • μ=100 for 7-bits (128 levels)
  • μ=255 for 8-bits (256 levels)

而在歐洲和其他地方 A=87.7 or 87.6.

References


  1. Ali Muqaibel: 6.4.1 Quantization, Part I: Uniform Quantization and PCM Generation [YouTube]
  2. Ali Muqaibel: 6.4.2 Quantization, part II: Non Uniform Quantization [YouTube]
  3. Optimal Clipping and Magnitude-aware Differentiation for Improved Quantization-aware Training, [arxiv]