6 | Gamma Spaceの起源

## 前書き
本節に触れる後処理効果は色の調整に関連しています。特定の後処理効果を勉強する前に、色の最終出力表示に関連する基本的な知識を理解する必要があります。それでは、Gamma Correctionの起源、プロジェクト開発におけるColor Spaceの特定のアプリケーション、UnityおよびUnrealエンジンの知識など、Gamma SpaceとLinear Spaceについて学習します。

 

知識学習に入る前に、概念を明確にする必要があります。今までGamma Spaceに関する議論は、限られた階調予算に基づいています。具体的な内容については、後ほど詳しく説明します。

 

## CRTディスプレイ理論
それほど遠くない過去には、当時の主流のディスプレイはCRT（Cathode-ray tube）ディスプレイでした。そのフルネームは、よく見られる大きくて重たい物のブラウン管（陰極線管）ディスプレイです。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/3aba1760-9455-a019-27f5-a6d33b570998.png)



CRTディスプレイの場合：電圧を2倍にすると、明るさは2倍になりません。出力の輝度と電圧は線形ではなく、輝度の増加は電圧の増加の2.2乗にほぼ等しいため、2.2はCRTディスプレイのガンマ値と呼ばれ、CRTディスプレイの色はGamma2.2スペースにあります。


![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/1f6eb967-d226-27e8-db70-c361ec0bc6a9.png)

明るさと電圧の関係

 

電圧が直線的に変化する場合、現実の世界と比較して、CRTディスプレイの明るさは暗い領域でゆっくりと変化するため、暗いデータの範囲が広くなり、全体的な画像の色が暗くなります。

![image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/5a32e33d-9774-d4ff-41b9-38e220aaf8e3.png)

そして、私たちの目標は、現実世界と同様の明るさを見ることができることです。CRTディスプレイはGamma 2.2空間にあるため、ディスプレイに入力する画像の明るさは、Gamma 2.2の影響を平均化除去する必要があります。この操作はガンマ補正（Gamma Correction）と呼ばれ、実際には0.45乗の操作にほぼ等しいため、色はガンマ0.45空間にあります。


![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/4158bffd-ce24-0900-a96a-ddf061a872b1.png)

Gamma Correction

 
これにより、実空間の色に似た色に復元できます。
![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/f7ee931b-3450-de2f-9260-b87690d978f7.png)


 

## 人間の目の階調知覚の理論
一方、現実の世界では、光の強度が0から1に増加すると、明るさはそれに比例して増加します。しかし、人間の目に知覚される明るさが直線的ではありません。この点は、ウェーバー-フェクナーの法則で示されています。外部刺激に対する人々の知覚は直線的ではなく、感覚量の増加は物理量より遅れ、物理量は等比数列で増加し、心理量は等差数列で増加します。つまり、人間の目で知覚される明るさが1レベル増加すると、光の強度は実際には数倍に増加します。

![image6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/864c4dfd-0e79-6253-2e77-56860cd7d715.png)


この現象に簡単な数学的シミュレーションをすると、人間の心理における明るさの知覚は、Gamma 0.45空間曲線に似ています。

![image7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/6160d318-28b0-c3b1-35b0-1ad3f21d7e3b.png)


人間は闇の知覚に対してより敏感であることがわかります。たとえば、同じ部屋で、暗闇の中でライトを点灯することと、100個のライトをオンにした後で別のライトをオンにすることとは、まったく異なる明るさの変化を人々に感じさせることができます。現実の世界では、光の強度の増加量は同じですが…

今日の主流の画像はチャネルあたり8ビットであるため、各チャネルには256の階調があり、階調数は比較的少なくなります。人間は闇の知覚に対してより敏感であるため、より暗い明るさを保存するためにより多くの階調が必要です。図の対応関係から、実空間での光の強度は0.2と仮定し、人間の目は0.5の明るさとして感じ、このデータを128番目の階調（中間の階調）とします。人間の目で知覚される明るさについては、階調数を均等に分割しますが、実空間では、0〜0.2の光強度間隔で割り当てられる階調数が多くなります。

 

このように階調が割り当てられます。実空間での強度が0.2の明るさは、人間の目が0.5の明るさとして認識し、人間の目が認識した明るさをデータとして記録します。人間の目で0.5と認識した明るさをディスプレイに送信して表示します。CRTディスプレイの場合、0.5の電圧はGamma 2.2で調整されます。Gamma 2.2は、人間の視覚のニーズを満たす0.2の明るさを示しています。これは、Gamma色空間の生成に関する主流の見解でもあります。すばらしい偶然の一致であり、CRTディスプレイのエラーは人間の目の知覚と一致します。実際、人間の目の明るさの知覚曲線の変換は、Gamma0.45空間曲線ほど単純ではなく、より複雑である可能性があります。この偶然の一致により、人間目の明るさの知覚曲線をシミュレートするために比較的単純で実行可能な方法が抽出された可能性があります。

 

したがって、現在の表示電圧と明るさが基本的に線形であっても、このルールに従い、表示Gamma値を設定すると、より多くの暗い領域の明るさが表示できるようになり、人間の目に知覚された暗い領域の階調数は、明るい領域の階調数に等しくなります。

 

ただし、技術の進歩により、いつか各チャンネルが32ビットになり、各チャンネルで4294967296の階調が可能になります。階調数が非常に多いため、表示できる明るさは十分なので、Gammaが必要なくなります。保存された結果は対応する明るさとして直接表示できます。これは、この記事の冒頭で述べた前提です。階調の予算は限られており、明るさの範囲を確保するために適切な割り当てが必要です。

 

## sRGB
CRTディスプレイと一致させ、変換せずにチャネルあたり8ビットのディスプレイに画像を表示できるようにするために、HPとMicrosoftは1996年にStandard Red Blue Green色空間（sRGB色空間）を設計しました。今のほとんどの画像ファイルはこの色空間にあります。

sRGB色空間は、Gamma0.45が配置されている空間に対応します。これは、物理空間の色に対してガンマ補正を実行するのと同じです。物理世界の色は、Gamma 0.45が配置されている空間に保存されます。ディスプレイGamma2.2で調整した後、実際のデバイスに表示される結果は、実空間の色と一致します。

 

## まとめ
このセクションでは、Gamma Spaceの起源に関する2つの主流の見解を紹介し、対応する計算方法とその背後にある実際的な重要性を理解しました。次のセクションでは、それが私たちの仕事にどのように影響するか、そしてそれを適切に適用する方法について話します。

---
UWA Technologyは、モバイル/VRなど様々なゲーム開発者向け、**パフォーマンス分析**と**最適化ソリューション**及び**コンサルティングサービス**を提供している会社でございます。

今なら、UWA GOTローカルツールが**15日間に無償試用**できます！！
よければ、ぜひ！

UWA公式サイト：https://jp.uwa4d.com
UWA GOT OnlineレポートDemo：https://jp.uwa4d.com/u/got/demo.html
UWA公式ブログ：https://blog.jp.uwa4d.com