A. 算術編碼相關介紹
算術編碼是一種數據壓縮技術,其工作原理並非如表面上所示,先用無限精度計算節點分數,然後轉換。實際上,很多編碼器採用有限精度計算,因為它們知道解碼器的精度,並在計算後四捨五入到合適的值。例如,一個8位精度的編碼器會將[0,1]區間分成三等份,精確度已知,這決定了可用二進制數值的范圍。
「再歸一化」過程使得有限精度不再是編碼字元數目的限制。當數值范圍減小且所有值共享特定位時,這些位會被輸出。即使計算機精度很高,編碼時使用的位數會少於精度,通過左移和添加新位來擴展可用范圍。這在前兩個例子中有所體現。
關於算術編碼的專利,美國存在多個由IBM等公司持有的關鍵專利,它們對於標準的制定至關重要。這些專利通常通過RAND授權協議使用,即合理且非歧視性授權,有的免費,有的則需付費。然而,專利法的不確定性導致了對潛在侵權的擔憂,尤其是在專利期限即將到期時。像bzip2這樣的壓縮軟體曾因擔心專利問題,放棄了算術編碼,轉而使用Huffman編碼。
以下是部分美國算術編碼專利的列表:
請注意,此列表不全面,更多專利信息請參閱相關鏈接。在國際范圍內,算術編碼的專利狀況可能因國家而異,關於軟體專利的詳細討論,請查看相關鏈接的內容。
是圖像壓縮的主要演算法之一。 是一種無損數據壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在於,其他的熵編碼方法通常是把輸入的消息分割為符號,然後對每個符號進行編碼,而算術編碼是直接把整個輸入的消息編碼為一個數,一個滿足(0.0 ≤ n < 1.0)的小數n。
B. 算術編碼是怎樣實現圖像壓縮的
揭秘圖像壓縮的秘密:算術編碼的魔力
在圖像壓縮領域,JPEG和DropBox開源的lepton都展現出了卓越的性能。JPEG通過量化和Huffman編碼技術,已經顯著縮小了圖片尺寸。然而,lepton在此基礎上更進一步,引入了算術編碼(VP8),實現了更高層次的壓縮效率,節省空間約22%。
算術編碼,這種看似復雜的編碼方式,其實有著獨特的魅力。它能對二進制序列進行深度壓縮,以小於原始序列的編碼表示。以序列 {1,0} 為例,輸入1101,通過概率分析,1的概率為3/4,0為1/4。經過編碼,1101被轉化為一個更小的數,比如0.5,表示為1,即1101的算術編碼結果。
自適應的算術編碼:動態概率與無限精度
自適應模型是算術編碼的關鍵所在。初始時,每個符號的概率相等,隨著編碼進行,這些概率會根據輸入數據動態調整。在理想情況下,我們使用無限小數進行計算,但實際上,為了便於理解,通常四捨五入到小數點後四位。比如,編碼「BCCB」時,初始區間是[0,1),通過輸入的「B」和「C」,區間逐漸細化到[0.6390,0.6501)。輸出的小數,如0.64,對應於原始數據的編碼。
解碼時,只需輸入小數,逆向執行編碼過程。首先根據初始概率劃分區間,然後根據輸入小數決定符號,接著根據新概率繼續分割區間。例如,0.64先指向「B」區間,再指向「C」區間,最終還原出完整的「BCCB」序列。
總的來說,算術編碼通過自適應概率計算和區間分割,實現了對圖像數據的高效壓縮。盡管看似復雜,但通過解碼時的小數輸入,我們能夠精確地還原出原始信息,這正是算術編碼在圖像壓縮領域大顯身手的奧秘所在。