明るく大きく 3.0 の理論

1. 概要

本稿は、アプリ「明るく大きく」3.0 が画像の視認性を向上させるために行う色変換の理論を述べる。本稿の枠組みは、同アプリ 2.0 の README の付録 [1] の数式を、3.0 の処理に合わせて再整理したものである。処理の要点は、色度は保ったまま明度だけを変えることにある。明度のみを操作するため、色相は変化せず、明暗の差だけが強調される。

1-1. 前提

以下を本稿全体の仮定とする。

  1. 1. 白点: D65、(x,y)=(0.3127, 0.3290)(x,y)=(0.3127,\,0.3290)(sRGB および Display P3 の規格の定義値 [2][3][4])。すべての変換で共通である。
  1. 2. 観測者: CIE 1931 2° 標準観測者 [5](XYZ の定義 [6][7])。
  1. 3. 色空間: 入力と表示は、sRGB [2] または Display P3 [3][4] のいずれかとする。両者は伝達関数が同一で、原色のみが異なる(§2、§3)。
  1. 4. 量子化: 8 ビット(00〜255255)。符号化値は画素値を 255255 で割った 00 以上 11 以下の実数として扱う。
  1. 5. 色順応: 入力と表示の白点がともに D65 であるため、色順応変換は行わない。
  1. 6. 明度と色度: 明度は CIELUV の L∗L^{*}、色度は CIE 1976 UCS の u′, v′u',\,v' を用いる [6][7]。

1-2. 記法

  • R, G, BR,\,G,\,B: 線形 RGB の各成分。00 以上 11 以下とし、白を 11 とする。X, Y, ZX,\,Y,\,Z: XYZ の各成分(YY は白を 11 とする)。
  • VV: 符号化値(0≤V≤10\le V\le 1)。xx: 線形値(0≤x≤10\le x\le 1)。なお色度座標 (x, y)(x,\,y) は線形値 xx と記号が重なるが、§3〜§4 では色度座標を指す。
  • MM: RGB → XYZ の変換行列。M−1M^{-1}: XYZ → RGB の変換行列。
  • u′, v′u',\,v': CIE 1976 UCS の色度座標。
  • L∗L^{*}: 明度。CIE の定義(00〜100100)を 100100 で割った 00 以上 11 以下の尺度で表す。したがって「L∗=0.5L^{*}=0.5」は CIE の L∗=50L^{*}=50 に相当する。
  • 明度は段ごとに次の記号で表す。入力(カメラの画像)の明度 L∗L^{*}、明るくの後 Lb∗L^{*}_{\mathrm{b}}、くっきりの後 Lc∗L^{*}_{\mathrm{c}}、明度反転の後 Lr∗L^{*}_{\mathrm{r}}。各節では「変換前の明度」と「変換後の明度」をこの記号で示す。反転を行わない場合は Lr∗=Lc∗L^{*}_{\mathrm{r}}=L^{*}_{\mathrm{c}} である。
  • bb: 明るさのパラメータ(−0.25≤b≤0.25-0.25\le b\le 0.25)。cc: くっきりのパラメータ(0≤c≤10\le c\le 1)。

1-3. 処理の流れ

処理は、画像の各画素に次の順で適用される。

符号化された RGB ──(§2) 復号──▶ 線形 RGB ──(§3) 行列──▶ XYZ ──(§4)──▶ u′v′ と L*
L* ──(§5) 明るく ──▶ L*_b ──(§6) くっきり ──▶ L*_c ──(§7) 明度反転 ──▶ L*_r
u′v′ ──(§8) モノクローム: 明・暗の 2 色の u′v′ を L*_r で混合 ──▶ u′v′
(L*_r, u′, v′) ──(§4 の逆)──▶ XYZ ──(§3 の逆)──▶ 線形 RGB ──(§2 の符号化)──▶ 符号化された RGB

斜め上から撮影した対象を補正する処理(§9)は、上の色の計算とは独立に、画面上の点と画像上の点の対応を与える。

2. 伝達関数(ガンマ)

符号化値 VV(0≤V≤10\le V\le 1。8 ビットなら 画素値255\frac{\text{画素値}}{255})と線形値 xx(0≤x≤10\le x\le 1)の間の関係を、伝達関数として定める [8]。IEC 61966-2-1 の sRGB の関数 [2] を用いる。

復号(符号化値から線形値へ):

