❶ 衡量壓縮技術性能的重要指標
衡量壓縮技術性能的重要指標是壓縮比、速度、恢復效果。
數據壓縮的應用:
一種非常簡單的壓縮方法是行程長度編碼,這種方法使用數據及數據長度這樣簡單的編碼代替同樣的連續數據,這是無損數據壓縮的一個實例。這種方法經常用於辦公頌型計算機以更好地利用磁碟頃櫻滑空間、或者更好地利用計算機網路中的帶寬。
對於電子表格、文本、可執行文件等這樣的符號數據來說,無損是一個非常關鍵的要求,因為除了一些有限的情況,大多數情況下即使是一個數據位的變化都是無法接受的。對於視頻和音頻數據,只要不損失數據的重要部分一定程度的質量下降是可以接受的。
❷ Hadoop 壓縮從理論到實戰
在大數據領域,無論上層計算引擎採用的是什麼,在存儲過程中,壓縮都是一個避不開的問題。合適的壓縮選擇可以降低存儲成本、減少網路傳輸I/O。而錯誤的壓縮選擇則可能讓 cpu 負荷達到瓶頸、降低並發度等等,所以是否選擇壓縮、選擇什麼壓縮格式在大數據存儲環節中都是一個至關重要的問題。
點評:壓縮時間和壓縮率之間的取捨本質上是 cpu 資源和存儲資源的取捨。是否需冊猛要支持分片也不是絕對的,如果單個文件大小均小於 splitSize,則沒必要支持分片。
點評:一階段考慮盡可能支持分片(單個文件大於 splitSize 時)。二階段考慮盡可能快的壓悄姿基縮速度。三階段根據是作為長期歸檔(幾乎不用)or 作為下一作業輸入,考慮盡可能高的壓縮能力 or 支持分片。
點評:有兩點需要注意,第一點:這里的速度和壓縮率沒有具體測試數據,而是給出了一個模糊的表達。因為即使具體測試了速度和壓縮率,也會因數據不同而結果有很大的差異。後面會給出測試的腳本,大家可以結合自己的表數據自行測試。第二點:有些壓縮格式性能參數很相似,為什麼 Hadoop 中要搞這么多種?較為直觀的一個原因是:不同存儲格式支持的壓縮是不一樣的,比如 orc 存儲格式只支持 zlib 和 snappy 兩種壓縮 [8] ,parquet 雖然支持很多壓縮格式,但是不支持 bzip2 [7]
以下摘自《Hadoop The Definitive Guide》
重點閱讀文中加粗片段。大致意思是:因為 gzip 壓縮格式使用的 DEFLATE 壓縮演算法沒辦法做到隨機任意讀取,必須同步順序讀取。也就意味著沒辦法為每一個 block 創建一個分片(split),然後為該分片啟一個 mapper 去讀取數據。所以即使 gzip 文件有很多 block,MR 程序也只會啟動一個 Mapper 去讀取所有的 block。也即 gzip 這種壓縮格式不支持分片。相反的,如果壓縮格式使用的演算法支持隨機任意讀取,那麼就可以為每一個 block 創建一個分片,同時啟動一個 mapper 去讀取數據,這樣有多少個 block 就有多少個分片,就有多少個 mapper ,這些 mapper 並行讀取數據,效率大大提升。上述涉及到幾個小概念,接下來分別進行詳述。
一句話總結: zlib、gzip 在大數據語境中都是一種 壓縮格式 ,他們使用相同的 壓縮演算法: DEFLATE,DefaultCodec 是 zlib 使用的 編解碼器 ,Gzip 使用的編解碼器是 GzipCodec
我們知道,Hadoop 在任務切分時,是按照文件的粒度進行的。即一個文件一個文件啟謹進行切分。而每一個文件切分成幾塊,取決於 splitSize 的大小。比如兩個文件,第一個文件 300M,第二個文件150M。分片大小是128M,那麼對於第一個文件將會切分成3片(128M,128M,44M),第二個文件會切分成2片(128M,22M)。共計5片。所以分片數量除了由文件數決定,另一個決定因素就是 splitSize 即分片大小。
splitSize 如何計算?
幾個前提:
影響參數:
接下來進行實際驗證:
經過了 2.4.2 中的一系列實驗,驗證了一個結論:當一個輸入格式支持分片時,mapper 數量是無限制的,反之 mapper 數量小於等於文件的數量。所以我們可以通過設置參數來試圖調小分片大小來增加 mapper 數量看其上限是否等於文件數量即可。假如輸入的文件個數只有一個,那麼當 mapper 數量大於1的時候,說明該輸入格式是支持分片的。
大家可以根據自己數據集和想測試的壓縮和存儲格式自行修改腳本。通過以上腳本跑出來的結果如下:
由 2.1 中評價壓縮的三項指標可知,壓縮率、壓縮/解壓速度、是否支持分片是衡量壓縮最重要的三項指標。3.1.1小節中只對壓縮率進行了測試。壓縮/解壓速度可以通過跑一些查詢語句進一步測試。這里就不展開測試了。業界中常用的存儲格式一般是 parquet, orc,所以上面測試除了純文本只測試了這兩種存儲格式。
我們可以通過 hive> set io.compression.codecs; 來查看當前Hadoop集群支持的壓縮,在公司的集群中查詢得到的結果是:
可以看到 lzo 有兩種編解碼器: LzoCodec 和 LzopCodec。他們之間有什麼區別呢?
如果你閱讀過關於 Hadoop 壓縮的文章,應該可以看到,絕大多數文章中對於 snappy 是否支持分片都是直接給出的否定的答案。 CDH 的文檔中也指出來 snappy 是不支持分片的。
看文中加粗片段,雖然 snappy 本身是不支持分片的,但是如果 snappy 存儲在一些特定的存儲格式比如 SequenceFile 或者 Avro 中,那麼是可以支持分片的。也就是說 snappy 是否支持分片是分情況討論的。不能說使用了 snappy 壓縮就一定不支持分片。前面提到了,業界中常用的存儲格式一般是 parquet 或者 orc,而上面 CDH 的文章中恰恰沒有提到 parquet 和 orc 是否支持,接下來以 parquet 為例,進行測試。測試內容即為 parquet + snappy 組合,是否支持分片。
首先准備數據,因為之前做壓縮率測試,已經有了 parquet + snappy 文件了,這里直接拿來用。
一共3個輸入文件,啟了6個mapper,說明輸入文件是可以分片的。即 parquet + snappy 的組合是支持分片的。在《Hadoop The Definitive Guide》中也對 parquet 是否支持分片有說明:
以 maprece.output.fileoutputformat.compress.codec 為例,這個參數可以在三個地方配置:
那麼當三者都設置時,以哪個為准呢?按照經驗來看,一定是粒度小的優先順序大於粒度大的優先順序。經過測試也驗證了這種猜測。即:表級別 > hive > hadoop
初學者往往容易混淆存儲格式和壓縮格式之間的關系,其實二者是完全獨立的。如果完整的閱讀了該篇文章,應該已經消除了這一塊理解對誤區。這里總結一下:比如 parquet, orc,他們都是常見的 存儲格式 。是否使用壓縮,使用何種壓縮都是可以設置的。而 zlib、gzip、lzo、lz4、snappy 等等這些都是常見的 壓縮格式 ,他們既可以依附於某些 存儲格式 ,比如之前提到的 parquet + snappy,orc + zlib 等等。也可以脫離特定的 存儲格式 ,比如純文本文件進行壓縮,text + parquet, text + bzip2 等等。
❸ 衡量數據壓縮方法的指標有哪些
衡量數據壓縮方法的指標:壓縮比、速度、效果。
數據壓縮是指在不丟失信息的前提下,縮減數據量以減少存儲空間,提高其傳輸、存儲和處理效率的一種技術方法。或按照一定的演算法對數據進行重新組織,減少數據的冗餘和存儲的空間。數據壓縮包括有損壓縮和無損壓縮。
數據壓縮分為兩類,有三種分法:
1、即時壓縮和非即時壓縮
即時壓縮是將語音信號轉化為數字信號,同時進行壓縮,然後即時通過Internet傳送出去。即時壓縮一般應用在影像、聲音數據的傳送中。
非即時壓縮是在需要的情況下才進行,沒有即時性。非即時壓縮一般不需要專門的設備,直接在計算機中安裝並使用相應的壓縮軟體即可。
2、數字壓縮和文件壓縮
數字壓縮是專指一些具有時間性的數據,這些數據常常是即時採集、即時處理或傳輸的。
文件壓縮是專指對將要保存在磁碟等物理介質的數據進行壓縮,如一篇文章數據、一段音樂數據、一段程序編碼數據等的壓縮。
3、無損壓縮與有損壓縮
無損壓縮利用數據的統計冗餘進行壓縮,所以無損壓縮的壓縮比一般比較低。這類方法廣泛應用於文本數據、程序和特殊應用場合的圖像數據等需要精確存儲數據的壓縮。
有損壓縮方法利用了人類視覺、聽覺對圖像、聲音中的某些頻率成分不敏感的特性,允許壓縮的過程中損失一定的信息。有損壓縮廣泛應用於語音、圖像和視頻數據的壓縮。
拓展資料:數據壓縮的應用:
一種非常簡單的壓縮方法是行程長度編碼,這種方法使用數據及數據長度這樣簡單的編碼代替同樣的連續數據,這是無損數據壓縮的一個實例。這種方法經常用於辦公計算機以更好地利用磁碟空間、或者更好地利用計算機網路中的帶寬。對於電子表格、文本、可執行文件等這樣的符號數據來說,無損是一個非常關鍵的要求,因為除了一些有限的情況,大多數情況下即使是一個數據位的變化都是無法接受的。
對於視頻和音頻數據,只要不損失數據的重要部分一定程度的質量下降是可以接受的。通過利用人類感知系統的局限,能夠大幅度地節約存儲空間並且得到的結果質量與原始數據質量相比並沒有明顯的差別。這些有損數據壓縮方法通常需要在壓縮速度、壓縮數據大小以及質量損失這三者之間進行折中。
有損圖像壓縮用於數碼相機中,大幅度地提高了存儲能力,同時圖像質量幾乎沒有降低。用於DVD的有損MPEG-2編解碼視頻壓縮也實現了類似的功能。
在有損音頻壓縮中,心理聲學的方法用來去除信號中聽不見或者很難聽見的成分。人類語音的壓縮經常使用更加專業的技術,因此人們有時也將「語音壓縮」或者「語音編碼」作為一個獨立的研究領域與「音頻壓縮」區分開來。不同的音頻和語音壓縮標准都屬於音頻編解碼范疇。例如語音壓縮用於網際網路電話,而音頻壓縮被用於CD翻錄並且使用MP3播放器解碼。
理論壓縮的理論基礎是資訊理論(它與演算法資訊理論密切相關)以及率失真理論,這個領域的研究工作主要是由Claude Shannon奠定的,他在二十世紀四十年代末期及五十年代早期發表了這方面的基礎性的論文。Doyle和Carlson在2000年寫道數據壓縮「有所有的工程領域最簡單、最優美的設計理論之一」。密碼學與編碼理論也是密切相關的學科,數據壓縮的思想與統計推斷也有很深的淵源。
許多無損數據壓縮系統都可以看作是四步模型,有損數據壓縮系統通常包含更多的步驟,例如它包括預測、頻率變換以及量化。
❹ 衡量壓縮技術好壞的標准有哪4個
4、衡量數據壓縮技術好壞的指標是什麼? 三、數據壓縮方法 ? 1、按解碼後數據...有損壓縮廣泛應用於語音、圖像和視頻數據的壓 縮,如JPEG(靜態圖像壓縮標准
❺ 衡量數據壓縮技術性能的重要指標是
衡量數據壓縮技術性能好壞的重要指標有三個:數據壓縮比,是派陵簡指數據被壓縮的比例;實現壓縮的演算法要簡單,就是數據壓縮速度快;數據恢復效果要好,要盡可能地完全恢復原始數據。
數據壓縮技術,就是用最少的數碼來表示信號的技術。由於數字化的多媒體信息尤其是數字視頻、音頻信號的數據量特別龐大;如果不對其進行有效的壓縮就難以得到實際的應用。因此,數據壓塵褲縮技術已成為當今數字通信、廣播、存儲和多媒體娛樂中的一項關鍵的共性技術。
冗餘度壓縮是一個可逆過程,因此叫做無失真壓縮,或稱保持型編碼。數據間尤其是相鄰的數據之間,常存在著相關性。如圖片中常常有色彩均勻的背景,電視信號的相鄰兩幀之間可能只有少量的變化景物是不同的,聲音信號有時具有一定的規律性和周期性等等。
❻ 數據壓縮
數據壓縮技術主要研究數據的表示、傳輸和轉換方法,目的是減少數據所佔據的存儲空間和縮短數據傳輸時所需要的時間。
衡量數據壓縮的3個主要指標:一是壓縮前後所需的信息存儲量之比要大;二是實現壓縮的演算法要簡單,壓縮、解壓縮速度快,要盡可能做到實時壓縮和解壓縮;三是恢復效果要好,要盡可能完全恢復原始數據。
數據壓縮主要應用於兩個方面。一是傳輸:通過壓縮發送端的原始數據,並在接收端進行解壓恢復,可以有效地減少傳輸時間和增加信道帶寬。二是存儲:在存儲時壓縮原始數據,在使用時進行解壓,可大大提高存儲介質的存儲量。
數據壓縮按照壓縮的失真度分成兩種類型:一種叫作無損壓縮,另一種叫作有損壓縮。
無損壓縮是指使用壓縮後的數據進行重構(或者叫作還原、解壓縮),重構後的數據與原來的數據完全相同;無損壓縮用於要求重構的信號與原始信號完全一致的場合。一個很常見的例子是磁碟文件的壓縮。根據目前的技術水平,無損壓縮演算法一般可以把普通文件的數據壓縮到原來的1/4~1/2。一些常用的無損壓縮演算法有霍夫曼(Huffman)演算法、算術演算法、遊程演算法和LZW(Lenpel-Ziv & Welch)壓縮演算法。
1)霍夫曼演算法屬於統計式壓縮方法,其原理是根據原始數據符號發生的概率進行編碼。在原始數據中出現概率越高的符合,相應的碼長越短,出現概率越少的符合,其碼長越長。從而達到用盡可能少的符號來表示原始數據,實現對數據的壓縮。
2)算術演算法是基於統計原理,無損壓縮效率最高的演算法。即將整段要壓縮的數據映射到一段實數半封閉的范圍[0,1)內的某一區段。該區段的范圍或寬度等於該段信息概率。即是所有使用在該信息內的符號出現概率全部相乘後的概率值。當要被編碼的信息越來越長時,用來代表該信息的區段就會越來越窄,用來表示這個區段的位就會增加。
3)遊程演算法是針對一些文本數據特點所設計的壓縮方法。主要是去除文本中的冗餘字元或位元組中的冗餘位,從而達到減少數據文件所佔的存儲空間。壓縮處理流程類似於空白壓縮,區別是在壓縮指示字元之後加上一個字元,用於表明壓縮對象,隨後是該字元的重復次數。本演算法具有局限性,很少單獨使用,多與其他演算法配合使用。
4)LZW演算法的原理是用字典詞條的編碼代替在壓縮數據中的字元串。因此字典中的詞條越多,壓縮率越高,加大字典的容量可以提高壓縮率。字典的容量受計算機的內存限制。
有損壓縮是指使用壓縮後的數據進行重構,重構後的數據與原來的數據有所不同,但不影響人對原始資料表達的信息造成誤解。有損壓縮適用於重構信號不一定非要和原始信號完全相同的場合。例如,圖像和聲音的壓縮就可以採用有損壓縮,因為其中包含的數據往往多於我們的視覺系統和聽覺系統所能接收的信息,丟掉一些數據而不至於對聲音或者圖像所表達的意思產生誤解,但可大大提高壓縮比。
❼ 衡量壓縮技術好壞的標准不包括
衡量壓縮技術好壞的標准不包括:去除雜訊。
評價一種數據壓縮技襪棗尺術的性能好壞主要有3個關鍵的指標:壓縮比、圖像質量、壓縮和解壓的速度。希望壓縮比要大,即壓縮前後所需的信息存儲量之比要大;
恢復效果要好,盡可能地恢復原始數據;實現壓縮的演算法要簡單,壓縮、解壓速度快,盡可能地做到實時壓縮解壓。除此之外還要考慮壓縮演算法所需要的軟體和硬體。
一般而言,多媒體數據中存在的數據冗餘類型主要有以下幾種。
(1)空間冗餘
在同一幅圖像中告高,規則物體和規則背景的表面物理特性具有相關性,這些相關性的光成像結果在數字化圖像中就表現為數據冗餘。
(2)時間冗餘
時間冗餘反映在圖像序列中就是相鄰幀圖像之間有較大的相關性,一幀圖像中的某物體或場景可以由其他幀圖像中的物體或場景重構出來。音頻的前後樣值之間也同樣有時間冗餘。
(3)信息熵冗餘
信源編碼時,當分配給第i個碼元類的比特數b(yi)=.lgpi時,才能使編碼後單位數據量等於其信源熵,即達到其壓縮極限。但實岩敗際中各碼元類的先驗概率很難預知,比特分配不能達到最佳。實際單位數據量d>H(S),即存在信息冗餘熵。
(4)視覺冗餘
人眼對於圖像場的注意是非均勻的,人眼並不能察覺圖像場的所有變化。事實上人類視覺的一般分辨能力為26灰度等級,而一般圖像的量化採用的是28灰度等級,即存在著視覺冗餘。
(5)聽覺冗餘
人耳對不同頻率的聲音的敏感性是不同的,並不能察覺所有頻率的變化,對某些頻率不必特別關注,因此存在聽覺冗餘。
(6)其他冗餘
包括結構冗餘、知識冗餘等。
❽ 圖像壓縮技術的優劣的三個指標
壓縮比:壓縮比是指壓縮過程中輸入數據量和輸出數據量之比
峰值信噪比:峰值信噪比用來衡量與原始圖像相比較的重建圖像的質量
時間復雜度:時間復雜度是指圖像壓縮演算法編解碼的速度
❾ 衡量數據壓縮技術性能好壞的重要指標
衡量數據壓縮技術性能好壞的重要指標是