海軍呢

[拼音]:shuju yasuo

[英文]:data compression and compaction

為了節省資訊的儲存空間和提高資訊的傳輸效率,對資訊編碼長度進行壓縮的技術。在資料處理過程中儲存大量資料和在計算機通訊網路中傳輸大量資料,都需要很大的費用。採用資料壓縮技術在這方面常常可以節省80%以上的費用。但資料壓縮也帶來一些問題。資料壓縮會增加軟體系統的複雜性,增加計算機系統的負擔;被壓縮後的資料可能會失掉原有的良好的標準形式,降低它的通用性和可移植性;可能壓縮掉用於出錯檢查的冗餘資料,因而降低資料的可靠性。因此,是否採用壓縮技術需要根據具體問題來決定,而無統一的定則。

原則上說,資料壓縮技術與資料的語義有關。合理的壓縮是去掉資料中的無關資訊,而儲存有關資訊。資料的形式雖有變化,但它所儲存的有關語義資訊沒有變化。資料壓縮技術分為兩種,一種和語義無關,壓縮時只從資料的形式出發,不涉及資料資訊內容,這種技術適用於任何資料。另一種與語義相關,壓縮時考慮資料資訊內容和語義,去掉其中一些冗餘的資訊。常用的壓縮技術有模式替代、壓縮重複字元、免寫空字域、編碼替代、不等長編碼、相鄰資料利用、消除冗餘資訊等。

模式替代

掃描整個文字,找出經常出現的多位元組模式(字元組合),用一個單位元組模式去替代,將替代規則記入替代登記表。例如

zhang chang zhang可以寫成 αβ chβ αβ用α替代zh,用β替代ang。α,β是兩個閒置的字元。

壓縮重複字元

有些數值檔案中包含大量的前導零,又有些檔案包含大量重複的空格符或其他字元,只要設法指出這些字元是重複的並指出重複次數,就可節省大量儲存空間。在大多數圖形處理應用問題中,字元重複現象大量存在。例如可以利用一個8位EBCDIC碼:

來指出上述兩點。一般EBCDIC碼中b6位置不為零,用o表示下一個位元組要重複,b0~b5這6位指明字元重複的次數。

免寫空字域

檔案中一個記錄包含若干字域,如果很多字域值是空的則可用標誌指明,例如用一個二進位0表示空,1表示非空,從而避免存放大量的空字域。

編碼替代

對於一個屬性取值是有限的集合,可以用簡單的編碼替代,把替代規則存入替代字典。例如,大學教師職稱類別、學校的系和專業、性別等,均可用某一編碼替代。

不等長編碼

根據字元出現的頻率重新編碼,頻率大的字元用短碼,頻率小的字元用長碼。這樣可以縮短平均編碼長度。字元使用頻率越是不平衡,壓縮的效果越明顯。與此相反,如果所有字元均以等概率出現,則壓縮的結果可能比不壓縮更壞。

相鄰資料利用

分析相鄰資料項的關係有時會得出很有效的壓縮辦法。例如,下面是一段字典上的單詞的壓縮編碼:

單詞壓縮編碼

equal 0equal

equalisation5isation

equalise7e

equaliser 8r

equalitarian6tarian

equalitariansm╣sm(╣表示12)

equality7y壓縮編碼第一個字元是數字,表示該項和前一資料項有多少個字元是相同的。

對數值資料可以採取求差法,例如需要儲存每天累計降雨量時,可以儲存每天降雨量來代替,需要時累加求出。這種方法也是壓縮圖形資料的很好方法。

消除冗餘資訊

有些資訊根據場合和給定就能得出,可從資料中消除這部分資訊。如日期:1985年8月17日,可以簡寫為85,8,17,計算機中用6個位元組表示;或者約定,年用7位二進位,月用4位,日用5位,總共16位,分兩個位元組。

常用的十進位制數在計算機中每一位都用4位或8位二進位制數存放,如果預先將它轉換成二進位制就能節省很多儲存空間,而且還便於算術運算。

資料壓縮可以減少儲存空間,但只是解決問題的一個方面。還應從整個系統考慮,減少冗餘的資訊,從而減少壓縮資料的工作量,這是資料庫管理系統研究的主要問題之一。

參考書目

J.Martir,Computer Data Base Organization,Prentice-Hall,Englewood Cliffs,N.J.,1977.