Chapter 09

색 외관 모델

3장의 XYZ는 두 자극이 같은 색으로 보이는가에만 답한다. 그 색이 어떻게 보이는가는 답하지 않는다. 같은 XYZ의 패치라도 주변이 어두운지 밝은지, 관측자가 몇 cd/m²에 순응했는지, 배경이 무슨 색인지에 따라 밝기도 화려함도 색상도 달라진다. 색 외관 모델(CAM)은 XYZ에 관측 조건을 더해 이 지각 속성을 숫자로 예측한다. 이 장은 현상을 직접 보고, CAM16을 식 그대로 구현해 계산해 본다.

측색과 외관은 다르다

3장의 등색 실험은 두 자극을 나란히, 같은 조건에서 비교했다. 그 결과인 XYZ는 "두 자극이 구분되지 않는다"는 판정을 재현하는 좌표다. 이것을 기본 측색(basic colorimetry)이라 한다. 그러나 엔지니어가 실제로 다루는 질문은 대부분 다르다. "이 영상이 관객에게 어떻게 보이는가", "모니터에서 본 색이 인쇄물에서도 같게 보이는가"는 서로 다른 조건에 놓인 자극의 외관을 비교하는 질문이다.

외관을 바꾸는 요인은 크게 세 가지다.

영화관 (dark) 백색 48 cd/m² · 주변 ≈ 0 대비가 낮아 보인다 → 높은 시스템 감마 필요 거실 TV (dim) 백색 100–200 cd/m² · 주변 < 20% 방송 마스터링 기준 조건 시스템 감마 ≈ 1.2 야외의 스마트폰 (average 이상) 주변 휘도 ≫ 화면 백색 화면이 어둡고 탁해 보인다 → 밝기·톤 곡선 보정 세 화면 가운데 패치의 XYZ(상대값)는 모두 같다
그림 9-1. 같은 신호, 같은 상대 XYZ를 세 환경에서 본다. 측색값은 같지만 관측자의 순응 휘도와 주변 밝기가 달라 외관이 달라진다. (종이·화면에 그려진 이 그림 자체는 같은 회색 주변 안에 있으므로 효과를 재현하지 못한다. 개념도다.)

이 차이는 영상 산업에서 수치로 관리된다. 영화는 dark 주변에서 48 cd/m²(DCI 기준) 백색으로, HDTV는 dim 주변에서 100 cd/m² 안팎으로 마스터링한다. 같은 마스터를 다른 환경으로 옮길 때 톤 곡선을 바꾸는 이유가 바로 외관 현상이다. 색 외관 모델(Colour Appearance Model, CAM)은 이 보정을 경험칙이 아니라 계산으로 하게 해 준다.

정의 — 색 외관 모델

CIE TC1-34의 정의에 따르면 색 외관 모델은 최소한 명도, 채도, 색상의 상대 속성을 예측하고, 순응을 다루는 색순응 변환을 포함하는 모델이다. 더 완전한 모델은 밝기와 컬러풀니스(절대 속성)까지 예측한다. CIELAB은 앞의 조건을 겨우 만족하는 가장 단순한 '외관 모델'이지만 휘도 수준과 주변 조건을 입력으로 받지 않는다.

외관 속성의 정의

일상어의 "밝다", "선명하다", "진하다"는 서로 다른 지각량을 섞어 쓴다. CIE 국제 조명 용어집(CIE S 017)은 이를 여섯 가지 속성으로 나눈다. 핵심은 절대 속성과, 그것을 어떤 기준으로 나눈 상대 속성의 구분이다.

속성정의 (요지)종류CAM16 기호
밝기 (brightness)영역이 빛을 더 많이 또는 적게 내는 것처럼 보이는 정도절대Q
명도 (lightness)비슷하게 조명된 백색의 밝기에 대한 상대 밝기상대J
컬러풀니스 (colourfulness)지각되는 색이 유채색 성분을 더 많이 또는 적게 띠는 정도절대M
채도 (chroma)비슷하게 조명된 백색의 밝기에 대한 상대 컬러풀니스상대C
포화도 (saturation)자기 자신의 밝기에 대한 상대 컬러풀니스상대s
색상 (hue)빨강·노랑·초록·파랑 중 하나, 또는 인접한 둘의 조합과 비슷하게 보이는 정도—h, H

예를 들어 사과 한 개를 햇빛 아래와 실내에서 본다. 햇빛 아래에서 빛이 훨씬 많이 오므로 밝기와 컬러풀니스는 커진다. 그러나 사과를 같은 장면의 흰 종이와 비교한 명도와 채도는 거의 그대로다. 우리가 물체색이 "변하지 않는다"고 느끼는 것은 상대 속성이 일정하기 때문이다. 반면 자체 발광하는 화면을 볼 때는 절대 속성이 중요해진다. 밝은 화면이 "더 선명해 보이는" 것은 채도가 아니라 컬러풀니스가 커진 것이다.

절대 속성 상대 속성 밝기 Q brightness 컬러풀니스 M colourfulness 명도 J J ∝ (Q / Q_w)² 채도 C C ∝ M / Q_w 포화도 s s = 100·√(M / Q) ÷ 백색의 밝기 ÷ 백색의 밝기 색상 h(각도), H(고유 색상 기준 0–400)는 조명 수준과 무관한 속성으로 취급
그림 9-2. 외관 속성의 관계. 상대 속성은 절대 속성을 기준(장면의 백색 또는 자기 자신의 밝기)으로 나눈 것이다. CAM16에서 실제 관계식은 \(Q = (4/c)\sqrt{J/100}\,(A_w+4)F_L^{0.25}\), \(M = C\,F_L^{0.25}\)로, 둘 다 순응 휘도의 함수 \(F_L\)을 통해 절대 수준이 들어간다.

한국어 '채도'는 chroma와 saturation 양쪽에 쓰여 혼동이 잦다. 이 책은 chroma를 채도, saturation을 포화도로 구분한다. 두 양의 차이는 그림자에서 분명하다. 빨간 공의 그림자 쪽은 백색(종이) 대비 채도는 떨어지지만, 자기 밝기 대비 포화도는 거의 같다. 균일하게 칠해진 물체가 "같은 색 물감"으로 보이는 이유를 설명하는 것은 포화도다.

공학자 관점 — CIELAB은 어디에 해당하나

L*은 명도, C*ab는 채도, hab는 색상의 근사다. 밝기·컬러풀니스에 해당하는 양은 없다. L*은 Y/Yn만의 함수라 Yn이 80 cd/m²든 8,000 cd/m²든 같은 값을 준다. 따라서 "HDR 화면에서 더 화려해 보인다"는 현상은 CIELAB으로는 표현조차 되지 않는다(7장).

관측 조건: 자극·배경·주변·순응 휘도

외관 모델의 입력은 자극의 XYZ만이 아니다. CIE는 시야를 동심원 영역으로 나누어 각 영역의 역할을 정한다.

2° 근접장 배경 ~10° 주변 (나머지 시야) 자극 (stimulus) 약 2° 크기, XYZ로 주어짐 근접장 (proximal field) 자극 바로 둘레 약 2°, 보통 배경과 같다고 둔다 배경 (background) 약 10°까지. 상대 휘도 Y_b (보통 20) 주변 (surround) 그 밖의 시야. average / dim / dark 순응장 (adapting field) 전체 시야의 평균 → 순응 휘도 L_A
그림 9-3. CIECAM02/CAM16이 가정하는 관측 시야. 자극의 XYZ 외에 백색 XYZw, 배경 상대 휘도 Yb, 순응 휘도 LA[cd/m²], 주변 분류가 입력이다.

순응 휘도는 보통 순응장의 평균 휘도로 잡는다. 장면이 평균적으로 20% 회색이라는 "회색 세계" 가정을 쓰면 백색 휘도 \(L_W\)나 백색면 조도 \(E_W\)에서 바로 구할 수 있다.

$$L_A = \frac{L_W\,Y_b}{Y_w} \approx \frac{L_W}{5}, \qquad L_A = \frac{E_W}{\pi}\cdot\frac{Y_b}{100} = \frac{E_W}{5\pi}\quad(Y_b=20)$$
여기서 \(L_W\)는 백색의 휘도[cd/m²], \(E_W\)는 완전 확산 백색면의 조도[lx]. 완전 확산면의 휘도는 \(E/\pi\)다.

주변은 주변 휘도와 장면 백색 휘도의 비 \(S_R = L_{SW}/L_{DW}\)로 분류한다. \(S_R \ge 0.2\)이면 average, \(0 < S_R < 0.2\)이면 dim, \(S_R = 0\)이면 dark다(CIE 159:2004).

관측 상황백색 휘도 [cd/m²]LA ≈ LW/5주변근거
디지털 시네마 상영489.6darkDCI, SMPTE RP 431-2
HDTV(SDR) 마스터링10020dimITU-R BT.1886, BT.2035
sRGB 기준 관측8016dim (주변 조도 64 lx)IEC 61966-2-1
HDR 마스터링 (확산 백색)203≈ 40dim (주변 5 cd/m²)ITU-R BT.2100, BT.2408
인쇄물 평가 부스 P1≈ 640 (2,000 lx)≈ 127averageISO 3664
맑은 날 야외수천 이상≥ 1,000average—
흔한 실수 — LA에 백색 휘도를 넣는다

LA는 백색이 아니라 순응장 평균이다. 80 cd/m² 모니터라면 LA = 16이지 80이 아니다. 또 XYZ는 Yw = 100으로 정규화한 상대 값으로 넣는다. 절대 휘도 정보는 오직 LA를 통해 모델에 들어간다. 절대 XYZ(cd/m²)를 그대로 넣고 LA도 따로 주면 휘도 효과가 이중으로 계산된다.

공간 유도: 동시 대비, 크리스프닝, 동화

가장 친숙한 외관 현상은 동시 대비(simultaneous contrast)다. 같은 회색 패치가 어두운 배경 위에서는 더 밝게, 밝은 배경 위에서는 더 어둡게 보인다. 색에서도 같다. 회색 패치는 빨간 배경 위에서 청록 쪽으로, 노란 배경 위에서 파랑 쪽으로 기운다. 배경의 반대색 방향으로 유도가 일어난다. 망막과 초기 시각 경로의 측면 억제(중심–주변 수용장)로 대략 설명되지만, 정량 모델은 아직 측면 억제 하나로 정리되지 않는다.

크리스프닝(crispening)은 두 자극의 차이가 배경과 비슷한 값 근처에서 더 크게 보이는 현상이다. 중간 회색 배경 위에서는 L* 48과 52의 차이가 뚜렷한데, 검은 배경 위에서는 같은 차이가 거의 안 보인다. 색차 실험에서 배경을 반드시 명시해야 하는 이유이고, ΔE 허용차가 회색 배경(L* ≈ 50)을 기준으로 정해지는 이유다.

동화(assimilation, von Bezold spreading)는 반대 방향이다. 패턴이 가늘면 회색이 사이에 낀 선의 색 쪽으로 끌려간다. 흰 선이 촘촘히 지나는 회색은 더 밝게, 검은 선이 지나는 회색은 더 어둡게 보인다. 대비와 동화 중 어느 것이 이기는지는 공간 주파수가 정한다. 큰 영역은 대비, 미세한 문양은 동화 쪽이다.

SIMULATOR

동시 대비·동화·크리스프닝 — 직접 맞춰 보기

