JPEGエンコードではガンマを考慮する必要がありますか?


11

画像がJPEGを使用してエンコードされる場合、RGBピクセルは最初にYUVにエンコードされ、次にUVチャンネルがダウンサンプリングされます。実際にDCTを実行して係数をエンコードする前に、JPEG Yチャネルをガンマ補正しません。これは正しいです?表示結果に最も影響を与えるDCT係数を決定すべきではないでしょうか?


わかりませんが、ガンマ補正を行わないのは当然のことです。
joojaa

自信がないので、回答として投稿しませんが、人間の視覚による明るさの認識は直線的ではありません。実際、sRGBはそれを補正し、重要な領域で最高の精度を提供するという非常に優れた機能を果たします。したがって、輝度を圧縮する前にガンマ補正を行うと、実際にはより悪い結果が得られる場合があります。
yuriks

私の知る限り、ビデオ規格はR'G'B 'を前提としています。YCbCrとの間で3x3カラー変換を適用するときの非線形カラースペース ビットあたりの品質を最大化したいビデオのようなアプリケーションでは、線形を使用するのは意味がありません。Charles PoytonのColor FAQのセクション27と29はそれをより明確に表現していると思います:poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC27
Simon F

「ビデオの謎解き」はまた、次のように述べています。 R'G'B 'から派生。」
Simon F

ガンマ指数は、JPEG exifデータに格納されます。ほとんどのソフトウェアはそれを完全に無視します。ただし、JPEGをガンマ空間に既にデコードした後よりも、ディスプレイバッファにRGB値を送信する前に行う変換はないと想定できます。
v.oddou

回答:


2

ウィキペディアによると(標準の免責事項REの正確性を挿入):

JPEGでは、画像に使用するカラーエンコーディングを定義していません。JFIFは、使用するカラーモデルを定義します。グレースケールのY、またはCCIR 601で定義されているYCbCrのいずれかです。

YCbCrは非線形フォーマットです。先に述べたように、「Video Demystified」は次のように述べています。

「YCbCrは、もともとBT.601で定義された色空間であり、現在はすべてのデジタルコンポーネントビデオ形式で使用されています。 「」

チャールズ・ポイントンのカラーFAQに

ビデオシステムは、それぞれ0.45のべき関数の影響を受けるR'G'B '信号を使用して、視覚の明度応答を近似します。

圧縮では、ビットごとの最適な視覚表現を求めています。目はほぼこのように非線形であるため、非線形表現を使用することは理にかなっています。


これらの詳細から、私が理解しているように、JPEGは、入力RGB値が、ディスプレイがディスプレイにパワー関数を適用する方法でエンコードされることを期待しています。これらの特定のRGB値を再作成するには、エンコード前に修正しないでください。
Mokosha 2015

1
そのように述べることの問題は、それが少しあいまいであることです。「RGB」データが実際にR'G'B 'である場合(そしてsRGBがそのカテゴリに該当すると想定)、R'G'B'を適用する前に値を変更しないでください。 => YCbCrマトリックス。ただし、データがレンダラーで計算された場合(線形の可能性があるため)、ダウンスケーリングを使用して処理された場合(線形空間で行う必要があります)、またはCCDでキャプチャした場合(クリーンアップした場合)線形であると考える)、JPEG圧縮の前に再マッピングする必要があります。
Simon F

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.