- コンテンツ配信と組み込みシステムにおける読み取り性能のボトルネックを解消するために設計
- 一度圧縮して何度も展開する(Read-Many) 構造に合わせ、エンコーダが複雑性を担い、デコーダは最大スループットを確保
- LZ4比でデコード速度が40%以上向上(Apple Silicon)、20%以上向上(クラウド向けARMチップのGoogle Axion)、x86_64でも5%以上向上
- lzbenchマスターブランチに正式統合され、標準ベンチマークとして独立検証が可能に
- 既存コーデックの**対称速度(LZ4)と圧縮効率(Zstd)**の間にあるトレードオフを解消する、**非対称効率性(Asymmetric Efficiency)**を中心とした設計
- エンコーダは命令パイプラインおよび分岐予測の最適化のため、CPUアーキテクチャ(特にARMv8)に合わせたビットストリームを生成
- デコーダは簡素化され、ランタイムスループットを最大化
- ベンチマーク:
- Apple M2では、ZXCはLZ4比で最大1.9倍高速なデコード、Zstd比で2.7倍高いスループット
- Google Axion(ARM Neoverse V2)でも1.6〜2.5倍高速な展開速度を維持
- x86_64(AMD EPYC)環境でも最大2.2倍高速なデコード性能を確保
- 5段階の圧縮レベルで構成
- Level 1–2(高速): ゲーム/UIなどのリアルタイムアセット向け、LZ4より約40%高速なロード
- Level 3–4(バランス): 速度と圧縮率のバランス
- Level 5(コンパクト): ファームウェア・組み込み向け、Zstdより高速でLZ4より高い圧縮率
- APIおよびCLIをサポート
- CLI: アセットの手動圧縮・ベンチマーク用コマンドを提供 (
zxc -z, zxc -d, zxc -b)
- API: 完全な**スレッドセーフ(stateless)**構造で、バインディングしやすいAPIを提供
- ストリーミングAPI: 大容量ファイルの並列処理をサポートし、自動スレッド検出およびチェックサム検証を含む
- Sans-IO構造で設計されており、言語ごとのI/Oドライバを直接実装可能(
zxc_sans_io.hベース)
- 品質と安定性を保証
- 継続的ファジング(ClusterFuzzLite)
- 静的解析(CPPChecker、Clang)
- 動的検証(Valgrind、ASan/UBSan)
- すべての演算で明示的なバッファ容量指定を要求する安全なAPI構造
- BSD 3-Clause License
まだコメントはありません。