BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Apple、新しい圧縮アルゴリズムLZFSEをオープンソース化

Apple、新しい圧縮アルゴリズムLZFSEをオープンソース化

原文(投稿日:2016/07/02)へのリンク

Appleが新しいロスレス圧縮アルゴリズムLZFSEをオープンソース化した。これは昨年、iOS 9とOS X 10.10とともに紹介されたものだ。Appleによると、LZFSEはZLib level 5と同程度の圧縮率ながら2–3倍高速で、より高いエネルギー効率をもたらすという。

LZFSEはLempel-Ziv法をベースに、Finite State Entropy codingを用いている。この符号はJarek Duda氏によるエントロピー符号のためのANS (Asymmetric Numeral Systems)に関する研究に基づいている。簡単に言うと、ANS「スピードと圧縮率のトレードオフに決着をつける」ことを目指しており、データ暗号化をサポートをした、きめ細かな符号と非常に高速なエンコードの両方に使うことができる。LZFSEは、伝統的なハフマン符号算術符号の部分にANSを用いた多数の圧縮ライブラリのひとつだ。

自ら認めているように、LZFSEは最高あるいは最速のアルゴリズムを目指すものではない。実際、Appleは、LZ4はLZFSEよりも高速である、LZMAはApple SDKで利用可能な他の選択肢よりも1桁以上遅いが高い圧縮率が得られる、と述べている。圧縮率とスピードが同じくらい重要で、エネルギー消費を減らしたいとき、AppleはLZFSEを推奨している。

LZFSEのリファレンス実装がGitHubに公開されている。macOSでビルドするのは簡単で、以下を実行すればよい。

$ xcodebuild install DSTROOT=/tmp/lzfse.dst

もし最近のiOSデバイス向けにビルドしたければ、次のように実行すればよい。

$ xcodebuild -configuration "Release" -arch armv7 install DSTROOT=/tmp/lzfse.dst

LZFSEを使い始めるには、APIドキュメントに加えて、Appleが昨年公開したサンプルプロジェクトが役に立つ。これはLZFSEを使ってブロックおよびストリームを圧縮する方法を示している。

LZFSEはGoogleが昨年オープンソース化したbrotliに続くものだ。LZFSEと比べて、brotliは静的WebアセットやAndroid APKの圧縮といった、圧縮率が最優先となる各種ユースケース向けに調整されているようだ

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT