隨著數據量的驚人增長,數據壓縮技術的重要性愈加凸顯。其中,非對稱數字系統(ANS)作為一種高效的熵編碼方法,自2014年由雅蓋隆大學的雅羅斯瓦夫·杜達(Jarosław Duda)提出以來,便在壓縮性能上引領了革命。這種技術擁有優於傳統方法的壓縮比以及接近霍夫曼編碼的處理成本。
ANS 結合了算術編碼的壓縮率,並以接近霍夫曼編碼的處理成本運作,展現出其強大的應用潛力。
在 ANS 的變體——表內 ANS (tANS) 中,利用有限狀態機來操作大量符號集,無需使用乘法操作。值得一提的是,ANS 在眾多尖端數據壓縮工具中的應用廣泛,包括 Facebook 的 Zstandard 壓縮器(該壓縮器在 Linux 內核、Google Chrome 瀏覽器、Android 操作系統中被採用,並作為 MIME 和 HTTP 的 RFC 8478 發布)、Apple 的 LZFSE 壓縮器、Google 的 Draco 3D 壓縮器(如皮克斯的通用場景描述格式)、及 PIK 圖像壓縮器等。
這些應用的背後,AN S 的基本思想是將信息編碼成一個單一的自然數 x。其過程涉及到一系列概率運算和符號分配,最終使壓縮過程不僅高效,還能最大限度地減少冗餘數據的存儲。
在傳統的二進制系統中,我們將一個比特 s 的信息添加到 x 的過程中可表示為: x' = 2x + s。對於一個熵編碼器而言,如果 Pr(0) = Pr(1) = 1/2,這是最優的。然而,ANS 將這一過程普遍化,適用於任意符號集及其相應的概率分佈。
ANS 使得隨著信息的增加,存儲的自然數 x 能夠優化至最佳狀態,展示數據壓縮的效率和靈活性。
熵編碼的基本原則是根據信息的變化量來最小化存儲需求。舉例來說,假設一串1,000個0和1的序列,若知道該序列僅包含1個0及999個1,那麼只需編碼0的位置信息,這時的存儲需求將顯著降低。這正體現了使用 ANS 進行壓縮的潛力。
如果假設有一種數據模式,其中包括大量相同的符號,則 AN S 的熵編碼技術使得對此類數據的壓縮越發有效。例如,在一個由三個字母組成的源中,其出現的概率分別為1/2、1/4和1/4,便可以透過 ANS 方法實現最佳的編碼效率。這一特性使 ANS 得以在許多現代的數據壓縮工具中扮演關鍵角色。
以 Zstandard 和 LZFSE 為例,這兩款壓縮工具都充分利用了 ANS 的特點,為用戶提供高效的壓縮選擇。Zstandard 的設計目的是實現最佳的壓縮率和速度,而 LZFSE 則關注於優化利益結構及其在 Apple 設備中的性能。這些現代壓縮算法在處理大規模數據時,能顯著減少存儲空間需求並提高傳輸速度。
通過引入 ANS 技術,Zstandard 和 LZFSE 的優勢得以充分發揮,為行業內的數據管理帶來了變革。
儘管 ANS 在壓縮效率上取得了顯著的成果,但在應用過程中仍然面臨著一些挑戰,包括處理大型數據集中的計算負擔及符號分佈的動態調整問題。隨著數據量的增加,未來對高效壓縮技術的需求只會越來越高。
在這樣的背景下,ANS 將如何進一步發展,以滿足未來數據增長的需求?