JXL is coming to town. (JPEG XL)

「静画」の転換期はちょっと久方ぶりな気がするよね。

これはカエルです↓
your browser may show this JXL img
誰がなんと言おうとカエル。「Google Chrome で JPEG XL を表示できるようにする方法」で使われている画像だよ。

JPEG2000 の動きだけが最近の「静画」の大きな動きだったんだけれど、これはなんというか結構あっちゅうまに広まって、個別に苦労した記憶がまったくない。というか実際に広く使われてるかどうかは知らんが、ライブラリがすぐさま作られて、すぐさま「標準になった」、という印象。気付いたら当たり前になってた感じ。(「最近の」つぅても「10年」というスパンの話だよ念のため。)

対してこの JPEG XL。2019年からか。なので当然「これから」なわけだけれど、御覧の通りもう Chrome が対応済なのね。ライブラリとしては libjxl。なんかこれの説明が色々嘘言ってて困るんだけど、cmake と gflags (と c++ コンパイラ)だけが必須で、clang でなくてもいいし、libbrotli を「別途インストールしなくてもいい」。つまり「公式説明」よりも依存物は少なく済ませられるので、ビルドの手間はとても小さい。

「これから」なので、ブラウザ以外のビューワがほんと「これから」で、ワタシが常用使いしてたヤツは当然 JXL を知らない。いまさら IrfanView を入れてみたが、まぁワタシはこれにあまり愛着ないんだよね。普段使いにはやや牛刀気味でもあるし。

「これが最後の「JPEG」である」という心意気で設計されているフォーマット、とのことで、それに Chrome が既に対応してるところからみて、これもきっとあっという間に広まるんだろうと思っている。サイズも随分小さく出来るようであるし、ロスレス版もあるようであるし、えとあとね、まだちゃんとした理解は出来てないんだけれど、ちょっとベクターグラフィックス的な要素も入っているように見えた。この理解が正しいとするならなかなか凄まじい。というかそうなると「JPEG」という名前でいいのか、とさえ思う。

libjxl プロジェクトのテスト画像を自分で cjxl で変換かけてみたヤツ:

サイズはこんな感じ:

1 [me@host: ~]$ stat -c '%n %s' flower.png ; stat -c '%n %s' flower.jpg ; stat -c '%n %s' flower.jxl
2 flower.png 4330524
3 flower.jpg 262695
4 flower.jxl 447573

flower.png がオリジナル、flower.jpg はそれを ffmpeg で変換したもの(デフォルトなのでたぶん q=75)。ほんとは flower.png、flower.jpg も貼り付けた方がわかりやすいとは思うけれど、ワタシの WordPress 編集の都合で難しいのでやめとく。(画像の url をみればその意味はわかるかと。)