注:現在、ここでは開発は行われていません。このプロジェクトの一部は JPEG XL で使用されており、現在開発中です。
PIK は、写真やインターネット用の総合的な画像形式です。
PIK は、写真や Web 画像の効率的な保存と配信という同様の目的を持った JPEG の最新版です。高品質で高速なデコードを実現するためにゼロから設計されています。
高品質 (知覚的にロスレス) を可能にする機能:
PIK は、完全かつ知覚的にロスレス エンコーディングに加えて、幅広いビットレート (0.5 ~ 3 bpp) にわたって品質、サイズ、速度のバランスが取れています。 PIK は、画像全体にわたって目標品質が維持されることを保証するため、自動化された教師なし圧縮を可能にします。細部の幻覚や入力の「強化」(シャープ化/飽和など)によって達成できる美学よりも、本物性、つまりオリジナルの忠実な表現を優先します。
高速デコードを可能にする機能 (マルチスレッドで 1 GB/秒以上):
その他の機能:
PIK のレスポンシブ モード エンコーダは、解像度を 4 倍または 8 倍下げるのと同等のパスをサポートします。この形式は、8 倍のダウンサンプリングと同等からフル解像度まで、あらゆるレベルの詳細を備えた、より柔軟なパスをサポートします。パス内の詳細の量は均一である必要はありません。画像の領域をより詳細に送信することができます。エンコードされたイメージ サイズに対するレスポンシブ モードの影響は低く、3 パスレスポンシブ イメージ (8x、4x、フル解像度) の場合は平均して約 2% です。このような構成では、最初の 2 つのパスはそれぞれ画像サイズの平均 20% を占めます。
現在、ソフトウェアには AVX2 および FMA 対応 CPU (Haswell など) が必要です。現在、ビルドには Clang 6 以降が必要です。
ビルドするには、次の手順を使用できます。
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
これにより、 cpik
およびdpik
バイナリがbuild/
に作成されます。
基本的な使い方は以下の通りです。
cpik [--distance ] input.png output.pik
cpik へのオプションの--distance
コマンド ライン引数は Butteraugli 距離 (http://github.com/google/butteraugli を参照) で、許容可能な最大誤差を示します。値を大きくすると、ファイルが小さくなり、品質が低下します。デフォルト値の 1.0 では、知覚的に損失のない結果が得られます。
ビットストリームはまだ開発中であり、まだ凍結されていないことに注意してください。