OpenZL 圧縮システムは、構造化データの速度と圧縮レベルの点で Zstd や XZ よりも優れています。

Meta*は、Zstd形式やXZ形式よりも高い圧縮率と速度を実現するデータ圧縮・解凍ツールキット「OpenZL」を発表しました。OpenZLは、機械学習で使用されるような構造化データセットや、様々な繰り返し情報を持つフィールドを含むデータストアを効率的に圧縮するために設計されています。OpenZLはC/C++で記述されており、BSDライセンスの下でオープンソース化されています。

SAO天文星カタログを含むデータベースを圧縮したところ、OpenZLはデータサイズを2.06分の1に削減しました。一方、zstdアルゴリズムは1.31分の1、XZアルゴリズムは1.64分の1に圧縮しました。さらに、OpenZLの圧縮速度はzstdの2倍(203 MB/秒、115 MB/秒)、XZの65倍(203 MB/秒、3.1 MB/秒)も上回りました。OpenZLの解凍速度はzstdよりわ​​ずかに遅く(822 MB/秒、890 MB/秒)、XZの27倍高速でした。

OpenZL 圧縮システムは、構造化データの速度と圧縮レベルの点で Zstd や XZ よりも優れています。

OpenZLは汎用アルゴリズムではなく、構造が既知のデータに対してのみ良好な結果を示します。OpenZLの動作は、提供されたデータ記述に基づいて適応的にパッカーを生成することで構成されます。これにより、特定のデータ形式に最適化された圧縮コードが生成されます。解凍には、生成されたすべてのパッカーと互換性のあるユニバーサルアンパッカーが使用されます。

パックとアンパックは、単一のユーティリティ「zli」またはlibopenzlライブラリを使用して実行されます。データ構造はプロファイルの形式で記述されます。これには、一般的なストレージ形式を記述した定義済みプロファイルのセットが含まれます。例えば、CSV形式や64ビット配列として保存されたデータ用のプロファイルなどです。圧縮は、「zli list-profiles」コマンドでプロファイルを選択し、「zli compress --profile profile_name」コマンドで圧縮プロセスを開始するだけです。アンパックするには、「zli decompress」を実行するだけです。

特定のフォーマットについては、「zli train」コマンドを使用してカスタムプロファイルを作成する必要があります。このコマンドはデータ内のパターンを識別し、最適な圧縮レベルを持つプロファイルを生成します。「--pareto-frontier」オプションを使用すると、作成されたプロファイルを最適化して、圧縮率を犠牲にして圧縮または解凍を高速化できます。シンプルデータ記述言語(SDDL)は、ネストされた構造を持つ複雑なフォーマットを記述し、構造内のデータフォーマットのレイアウトを定義するために使用できます。

最適なパッカーを作成する方法は、一連のプリミティブエンコーダに基づいています。各エンコーダは、特定のデータタイプとシーケンスに対して最も効果的です。圧縮のために、コーデックをノード、処理対象フォーマット内のデータバリアントをエッジとする、有向非巡回データ処理グラフが形成されます。入力データタイプに応じて、入力データ要素を最適に圧縮するコーデックのチェーンが選択されます。この構成では、ファイルヘッダーは1つのコーデック、整数データフィールドは2つ目のコーデック、増分カウンタフィールドは3つ目のコーデック、文字列データフィールドは4つ目のコーデックを使用して圧縮されます。

OpenZL 圧縮システムは、構造化データの速度と圧縮レベルの点で Zstd や XZ よりも優れています。


出所: オープンネット.ru
DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster