精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Facebook開(kāi)源新的壓縮算法,性能超zlib

責(zé)任編輯:editor004

作者: Sergio De Simone

2016-09-06 11:43:48

摘自:INFOQ

近日,F(xiàn)acebook開(kāi)源了新的壓縮算法Zstandard 1 0。Facebook的基準(zhǔn)測(cè)試顯示,在任意壓縮率和壓縮帶寬組合下,Zstandard的性能都要高于zlib。

近日,F(xiàn)acebook開(kāi)源了新的壓縮算法Zstandard 1.0。據(jù)Facebook工程師Yann Collet和Chip Turner介紹,該算法是少數(shù)能夠在性能和效率方面超過(guò)zlib的壓縮算法之一,而后者當(dāng)前是“占統(tǒng)治地位的標(biāo)準(zhǔn)”。Facebook Zstandard利用了Collet之前所做的工作。Collet是LZ4的作者,他在2015年發(fā)布了其新算法的第一個(gè)版本。

Facebook的基準(zhǔn)測(cè)試顯示,在任意壓縮率和壓縮帶寬組合下,Zstandard的性能都要高于zlib。

 

特別地,當(dāng)使用標(biāo)準(zhǔn)無(wú)損壓縮語(yǔ)料庫(kù)Silesia時(shí),相比zlib,Zstandard展示了出色的性能:

在壓縮率相同的情況下,它的速度快大約3到5倍; 在壓縮速度相同的情況下,它生成的文件小10%到15%; 不管壓縮率多大,它解壓縮的速度都要快2倍; 它的最大壓縮率要高許多(大約為4比3.15)。

Zstandard使用了有限狀態(tài)熵,并以Jarek Duda在熵編碼非對(duì)稱數(shù)字系統(tǒng)(ANS)方面的工作為基礎(chǔ)。ANS的目標(biāo)是“避免在壓縮速度和壓縮率之間進(jìn)行取舍”,它既可以用于精確編碼,也可以用于快速編碼,并且支持?jǐn)?shù)據(jù)加密。但是,從根本上講,Zstandard之所以提供了更好的性能是因?yàn)樗亩囗?xiàng)設(shè)計(jì)和實(shí)現(xiàn)選擇。

zlib受一個(gè)32KB的窗口限制,而Zstandard并沒(méi)有任何固有的限制,它可以更充分地利用現(xiàn)代環(huán)境中的內(nèi)存,包括移動(dòng)和嵌入式環(huán)境。 一個(gè)新的Huffman解碼器Huff0。它可以借助多個(gè)ALU并行解碼符號(hào),減少算術(shù)操作之間的依賴。

Zstandard設(shè)法盡量減少分支,從而將因?yàn)榉种ьA(yù)測(cè)錯(cuò)誤而導(dǎo)致的、開(kāi)銷(xiāo)很高的管道清理最小化。下面的例子展示了如何在不使用分支的情況下重寫(xiě)while循環(huán):

/* 經(jīng)典版本 */while (nbBitsUsed >= 8) { /* 每個(gè)while測(cè)試都是一個(gè)分支 */ accumulator <<= 8; accumulator += *byte++; nbBitsUsed -= 8;}/* 無(wú)分支版本 */nbBytesUsed = nbBitsUsed >> 3;nbBitsUsed &= 7;ptr += nbBytesUsed;accumulator = read64(ptr);

對(duì)于差別只有幾個(gè)字節(jié)的序列,重復(fù)碼建模極大地改善了壓縮。

Zstandard是使用C語(yǔ)言編寫(xiě)的。它既是一個(gè)命令行工具,也是一個(gè)庫(kù)。它提供了20多個(gè)壓縮級(jí)別,讓用戶可以根據(jù)具體可用的硬件、待壓縮的數(shù)據(jù)和待優(yōu)化的瓶頸進(jìn)行仔細(xì)地調(diào)整。Facebook建議開(kāi)始時(shí)使用默認(rèn)級(jí)別3。該級(jí)別適合大多數(shù)情況。然后,可以嘗試9以下的級(jí)別,合理地平衡速度和空間,或者使用更高的級(jí)別獲得更高的壓縮率,而20以上的級(jí)別則適合那些你不關(guān)心壓縮速度的情況。

對(duì)于Zstandard的未來(lái)版本會(huì)帶來(lái)什么特性,Collet和Turner也提供了一些信息,其中包括支持多線程,以及可以提供更快壓縮速度和更高壓縮率的新的壓縮級(jí)別。

Zstandard是繼蘋(píng)果的ZLFSE和谷歌的Brotli之后的又一個(gè)開(kāi)源壓縮算法。ZLFSE和Brotli都是開(kāi)源的,每一種算法都針對(duì)特定的應(yīng)用場(chǎng)景進(jìn)行了優(yōu)化:Brotli似乎為實(shí)現(xiàn)Web資產(chǎn)和Android APK的高壓縮率進(jìn)行了優(yōu)化,而LZFSE的目標(biāo)是,在壓縮率相同的情況下,提供比zlib更快的壓縮速度和更低的電量消耗。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 庆城县| 庆城县| 疏勒县| 凤山市| 乐清市| 迁西县| 来宾市| 沾益县| 阿勒泰市| 台安县| 宿迁市| 洞口县| 抚州市| 资溪县| 佳木斯市| 循化| 崇仁县| 德州市| 商丘市| 怀宁县| 马公市| 滨州市| 子洲县| 克东县| 定结县| 屏东市| 法库县| 安远县| 惠来县| 榆中县| 缙云县| 天门市| 确山县| 团风县| 莱西市| 准格尔旗| 桓仁| 隆安县| 怀远县| 绥德县| 施秉县|