怎麼樣壓縮數據?

基本定義

文件
是將數據存儲在磁盤等存儲媒介中的一種形式。程序文件中存儲數據的單位是字節。文件的大小之所以用××KB、××MB 等來表示,就是因爲文件是以字節(B = Byte)爲單位來存儲的

壓縮比:壓縮後文件大小 / 壓縮前文件大小

常用壓縮軟件
1、LZH 是用 LHA 等工具壓縮過的文件的擴展名。該壓縮格式有時也稱爲 LZH 格式

2、ZIP 是用 PKZIP 等工具壓縮過的文件的擴展名。該壓縮格式有時也稱爲 ZIP 格式

3、日本人比較常用的壓縮軟件LHA,使用的就是哈夫曼算法,是吉崎榮泰開發的一款免費壓縮軟件

RLE 算法

例子
開始:嘗試一下對存儲着AAAAAABBCDDEEEEEF這17個半角字符的文件(文本文件)進行壓縮

結果:A6B2C1D2E5F1是12個字符也就是12字節,因此結果就將原文件壓縮了12字節÷17字節≒70%。
把文件內容用“數據 ×重複次數”的形式來表示的壓縮方法稱爲 RLE(Run Length Encoding,行程長度編碼)算法

應用
RLE算法經常被用於傳真FAX等。G3類傳真機是把文字和圖形都作爲黑白圖像來發送的。由於黑白圖像的數據中,白或黑通常是部分連續的,因此就沒有必要再發送這部分數據的值(白或者黑),而只需附帶上重複次數即可,這樣壓縮效率就得到了大幅提升。例如,像白色部分重複5次,黑色部分重複7次,白色部分重複4次,黑色部分重複6次這樣的部分圖像,就可以用5746這樣的重複次數數字來進行壓縮。

莫爾斯編碼

定義:莫爾斯編碼把一般文本中出現頻率高的字符用短編碼來表示,不常見的字符用長編碼來表示
圖:
在這裏插入圖片描述
結論
AAAAAABBCDDEEEEEF 這個文本,就變成了 A× 6 次 + B× 2 次+C× 1 次+D× 2 次+ E × 5 次+F × 1 次+字符間隔 × 16 = 4 位 × 6 次+ 8 位 × 2 次+9 位 × 1 次+6 位 × 2 次+1 位 × 5 次+8 位 × 1 次+ 2 位 × 16 次 = 106 位 ≒ 14 字節。

莫爾斯 VS 哈夫曼

思想差異
莫爾斯編碼是根據日常文本中各字符的出現頻率來決定表示各字符的編碼的數據長度的

哈夫曼算法是指,爲各壓縮對象文件分別構造最佳的編碼體系,並以該編碼體系爲基礎來進行壓縮
通過藉助哈夫曼樹構造編碼體系,即使在不使用字符區分符號的情況下,也可以構建能夠明確進行區分的編碼體系

哈夫曼來進行壓縮步驟
圖:
在這裏插入圖片描述
結果
哈夫曼編碼表示 AAAAAABBCDDEEEEEF,結果爲 0000000000001001001101011010101010101111,40 位 = 5 字節(這裏爲不包含哈夫曼編碼信息的情況)。壓縮前的數據是 17 字符 = 17 字節,也就是說,我們驚奇地得到了 5 字節 ÷ 17 字節≒ 29% 這樣高的壓縮率

可逆壓縮 與 非可逆壓縮

無損壓縮有:LZ77,LZ78,LZW, FLAC, WavPack, Monkey’s Audio, PNG, Tiff

有損的有(只能還原部分):mp3, mpeg1/2/4, h.264, h.265, avi, rm

相應格式普及:
1、BMP(Bitmap)是使用 Windows 自帶的畫筆來做成的一種圖像數據形式。

2、JPEG(Joint Photographic Experts Group)是數碼相機等常用的一種圖像數據形式。

3、TIFF(Tag Image File Format)是一種通過在文件頭中包含“標籤”就能夠顯示出數據性質的圖像數據形式。

4、GIF(Graphics Interchange Format)是由美國 CompuServe 開發的一種數據格式。這種格式要求色數不超過 256 色

爲什麼壓縮不可逆?
類似於機器碼不能夠反編譯爲源代碼一樣,存在着差異性

Windows95/98處於16色或256色狀態

16色:是指電腦屏幕上同時可以顯示16種顏色,在16色下顯示黑白的文本或簡單的色彩線條是非常正常的

256色:顧名思義就是指能夠後同時顯示256種顏色

真彩色:24位圖還不能表達自然界所有的色彩,但對於我們的眼睛來說它已經能以假亂真了,所以我們叫它。

可逆以及不可逆算法適用的情況分析

針對於圖像的處理,依據需求的不同而進行靈活轉變
針對於文本來說,一般採用可逆的壓縮技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章