ガンマ補正の必要性を完全に理解するには問題があります。皆さんが私を助けてくれることを願っています。
隣接する 256 個のピクセルを表示するとします。これらのピクセルは、黒から白への滑らかなグラデーションである必要があります。0..255.
人間の目の非線形性のため、モニターはこれらの値を単純に線形の輝度値に変換してはなりません。隣接するピクセルの輝度値(1/256)*I_max, (2/256)*I_max, et cetera
が .
幸いなことに、モニターは人間の目に対して相反する非線形性を持っています。つまり、線形グレー値0..255
をフレーム バッファーに入れると、モニターはそれらを非線形輝度値 x^gamma に変換します。ただし、私たちの目は逆に非線形であるため、滑らかな線形グラデーションを認識します。モニターの非線形性と私たちの目の非線形性は、互いに打ち消し合います。
では、なぜガンマ補正が必要なのでしょうか? モニターが常に線形の輝度値を生成することを望んでいるという本を読んだことがあります。それらによると、モニターの非線形性は、グレー値をフレームバッファーに書き込む前に補償する必要があります。これは、ガンマ補正によって行われます。ただし、ここでの問題は、私が理解している限り、モニターが線形の輝度値を生成するときに、線形の輝度値を認識しない (つまり、滑らかで安定した勾配を認識しない) ことです。
私が見る限り、線形グレー値をフレーム バッファに入れれば完璧です。モニターはこれらの値を非線形の輝度値に変換し、私たちの目は再び線形の明るさの値を認識します。これは、目が相互に非線形であるためです。フレーム バッファ内のグレー値をガンマ補正する必要はなく、モニタに強制的に線形の輝度値を生成させる必要もありません。
これらのことを見る私の方法の何が問題なのですか?ありがとう