導航:首頁 > 源碼編譯 > 壓縮文件的演算法

壓縮文件的演算法

發布時間:2024-06-26 09:26:26

A. 如何壓縮文件任何文件都可以壓縮為什麼要壓縮壓縮後對原文件有何影響

簡單的說,就是經過壓縮軟體壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。壓縮文件的運行原理有損壓縮和無損壓縮無損壓縮如果您從互聯網上下載了許多程序和文件,可能會遇到很多ZIP文件。這種壓縮機制是一種很方便的發明,尤其是對網路用戶,因為它可以減小文件中的比特和位元組總數,使文件能夠通過較慢的互聯網連接實現更快傳輸,此外還可以減少文件的磁碟佔用空間。在下載了文件後,計算機可使用WinZip或Stuffit這樣的程序來展開文件,將其復原到原始大小。如果一切正常,展開的文件與壓縮前的原始文件將完全相同。
乍一聽好像很神秘:您是怎樣減少比特和位元組的數量並將它們原封不動地還原回去的呢?等一切水落石出之後,您會發現這個過程背後的基本理念其實非常簡單明了。在本文中,我們將討論這種通過簡單壓縮來明顯減小文件的方法。
大多數計算機文件類型都包含相當多的冗餘內容——它們會反復列出一些相同的信息。文件壓縮程序就是要消除這種冗餘現象。與反復列出某一塊信息不同,文件壓縮程序只列出該信息一次,然後當它在原始程序中出現時再重新引用它。
以我們熟悉的信息類型——單詞——為例子。
肯尼迪(John F. Kennedy)在1961年的就職演說中曾說過下面這段著名的話:
Ask not what your country can do for you——ask what you can do for your country.(不要問國家能為你做些什麼,而應該問自己能為國家做些什麼。)
這段話有17個單詞,包含61個字母、16個空格、1個破折號和1個句點。如果每個字母、空格或標點都佔用1個內存單元,那麼文件的總大小為79個單元。為了減小文件的大小,我們需要找出冗餘的部分。
我們立刻發現:
如果忽略大小寫字母間的區別,這個句子幾乎有一半是冗餘的。九個單詞(ask、not、what、your、country、can、do、for、you)幾乎提供了組成整句話所需的所有東西。為了構造出另一半句子,我們只需要拿出前半段句子中的單詞,然後加上空格和標點就行了。
大多數壓縮程序使用基於自適應字典的LZ演算法來縮小文件。「LZ」指的是此演算法的發明者Lempel和Ziv,「字典」指的是對數據塊進行歸類的方法。
排列字典的機制有很多種,它也可以像編號列表那樣簡單。在我們檢查肯尼迪這句著名講話時,可以挑出重復的單詞,並將它們放到編號索引中。然後,我們直接寫入編號而不是寫入整個單詞。
因此,如果我們的字典是:
ask
what
your
country
can
do
for
you
我們的句子現在就應該是這樣的:
1 not 2 3 4 5 6 7 8-- 1 2 8 5 6 7 3 4
如果您了解這種機制,那麼只需使用該字典和編號模式即可輕松重新構造出原始句子。這就是在展開某個下載文件時,計算機中的解壓縮程序所做的工作。你可能還遇到過能夠自行解壓縮的壓縮文件。若要創建這種文件,編程人員需要在被壓縮的文件中設置一個簡單的解壓縮程序。在下載完畢後,它可以自動重新構造出原始文件。
但是使用這種機制究竟能夠節省多少空間呢?「1 not 2 3 4 5 6 7 8——1 2 8 5 6 7 3 4」當然短於「Ask not what your country can do for you-- ask what you can do for your country.」,但應注意的是,我們需要隨文件一起保存這個字典。
在實際壓縮方案中,計算出各種文件需求是一個相當復雜的過程。讓我們回過頭考慮一下上面的例子。每個字元和空格都佔用1個內存單元,整個原句要佔用79個單元。壓縮後的句子(包括空格)佔用了37個單元,而字典(單詞和編號)也佔用了37個單元。也就是說,文件的大小為74個單元,因此我們並沒有把文件大小減少很多。
但這只是一個句子的情況!可以想像的是,如果用該壓縮程序處理完肯尼迪講話的其餘部分,我們會發現這些單詞以及其他單詞重復了更多次。而且,正如下一節所言,為了得到盡可能高的組織效率,可以對字典進行重寫。
在上一個的例子中,我們挑出了所有重復的單詞並將它們放在一個字典中。對於我們來說,這是最顯而易見的字典編寫方法。但是壓縮程序卻不這樣認為:它對單詞沒有概念——它只會尋找各個模式。為了盡可能減小文件的大小,它會仔細挑選出最優模式。
如果從這個角度處理該句子,我們最終會得到一個完全不同的字典。
如果壓縮程序掃描肯尼迪的這句話,它遇到的第一個冗餘部分只有幾個字母長。在ask not what your中,出現了一個重復的模式,即字母t後面跟一個空格——在not和what中。如果壓縮程序將此模式寫入字典,則每次出現「t」後面跟一個空格的情況時,它會寫入一個「1」。但是在這個短句中,此模式的出現次數不夠多,不足以將其保留為字典中的一個條目,因此程序最終會覆蓋它。
程序接下來注意到的內容是ou,在your和country中都出現了它。如果這是一篇較長的文檔,將此模式寫入字典會節省大量空間——在英語中ou是一個十分常見的字母組合。但是在壓縮程序看完整個句子後,它立即發現了一個更好的字典條目選擇:不僅ou發生了重復,而且your和country整個單詞都發生了重復,並且它們實際上是作為一個短語your country一起發生重復的。在本例中,程序會用your country條目覆蓋掉字典中的ou條目。
短語can do for也發生了重復,一次後面跟著your,另一次跟著you,因此我們又發現can do for you也是一種重復模式。這樣,我們可以用一個數字來代替15個字元(包含空格),而your country只允許我們用一個數字代替13個字元(包含空格),所以程序會用r country條目覆蓋your country條目,然後再寫入一個單獨的can do for you條目。程序通過這種方式繼續工作,挑出所有重復的信息,然後計算應該將哪一種模式寫入字典。基於自適應字典的LZ演算法中的「自適應」部分指的就是這種重寫字典的能力。程序執行此工作的過程實際上非常復雜。
無論使用什麼方法,這種深入搜索機制都能比僅僅挑出單詞這種方法更有效率地對文件進行壓縮。如果使用我們上面提取出的模式,然後用「__」代替空格,最終將得到下面這個更大的字典:
ask__
what__­
you
r__country
__can__do__for__you
而句子則較短:
「1not__2345__--__12354」
句子現在佔用18個內存單元,字典佔用41個單元。所以,我們將文件總大小從79個單元壓縮到了59個單元!這僅僅是壓縮句子的一種方法,而且不一定是最高效的方法。(看看您能找到更好的方法嗎!)
那麼這種機制到底有多好呢?文件壓縮率取決於多種因素,包括文件類型、文件大小和壓縮方案。
在世界上的大多數語言中,某些字母和單詞經常以相同的模式一起出現。正是由於這種高冗餘性,而導致文本文件的壓縮率會很高。通常大小合適的文本文件的壓縮率可以達到50%或更高。大多數編程語言的冗餘度也很高,因為它們的命令相對較少,並且命令經常採用一種設定的模式。對於包含大量不重復信息的文件(例如圖像或MP3文件),則不能使用這種機制來獲得很高的壓縮率,因為它們不包含重復多次的模式。
如果文件有大量重復模式,那麼壓縮率通常會隨著文件大小的增加而增加。從我們的例子中就可以看出這一點——如果我們摘錄的肯尼迪講話再長一些,您會發現又多次出現了我們字典中的模式,因此能夠通過每個字典條目節省更多的文件空間。此外,對於更大的文件,還可能出現具有更大普遍性的模式,從而能夠創建出效率更高的字典。
此外,文件壓縮效率還取決於壓縮程序使用的具體演算法。有些程序能夠在某些類型的文件中更好地尋找到模式,因此能更有效地壓縮這些類型的文件。其他一些壓縮程序在字典中又使用了字典,這使它們在壓縮大文件時表現很好,但是在壓縮較小的文件時效率不高。盡管這一類的所有壓縮程序都基於同一個基本理念,但是它們的執行方式卻各不相同。程序開發人員始終在嘗試建立更好的壓縮機制。有損壓縮我們在上文中討論的壓縮類型稱為無損壓縮,因為您重新創建的文件與原始文件完全相同。所有無損壓縮都基於這樣一種理念:將文件變為「較小」的形式以利於傳輸或存儲,並在另一方收到它後復原以便重新使用它。
有損壓縮則與此大不相同。這些程序直接去除「不必要」的信息,對文件進行剪裁以使它變得更小。這種類型的壓縮大量應用於減小點陣圖圖像的文件大小,因為點陣圖圖像的體積通常非常龐大。為了了解有損壓縮的工作原理,讓我們看看你的計算機如何對一張掃描的照片進行壓縮。
對於此類文件,無損壓縮程序的壓縮率通常不高。盡管圖片的大部分看起來都是相同的——例如,整個天空都是藍色的——但是大部分像素之間都存在微小的差異。為了使圖片變得更小同時不降低其解析度,您必須更改某些像素的顏色值。如果圖片中包含大量的藍色天空,程序會挑選一種能夠用於所有像素的藍色。然後,程序重寫該文件,所有天空像素的值都使用此信息。如果壓縮方案選擇得當,您不會注意到任何變化,但是文件大小會顯著減小。
當然,對於有損壓縮,在文件壓縮後您無法將其復原成原始文件的樣子。您必須接受壓縮程序對原始文件的重新解釋。因此,如果需要完全重現原來的內容(例如軟體應用程序、資料庫和總統就職演說),則不應該使用這種壓縮形式。