현상
왼쪽 패치—
오른쪽 패치—
맞춘 유도량—
해볼 것: ① 동시 대비에서 ΔL*를 움직여 두 패치가 같아 보이게 맞춘 뒤 "실제 값 공개"를 켜 보자. 맞춘 ΔL*가 이 화면·이 방에서 당신의 대비 유도량이다(밝은 배경 쪽 패치를 몇 L* 올려야 했는가). ② 유도 세기를 0으로 내리면 유도량이 사라지는지 확인한다. ③ 동화 모드에서는 효과의 부호가 반대다. 화면을 멀리서 보면(공간 주파수↑) 동화가 더 강해진다. ④ 크리스프닝 모드에서 같은 ΔL* = 4 계단이 어느 배경에서 가장 잘 구분되는지 보자.
공학자 관점 — 측정 기하와 UI 배경

디스플레이 균일도나 색 정확도를 눈으로 판정할 때 패턴 배경이 검정인지 회색인지에 따라 판정이 달라진다. 영상 평가에서 주변을 회색으로 두고(ISO 3664, ITU-R BT.500의 관측 조건), 컬러 피커 UI가 견본 둘레를 중성 회색으로 두는 것도 같은 이유다. CAM16은 배경을 Yb라는 스칼라 하나로만 받으므로 동시 대비의 색상 방향 유도, 크리스프닝, 동화는 표현하지 못한다. 공간 구조까지 다루려면 이미지 외관 모델(§10)이 필요하다.

휘도 의존 현상: Hunt, Stevens, Bezold–Brücke

같은 상대 XYZ라도 절대 휘도 수준이 달라지면 외관이 바뀐다. 세 가지 효과가 대표적이다.

CAM16은 앞의 둘을 \(F_L\)로 표현한다. 순응 휘도 LA에서 정해지는 휘도 순응 인자다.

$$k = \frac{1}{5L_A+1},\qquad F_L = 0.2\,k^4\,(5L_A) + 0.1\,(1-k^4)^2\,(5L_A)^{1/3}$$
LA가 크면 \(F_L \approx 0.171\,L_A^{1/3}\). LA = 1, 16, 200, 1000 cd/m²에서 FL = 0.172, 0.431, 1.000, 1.710이다. 컬러풀니스 \(M = C\,F_L^{0.25}\), 밝기 \(Q \propto F_L^{0.25}\)이므로 둘 다 LA와 함께 증가한다.
Hunt 효과 — 초록 sRGB(60,160,80) M C 0.1101000 L_A [cd/m², 로그] 050 Stevens 효과 — 밝기 Q 백색 18% 회색 3% 흑색 0.1101000 L_A [cd/m², 로그] 0400
그림 9-4. 이 장의 CAM16 구현으로 계산한 값(D65, Yb = 20, average). 왼쪽: LA가 0.1 → 10,000 cd/m²로 커지는 동안 채도 C는 56 근처로 거의 일정하지만 컬러풀니스 M은 28.8 → 77.5로 커진다(Hunt). 오른쪽: 백색과 흑색의 밝기 차 Qw − Qk는 LA = 1에서 58, 1,000에서 236으로 벌어진다(Stevens).
심화 — 모델이 Stevens 효과를 표현하는 방식

CAM16에서 J는 A/Aw의 거듭제곱이라 LA에 거의 무관하다(빨강 sRGB에서 LA 1 → 10,000일 때 J 45.9 → 47.1). 밝기 Q는 \(\sqrt{J}\)에 \((A_w+4)F_L^{0.25}\)를 곱한 것이므로 비율 Q/Qw는 일정하고 차이가 커진다. 즉 CAM16의 Stevens 효과는 "밝기 척도 전체가 늘어나는" 형태다. Stevens의 원래 관찰(흑색의 밝기는 오히려 감소)보다는 약한 표현이며, 명도 대비 자체가 변하는 효과는 다음 절의 주변 조건 인자 c가 담당한다.

Bezold–Brücke 효과는 CIECAM02/CAM16에서 명시적으로 모델링되지 않는다. 색상 h는 반대색 신호 a, b의 각도이고, 비선형 압축이 세 채널에 같은 함수로 걸리므로 휘도에 따른 색상 이동은 매우 작게만 나온다. 위 계산에서 빨강의 h는 LA 1 → 10,000에서 27.36° → 27.59°로 0.2°밖에 변하지 않는다. 실제 실험에서 보고되는 이동은 이보다 크다.

Helmholtz–Kohlrausch 효과와 Abney 효과

측광량 Y는 V(λ)로 가중한 휘도이고, 1장에서 본 대로 "같은 Y = 같은 밝기"라는 가정 위에 서 있다. 그러나 채도가 높은 색은 같은 휘도의 무채색보다 더 밝게 보인다. 이것이 Helmholtz–Kohlrausch(H–K) 효과다. 효과는 색상에 따라 다르며, 파랑·자주·빨강에서 크고 노랑에서 작다. 같은 Y로 맞춘 파란 LED가 흰 LED보다 밝아 보이는 것, 컬러 표지판의 '밝기'가 휘도계 값과 어긋나는 것이 이 효과다.

H–K 효과의 근사 모델 가운데 Fairchild와 Pirrotta(1991)의 식은 CIELAB 위에서 바로 계산할 수 있다.

$$L^{**} = L^* + \bigl(2.5 - 0.025\,L^*\bigr)\Bigl(0.116\,\Bigl|\sin\frac{h_{ab}-90^\circ}{2}\Bigr| + 0.085\Bigr)\,C^*_{ab}$$
\(L^{**}\)는 H–K 효과를 반영한 등가 명도(같은 밝기로 보이는 무채색의 L*). 노랑(h ≈ 90°)에서 보정이 가장 작고 보라·파랑(h ≈ 270°) 쪽에서 가장 크다. 실험 데이터에 맞춘 근사식이며 표준은 아니다.
SIMULATOR

