HDR 합성은 어떤 알고리즘으로 동작하는가

HDR 영상 합성의 CRF 추정·정렬·고스트 제거·톤 매핑 알고리즘과 HDR10/Dolby Vision/HLG 포맷 구조를 OpenCV 구현 예시와 함께 정리한다.

2026-08-13 · 최초 발행 2025-12-05

HDR 결과물이 자연스러운지 부자연스러운지는 대개 톤 매핑 연산자 선택에서 갈리지만, 그 전에 여러 장의 노출을 어떻게 하나로 합칠지부터 결정해야 한다. 카메라 센서와 디스플레이의 표현 한계를 넘어 장면의 어두운 영역과 밝은 영역을 동시에 확보하는 HDR(High Dynamic Range imaging)은, 제한된 다이내믹 레인지의 센서·디스플레이 환경에서 멀티 노출 합성 또는 신호 처리로 넓은 명암 범위를 복원·표현하는 기술 집합이다.

다이내믹 레인지를 수치로 보면

SDR은 약 68 스톱(100 nit 기준)을 다루는 반면 HDR은 1420 스톱 수준까지, 피크 휘도는 1,000~4,000 nit까지 구현 가능하다(표준·기기별 상이, 최신 정보 확인 필요). 전체 메커니즘은 입력(노출 브래케팅/센서 HDR) → 정렬/복사도 추정 → 유령 제거 → 톤 매핑 → 색·감마(PQ/HLG) 변환 → 인코딩/전송 순으로 구성된다.

입력 획득: 노출을 어떻게 나눠 찍나

멀티 노출 브래케팅(예: -3/-1/+1/+3 EV) 또는 듀얼·멀티 게인/쿼드베이어 기반 싱글샷 HDR을 적용한다. 롤링 셔터·LED 플리커·피사체 움직임에 따른 아티팩트 관리가 필요하며, RAW를 우선 처리하고 화이트밸런스·블랙레벨·렌즈 셰이딩 보정을 선행해야 한다.

CRF 추정과 라디언스 맵 합성

Debevec/Robertson 등 CRF(카메라 응답 함수) 추정과 가중 평균으로 라디언스 맵을 재구성한다. Median Threshold Bitmap(MTB), 위상 상관, 광류 기반 정렬로 픽셀을 정합하고, 가중치 설계(노출 근접, 색노이즈 억제, 클리핑 회피)로 SNR·디테일을 확보한다.

유령 제거와 로버스트 처리

움직임·반사·트리거 오브젝트에 대한 유령(ghost) 검출과 마스크 기반 제외 처리를 수행한다. 로버스트 통계(Trimmed mean, Tukey biweight)로 이상치를 억제하며, 타임코드·IMU 메타데이터를 활용하면 정렬 정확도가 향상된다.

톤 매핑 연산자와 색 관리

글로벌 연산자(Reinhard, Hable)와 로컬 연산자(Durand, Fattal, Mantiuk)는 트레이드오프가 다르다. 색역(P3/BT.2020)과 감마(PQ/HLG)로 변환하면서 퍼셉추얼 일관성을 유지해야 하며, 채널별 톤 매핑 대신 Luma-Driven 처리로 색상 이동을 최소화한다.

포맷과 디스플레이: 어디까지 메타데이터를 실을까

전송 포맷은 HDR10(정적 메타데이터, 10-bit, PQ), HDR10+(동적 메타데이터), Dolby Vision(동적, 최대 12-bit), HLG(방송 친화)로 나뉜다. 디스플레이 캘리브레이션(피크 니트, EOTF, 색역)과 콘텐츠 메타데이터를 정합해야 하고, 백워드 호환(톤 맵다운/폴백) 경로도 설계해야 한다.

항목 HDR10 Dolby Vision HLG HDR10+
성능(비트/감마) 10-bit, PQ, 정적 메타데이터 최대 12-bit, PQ, 동적 메타데이터 10-bit, HLG 감마, 메타데이터 불필요 10-bit, PQ, 동적 메타데이터
확장성 넓은 기기 호환 라이선스 요구, 고급 TV 최적 방송 체인 친화, SDR 호환 개방형 동적 메타, 채택도 중간
일관성 마스터 의도 유지 중간 의도 보존 높음 디스플레이 의존성 큼 의도 보존 높음
안정성 표준 성숙 버전·프로필 다양성 관리 필요 배포 단순 기기별 메타 해석 차이 가능
운영 편의 구현 단순 툴체인 복잡, 인증 필요 라이브 제작 용이 툴체인 중간 복잡

기기·버전별 지원이 달라질 수 있어 최신 정보 확인이 필요하다.

처리 절차와 에러 핸들링