B. 甯哥敤鐨勬暟鎹鍘嬬緝綆楁硶鏈夊摢浜涳紵

鍦ㄦ暟瀛楀寲鏃朵唬錛屾暟鎹鐨勫瓨鍌ㄥ拰浼犺緭鏁堢巼鏄懼緱灝や負閲嶈併備負浜嗗噺灝忓瓨鍌ㄧ┖闂村拰甯﹀介渶奼傦紝鍚勭嶆暟鎹鍘嬬緝綆楁硶濡傞洦鍚庢槬絎嬭埇娑岀幇銆傝繖浜涚畻娉曚緷鎹涓嶅悓鐨勫師鐞嗗拰閫傜敤鍦烘櫙錛屽垎涓哄彲閫嗗拰闈炲彲閫嗕袱縐嶇被鍨嬶紝鏃ㄥ湪鍦ㄤ繚璇佹暟鎹瀹屾暣鎬х殑鍓嶆彁涓嬶紝灝藉彲鑳藉湴鍘嬬緝鏁版嵁浣撶Н銆傝╂垜浠娣卞叆鎺㈣ㄤ竴涓嬭繖浜涘父鐢ㄧ殑鏁版嵁鍘嬬緝綆楁硶銆

棣栧厛錛屽彲閫嗗帇緙╃畻娉曪紝濡侶uffman緙栫爜錛屼互鍏舵棤鎹熺壒鎬ц屽彈鍒伴潚鐫愩傚畠閫氳繃瀵規暟鎹鐨勯戠巼鍒嗘瀽錛屼負姣忎釜瀛楃﹀垎閰嶆渶鐭鐨勭紪鐮侊紝浠庤屽疄鐜伴珮鏁堢殑鍘嬬緝銆傝繖縐嶇紪鐮佹柟寮忕『淇濅簡瑙e帇鍚庣殑鏁版嵁涓庡師濮嬫暟鎹涓鑷達紝閫傜敤浜庡規暟鎹鍑嗙『鎬ц佹眰鏋侀珮鐨勫満鏅銆