같은 휘도, 다른 밝기 — H–K 효과

견본 Y (모두 동일)—
가장 밝아 보일 색상—
가장 작은 H–K—
sRGB 가멋 밖—
해볼 것: 위 줄의 견본 8개는 모두 Y가 같다(L*가 같다). 회색 띠와 비교해 어느 견본이 밝아 보이는지 판단한 뒤 아래 그래프의 L** − L*(실선)와 비교하자. 점선은 같은 견본의 CAM16 J에서 같은 L* 회색의 J를 뺀 값으로, CAM16의 J가 H–K 효과를 거의 반영하지 않음을 보여 준다. 채도를 0으로 내리면 모든 차이가 사라진다. 견본에 × 표시가 있으면 sRGB 가멋 밖이라 화면에서 클리핑된 것이다.

예: L* = 60, C*ab = 40일 때 노랑(h = 90°)의 L**는 60 + 1.0 × 0.085 × 40 = 63.4, 파랑–보라(h = 270°)는 60 + 1.0 × 0.201 × 40 = 68.0이다. 휘도가 같은데 등가 명도가 4.6 차이 난다. ΔE00로 치면 쉽게 보이는 수준이다.

Abney 효과는 단색광에 백색광을 섞어 채도를 낮출 때 색상이 바뀌는 현상이다. 4장에서 본 대로 가산 혼합은 xy 색도도에서 직선이지만, 같은 색상으로 보이는 점들의 궤적은 곡선이다. 특히 파랑 영역에서 두드러져, 순수한 파랑에 흰색을 섞으면 보라 쪽으로 기운다.

W (백색) 단색 파랑 ~470 nm 가산 혼합 직선 등색상 곡선 직선 위의 혼합색 → 파랑보다 보라 쪽으로 보인다 결과 · CIELAB의 파랑 등색상선이 휜다 · 파랑 그라데이션이 보라로 변색 · ΔE00의 회전항, IPT·OKLab의 색상 선형성 설계 동기 개념도 · 곡률은 과장됨
그림 9-5. Abney 효과. 단색 파랑과 백색의 혼합은 색도도에서 직선(점선) 위에 놓이지만, 지각상 같은 색상을 유지하려면 곡선(실선)을 따라가야 한다. 가멋 매핑에서 채도를 줄일 때 "직선으로 백색점을 향해" 줄이면 파랑이 보라로 변하는 이유다.
공학자 관점 — 가멋 매핑과 그라데이션

Rec.2020 파랑을 sRGB로 매핑할 때 xy나 CIELAB에서 색상각을 고정하면 결과가 보라로 보이는 경우가 많다. 이 때문에 가멋 매핑과 그라데이션 보간은 색상 선형성이 개선된 공간(CAM16-UCS, IPT, OKLab, ICtCp)에서 하는 것이 일반적이다(5장, 14장). H–K 효과는 반대로 "같은 Y로 맞췄는데 버튼 색마다 밝기가 다르다"는 UI 문제로 나타난다(18장).

주변 조건과 Bartleson–Breneman 효과

Bartleson과 Breneman(1967)은 같은 사진을 밝은·어두운 주변에서 보게 하고 지각되는 명도 척도를 측정했다. 주변이 어두워질수록 장면의 지각 대비가 낮아진다. 어두운 영역이 덜 어둡게, 즉 들떠 보인다. 이를 보상하려면 재현 시스템 전체의 감마(장면 휘도 → 화면 휘도의 로그 기울기)를 올려야 한다. 흔히 인용되는 권장값은 average 주변에서 1.0, dim에서 약 1.25, dark에서 약 1.5다. 영화 필름이 TV보다 높은 시스템 감마로 설계된 이유가 이것이다.

CAM16은 이 효과를 주변 파라미터 c로 표현한다. 명도는 무채색 신호 비의 거듭제곱이다.

$$J = 100\left(\frac{A}{A_w}\right)^{c\,z}$$
c는 주변에 따른 지수, \(z = 1.48 + \sqrt{n}\), \(n = Y_b/Y_w\). c가 작을수록(어두운 주변) 같은 A/Aw에서 J가 커진다. 즉 어두운 부분이 더 밝게(들떠) 보인다.
주변SRFcNc대표 상황
average≥ 0.21.00.691.0표면색 관찰, 사무실 모니터, 인쇄 평가
dim0 – 0.20.90.590.9거실 TV, 마스터링 룸
dark00.80.5250.8영화관, 암실 프로젝션

두 조건에서 같은 J를 내려면 \(A_2/A_{w2} = (A_1/A_{w1})^{c_1/c_2}\)이어야 한다. A는 비선형 압축 후 신호라 휘도에 대해 대략 거듭제곱이므로, 필요한 톤 곡선은 기울기 \(c_1/c_2\)의 로그–로그 직선에 가깝다. average → dim이면 0.69/0.59 = 1.17, average → dark이면 0.69/0.525 = 1.31이다. Bartleson–Breneman/Hunt 권장값(1.25, 1.5)보다 조금 작지만 방향과 크기가 같다.

SIMULATOR

주변 조건 보정 곡선 — CAM16으로 계산한 시스템 감마

기준(원본) 주변
대상 주변
CAM16 대응 곡선항등(γ = 1)γ = 1.25, 1.5 참고선
유효 시스템 감마 (Y 2–50%)—
18% 회색 → 대상 Y—
18% 회색의 J (원본 그대로 표시 시)—
c₁ / c₂—
해볼 것: 각 회색(가로축, 원본 조건의 상대 휘도)에 대해 원본 조건에서의 CAM16 J, C, h를 구하고, 역방향 모델로 대상 조건에서 같은 J, C, h를 내는 Y를 찾았다(세로축). 기본값은 sRGB 관측(average, LA 16) → 영화관(dark, LA 9.6)이다. 18% 회색은 약 10.5%로 내려가야 같은 명도로 보인다. 아래 띠는 위가 원본, 아래가 보정된 계조다. 대상 LA를 바꿔도 기울기는 거의 변하지 않는다는 점에 주목하자. CAM16에서 이 보정을 지배하는 것은 휘도 수준이 아니라 c다.
실무 수치 — 시스템 감마

