HDR과 광색역 영상
SDR 영상의 코드값 255는 "그 화면이 낼 수 있는 가장 밝은 흰색"이라는 상대적인 약속이었다. HDR 영상의 PQ 코드값은 다르다. 10비트 풀 레인지 코드 769는 신호 정의상 1,000 cd/m²를 뜻한다. 신호가 절대 휘도를 실어 나르기 시작하면서 전달 함수는 인간 시각의 대비 감도에 맞춰 다시 설계되었고, 화면이 그 휘도를 다 내지 못할 때 어떻게 줄일지(톤 매핑)가 새로운 공학 문제가 되었다.
- SDR(BT.1886)의 상대 휘도 인코딩과 HDR(PQ)의 절대 휘도 인코딩을 구분하고, 장면·디스플레이의 휘도 범위를 수치로 말한다.
- SMPTE ST 2084 PQ의 EOTF와 역함수를 정확한 상수로 계산하고, 비트 깊이별 코드 간격(ΔL/L)을 대비 임계와 비교한다.
- HLG(ARIB STD-B67, BT.2100)의 장면 기준 OETF와 시스템 감마 \( \gamma = 1.2 + 0.42\log_{10}(L_W/1000) \)를 계산한다.
- BT.2100의 ICtCp 변환과 ΔEITP(BT.2124)를 구현하고, 10비트 PQ 한 코드의 색차를 구한다.
- Reinhard·필름형·BT.2390 EETF 톤 커브를 비교하고, 채널별 톤 매핑이 만드는 색상 이동을 색도도 위에서 확인한다.
- 정적·동적 HDR 메타데이터(ST 2086, MaxCLL/MaxFALL, ST 2094)와 SDR↔HDR 변환의 기준 백색 203 cd/m²를 설명한다.
상대 휘도에서 절대 휘도로
6장에서 본 SDR 영상의 전달 함수는 상대적이다. ITU-R BT.1886은 기준 디스플레이의 EOTF를 \( L = a\,\max(V+b,0)^{2.4} \)로 정의하는데, 계수 \(a, b\)는 그 디스플레이의 백색 휘도 \(L_W\)와 흑 휘도 \(L_B\)로부터 정해진다. 신호 \(V=1\)은 "100 cd/m²"가 아니라 "이 화면의 백색"이다. 마스터링 기준 환경(어두운 방, 약 100 cd/m²의 기준 모니터)이 관례로 정해져 있을 뿐, 소비자가 300 cd/m² 모니터로 보면 영상 전체가 세 배 밝아진다. 비율(대비)만 보존되고 절대 밝기는 화면이 정한다.
이 방식은 화면의 밝기 범위가 대략 0.1–300 cd/m²로 비슷하던 시절에는 문제가 없었다. 그러나 실제 장면의 휘도는 훨씬 넓다. 아래 그림은 장면과 디스플레이의 휘도를 한 로그 축에 놓은 것이다. 장면 값은 조건에 따라 한두 자릿수씩 달라지는 개략적인 크기로만 읽어야 한다.
장면은 10자릿수 이상에 걸치지만, 사람은 한 시야 안에서 그 전부를 동시에 보지 않는다. 눈은 적응 상태에 따라 한 번에 대략 4–5자릿수 정도의 범위를 구분하고, 적응을 바꿔 가며 나머지를 덮는다. HDR 영상의 목표는 장면을 그대로 재현하는 것이 아니라, 밝은 하이라이트와 깊은 그림자를 SDR보다 훨씬 넓은 디스플레이 범위 안에서 의도대로 재현하는 것이다. 그러려면 "이 픽셀은 몇 cd/m²로 보여야 한다"를 신호에 담아야 하고, 그 신호는 사람 눈이 구분하는 단계보다 촘촘해야 한다. 이 두 요구에서 PQ가 나왔다.
| 항목 | SDR (BT.709/BT.1886) | HDR PQ (ST 2084 / BT.2100) | HDR HLG (BT.2100) |
|---|---|---|---|
| 신호의 의미 | 디스플레이 기준, 상대 휘도 | 디스플레이 기준, 절대 휘도 | 장면 기준, 상대 장면광 |
| 정의된 함수 | EOTF(γ 2.4) | EOTF(PQ) | OETF(HLG) + OOTF(시스템 감마) |
| 부호화 상한 | 화면 백색 = 1 | 10,000 cd/m² | 장면광 1 = 디스플레이 피크 \(L_W\) |
| 기준 백색(그래픽 백색) | 100 cd/m² 관례 | 203 cd/m² (BT.2408) | 신호 75% (1,000 cd/m² 화면에서 203 cd/m²) |
| 원색 | BT.709 | BT.2020 | BT.2020 |
| 비트 깊이 | 8 / 10 | 10 / 12 | 10 / 12 |
| 메타데이터 | 없음 | 정적(HDR10) 또는 동적 | 없음(설계상 불필요) |
공학자 관점 — 단위와 용어. HDR 업계는 cd/m²를 흔히 "nit"이라 부른다(1 nit = 1 cd/m²). 이 장에서도 두 표기를 섞어 쓴다. "SDR 100 nit"는 기준 마스터링 관례일 뿐 BT.1886 자체에 박힌 값이 아니라는 점, 반면 PQ의 10,000 cd/m²는 SMPTE ST 2084 식에 상수로 들어 있는 절대 상한이라는 점을 구분하자.
PQ: 지각 양자화 곡선
PQ(Perceptual Quantizer)는 SMPTE ST 2084로 표준화되고 ITU-R BT.2100에 포함된 EOTF다. 정규화 신호 \(E' \in [0,1]\)을 디스플레이 휘도 \(F_D \in [0, 10000]\) cd/m²로 직접 대응시킨다. 감마 곡선처럼 하나의 거듭제곱이 아니라, 유리함수를 거듭제곱으로 감싼 형태다.
상수들이 4096이나 16384를 분모로 갖는 것은 고정소수점 구현을 염두에 둔 것이다. \(c_1 = c_3 - c_2 + 1\)이므로 \(Y = 1\)이면 분수가 정확히 1이 되어 \(E' = 1\)이고, \(Y=0\)이면 \(E' = c_1^{m_2} \approx 7.3\times10^{-7}\)으로 사실상 0이다. 즉 코드 전 범위가 0–10,000 cd/m²에 남김없이 쓰인다.
아래 표는 대표 휘도의 PQ 신호값이다. 10비트 "풀 레인지"는 \(\mathrm{round}(1023E')\), "리미티드 레인지"(방송·영상 파일의 일반형)는 \(\mathrm{round}(64 + 876E')\)이다(레인지 개념은 15장). 0–100 cd/m²에 10비트 풀 레인지 코드의 절반 남짓(0–520)이 할당된다는 점이 PQ의 성격을 요약한다. 어두운 쪽을 촘촘히, 밝은 쪽을 성기게 쓴다.
| 휘도 (cd/m²) | PQ \(E'\) | 10비트 풀 | 10비트 리미티드 | 12비트 풀 | 비고 |
|---|---|---|---|---|---|
| 0.01 | 0.0215 | 22 | 83 | 88 | OLED급 흑 |
| 0.1 | 0.0623 | 64 | 119 | 255 | |
| 1 | 0.1499 | 153 | 195 | 614 | |
| 10 | 0.2997 | 307 | 327 | 1227 | |
| 100 | 0.5081 | 520 | 509 | 2081 | SDR 기준 백색 관례 |
| 203 | 0.5807 | 594 | 573 | 2378 | HDR 기준 백색(BT.2408) |
| 1,000 | 0.7518 | 769 | 723 | 3079 | 흔한 마스터링 피크 |
| 4,000 | 0.9026 | 923 | 855 | 3696 | 고급 마스터링 피크 |
| 10,000 | 1.0000 | 1023 | 940 | 4095 | PQ 상한 |
흔한 실수 — PQ 코드값으로 평균 내기. PQ 신호는 휘도의 강한 비선형 함수다. 1 nit(0.150)와 1,000 nit(0.752) 두 픽셀의 PQ 평균 0.451은 약 55 nit에 해당하지만, 광량 평균은 500.5 nit다. 스케일링·블러·합성·평균 휘도(MaxFALL) 계산은 반드시 EOTF로 선형 nit로 되돌린 뒤 해야 한다(6장의 "선형광 연산" 원칙과 같다).
양자화와 대비 감도: 왜 이런 곡선인가
코드값 하나를 올렸을 때의 휘도 변화 \( \Delta L \)를 그 휘도로 나눈 Weber 비율 \( \Delta L / L \)이 그 휘도에서 사람이 볼 수 있는 최소 대비(대비 임계)보다 작으면, 매끈한 그라데이션에서 계단(밴딩)이 보이지 않는다. 반대로 임계보다 크면 하늘이나 어두운 벽에 등고선 같은 띠가 생긴다.
이 식에서 곡선 설계의 세 가지 극단이 보인다.
- 순수 로그 \( E' \propto \log L \): \( d\ln L/dE' \)가 상수이므로 모든 휘도에서 \(\Delta L/L\)이 같다. 0.001–10,000 nit(7자릿수)를 10비트로 나누면 \(10^{7/1023}-1 \approx 1.59\%\)로 일정하다.
- 거듭제곱(감마) \( E' = (L/L_{max})^{1/\gamma} \): \( \Delta L/L \approx \gamma/(N E') \)로 어두울수록 급격히 커진다. 감마 2.4를 10,000 nit까지 늘리면 밝은 쪽은 지나치게 촘촘하고 어두운 쪽은 밴딩이 심하다.
- 대비 감도에 맞춘 곡선: 사람의 대비 임계는 밝은 곳에서는 거의 일정(Weber 영역)하고, 어두워질수록 커진다(드브리스–로즈 영역). 이 모양을 따르면 같은 비트로 가장 넓은 범위를 덮는다. PQ가 이 방식이다.
PQ의 설계 동기는 Barten의 대비 감도 모델이다. 각 휘도 적응 상태에서 가장 민감한 공간 주파수의 대비 임계를 모아 놓은 곡선("Barten ramp")을 기준으로 삼고, 12비트 PQ의 코드 간격이 이 임계를 전 범위에서 밑돌도록 곡선을 맞추었다. 이것은 최악 조건(최적 주파수, 완전 적응, 잡음 없는 화면)의 임계라서 보수적이다. 10비트 PQ는 이 임계보다 약간 위에 놓이지만, 실제 영상은 카메라 잡음과 디더 덕분에 10비트 배포에서도 밴딩이 거의 보이지 않는다는 것이 업계 경험이다.
비트 깊이와 곡선에 따른 코드 간격 ΔL/L
시뮬레이터에서 100 nit의 값을 읽어 보면, 10비트 PQ의 코드 간격은 약 0.98%, 12비트는 0.24%다. 같은 10비트라도 감마 2.4를 10,000 nit까지 늘린 곡선은 100 nit에서 1.6%, 1 nit에서 11%로, 어두운 영역이 PQ보다 5배 이상 성기다. 반대로 5,000 nit에서는 감마 곡선이 0.31%로 PQ(0.92%)보다 촘촘하다 — 아무도 구분하지 못하는 밝은 쪽 차이에 코드를 낭비하는 셈이다.
공학자 관점 — 파이프라인의 비트 깊이. 배포는 10비트 PQ로 충분하지만, 그레이딩·합성·톤 매핑 같은 중간 처리는 부동소수점(half float 이상)이나 12비트 이상에서 하는 것이 원칙이다. 10비트 PQ 신호에 게인이나 커브를 적용하고 다시 10비트로 양자화하면 코드 간격이 벌어진 구간에서 밴딩이 드러난다. 디스플레이 쪽 패널 구동도 10비트 + FRC/디더링을 흔히 쓴다.
HLG: 장면 기준 하이브리드 로그-감마
HLG(Hybrid Log-Gamma)는 NHK와 BBC가 방송용으로 설계해 ARIB STD-B67로 먼저 표준화되었고, BT.2100에 PQ와 함께 들어갔다. PQ와 철학이 반대다. 신호가 나타내는 것은 디스플레이 휘도가 아니라 카메라가 본 장면광의 상대값 \(E \in [0,1]\)이며, 정의의 중심은 OETF다.
아래쪽 절반의 신호(\(E' \le 0.5\))는 제곱근, 즉 감마 2에 해당하는 전통적인 카메라 곡선과 거의 같다. 그래서 HLG 신호를 BT.2020 원색의 SDR 디스플레이에 그대로 넣어도 중간톤까지는 그럴듯한 영상이 나온다(SDR 호환성). 위쪽 절반은 로그로 바뀌어 하이라이트를 압축한다. 로그 구간의 Weber 비율은 일정하므로, 밝은 영역에서도 코드가 효율적으로 쓰인다.
HLG에서 디스플레이 휘도는 OETF의 역함수로 장면광을 되찾은 뒤, 디스플레이가 OOTF(Opto-Optical Transfer Function)를 적용해 정한다. BT.2100의 OOTF는 장면 휘도 \(Y_S\)에 시스템 감마를 걸고 그 비율을 세 채널에 똑같이 곱한다. 채널별로 감마를 걸지 않으므로 색도가 보존된다.
시스템 감마가 1보다 큰 이유는 9장의 외관 효과 때문이다. 밝은 장면을 어둑한 시청 환경의 화면으로 보면 대비가 약해 보이므로(Stevens·Bartleson–Breneman 효과), 재생 쪽에서 감마를 조금 올려 보상한다. 화면이 밝을수록 필요한 보상이 커지므로 \(\gamma\)가 \(L_W\)에 따라 오른다. 실제로 신호 75%(기준 백색)를 계산하면 \(E = \mathrm{OETF}^{-1}(0.75) = 0.26497\)이고, 1,000 nit 화면에서 \(1000 \times 0.26497^{1.2} = 203.2\) cd/m², 2,000 nit 화면(\(\gamma = 1.326\))에서 343 cd/m², 400 nit 화면(\(\gamma = 1.033\))에서 102 cd/m²가 된다. 같은 신호가 화면 능력에 맞춰 다르게, 그러나 각자 자연스럽게 표시된다.
EOTF 비교: PQ · HLG(+시스템 감마) · BT.1886
공학자 관점 — PQ와 HLG의 선택. PQ는 마스터링 의도(절대 nit)를 정밀하게 전달하므로 영화·스트리밍(HDR10, Dolby Vision, HDR10+)에서 주류다. 대신 화면 능력이 마스터링보다 낮으면 수신기 톤 매핑에 결과가 좌우된다. HLG는 메타데이터 없이 실시간 생방송에 쓰기 쉽고 SDR 수신기 호환성이 있어 방송에서 주로 쓰인다. 두 방식 사이 변환은 BT.2100·BT.2408에 정의된 관계(HLG를 1,000 nit 기준 디스플레이로 표시한 결과를 PQ로 부호화하는 식)를 쓴다.
BT.2100과 ICtCp
ITU-R BT.2100은 HDR 영상 시스템의 매개변수를 한데 묶은 권고다. 원색과 백색점은 BT.2020과 같고(R 0.708/0.292, G 0.170/0.797, B 0.131/0.046, D65), 전달 함수로 PQ와 HLG 두 가지를, 비트 깊이로 10·12비트를 정한다. 색차 신호로는 BT.2020과 같은 비상수 휘도 Y′C′BC′R(15장) 외에 ICtCp를 정의한다.
Y′C′BC′R은 감마(또는 PQ) 인코딩된 R′G′B′를 섞기 때문에, 고채도·고휘도 색에서 "휘도" 성분 Y′에 색 정보가 새고 색차 신호에 휘도 정보가 샌다. 크로마 서브샘플링이나 톤 매핑 때 이 누설이 색상·밝기 오차로 나타난다. ICtCp는 순서를 바꾸어, 먼저 원추세포에 가까운 LMS로 선형 변환한 뒤 PQ(또는 HLG)를 각 성분에 적용하고, 마지막에 반대색 축으로 회전한다. 지각적으로 더 균등하고, 휘도와 색이 더 잘 분리된다.
ICtCp 공간에서 HDR 색차 지표 ΔEITP가 ITU-R BT.2124로 정해졌다. \(C_T\) 축은 지각 균등성을 위해 절반으로 줄여 \(T = 0.5\,C_T\), \(P = C_P\)로 쓰고, 720을 곱해 ΔEITP = 1이 대략 한 단계의 가시 차이(JND)가 되게 맞추었다.
PQ · HLG · SDR 신호 계산기와 ICtCp / ΔEITP
계산 예: BT.2020 적색 원색 1,000 cd/m²(\(R = 1000, G = B = 0\))는 \((I, C_T, C_P) = (0.608, -0.165, 0.443)\)이다. 같은 \(Y\)의 무채색보다 \(I\)가 낮게 나오는 것은 LMS의 원추 감도 가중 때문이며, \(I\)가 "휘도"가 아니라 "지각 밝기의 근사"라는 점을 보여 준다.
톤 매핑: 마스터링 휘도를 디스플레이 능력으로
PQ 콘텐츠가 4,000 nit 모니터에서 마스터링되었는데 시청자의 TV 피크가 600 nit라면, 600 nit를 넘는 값을 어떻게 할지 정해야 한다. 이 변환을 톤 매핑(tone mapping), BT.2390의 용어로는 EETF(Electrical-Electrical Transfer Function)라 한다. 설계 목표는 서로 충돌한다.
- 중간톤(얼굴, 기준 백색 203 nit 근처)은 가능한 한 원래 휘도 그대로 둔다.
- 디스플레이 피크 근처에서 기울기를 부드럽게 줄여 하이라이트의 계조를 남긴다(단순 클리핑은 구름·불꽃의 디테일을 하얗게 날린다).
- 단조 증가하고 연속이어야 하며, 마스터링 피크가 정확히 디스플레이 피크로 가야 한다.
대표 커브를 출력 휘도 \(L_o\)(cd/m²)에 대해 정리하면 다음과 같다. \(L_m\)은 마스터링 피크(또는 MaxCLL), \(L_d\)는 디스플레이 피크, \(x = L/L_d\), \(w = L_m/L_d\)이다.
BT.2390 EETF는 PQ 신호 영역에서 작동한다. 마스터링 범위 \([L_B, L_W]\)의 PQ 값을 0–1로 정규화한 \(E_1\)에 대해, 디스플레이 피크의 정규화 PQ값 \(m_L\)으로부터 knee 시작점 \(KS = 1.5\,m_L - 0.5\)를 잡고, 그 아래는 그대로(기울기 1), 위쪽은 에르미트 스플라인으로 \((1, m_L)\)에 기울기 0으로 닿게 한다.
PQ가 지각적으로 균등하므로, PQ 영역에서의 knee는 "눈에 보이는 단계"로 균형 잡힌 압축이 된다. 예를 들어 1,000 → 600 nit 매핑의 knee는 약 464 nit에서 시작하고, 4,000 → 600 nit 매핑에서는 약 229 nit에서 시작한다. 두 경우 모두 203 nit 기준 백색은 그대로 203 nit에 남는다. 반면 단순 Reinhard는 4,000 → 600 nit에서 203 nit를 152 nit로 끌어내려 영상 전체를 어둡게 만든다.
톤 매핑 커브 편집기와 합성 HDR 장면
심화 — 톤 매핑은 어디서 일어나는가. HDR10 TV는 정적 메타데이터(마스터링 피크, MaxCLL)를 보고 자체 알고리즘으로 EETF를 고른다. 같은 콘텐츠가 TV 제조사마다 다르게 보이는 주된 원인이다. 동적 메타데이터는 장면별 통계를 실어 보내 이 추정을 돕고, 게임·그래픽에서는 콘솔/OS가 디스플레이 능력을 질의해 렌더러 안에서 직접 톤 매핑하기도 한다.
색상 보존: 무엇에 톤 커브를 거는가
톤 커브 \(f\)는 1차원 함수인데 픽셀은 3차원이다. 커브를 어디에 거느냐에 따라 색이 달라진다.
- 채널별 \( (f(R), f(G), f(B)) \): 구현이 가장 쉽다. 그러나 \(f\)가 비선형이므로 채널 비율이 바뀐다. 가장 큰 채널이 먼저 포화되고 작은 채널이 따라 올라오므로 밝은 색은 채도가 떨어지며 색상도 이동한다. 파랑(B 큼, G 중간)은 하늘색·청록을 거쳐 흰색으로, 빨강은 주황·노랑을 거쳐 흰색으로 간다. 필름 느낌의 "하이라이트 탈색"으로 일부러 쓰기도 한다.
- 휘도 기반 \( \mathbf{c}\cdot f(Y)/Y \): 색도를 정확히 보존하지만, 채도 높은 색은 \(Y\)가 작아도 한 채널이 이미 크므로 스케일 후 그 채널이 \(L_d\)를 넘어 다시 클리핑된다. 클리핑이 색상 이동을 다시 만든다.
- maxRGB 기반 \( \mathbf{c}\cdot f(M)/M,\; M = \max(R,G,B) \): 채널이 \(L_d\)를 넘지 않음이 보장되고 색도가 보존된다. 대신 채도 높은 색이 무채색보다 더 많이 눌려 어두워진다. HDR10+ 등에서 장면 통계로 쓰이는 값도 maxRGB 계열이다.
- ICtCp(또는 IPT) 기반: 지각 밝기 \(I\)에만 커브를 걸고 \(C_T, C_P\)는 유지하거나 약간 줄인다. 지각적 색상 보존이 좋지만, 결과가 디스플레이 가멋 밖으로 나갈 수 있어 뒤에 가멋 매핑이 필요하다. 이 장의 구현은 \(C_T, C_P\)에 \(\min(I/I', I'/I)\)를 곱하는 단순한 채도 보정을 쓴다.
채널별 vs 휘도·maxRGB·ICtCp 톤 매핑의 색도 궤적
밝은 파랑(BT.2020 선형 비율 0.1 : 0.25 : 1, xy = 0.169, 0.160)을 4,000 nit 피크로 마스터링하고 600 nit 화면에 BT.2390 커브로 채널별 톤 매핑하면, 최대 세기에서 색도가 (0.263, 0.318)로 이동한다 — 원래의 짙은 파랑이 연한 하늘색이 된다. maxRGB 방식은 (0.169, 0.160)을 그대로 지킨다. 채널별 톤 매핑의 색상 이동은 버그가 아니라 수학적 필연이다.
흔한 실수 — 감마 영역에서 maxRGB나 Y 구하기. \(Y = 0.2627R + 0.6780G + 0.0593B\)는 선형 BT.2020 성분에만 유효하다. PQ 인코딩된 R′G′B′에 이 가중치를 곱한 값은 휘도가 아니다(이것이 비상수 휘도 Y′의 정의이고, 바로 ICtCp가 피하려는 누설의 원인이다). 톤 매핑의 "휘도"는 항상 선형광에서 구한다.
HDR 메타데이터
PQ 신호만으로는 "이 영상에서 실제로 쓰인 최대 휘도"를 알 수 없다. 10,000 nit 범위 중 1,000 nit까지만 쓴 영상인지, 4,000 nit까지 쓴 영상인지에 따라 수신기의 최적 톤 커브가 달라진다. 메타데이터는 이 정보를 실어 보낸다.
| 구분 | 이름 | 내용 | 쓰임 |
|---|---|---|---|
| 정적 | SMPTE ST 2086 (MDCV) | 마스터링 디스플레이의 원색·백색점 xy, 최대·최소 휘도 | 콘텐츠가 실제로 존재할 수 있는 색역·휘도 범위의 상한 |
| MaxCLL | 전체 콘텐츠에서 가장 밝은 픽셀의 광 레벨(픽셀별 max(R,G,B), cd/m²) | 톤 커브의 상단 기준(Lm 대신) | |
| MaxFALL | 프레임 평균 광 레벨(픽셀별 max(R,G,B)의 프레임 평균)의 최댓값 | 전력·ABL 제한 추정, 전체 밝기 판단 | |
| 동적 | SMPTE ST 2094 계열 | 장면·프레임별 휘도 분포 통계와 톤 매핑 매개변수 | 장면마다 다른 커브 적용 |
| 상용 체계 | Dolby Vision(ST 2094-10 계열), HDR10+(ST 2094-40 계열) | 배포 포맷과 수신기 구현이 함께 정의됨 |
흔히 "HDR10"이라 부르는 것은 PQ + BT.2020 원색 + 10비트 + 정적 메타데이터(ST 2086, MaxCLL, MaxFALL)의 조합이다. MaxCLL과 MaxFALL은 CTA-861.3에서 정의되며, 둘 다 픽셀별 \(\max(R,G,B)\)를 선형 nit로 계산한다. 정적 메타데이터의 약점은 "가장 밝은 한 프레임"이 전체 영상의 톤 매핑을 지배한다는 점이다. 어두운 장면이 대부분이고 폭발 한 번이 4,000 nit라면, MaxCLL만 보는 수신기는 어두운 장면까지 과하게 압축한다. 동적 메타데이터가 이를 해결한다.
MaxCLL · MaxFALL 계산 (합성 클립 120 프레임)
SDR↔HDR 변환과 기준 백색 203 nit
HDR 프로그램에 SDR 소스(자막, 그래픽, 기존 영상)를 섞거나 HDR을 SDR로 내려보낼 때 가장 먼저 정할 것은 SDR의 백색을 HDR에서 몇 nit로 둘 것인가다. 100 nit로 두면 SDR 영상이 HDR 프로그램 안에서 어둡고 칙칙해 보이고, 너무 높이면 그래픽이 눈부시다. ITU-R BT.2408은 운영 지침으로 HDR 기준 백색(HDR Reference White)을 203 cd/m²로 권고한다. 이것은 PQ 신호 58%, 1,000 nit 화면 기준 HLG 신호 75%에 해당한다.
디스플레이 기준의 가장 단순한 SDR→HDR 변환은 \(L_{HDR} = 203 \cdot V_{SDR}^{2.4}\)(BT.2020 원색으로 행렬 변환 후)를 PQ로 부호화하는 것이다. SDR 50% 회색은 38.5 nit, PQ 0.416이 된다. SDR 영상이 원래 의도대로(=기준 백색 아래에서) 보이고, 그 위의 헤드룸은 비어 있다. 반대 방향 HDR→SDR은 203 nit를 SDR 100% 근처에 놓고 그 위를 톤 매핑으로 압축한 뒤 BT.709 가멋으로 매핑한다. 업컨버전에서 SDR 하이라이트를 "확장"해 헤드룸을 채우는 역 톤 매핑도 있지만, 원래 없던 정보를 만드는 것이므로 결과는 알고리즘에 따른 선택이다.
공학자 관점 — 203이라는 숫자. BT.2408은 18% 반사 회색 카드를 HDR에서 26 nit 근처, 기준 백색을 203 nit로 두는 운영 관행을 기술한다. 그래픽 백색이 203 nit라면 PQ 10비트 풀 레인지 코드 594, 리미티드 레인지 573이다. OS의 HDR 모드에서 "SDR 콘텐츠 밝기" 슬라이더가 하는 일이 바로 이 SDR 백색 nit 값을 바꾸는 것이다.
광색역 렌더링: Rec.2020 컨테이너 안의 P3
BT.2100 신호는 BT.2020 원색을 쓰지만, 현재 이 원색을 완전히 내는 소비자 디스플레이는 드물고, 마스터링 모니터도 대부분 DCI-P3 원색(D65 백색) 수준이다. 그래서 실무 HDR 콘텐츠의 대부분은 "Rec.2020 컨테이너 안의 P3 콘텐츠"다. 신호 좌표계는 2020이지만 실제 색은 P3 삼각형 안에 있고, ST 2086 메타데이터는 마스터링 디스플레이의 원색을 알려 준다. 이 정보는 제작 환경의 색역이며, 프레임의 실제 색 분포를 측정하거나 보장하는 값은 아니다.
P3 → 2020 변환은 같은 D65 백색을 쓰는 두 RGB 공간 사이의 3×3 행렬이다(5장의 \(M_{2020}^{-1}M_{P3}\)). 계산해 보면 P3 적색 \((1,0,0)\)은 2020 선형 \((0.7538, 0.0457, -0.0012)\)이 된다. B 성분이 아주 작은 음수인 것은 P3 적색점(0.680, 0.320)이 2020의 R–G 변(그 x에서 y ≈ 0.318)보다 미세하게 바깥에 있기 때문이다. 실무에서는 무시해도 되는 크기지만, 0 미만 값을 허용하지 않는 정수 파이프라인에서는 클리핑된다는 점을 알아 둘 만하다.
반대로 2020 컨테이너 신호를 P3 디스플레이나 sRGB 디스플레이로 보낼 때는 가멋 매핑이 필요하다. 단순 클리핑은 톤 매핑의 채널별 클리핑과 같은 이유로 색상을 이동시킨다. 색상을 보존하며 채도를 줄이는 방법들은 5장의 가멋 매핑과 16장의 렌더링 인텐트에서 다룬다. HDR에서는 휘도 압축(톤 매핑)과 채도 압축(가멋 매핑)이 서로 영향을 주므로, ICtCp 같은 지각 균등 공간에서 함께 처리하는 것이 일반적인 방향이다.
공학자 관점 — 세 개의 "색역" 정보를 구분하라. ① 신호 컨테이너 원색(BT.2020, VUI/SEI의 colour primaries), ② 마스터링 디스플레이 원색(ST 2086, 보통 P3-D65), ③ 수신 디스플레이의 실제 원색. ①만 보고 2020 전체를 매핑 대상으로 잡으면 P3 콘텐츠를 불필요하게 압축한다. ②는 제작 환경을 파악하는 참고 정보다. 실제 콘텐츠의 색역을 좁혀 매핑하려면 화소 분석이나 그 목적의 콘텐츠 메타데이터가 필요하다.
핵심 정리
- SDR(BT.1886)은 화면 백색에 대한 상대 휘도를, HDR PQ는 0–10,000 cd/m²의 절대 휘도를 부호화한다. HLG는 장면광의 상대값을 보내고 화면이 OOTF로 휘도를 정한다.
- PQ EOTF: \(F_D = 10000\,[\max(E'^{1/m_2}-c_1,0)/(c_2-c_3E'^{1/m_2})]^{1/m_1}\), \(m_1 = 2610/16384\), \(m_2 = 78.84375\), \(c_1 = 0.8359375\), \(c_2 = 18.8515625\), \(c_3 = 18.6875\). 100 nit = 0.508, 203 nit = 0.581, 1,000 nit = 0.752.
- PQ는 Barten 대비 임계에 맞춰 설계되었다. 12비트에서 임계 아래, 10비트는 임계 근처(100 nit에서 ΔL/L ≈ 0.98%)이며 실제 배포에는 충분하다. 감마 2.4를 10,000 nit로 늘린 곡선은 어두운 쪽이 수 배 성기다.
- HLG OETF는 \(E \le 1/12\)에서 \(\sqrt{3E}\), 위에서 \(a\ln(12E-b)+c\). 시스템 감마 \(\gamma = 1.2 + 0.42\log_{10}(L_W/1000)\). 신호 75%는 1,000 nit 화면에서 203 nit다.
- ICtCp = BT.2020 RGB → LMS(/4096 행렬) → PQ → 반대색 회전. ΔEITP = 720√(ΔI² + ΔT² + ΔP²), T = 0.5CT. 무채색에서 10비트 PQ 1코드는 ΔEITP 0.704다.
- 톤 매핑은 중간톤 보존과 하이라이트 계조 사이의 절충이다. BT.2390 EETF는 PQ 영역에서 knee \(KS = 1.5m_L - 0.5\) 위만 에르미트 스플라인으로 압축한다.
- 채널별 톤 매핑은 색상을 이동시킨다(밝은 파랑 → 하늘색·흰색). 휘도·maxRGB·ICtCp 기반 방식은 색도를 보존하되 각각 클리핑, 채도 색 어두워짐, 가멋 이탈의 대가가 있다.
- 정적 메타데이터(ST 2086, MaxCLL, MaxFALL)는 선형 nit의 max(R,G,B)로 계산한다. 동적 메타데이터(ST 2094 계열)는 장면별 톤 매핑을 가능하게 한다.
- SDR 백색은 HDR에서 203 cd/m²(BT.2408)에 둔다. 실무 HDR은 대부분 Rec.2020 컨테이너 안의 P3 콘텐츠이며, 마스터링 원색 메타데이터로 가멋 매핑 범위를 좁힐 수 있다.
확인 퀴즈
SDR 영상 신호 V = 1과 PQ 신호 E′ = 0.7518의 의미 차이로 옳은 것은?
PQ 상수에서 \(c_1 = c_3 - c_2 + 1\)이 갖는 의미는?
10비트에서 0.001–10,000 cd/m²를 순수 로그로 부호화할 때 코드 간격 ΔL/L은 약 얼마이며, 이것이 PQ보다 불리한 곳은?
HLG 신호 75%를 2,000 cd/m² 디스플레이에 표시할 때 휘도는? (OETF⁻¹(0.75) = 0.26497)
HLG의 OOTF가 R, G, B 각각에 감마를 걸지 않고 \(Y_S^{\gamma-1}\)을 공통으로 곱하는 이유는?
ICtCp 변환에서 무채색(R = G = B)이 정확히 CT = CP = 0으로 가는 근거는?
무채색에서 10비트 PQ 코드 1단계의 ΔEITP는?
4,000 nit로 마스터링된 밝은 파랑 하이라이트를 600 nit TV에 채널별(R, G, B 각각) 톤 매핑하면 일반적으로 어떻게 보이는가?
MaxFALL 계산으로 옳은 것은?
BT.2408 운영 지침에서 SDR 백색(그래픽 백색)을 HDR PQ로 옮길 때 권고하는 휘도와 대략의 PQ 신호값은?