QOI画像圧縮フォーマット導入

新しい軽量でロスレスの画像圧縮形式である QOI (Quite OK Image) が導入されました。これにより、RGB および RGBA 色空間で画像を非常に迅速に圧縮できます。 PNG 形式とパフォーマンスを比較すると、SIMD 命令とアセンブリ最適化を使用しない C 言語での QOI 形式のシングルスレッド リファレンス実装は、libpng および stb_image ライブラリよりもエンコード速度が 20 ~ 50 倍高速です。デコード速度が3倍速くなります。 圧縮効率の点では、ほとんどのテストで QOI は libpng に近づきます (一部のテストではわずかに優れており、他のテストでは劣っています) が、一般的には stb_image よりも著しく優れています (最大 4% のゲイン)。

C での QOI のリファレンス実装は、わずか 300 行のコードです。 ソース コードは MIT ライセンスに基づいて配布されます。 さらに、愛好家は Go、Zig、Rust 言語でのエンコーダーとデコーダーの実装を準備しました。 このプロジェクトは、MPEG1 ビデオをデコードするためのライブラリ作成の経験を持つゲーム開発者である Dominic Szablewski によって開発されています。 QOI 形式を使用することで、著者は、複雑すぎる最新の画像エンコード形式に代わる効果的かつシンプルな代替手段を作成できることを示したかったのです。

QOI パフォーマンスは、解像度やエンコードされたイメージ (O(n)) の性質には依存しません。 エンコードとデコードは 4 つのパスで実行されます。各ピクセルは 64 回だけ処理され、前のピクセルの値に応じて選択される 6 つの方法のいずれかでエンコードできます。 次のピクセルが前のピクセルと一致する場合、繰り返しカウンターは増加するだけです。 ピクセルが過去 2,4 個のピクセル バッファー内の値の 5 つと一致する場合、その値は過去のピクセルへの XNUMX ビット オフセットに置き換えられます。 前のピクセルの色がわずかに異なる場合、その違いは短い形式 (XNUMX、XNUMX、および XNUMX ビットに収まる色成分の差の短いエンコード) で示されます。 最適化が適用できない場合は、完全な rgba 値が提供されます。

出所: オープンネット.ru

コメントを追加します