입력: 장면 광도획득: 멀티 노출 캡처 또는 센서HDR정렬: 특징 기반 또는 광류 기반카메라 응답 함수(CRF) 추정머지: 라디언스(복사도) 지도생성유령(고스트) 아티팩트 검출유령 제거 노출 가중치 보정 매핑: 글로벌 또는 로컬연산자 적용 관리: 색역 감마(PQ,HLG) 변환출력: 코덱/포맷 인코딩디스플레이

입력→처리→출력 단계를 구분하고, 예외 경로에서는 유령 제거로 분기한다. 정렬이 실패하면 저주파 가중치를 상향하고 로컬 대비를 억제하며, 클리핑 영역에는 하이라이트 롤오프를 적용하는 방식으로 에러를 처리한다.

도메인별 적용

모바일 카메라 파이프라인은 듀얼 게인 센서와 멀티프레임 합성을 적용해 야간 장면에서 노이즈 억제와 하이라이트 보존을 동시에 달성한다. 영화/OTT 마스터링은 ACES 워크플로와 PQ 기반 그레이딩, Dolby Vision 트림패스 생성을 거쳐 SDR 다운맵핑 LUT를 동반 납품한다. 게임·실시간 렌더링은 씬-리니어 렌더링 → 톤 매퍼(Hable/ACES) → 디스플레이 EOTF 적용 흐름을 쓰며 프레임 예산 안에서 색 적응과 블룸·글레어 효과를 최적화한다. 방송/라이브 프로덕션은 HLG 기반 라이브 HDR 송출과 SDR 호환 피드를 동시에 생성하고, 카메라 페이싱과 피크 니트 관리로 컷 간 일관성을 유지한다. 자동차·감시·의료 영상은 터널·야간 역광 상황에서 물체 식별률을 높이고, 의료 진단용 톤 커브를 표준화해 재현성을 확보한다.

OpenCV로 짜보는 최소 파이프라인

전제조건은 동일 장면의 노출 차이가 있는 이미지 배열 imgs와 해당 노출 시간 times(초)를 준비하는 것이다.

import cv2 as cv
import numpy as np

# imgs: list of BGR uint8 images, times: np.float32 exposure times (seconds)
imgs = [cv.imread(p) for p in ["-2.jpg","-1.jpg","+1.jpg","+2.jpg"]]
times = np.float32([1/240., 1/120., 1/30., 1/15.])

# 정렬(옵션): MTB 기반
align = cv.createAlignMTB()
align.process(imgs, imgs)

# CRF 추정 및 라디언스 머지
cal = cv.createCalibrateDebevec()
response = cal.process(imgs, times)
merge = cv.createMergeDebevec()
hdr = merge.process(imgs, times, response)  # float32 라디언스 맵

# 간단 톤 매핑(글로벌/로컬)
tonemap = cv.createTonemapReinhard(gamma=2.2, intensity=0.0, light_adapt=0.8, color_adapt=0.0)
ldr = np.clip(tonemap.process(hdr), 0, 1)
ldr8 = (ldr * 255).astype(np.uint8)

cv.imwrite("result_ldr.png", ldr8)

실무 팁으로는 유령 제거가 필요할 때 노출별 가중치에서 모션 영역을 다운웨이트하고, 다중 프레임 노이즈 감소 후 톤 매핑을 적용하는 순서를 권장한다.

얼마나 좋아지는가

화질 개선 측면에서는 동시 명암 표현 범위가 SDR 68스톱에서 HDR 1420스톱으로 확보되고, 피크 휘도·디테일은 1,0004,000 nit 표현에 하이라이트 디테일 유지율이 3050%p 향상된다. 인지 품질에서는 TMQI/PSNR-HVS가 개선되고 시각적 선호도(MOS)가 0.30.6점 향상되며(콘텐츠·디스플레이 의존), 색 정확도가 유지되면서 과포화·색 이동 현상이 줄어든다. 운영·전송에서는 동적 메타데이터 사용 시 장치 적응이 최적화되고 장면별 톤 커브가 자동화되며, 비트레이트 증가는 10-bit 전환 및 피크 니트 목표에 따라 +1035% 수준으로 나타난다(코덱·콘텐츠 의존).

설계에서 무엇을 먼저 확인할까

HDR 기술의 핵심은 복사도 재구성과 안정적 톤 매핑, 색·감마 정합, 포맷별 메타데이터 운용에 있다. 적용 전략은 입력 품질 확보(정렬·노이즈·플리커 관리), 로버스트 합성, 디스플레이 특성 기반 톤 커브 최적화 순으로 짠다. 모바일·OTT·게임·방송 전 영역에서 표준화가 진행 중이므로, 워크플로 초기부터 HDR 네이티브로 설계하는 편을 권장한다.

HDR톤매핑CRF 추정OpenCVHDR10