鎺ョ潃錛岄潪鍙閫嗗帇緙╃畻娉曞侸PEG錛屼互鐗虹壊涓瀹氱殑鏁版嵁綺劇『搴︽崲鍙栨洿楂樼殑鍘嬬緝姣斻傝繖綾葷畻娉曞湪鍥懼儚澶勭悊鍜岃嗛戝帇緙╀腑騫挎硾搴旂敤錛屽挨鍏舵槸鍦ㄥ硅嗚夎川閲忚佹眰鐩稿硅緝浣庣殑鎯呭喌涓嬶紝鑳芥樉钁楀噺灝忔暟鎹閲忋

鏁版嵁鍘嬬緝鐨勭瓥鐣ュ氱嶅氭牱錛屽寘鎷鍩轟簬鍐呭圭殑緙栫爜錛堝傚瓧絎︿覆涓棰戠箒瀛楃︾殑棰戠巼緙栫爜錛夈佽〃紺烘柟娉曪紙濡傞湇澶鏇肩紪鐮佸規椂搴忔暟鎹鐨勯珮鏁堝勭悊錛変互鍙婂規暟鎹嫻佽勫緥鎬х殑鍒╃敤錛堝傛父紼嬬紪鐮佸拰RLE錛岀敤浜庤繛緇閲嶅嶆暟鎹鐨勫帇緙╋級銆備緥濡傦紝"this is a example"閫氳繃棰戠巼緙栫爜鑳藉噺灝忓埌54姣旂壒錛屾瘮鍘熷136姣旂壒鑺傜渷綰2.5鍊嶇殑瀛樺偍絀洪棿銆

Delta鍜孌elta-of-Delta緙栫爜鍒欏湪澶勭悊鏂囦歡鍘嗗彶璁板綍鍜屽崟璋冨簭鍒楁椂琛ㄧ幇鍑鴻壊錛岄厤鍚圧LE絳夋妧鏈錛岃兘鏄捐憲闄嶄綆鏁版嵁澶у皬銆侱elta閫氳繃閫愪釜鍏冪礌鐨勫樊寮傛潵鍘嬬緝鏁版嵁錛岃屼簩闃跺樊鍒嗙紪鐮佸垯榪涗竴姝ュ垎鏋愬墠鍚庝袱涓鍏冪礌鐨勫樊寮傦紝涓よ呭湪鐗瑰畾鍦烘櫙涓嬮兘鑳芥彁渚涢珮鏁堝帇緙┿

Zig-zag緙栫爜鐗瑰埆閽堝硅礋鏁幫紝涓嶥elta緇撳悎鑳芥湁鏁堝勭悊灝忔暟錛屽疄鐜伴珮鏁堝瓨鍌ㄣ侴oogle寮婧愮殑Snappy浠ュ叾蹇閫熺殑鍘嬬緝閫熷害鍜屽悎鐞嗙殑鍘嬬緝鏁堟灉錛屽箍娉涘簲鐢ㄤ簬寮婧愰」鐩錛岃孡Z4鍒欎互鍏跺瓧鑺傜駭鐨勫揩閫熻В鍘嬫ц兘錛岀壒鍒閫傚悎瀹炴椂鏁版嵁浼犺緭銆

Simple8b綆楁硶綆鍗曢珮鏁堬紝涓撲負灝忔暣鏁拌捐★紝浣嗗帇緙╃巼鍙鑳借緝浣庛侺ZO鍒欎互蹇閫熷帇緙╄侀暱錛屼絾瑙e帇閫熷害鐣ラ婁簬LZ4錛屾洿閫傚悎澶勭悊澶у潡鏁版嵁銆侱EFLATE綆楁硶鏄痾ip鏂囦歡鐨勯粯璁ゅ帇緙╂柟寮忥紝瀹冪粨鍚堜簡LZ77鍜孒uffman緙栫爜錛屾彁渚涗簡涓縐嶅鉤琛$殑鍘嬬緝絳栫暐銆

