Oodle Data Compression and IO

Oodle Data Compression

ウードル・データ圧縮

ウードルは、カスタムのデータ圧縮ツールを数種提供しています。ユーザーのデータ読み込みのパイプラインにフィットするものを選択できます。ウードルの圧縮ツールは、解凍は非常に高速、読み込み時のメモリ消費は最小でありながら、圧縮率は最大になるように設計されています。

データ圧縮ツールの正しい選択のカギは バランス です。データを小さく持ちたいとき、高圧縮率が欲しくなりますが、高圧縮のアルゴリズムは処理が遅すぎます。高速な解凍が欲しいときは、得てして圧縮率が低くなります。ウードルの圧縮ツールは、正にスイートスポットに当たっています - LZMA 並みの圧縮率でありながら ZLIB よりさらに高速なのです。

圧縮ツールを評価する 1 つのやり方は、圧縮データをディスクから読み込んで解凍完了するまでのトータルタイムを実測します。これで圧縮率が判断できます。というのはデータが小さくなっていれば、それだけ速く読み込めるからです。ディスク速度のシミュレーションを変化させると、その圧縮ツールの問題解決能力を把握できます。ウードルの圧縮ツールは、2 mbps 〜 1000 mbps という幅広いレンジのディスク速度シミュレーションで最速の読み込みタイムを打ち出しています。

ゲームのために生まれました

ウードルの圧縮ツールは、特にゲームデータに使われるとき上手く働くように元々設計されています。ユーザー提供のゲームデータで日々テストを重ね、常に良結果を出してきました。大きなテキストデータベースや HTML といった、ゲームには滅多に使われないデータでテストされた他種の圧縮ツールとは異なり、ウードルは、3D ジオメトリ、アニメーション、マップデータといったゲームには必須のデータ圧縮で特に強味を発揮します。

ユーザー選択の圧縮方式

ウードルは、圧縮ツールを各種用意しています。ユーザーが、自分のゲームに最適なものを選べます。OodleLZNIB は、驚異的な解凍速度を誇ります( ZLIB 比 5x 〜 10x の速度)が、エンコードはさほど高速ではありません。オフラインで圧縮したものを配布する場合に最適でしょう。 OodleLZH は、小さなスライディングウィンドウ アルゴリズムを採用しているので、SPU で、または L2 キャッシュにロックして、他のコアに影響を与えないように使うのに適しています。OodleLZHLW は、圧縮後サイズが問題になるとき、各コンプレッサーの中で最も高い圧縮率を得られます。それでも LZMA 比で ほぼ 10x 高速で解凍可能です。ウードルが提供する圧縮ツールの中から、ユーザー要求を満たすものが必ず見つかります。

ゲームプラットフォームに高度に最適化された解凍ツール

ウードルで圧縮したデータは、どのプラットフォームにも共通です。いちいちデータを変更する必要はありません。その一方、解凍ツールは、SSE、VMX、SPU を利用するように設計されておりプラットフォームを最大限使い切ります。標準型圧縮ツールとは違って、ウードルの圧縮アルゴリズムは、現行ゲームプラットフォームのいろいろなクセに合わせて上手く動作するよう最初から設計されているのです。

圧縮も解凍も並列処理

たった 1 つの関数コールでウードルは圧縮と解凍をマルチスレッドでこなします!または、ユーザーのスレッド使用方法に従った並列処理も行えます。ウードルのどの圧縮ツールもマルチコアで動作し、圧縮・解凍共にほぼリニアにスピードアップします。並列処理のチャンク粒度はユーザー指定できますので、分岐因子はユーザーの決定事項になります。これまで書いてきた処理速度は、あくまでもシリアルにシングルコアだけ使った場合の数値です - つまり複数コアを使ってもらえば、ウードルは数倍高速に処理を行えます!

ネットワークトラフィックの圧縮

新生ウードル(バージョン119以降): ウードルネットワーク圧縮 は、サーバーの使うバンド幅を減少させ、コスト削減とサーバー当たりの接続プレイヤー数の増加につなげます。

ウードルは、ゲームデータを適切にクロスプラットフォームで読み込むためにそのまま直ぐ使えるツールセットを提供しています。面倒なことはウードルに任せてください!SDKの無償評価ご希望は、こちらまでメールをお送りください!