明るく大きく 3.0 の理論
1. 概要
本稿は、アプリ「明るく大きく」3.0 が画像の視認性を向上させるために行う色変換の理論を述べる。本稿の枠組みは、同アプリ 2.0 の README の付録 [1] の数式を、3.0 の処理に合わせて再整理したものである。処理の要点は、色度は保ったまま明度だけを変える ことにある。明度のみを操作するため、色相は変化せず、明暗の差だけが強調される。
1-1. 前提
以下を本稿全体の仮定とする。
1. 白点 : D65、( x , y ) = ( 0.3127 , 0.3290 ) (x,y)=(0.3127,\,0.3290) ( x , y ) = ( 0.3127 , 0.3290 ) (sRGB および Display P3 の規格の定義値 [2][3][4])。すべての変換で共通である。
2. 観測者 : CIE 1931 2° 標準観測者 [5](XYZ の定義 [6][7])。
3. 色空間 : 入力と表示は、sRGB [2] または Display P3 [3][4] のいずれかとする。両者は伝達関数が同一で、原色のみが異なる(§2、§3)。
4. 量子化 : 8 ビット(0 0 0 〜255 255 255 )。符号化値は画素値を 255 255 255 で割った 0 0 0 以上 1 1 1 以下の実数として扱う。
5. 色順応 : 入力と表示の白点がともに D65 であるため、色順応変換は行わない。
6. 明度と色度 : 明度は CIELUV の L ∗ L^{*} L ∗ 、色度は CIE 1976 UCS の u ′ , v ′ u',\,v' u ′ , v ′ を用いる [6][7]。
1-2. 記法
R , G , B R,\,G,\,B R , G , B : 線形 RGB の各成分。0 0 0 以上 1 1 1 以下とし、白を 1 1 1 とする。X , Y , Z X,\,Y,\,Z X , Y , Z : XYZ の各成分(Y Y Y は白を 1 1 1 とする)。
V V V : 符号化値(0 ≤ V ≤ 1 0\le V\le 1 0 ≤ V ≤ 1 )。x x x : 線形値(0 ≤ x ≤ 1 0\le x\le 1 0 ≤ x ≤ 1 )。なお色度座標 ( x , y ) (x,\,y) ( x , y ) は線形値 x x x と記号が重なるが、§3〜§4 では色度座標を指す。
M M M : RGB → XYZ の変換行列。M − 1 M^{-1} M − 1 : XYZ → RGB の変換行列。
u ′ , v ′ u',\,v' u ′ , v ′ : CIE 1976 UCS の色度座標。
L ∗ L^{*} L ∗ : 明度。CIE の定義(0 0 0 〜100 100 100 )を 100 100 100 で割った 0 0 0 以上 1 1 1 以下の尺度で表す。したがって「L ∗ = 0.5 L^{*}=0.5 L ∗ = 0.5 」は CIE の L ∗ = 50 L^{*}=50 L ∗ = 50 に相当する。
明度は段ごとに次の記号で表す。入力(カメラの画像)の明度 L ∗ L^{*} L ∗ 、明るくの後 L b ∗ L^{*}_{\mathrm{b}} L b ∗ 、くっきりの後 L c ∗ L^{*}_{\mathrm{c}} L c ∗ 、明度反転の後 L r ∗ L^{*}_{\mathrm{r}} L r ∗ 。各節では「変換前の明度」と「変換後の明度」をこの記号で示す。反転を行わない場合は L r ∗ = L c ∗ L^{*}_{\mathrm{r}}=L^{*}_{\mathrm{c}} L r ∗ = L c ∗ である。
b b b : 明るさのパラメータ(− 0.25 ≤ b ≤ 0.25 -0.25\le b\le 0.25 − 0.25 ≤ b ≤ 0.25 )。c c c : くっきりのパラメータ(0 ≤ c ≤ 1 0\le c\le 1 0 ≤ c ≤ 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. 伝達関数(ガンマ)
符号化値 V V V (0 ≤ V ≤ 1 0\le V\le 1 0 ≤ V ≤ 1 。8 ビットなら 画素値 255 \frac{\text{画素値}}{255} 255 画素値 )と線形値 x x x (0 ≤ x ≤ 1 0\le x\le 1 0 ≤ x ≤ 1 )の間の関係を、伝達関数 として定める [8]。IEC 61966-2-1 の sRGB の関数 [2] を用いる。
復号(符号化値から線形値へ):
x = { V 12.92 ( V ≤ 0.04045 ) ( V + 0.055 1.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} x = ⎩ ⎨ ⎧ 12.92 V ( 1.055 V + 0.055 ) 2.4 ( V ≤ 0.04045 ) ( V > 0.04045 ) ( 1 )
符号化(線形値から符号化値へ):
V = { 12.92 x ( x ≤ 0.0031308 ) 1.055 x 1 2.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} V = { 12.92 x 1.055 x 2.4 1 − 0.055 ( x ≤ 0.0031308 ) ( x > 0.0031308 ) ( 2 )
2 本の式は V = 0.04045 V=0.04045 V = 0.04045 (x = 0.0031308 x=0.0031308 x = 0.0031308 )で連続である(0.04045 12.92 = 0.0031308 \frac{0.04045}{12.92}=0.0031308 12.92 0.04045 = 0.0031308 )。
Display P3 の伝達関数は sRGB と同一である。
図 1 : sRGB の復号関数と符号化関数。横軸を符号化値 V V V (0 0 0 〜1 1 1 )、縦軸を線形値 x x x (0 0 0 〜1 1 1 )として、復号関数 x ( V ) x(V) x ( V ) と、その逆である符号化関数 V ( x ) V(x) V ( x ) を同一の図に示す。暗部の直線部(V ≤ 0.04045 V\le 0.04045 V ≤ 0.04045 )と、その上の累乗部との連続の様子が分かるよう、V = 0 V=0 V = 0 〜0.1 0.1 0.1 の拡大図を添える。
符号化の前に、色域の外で負になった値は 0 0 0 に置換する(負の数の累乗が定義されないため)。復号と符号化の結果は、いずれも 0 0 0 以上 1 1 1 以下に制限する。
3. RGB と XYZ の間の変換
線形 RGB を列ベクトル ( R , G , B ) T (R,G,B)^{\mathsf T} ( R , G , B ) T とし、白点を D65 とする。変換行列は、原色の色度と白点から次のように導出 する [7][8]。
3-1. 原色と白点からの導出
原色 i i i (i = R , G , B i=\mathrm{R},\mathrm{G},\mathrm{B} i = R , G , B )の色度を ( x i , y i ) (x_i,y_i) ( x i , y i ) とし、その方向ベクトル
p i = ( x i y i 1 1 − x i − y i y i ) (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 i = y i x i 1 y i 1 − x i − y i ( 3 )
を列とする行列を P = [ p R p G p B ] P=[\mathbf{p}_{\mathrm R}\ \mathbf{p}_{\mathrm G}\ \mathbf{p}_{\mathrm B}] P = [ p R p G p B ] とする。白点の色度 ( x w , y w ) (x_w,y_w) ( x w , y w ) に対する同形のベクトルを W \mathbf{W} W とする。白(R = G = B = 1 R=G=B=1 R = G = B = 1 )が W \mathbf{W} W に写像される条件 P S = W P\mathbf{S}=\mathbf{W} P S = W から、各原色の強さの係数 S = P − 1 W \mathbf{S}=P^{-1}\mathbf{W} S = P − 1 W を定める。このとき RGB → XYZ の行列は
M = P d i a g ( S ) (4) M=P\,\mathrm{diag}(\mathbf{S})
\tag{4} M = P diag ( S ) ( 4 )
であり、白が Y = 1 Y=1 Y = 1 となる。XYZ → RGB の行列は M M M の厳密な逆行列 M − 1 M^{-1} M − 1 である。
3-2. sRGB
原色の色度は R( 0.64 , 0.33 ) (0.64,\,0.33) ( 0.64 , 0.33 ) 、G( 0.30 , 0.60 ) (0.30,\,0.60) ( 0.30 , 0.60 ) 、B( 0.15 , 0.06 ) (0.15,\,0.06) ( 0.15 , 0.06 ) 、白点は D65 の ( x , y ) = ( 0.3127 , 0.3290 ) (x,y)=(0.3127,\,0.3290) ( x , y ) = ( 0.3127 , 0.3290 ) である(IEC 61966-2-1 [2])。§3-1 により、倍精度の導出値を 7 桁で示すと次を得る。
( X Y Z ) = ( 0.4123908 0.3575843 0.1804808 0.2126390 0.7151687 0.0721923 0.0193308 0.1191948 0.9505322 ) ( R G B ) (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} X Y Z = 0.4123908 0.2126390 0.0193308 0.3575843 0.7151687 0.1191948 0.1804808 0.0721923 0.9505322 R G B ( 5 )
( R G B ) = ( − 3.2409699 − 1.5373832 − 0.4986108 − 0.9692436 − 1.8759675 − 0.0415551 − 0.0556301 − 0.2039770 − 1.0569715 ) ( X Y Z ) (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} R G B = − 3.2409699 − 0.9692436 − 0.0556301 − 1.5373832 − 1.8759675 − 0.2039770 − 0.4986108 − 0.0415551 − 1.0569715 X Y Z ( 6 )
規格に記載の 4 桁の順行列 [2](式 (7))は、導出値を 4 桁に丸めたものに一致する。
( 0.4124 0.3576 0.1805 0.2126 0.7152 0.0722 0.0193 0.1192 0.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} 0.4124 0.2126 0.0193 0.3576 0.7152 0.1192 0.1805 0.0722 0.9505 ( 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.2406 − 0.9689 − 0.0557 − 1.5372 − 1.8758 − 0.2040 − 0.4986 − 0.0415 − 1.0570 ( 8 )
3-3. Display P3
原色の色度は R( 0.680 , 0.320 ) (0.680,\,0.320) ( 0.680 , 0.320 ) 、G( 0.265 , 0.690 ) (0.265,\,0.690) ( 0.265 , 0.690 ) 、B( 0.150 , 0.060 ) (0.150,\,0.060) ( 0.150 , 0.060 ) 、白点は D65 の ( 0.3127 , 0.3290 ) (0.3127,\,0.3290) ( 0.3127 , 0.3290 ) である(SMPTE EG 432-1 [3]、Apple の定義 [4])。§3-1 により、同様に次を得る。
( X Y Z ) = ( 0.4865709 0.2656677 0.1982173 0.2289746 0.6917385 0.0792869 0.0000000 0.0451134 1.0439444 ) ( R G B ) (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} X Y Z = 0.4865709 0.2289746 0.0000000 0.2656677 0.6917385 0.0451134 0.1982173 0.0792869 1.0439444 R G B ( 9 )
( R G B ) = ( − 2.4934969 − 0.9313836 − 0.4027108 − 0.8294890 − 1.7626641 − 0.0236247 − 0.0358458 − 0.0761724 − 0.9568845 ) ( X Y Z ) (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} R G B = − 2.4934969 − 0.8294890 − 0.0358458 − 0.9313836 − 1.7626641 − 0.0761724 − 0.4027108 − 0.0236247 − 0.9568845 X Y Z ( 10 )
3-4. 色空間の置換
XYZ は色空間に依存しない。したがって、入力が sRGB で出力が Display P3 の場合でも、u ′ u' u ′ 、v ′ v' v ′ と L ∗ L^{*} L ∗ は XYZ 上で同じ値であり、同一の色は同一の見え方を保ったまま、P3 の広い色域まで表現できる。
4. XYZ と CIELUV
4-1. 色度 u ′ , v ′ u',\,v' u ′ , v ′
CIE 1976 UCS の色度は次で与えられる [6][7]。
u ′ = 4 X X + 15 Y + 3 Z , v ′ = 9 Y X + 15 Y + 3 Z (11) u'=\frac{4X}{X+15Y+3Z},\qquad
v'=\frac{9Y}{X+15Y+3Z}
\tag{11} u ′ = X + 15 Y + 3 Z 4 X , v ′ = X + 15 Y + 3 Z 9 Y ( 11 )
xy 色度で表せば
u ′ = 4 x − 2 x + 12 y + 3 , v ′ = 9 y − 2 x + 12 y + 3 (12) u'=\frac{4x}{-2x+12y+3},\qquad
v'=\frac{9y}{-2x+12y+3}
\tag{12} u ′ = − 2 x + 12 y + 3 4 x , v ′ = − 2 x + 12 y + 3 9 y ( 12 )
である。X = Y = Z = 0 X=Y=Z=0 X = Y = Z = 0 (黒)では分母が 0 0 0 になるため、D65 の白の値 ( u n ′ , v n ′ ) ≈ ( 0.1978 , 0.4683 ) (u'_n,\,v'_n)\approx(0.1978,\,0.4683) ( u n ′ , v n ′ ) ≈ ( 0.1978 , 0.4683 ) を用いる。
4-2. 明度 L ∗ L^{*} L ∗
CIE 1976 の明度(0 0 0 以上 1 1 1 以下の尺度)は次で与えられる [6][7]。
L ∗ = { 9.033 Y ( Y ≤ 0.008856 ) 1.16 Y 1 3 − 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} L ∗ = { 9.033 Y 1.16 Y 3 1 − 0.16 ( Y ≤ 0.008856 ) ( Y > 0.008856 ) ( 13 )
ここで 9.033 9.033 9.033 は κ 100 \frac{\kappa}{100} 100 κ (κ = ( 29 3 ) 3 ≈ 903.3 \kappa=\left(\frac{29}{3}\right)^{3}\approx 903.3 κ = ( 3 29 ) 3 ≈ 903.3 )、0.008856 0.008856 0.008856 は ε = ( 6 29 ) 3 \varepsilon=\left(\frac{6}{29}\right)^{3} ε = ( 29 6 ) 3 に相当する。CIE の定義 116 f ( Y Y n ) − 16 116\,f\!\left(\frac{Y}{Y_n}\right)-16 116 f ( Y n Y ) − 16 を 100 100 100 で割った形であり、境界の Y = ε Y=\varepsilon Y = ε で 2 本の式は L ∗ = 0.0800 L^{*}=0.0800 L ∗ = 0.0800 に連続する。
図 2 : 輝度 Y Y Y と明度 L ∗ L^{*} L ∗ の関係。横軸を Y Y Y (0 0 0 〜1 1 1 )、縦軸を L ∗ L^{*} L ∗ (0 0 0 〜1 1 1 )として、上の定義による曲線を、直線部を持たない 3 乗根の式 1.16 Y 1 3 − 0.16 1.16\,Y^{\frac{1}{3}}-0.16 1.16 Y 3 1 − 0.16 と重ねて示し、暗部での差異を明らかにする。
4-3. 逆変換
変換後の明度 L r ∗ L^{*}_{\mathrm{r}} L r ∗ と色度 ( u ′ , v ′ ) (u',v') ( u ′ , v ′ ) から XYZ を得る式は次のとおりである。
Y = { L r ∗ 9.033 ( L r ∗ ≤ 0.08 ) ( L r ∗ + 0.16 1.16 ) 3 ( L r ∗ > 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} Y = ⎩ ⎨ ⎧ 9.033 L r ∗ ( 1.16 L r ∗ + 0.16 ) 3 ( L r ∗ ≤ 0.08 ) ( L r ∗ > 0.08 ) ( 14 )
ただし 1 9.033 ≈ 0.11071 \frac{1}{9.033}\approx 0.11071 9.033 1 ≈ 0.11071 である。
X = Y 9 u ′ 4 v ′ , Z = Y 12 − 3 u ′ − 20 v ′ 4 v ′ (15) X=Y\,\frac{9u'}{4v'},\qquad
Z=Y\,\frac{12-3u'-20v'}{4v'}
\tag{15} X = Y 4 v ′ 9 u ′ , Z = Y 4 v ′ 12 − 3 u ′ − 20 v ′ ( 15 )
境界 L r ∗ = 0.08 L^{*}_{\mathrm{r}}=0.08 L r ∗ = 0.08 は CIE の L ∗ = 8 L^{*}=8 L ∗ = 8 (= κ ε 100 =\frac{\kappa\varepsilon}{100} = 100 κ ε )に相当する。式 (15) は、式 (11) の u ′ , v ′ u',\,v' u ′ , v ′ の定義を X , Z X,\,Z X , Z について解いたものであり、Y Y Y を乗じた分だけ明るさが変化し、色度は変化しない。
5. 明るく
変換前の明度 L ∗ L^{*} L ∗ に b b b を加え、変換後の明度 L b ∗ L^{*}_{\mathrm{b}} L b ∗ を得る。
L b ∗ = L ∗ + b ( − 0.25 ≤ b ≤ 0.25 ) (16) L^{*}_{\mathrm{b}}=L^{*}+b\qquad(-0.25\le b\le 0.25)
\tag{16} L b ∗ = L ∗ + b ( − 0.25 ≤ b ≤ 0.25 ) ( 16 )
b b b が正なら全体が明るく、負なら暗くなる。色度は変更しない。
図 3 : 明るくの直線。横軸を変換前の明度 L ∗ L^{*} L ∗ (0 0 0 〜1 1 1 )、縦軸を変換後の明度 L b ∗ L^{*}_{\mathrm{b}} L b ∗ (0 0 0 〜1 1 1 )として、b = − 0.25 , − 0.20 , … , + 0.25 b=-0.25,\,-0.20,\,\dots,\,+0.25 b = − 0.25 , − 0.20 , … , + 0.25 (ダイヤルの − 5 -5 − 5 〜+ 5 +5 + 5 )の 11 本の直線を、くっきりの図(図 4)と同じ軸・同じ大きさ・同じ色の順で重ねて示す。直線は傾き 1 1 1 で平行であり、b b b が正で上方へ、負で下方へ移動する。L b ∗ L^{*}_{\mathrm{b}} L b ∗ は [ 0 , 1 ] [0,1] [ 0 , 1 ] の外へも延びるが、枠の外は表示しない。
6. くっきり
変換前の明度 L b ∗ L^{*}_{\mathrm{b}} L b ∗ に、ロジスティック関数を両端が 0 0 0 と 1 1 1 に一致するよう正規化した曲線 を適用し、変換後の明度 L c ∗ L^{*}_{\mathrm{c}} L c ∗ を得る。
t 0 = 20 c + 1 ( 0 ≤ c ≤ 1 ) (17) t_0=20c+1\qquad(0\le c\le 1)
\tag{17} t 0 = 20 c + 1 ( 0 ≤ c ≤ 1 ) ( 17 )
y 0 = 1 1 + e t 0 , y 1 = 1 1 + e ( 1 − 2 L b ∗ ) t 0 (18) y_0=\frac{1}{1+e^{t_0}},\qquad
y_1=\frac{1}{1+e^{(1-2L^{*}_{\mathrm{b}})\,t_0}}
\tag{18} y 0 = 1 + e t 0 1 , y 1 = 1 + e ( 1 − 2 L b ∗ ) t 0 1 ( 18 )
L c ∗ = y 1 − y 0 1 − 2 y 0 (19) L^{*}_{\mathrm{c}}=\frac{y_1-y_0}{1-2y_0}
\tag{19} L c ∗ = 1 − 2 y 0 y 1 − y 0 ( 19 )
性質
図 4 : くっきりの曲線。横軸を変換前の明度 L b ∗ L^{*}_{\mathrm{b}} L b ∗ (0 0 0 〜1 1 1 )、縦軸を変換後の明度 L c ∗ L^{*}_{\mathrm{c}} L c ∗ (0 0 0 〜1 1 1 )として、c = 0.0 , 0.1 , … , 1.0 c=0.0,\,0.1,\,\dots,\,1.0 c = 0.0 , 0.1 , … , 1.0 の 11 本の曲線を重ねて示す。点 ( 0.5 , 0.5 ) (0.5,\,0.5) ( 0.5 , 0.5 ) に関する点対称性と、c c c に伴う中央の傾きの増加が読み取れる。
図 5 : 明るくとくっきりの合成。横軸を入力の明度 L ∗ L^{*} L ∗ (0 0 0 〜1 1 1 )、縦軸を変換後の明度 L c ∗ L^{*}_{\mathrm{c}} L c ∗ (0 0 0 〜1 1 1 )として、くっきりを c = 0.5 c=0.5 c = 0.5 (t 0 = 11 t_0=11 t 0 = 11 )に固定し、b = − 0.25 , − 0.20 , … , + 0.25 b=-0.25,\,-0.20,\,\dots,\,+0.25 b = − 0.25 , − 0.20 , … , + 0.25 の 11 本の曲線 L c ∗ = σ t 0 ( L ∗ + b ) L^{*}_{\mathrm{c}}=\sigma_{t_0}(L^{*}+b) L c ∗ = σ t 0 ( L ∗ + b ) を重ねて示す。ここで σ t 0 \sigma_{t_0} σ t 0 は本節の正規化したロジスティック関数である。軸・大きさ・色の順は明るくの図(図 3)およびくっきりの図(図 4)と同じとする。明るくは曲線を横軸方向に平行移動し、くっきりは曲線の急峻さを定める。
着想
この S 字は、錐体の応答の圧縮に着想を得ている。CIE の明度が強度の立方根で表されることは、Stevens のべき法則 [9] の当てはめとして知られる。これに対し、錐体の応答の圧縮は、次の分数関数で表される。
R = I n I n + σ n (22) R=\frac{I^{n}}{I^{n}+\sigma^{n}}
\tag{22} R = I n + σ n I n ( 22 )
これは Naka–Rushton 型の関数 [10] であり、霊長類の錐体の測定にも当てはめられている [11]。同様の圧縮は、色の見えのモデル CIECAM02 [12] と CAM16 [13] の圧縮の段にも用いられている(解説は [14])。分数関数は、強度の対数に対してロジスティック曲線と同じ S 字を描く。ロジスティック関数を採用した理由は、傾きを 1 つのパラメータ t 0 t_0 t 0 で制御できること、および両端を 0 0 0 と 1 1 1 に一致させる正規化が簡明なことにある。
7. 明度反転
変換前の明度 L c ∗ L^{*}_{\mathrm{c}} L c ∗ から、変換後の明度 L r ∗ L^{*}_{\mathrm{r}} L r ∗ を次で定める。
L r ∗ = 1 − L c ∗ (23) L^{*}_{\mathrm{r}}=1-L^{*}_{\mathrm{c}}
\tag{23} L r ∗ = 1 − L c ∗ ( 23 )
反転を行わない場合は L r ∗ = L c ∗ L^{*}_{\mathrm{r}}=L^{*}_{\mathrm{c}} L r ∗ = L c ∗ である。反転は L c ∗ L^{*}_{\mathrm{c}} L c ∗ に対して行う。S 字は点 ( 0.5 , 0.5 ) (0.5,\,0.5) ( 0.5 , 0.5 ) に関して点対称であるため、b = 0 b=0 b = 0 の場合は、反転とくっきりの順序を入れ替えても結果は変化しない。b ≠ 0 b\ne 0 b = 0 の場合は順序によって結果が異なる。
8. モノクローム
モノクロームでは、元の画素の色度を破棄し、明の色と暗の色の u ′ v ′ u'v' u ′ v ′ を L r ∗ L^{*}_{\mathrm{r}} L r ∗ で混合した色度 に置換する。明の色 L と暗の色 D を sRGB の値で指定し、それぞれの色度を §4-1 で求めて ( u L ′ , v L ′ ) (u'_{\mathrm L},\,v'_{\mathrm L}) ( u L ′ , v L ′ ) 、( u D ′ , v D ′ ) (u'_{\mathrm D},\,v'_{\mathrm D}) ( u D ′ , v D ′ ) とする。
( u ′ v ′ ) = ( u D ′ v D ′ ) + L r ∗ [ ( u L ′ v L ′ ) − ( u D ′ v D ′ ) ] (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} ( u ′ v ′ ) = ( u D ′ v D ′ ) + L r ∗ [ ( u L ′ v L ′ ) − ( u D ′ v D ′ ) ] ( 24 )
L = D の場合は 1 色モードであり、色度が一定で明るさだけが変化する。L ≠ D の場合は 2 色モードであり、暗い側は D、明るい側は L の色みに近づく。
混合は L ∗ L^{*} L ∗ ではなく u ′ v ′ u'v' u ′ v ′ 平面上の線形補間 である。線形補間の結果は 2 点を結ぶ線分上にあり、色域の三角形は凸であるから、0 ≤ L r ∗ ≤ 1 0\le L^{*}_{\mathrm{r}}\le 1 0 ≤ L r ∗ ≤ 1 の範囲では混合した色度は色域外とならない 。
明・暗の色が黒(XYZ がすべて 0 0 0 )の場合は、§4-1 と同じく D65 の白の色度を用いる。
図 6 : 混合した色度の色度図上での軌跡。u ′ v ′ u'v' u ′ v ′ 平面に sRGB と Display P3 の色域の三角形を描き、明の色と暗の色の 2 点と、L r ∗ = 0 L^{*}_{\mathrm{r}}=0 L r ∗ = 0 から 1 1 1 に対応する線分を示す。線分が三角形の内部に収まることを確認する。
色域でのクリッピング
色度を固定して Y Y Y を大きくすると、色度は変化しないまま RGB の線形値が 1 1 1 を超える時点がある。超えた分は符号化で 1 1 1 にクリップされ、色みは白に近づく。色度 ( u ′ , v ′ ) (u',v') ( u ′ , v ′ ) の色について、単位輝度(Y = 1 Y=1 Y = 1 )あたりの線形 RGB の最大成分を μ \mu μ とすると、クリッピングが始まる輝度は Y = 1 μ Y=\frac{1}{\mu} Y = μ 1 、すなわち
L c l i p ∗ = L ∗ ( Y = 1 μ ) (25) L^{*}_{\mathrm{clip}}=L^{*}\!\left(Y=\frac{1}{\mu}\right)
\tag{25} L clip ∗ = L ∗ ( Y = μ 1 ) ( 25 )
である。この閾値は色によって異なる。sRGB の線形 RGB による例を示す。
色 RGB L c l i p ∗ L^{*}_{\mathrm{clip}} L clip ∗ L r ∗ = 1 L^{*}_{\mathrm{r}}=1 L r ∗ = 1 での最大成分(線形)
白(無彩色) FFFFFF クリッピングなし 1.00
黄 FFFF00 0.972 1.08
水色 00FFFF 0.912 1.27
緑 00FF00 0.878 1.40
セピア 6A4A2B 0.799 1.77
単位輝度あたりの最大成分 μ \mu μ が大きい色ほど閾値は低い。たとえば最大成分の小さいセピアは、単位輝度に換算すると μ \mu μ が大きく、閾値が 0.799 0.799 0.799 と低い。2 色モードの場合は、混合した色度ごとに同じ閾値が決定される。
図 7 : 色ごとのクリッピング閾値。横軸を L r ∗ L^{*}_{\mathrm{r}} L r ∗ 、縦軸を RGB の最大成分(線形)として、表の各色について L r ∗ L^{*}_{\mathrm{r}} L r ∗ に対する最大成分の推移を示し、値が 1 1 1 に達する L c l i p ∗ L^{*}_{\mathrm{clip}} L clip ∗ を印で示す。
9. 斜め上から補正
斜めから撮影した紙面を、真上から見た形に補正する。補正は、補正後の画面上の点を画像上の点に写像する 1 つの射影変換 H H H で表される。
9-1. 透視の逆
紙は平面とし、その中心をカメラの光軸が通るものとする。紙の面は、水平な軸のまわりに傾き角 θ \theta θ (0 ≤ θ < 90 ∘ 0\le\theta<90^{\circ} 0 ≤ θ < 9 0 ∘ )だけ傾いており、紙の上方が奥にあるとする。距離の単位を焦点距離にとり、カメラから紙の中心までの距離を 1 1 1 とする。紙の上の点 ( x p , y p ) (x_p,\,y_p) ( x p , y p ) は 3 次元で ( x p , y p cos θ , 1 + y p sin θ ) (x_p,\ y_p\cos\theta,\ 1+y_p\sin\theta) ( x p , y p cos θ , 1 + y p sin θ ) にあり、その像の座標 ( Ξ , Υ ) (\Xi,\,\Upsilon) ( Ξ , Υ ) (焦点距離を単位とする)は
Ξ = x p 1 + y p sin θ , Υ = y p cos θ 1 + y p sin θ (26) \Xi=\frac{x_p}{1+y_p\sin\theta},\qquad
\Upsilon=\frac{y_p\cos\theta}{1+y_p\sin\theta}
\tag{26} Ξ = 1 + y p sin θ x p , Υ = 1 + y p sin θ y p cos θ ( 26 )
である。画像の正規化座標 ( u , v ) (u,v) ( u , v ) (画像の縁を ± 1 \pm 1 ± 1 とする)は、画像の幅 s x s_x s x 、高さ s y s_y s y と焦点距離 f f f (同じ単位)により
Ξ = ξ u , Υ = η v , ξ = s x 2 f , η = s y 2 f (27) \Xi=\xi\,u,\qquad \Upsilon=\eta\,v,\qquad
\xi=\frac{s_x}{2f},\qquad \eta=\frac{s_y}{2f}
\tag{27} Ξ = ξ u , Υ = η v , ξ = 2 f s x , η = 2 f s y ( 27 )
と結ばれる。ξ , η \xi,\,\eta ξ , η は画角の半分の tan \tan tan であり、η \eta η は画面の縦の向きのものである。
補正後の画面の正規化座標 ( X , Y ) (X,Y) ( X , Y ) を、紙の座標に比例させて x p = ξ X x_p=\xi X x p = ξ X 、y p = η Y y_p=\eta Y y p = η Y と定める。これを式 (26) に代入し、u , v u,\,v u , v について整理すると、補正後の画面の点から画像の点への写像が得られる。
u = X 1 + η sin θ Y , v = Y cos θ 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} u = 1 + η sin θ Y X , v = 1 + η sin θ Y Y cos θ ( 28 )
これは同次座標で次の 3 × 3 3\times 3 3 × 3 行列 Q − 1 Q^{-1} Q − 1 による射影変換である。
Q − 1 = ( 1 0 0 0 cos θ 0 0 η sin θ 1 ) (29) Q^{-1}=\begin{pmatrix}
1 & 0 & 0\\
0 & \cos\theta & 0\\
0 & \eta\sin\theta & 1
\end{pmatrix}
\tag{29} Q − 1 = 1 0 0 0 cos θ η sin θ 0 0 1 ( 29 )
( X , Y , 1 ) T (X,Y,1)^{\mathsf T} ( X , Y , 1 ) T に Q − 1 Q^{-1} Q − 1 を作用させて得た ( u ′ , v ′ , w ) T (u',\,v',\,w)^{\mathsf T} ( u ′ , v ′ , w ) T を w w w で割った ( u ′ w , v ′ w ) \left(\frac{u'}{w},\frac{v'}{w}\right) ( w u ′ , w v ′ ) が ( u , v ) (u,v) ( u , v ) である。手前の辺が下の場合を示した。手前の辺が右・上・左の場合は、軸と符号を入れ替えた同形の行列を用いる。
紙までの距離は不要である 。距離を変えても、補正後の像は一様な倍率が変わるだけである。
縦横比は保たれる 。補正後の画面の物理的な座標は、画像の縦横比 ξ : η \xi:\eta ξ : η により ( ξ X , η Y ) = ( x p , y p ) (\xi X,\ \eta Y)=(x_p,\ y_p) ( ξ X , η Y ) = ( x p , y p ) となる。すなわち補正後の像は紙の面の座標そのものであり、紙の面に相似である。したがって、長さの比も角度も保たれ、正方形の紙は正方形に写る。これは Hartley と Zisserman の metric rectification [15](2.7 節)を、傾きが水平軸のまわりに限られる場合に適用したものである。
9-2. 縁を埋める拡大
補正後の画面の四隅を画像の内側に収めるには、画面の座標を 1 m \frac{1}{m} m 1 倍する拡大が要る。手前の角 ( ± 1 m , − 1 m ) \left(\pm\frac{1}{m},\,-\frac{1}{m}\right) ( ± m 1 , − m 1 ) が画像の内側にある条件 1 / m 1 − η sin θ / m ≤ 1 \dfrac{1/m}{1-\eta\sin\theta/m}\le 1 1 − η sin θ / m 1/ m ≤ 1 から、拡大率は
m = 1 + η sin θ (30) m=1+\eta\sin\theta
\tag{30} m = 1 + η sin θ ( 30 )
となる(η sin θ < 1 \eta\sin\theta<1 η sin θ < 1 であれば w > 0 w>0 w > 0 が保たれる)。m m m は θ \theta θ とともに増え、画像の縁の一部は画面の外になる。
9-3. 全体の変換
画面上の点(座標を 0 0 0 以上 1 1 1 以下に正規化したもの)から画像上の点への変換 H H H は、次の写像の合成である。
H = T ⋅ Q − 1 ⋅ d i a g ( 1 m , 1 m , 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} H = T ⋅ Q − 1 ⋅ diag ( m 1 , m 1 , 1 ) ⋅ A − 1 ⋅ S ( 31 )
記号 意味 式
S S S 画面の座標 → NDC(− 1 -1 − 1 以上 1 1 1 以下) X = 2 x − 1 , Y = 1 − 2 y X=2x-1,\quad Y=1-2y X = 2 x − 1 , Y = 1 − 2 y
A − 1 A^{-1} A − 1 拡大・移動・左右反転の逆 X ′ = ± X − 2 p a n x z o o m ⋅ h x , Y ′ = Y − 2 p a n y z o o m ⋅ h y X'=\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} X ′ = zoom ⋅ h x ± X − 2 pan x , Y ′ = zoom ⋅ h y Y − 2 pan y
d i a g ( 1 m , 1 m , 1 ) \mathrm{diag}\left(\frac{1}{m},\frac{1}{m},1\right) diag ( m 1 , m 1 , 1 ) 縁を埋める拡大の逆 式 (30) の m m m
Q − 1 Q^{-1} Q − 1 透視の逆 式 (29)
T T T NDC → 画像の座標 1 次の写像(画像の向きに応じて決定される)
ここで z o o m \mathrm{zoom} zoom は拡大率、p a n x , p a n y \mathrm{pan}_x,\,\mathrm{pan}_y pan x , pan y は移動量、h x , h y h_x,\,h_y h x , h y は画面を満たすための比(どちらかが 1 1 1 )である。画像から画面への変換は H H H の逆行列で与えられ、これも 3 × 3 3\times 3 3 × 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