SDR 방송은 카메라 OETF(BT.709, 대략 0.5 거듭제곱)와 디스플레이 EOTF(BT.1886, 2.4)를 곱한 전체 감마가 약 1.2로, dim 주변 보정을 포함한다. HLG(ITU-R BT.2100)는 디스플레이 최대 휘도 \(L_W\)에 따라 시스템 감마를 \(\gamma = 1.2 + 0.42\log_{10}(L_W/1000)\)로 바꾸도록 규정한다. 화면이 밝을수록(Stevens 효과로 대비가 높아 보이므로) 감마를 더 올리는 구조이며, ITU-R BT.2390은 주변 휘도에 따른 추가 조정도 다룬다.

CIECAM02와 CAM16의 구조

CIECAM02(CIE 159:2004)는 Hunt 모델과 RLAB, LLAB 등을 정리해 만든 CIE 권장 모델이다. 실무에서 쓰이는 동안 몇 가지 문제가 드러났다. 순응 변환(CAT02)과 원추 공간(Hunt–Pointer–Estévez)이 서로 달라 두 번 행렬을 거치고, 가멋 경계 근처의 일부 색에서 음수 신호가 생겨 계산이 깨졌다. Li 등(2017)의 CAM16은 하나의 행렬 M16으로 순응과 압축을 모두 수행해 구조를 단순화하고 이 문제를 줄였다. CIE는 이를 CIECAM16(CIE 248:2022)으로 채택했다.

XYZ Y_w = 100 기준 M₁₆ → RGB 원추 유사 신호 CAT16 순응 R_c = D_R · R 비선형 압축 R_a (F_L, ^0.42) 반대색 신호 a, b, A 관측 조건 XYZ_w · L_A · Y_b · surround(F, c, N_c) → D, F_L, n, z, N_bb, A_w 외관 상관량 h = atan2(b, a), H (색상 사분위) J = 100 (A/A_w)^(cz) Q = (4/c)√(J/100)(A_w+4)F_L^¼ C = t^0.9 √(J/100)(1.64−0.29ⁿ)^0.73 M = C F_L^¼ , s = 100√(M/Q) CIECAM02와의 차이 · CAT02 + HPE 두 행렬 → M₁₆ 하나 · D를 [0, 1]로 제한 · 나머지 식은 동일
그림 9-6. CAM16 순방향 계산 흐름. 관측 조건에서 상수를 먼저 구하고(백색도 같은 파이프라인을 통과시켜 Aw를 얻는다), 자극을 순응 → 압축 → 반대색 신호로 바꾼 뒤 각 외관 상관량을 계산한다.

1단계 — 관측 조건 상수

$$D = F\left[1 - \frac{1}{3.6}\,e^{(-L_A-42)/92}\right]\ (\text{0–1로 제한}),\quad n = \frac{Y_b}{Y_w},\quad z = 1.48+\sqrt n,\quad N_{bb}=N_{cb}=0.725\,n^{-0.2}$$
D는 순응 정도(1이면 완전 순응). 자체 발광 화면처럼 관측자가 완전히 순응한다고 볼 수 있으면 D = 1로 두기도 한다.

2단계 — CAT16 순응

$$\begin{bmatrix}R\\G\\B\end{bmatrix} = M_{16}\begin{bmatrix}X\\Y\\Z\end{bmatrix},\quad M_{16}=\begin{bmatrix}0.401288 & 0.650173 & -0.051461\\ -0.250268 & 1.204414 & 0.045854\\ -0.002079 & 0.048952 & 0.953127\end{bmatrix},\quad R_c = \left(D\frac{Y_w}{R_w} + 1 - D\right)R$$
G, B도 같은 식. Rw, Gw, Bw는 백색 XYZw에 M16을 곱한 값. D = 1이면 von Kries 스케일링과 같다(8장).

3단계 — 비선형 압축과 반대색 신호

$$R_a = \frac{400\,(F_L R_c/100)^{0.42}}{(F_L R_c/100)^{0.42} + 27.13} + 0.1$$ $$a = R_a - \frac{12G_a}{11} + \frac{B_a}{11},\quad b = \frac{R_a + G_a - 2B_a}{9},\quad A = \left(2R_a + G_a + 0.05B_a - 0.305\right)N_{bb}$$
음수 Rc는 부호를 유지해 |Rc|로 계산한다. 압축 함수는 낮은 휘도에서 거듭제곱(0.42), 높은 휘도에서 포화하는 Michaelis–Menten형이다. Aw는 백색에 대한 A.

4단계 — 외관 상관량

$$h = \operatorname{atan2}(b,a),\quad e_t = \tfrac14\left[\cos\!\left(h\tfrac{\pi}{180}+2\right)+3.8\right],\quad t = \frac{\frac{50000}{13}N_c N_{cb}\,e_t\sqrt{a^2+b^2}}{R_a + G_a + \frac{21}{20}B_a}$$ $$J = 100\left(\frac{A}{A_w}\right)^{cz},\quad Q = \frac4c\sqrt{\frac{J}{100}}\,(A_w+4)\,F_L^{0.25},\quad C = t^{0.9}\sqrt{\frac{J}{100}}\,(1.64-0.29^n)^{0.73}$$ $$M = C\,F_L^{0.25},\qquad s = 100\sqrt{M/Q}$$
색상 사분위 H는 고유 색상 각도 hi = 20.14(빨강), 90.00(노랑), 164.25(초록), 237.53(파랑)와 이심률 ei = 0.8, 0.7, 1.0, 1.2로 \(H = H_i + \frac{100\,(h-h_i)/e_i}{(h-h_i)/e_i + (h_{i+1}-h)/e_{i+1}}\). H = 0, 100, 200, 300이 각각 고유 빨강·노랑·초록·파랑이다.
SIMULATOR