x={V12.92(V≤0.04045)(V+0.0551.055)2.4(V>0.04045)(1)x=\begin{cases} \dfrac{V}{12.92} & (V\le 0.04045)\\[3mm] \left(\dfrac{V+0.055}{1.055}\right)^{2.4} & (V>0.04045) \end{cases} \tag{1}

符号化(線形値から符号化値へ):

V={12.92 x(x≤0.0031308)1.055 x12.4−0.055(x>0.0031308)(2)V=\begin{cases} 12.92\,x & (x\le 0.0031308)\\[1mm] 1.055\,x^{\frac{1}{2.4}}-0.055 & (x>0.0031308) \end{cases} \tag{2}

2 本の式は V=0.04045V=0.04045(x=0.0031308x=0.0031308)で連続である(0.0404512.92=0.0031308\frac{0.04045}{12.92}=0.0031308)。

Display P3 の伝達関数は sRGB と同一である。

図 1: sRGB の復号関数と符号化関数
図 1: sRGB の復号関数と符号化関数。横軸を符号化値 VV(00〜11)、縦軸を線形値 xx(00〜11)として、復号関数 x(V)x(V) と、その逆である符号化関数 V(x)V(x) を同一の図に示す。暗部の直線部(V≤0.04045V\le 0.04045)と、その上の累乗部との連続の様子が分かるよう、V=0V=0〜0.10.1 の拡大図を添える。

符号化の前に、色域の外で負になった値は 00 に置換する(負の数の累乗が定義されないため)。復号と符号化の結果は、いずれも 00 以上 11 以下に制限する。

3. RGB と XYZ の間の変換

線形 RGB を列ベクトル (R,G,B)T(R,G,B)^{\mathsf T} とし、白点を D65 とする。変換行列は、原色の色度と白点から次のように導出する [7][8]。

3-1. 原色と白点からの導出

原色 ii(i=R,G,Bi=\mathrm{R},\mathrm{G},\mathrm{B})の色度を (xi,yi)(x_i,y_i) とし、その方向ベクトル

pi=(xiyi11−xi−yiyi)(3)\mathbf{p}_i=\begin{pmatrix} \dfrac{x_i}{y_i}\\[3mm] 1\\[1mm] \dfrac{1-x_i-y_i}{y_i} \end{pmatrix} \tag{3}

を列とする行列を P=[pR pG pB]P=[\mathbf{p}_{\mathrm R}\ \mathbf{p}_{\mathrm G}\ \mathbf{p}_{\mathrm B}] とする。白点の色度 (xw,yw)(x_w,y_w) に対する同形のベクトルを W\mathbf{W} とする。白(R=G=B=1R=G=B=1)が W\mathbf{W} に写像される条件 PS=WP\mathbf{S}=\mathbf{W} から、各原色の強さの係数 S=P−1W\mathbf{S}=P^{-1}\mathbf{W} を定める。このとき RGB → XYZ の行列は

M=P diag(S)(4)M=P\,\mathrm{diag}(\mathbf{S}) \tag{4}

であり、白が Y=1Y=1 となる。XYZ → RGB の行列は MM の厳密な逆行列 M−1M^{-1} である。

3-2. sRGB

原色の色度は R(0.64, 0.33)(0.64,\,0.33)、G(0.30, 0.60)(0.30,\,0.60)、B(0.15, 0.06)(0.15,\,0.06)、白点は D65 の (x,y)=(0.3127, 0.3290)(x,y)=(0.3127,\,0.3290) である(IEC 61966-2-1 [2])。§3-1 により、倍精度の導出値を 7 桁で示すと次を得る。

(XYZ)=(0.41239080.35758430.18048080.21263900.71516870.07219230.01933080.11919480.9505322)(RGB)(5)\begin{pmatrix}X\\Y\\Z\end{pmatrix}= \begin{pmatrix} 0.4123908 & 0.3575843 & 0.1804808\\ 0.2126390 & 0.7151687 & 0.0721923\\ 0.0193308 & 0.1191948 & 0.9505322 \end{pmatrix} \begin{pmatrix}R\\G\\B\end{pmatrix} \tag{5}
(RGB)=(−3.2409699−1.5373832−0.4986108−0.9692436−1.8759675−0.0415551−0.0556301−0.2039770−1.0569715)(XYZ)(6)\begin{pmatrix}R\\G\\B\end{pmatrix}= \begin{pmatrix} \phantom{-}3.2409699 & -1.5373832 & -0.4986108\\ -0.9692436 & \phantom{-}1.8759675 & \phantom{-}0.0415551\\ \phantom{-}0.0556301 & -0.2039770 & \phantom{-}1.0569715 \end{pmatrix} \begin{pmatrix}X\\Y\\Z\end{pmatrix} \tag{6}

規格に記載の 4 桁の順行列 [2](式 (7))は、導出値を 4 桁に丸めたものに一致する。

(0.41240.35760.18050.21260.71520.07220.01930.11920.9505)(7)\begin{pmatrix} 0.4124 & 0.3576 & 0.1805\\ 0.2126 & 0.7152 & 0.0722\\ 0.0193 & 0.1192 & 0.9505 \end{pmatrix} \tag{7}

規格の 4 桁の逆行列(式 (8))は、丸めた順行列の逆を丸めたものであり、導出値の逆行列とは 4 桁目で異なる。

(−3.2406−1.5372−0.4986−0.9689−1.8758−0.0415−0.0557−0.2040−1.0570)(8)\begin{pmatrix} \phantom{-}3.2406 & -1.5372 & -0.4986\\ -0.9689 & \phantom{-}1.8758 & \phantom{-}0.0415\\ \phantom{-}0.0557 & -0.2040 & \phantom{-}1.0570 \end{pmatrix} \tag{8}

3-3. Display P3

原色の色度は R(0.680, 0.320)(0.680,\,0.320)、G(0.265, 0.690)(0.265,\,0.690)、B(0.150, 0.060)(0.150,\,0.060)、白点は D65 の (0.3127, 0.3290)(0.3127,\,0.3290) である(SMPTE EG 432-1 [3]、Apple の定義 [4])。§3-1 により、同様に次を得る。

(XYZ)=(0.48657090.26566770.19821730.22897460.69173850.07928690.00000000.04511341.0439444)(RGB)(9)\begin{pmatrix}X\\Y\\Z\end{pmatrix}= \begin{pmatrix} 0.4865709 & 0.2656677 & 0.1982173\\ 0.2289746 & 0.6917385 & 0.0792869\\ 0.0000000 & 0.0451134 & 1.0439444 \end{pmatrix} \begin{pmatrix}R\\G\\B\end{pmatrix} \tag{9}
(RGB)=(−2.4934969−0.9313836−0.4027108−0.8294890−1.7626641−0.0236247−0.0358458−0.0761724−0.9568845)(XYZ)(10)\begin{pmatrix}R\\G\\B\end{pmatrix}= \begin{pmatrix} \phantom{-}2.4934969 & -0.9313836 & -0.4027108\\ -0.8294890 & \phantom{-}1.7626641 & \phantom{-}0.0236247\\ \phantom{-}0.0358458 & -0.0761724 & \phantom{-}0.9568845 \end{pmatrix} \begin{pmatrix}X\\Y\\Z\end{pmatrix} \tag{10}

3-4. 色空間の置換

XYZ は色空間に依存しない。したがって、入力が sRGB で出力が Display P3 の場合でも、u′u'、v′v' と L∗L^{*} は XYZ 上で同じ値であり、同一の色は同一の見え方を保ったまま、P3 の広い色域まで表現できる。

4. XYZ と CIELUV

4-1. 色度 u′, v′u',\,v'

CIE 1976 UCS の色度は次で与えられる [6][7]。

u′=4XX+15Y+3Z,v′=9YX+15Y+3Z(11)u'=\frac{4X}{X+15Y+3Z},\qquad v'=\frac{9Y}{X+15Y+3Z} \tag{11}

xy 色度で表せば

u′=4x−2x+12y+3,v′=9y−2x+12y+3(12)u'=\frac{4x}{-2x+12y+3},\qquad v'=\frac{9y}{-2x+12y+3} \tag{12}

である。X=Y=Z=0X=Y=Z=0(黒)では分母が 00 になるため、D65 の白の値 (un′, vn′)≈(0.1978, 0.4683)(u'_n,\,v'_n)\approx(0.1978,\,0.4683) を用いる。

4-2. 明度 L∗L^{*}

CIE 1976 の明度(00 以上 11 以下の尺度)は次で与えられる [6][7]。

L∗={9.033 Y(Y≤0.008856)1.16 Y13−0.16(Y>0.008856)(13)L^{*}=\begin{cases} 9.033\,Y & (Y\le 0.008856)\\[1mm] 1.16\,Y^{\frac{1}{3}}-0.16 & (Y>0.008856) \end{cases} \tag{13}

ここで 9.0339.033 は κ100\frac{\kappa}{100}(κ=(293)3≈903.3\kappa=\left(\frac{29}{3}\right)^{3}\approx 903.3)、0.0088560.008856 は ε=(629)3\varepsilon=\left(\frac{6}{29}\right)^{3} に相当する。CIE の定義 116 f ⁣(YYn)−16116\,f\!\left(\frac{Y}{Y_n}\right)-16 を 100100 で割った形であり、境界の Y=εY=\varepsilon で 2 本の式は L∗=0.0800L^{*}=0.0800 に連続する。

図 2: 輝度 Y と明度 L* の関係
図 2: 輝度 YY と明度 L∗L^{*} の関係。横軸を YY(00〜11)、縦軸を L∗L^{*}(00〜11)として、上の定義による曲線を、直線部を持たない 3 乗根の式 1.16 Y13−0.161.16\,Y^{\frac{1}{3}}-0.16 と重ねて示し、暗部での差異を明らかにする。

4-3. 逆変換

変換後の明度 Lr∗L^{*}_{\mathrm{r}} と色度 (u′,v′)(u',v') から XYZ を得る式は次のとおりである。

Y={Lr∗9.033(Lr∗≤0.08)(Lr∗+0.161.16)3(Lr∗>0.08)(14)Y=\begin{cases} \dfrac{L^{*}_{\mathrm{r}}}{9.033} & (L^{*}_{\mathrm{r}}\le 0.08)\\[3mm] \left(\dfrac{L^{*}_{\mathrm{r}}+0.16}{1.16}\right)^{3} & (L^{*}_{\mathrm{r}}>0.08) \end{cases} \tag{14}

ただし 19.033≈0.11071\frac{1}{9.033}\approx 0.11071 である。

X=Y 9u′4v′,Z=Y 12−3u′−20v′4v′(15)X=Y\,\frac{9u'}{4v'},\qquad Z=Y\,\frac{12-3u'-20v'}{4v'} \tag{15}

境界 Lr∗=0.08L^{*}_{\mathrm{r}}=0.08 は CIE の L∗=8L^{*}=8(=κε100=\frac{\kappa\varepsilon}{100})に相当する。式 (15) は、式 (11) の u′, v′u',\,v' の定義を X, ZX,\,Z について解いたものであり、YY を乗じた分だけ明るさが変化し、色度は変化しない。

5. 明るく

変換前の明度 L∗L^{*} に bb を加え、変換後の明度 Lb∗L^{*}_{\mathrm{b}} を得る。

Lb∗=L∗+b(−0.25≤b≤0.25)(16)L^{*}_{\mathrm{b}}=L^{*}+b\qquad(-0.25\le b\le 0.25) \tag{16}

bb が正なら全体が明るく、負なら暗くなる。色度は変更しない。

図 3: 明るくの直線
図 3: 明るくの直線。横軸を変換前の明度 L∗L^{*}(00〜11)、縦軸を変換後の明度 Lb∗L^{*}_{\mathrm{b}}(00〜11)として、b=−0.25, −0.20, …, +0.25b=-0.25,\,-0.20,\,\dots,\,+0.25(ダイヤルの −5-5〜+5+5)の 11 本の直線を、くっきりの図(図 4)と同じ軸・同じ大きさ・同じ色の順で重ねて示す。直線は傾き 11 で平行であり、bb が正で上方へ、負で下方へ移動する。Lb∗L^{*}_{\mathrm{b}} は [0,1][0,1] の外へも延びるが、枠の外は表示しない。

6. くっきり

変換前の明度 Lb∗L^{*}_{\mathrm{b}} に、ロジスティック関数を両端が 00 と 11 に一致するよう正規化した曲線を適用し、変換後の明度 Lc∗L^{*}_{\mathrm{c}} を得る。

t0=20c+1(0≤c≤1)(17)t_0=20c+1\qquad(0\le c\le 1) \tag{17}
y0=11+et0,y1=11+e(1−2Lb∗) t0(18)y_0=\frac{1}{1+e^{t_0}},\qquad y_1=\frac{1}{1+e^{(1-2L^{*}_{\mathrm{b}})\,t_0}} \tag{18}
Lc∗=y1−y01−2y0(19)L^{*}_{\mathrm{c}}=\frac{y_1-y_0}{1-2y_0} \tag{19}

性質

図 4: くっきりの曲線
図 4: くっきりの曲線。横軸を変換前の明度 Lb∗L^{*}_{\mathrm{b}}(00〜11)、縦軸を変換後の明度 Lc∗L^{*}_{\mathrm{c}}(00〜11)として、c=0.0, 0.1, …, 1.0c=0.0,\,0.1,\,\dots,\,1.0 の 11 本の曲線を重ねて示す。点 (0.5, 0.5)(0.5,\,0.5) に関する点対称性と、cc に伴う中央の傾きの増加が読み取れる。
図 5: 明るくとくっきりの合成
図 5: 明るくとくっきりの合成。横軸を入力の明度 L∗L^{*}(00〜11)、縦軸を変換後の明度 Lc∗L^{*}_{\mathrm{c}}(00〜11)として、くっきりを c=0.5c=0.5(t0=11t_0=11)に固定し、b=−0.25, −0.20, …, +0.25b=-0.25,\,-0.20,\,\dots,\,+0.25 の 11 本の曲線 Lc∗=σt0(L∗+b)L^{*}_{\mathrm{c}}=\sigma_{t_0}(L^{*}+b) を重ねて示す。ここで σt0\sigma_{t_0} は本節の正規化したロジスティック関数である。軸・大きさ・色の順は明るくの図(図 3)およびくっきりの図(図 4)と同じとする。明るくは曲線を横軸方向に平行移動し、くっきりは曲線の急峻さを定める。
  • 端点と中心: Lb∗=0L^{*}_{\mathrm{b}}=0 のとき Lc∗=0L^{*}_{\mathrm{c}}=0、Lb∗=1L^{*}_{\mathrm{b}}=1 のとき Lc∗=1L^{*}_{\mathrm{c}}=1、Lb∗=0.5L^{*}_{\mathrm{b}}=0.5 のとき Lc∗=0.5L^{*}_{\mathrm{c}}=0.5 である。曲線は点 (0.5, 0.5)(0.5,\,0.5) に関して点対称である。分母 1−2y01-2y_0 は、両端を 00 と 11 に一致させるための正規化である。
  • 傾き: Lb∗=0.5L^{*}_{\mathrm{b}}=0.5 における傾きは

    dLc∗dLb∗=t02 (1−2y0)(20)\frac{dL^{*}_{\mathrm{c}}}{dL^{*}_{\mathrm{b}}}=\frac{t_0}{2\,(1-2y_0)} \tag{20}

    で、c=0c=0 で約 1.081.08、c=0.5c=0.5 で 5.55.5、c=1c=1 で 10.510.5 となる。cc が大きいほど中央付近が急になり、暗い側はより暗く、明るい側はより明るくなって、明暗の差が強調される。

  • 逆関数: y=Lc∗ (1−2y0)+y0y=L^{*}_{\mathrm{c}}\,(1-2y_0)+y_0 とおくと、

    Lb∗=12(1−1t0ln⁡ ⁣(1y−1))(21)L^{*}_{\mathrm{b}}=\frac{1}{2}\left(1-\frac{1}{t_0}\ln\!\left(\frac{1}{y}-1\right)\right) \tag{21}

    である。

  • c=0c=0 でも恒等写像ではなく、t0=1t_0=1 の緩やかな S 字である。恒等写像からの偏差は Lb∗=0.22L^{*}_{\mathrm{b}}=0.22 で最大 −0.0153-0.0153 である。
  • 明るさとの合成: bb を加えると、S 字の中心(Lc∗=0.5L^{*}_{\mathrm{c}}=0.5 となる点)は L∗=0.5−bL^{*}=0.5-b に移動する。
  • 定義域: b≠0b\ne 0 のとき Lb∗L^{*}_{\mathrm{b}} は [0,1][0,1] の外に及ぶことがある。その場合、Lc∗L^{*}_{\mathrm{c}} も [0,1][0,1] の外に及ぶことがある(例: c=0c=0、b=±0.25b=\pm 0.25 で Lc∗L^{*}_{\mathrm{c}} は −0.187-0.187 から 1.1871.187 まで)。cc が大きいほど、外へ及んだ分は 00 または 11 に漸近する。表示可能な範囲へのクリッピングは、§2 の符号化の段階で行われる。

着想

この S 字は、錐体の応答の圧縮に着想を得ている。CIE の明度が強度の立方根で表されることは、Stevens のべき法則 [9] の当てはめとして知られる。これに対し、錐体の応答の圧縮は、次の分数関数で表される。

R=InIn+σn(22)R=\frac{I^{n}}{I^{n}+\sigma^{n}} \tag{22}

これは Naka–Rushton 型の関数 [10] であり、霊長類の錐体の測定にも当てはめられている [11]。同様の圧縮は、色の見えのモデル CIECAM02 [12] と CAM16 [13] の圧縮の段にも用いられている(解説は [14])。分数関数は、強度の対数に対してロジスティック曲線と同じ S 字を描く。ロジスティック関数を採用した理由は、傾きを 1 つのパラメータ t0t_0 で制御できること、および両端を 00 と 11 に一致させる正規化が簡明なことにある。

7. 明度反転

変換前の明度 Lc∗L^{*}_{\mathrm{c}} から、変換後の明度 Lr∗L^{*}_{\mathrm{r}} を次で定める。

Lr∗=1−Lc∗(23)L^{*}_{\mathrm{r}}=1-L^{*}_{\mathrm{c}} \tag{23}

反転を行わない場合は Lr∗=Lc∗L^{*}_{\mathrm{r}}=L^{*}_{\mathrm{c}} である。反転は Lc∗L^{*}_{\mathrm{c}} に対して行う。S 字は点 (0.5, 0.5)(0.5,\,0.5) に関して点対称であるため、b=0b=0 の場合は、反転とくっきりの順序を入れ替えても結果は変化しない。b≠0b\ne 0 の場合は順序によって結果が異なる。

8. モノクローム

モノクロームでは、元の画素の色度を破棄し、明の色と暗の色の u′v′u'v' を Lr∗L^{*}_{\mathrm{r}} で混合した色度に置換する。明の色 L と暗の色 D を sRGB の値で指定し、それぞれの色度を §4-1 で求めて (uL′, vL′)(u'_{\mathrm L},\,v'_{\mathrm L})、(uD′, vD′)(u'_{\mathrm D},\,v'_{\mathrm D}) とする。

(u′v′)=(uD′vD′)+Lr∗[(uL′vL′)−(uD′vD′)](24)\begin{pmatrix}u'\\v'\end{pmatrix}= \begin{pmatrix}u'_{\mathrm D}\\v'_{\mathrm D}\end{pmatrix} +L^{*}_{\mathrm{r}}\left[ \begin{pmatrix}u'_{\mathrm L}\\v'_{\mathrm L}\end{pmatrix}- \begin{pmatrix}u'_{\mathrm D}\\v'_{\mathrm D}\end{pmatrix} \right] \tag{24}
  • L = D の場合は 1 色モードであり、色度が一定で明るさだけが変化する。L ≠ D の場合は 2 色モードであり、暗い側は D、明るい側は L の色みに近づく。
  • 混合は L∗L^{*} ではなく u′v′u'v' 平面上の線形補間である。線形補間の結果は 2 点を結ぶ線分上にあり、色域の三角形は凸であるから、0≤Lr∗≤10\le L^{*}_{\mathrm{r}}\le 1 の範囲では混合した色度は色域外とならない。
  • 明・暗の色が黒(XYZ がすべて 00)の場合は、§4-1 と同じく D65 の白の色度を用いる。
図 6: 混合した色度の色度図上での軌跡
図 6: 混合した色度の色度図上での軌跡。u′v′u'v' 平面に sRGB と Display P3 の色域の三角形を描き、明の色と暗の色の 2 点と、Lr∗=0L^{*}_{\mathrm{r}}=0 から 11 に対応する線分を示す。線分が三角形の内部に収まることを確認する。

色域でのクリッピング

色度を固定して YY を大きくすると、色度は変化しないまま RGB の線形値が 11 を超える時点がある。超えた分は符号化で 11 にクリップされ、色みは白に近づく。色度 (u′,v′)(u',v') の色について、単位輝度(Y=1Y=1)あたりの線形 RGB の最大成分を μ\mu とすると、クリッピングが始まる輝度は Y=1μY=\frac{1}{\mu}、すなわち

Lclip∗=L∗ ⁣(Y=1μ)(25)L^{*}_{\mathrm{clip}}=L^{*}\!\left(Y=\frac{1}{\mu}\right) \tag{25}

である。この閾値は色によって異なる。sRGB の線形 RGB による例を示す。

色RGBLclip∗L^{*}_{\mathrm{clip}}Lr∗=1L^{*}_{\mathrm{r}}=1 での最大成分(線形)
白(無彩色)FFFFFFクリッピングなし1.00
黄FFFF000.9721.08
水色00FFFF0.9121.27
緑00FF000.8781.40
セピア6A4A2B0.7991.77

単位輝度あたりの最大成分 μ\mu が大きい色ほど閾値は低い。たとえば最大成分の小さいセピアは、単位輝度に換算すると μ\mu が大きく、閾値が 0.7990.799 と低い。2 色モードの場合は、混合した色度ごとに同じ閾値が決定される。

図 7: 色ごとのクリッピング閾値
図 7: 色ごとのクリッピング閾値。横軸を Lr∗L^{*}_{\mathrm{r}}、縦軸を RGB の最大成分(線形)として、表の各色について Lr∗L^{*}_{\mathrm{r}} に対する最大成分の推移を示し、値が 11 に達する Lclip∗L^{*}_{\mathrm{clip}} を印で示す。

9. 斜め上から補正

斜めから撮影した紙面を、真上から見た形に補正する。補正は、補正後の画面上の点を画像上の点に写像する 1 つの射影変換 HH で表される。

9-1. 透視の逆

紙は平面とし、その中心をカメラの光軸が通るものとする。紙の面は、水平な軸のまわりに傾き角 θ\theta(0≤θ<90∘0\le\theta<90^{\circ})だけ傾いており、紙の上方が奥にあるとする。距離の単位を焦点距離にとり、カメラから紙の中心までの距離を 11 とする。紙の上の点 (xp, yp)(x_p,\,y_p) は 3 次元で (xp, ypcos⁡θ, 1+ypsin⁡θ)(x_p,\ y_p\cos\theta,\ 1+y_p\sin\theta) にあり、その像の座標 (Ξ, Υ)(\Xi,\,\Upsilon)(焦点距離を単位とする)は

Ξ=xp1+ypsin⁡θ,Υ=ypcos⁡θ1+ypsin⁡θ(26)\Xi=\frac{x_p}{1+y_p\sin\theta},\qquad \Upsilon=\frac{y_p\cos\theta}{1+y_p\sin\theta} \tag{26}

である。画像の正規化座標 (u,v)(u,v)(画像の縁を ±1\pm 1 とする)は、画像の幅 sxs_x、高さ sys_y と焦点距離 ff(同じ単位)により

Ξ=ξ u,Υ=η v,ξ=sx2f,η=sy2f(27)\Xi=\xi\,u,\qquad \Upsilon=\eta\,v,\qquad \xi=\frac{s_x}{2f},\qquad \eta=\frac{s_y}{2f} \tag{27}

と結ばれる。ξ, η\xi,\,\eta は画角の半分の tan⁡\tan であり、η\eta は画面の縦の向きのものである。

補正後の画面の正規化座標 (X,Y)(X,Y) を、紙の座標に比例させて xp=ξXx_p=\xi X、yp=ηYy_p=\eta Y と定める。これを式 (26) に代入し、u, vu,\,v について整理すると、補正後の画面の点から画像の点への写像が得られる。

u=X1+ηsin⁡θ Y,v=Ycos⁡θ1+ηsin⁡θ Y(28)u=\frac{X}{1+\eta\sin\theta\,Y},\qquad v=\frac{Y\cos\theta}{1+\eta\sin\theta\,Y} \tag{28}

これは同次座標で次の 3×33\times 3 行列 Q−1Q^{-1} による射影変換である。

Q−1=(1000cos⁡θ00ηsin⁡θ1)(29)Q^{-1}=\begin{pmatrix} 1 & 0 & 0\\ 0 & \cos\theta & 0\\ 0 & \eta\sin\theta & 1 \end{pmatrix} \tag{29}

(X,Y,1)T(X,Y,1)^{\mathsf T} に Q−1Q^{-1} を作用させて得た (u′, v′, w)T(u',\,v',\,w)^{\mathsf T} を ww で割った (u′w,v′w)\left(\frac{u'}{w},\frac{v'}{w}\right) が (u,v)(u,v) である。手前の辺が下の場合を示した。手前の辺が右・上・左の場合は、軸と符号を入れ替えた同形の行列を用いる。

紙までの距離は不要である。距離を変えても、補正後の像は一様な倍率が変わるだけである。

縦横比は保たれる。補正後の画面の物理的な座標は、画像の縦横比 ξ:η\xi:\eta により (ξX, ηY)=(xp, yp)(\xi X,\ \eta Y)=(x_p,\ y_p) となる。すなわち補正後の像は紙の面の座標そのものであり、紙の面に相似である。したがって、長さの比も角度も保たれ、正方形の紙は正方形に写る。これは Hartley と Zisserman の metric rectification [15](2.7 節)を、傾きが水平軸のまわりに限られる場合に適用したものである。

9-2. 縁を埋める拡大

補正後の画面の四隅を画像の内側に収めるには、画面の座標を 1m\frac{1}{m} 倍する拡大が要る。手前の角 (±1m, −1m)\left(\pm\frac{1}{m},\,-\frac{1}{m}\right) が画像の内側にある条件 1/m1−ηsin⁡θ/m≤1\dfrac{1/m}{1-\eta\sin\theta/m}\le 1 から、拡大率は

m=1+ηsin⁡θ(30)m=1+\eta\sin\theta \tag{30}

となる(ηsin⁡θ<1\eta\sin\theta<1 であれば w>0w>0 が保たれる)。mm は θ\theta とともに増え、画像の縁の一部は画面の外になる。

9-3. 全体の変換

画面上の点(座標を 00 以上 11 以下に正規化したもの)から画像上の点への変換 HH は、次の写像の合成である。

H=T⋅Q−1⋅diag ⁣(1m,1m,1)⋅A−1⋅S(31)H=T\cdot Q^{-1}\cdot\mathrm{diag}\!\left(\tfrac{1}{m},\tfrac{1}{m},1\right)\cdot A^{-1}\cdot S \tag{31}
記号意味式
SS画面の座標 → NDC(−1-1 以上 11 以下)X=2x−1,Y=1−2yX=2x-1,\quad Y=1-2y
A−1A^{-1}拡大・移動・左右反転の逆X′=±X−2 panxzoom⋅hx,Y′=Y−2 panyzoom⋅hyX'=\dfrac{\pm X-2\,\mathrm{pan}_x}{\mathrm{zoom}\cdot h_x},\quad Y'=\dfrac{Y-2\,\mathrm{pan}_y}{\mathrm{zoom}\cdot h_y}
diag(1m,1m,1)\mathrm{diag}\left(\frac{1}{m},\frac{1}{m},1\right)縁を埋める拡大の逆式 (30) の mm
Q−1Q^{-1}透視の逆式 (29)
TTNDC → 画像の座標1 次の写像(画像の向きに応じて決定される)

ここで zoom\mathrm{zoom} は拡大率、panx, pany\mathrm{pan}_x,\,\mathrm{pan}_y は移動量、hx, hyh_x,\,h_y は画面を満たすための比(どちらかが 11)である。画像から画面への変換は HH の逆行列で与えられ、これも 3×33\times 3 の射影変換である。

参考文献

[1] K. Asada, "Brighter and Bigger", README (appendix: mathematical expressions of the Brighter and Clearer theory), GitHub repository asada0/BrighterAndBigger, 2019, MIT License. https://github.com/asada0/BrighterAndBigger

[2] IEC 61966-2-1:1999, Multimedia systems and equipment — Colour measurement and management — Part 2-1: Colour management — Default RGB colour space — sRGB, International Electrotechnical Commission; and Amendment 1:2003 (published 23 January 2003).

[3] SMPTE EG 432-1:2010, Digital Source Processing — Color Processing for D-Cinema, Society of Motion Picture and Television Engineers, 10 November 2010. doi:10.5594/SMPTE.EG432-1.2010

[4] Apple Inc., "Display P3", ICC RGB Color Space Registry, International Color Consortium, version 1.0, 9 February 2022. https://registry.color.org/rgb-registry/displayp3 (accessed 22 October 2026). See also Apple Developer Documentation, CGColorSpace.displayP3, https://developer.apple.com/documentation/coregraphics/cgcolorspace/displayp3 (accessed 22 October 2026).

[5] T. Smith and J. Guild, "The C.I.E. colorimetric standards and their use", Transactions of the Optical Society, vol. 33, no. 3, pp. 73–134, 1931–32. doi:10.1088/1475-4878/33/3/301

[6] CIE 15:2004, Colorimetry, 3rd ed., Commission Internationale de l'Éclairage, 2004, ISBN 978-3-901906-33-6 (since superseded by CIE 015:2018).

[7] G. Wyszecki and W. S. Stiles, Color Science: Concepts and Methods, Quantitative Data and Formulae, 2nd ed., John Wiley & Sons, 1982, ISBN 978-0-471-02106-3.

[8] C. Poynton, Digital Video and HD: Algorithms and Interfaces, 2nd ed., Morgan Kaufmann, 2012, ISBN 978-0-12-391926-7.

[9] S. S. Stevens, "On the psychophysical law", Psychological Review, vol. 64, no. 3, pp. 153–181, 1957. doi:10.1037/h0046162

[10] K. I. Naka and W. A. H. Rushton, "S-potentials from colour units in the retina of fish (Cyprinidae)", The Journal of Physiology, vol. 185, no. 3, pp. 536–555, 1966. doi:10.1113/jphysiol.1966.sp008001

[11] J. M. Valeton and D. van Norren, "Light adaptation of primate cones: An analysis based on extracellular data", Vision Research, vol. 23, no. 12, pp. 1539–1547, 1983. doi:10.1016/0042-6989(83)90167-0

[12] CIE 159:2004, A Colour Appearance Model for Colour Management Systems: CIECAM02, Commission Internationale de l'Éclairage, 2004, ISBN 978-3-901906-29-9.

[13] C. Li, Z. Li, Z. Wang, Y. Xu, M. R. Luo, G. Cui, M. Melgosa, M. H. Brill, and M. Pointer, "Comprehensive color solutions: CAM16, CAT16, and CAM16-UCS", Color Research & Application, vol. 42, no. 6, pp. 703–718, 2017. doi:10.1002/col.22131

[14] M. D. Fairchild, Color Appearance Models, 3rd ed., John Wiley & Sons, 2013, ISBN 978-1-119-96703-3. doi:10.1002/9781118653128

[15] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed., Cambridge University Press, 2003, ISBN 978-0-521-54051-3. doi:10.1017/CBO9780511811685