異なる色空間の面積を比較する

ディスプレイの表現できる色域についてAdobe RGBsRGBなどいろいろな規格があります。ディスプレイの仕様を見ると DCI-P3: 90%sRGB: 99% といった異なる規格カバー率記載があり、これはどちらのほうが優れているのだろうか、、と疑問に思ったので調べた結果をまとめてみました。

(調査内容については、主にChat GPTに聞いた内容をまとめたものになるので信頼できるソースではないです)

色度図と色空間

結論

表現できる色空間の広さだけで比較すると、

  • Adobe RGBDCI-P3 はほぼ同等の広さ
    • カバーする範囲は異なる
  • DCI-P3 74%sRGBの100% とほぼ等しい
    • DCI-P3, AdobeRGB は sRGBに比べて1.35倍ほど広い。

そもそも…

いろいろ調べているうちに、AdobeRGBは写真などの印刷物に適した色空間、DCI-P3は映画など映像制作で用いられる色空間なので、用途に合わせて(印刷物を制作する場合はAdobe RGBのカバー率が高いもの、映像制作であればDCI-P3のカバー率が高いもの)を使うとよいのかなと思います。

単純に比較した値にどれだけ意味があるのだろうか、、と思いつつも、ディスプレイ自体が表現できる色の種類が多いのはどっちか? という観点での比較になります。

色空間の比較

色度図と色空間

Webで”色域”と検索して出てくる傾いた放物線に虹色がついていて、そこに各規格ごとの三角形が書かれている図がたくさん出てくるかと思います。この図の三角形の面積を求められると、表現できる色の種類を比較できます。ざっくり、この図の要点をまとめていくと

  • 虹色に塗られた図は CIE 1931の色度図 と呼ばれるもの
    • 人間の目が観測できる色を基準にしている
  • 外縁が人間の目が認識できる純粋な単色の光
    • 例: 波長が600nmの光 => 外縁の右上の方の赤とかオレンジあたりの色
  • 色度図の中心付近の白色点は、異なる光を混ぜたときに人間の目が白と認識する点
  • x座標とy座標で色相が指定できる
  • 各色空間の三角は頂点座標で定義されている
    • sRGBなら赤: (0.64, 0.33), 緑: (0.30, 0.60), 青: (0.15, 0.06)

色域の面積

面積 = 1/2 * |x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)|

雑にコードを書いて計算すると、それぞれの面積は以下のようになりました。

  • sRGB: 0.112050
  • Adobe RGB: 0.151150
  • DCI-P3: 0.152000
package main

import "fmt"

type Point struct {
	x, y float64
}
type Area struct {
	r, g, b Point
}

func main() {
	sRGB := Area{
		Point{0.64, 0.33},
		Point{0.30, 0.60},
		Point{0.15, 0.06},
	}

	adobeRGB := Area{
		Point{0.64, 0.33},
		Point{0.21, 0.71},
		Point{0.15, 0.06},
	}

	dciP3 := Area{
		Point{0.68, 0.32},
		Point{0.265, 0.69},
		Point{0.15, 0.06},
	}

	// 色域の面積を出力
	fmt.Printf("     sRGB: %6f\n", area(sRGB))     //      sRGB: 0.112050
	fmt.Printf("Adobe RGB: %6f\n", area(adobeRGB)) // Adobe RGB: 0.151150
	fmt.Printf("   DCI-P3: %6f\n", area(dciP3))    //    DCI-P3: 0.152000
}

func area(area Area) float64 {
	// area = 1/2 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))
	return 0.5 * (area.r.x*(area.g.y-area.b.y) + area.g.x*(area.b.y-area.r.y) + area.b.x*(area.r.y-area.g.y))
}

面積の比較

面積比

(sRGB : AdobeRGB : DCI-P3) = (1: 1.349: 1.357)

DCI-P3のカバー率を基準に他の色空間の面積比

  DCI-P3 | Adobe RGB |      sRGB

    100% |  1.005624 |  1.356537
     98% |  0.985511 |  1.329407
     97% |  0.975455 |  1.315841
     95% |  0.955342 |  1.288710
     90% |  0.905061 |  1.220884
     80% |  0.804499 |  1.085230
     75% |  0.754218 |  1.017403
     74% |  0.744161 |  1.003838
     73% |  0.734105 |  0.990272
     70% |  0.703936 |  0.949576

という結果になりました

まとめ

  • DCI-P3とAdobe RGBではほぼ同等の面積の色空間を持つ
    • 範囲は異なるので、それぞれ強みは異なる
  • DCI-P3やAdobeRGBの74%前後でsRGBの100%と一致
    • DCI-P3 70%カバー! といった仕様のディスプレイがあった場合は、sRGBすら十分に表示できない
    • sRGBカバー率 99%: DCI-P3だと70%ほど
      • (sRGBでカバーできてない部分があるが、DCI-P3の範囲をカバーしている可能性はあり)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください