Commons:可逆的、非可逆的圧縮
Commonsが認めるファイル形式のうち、たとえばJPEG画像形式、音声ファイルのOgg コンテナフォーマットに格納されるVorbisやOggコンテナフォーマットと共に使えるSpeex、動画ファイルのOgg Theora動画コーデックに加えスキャンされた文書の圧縮に特化したDjVu画像圧縮方式はいずれもデータが非可逆圧縮されます。非可逆圧縮の目標とは、メディアの知覚される品質を大幅に損なうことなくファイルサイズを小さくすることにあります。
しかしながらコモンズは単なるメディアのリポジトリではなく、メディアウィキであり、利用者が画像を更新したり、更新版の新しい画像をアップロードするよう期待されます。この意味ではgeneration lossが重要な課題になります。さらに画像のエンコード処理には、Mediawikiサムネールエンジン固有の機能性を考慮に入れる必要があります。このページでは、コモンズで画像のエンコードに用いる非可逆圧縮・可逆圧縮の扱いに関わる課題と扱い方を取り上げます。
非可逆圧縮の扱い方
JPEG形式などは非可逆圧縮を採用し、画質とファイルサイズの優先順位を意識的に選んでいます。JPEG形式でファイルを保存するたび、画質はわずかずつ損なわれます。JPEGファイルを開き編集して保存するという一連の操作は、画像の劣化を引き起こす可能性があります(これを「世代間損失」と呼びます)。そのため通常、JPEGファイルは最終版の画像にのみ使用し、編集時にはTIFFなど可逆形式を使用します。ただし場合によってはこれが不可能であったり、適切なツールを使いさえすれば、特定の編集方法では品質をほとんど、またはまったく損なうことなくJPEGファイルを編集できます。
忘れてならないのは、画像に加わる(ご自身またはその後の他の人による)編集回数は決してわからないことです。それでも、JPEGファイルは避けるべきだとは思わないでください。非可逆圧縮にはデメリットがあるものの、ファイルサイズに関しては人物や風景の写真を扱いやすくするために必要です。
解像度の高い画像を使用
一般的に、コモンズはできるだけ解像度が高い画像をアップロードするよう、利用者にお勧めしています。これは多くの理由で重要であり、非可逆圧縮への対処が簡単になる点は見落とされがちです。非可逆編集ツールはJPEG画像の8×8ピクセル単位のレベルで機能し、こういうブロックが画像の小さい部分を表す場合、これらのツールはより柔軟に対応します。さらに画像を圧縮して可逆的形式で保存するだけで、アーティファクトのないWeb標準の画像を簡単に作成できます。
可逆的圧縮ツールを使う
JPEG画像の編集を可逆圧縮するツールはいくつもあります。例えばjpegtran と JPEGCrop (旧 JPEGclub.orgより派生) であればJPEG画像を90度単位で回転させたりブロック境界 (8ピクセル単位で発生) で切り出したりしても可逆圧縮できます。これはJPEG画像を切り出す最適な方法で、画像サイズを縮小し残したピクセルの画質は落としません。
ほかにも画像の部分領域を編集して影響を与えたブロックに限定して再保存するツール (BetterJPEGなど) があり、画像の変更しなかった領域にはデータの生成ロスが発生しません。一般的に画像の狭い範囲にあるウォーターマークあるいは説明文の消去に使います。しかしながら、画像に大幅な改変を加える場合には、高画質で保存するほうがよく (次の節で解説) 、理由はこれらのツールを使うと改変した領域は本來のJPEG画像と同率で保存するからです。興味深いことに、BetterJPEG が備える「モノクロ変換」機能も可逆圧縮を採用、色彩情報を効率的に除去しながら、明暗データには生成ロスが発生しません。
高画質で保存する
もし可逆圧縮ツールを使わない場合は、生成ロスを防ぐ最善の策として画像を高画質で保存すること - 人によってできるだけ最高画質を選ぶべきだ、いや最高画質に「近い」圧縮率がよいといってPhotoshopなら11、GIMPなら95をお勧めしています。それでも生成ロスは発生しますが、率が低いため耐えられます。画像のサイズは大幅に重くなるものの、利用者はオリジナル画像のダウンロードを規模するため、問題はありません。ほとんどの利用者が見ているのは結局はMediawikiが生成するサムネールであり、画質設定は固定されているためサイズの差は顕著ではありません。
可逆フォーマットに変換する
非可逆圧縮形式をPNGなど可逆圧縮形式に変換すると将来の世代損失がなくなる代わり、ファイル名の変更を求められ、ファイルの既存の用途をすべて置き換える必要があります。さらにMediawikiのサムネールレンダラーによるPNGのサムネール作成には問題があります。JPG画像のサムネールではシャープ化を実行するのに、PNG画像のサムネールではシャープにせず、ぼやけて見えます。また生成するのはJPEGサムネールではなくPNGサムネールで、写真のようにメディアによってはファイルサイズが非常に大きくなる場合があります。これらの理由により、単に最高画質で再保存するほうが望ましいです。可逆圧縮形式に変換する場合はサムネールレンダラー対策として、データを可逆圧縮と非可逆圧縮の2形式で保持して互いにリンクすると処理できます - タグ{{JPEGバージョン付きPNG}}と{{PNGのJPEGバージョン}}を使うと処理が容易になります。