任何數(shù)據(jù)都可壓縮成1‰

責(zé)任編輯:editor004

作者:陳杰

2016-10-25 11:13:22

摘自:中關(guān)村在線

不管你信不信,我己經(jīng)實(shí)現(xiàn)了將任何數(shù)據(jù)壓縮重千分之一,我壓縮的依據(jù)就是數(shù)據(jù)中含有大量的重復(fù)字符,將這些重復(fù)字符信息用占用空間較少的符號(hào)或代碼來代替的過程。

不管你信不信,我己經(jīng)實(shí)現(xiàn)了將任何數(shù)據(jù)壓縮重千分之一,我壓縮的依據(jù)就是數(shù)據(jù)中含有大量的重復(fù)字符,將這些重復(fù)字符信息用占用空間較少的符號(hào)或代碼來代替的過程。

壓縮的原理:

每個(gè)文件都由各種不同代碼組成,比如01代碼。這類文件只有數(shù)字0與1組合。壓縮原理就是“通過查找其中的規(guī)律,簡(jiǎn)化數(shù)字的排列”。比如00000110001111111111簡(jiǎn)化成5個(gè)0,2個(gè)1,3個(gè)0,10個(gè)1的排列。在極限壓縮方式下可以將28.1G壓到25.8M。

用WinRAR壓縮后可以看出,多媒體文件壓縮比最低,與原文件相差無幾,而文本文件和程序文件壓縮比要高一些,最高達(dá)到3:1,從實(shí)際經(jīng)驗(yàn)來看,平時(shí)常見的文件壓縮比都在10倍以下。

算法原理:

字典算法:字典算法是最為簡(jiǎn)單的壓縮算法之一。它是把文本中出現(xiàn)頻率比較多的單詞或詞匯組合做成一個(gè)對(duì)應(yīng)的字典列表,并用特殊代碼來表示這個(gè)單詞或詞匯的這樣一種算法。

還有一種壓縮編碼是一種變長(zhǎng)的編碼,根據(jù)文本不同的具體情況會(huì)有不同的壓縮編碼變體與之相適應(yīng),產(chǎn)生更大的壓縮比率。如變體1:重復(fù)次數(shù)+字符,文本字符串:AAABBBCCCCDDDD,編碼后得到:3A3B4C4D。變體2:特殊字符+重復(fù)次數(shù)+字符,文本字符串:AAAAABCCCCBCCC,編碼后得到:BB5ABB4CBB3C。編碼串的最開始說明特殊字符B,以后B后面跟著的數(shù)字就表示出重復(fù)的次數(shù)。

那么如何實(shí)現(xiàn)快速高密度壓縮呢?解決方案是查找每個(gè)符號(hào)的通用程度,我們建立一個(gè)未壓縮數(shù)據(jù)的柱狀圖;通過拆分柱狀圖為兩部分來創(chuàng)建一個(gè)二叉樹,每個(gè)遞歸的一半應(yīng)該和另一半具有同樣的權(quán)符號(hào)數(shù)。編碼器使用這種邏輯來找到每個(gè)符號(hào)最優(yōu)的表示方法。然而解碼器使用唯一的標(biāo)識(shí)在壓縮流中每個(gè)編碼的開始和結(jié)束,其通過在讀壓縮數(shù)據(jù)位的時(shí)候自頂向底進(jìn)行無限傳送,選擇基于數(shù)據(jù)流中的每個(gè)獨(dú)立的分支,一旦一個(gè)到子節(jié)點(diǎn),解碼器就知道一個(gè)完整的編碼已經(jīng)讀出來了,這樣完成了體積極小的壓縮過程。

如何實(shí)現(xiàn)高壓縮

系統(tǒng)文件如游戲跟一些代碼的文檔能用7Z進(jìn)行壓縮。當(dāng)然,壓縮率也意味著費(fèi)時(shí)間的壓縮跟解壓。壓縮率小的沒必要用7z,直接打包反而更好。

影音圖像文件多數(shù)壓縮率只能通過再編碼有損壓縮。比如BMP圖像轉(zhuǎn)jpg,APE轉(zhuǎn)MP3。

大家用的WinRar是外國軟件,但中國的壓縮技術(shù)也很厲害,2013年末的時(shí)候,新聞聯(lián)播播出:我國突破壓縮技術(shù),可將文件在rar的基礎(chǔ)上,圖片可再壓縮100倍,視頻可再壓縮10倍。

隨著視頻圖像、文檔映象、多媒體等技術(shù)的出現(xiàn),壓縮技術(shù)成了網(wǎng)絡(luò)管理員的一個(gè)重要工作內(nèi)容。數(shù)據(jù)壓縮技術(shù)是擠壓數(shù)據(jù),使其占用較少的磁盤存儲(chǔ)空間和用時(shí)更短的傳輸壓縮時(shí)間,廣大用戶還是沒有體驗(yàn)到3年前的壓縮技術(shù),壓縮技術(shù)的推廣對(duì)未來科技的發(fā)展也是必不可少的。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)