はじめに

高解像度画像をWeb上で快適に閲覧するためには、ピラミダル構造(複数解像度)とタイル分割が不可欠です。本記事では、vipsを使用してJPEG2000画像からピラミダルタイルTIFFを作成し、各圧縮方式のファイルサイズを比較検証しました。

検証環境

vipsコマンド

JPEG圧縮(非可逆)

#v#v#viiipppsss1720t5t5t0iiiffffffsssaaavvveeeiiinnnpppuuuttt...jjjppp222ooouuutttpppuuuttt___qqq1720550...tttiiifff---tttiiillleee---pppyyyrrraaammmiiiddd---cccooommmppprrreeessssssiiiooonnn===jjjpppeeeggg---QQQ===7215500

ロスレス圧縮

#v#v#viiiDpLppesZssfWltttaii4itffGfeffBfsssaaavvvzeeeliiiBibnninppgpuuTuttIt..F.jjFjppp222ooouuutttpppuuuttt___dlnezofwnl.eat.titefi.fti-ft-itli-elteil-ep-ypry-arpmayimrdiadmi-dc-ocmo-pmcrpoermsepssriseoisnos=nil=oznnwo=ndeefl-abtiegtiff

検証結果

ファイル圧縮方式サイズ元ファイル比備考
元ファイルJPEG2000274MB-入力
q25.tifJPEG Q=2557MB0.21x非可逆・高圧縮
q75.tifJPEG Q=75167MB0.61x非可逆・バランス
q100.tifJPEG Q=1002.4GB8.8x非可逆・高品質
deflate.tifDeflate2.8GB10.2xロスレス
lzw.tifLZW3.2GB11.7xロスレス
none.tif無圧縮4.3GB15.7xロスレス

画質比較

JPEG圧縮の品質による違いを視覚的に比較しました(左から Q=25, Q=75, Q=100)。

JPEG品質比較(左: Q=25, 中央: Q=75, 右: Q=100)

Q=25では文字の輪郭にノイズが見られますが、Q=75以上ではほぼ劣化を感じません。

考察

JPEG圧縮

  • Q=25 : 元ファイルの約1/5。文字の輪郭などにJPEG特有のノイズが見られる。プレビュー用途向け
  • Q=75 : 元ファイルの約6割。品質とサイズのバランスが良く、多くの用途で推奨(vipsのデフォルト値)
  • Q=100 : ロスレスに近いが、ファイルサイズはロスレス圧縮より小さい

ロスレス圧縮

  • Deflate : ロスレス圧縮の中で最も効率的(2.8GB)
  • LZW : Deflateより約14%大きい(3.2GB)
  • 無圧縮 : 4GB超のためBigTIFF形式が必要

JPEG2000との比較

元のJPEG2000ファイル(274MB)は非常に効率的な圧縮を実現しています。JPEG2000はウェーブレット変換を使用しており、TIFFのJPEG圧縮(DCT変換)とは異なるアルゴリズムです。

ただし、JPEG2000はブラウザでの直接表示に対応しておらず、IIIFサーバー経由でのタイル配信が必要です。ピラミダルTIFFは多くのIIIFサーバー(Cantaloupe等)でそのまま利用可能です。

用途別推奨設定

用途推奨設定理由
アーカイブ保存Deflateロスレスで最小サイズ
Web配信(高品質)JPEG Q=75〜85品質とサイズのバランス
Web配信(速度重視)JPEG Q=50〜60高速転送
印刷用途JPEG Q=90〜100高品質維持

まとめ

vipsを使用することで、高解像度画像から効率的にピラミダルタイルTIFFを作成できます。圧縮方式の選択は用途に応じて行い、一般的なWeb配信にはJPEG Q=75が推奨されます。

参考