Scalar Quantization

Scalar Quantization(標量量化)是一種將連續(xù)的模擬信號轉換為離散的數(shù)字信號的技術,廣泛應用于數(shù)字通信、音頻處理、圖像壓縮等領域。其原理如下:

  • 原理概述:標量量化是通過把輸入信號的取值范圍劃分成有限個區(qū)間,然后將落入每個區(qū)間的輸入值都映射為一個固定的輸出值,這個輸出值也被稱為量化值或重建值。
  • 量化過程
    • 劃分區(qū)間:首先,根據(jù)量化器的設計,將輸入信號的取值范圍劃分為若干個互不重疊的子區(qū)間,每個子區(qū)間稱為一個量化間隔。例如,對于一個取值范圍在[-1, 1]的信號,可以將其劃分為[-1, -0.5)、[-0.5, 0)、[0, 0.5)、[0.5, 1]這4個量化間隔。
    • 確定量化值:為每個量化間隔指定一個代表值,即量化值。這個量化值通常是該區(qū)間的中點或其他特定值。比如在上述例子中,4個量化間隔的量化值可以分別設為-0.75、-0.25、0.25、0.75。
    • 映射量化:當輸入信號到來時,判斷它落入哪個量化間隔,然后將其映射為該間隔對應的量化值。例如,若輸入信號的值為0.3,它落入[0, 0.5)這個量化間隔,那么它將被量化為0.25。
  • 量化誤差:由于量化過程是將連續(xù)的輸入值映射為有限個離散的量化值,所以不可避免地會產生誤差,這種誤差稱為量化誤差。量化誤差的大小取決于量化間隔的大小,量化間隔越小,量化誤差就越小,但所需的量化級數(shù)和存儲量就越大。
  • 量化器設計準則:在設計標量量化器時,通常需要考慮兩個重要的準則,即最小均方誤差準則和最大熵準則。最小均方誤差準則是指使量化誤差的均方值最小,從而使量化后的信號與原始信號在均方意義下最接近。最大熵準則則是在給定量化級數(shù)的情況下,使量化后的信號熵最大,從而保留盡可能多的原始信號信息。
    image.png

針對 1024維浮點向量進行Scalar Quantization(8位量化)前后的內存占用對比,分析如下:

1. 原始浮點向量的內存占用

假設原始向量使用 單精度浮點數(shù)(float32) 存儲(機器學習/信號處理中最常見),每個浮點元素占用 4字節(jié)(32位)。

  • 總內存 = 維度 × 單元素字節(jié)數(shù) = ( 1024 \times 4 = 4096 , \text{字節(jié)(4KB)} )。

2. 8位標量量化后的內存占用

“8量化”通常指 每個量化后的值用8位(1字節(jié))表示(如無符號整數(shù)0255或有符號整數(shù)-128127)。
標量量化對每個維度獨立處理,量化后每個元素存儲為 1字節(jié)的整數(shù)(而非浮點)。

  • 總內存 = 維度 × 單元素字節(jié)數(shù) = ( 1024 \times 1 = 1024 , \text{字節(jié)(1KB)} )。

3. 對比結果

指標 原始浮點向量(float32) 8位量化后(整數(shù))
單元素存儲大小 4字節(jié) 1字節(jié)
總內存占用 4096字節(jié)(4KB) 1024字節(jié)(1KB)
壓縮比 4:1(內存減少75%)

關鍵假設與說明

  1. 浮點類型:假設使用單精度浮點數(shù)(float32),若為雙精度(float64,8字節(jié)/元素),原始內存會翻倍(8KB),量化后仍為1KB,壓縮比變?yōu)?:1。
  2. 量化方式:標量量化對每個元素獨立量化,量化后的值用8位整數(shù)表示(無額外元數(shù)據(jù),如縮放因子/偏移量的存儲未計入,實際應用中可能需額外存儲少量參數(shù),但通??珊雎曰蚍謹偟酱罅繑?shù)據(jù)中)。
  3. 應用場景:常用于模型量化(如神經網絡權重/激活值壓縮)、數(shù)據(jù)存儲優(yōu)化,在精度損失可接受的前提下顯著減少內存/計算量。

總結

通過8位標量量化,1024維浮點向量的內存占用從 4KB降至1KB,壓縮比為 4:1,大幅節(jié)省存儲空間和傳輸帶寬。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容