BT

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

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2016年7月6日. 推定読書時間: 2 分 |

原文(投稿日: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
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT