• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            Zlib與GZip

            zlib

              zlib是提供資料壓縮之用的函式庫,由Jean-loup GaillyMark Adler所開發,初版0.9版在199551發表。zlib使用DEFLATE算法,最初是為libpng函式庫所寫的,后來普遍為許多軟件所使用。此函式庫為自由軟件,使用zlib授權。

              zlib是用于資料壓縮的函式庫,由Jean-loup GaillyMark Adler所開發,是使用抽象化的DEFLATE壓縮算法gzip文件壓縮程序。初版0.9版在199551發表,最初是為libpng函式庫所寫的,后來普遍為許多軟件所使用。此函式庫為自由軟件,使用zlib授權。

              截至20073月,zlib是包含在Coverity的美國國土安全部贊助者選擇繼續審查的開源項目。

            [編輯本段]

            功能

              * 數據頭(header) - zlib能使用一個gzip數據頭,zlib數據頭或者不使用數據頭壓縮數據。

              通常情況下,數據壓縮使用zlib數據頭,因為這提供錯誤數據檢測。當數據不使用數據頭寫入時,結果是沒有任何錯誤檢測的原始DEFLATE數據,那么解壓縮軟件的調用者知道壓縮數據在什么地方結束。

              gzip數據頭比zlib數據頭要大,因為它保存了文件名和其他文件系統信息,事實上這是廣泛使用的gzip文件的數據頭格式。注意zlib函式庫本身不能創建一個gzip文件,但是它相當輕松的通過把壓縮數據寫入到一個有gzip文件頭的文件中。

              * 算法 - 目前zlib僅支持一個LZ77的變種算法,DEFLATE的算法。

              這個算法使用很少的系統資源,對各種數據提供很好的壓縮效果。這也是在ZIP檔案中無一例外的使用這個算法。(盡管zip文件格式也支持幾種其他的算法)。

              看起來zlib格式將不會被擴展使用任何其他算法,盡管數據頭可以有這種可能性。

              * 使用資源 - 函式庫提供了對處理器和內存使用控制的能力

              不同的壓縮級別數值可以指示不同的壓縮執行速度。

              還有內存控制管理的功能。這在一些諸如嵌入式系統這樣內存有限制的環境中是有用的。

              * 策略 - 壓縮可以針對特定類型的數據進行優化

              如果你總是使用zlib庫壓縮壓縮特定類型的數據,那么可以使用有針對性的策略可以提高壓縮效率和性能。例如,如果你的數據包含很長的重復數據,那么可以用RLE(運行長度編碼)策略,可能會有更好的結果。

              對于一般的數據,默認的策略是首選。

              * 錯誤處理 - 錯誤可以被發現和跳過

              數據混亂可以被檢測(只要數據和zlib或者gzip數據頭一起被寫入-參見上面)

              此外,如果全刷新點(full-flush points)被寫入到壓縮后的數據流中,那么錯誤數據是可以被跳過的,并且解壓縮將重新同步到下個全刷新點。(錯誤數據的無錯恢復被提供)。全刷新點技術對于在不可靠的通道上的大數據流是很有用的,一些過去的數據丟失是不重要的(例如多媒體數據),但是建立太多的全刷新點會極大的影響速度和壓縮。

              * 數據長度 - 對于壓縮和解壓縮,沒有數據長度的限制

              重復調用庫函數允許處理無限的數據塊。一些輔助代碼(計數變量)可能會溢出,但是不影響實際的壓縮和解壓縮。

              當壓縮一個長(無限)數據流時,最好寫入全刷新點。

            [編輯本段]

            使用zlib的軟件

              今天,zlib是一種事實上的業界標準,以至于在標準文檔中,zlibDEFLATE常常互換使用。數以千計的應用程序直接或間接依靠zlib壓縮函式庫[2],包括:

              * Linux核心:使用zlib以實作網絡協定的壓縮、檔案系統的壓縮以及開機時解壓縮自身的核心。

              * libpng,用于PNG圖形格式的一個實現,對bitmap數據規定了DEFLATE作為流壓縮方法。

              * Apache:使用zlib實作http 1.1

              * OpenSSHOpenSSL:以zlib達到最佳化加密網絡傳輸。

              * FFmpeg:以zlib讀寫Matroska等以DEFLATE算法壓縮的多媒體串流格式。

              * rsync:以zlib最佳化遠端同步時的傳輸。

              * The dpkg and RPM package managers, which use zlib to unpack files from compressed software packages.

              * Subversion Git CVS 版本控制系統,使用zlib來壓縮和遠端倉庫的通訊流量。

              * dpkgRPM等包管理軟件:以zlib解壓縮RPM或者其他封包。

              因為其代碼的可移植性,寬松的許可以及較小的內存占用,zlib在許多嵌入式設備中也有應用。

            zlib和gzip是一回事,gzip不過外面多了一個文件格式,作者都是同一個人。
            據說7zip比zlib有更高的壓縮比和解壓速度,但沒有用過。

            posted on 2009-09-07 21:25 肥仔 閱讀(3934) 評論(0)  編輯 收藏 引用 所屬分類: 庫 & 代碼段

            久久99国产精品久久| 久久精品国产亚洲av瑜伽| 亚洲欧美精品一区久久中文字幕| 国产99久久九九精品无码| 伊人热热久久原色播放www| 人妻无码中文久久久久专区| 亚洲国产精品久久久久久| 亚洲国产精品无码久久青草| 久久国产精品99精品国产| 午夜精品久久久内射近拍高清| 久久精品国产亚洲av日韩| 手机看片久久高清国产日韩| 国产精品久久久久影院色| 亚洲欧洲精品成人久久奇米网| 国产亚洲精品自在久久| 99久久做夜夜爱天天做精品| 91精品国产色综久久| 7777精品久久久大香线蕉| 久久国产精品视频| AV狠狠色丁香婷婷综合久久 | 精品久久人人妻人人做精品| 久久久久人妻一区二区三区 | 久久久久无码专区亚洲av| 久久久久亚洲AV片无码下载蜜桃| 亚洲精品国精品久久99热| 亚洲国产天堂久久综合网站| 久久99精品久久久久婷婷| 欧美大香线蕉线伊人久久| 久久狠狠爱亚洲综合影院| 亚洲伊人久久综合影院| 日韩久久久久中文字幕人妻| 久久国产乱子伦精品免费午夜| 免费观看久久精彩视频| 麻豆精品久久精品色综合| 国内精品久久久久久野外| 97久久精品无码一区二区天美| 久久九九精品99国产精品| 久久精品国产精品亚洲毛片| 久久国产亚洲精品无码| 久久国产精品一国产精品金尊| 久久丫精品国产亚洲av|