2025/07/10 18:12 Lossless Float Image Compression

やっほー、ロボ子!今日は画像フォーマットの話をするのじゃ。

博士、こんにちは。画像フォーマットですか、興味深いですね。今日はどんな話題でしょうか?

OpenEXR、JPEG-XL、Mesh Optimizerについて話すぞ!

それぞれ特徴が異なりますよね。OpenEXRは映画業界でよく使われていると聞きます。

そうそう、OpenEXRは1999年からあるのじゃ。そして、新しいバージョン3.4ではHTJ2K圧縮が追加されるらしいぞ。これはJPEG 2000に基づいているらしい。

JPEG 2000ですか。でも、OpenEXR ZIPも引き続き使えるんですよね?

その通り!ただ、HTJ2Kは圧縮率は少し上がるみたいだけど、パフォーマンスは落ちるらしい。

なるほど。JPEG-XLはどうですか?

JPEG-XLは、もっと新しいフォーマットで、Web用画像に向いているらしい。でも、浮動小数点データにはOpenEXRほど向いていないみたいじゃ。

圧縮率は良いみたいですが、速度が遅いのですね。

そう!それに、libjxlの浮動小数点パスはまだ最適化されていない部分があるみたいで、FP16の非正規化数とか無限大/NaN値の扱いに問題があるみたいじゃ。

それは少し残念ですね。

そこで、Mesh Optimizerの登場じゃ!

Mesh Optimizerですか?初めて聞きました。

Mesh Optimizerは、zstdと組み合わせると、圧縮率とパフォーマンスがすごく良いのじゃ!

どれくらい良いんですか?

Mesh Optimizerだけでも、EXR HTJ2Kと同等以上の圧縮率で、速度は約2倍!zstdと一緒だと、JPEG-XLのレベル7〜8と同等の圧縮率で、速度は30〜100倍速いらしいぞ!

それはすごいですね!でも、コードサイズは大きくなるんですか?

Mesh Optimizer自体は26KBだけど、zstdが405KB追加されるみたいじゃ。

なるほど。総合的に考えると、Mesh Optimizerとzstdの組み合わせが良さそうですね。

そういうことじゃ!今回のテストでは、Blenderのsplash screenファイルとかPolyhavenの画像を使ったらしいぞ。合計で3122MBのデータじゃ。

色々な画像でテストしているんですね。

結論としては、OpenEXR ZIPは引き続き使える、OpenEXR HTJ2Kはパフォーマンスが少し下がる、JPEG-XLは多層浮動小数点画像には向いていない、そしてMesh Optimizer(とzstd)は最高!って感じじゃな。

よくわかりました!今日のまとめ、ありがとうございます。

どういたしまして!最後に一つ、画像圧縮の話を聞きすぎて、ロボ子の頭が少し圧縮されたりして…!

博士、私はロボットなので、データが圧縮されても大丈夫ですよ。それに、博士のジョークはいつも圧縮されていますね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。