ガンマ補正カーブの研究(1)

先月、ガンマ補正とベースカーブの関係について、ご質問をいただいたのですが、ご質問に気づくのが遅れたことと、どのレベルでまとめるべきか混乱して決めかねていました。ベースカーブは、基本的にはガンマ補正になると考えていますが、写真補正について、理論的にきっちりまとめた情報が少なく、あまりに、HOW TOが多くて、混乱しているので、今回は、筆者の理解ということになります。しかし、先を急ぐのではなく、せっかく、ご質問をいただいたので、今の時点でわかる範囲で、できるだけ、理論的に整理してみたいと思います。

ワークフローの整理

最初にワークフローの整理をしておきます。

darktableでは、シーン参照ワークフローと表示参照ワークフローが選べますが、ワークフローの違いはガンマ補正曲線の違いと色空間の違いがあります。

フィルミックRGBモジュールではガンマ補正曲線の形を調整できますが、調整の範囲はS字型の範囲で、ベースカーブのような逆Jにすることはできません。ですから、第3の組み合わせとしては、ベーズカーブモジュール+RGB色空間もありえます。表示参照モジュールの問題点は、ガンマ補正に逆J字型曲線をつかうことと、Lab色空間を使うことの2つがあることを確認しておきます。ダイナミックレンジが7EV以下の場合には、色空間の問題点は発生しません。

 

表1 ワークフローの整理

ワークフロー γ補正モジュール 色空間 最大EV制限
シーン参照ワークフロー フィルミックRGB RGB なし
表示参照ワークフロー ベースカーブ Lab 7EV
第3のワークフロー ベースカーブ RGB なし

CRTのガンマ補正

ガンマ補正は、CRT(ブラウン管)から始まった技術です。これは、CRTの発光特性の非線形性を打ち消す技術です。

基本的な文献はCharles Poyntonの「A Technical Introduction to Digital Video」または、彼のGammaFAQです。後者は、公開されているので、これに基づいて説明します。なお、GammaFAQには、著作権表示があるので、以下は関連する部分の要点だけの説明になります。詳しくは、GammaFAQをご覧ください。

1)ガンマ

CRTの前面で生成される光の強度は、電圧の2.5乗になります。このべき関数の指数の数値はガンマと呼ばれます。光の強度を正しく再現するためには非線形性の補正が必要です。

図1は、3つの異なるコントラスト設定での実際のCRTの発光強度関数のグラフです。

液晶のディスプレイの場合には、線形関数も可能ですが、互換性のために、CRTと同じようなの非線形の発光強度関数が採用されています。

 

f:id:computer_philosopher:20201006155122g:plain

図1 CRTの発光強度関数

 

2)ガンマ補正

ビデオシステムでは、カメラのセンサーでとらえられた線形の光の強度は、ガンマ補正によって非線形ビデオ信号に変換されます。

実際のカメラやスキャナーのセンサーノイズの影響を最小限に抑えるために黒に近い部分は線形セグメントを採用します。図2が信号範囲が0から1の場合のRec709ガンマ補正関数のグラフです。理想化されたモニターは、変換を反転します。

 

 

f:id:computer_philosopher:20201006155237g:plain

図2 ガンマ補正関数

 

3)視覚補正

人間の視覚は強度に対して不均一な知覚反応を示します。強度を少数のステップ、たとえば256にコード化する場合、利用可能なコードを最も効果的に知覚的に使用するには、知覚の特性に従ってコードを強度に割り当てる必要があります。

驚くべき偶然の一致により、強度に対する視覚の応答は、事実上、CRTの非線形性の逆(ガンマ補正)になります。

つまり、理想化されたモニターではなく、ガンマ補正関数を単純にガンマ関数の逆変換にせずに、すこし、ずらすことで、CRT上のグラデーションの表現力を増すことができます。

 

ガンマ処理のまとめ

ビデオのガンマ補正は、知覚的に均一な空間に効果的にコード化されます。ビデオでは、図3の一番上の行に示すように、0.45乗の関数がカメラに適用されます。

コンピュータグラフィックスは、光と物体の相互作用を計算します。相互作用はRGBなどの線形色空間の光の値で計算します。コンピュータグラフィックスでは、計算結果の線形色空間の光の値をフレームバッファに格納し、ルックアップテーブルにガンマ補正を導入してフレームバッファの出力を得ます。

線形色空間の光の値がわずか8ビットで表される場合にはボトルネックが生じます。

デスクトップコンピュータは、画像合成にもビデオにも最適化されていません。デスクトップコンピュータにはプログラム可能な「ガンマ」があり、標準は不十分です。そのため、デスクトップコンピュータの画像交換は困難になります。

 

 

f:id:computer_philosopher:20201006155348g:plain

図3 ガンマ処理のまとめ

 

デジタルカメラのガンマ補正

結局、ガンマ処理は、8ビットのボトルネックを除いても、次の4ステップからなります。

  1. センサーの線形信号

  2. ガンマ補正による非線形変換

  3. ガンマによる非線形変化

  4. 出力デバイスへの信号転送

このステップを使ってdarktableで現像する場合には、まず、次の手順で処理します。

4.の出力デバイスをきめます。例えば、windowとMacの場合には、ディスプレイのガンマ2.2が想定されています。なお、上記のGammaFAQ(1996)の時代には、Macのガンマは1.8でした。現在は、2.2で少しだけ、標準化が進んでいます。この段階で3.がきまります。

あとは、2.を与えることになります。この段階で、ガンマ補正に、フィルミックRGBを使うか、ベースカーブを使うかを決めます。なお、フィルムのガンマ曲線はコダックの資料では、逆S字になることが知られています。

以上の手順でできるJpegはあくまで、ディスプレイでよく見えるものになります。

デジタルカメラの現像の場合には、Jpegを作るときに、出力デバイスをパソコンの画面、カメラの液晶、紙の印刷のどれに合わせているのかよくわかりません。

 

 

出典

  • Charles Poynton :A Technical Introduction to Digital Video(1996) John Wiley & Sons

  • Charles Poynton GammaFAQ

 poynton.ca

 https://www.macodirect.de/media/pdf/ca/5b/4b/KEC1011_Datenblatt_e.pdf