CAM16 계산기 — 순응 휘도에 따른 Q·M 변화

프리셋
주변
입력 (D65, Yw=100)—
명도 J—
채도 C—
색상 h / H—
밝기 Q—
컬러풀니스 M—
포화도 s—
FL · D · z · Aw—
해볼 것: LA를 0.1에서 10,000 cd/m²까지 움직이면 J와 C(점선)는 거의 그대로인데 Q와 M(실선)은 계속 커진다. 이것이 모델 안의 Hunt·Stevens 효과다. 주변을 dark로 바꾸면 J가 커지고(같은 색이 더 밝은 명도로 보임) Q는 c가 작아져 오히려 커진다. 회색 프리셋에서 C가 0이 아닌 이유는 D < 1이라 순응이 불완전하기 때문이다. LA를 올려 D → 1이 되면 C가 0에 가까워진다.

구현 검증에는 CIE 159:2004의 CIECAM02 예제가 표준처럼 쓰인다. XYZ = (19.31, 23.93, 10.14), XYZw = (98.88, 90.00, 32.03), LA = 200, Yb = 18, average에서 CIECAM02는 J = 48.03, C = 38.78, h = 191.05, Q = 183.12, s = 46.02를 준다. 이 장의 스크립트에서 행렬만 CAT02 + HPE로 바꾸면 이 값이 소수 넷째 자리까지 재현된다. 같은 입력을 CAM16으로 계산하면 J = 47.38, C = 40.64, h = 191.27, Q = 181.87, s = 47.27로, 행렬 차이 때문에 수 % 다르다. 또 D65 백색(LA = 318.31, Yb = 20)에서 XYZ = (19.01, 20.00, 21.78)에 대해 J = 41.73, C = 0.1034, h = 217.07을 주며, 이는 colour-science 라이브러리의 CAM16 예제값과 일치한다.

표준 관측 조건의 실제 수치 하나로 정리하자. sRGB 빨강 #FF0000(D65, LA = 16, Yb = 20, average)의 CAM16 값은 J = 46.14, C = 112.92, h = 27.41°, Q = 110.9, M = 91.5, s = 90.8이다. 같은 빨강을 LA = 1,000(밝은 야외 수준)에서 보면 J = 46.67, C = 114.34로 거의 같지만 Q = 262.0, M = 130.8로 커진다.

구현 시 흔한 실수

① XYZ를 0–1 스케일로 넣는다. 식의 상수(FLRc/100, 27.13 등)는 Yw = 100을 전제로 한다. ② 색상각을 degree로 계산한 뒤 et의 cos 안에 그대로 넣는다(+2는 라디안이다). ③ D를 백색 순응 휘도 대신 백색 휘도로 계산한다. ④ 음수 Rc에서 0.42 거듭제곱을 그대로 취해 NaN을 만든다. 부호를 분리해야 한다.

역방향 모델과 대응색

CAM16은 해석적으로 역변환된다. J, C, h(또는 Q, M, h)와 관측 조건이 주어지면 t = (C / (√(J/100)(1.64 − 0.29n)0.73))1/0.9, A = Aw(J/100)1/(cz)에서 a, b를 풀고, Ra, Ga, Ba → 압축 역함수 → DR로 나누기 → M16−1로 XYZ를 얻는다. 한 조건의 색을 순방향으로 보내고 다른 조건에서 역방향으로 돌아오면 대응색(corresponding colour), 즉 다른 조건에서 같은 외관을 내는 XYZ가 나온다. 색 관리 시스템(16장)의 외관 기반 변환이 이 구조다.

SIMULATOR

대응색 — 조건이 바뀌어도 같은 외관을 내는 XYZ

원본 색 (ColorChecker 근사)
조건 1 주변
조건 2 주변
일치시킬 속성
조건 1: XYZ → J, C, h—
조건 1: Q, M—
조건 2에 필요한 XYZ—
Y 비 / 판정—
해볼 것: 기본값은 밝은 평가 부스(average, LA ≈ 126)에서 본 색을 영화관(dark, LA 9.6)에서 같은 명도·채도로 보이게 하는 경우다. 상대 일치에서는 어두운 주변 때문에 Y를 낮춰야 한다. 절대 일치로 바꾸면 조건 2의 휘도가 낮아 같은 밝기 Q를 내려면 백색보다 밝은 Y(> 100)가 필요해지는 경우가 많다. 화면 백색보다 밝은 색은 만들 수 없으므로, 어두운 환경에서 밝은 환경의 "절대 외관"을 재현하는 것은 원리적으로 불가능하다. 오른쪽 견본은 상대 XYZ를 sRGB로 그린 것이며 Y > 100이나 가멋 밖은 클리핑된다.

CAM16-UCS와 색차

CAM16의 J, M, h는 외관 속성을 예측하지만, 그 공간에서의 유클리드 거리가 지각 색차와 비례하지는 않는다. Luo, Cui, Li(2006)는 CIECAM02 위에 색차 데이터에 맞춘 비선형 변환을 얹어 균등 색공간 CAM02-UCS를 만들었고, 같은 식을 CAM16에 적용한 것이 CAM16-UCS다(7장의 CIELAB·ΔE00와 비교).