榪戝勾鏉ワ紝Zstandard浠ュ叾楂樻晥鐨勫帇緙╁拰蹇閫熺殑瑙e帇鑳藉姏宕闇插ご瑙掞紝涓烘湭鏉ユ暟鎹鍘嬬緝鎶鏈鐨勫彂灞曟弿緇樹簡騫塊様鍓嶆櫙銆傝孊it-packing鍒欓氳繃鍘婚櫎涓嶅繀瑕佺殑浣嶏紝榪涗竴姝ヨ妭鐪佸瓨鍌ㄧ┖闂達紝浣嗗彲鑳藉獎鍝嶆暟鎹鐨勮誨彇閫熷害銆

TDengine鏁版嵁搴撻噰鐢ㄤ簡涓闃舵靛帇緙╋紙鍖呮嫭Delta銆丼imple8b銆亃ig-zag鍜孡Z4錛夊拰浜岄樁孌甸氱敤鍘嬬緝絳栫暐錛屼互閫傚簲涓嶅悓鍦烘櫙鐨勯渶奼傘傞夋嫨鍘嬬緝綆楁硶鏃訛紝闇瑕佺患鍚堣冭檻鍘嬬緝鏁堢巼銆佽В鍘嬮熷害浠ュ強鏁版嵁鐨勫師濮嬬簿搴︼紝浠ユ壘鍒版渶閫傚悎鐨勮В鍐蟲柟妗堛

鍦ㄦ暟瀛楀寲涓栫晫涓錛屾暟鎹鍘嬬緝綆楁硶鏄鎻愬崌瀛樺偍鍜屼紶杈撴晥鐜囩殑鍏抽敭宸ュ叿銆傛瘡涓縐嶇畻娉曢兘鏈夊叾鐙鐗圭殑浼樺娍鍜岄傜敤鑼冨洿錛屼簡瑙e苟鐏墊椿榪愮敤榪欎簺宸ュ叿錛岃兘甯鍔╂垜浠鏇村ソ鍦扮$悊鏁版嵁錛岄檷浣庡瓨鍌ㄦ垚鏈錛屾彁楂樻暟鎹澶勭悊閫熷害銆

C. 壓縮或解壓文件是什麼原理

壓縮文件的基本原理是查找文件內的重復位元組,並建立一個相同位元組的"詞典"文件,並用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示並寫入"詞典"文件,這樣就可以達到縮小文件的目的.
由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟體把數據還原,這個過程稱作解壓縮。常見的壓縮軟體有winzip、winrar等。
有兩種形式的重復存在於計算機數據中,zip就是對這兩種重復進行了壓縮。
一種是短語形式的重復,即三個位元組以上的重復,對於這種重復,zip用兩個數字:1.重復位置距當前壓縮位置的距離;2.重復的長度,來表示這個重復,假設這兩個數字各佔一個位元組,於是數據便得到了壓縮,這很容易理解。
一個位元組有 0 - 255 共 256 種可能的取值,三個位元組有 256 * 256 * 256 共一千六百多萬種可能的情況,更長的短語取值的可能情況以指數方式增長,出現重復的概率似乎極低,實則不然,各種類型的數據都有出現重復的傾向,一篇論文中,為數不多的術語傾向於重復出現;一篇小說,人名和地名會重復出現;一張上下漸變的背景圖片,水平方向上的像素會重復出現;程序的源文件中,語法關鍵字會重復出現(我們寫程序時,多少次前後、paste?),以幾十 K 為單位的非壓縮格式的數據中,傾向於大量出現短語式的重復。經過上面提到的方式進行壓縮後,短語式重復的傾向被完全破壞,所以在壓縮的結果上進行第二次短語式壓縮一般是沒有效果的。
第二種重復為單位元組的重復,一個位元組只有256種可能的取值,所以這種重復是必然的。其中,某些位元組出現次數可能較多,另一些則較少,在統計上有分布不均勻的傾向,這是容易理解的,比如一個 ASCII 文本文件中,某些符號可能很少用到,而字母和數字則使用較多,各字母的使用頻率也是不一樣的,據說字母 e 的使用概率最高;許多圖片呈現深色調或淺色調,深色(或淺色)的像素使用較多(這里順便提一下:png 圖片格式是一種無損壓縮,其核心演算法就是 zip 演算法,它和 zip 格式的文件的主要區別在於:作為一種圖片格式,它在文件頭處存放了圖片的大小、使用的顏色數等信息);上面提到的短語式壓縮的結果也有這種傾向:重復傾向於出現在離當前壓縮位置較近的地方,重復長度傾向於比較短(20位元組以內)。這樣,就有了壓縮的可能:給 256 種位元組取值重新編碼,使出現較多的位元組使用較短的編碼,出現較少的位元組使用較長的編碼,這樣一來,變短的位元組相對於變長的位元組更多,文件的總長度就會減少,並且,位元組使用比例越不均勻,壓縮比例就越大。

