- Pro app들을 대상으로 어떻게 XDR을 지원할 것인가?
- 또한 Pro 유저는 어떻게 세팅하는 게 베스트인가?
- Reference Mode
- 밝기, 색상, 감마 값의 설정값
- 다른 디바이스의 설정값을 시뮬레이션 할 수 있음
- ICC(International Color Consortium) Profile 보다 지원 범위가 넓다.
- 빌트인 모드
- Apple-designed Mode
- 애플 제품의 디스플레이를 반영한 모드
- 트루톤 등의 동적인 요소들이 적용되어 있음
- Standards—based mode
- 특정 워크 플로우를 위해 만들어놓은 모드
- 제품이 보여질 조건을 확인하는 것이 중요하다.
- 특히 XDR모드면 SDR모드와 HDR모드가 한 화면에 공존할 수 있게 된다.
- Developing for Pro Display XDR
-
동작
- SDR 레퍼런스 모드일때
- SDR영상은 core media로 디코딩되고, file의 color descriptor를 사용해서 태깅이 됨
- 이후 디코딩된 비디오는 UI와 함께 합쳐지게 됨(Common Color Space로 매핑됨)
- Display의 컬러 스페이스로 매핑
- 감마 함수와 디스플레이로 전달
- HDR 레퍼런스 모드일 때 -> 맥과 디스플레이가 PQ Link로 커뮤니케이션함
- SDR video와 UI는 위와 동일하게 됨
- HDR video는 PQ혹은 HLG로 디코딩됨
- 합쳐지는 것은 Extended dynamic range 컬러 공간에서 이루어진다.
- 이후 디스플레이의 컬러 스페이스로 매핑
- PQ함수와 디스플레이에 보여지게 됨
-
EDR?
- SDR과 HDR을 동시에 보여주기 위한 표현법
- 0.0~1.0은 SDR의 영역, 그 이상의 HeadRoom은 specular highlights, emissive surface 등을 표현하기 위한 공간
-
이를 제대로 활용하기 위해서는 미디어 컨텐츠에 color descriptor를 잘 표현해야 함!
-
color primaries: RGB값을 XYZ 공간으로 매핑하는 함수
-
transformation function: 비선형적인 R’G’B’코드를 선형적인 RGB로 바꾸기 위한 함수
-
YCbCr matrix: YCbCr 표현을 R’G’B’로 바꾸는 행렬
-
해당 값은 AVFoundation으로 설정할 수 있으며, 자세한 건 관련 영상 참고
-
AVFoundation color managed video pipeline
- core media: Ycbcr -> R’G’B’(source)
- avfoundation: R’G’B’(source) -> R’G’B’(preset)
- Pro Display XDR: R’G’B’(preset) -> RGB(native)
-
custom pipeline
- Shader
- YCbCr -> R’G’B’(source)
- R’G’B’(source) -> EDR
- Display pipeline
- Pro Display XDR: R’G’B’(preset) -> RGB(native)
-
현재의 reference를 알기 위해서는 EDR 파라미터를 확인해야 한다.
- Potential headRoom: 현재 디스플레이 설정에서 사용가능한 최대 headroom(ex. HDR- 10.0, HDTV-1.0). reference마다 다름
- Headroom: 현재 사용 가능한 headroom 크기
- potential headroom모다 작거나 같다
- 디스플레이 밝기 세팅에 따라 다르다.
- reference headroom: 요청한 밝기를 정확히 재현할 수 있는 headroom
- headroom보다 작거나 같다
- Apple이 디자인한 모드에서는 이 값이 0이다.
// pro display XDR screen
var screen: NSScreen = NSScreen.main!
var potentialHeadroom = screen.maximumPotentialExtendedDynamicRangeColorComponentValue
var headRoom = screen.maximumExtendedDynamicRangeColorComponentValue
var referenceHeadRoom = screen.maximumReferenceExtendedDynamicRangeColorComponentValue
- 색상 퍼포먼스와 정확도 측정 - 분광 측정기 사용
- macOS에 의해 색상 관리가 수행됨
- 디스플레이에 의해 가시광선으로 변경
- 분광 측정기에서 이 가시광선을 받아서 밝기와 채도를 측정
- 컬러 테스트 패턴은 개발자 홈페이지에서 받을 수 있다.(av foundation)
- Deploying Pro Display XDR
- 기본적으로 공장에서 칼리브레이션이 되어 있고, 자주 쓰는 reference는 내장되어 있다.
- 하지만 커스터마이징 할 수 있는 옵션 또한 제공하고 있다.
- 10.15.4 이상의 macOS에서 사용 가능
- 커스터마이즈 가능한 옵션
- SDR Transfer function
- white point
- color gamut
- maximum luminance
- Fine-Tune calibration
- 10.15.6 이상의 macOS에서 지원
- 밝기와 white point를 조정해서 다른 모니터와 맞추는 기능
- Measuring Pro Display XDR
- 분광 측정기를 사용한다.
- 에러를 분석해서 튜닝이 필요한 지결정