JPEGファイルの色のずれ

JPEGファイル(jpgファイル)を作成すると、ノイズが発生するだけでなく、その色の領域全体において、わずかですが、色のずれが発生することがあります。どのようにずれるかを実験してみました。実験では、Adobe Photoshop CS5 Windows版で、以下のような8色(赤、緑、青、シアン、マゼンタ、黄、白、黒)が使われた画像ファイルを保存しました。JPEGファイルにおいては6種類、Photoshop CS5 Windows版の高画質、中画質、低画質とsRGBかどうかで保存しました。参考に、PNGファイルでも、sRGBかどうかの2種類で保存しました。

実験に用いた画像データ
実験に用いた画像データ

各ファイルの、赤、緑、青、シアン、マゼンタ、黄、白、黒のカラーコードを以下の表にまとめました。基本的な傾向として、

  • 最大でも3の小さな色のずれが、その色の領域全体に対して発生する。
  • 画質が低いほど色のずれが大きい。
  • sRGBかどうかと色のずれは関係がない。

という結果になりました。ただし、細かく見ると複雑な結果となっています。赤は、画質が低いほどずれが大きくなっていますが、緑は、中画質、高画質、低画質の順にずれが大きくなっています。重要で基準となりそうな色である黒でも、低画質でずれが出ている一方、白はどのファイルでもずれが発生していません。参考のために出力したPNGファイルは、全く色のずれがありません。

JPEGファイルというと、細部がつぶれたり、ノイズが入ることばかりに目が行きがちですが、領域全体の色がずれるというのはあまり気にされていのではないでしょうか。JPEGファイルを使って、色の見え方とカラーコードの両方を伝えようとする場合もあるかもしれませんが、別にカラーコードを伝えたり、PNGファイルを使用するのが良いでしょう。

保存した画像ファイルのカラーコード
形式 画質 sRGB シアン マゼンタ
オリジナル #ff0000 #00ff00 #0000ff #00ffff #ff00ff #ffff00 #ffffff #000000
JPEG 高画質 × #fe0000 #00ff01 #0000fe #01ffff #ff00fe #ffff01 #ffffff #000000
JPEG 中画質 × #fe0002 #01ff00 #0101ff #00fefe #ff01ff #ffff01 #ffffff #000000
JPEG 低画質 × #fe0002 #00ff02 #0000fd #00fffc #ff00ff #ffff00 #ffffff #010101
JPEG 高画質 #fe0000 #00ff01 #0000fe #01ffff #ff00fe #ffff01 #ffffff #000000
JPEG 中画質 #fe0002 #01ff00 #0101ff #00fefe #ff01ff #ffff01 #ffffff #000000
JPEG 低画質 #fe0002 #00ff02 #0000fd #00fffc #ff00ff #ffff00 #ffffff #010101
PNG × #ff0000 #00ff00 #0000ff #00ffff #ff00ff #ffff00 #ffffff #000000
PNG #ff0000 #00ff00 #0000ff #00ffff #ff00ff #ffff00 #ffffff #000000