D. bmp鍥劇墖鍘嬬緝綆楁硶-濡備綍鍘嬬緝BMP鏍煎紡鐨勫浘鐗囷紝騫朵嬌寰楀浘鐗囦粛鐒惰兘淇濇寔娓呮櫚錛

BMP鍥懼儚鍘嬬緝綆楁硶

BMP鏄疻indows涓嬬殑浣嶅浘鏂囦歡,灞炰簬瀹屽叏涓嶅帇緙╃殑鍥劇墖鏂囦歡,鍖呭惈鐨勬槸鍥劇墖姣忎釜鍍忕礌鐐瑰圭偣鐨勪俊鎮銆俽gb涓夐氶亾24浣嶇殑璇濇瘡閫氶亾鏄8浣,涔熷氨鏄2鐨8嬈℃柟鐨勫皬瀛楄妭(8b=1B,1024B=1KB),鍗充負姣忎釜鐐圭殑姣忎釜閫氶亾鍙浠ユ湁2鐨8嬈℃柟縐嶉滆壊,涓涓鍍忕礌鎵鍖呭惈鐨勯滆壊灝辨槸2鐨24嬈℃柟縐嶃傚彲浠ユ牴鎹鍥懼儚鐨勫儚緔犲拰浣嶆繁鏍囧噯鐨勮$畻鍑哄浘鐗囩殑澶у皬銆備絾鏄痡pg絳夌瓑榪欑嶅帇緙╂枃浠跺彧鑳藉ぇ姒備及璁℃枃浠舵湁澶氬ぇ鏃犳硶綺劇『璁$畻鐨勩傛瘮濡1600*1200鍥劇墖24浣嶇殑:

姣忎釜鍍忕礌鐨勬瘡涓閫氶亾鏈8b,鍗蟲墜濡備負2鐨8嬈℃柟綰х伆闃,鍗犵敤絀洪棿涓1B,涓変釜閫氶亾灝辨槸3B,榪欎釜鍥劇殑澶у皬鍗充負3*1600*1200B

鎹㈢畻鎴怣鐨勮瘽灝辨槸3*1600*1200/1024/1024=5.4931640625M

鎬庝箞鍘嬬緝bmp鏍煎紡鐨勫浘鐗囧ぇ灝

bmp鏍煎紡涓嶈兘鍘嬬緝鐨,瑕佸噺灝忎綋縐鍙鑳借鍘嬬緝鎴恓pg鎴栬卲ng鏍煎紡浜嗐傜敤榪欎釜鍦ㄧ嚎鍥劇墖鍘嬬緝宸ュ叿璇曡瘯鍚,鍙浠ュ帇緙゜mp鏍煎紡,鎯蟲妸鍥劇墖鏂囦歡鐨勫ぇ灝忓噺鍒板氬皯閮借,鐩存帴璁劇疆涓涓嬫暟鍊煎氨鎼炲畾,椹涓婄灛闂村氨鑳藉帇緙╁畬銆

