Zopfli

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Zopfli Archive
首次發佈2013年2月 (2013-02)
目前版本1.0.1
原始碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
程式語言C
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    作業系統跨平台
    類型數據壓縮
    許可協定Apache License 2.0

    Zopfli是一個數據壓縮演算法,可以將數據壓縮為DEFLATEgzipzlib格式。[1]Zopfli被認為是目前壓縮率最高的DEFLATE壓縮演算法。[2]2013年2月,Google將Zopfli演算法的一個參考實現以Apache許可證2.0發佈為自由軟件程式庫[3]名稱Zöpfli是瑞士德語Zopf」(一種不加糖的花環麵包)的指小形式。[4]

    屬性和使用案例[編輯]

    Zopfli可以輸出DEFLATE原始數據流,也可以將DEFLATE數據封裝為gzip或zlib格式。預設組態的15次迭代可被增加或減少,以平衡壓縮耗時與效果。

    在預設設置下,Zopfli的輸出一般比zlib的最大壓縮小3%至8%,但消耗約80倍時間。[3][5]Zopfli的解壓速度與zlib的解壓速度不相上下。[6]

    由於其壓縮速度顯著較慢,zopfli不太適合即時壓縮,一般用於靜態內容的一次性壓縮。[7][8]典型用途是提供Web內容,包括基於DEFLATE的HTTP壓縮,或者使用在基於DEFLATE的檔案格式,例如PNG和WOFF字體檔案。[9]另一個用途是基於ZIP的軟件套件檔案下載和更新,例如Android應用程式包(APK)和Java存檔檔案(JAR),尤其是用在流動網絡。

    技術[編輯]

    使用高消耗的壓縮技術可取得更高數據密度。該方法基於迭代建模,以及一個最短路徑搜尋演算法,憑藉所有未壓縮數據可能的DEFLATE表示法得到的,找到最低的位消耗路徑。[10]

    實現[編輯]

    Google發佈了一個用C語言編寫的程式庫參考實現。它可以按Apache許可證2.0的條款作為自由軟件使用。[1]

    PHP建立的包裝器英語Wrapper_library:php_zopfli。[11]

    一個用C#實現的Zopfli位於CompressSharper程式庫的ZopfliDeflater.cs。[12]

    歷史[編輯]

    Zopfli基於Jyrki Alakuijala的一個演算法。Google員工Jyrki Alakuijala和Lode Vandevenne撰寫了一個zopfli的參考實現,2013年2月首次向公眾發佈。版本1.0.0發佈於2013年4月25日。[13]之後幾個為PNG壓縮的適配出現在GitHubZopfliPNG在2013年5月被提交到Google的zopfli參考實現。[14]

    Zopfli的出現顯示,Ken Silverman的KZIP是壓縮率最有效的DEFLATE實現,以及7-Zip的deflater是壓縮率最有效的自由許可之一。

    PNG最佳化[編輯]

    因為PNG使用DEFLATE壓縮層,Zopfli演算法可用於壓縮PNG檔案。Zopfli的作者建立了一個名為ZopfliPNG的PNG最佳化工具。Zopfli演算法也已被整合到其他PNG壓縮最佳化工具,例如AdvanceCOMP英語AdvanceCOMP工具套件中的advpng。[15]

    ZopfliPNG是目前縮減PNG大小最有效的最佳化器。

    參見[編輯]

    參考資料[編輯]

    1. ^ 1.0 1.1 google/zopfli · GitHub. Github.com. [2015-09-29]. (原始內容存檔於2022-03-18). 
    2. ^ Debian - Details of package zopfli in jessie. Packages.debian.org. [2015-09-29]. (原始內容存檔於2016-03-04). 
    3. ^ 3.0 3.1 Compress data more densely with Zopfli - Google Developers Blog. Googledevelopers.blogspot.com. 2013-02-28 [2013-05-01]. (原始內容存檔於2016-03-08). 
    4. ^ Alexander Neumann. Zopfli: Neue Kompressionsbibliothek von Google | heise Developer. Heise.de. [2015-09-29] (Deutsch). [永久失效連結]
    5. ^ A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia. Lifehacker.com.au. 2013-03-03 [2015-09-29]. (原始內容存檔於2020-10-24). 
    6. ^ Alakuijala, Jyrki; Vandevenne, Lode. Data compression using Zopfli (PDF). [2015-09-06]. (原始內容 (PDF)存檔於2016-03-05). 
    7. ^ Dean Hume. Improved Compression Ratios Using Zopfli. 2015-06-01 [2015-09-06]. (原始內容存檔於2017-09-29). 
    8. ^ Sharwood, Simon. Google open sources very slow compression algorithm. The Register. 2013 [2016-07-03]. (原始內容存檔於2019-02-20). 
    9. ^ Ilya Grigorik. Google Fonts recently switched to using new Zopfli compression algorithm. Google+. 2014-01-09 [2015-06-06]. (原始內容存檔於2019-01-09). 
    10. ^ Zopfli: Google's new data compression algorithm | Digit.in. Thinkdigit.com. 2013-03-01 [2015-09-29]. (原始內容存檔於2013-07-08). 
    11. ^ clickalicious/php_zopfli · GitHub. Github.com. 2015-03-03 [2015-09-29]. (原始內容存檔於2013-04-11). 
    12. ^ CompressSharper - Source Code. Compresssharper.codeplex.com. 2015-08-21 [2015-09-29]. (原始內容存檔於2017-12-25). 
    13. ^ Release Zopfli-1.0.0. Github.com. 2013-04-25 [2015-09-06]. (原始內容存檔於2020-10-23). 
    14. ^ ZopfliPNG : Google/zopfli@337d27f. Github.com. [2015-09-29]. (原始內容存檔於2019-02-18). 
    15. ^ Andrea Mazzoleni. Advance Projects. Advancemame.sourceforge.net. [2015-09-29]. (原始內容存檔於2015-06-28). 

    外部連結[編輯]