$$J' = \frac{(1+100c_1)\,J}{1+c_1 J},\qquad M' = \frac{1}{c_2}\ln(1+c_2 M),\qquad a' = M'\cos h,\quad b' = M'\sin h$$ $$\Delta E' = \sqrt{\left(\Delta J'/K_L\right)^2 + \Delta a'^2 + \Delta b'^2}$$
UCS: KL = 1, c1 = 0.007, c2 = 0.0228. 큰 색차용 LCD: KL = 0.77, c2 = 0.0053, 작은 색차용 SCD: KL = 1.24, c2 = 0.0363(c1은 모두 0.007). J′ = 1.7J/(1 + 0.007J)이므로 J = 100이면 J′ = 100.

CIELAB과 달리 CAM16-UCS의 색차는 관측 조건에 따라 달라진다. 같은 두 색이라도 LA가 커지면 M이 커지므로 유채색 방향의 거리 Δa′, Δb′가 늘어난다. 밝은 환경에서 색 차이가 더 잘 보인다는 경험과 일치한다. 대신 M′의 로그 압축 때문에 증가는 완만하다.

SIMULATOR

ΔE76 · ΔE00 · ΔE CAM16-UCS 비교

주변
ΔE*ab (76)—
ΔE00—
ΔE CAM16-UCS—
J′a′b′ (색 1 / 색 2)—
해볼 것: 그래프는 a′b′ 평면이며 외곽선은 sRGB 가멋의 최대 채도 경계(R→Y→G→C→B→M)를 같은 조건으로 변환한 것이다. 기본값은 파랑과 그보다 약간 보라 쪽 파랑으로, CIELAB(ΔE76)이 파랑 영역의 차이를 과대평가하는 경향이 ΔE00와 CAM16-UCS에서 어떻게 줄어드는지 보자. LA를 올리면 가멋 외곽선과 ΔE CAM16-UCS가 함께 커진다(Hunt 효과). 회색끼리 비교하면 세 척도가 비슷해진다.
공학자 관점 — 어떤 ΔE를 쓸까

산업 허용차의 계약·규격은 여전히 ΔE00(ISO/CIE 11664-6)가 기본이다. CAM16-UCS는 관측 조건이 서로 다르거나 HDR처럼 휘도 수준이 크게 바뀌는 경우, 그리고 가멋 매핑·보간처럼 공간 자체가 필요한 경우에 장점이 있다. 둘을 섞어 보고할 때는 반드시 어느 척도인지와 관측 조건(LA, Yb, 주변)을 함께 적어야 한다. CAM16-UCS의 "ΔE = 1"과 ΔE00의 "1"은 같은 크기가 아니다.

응용: 주변광 적응, 영화관, HDR, 이미지 외관 모델

디스플레이의 주변광 적응

스마트폰과 노트북은 조도 센서(일부는 색온도 센서)로 주변광을 측정해 화면을 조정한다. 외관 모델의 관점에서 이것은 관측 조건 입력을 실시간으로 바꾸고, 같은 외관을 유지하는 대응색을 구하는 문제다.

주변광 센서 E [lx], CCT 관측 조건 추정 L_A, 주변, 백색점 ① 백색 휘도 (밝기) ② 톤 곡선 (감마·흑 리프트) ③ 백색점 (CAT) 패널 구동 EOTF · 3D LUT 밝은 환경: 반사광이 흑을 들어 올림(ambient flare) → 대비 감소 → 흑 근처를 더 내리고 백색 휘도를 올린다 어두운 환경: Bartleson–Breneman → 같은 콘텐츠도 대비가 약해 보임 → 감마를 올리고 백색 휘도는 낮춘다 따뜻한 실내 조명: 관측자의 백색이 이동 → CAT로 화면 백색을 부분 이동(완전 순응은 아님)
그림 9-7. 주변광 적응 디스플레이의 구조. 밝기만 바꾸는 단순 자동 밝기와 달리 외관 기반 보정은 톤 곡선과 백색점까지 함께 바꾼다. 화면은 자체 발광이라 관측자가 주변광과 화면 백색 사이 어딘가에 순응하므로 백색점 이동은 부분적으로만 한다.

밝은 환경에서는 외관 효과보다 먼저 물리적 문제가 생긴다. 화면 표면이 반사하는 주변광이 모든 화소에 더해져 흑 수준이 올라간다. 반사율 1%의 화면에 10,000 lx가 비치면 반사 휘도는 약 10,000 × 0.01 / π ≈ 32 cd/m²로, 1,000 cd/m² 백색이라도 명암비는 약 32:1로 떨어진다. 이 플레어를 측정 모델로 더한 뒤(13장), 남은 지각 차이를 외관 모델로 보정하는 두 단계가 정석이다.

영화관과 마스터링

영화는 dark 주변, 48 cd/m² 백색에서 보이도록 그레이딩된다. 같은 마스터를 dim 거실 TV용으로 바꿀 때 컬러리스트가 대비를 낮추고 중간 톤을 올리는 '트림 패스'를 하는 이유가 §7의 c1/c2다. 반대로 TV 마스터를 영화관에 걸면 대비가 부족하고 들떠 보인다.

HDR 톤 매핑

HDR 콘텐츠를 피크 휘도가 낮은 화면에 표시하는 톤 매핑(14장)은 휘도 범위를 압축하는 동시에 Hunt·Stevens 효과로 인한 외관 변화를 상쇄해야 한다. 휘도를 줄이면 컬러풀니스가 줄어드므로 채도를 약간 올려 보상하는 것이 일반적이고, 반대로 색 채널마다 독립적으로 톤 곡선을 걸면 Abney·H–K 효과와 겹쳐 색상이 틀어진다. ICtCp(ITU-R BT.2100)와 같은 지각 기반 공간에서 명도와 색을 분리해 처리하는 것이 이 때문이다.

이미지 외관 모델