鍦ㄧ嚎鏅鴻兘鍘嬬緝鍥劇墖澶у皬,鍥劇墖鍘嬬緝浣撶Н

鍦ㄧ嚎鍥劇墖鏅鴻兘鍘嬬緝浣跨敤姝ユ瘯楂樺惎楠:

涓銆侀栧厛鐐瑰嚮鍔犲彿娣誨姞闇瑕佸帇緙╃殑鍥劇墖銆傜洰鍓嶅凡鐭ユ敮鎸佸筳pg銆乸ng絳夊氱嶅父瑙佺殑鍥劇墖鏍煎紡榪涜屽帇緙,濡傛灉涓婁紶鍥劇墖騫跺帇緙╂垚鍔,鍒欎唬琛ㄦ敮鎸佽ュ浘鐗囨牸寮忋

浜屻佸彲浠ヨ嚜琛屼慨鏀瑰浘鐗囬渶瑕佽鍘嬬緝鍒扮殑鏈澶у介珮灝哄,榛樿や負鍥劇墖鍘熷嬬殑瀹介珮灝哄,涓斿介珮姣斾緥鏄鑷鍔ㄩ攣瀹氱殑銆

涓夈佸繀欏昏劇疆鍥劇墖琚鍘嬬緝鍚,鏈熸湜杈撳嚭鐨勫浘鐗囨枃浠剁殑鏈澶у崰鐢ㄧ┖闂淬(蹇呭~欏)

鍥涖侀夋嫨鍥劇墖鐢熸垚鐨勭畻娉曘傞粯璁や負娣峰悎浼樺厛綆楁硶,緇濆ぇ澶氭暟鎯呭喌涓嬩嬌鐢ㄩ粯璁ょ畻娉曞嵆鍙銆

浜斻佸帇緙╃殑璁懼畾鍊間笉鑳藉皬浜1Kb,浣嗗浘鐗囧帇緙╃殑鏈緇堟晥鏋滃彲浠ュ皬浜1Kb銆

butterpig

濡備綍鍘嬬緝BMP鏍煎紡鐨勫浘鐗囷紝騫朵嬌寰楀浘鐗囦粛鐒惰兘淇濇寔娓呮櫚錛

bmp鏍煎紡涓嶈兘鍘嬬緝鐨,瑕佸噺灝忎綋縐鍙鑳借鍘嬬緝鎴恓pg鎴栬卲ng鏍煎紡浜嗐傜敤榪欎釜鍦ㄧ嚎鍥劇墖鍘嬬緝宸ュ叿璇曡瘯鍚,鍙浠ュ帇緙゜mp鏍煎紡,鎯蟲妸鍥劇墖鏂囦歡鐨勫ぇ灝忓噺鍒板氬皯閮借,鐩存帴璁劇疆涓涓嬫暟鍊煎氨鎼炲畾,椹涓婄灛闂村氨鑳藉帇緙╁畬銆

鍦ㄧ嚎鏅鴻兘鍘嬬緝鍥劇墖澶у皬,鍥劇墖鍘嬬緝浣撶Н

鍦ㄧ嚎鍥劇墖鏅鴻兘鍘嬬緝浣跨敤姝ラ:

涓銆侀栧厛鐐瑰嚮鍔犲彿娣誨姞闇瑕佸帇緙╃殑鍥劇墖銆傜洰鍓嶅凡鐭ユ敮鎸佸筳pg銆乸ng絳夊氱嶅父瑙佺殑鍥劇墖鏍煎紡榪涜屽帇緙,濡傛灉涓婁紶鍥劇墖騫跺帇緙╂垚鍔,鍒欎唬琛ㄦ敮鎸佽ュ浘鐗囨牸寮忋

浜屻佸彲浠ヨ嚜琛屼慨鏀瑰浘鐗囬渶瑕佽鍘嬬緝鍒扮殑鏈澶у介珮灝哄,榛樿や負鍥劇墖鍘熷嬬殑瀹介珮灝哄,涓斿介珮姣斾緥鏄鑷鍔ㄩ攣瀹氱殑銆

涓夈佸繀欏誨康娓楄劇疆鍥劇墖琚鍘嬬緝鍚,鏈熸湜杈撳嚭鐨勫浘鐗囨枃浠剁殑鏈澶у崰鐢ㄧ┖闂淬(蹇呭~欏)

鍥涖侀夋嫨鍥劇墖鐢熸垚鐨勭畻娉曘傞粯璁や負娣峰悎浼樺厛綆楁硶,緇濆ぇ澶氭暟鎯呭喌涓嬩嬌鐢ㄩ粯璁ょ畻娉曞嵆鍙銆

浜斻佸帇緙╃殑璁懼畾鍊間笉鑳藉皬浜1Kb,浣嗗浘鐗囧帇緙╃殑鏈緇堟晥鏋滃彲浠ュ皬浜1Kb銆

butterpig

E. 如何計算文件壓縮率(將文件壓縮成rar或zip格式後,怎麼計算)

=
壓縮後文件大小
壓縮率= ------------------- X 100%
原文件大小

F. zip和tar的區別

zip和tar的區別如下:

1、概念

ZIP是一個文件的壓縮的演算法,原名Deflate(真空),發明者為菲利普·卡茲(Phil Katz)),他於1989年1月公布了該格式的資料。ZIP通常使用後綴名「.zip」,它的MIME格式為 application/zip。

tar是Unix和類Unix系統上的壓縮打包工具,可以將多個文件合並為一個文件,打包後的文件後綴亦為「tar」。tar文件格式是POSIX標准,最初是POSIX.1-1988,當前是POSIX.1-2001。

2、作用和原理

ZIP是一種相當簡單的分別壓縮每個文件的存檔格式,他的重要作用是壓縮。分別壓縮文件允許不必讀取另外的數據而檢索獨立的文件;理論上,這種格式允許對不同的文件使用不同的演算法。

tar命令是Unix/Linux系統中重要用途是備份文件,tar代表未壓縮的tar文件。已壓縮的tar文件則附加壓縮文件的擴展名,如經過gzip壓縮後的tar文件,擴展名為「.tar.gz」。

3、使用環境和使用方法

ZIP壓縮主要被使用在windows系統下,常使用winrar,360壓縮等軟體來壓縮、解壓縮。

tar則使用在unix系統下,以命令行的方式使用,例如:

tar -cvf home_backup.tar /home(將/home目錄下的所有文件打包入home_backup.tar文件中。);

tar -xvf home_backup.tar(在當前目錄下解壓home_back.tar)。

閱讀全文

與壓縮文件的演算法相關的資料

熱點內容
unix網路編程卷4 瀏覽:806
找靚機app下單什麼時候發貨 瀏覽:411
android一個應用兩個進程 瀏覽:801
linux硬碟復制 瀏覽:806
php圖片伺服器搭建 瀏覽:798
下載壓縮文件怎麼打開 瀏覽:192
新建文件夾叫什麼名字 瀏覽:565
windows20的開機命令 瀏覽:332
微信一般在電腦的那個文件夾 瀏覽:509
go在win7下編譯特別慢 瀏覽:256
光遇ios耳機安卓為什麼沒有 瀏覽:904
小米手機桌面文件夾經常自動散開 瀏覽:607
小米電話手錶用什麼app進行設置 瀏覽:265
虛擬列印機pdf下載 瀏覽:671
jdk編譯運行方法 瀏覽:459
android執行shell命令 瀏覽:349
程序員頭像女 瀏覽:57
有什麼可以變頭發顏色的app 瀏覽:935
玩具解壓屋游戲下載 瀏覽:849
我的世界拔刀劍伺服器地址id 瀏覽:891