1. 如何理解數據冗餘類型和數據壓縮演算法演算法是對應的舉例說明
囧rz、我也是上網來找答案的
後來在《多媒體技術應用教程》內書的第96頁第二自然段找到了。
數據冗餘類型和數據壓縮演算法是對應的。一般根據不同的冗餘類型採用不同的編碼形式,隨後是採用特定的技術手段和軟硬體,以實現數據壓縮。然後你自己結合上下文什麼的總結一下就O了,你懂得。舉例什麼的請瞎編。
2. 數據壓縮技術的數據壓縮技術
在現今的電子信息技術領域,正發生著一場有長遠影響的數字化革命。由於數字化的多媒體信息尤其是數字視頻、音頻信號的數據量特別龐大,如果不對其進行有效的壓縮就難以得到實際的應用。因此,數據壓縮技術已成為當今數字通信、廣播、存儲和多媒體娛樂中的一項關鍵的共性技術。
1.什麼是數據壓縮
其作用是:能較快地傳輸各種信號,如傳真、Modem通信等;
在現有的通信干線並行開通更多的多媒體業務,如各種增值業務;緊縮數據存儲容量,如 CD-ROM、VCD和DVD等;
降低發信機功率,這對於多媒體移動通信系統尤為重要。
由此看來,通信時間、傳輸帶寬、存儲空間甚至發射能量,都可能成為數據壓縮的對象。
2.數據為何能被壓縮
首先,數據中間常存在一些多餘成分,既冗餘度。如在一份計算機文件中,某些符號會重復出現、某些符號比其他符號出現得更頻繁、某些字元總是在各數據塊中可預見的位置上出現等,這些冗餘部分便可在數據編碼中除去或減少。冗餘度壓縮是一個可逆過程,因此叫做無失真壓縮,或稱保持型編碼。
其次,數據中間尤其是相鄰的數據之間,常存在著相關性。如圖片中常常有色彩均勻的背影,電視信號的相鄰兩幀之間可能只有少量的變化影物是不同的,聲音信號有時具有一定的規律性和周期性等等。因此,有可能利用某些變換來盡可能地去掉這些相關性。但這種變換有時會帶來不可恢復的損失和誤差,因此叫做不可逆壓縮,或稱有失真編碼、摘壓縮等。
此外,人們在欣賞音像節目時,由於耳、目對信號的時間變化和幅度變化的感受能力都有一定的極限,如人眼對影視節目有視覺暫留效應,人眼或人耳對低於某一極限的幅度變化已無法感知等,故可將信號中這部分感覺不出的分量壓縮掉或「掩蔽掉」。這種壓縮方法同樣是一種不可逆壓縮。
對於數據壓縮技術而言,最基本的要求就是要盡量降低數字化的在碼事,同時仍保持一定的信號質量。不難想像,數據壓縮的方法應該是很多的,但本質上不外乎上述完全可逆的冗餘度壓縮和實際上不可逆的嫡壓縮兩類。冗餘度壓縮常用於磁碟文件、數據通信和氣象衛星雲圖等不允許在壓縮過程中有絲毫損失的場合中,但它的壓縮比通常只有幾倍,遠遠不能滿足數字視聽應用的要求。在實際的數字視聽設備中,差不多都採用壓縮比更高但實際有損的嫡壓縮技術。
只要作為最終用戶的人覺察不出或能夠容忍這些失真,就允許對數字音像信號進一步壓縮以換取更高的編碼效率。摘壓縮主要有特徵抽取和量化兩種方法,指紋的模式識別是前者的典型例子,後者則是一種更通用的摘壓縮技術。
3數字音、視頻的壓縮標准
數字音頻壓縮技術標准分為電話語音壓縮、調幅廣播語音壓縮和調頻廣播及CD音質的寬頻有頻壓縮3種。
(1)電話(200HZ-3.4kHZ)語音壓縮,主要有國際電信聯盟(ITU)的G.711(64kbit/s、G.721(32kbit/s)、G.728(16kbit/s)和G.729(8kbit/的建議等,用於數字電話通信。
(2)調幅廣播(50HZ-7kHZ)語音壓縮,採用ITU的G.722(64kbit/s)建議,用於優質語音、音樂、音頻會議和視頻會議等。
(3)調頻廣播(20HZ-15kHZ)及CD音質(20HZ-20kH)的寬頻音頻壓縮,主要採用MPEG-1或2雙杜比AC-3等建議,用於CD、MD、MPC、VCD、DVD、HDTV和電影配音等。
視頻壓縮技術標准主要有:
①ITU H.261建議,用於ISDN信道的PC電視電話、桌面視頻會議和音像郵件等通信終端。
②MPEG-1視頻壓縮標准,用於 VCD、MPC、PC/TV一體機、交互電視ITV和電視點播VOD。
③MPEG-2/ITU H.262視頻標准,主要用於數字存儲。視頻廣播和通信,如HDTV、CATV、DVD、VOD和電影點播MOD等。
④ITU H.263建議,用於網上的可視電話、移動多媒體終端、多媒體可視圖文、遙感、電子郵件、電子報紙和互動式計算機成像等。
⑤MPEG-4和 ITU H.VLC/L低碼率多媒體通信標准仍在發展之中。
4.數據壓縮的實現
在各種數據類型中,最難實現的是數字機頻的實時壓縮,因為視頻信號尤其是HDTV信號所佔據的帶寬甚寬,實時壓縮需要很高的處理速度。現在,視頻解碼以及音頻的編碼、解碼多依賴於專用晶元或數字信號處理器(DSP)未完成,並已有許多廠商推出了音視合一的單片MPEG-1、MPEG-2解碼器。我國在發展數據壓縮技術過程中,則充分利用了軟體人才優勢。
在軟體實現方面,由於PC主機的處理能力正在飛速提高,直接利用主CPU編程實現各種視聽壓縮和解碼演算法對於桌面系統及家用多媒體將越來越有吸引力。
1996年上半年,Intel向全球軟體界發布了它的微處理器媒體擴展(MMX)技術。這種技術主要是在Pentium或Pentium Pro晶元中增加了8個64位寄存器和57條功能強大的新指令,以提高多媒體和通信應用程序中某些計算密集的循環速度。MMX採用單指令多數據(SIMD)技術並行處理多個信號采樣值,可使不同的應用程序性能成倍提高。如:視頻壓縮可提高1.5倍,圖像處理可提高40倍,音頻處理可提高3.7偌,語音識別可提高1.7倍,三維動畫可提高20倍。
與Pentium完全兼容的P55C晶元是1998年3月正式推出的。以後推出的Pentium、Pentium pro或P7等CPU,均將支持MMX指令。
在數據壓縮的硬體實現方面,根本的出路是要有自己的音像壓縮晶元(特別是解壓晶元),不管是專用集成電路(ASIC)實現,還是藉助於通用DSP來編程。
而這一類晶元,目前還只是「霧里看花」。
不過我們相信,在不久的將來,這些也會成為現實。
3. 常用的數據壓縮演算法有哪些
基本的分為兩大類:有損和無損。
有損壓縮:主要是一些量化演算法,比如a率,u率,lloyds最優量化。
無損壓縮:主要是一些編碼演算法,比如子帶編碼,差分編碼,哈夫曼編碼等。
另外時頻變換雖然沒壓縮效果,但是是很好的壓縮工具,比如fft,dct等。
最後就是壓縮感知稀疏重建等。
4. zip 的壓縮原理與實現
文件壓縮原理
我們使用計算機所做的事情大多都是對文件進行處理。每個文件都會佔用一定的磁碟空間,我們希望一些文件,尤其是暫時不用但又比較重要不能刪除的文件(如備份文件,有點像雞肋呀),盡可能少的佔用磁碟空間。但是,許多文件的存儲格式是比較鬆散的,這樣就浪費了一些寶貴的計算機存儲資源。這時,我們可以藉助壓縮工具解決這個問題,通過對原來的文件進行壓縮處理,使之用更少的磁碟空間保存起來,當需要使用時再進行解壓縮操作,這樣就大大節省了磁碟空間。當你要拷貝許多小文件時,通過壓縮處理可以提高執行效率。如果小文件很多,操作系統要執行頻繁的文件定位操作,需要花費很多的時間。如果先把這些小文件壓縮,變成一個壓縮文件後,再拷貝時就很方便了。由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟體把數據還原,這個過程稱作解壓縮。常見的壓縮軟體有winzip、winrar等
5. 數據結構中壓縮對象是什麼
數據結構中的任何數據類型都可以被進行壓縮。並沒有固定的壓縮對象。最、最關鍵的是:要熟練掌握數據壓縮演算法的相關理論知識、以及相關的數據壓縮/解壓縮數學模型。
6. 網路延遲的消除網路延遲
企業可以細致控制LAN內的應用程序性能,但這種控制能力無法延伸到廣域網上。WAN通常會有多個可選的服務提供商,他們經營著運營商級的頂級骨幹基礎設施。通過選擇較短和更有效率的路由路徑、部署低延遲的交換機和路由設備、主動避免網路設備停機時間,WAN運營商也可以對降低延遲作出貢獻。
增加WAN帶寬能提高應用程序的性能,但帶寬並不便宜,通常也不必這么干。
在實踐中,運用能夠更有效利用現有WAN帶寬的各種技術同樣可以提升WAN應用程序的性能。這些技術被統稱為廣域網加速器。加速器的功能通過減少數據有效負載和更有效地利用現有的WAN帶寬來實現。
廣域網加速產品通常都是物理設備。這些專用設備在WAN鏈路的兩端都需要進行部署。對於虛擬化伺服器環境,這些工具也有軟體版本可用,可以實現許多和專用硬體相當的功能。
某些壓縮演算法專門針對特定的數據類型,能夠在不增加帶寬需求的前提下顯著提升應用程序的性能。道理很簡單,數據壓縮可以無需額外磁碟就提升存儲容量,同樣,壓縮過的數據在傳輸時可以比未壓縮的數據佔用更少的帶寬。
如果業務非常依賴於WAN鏈路,可以考慮為使用頻繁的數據建立本地緩存。Microsoft Windows伺服器操作系統可以提供Branch Cache,同時也有許多第三方工具能夠為遠端資源創建緩存。在每個使用端緩存常用數據可以減少數據重新傳輸導致的大量帶寬佔用。在傳送一個文件之前,發送端會對接收端的緩存進行檢索:如果該文件已經被緩存,接收端只需簡單地從現有的緩存中提取數據;如果文件不在緩存中,則允許發送該文件。高速緩存的高級選項能選擇性地保護關鍵文件,防止重要的緩存數據被後來的文件覆蓋,確保最重要的數據能被持續緩存。
數據包頻繁丟失和重傳現象有時會嚴重降低性能。主動糾錯技術可以讓目標網路不需要重傳數據包就能修復數據包錯誤。減少數據量的辦法還有:從Java腳本或樣式表代碼中移除多餘的內容,或者對無損圖像數據進行有損壓縮以大幅減少文件大小。 如果一個剛安裝或修改過設置的應用程序出現了本地網路性能問題,請嘗試核查該應用程序的設置、系統兼容性和軟體狀態;另外也應審查安裝和設置文檔。例如,如果應用程序支持帶寬限制,請檢查帶寬是否不小心限制過度而無法進行正常通信。
硬體兼容性也會影響區域網效率。例如,如果應用程序在採用巨型幀的時候產生高延遲,請核對網路介面卡(NIC)適配器和驅動程序是否已正確安裝。在某些情況下,更新或補丁程序可能逆轉原本很糟糕的性能表現。
在不存在兼容問題的硬體上裝好了應用程序,安裝了修補程序並進行了正確的設置之後,如果性能仍然不理想,那就應該嘗試其他選項。問題常常是由於伺服器負載過於集中,沒有足夠的網卡埠卻有太多應用程序在爭搶網路。請嘗試增加網卡埠,為伺服器提供額外的鏈路分擔工作負載。NIC埠捆綁能為關鍵應用程序提供帶寬疊加聚合。均衡工作負載,將繁忙的應用程序移動到較空閑的伺服器上,也可以減少帶寬爭用,提高性能。
通過NIC捆綁,單個應用程序可以跨多個NIC埠利用這些埠的帶寬總和進行數據傳輸。例如,如果捆綁2個千兆乙太網埠,那麼應用程序將獲得2Gbps的總帶寬。
另一個措施是工作負載均衡,在伺服器之間移動虛擬機,優化每個物理主機的應用程序工作負載和帶寬需求。
數據中心還可以考慮將伺服器的網卡換成10千兆或者更快速的型號,或為陷入困境的高帶寬應用單獨安裝專用的網路適配器。當然,更快的NIC可能非常昂貴,安裝物理部件的過程要求伺服器離線,並且通常還會增加區域網交換基礎設施的配套成本。例如,如果在伺服器上安裝了一塊10千兆乙太網適配器,就還需要一台具備10千兆乙太網埠的交換機與之匹配。
要診斷LAN連接性問題,可以將當前應用程序的性能級別與相同應用程序在正常工作狀態下的基準性能進行比對。如果應用程序性能並沒有明顯降低,問題可能在伺服器外部的其它地方,例如網路交換機的問題。
7. 多媒體數據壓縮編碼方法可分為哪兩大類
無損壓縮編碼
有損壓縮編碼
通常解碼的運算復雜度低於編碼.通過比較解碼前後數據的是否一致,把數據編碼方法分為無損編碼和有損編碼2類(即無損壓縮和有損壓縮)前者是解碼前後數據完全一致,沒有任何失真和偏差.後者有一定程度偏差和失真,但是沒多大影響.常見的壓縮演算法有信息熵編碼(主要有行程長度編碼,哈夫曼編碼和算術編碼),通用編碼,預測編碼,模型法編碼等等.無損壓縮的演算法一般比較復雜,而且一般的演算法多為有損演算法.考慮文件和圖象的重要型,有時可採用無損壓縮,但要注意此種壓縮壓縮比不會很高.
8. 數據壓縮技術的數據壓縮技術簡史
電腦里的數據壓縮其實類似於美眉們的瘦身運動,不外有兩大功用。第一,可以節省空間。拿瘦身美眉來說,要是八個美眉可以擠進一輛計程車里,那該有多省錢啊!第二,可以減少對帶寬的佔用。例如,我們都想在不到 100Kbps 的 GPRS 網上觀看 DVD 大片,這就好比瘦身美眉們總希望用一尺布裁出七件吊帶衫,前者有待於數據壓縮技術的突破性進展,後者則取決於美眉們的恆心和毅力。
簡單地說,如果沒有數據壓縮技術,我們就沒法用 WinRAR 為 Email 中的附件瘦身;如果沒有數據壓縮技術,市場上的數碼錄音筆就只能記錄不到 20 分鍾的語音;如果沒有數據壓縮技術,從 Internet 上下載一部電影也許要花半年的時間……可是這一切究竟是如何實現的呢?數據壓縮技術又是怎樣從無到有發展起來的呢? 一千多年前的中國學者就知道用「班馬」這樣的縮略語來指代班固和司馬遷,這種崇尚簡約的風俗一直延續到了今天的 Internet 時代:當我們在 BBS 上用「 7456 」代表「氣死我了」,或是用「 B4 」代表「 Before 」的時候,我們至少應該知道,這其實就是一種最簡單的數據壓縮呀。
嚴格意義上的數據壓縮起源於人們對概率的認識。當我們對文字信息進行編碼時,如果為出現概率較高的字母賦予較短的編碼,為出現概率較低的字母賦予較長的編碼,總的編碼長度就能縮短不少。遠在計算機出現之前,著名的 Morse 電碼就已經成功地實踐了這一準則。在 Morse 碼表中,每個字母都對應於一個唯一的點劃組合,出現概率最高的字母 e 被編碼為一個點「 . 」,而出現概率較低的字母 z 則被編碼為「 --.. 」。顯然,這可以有效縮短最終的電碼長度。
資訊理論之父 C. E. Shannon 第一次用數學語言闡明了概率與信息冗餘度的關系。在 1948 年發表的論文「通信的數學理論( A Mathematical Theory of Communication )」中, Shannon 指出,任何信息都存在冗餘,冗餘大小與信息中每個符號(數字、字母或單詞)的出現概率或者說不確定性有關。 Shannon 借鑒了熱力學的概念,把信息中排除了冗餘後的平均信息量稱為「信息熵」,並給出了計算信息熵的數學表達式。這篇偉大的論文後來被譽為資訊理論的開山之作,信息熵也奠定了所有數據壓縮演算法的理論基礎。從本質上講,數據壓縮的目的就是要消除信息中的冗餘,而信息熵及相關的定理恰恰用數學手段精確地描述了信息冗餘的程度。利用信息熵公式,人們可以計算出信息編碼的極限,即在一定的概率模型下,無損壓縮的編碼長度不可能小於信息熵公式給出的結果。
有了完備的理論,接下來的事就是要想辦法實現具體的演算法,並盡量使演算法的輸出接近信息熵的極限了。當然,大多數工程技術人員都知道,要將一種理論從數學公式發展成實用技術,就像僅憑一個 E=mc 2 的公式就要去製造核武器一樣,並不是一件很容易的事。 設計具體的壓縮演算法的過程通常更像是一場數學游戲。開發者首先要尋找一種能盡量精確地統計或估計信息中符號出現概率的方法,然後還要設計一套用最短的代碼描述每個符號的編碼規則。統計學知識對於前一項工作相當有效,迄今為止,人們已經陸續實現了靜態模型、半靜態模型、自適應模型、 Markov 模型、部分匹配預測模型等概率統計模型。相對而言,編碼方法的發展歷程更為曲折一些。
1948 年, Shannon 在提出信息熵理論的同時,也給出了一種簡單的編碼方法—— Shannon 編碼。 1952 年, R. M. Fano 又進一步提出了 Fano 編碼。這些早期的編碼方法揭示了變長編碼的基本規律,也確實可以取得一定的壓縮效果,但離真正實用的壓縮演算法還相去甚遠。
第一個實用的編碼方法是由 D. A. Huffman 在 1952 年的論文「最小冗餘度代碼的構造方法( A Method for the Construction of Minimum Rendancy Codes )」中提出的。直到今天,許多《數據結構》教材在討論二叉樹時仍要提及這種被後人稱為 Huffman 編碼的方法。 Huffman 編碼在計算機界是如此著名,以至於連編碼的發明過程本身也成了人們津津樂道的話題。據說, 1952 年時,年輕的 Huffman 還是麻省理工學院的一名學生,他為了向老師證明自己可以不參加某門功課的期末考試,才設計了這個看似簡單,但卻影響深遠的編碼方法。
Huffman 編碼效率高,運算速度快,實現方式靈活,從 20 世紀 60 年代至今,在數據壓縮領域得到了廣泛的應用。例如,早期 UNIX 系統上一個不太為現代人熟知的壓縮程序 COMPACT 實際就是 Huffman 0 階自適應編碼的具體實現。 20 世紀 80 年代初, Huffman 編碼又出現在 CP/M 和 DOS 系統中,其代表程序叫 SQ 。今天,在許多知名的壓縮工具和壓縮演算法(如 WinRAR 、 gzip 和 JPEG )里,都有 Huffman 編碼的身影。不過, Huffman 編碼所得的編碼長度只是對信息熵計算結果的一種近似,還無法真正逼近信息熵的極限。正因為如此,現代壓縮技術通常只將 Huffman 視作最終的編碼手段,而非數據壓縮演算法的全部。
科學家們一直沒有放棄向信息熵極限挑戰的理想。 1968 年前後, P. Elias 發展了 Shannon 和 Fano 的編碼方法,構造出從數學角度看來更為完美的 Shannon-Fano-Elias 編碼。沿著這一編碼方法的思路, 1976 年, J. Rissanen 提出了一種可以成功地逼近信息熵極限的編碼方法——算術編碼。 1982 年, Rissanen 和 G. G. Langdon 一起改進了算術編碼。之後,人們又將算術編碼與 J. G. Cleary 和 I. H. Witten 於 1984 年提出的部分匹配預測模型( PPM )相結合,開發出了壓縮效果近乎完美的演算法。今天,那些名為 PPMC 、 PPMD 或 PPMZ 並號稱壓縮效果天下第一的通用壓縮演算法,實際上全都是這一思路的具體實現。
對於無損壓縮而言, PPM 模型與算術編碼相結合,已經可以最大程度地逼近信息熵的極限。看起來,壓縮技術的發展可以到此為止了。不幸的是,事情往往不像想像中的那樣簡單:算術編碼雖然可以獲得最短的編碼長度,但其本身的復雜性也使得算術編碼的任何具體實現在運行時都慢如蝸牛。即使在摩爾定律大行其道, CPU 速度日新月異的今天,算術編碼程序的運行速度也很難滿足日常應用的需求。沒辦法,如果不是後文將要提到的那兩個猶太人,我們還不知要到什麼時候才能用上 WinZIP 這樣方便實用的壓縮工具呢。 逆向思維永遠是科學和技術領域里出奇制勝的法寶。就在大多數人絞盡腦汁想改進 Huffman 或算術編碼,以獲得一種兼顧了運行速度和壓縮效果的「完美」編碼的時候,兩個聰明的猶太人 J. Ziv 和 A. Lempel 獨辟蹊徑,完全脫離 Huffman 及算術編碼的設計思路,創造出了一系列比 Huffman 編碼更有效,比算術編碼更快捷的壓縮演算法。我們通常用這兩個猶太人姓氏的縮寫,將這些演算法統稱為 LZ 系列演算法。
按照時間順序, LZ 系列演算法的發展歷程大致是: Ziv 和 Lempel 於 1977 年發表題為「順序數據壓縮的一個通用演算法( A Universal Algorithm for Sequential Data Compression )」的論文,論文中描述的演算法被後人稱為 LZ77 演算法。 1978 年,二人又發表了該論文的續篇「通過可變比率編碼的獨立序列的壓縮( Compression of Indivial Sequences via Variable Rate Coding )」,描述了後來被命名為 LZ78 的壓縮演算法。 1984 年, T. A. Welch 發表了名為「高性能數據壓縮技術( A Technique for High Performance Data Compression )」的論文,描述了他在 Sperry 研究中心(該研究中心後來並入了 Unisys 公司)的研究成果,這是 LZ78 演算法的一個變種,也就是後來非常有名的 LZW 演算法。 1990 年後, T. C. Bell 等人又陸續提出了許多 LZ 系列演算法的變體或改進版本。
說實話, LZ 系列演算法的思路並不新鮮,其中既沒有高深的理論背景,也沒有復雜的數學公式,它們只是簡單地延續了千百年來人們對字典的追崇和喜好,並用一種極為巧妙的方式將字典技術應用於通用數據壓縮領域。通俗地說,當你用字典中的頁碼和行號代替文章中每個單詞的時候,你實際上已經掌握了 LZ 系列演算法的真諦。這種基於字典模型的思路在表面上雖然和 Shannon 、 Huffman 等人開創的統計學方法大相徑庭,但在效果上一樣可以逼近信息熵的極限。而且,可以從理論上證明, LZ 系列演算法在本質上仍然符合信息熵的基本規律。
LZ 系列演算法的優越性很快就在數據壓縮領域里體現 了 出來,使用 LZ 系列演算法的工具軟體數量呈爆炸式增長。 UNIX 系統上最先出現了使用 LZW 演算法的 compress 程序,該程序很快成為了 UNIX 世界的壓縮標准。緊隨其後的是 MS-DOS 環境下的 ARC 程序,以及 PKWare 、 PKARC 等仿製品。 20 世紀 80 年代,著名的壓縮工具 LHarc 和 ARJ 則是 LZ77 演算法的傑出代表。
今天, LZ77 、 LZ78 、 LZW 演算法以及它們的各種變體幾乎壟斷了整個通用數據壓縮領域,我們熟悉的 PKZIP 、 WinZIP 、 WinRAR 、 gzip 等壓縮工具以及 ZIP 、 GIF 、 PNG 等文件格式都是 LZ 系列演算法的受益者,甚至連 PGP 這樣的加密文件格式也選擇了 LZ 系列演算法作為其數據壓縮的標准。
沒有誰能否認兩位猶太人對數據壓縮技術的貢獻。我想強調的只是,在工程技術領域,片面追求理論上的完美往往只會事倍功半,如果大家能像 Ziv 和 Lempel 那樣,經常換個角度來思考問題,沒准兒你我就能發明一種新的演算法,就能在技術方展史上揚名立萬呢。 LZ 系列演算法基本解決了通用數據壓縮中兼顧速度與壓縮效果的難題。但是,數據壓縮領域里還有另一片更為廣闊的天地等待著我們去探索。 Shannon 的資訊理論告訴我們,對信息的先驗知識越多,我們就可以把信息壓縮得越小。換句話說,如果壓縮演算法的設計目標不是任意的數據源,而是基本屬性已知的特種數據,壓縮的效果就會進一步提高。這提醒我們,在發展通用壓縮演算法之餘,還必須認真研究針對各種特殊數據的專用壓縮演算法。比方說,在今天的數碼生活中,遍布於數碼相機、數碼錄音筆、數碼隨身聽、數碼攝像機等各種數字設備中的圖像、音頻、視頻信息,就必須經過有效的壓縮才能在硬碟上存儲或是通過 USB 電纜傳輸。實際上,多媒體信息的壓縮一直是數據壓縮領域里的重要課題,其中的每一個分支都有可能主導未來的某個技術潮流,並為數碼產品、通信設備和應用軟體開發商帶來無限的商機。
讓我們先從圖像數據的壓縮講起。通常所說的圖像可以被分為二值圖像、灰度圖像、彩色圖像等不同的類型。每一類圖像的壓縮方法也不盡相同。
傳真技術的發明和廣泛使用促進了二值圖像壓縮演算法的飛速發展。 CCITT (國際電報電話咨詢委員會,是國際電信聯盟 ITU 下屬的一個機構)針對傳真類應用建立了一系列圖像壓縮標准,專用於壓縮和傳遞二值圖像。這些標准大致包括 20 世紀 70 年代後期的 CCITT Group 1 和 Group 2 , 1980 年的 CCITT Group 3 ,以及 1984 年的 CCITT Group 4 。為了適應不同類型的傳真圖像,這些標准所用的編碼方法包括了一維的 MH 編碼和二維的 MR 編碼,其中使用了行程編碼( RLE )和 Huffman 編碼等技術。今天,我們在辦公室或家裡收發傳真時,使用的大多是 CCITT Group 3 壓縮標准,一些基於數字網路的傳真設備和存放二值圖像的 TIFF 文件則使用了 CCITT Group 4 壓縮標准。 1993 年, CCITT 和 ISO (國際標准化組織)共同成立的二值圖像聯合專家組( Joint Bi-level Image Experts Group , JBIG )又將二值圖像的壓縮進一步發展為更加通用的 JBIG 標准。
實際上,對於二值圖像和非連續的灰度、彩色圖像而言,包括 LZ 系列演算法在內的許多通用壓縮演算法都能獲得很好的壓縮效果。例如,誕生於 1987 年的 GIF 圖像文件格式使用的是 LZW 壓縮演算法, 1995 年出現的 PNG 格式比 GIF 格式更加完善,它選擇了 LZ77 演算法的變體 zlib 來壓縮圖像數據。此外,利用前面提到過的 Huffman 編碼、算術編碼以及 PPM 模型,人們事實上已經構造出了許多行之有效的圖像壓縮演算法。
但是,對於生活中更加常見的,像素值在空間上連續變化的灰度或彩色圖像(比如數碼照片),通用壓縮演算法的優勢就不那麼明顯了。幸運的是,科學家們發現,如果在壓縮這一類圖像數據時允許改變一些不太重要的像素值,或者說允許損失一些精度(在壓縮通用數據時,我們絕不會容忍任何精度上的損失,但在壓縮和顯示一幅數碼照片時,如果一片樹林里某些樹葉的顏色稍微變深了一些,看照片的人通常是察覺不到的),我們就有可能在壓縮效果上獲得突破性的進展。這一思想在數據壓縮領域具有革命性的地位:通過在用戶的忍耐范圍內損失一些精度,我們可以把圖像(也包括音頻和視頻)壓縮到原大小的十分之一、百分之一甚至千分之一,這遠遠超出了通用壓縮演算法的能力極限。也許,這和生活中常說的「退一步海闊天空」的道理有異曲同工之妙吧。
這種允許精度損失的壓縮也被稱為有損壓縮。在圖像壓縮領域,著名的 JPEG 標準是有損壓縮演算法中的經典。 JPEG 標准由靜態圖像聯合專家組( Joint Photographic Experts Group , JPEG )於 1986 年開始制定, 1994 年後成為國際標准。 JPEG 以離散餘弦變換( DCT )為核心演算法,通過調整質量系數控制圖像的精度和大小。對於照片等連續變化的灰度或彩色圖像, JPEG 在保證圖像質量的前提下,一般可以將圖像壓縮到原大小的十分之一到二十分之一。如果不考慮圖像質量, JPEG 甚至可以將圖像壓縮到「無限小」。
JPEG 標準的最新進展是 1996 年開始制定, 2001 年正式成為國際標準的 JPEG 2000 。與 JPEG 相比, JPEG 2000 作了大幅改進,其中最重要的是用離散小波變換( DWT )替代了 JPEG 標准中的離散餘弦變換。在文件大小相同的情況下, JPEG 2000 壓縮的圖像比 JPEG 質量更高,精度損失更小。作為一個新標准, JPEG 2000 暫時還沒有得到廣泛的應用,不過包括數碼相機製造商在內的許多企業都對其應用前景表示樂觀, JPEG 2000 在圖像壓縮領域里大顯身手的那一天應該不會特別遙遠。
JPEG 標准中通過損失精度來換取壓縮效果的設計思想直接影響了視頻數據的壓縮技術。 CCITT 於 1988 年制定了電視電話和會議電視的 H.261 建議草案。 H.261 的基本思路是使用類似 JPEG 標準的演算法壓縮視頻流中的每一幀圖像,同時採用運動補償的幀間預測來消除視頻流在時間維度上的冗餘信息。在此基礎上, 1993 年, ISO 通過了動態圖像專家組( Moving Picture Experts Group , MPEG )提出的 MPEG-1 標准。 MPEG-1 可以對普通質量的視頻數據進行有效編碼。我們現在看到的大多數 VCD 影碟,就是使用 MPEG-1 標准來壓縮視頻數據的。
為了支持更清晰的視頻圖像,特別是支持數字電視等高端應用, ISO 於 1994 年提出了新的 MPEG-2 標准(相當於 CCITT 的 H.262 標准)。 MPEG-2 對圖像質量作了分級處理,可以適應普通電視節目、會議電視、高清晰數字電視等不同質量的視頻應用。在我們的生活中,可以提供高清晰畫面的 DVD 影碟所採用的正是 MPEG-2 標准。
Internet 的發展對視頻壓縮提出了更高的要求。在內容交互、對象編輯、隨機存取等新需求的刺激下, ISO 於 1999 年通過了 MPEG-4 標准(相當於 CCITT 的 H.263 和 H.263+ 標准)。 MPEG-4 標准擁有更高的壓縮比率,支持並發數據流的編碼、基於內容的交互操作、增強的時間域隨機存取、容錯、基於內容的尺度可變性等先進特性。 Internet 上新興的 DivX 和 XviD 文件格式就是採用 MPEG-4 標准來壓縮視頻數據的,它們可以用更小的存儲空間或通信帶寬提供與 DVD 不相上下的高清晰視頻,這使我們在 Internet 上發布或下載數字電影的夢想成為了現實。
就像視頻壓縮和電視產業的發展密不可分一樣,音頻數據的壓縮技術最早也是由無線電廣播、語音通信等領域里的技術人員發展起來的。這其中又以語音編碼和壓縮技術的研究最為活躍。自從 1939 年 H. Dudley 發明聲碼器以來,人們陸續發明了脈沖編碼調制( PCM )、線性預測( LPC )、矢量量化( VQ )、自適應變換編碼( ATC )、子帶編碼( SBC )等語音分析與處理技術。這些語音技術在採集語音特徵,獲取數字信號的同時,通常也可以起到降低信息冗餘度的作用。像圖像壓縮領域里的 JPEG 一樣,為獲得更高的編碼效率,大多數語音編碼技術都允許一定程度的精度損失。而且,為了更好地用二進制數據存儲或傳送語音信號,這些語音編碼技術在將語音信號轉換為數字信息之後又總會用 Huffman 編碼、算術編碼等通用壓縮演算法進一步減少數據流中的冗餘信息。
對於電腦和數字電器(如數碼錄音筆、數碼隨身聽)中存儲的普通音頻信息,我們最常使用的壓縮方法主要是 MPEG 系列中的音頻壓縮標准。例如, MPEG-1 標准提供了 Layer I 、 Layer II 和 Layer III 共三種可選的音頻壓縮標准, MPEG-2 又進一步引入了 AAC ( Advanced Audio Coding )音頻壓縮標准, MPEG-4 標准中的音頻部分則同時支持合成聲音編碼和自然聲音編碼等不同類型的應用。在這許多音頻壓縮標准中,聲名最為顯赫的恐怕要數 MPEG-1 Layer III ,也就是我們常說的 MP3 音頻壓縮標准了。從 MP3 播放器到 MP3 手機,從硬碟上堆積如山的 MP3 文件到 Internet 上版權糾紛不斷的 MP3 下載, MP3 早已超出了數據壓縮技術的范疇,而成了一種時尚文化的象徵了。
很顯然,在多媒體信息日益成為主流信息形態的數字化時代里,數據壓縮技術特別是專用於圖像、音頻、視頻的數據壓縮技術還有相當大的發展空間——畢竟,人們對信息數量和信息質量的追求是永無止境的。 從信息熵到算術編碼,從猶太人到 WinRAR ,從 JPEG 到 MP3 ,數據壓縮技術的發展史就像是一個寫滿了「創新」、「挑戰」、「突破」和「變革」的羊皮卷軸。也許,我們在這里不厭其煩地羅列年代、人物、標准和文獻,其目的只是要告訴大家,前人的成果只不過是後人有望超越的目標而已,誰知道在未來的幾年裡,還會出現幾個 Shannon ,幾個 Huffman 呢?
談到未來,我們還可以補充一些與數據壓縮技術的發展趨勢有關的話題。
1994年, M. Burrows 和 D. J. Wheeler 共同提出了一種全新的通用數據壓縮演算法。這種演算法的核心思想是對字元串輪轉後得到的字元矩陣進行排序和變換,類似的變換演算法被稱為 Burrows-Wheeler 變換,簡稱 BWT 。與 Ziv 和 Lempel 另闢蹊徑的做法如出一轍, Burrows 和 Wheeler 設計的 BWT 演算法與以往所有通用壓縮演算法的設計思路都迥然不同。如今, BWT 演算法在開放源碼的壓縮工具 bzip 中獲得了巨大的成功, bzip 對於文本文件的壓縮效果要遠好於使用 LZ 系列演算法的工具軟體。這至少可以表明,即便在日趨成熟的通用數據壓縮領域,只要能在思路和技術上不斷創新,我們仍然可以找到新的突破口。
分形壓縮技術是圖像壓縮領域近幾年來的一個熱點。這一技術起源於 B. Mandelbrot 於 1977 年創建的分形幾何學。 M. Barnsley 在 20 世紀 80 年代後期為分形壓縮奠定了理論基礎。從 20 世紀 90 年代開始, A. Jacquin 等人陸續提出了許多實驗性的分形壓縮演算法。今天,很多人相信,分形壓縮是圖像壓縮領域里最有潛力的一種技術體系,但也有很多人對此不屑一顧。無論其前景如何,分形壓縮技術的研究與發展都提示我們,在經過了幾十年的高速發展之後,也許,我們需要一種新的理論,或是幾種更有效的數學模型,以支撐和推動數據壓縮技術繼續向前躍進。
人工智慧是另一個可能對數據壓縮的未來產生重大影響的關鍵詞。既然 Shannon 認為,信息能否被壓縮以及能在多大程度上被壓縮與信息的不確定性有直接關系,假設人工智慧技術在某一天成熟起來,假設計算機可以像人一樣根據已知的少量上下文猜測後續的信息,那麼,將信息壓縮到原大小的萬分之一乃至十萬分之一,恐怕就不再是天方夜譚了。
回顧歷史之後,人們總喜歡暢想一下未來。但未來終究是未來,如果僅憑你我幾句話就可以理清未來的技術發展趨勢,那技術創新的工作豈不就索然無味了嗎?依我說,未來並不重要,重要的是,趕快到 Internet 上下載幾部大片,然後躺在沙發里,好好享受一下數據壓縮為我們帶來的無限快樂吧。
9. 數據壓縮的類型
數據壓縮可分成兩種類型,一種叫做無損壓縮,另一種叫做有損壓縮。
無損壓縮是指使用壓縮後的數據進行重構(或者叫做還原,解壓縮),重構後的數據與原來的數據完全相同;無損壓縮用於要求重構的信號與原始信號完全一致的場合。一個很常見的例子是磁碟文件的壓縮。無損壓縮演算法一般可以把普通文件的數據壓縮到原來的1/2~1/4。一些常用的無損壓縮演算法有霍夫曼(Huffman)演算法和LZW(Lenpel-Ziv & Welch)壓縮演算法。
有損壓縮是指使用壓縮後的數據進行重構,重構後的數據與原來的數據有所不同,但不影響人對原始資料表達的信息造成誤解。有損壓縮適用於重構信號不一定非要和原始信號完全相同的場合。例如,圖像和聲音的壓縮就可以採用有損壓縮,因為其中包含的數據往往多於我們的視覺系統和聽覺系統所能接收的信息,丟掉一些數據而不至於對聲音或者圖像所表達的意思產生誤解,但可大大提高壓縮比。
10. 數據壓縮技術分為哪兩類使用方法是什麼
【導讀】數據壓縮技術是大數據傳輸過程中需要採用的一種數據存儲方法。那麼數據壓縮技術分為哪兩類?使用方法是什麼呢?為此小編今天就來和大家細細聊聊關於數據壓縮技術那些事,同時也提醒各位大數據工程師在使用數據壓縮過程中的一些注意事項及使用方法。
在數據壓縮中,通過使用比原始數據更少的位來對數據進行編碼,數據壓縮有兩種方法:無損壓縮,它消除了冗餘但不丟失任何原始數據;有損數據壓縮,可通過刪除不必要或不太重要的信息來修改數據,在大數據的傳輸和存儲中使用數據壓縮非常重要,因為它減少了IT部門必須為該數據提供的網路帶寬和存儲量,同樣重要的是,您實際上並不想保留某些類型的大數據,例如作為物聯網(IoT)通信數據一部分的設備間握手引起的抖動。
為了最大程度地利用大數據進行數據壓縮,您必須知道何時何地使用不同類型的數據壓縮工具和公式。選擇數據壓縮方法時,請牢記以下幾條有用的准則:
何時使用無損數據壓縮
如果您有一個大數據應用程序,並且無法承受丟失任何數據的麻煩,並且需要解壓縮壓縮的每個位元組的數據,那麼您將需要一種無損的數據壓縮方法,當您壓縮來自資料庫的數據時,即使您意味著必須存儲更多的數據,也希望進行無損數據壓縮。在選擇將此數據重新提交到其資料庫時,您需要解壓縮完整數據,以便它可以與資料庫端的數據匹配並進行存儲。
何時使用有損數據壓縮
有時您不需要或不需要所有數據,例如物聯網和網路設備的抖動,您不需要這些數據,只需提供給您業務所需的上下文信息的數據即可。第二個示例是在數據壓縮過程的前端可能使用的數據壓縮公式中使用人工智慧(AI),如果您正在研究一個特定的問題,並且只希望與該問題直接相關的數據,則可以決定讓數據壓縮公式不包含與該問題無關的任何數據。
如何選擇正確的編解碼器
一個編解碼器是一個硬體,軟體的組合,壓縮和解壓縮數據,所以它在大數據壓縮和解壓縮操作的核心作用,編解碼器有許多種,因此為正確的數據或文件類型選擇正確的編解碼器很重要,您選擇的編解碼器類型將取決於您嘗試壓縮的數據和文件類型,有無損和有損數據的編解碼器,也有一些編解碼器必須將所有數據文件作為「整體」處理,而其他編解碼器可以將數據分割開,以便可以對其進行並行處理,然後在其目的地重新組合,某些編解碼器設置用於可視數據,而其他編解碼器僅處理音頻數據。
為什麼數據壓縮很重要?
確定將用於大數據的數據壓縮類型是大數據操作的重要組成部分,僅在資源端,IT人員就無法承受處理失控和迅速發展的存儲的成本,即使必須完整存儲數據,也應盡可能地對其進行壓縮,也就是說,您可以採取其他步驟來限制存儲和處理,以及針對大數據壓縮中採用的演算法和方法的最適合操作,掌握這些選項是IT部門的關鍵數據點。
以上就是小編今天給大家整理分享關於「數據壓縮技術分為哪兩類?使用方法是什麼?」的相關內容希望對大家有所幫助。小編認為要想在大數據行業有所建樹,需要考取部分含金量高的數據分析師證書,這樣更有核心競爭力與競爭資本。