CAM16은 균일한 배경 위 패치 하나를 다룬다. 실제 영상은 화소마다 주변이 다르므로, 순응 휘도·백색·배경을 영상의 저역 통과 필터로 화소마다 추정하는 이미지 외관 모델이 제안되었다. Fairchild와 Johnson의 iCAM과, HDR 렌더링을 위한 iCAM06이 대표적이다. 이들은 공간 필터로 국소 순응을 계산해 동시 대비와 국소 톤 매핑을 함께 다루지만, 아직 CIE 표준으로 정해진 이미지 외관 모델은 없다.

정리 — 언제 외관 모델이 필요한가

원본과 재현의 관측 조건이 같다면 XYZ(또는 CIELAB) 일치로 충분하다. 백색점만 다르면 CAT(8장)로 충분하다. 휘도 수준이나 주변 조건이 다르면 CAM16 같은 외관 모델이 필요하다. 공간 구조(문양, 국소 대비)까지 문제면 이미지 외관 모델의 영역이다.

핵심 정리

  1. XYZ는 같은 조건에서의 일치만 보장한다. 외관은 공간 문맥, 순응 휘도·백색, 주변 조건에 따라 달라진다.
  2. 절대 속성은 밝기 Q, 컬러풀니스 M. 상대 속성은 명도 J(백색 기준), 채도 C(백색 기준), 포화도 s(자기 밝기 기준). 색상 h, H.
  3. 동시 대비·크리스프닝·동화는 공간 유도 현상으로, 배경을 스칼라 Yb로만 받는 CAM16은 표현하지 못한다.
  4. Hunt(휘도↑ → M↑), Stevens(휘도↑ → 밝기 대비↑)는 CAM16에서 FL을 통해 나타난다. LA 1 → 1,000에서 FL 0.172 → 1.710.
  5. H–K 효과(고채도 색이 더 밝아 보임)와 Abney 효과(백색 혼합 시 색상 이동, 특히 파랑 → 보라)는 Y나 xy 직선으로 설명되지 않는다.
  6. Bartleson–Breneman: 어두운 주변에서 지각 대비가 감소한다. CAM16에서 필요한 보정 기울기는 c1/c2 = 1.17(average→dim), 1.31(average→dark).
  7. CAM16 = M16 → CAT16(D) → 비선형 압축(FL, 0.42) → a, b, A → J, C, h, Q, M, s. 해석적 역변환으로 대응색을 구한다.
  8. sRGB #FF0000(LA 16, Yb 20, average): J = 46.14, C = 112.92, h = 27.41°, M = 91.5.
  9. CAM16-UCS: J′ = 1.7J/(1 + 0.007J), M′ = ln(1 + 0.0228M)/0.0228. 색차가 관측 조건에 의존한다.

확인 퀴즈

1. 맑은 날과 흐린 날 같은 빨간 우체통을 본다. 같은 장면의 흰 벽과 비교해 거의 변하지 않는 속성은?

명도와 채도는 비슷하게 조명된 백색을 기준으로 한 상대 속성이라 조명 수준이 바뀌어도 거의 일정하다. 밝기와 컬러풀니스는 절대 속성이라 맑은 날 더 크다.

2. 빨간 공의 그늘진 면과 밝은 면에서 거의 같게 유지되는 양은?

포화도는 자기 자신의 밝기에 대한 컬러풀니스다. 그늘에서는 밝기와 컬러풀니스가 함께 줄어 비율이 유지된다. 채도는 장면 백색 기준이라 그늘에서 줄어든다.

3. 80 cd/m² 백색의 모니터를 회색 세계 가정(Yb = 20)으로 볼 때 CAM16의 LA로 알맞은 값은?

LA = LW·Yb/Yw = 80 × 0.2 = 16 cd/m². 백색 휘도를 그대로 넣는 것은 흔한 실수다.

4. CAM16에서 LA를 10배로 올렸을 때 크게 증가하는 것은?

Q와 M은 FL0.25에 비례하는 절대 속성이라 LA와 함께 증가한다(Hunt·Stevens). J, C는 A/Aw와 t의 함수라 거의 그대로다.

5. 같은 영상을 dim 주변의 TV에서 dark 주변의 영화관으로 옮길 때 같은 외관을 내려면?

어두운 주변에서는 지각 대비가 떨어진다(Bartleson–Breneman). CAM16에서는 c가 0.59 → 0.525로 작아지므로 기울기 0.59/0.525 ≈ 1.12배의 감마 증가가 필요하다.

6. Y가 같은 파랑–보라 견본과 노랑 견본 중 더 밝아 보이는 쪽과 그 효과 이름은?

H–K 효과는 노랑에서 가장 작고 파랑·보라·빨강에서 크다. Fairchild–Pirrotta 근사로 L* 60, C* 40에서 노랑 L** 63.4, 파랑–보라 68.0이다.

7. 순수한 파랑을 백색 쪽으로 xy에서 직선으로 섞으면 보라 쪽으로 보이는 현상은?

Abney 효과는 백색 혼합(채도 변화)에 따른 색상 이동이다. Bezold–Brücke는 휘도 변화에 따른 색상 이동이다.

8. CAM16이 CIECAM02와 구조적으로 다른 점은?

CIECAM02는 CAT02로 순응한 뒤 Hunt–Pointer–Estévez 공간으로 바꿔 압축했다. CAM16은 M16 하나로 두 단계를 수행하고 나머지 식은 거의 그대로다.

9. 회색 배경 위의 L* 48과 52 패치가 검은 배경 위에서보다 더 잘 구분되는 현상과, 그것을 CAM16이 표현하는가?

크리스프닝은 배경과 비슷한 값 근처에서 차이가 확대되어 보이는 현상이다. CAM16은 배경을 Yb로 받아 z와 Nbb에만 반영하므로 이런 국소 대비 확대는 표현하지 못한다.

10. CAM16-UCS에서 J = 100일 때 J′는?

J′ = 1.7 × 100 / (1 + 0.7) = 100. J′는 J만의 함수이며, 관측 조건 의존성은 J와 M을 통해 들어온다.