ソフトウェア

Facebookが独自開発のアプリ圧縮技術「Superpack」を発表


FacebookがAndroid向けアプリの圧縮技術「Superpack」を開発したと発表しました。Facebookによれば、FacebookやInstagram、WhatsApp、MessengerなどのAndroidアプリで、AndroidのデフォルトのZIP圧縮と比較して平均20%以上のサイズダウンに成功したとのことです。

Superpack: Pushing the limits of compression - Facebook Engineering
https://engineering.fb.com/2021/09/13/core-data/superpack/


開発者は毎日大量のコードをチェックして、最終的にスマートフォンにダウンロードされるアプリに追加します。このコードをそのまま追加していくと、アプリのサイズはどんどん大きくなり、最終的にアプリのダウンロードにかかる時間が許容範囲を超えてしまいます。


アプリのサイズを最小限に抑えるためには、データを圧縮する必要があります。圧縮を行うことで、世界中の何十億ものユーザーがより小さいアプリをより速くダウンロードすることが可能となり、通信量もより少なくすることができます。こうした工夫は携帯電話の通信容量が制限されている地域では特に重要です。しかし、アプリのアップデートや機能追加に対応するには圧縮だけでは十分ではないため、Facebookは「Superpack」という技術を開発しました。

Superpackは、コンパイラ解析とデータ圧縮を組み合わせ、従来の圧縮ツールの能力を超えたサイズ最適化を可能にするものだとのこと。Facebookは「Superpackは、圧縮の限界を超え、既存の圧縮ツールよりも大幅に優れた圧縮率を実現します」と述べています。

実際にZIP(水色)・Xz(青色)・Superpack(オレンジ)で、各アプリを圧縮した後のサイズを比較した棒グラフが以下。


Facebookによれば、Superpackはマシンコードやバイトコード、その他の構造化データを圧縮できることが強みになるそうです。そのアプローチは「複雑さの尺度を計るコルモゴロフ複雑性のアルゴリズムに基づいて、データの情報内容をそのデータを生成できる最短プログラムの長さとして定義すること」だとのこと。Facebookは「要するに、データを生成するプログラムとして表現することでデータを圧縮することができます。例えば、フィボナッチ数を生成するプログラムは、複数のフィボナッチ数を含むファイルを高度に圧縮したものといえます」と解説しています。

Superpackは圧縮側がOCamlで、解凍側がCで設計されています。そのため、解凍に比べて圧縮はどうしても遅くなってしまうそうです。


また、Superpackは構造化されたデータ、コード、整数、文字列データが対象で、記事作成時点では画像やビデオ、音声ファイルは対象ではないとのこと。記事作成時点ではFacebook社内のエンジニアのみがSuperpackを使えますが、将来的には公開してすべての人に提供することを目指しており、iOSなど他のプラットフォームにも適用したり、オープンソース化することも目指しているとFacebookは述べました。

この記事のタイトルとURLをコピーする

・関連記事
コンピュータを進化させてきた偉大なるアルゴリズムまとめ - GIGAZINE

容量無制限がついに終了した「Googleフォト」に写真を保存すると画質はどの程度劣化するのか? - GIGAZINE

次世代動画コーデック「AV1」の圧縮技術を利用する次世代画像フォーマット「AVIF」 - GIGAZINE

次世代コーデックの本命「AV1」の技術仕様をXiph.Orgが解説 - GIGAZINE

H.264と同じ画質で半分のファイルサイズになる「H.265/HEVC」を体験する方法 - GIGAZINE

in モバイル,   ソフトウェア,   ネットサービス, Posted by log1i_yk

You can read the machine translated English article here.