지난 기사에서는 PTZ 카메라에서 지원 가능한 NDI, SRT, RTSP 등의 스트리밍 프로토콜을 실제 어떻게 사용할 수 있는 지에 대해 간략하게 설명 드렸다. 이번 기사에서는 NAB 2025에서 발표된 NDI 6.2에 새롭게 추가된 것들 중에서 (필자 입장에서) 가장 주목할 만한 기능이라고 할 수 있는 HDR에 대해 설명 드리도록 하겠다.
NDI 6.2 무엇이 달라졌나? (What’s new?)
위의 제목 그대로 구글에 질문을 올렸더니 검색 결과의 맨 위에 구글 인공지능(AI)가 요약한 NDI 6.2의 개요가 먼저 표시된다. AI의 활용이 점점 늘고 있는데, 이제는 굳이 AI 기능을 선택하지 않더라도 이렇게 검색엔진에서 자동으로 적용해 주고 있다. 참으로 놀라운 일이다. 일단, 좀 더 정확한 이해를 위해 원문을 먼저 실어 드린다.
AI 개요
NDI 6.2 introduces advanced discoverability and real-time monitoring capabilities. It allows users to see all NDI-connected sources with full visibility, including details like video format, codec, frame rate, resolution, and connection state. Additionally, NDI 6.2 features embedded WAN connectivity for some cameras and HDCP support for secure content transmission.
Here's a more detailed breakdown:
Enhanced Receiver Discoverability: NDI 6.2 provides users with a clear view of all NDI-connected sources, making it easier to manage and utilize various video feeds.
Real-time Monitoring and Control: Improved monitoring features allow users and developers to track key stream information, including video format, codec, frame rate, resolution, and connection status, all in real-time.
Embedded WAN Connectivity: Certain cameras now have the NDI Bridge utility built-in, enabling them to send NDI streams over wide area networks (WAN) with ease.
HDCP Support: NDI 6.2 includes support for HDCP (High-bandwidth Digital Content Protection), allowing for the secure transmission of protected content.
NDI HX3 Support: NDI 6.2 supports NDI|HX3, which utilizes HEVC encoding, resulting in lower bandwidth consumption and compatibility with Wi-Fi-enabled PTZ cameras.
Metadata Lab: The new Metadata Lab initiative aims to standardize metadata proposals for NDI workflows, potentially unlocking new possibilities for automation and control.
Integration with AWS Elemental MediaConnect: NDI is now integrated into AWS Elemental MediaConnect, enabling high-quality IP video transport within the AWS cloud. |
다들 아시겠지만 위의 내용을 한글로 번역하는 것도 너무도 쉽고 빠르다. 단지 마우스 클릭 2번이면 해결된다. 일단 구글이 번역해 준 원문 그대로 참고하시기 바란다.
AI 개요
NDI 6.2에서는 다음을 소개합니다. 고급 검색 기능 및 실시간 모니터링 기능 사용자는 비디오 형식, 코덱, 프레임 속도, 해상도, 연결 상태 등의 세부 정보를 포함하여 NDI에 연결된 모든 소스를 완벽하게 볼 수 있습니다. 또한, NDI 6.2는 일부 카메라에 대한 내장 WAN 연결 기능과 안전한 콘텐츠 전송을 위한 HDCP 지원 기능을 제공합니다.
더 자세한 내용은 다음과 같습니다.
향상된 수신기 검색 기능: NDI 6.2는 사용자에게 모든 NDI 연결 소스를 명확하게 보여줌으로써 다양한 비디오 피드를 보다 쉽게 관리하고 활용할 수 있도록 해줍니다.
실시간 모니터링 및 제어: 개선된 모니터링 기능을 통해 사용자와 개발자는 비디오 형식, 코덱, 프레임 속도, 해상도, 연결 상태 등의 주요 스트림 정보를 실시간으로 추적할 수 있습니다.
내장형 WAN 연결: 일부 카메라에는 이제 NDI 브리지 유틸리티가 내장되어 있어 손쉽게 WAN(광역 네트워크)을 통해 NDI 스트림을 전송할 수 있습니다.
HDCP 지원: NDI 6.2에는 HDCP (고대역폭 디지털 콘텐츠 보호) 지원이 포함되어 있어 보호된 콘텐츠의 안전한 전송이 가능합니다.
NDI HX3 지원: NDI 6.2는 HEVC 인코딩을 활용하는 NDI|HX3를 지원하여 대역폭 소모를 줄이고 Wi-Fi 지원 PTZ 카메라와 호환됩니다.
메타데이터 랩: 새로운 메타데이터 랩 이니셔티브는 NDI 워크플로에 대한 메타데이터 제안을 표준화하여 자동화 및 제어에 대한 새로운 가능성을 열어주는 것을 목표로 합니다.
AWS Elemental MediaConnect와 통합: 이제 NDI가 AWS Elemental MediaConnect에 통합되어 AWS 클라우드 내에서 고품질 IP 비디오 전송이 가능해졌습니다. |
NDI의 HDR 지원
AI가 요약해 준 위의 NDI 6 개요에는 보이지 않지만 NDI 6에 추가된 중요한 것 중 하나가 바로 10비트 이상의 HDR 지원이 가능해 졌다는 것이다. HDR이 무엇인지, 그리고 왜 필요한지 잘 모르시는 분들을 위해 아주 간단하게 설명해 드리자면 이렇다. 먼저 아래의 그림이 돌비에서 제안한 Dolby Vision이라는 HDR의 기본적인 컨셉을 기존의 SDR과 대비해서 보여주고 있다.

한 마디로 말해서 HDR은 “우리 눈이 볼 수 있는 수준과 최대한 비슷하게 이미지 혹은 영상을 보여주자는 것이고, 그러기 위해 더 넓은 색 재현 범위와 명암대비를 구현하자는 것”이다. 이를 위해 카메라와 디스플레이 같은 하드웨어의 발전도 필요하고, 그 기준이 되는 더 넓은 색 재현 범위와 더 높은 명암대비를 위한 표준이 필요하다. 그리고 이러한 표준이 담긴 문서가 바로 ITU-R BT.2100 이라는 문서이다.
먼저, UHD를 위한 표준인 BT.2020에서는 HD 표준인 BT.709에 비해 색 재현 범위가 대폭 넓어졌다. 이렇게 색 재현범위가 넓어지면 아래의 그림에서 보는 것과 같이 그만큼 더 현실적인 이미지나 영상을 보여 줄 수 있게 된다. HDR 표준인 BT.2100은 UHD 표준인 BT.2020의 넓은 색 재현 범위를 그대로 동일하게 사용한다. BT.2020이 2012년에 만들어졌지만 13년이 지난 현재까지도 BT.2020에서 규정한 넓은 색 재현 범위를 가진 디스플레이 (LCD, OLED 등) 제품을 아직도 상용화하지 못했다. 따라서 2016년에 만들어진 BT.2100이 이 보다 더 넓은 색 재현 범위를 (기술적 지향점으로서라도) 규정할 수 없었을 것이라는 점을 쉽게 이해할 수 있을 것이다. 어쨌든 색 재현 범위 (Color Gamut 혹은 Color Primaries)의 경우 BT.2020 = BT.2100이라는 점을 기억해 주시면 되겠다.


BT.2100 (HDR)이 BT.2020 (UHD)와 결정적으로 다른 것은 바로 더 높은 명암대비 (Dynamic Range)를 구현하기 위해 새로운 Transfer Function을 도입했다는 것이다. 좀 더 구체적으로는 카메라의 경우 OETF (Opto-Electrical Transfer Function), 그리고 디스플레이의 경우 EOTF (Electro-Optical Transfer Function)으로 구분되는데, 한 마디로 말해서 HDR을 위한 새로운 감마(Gamma)라고 이해하시면 되겠다.
기존의 SDR (BT.601, BT.709, BT.2020)의 경우 이제는 사라진 CRT (브라운관)의 휘도 범위인 약 0.01 ~ 100nit를 기준으로 감마를 포함한 비디오 파라미터들이 만들어졌었다. 하지만 이제는 Local Dimming LCD라든지 OLED, 그리고 나아가 QD-OLED 등 새로운 디스플레이 기술의 등장으로 인해 더 넓은 휘도 범위, 혹은 더 높은 명암대비를 구현할 수 있게 되었다. 이에 따라 새로운 카메라 감마와 디스플레이 감마가 필요한데, 그게 바로 BT. 2100인 것이다.
어쨌거나 기존의 0.01 ~ 100nit의 휘도 범위 즉, Dynamic Range가 0.001 ~ 1000nit, 혹은 0.001 ~ 10,000nit까지 확장될 경우 훨씬 풍성한 컬러, 우리 눈이 자연에서 볼 수 있는 것에 훨씬 근사한 실감나는 컬러를 볼 수 있게 된다는 것이다. 아래의 표 (출처: 돌비)에서는 HDR이 SDR에 비해 최대 843% 강화된 풍성한 컬러를 보여 준다는 설명이다.

아래의 그림은 NDI 홈페이지에서 HDR을 설명하는 페이지의 일부를 캡쳐한 것인데 NDI가 HDR을 어떻게 처리하는 지 대략적으로 이해할 수 있다. 결론부터 얘기하자면 국제방송연맹 (ITU)의 HDR 표준인 BT. 2100을 그대로 활용한다는 것이다. 따라서 기존에 BT.2100에 대해 이해하고 있는 분이라면 NDI가 HDR을 어떻게 처리하는 지에 대해서도 이미 알고 있는 것이나 마찬가지이다. HDR 처리를 위해 SDR (BT.601, BT.709, BT.2020)과 구분하여 HDR (BT.2100)의 파라미터를 NDI 스트림을 송신하거나 수신할 때 메타 데이터에 넣어 준다는 것이다.

먼저 위의 표 상단에 있는 Primaries, Transfer, Matrix라는 항목이 무엇을 뜻하는 지에 대해 설명 드리도록 하겠다.
Primaries
우리 말로 하면 (빛의) 삼원색 (三原色)을 뜻한다. 태양 빛을 프리즘에 통과시키면 다양한 파장대의 빛으로 분리되며 무지개의 다양한 색을 보여 준다. 하지만 우리가 인위적으로 만드는 빛의 컬러는 대개 빨강, 초록, 파랑의 3가지 색을 조합하여 만든다. 그 이유는 인간의 눈이 이 3원색의 조합으로서 빛의 색을 인식하기 때문이다.
우리 눈의 망막 (Retina) 안에는 2가지 종류의 시감 세포가 있다. 먼저, 막대기 모양의 간상세포 (Rod Cell)는 빛의 밝기에는 매우 민감하지만 색을 구별하지는 못한다. 매우 어두운 환경에서도 어렴풋이 물체의 형태를 볼 수 있는 것은 이 간상세포가 작동하기 때문이다. 이에 비해 조금 밝은 환경에서 작동하는 원뿔세포 혹은 추상세포 (Cone Cell)는 단파장, 중파장, 장파장의 가시광선 (Visible Light)을 감지하는데, 이들은 대략적으로 파랑, 초록, 빨강 색에 대응한다. 따라서, 인간의 눈은 망막에 들어 오는 빛을 3원색 (빨강, 초록, 파랑)의 조합으로써 인식하게 되고, 이를 통해 색을 구별하는 것이다.

이에 따라 우리가 컬러 이미지나 영상을 보여 주고자 할 때 이 3원색을 조합할 수 있도록 이미지혹은 비디오 코딩 시스템을 만들고, 이를 다시 빛 (가시광선)으로 만들어 주는 장치를 개발한다. 예를 들어, 우리가 매일 사용하고 있는 스마트 폰의 디스플레이 (LCD 혹은 OLED)는 해상도 (예: Full HD = 1920×1080)에 해당하는 수량의 화소 (Pixel)를 가진다. 그리고, 하나의 화소 (Pixel) 속에는 빨강, 초록, 파랑의 하위 화소 (Sub-pixel)을 가지고 있으며, 이 하위 화소들의 밝기 비율에 따라 우리 눈에 보이는 컬러가 달라지는 것이다. TV나 모니터 등 이미지나 영상을 보여 주는 모든 종류의 디스플레이 장치들도 같은 원리를 가진다.
※ 디스플레이의 화소 (Pixel) 구조: CRT vs LCD
Transfer (Function)
인간의 눈은 빛의 밝기 증가에 정비례해서 밝게 느끼지 않는다. 예를 들어, 모니터 화면의 휘도를 10nit로 설정했을 때 인간의 눈이 감지하는 밝기를 10이라고 하자. 그리고, 20nit, 30nit, 40nit ~ 200nit까지 휘도를 일정하게 증가시키며 인간의 눈이 감지하는 밝기를 측정해 본다면 20, 30, 40 ~ 200으로 일정하게 증가할까? 실험 결과는 그렇지 않다는 것이다. 아래의 그래프에서 보듯, 인간의 눈이 감지하는 빛의 밝기는 실제 의 밝기에 대해 지수함수적으로 증가한다.

※ Encoding Transfer Function: L* vs BT.709, sRGB
이러한 인간의 눈이 가진 특성을 활용하면 더 적은 자원을 활용해서 더 큰 효과를 얻을 수 있다. 즉, 위의 그래프가 말해주는 것은 인간의 눈은 어두운 빛(색)간의 구별에는 상대적으로 민감하고, 매우 밝은 빛(색)간의 구별에는 상대적으로 둔감하다는 것이다. 따라서, 비디오 카메라 역시 카메라의 렌즈를 통해 들어오는 빛(가시광선)을 있는 그대로 처리하는 게 아니라 인간의 눈이 가진 특성과 유사하게 지수함수적으로 처리한다. 이렇게 하면 Black부터 White까지의 다양한 밝기 구간에 동일한 비율로 자원을 배분할 것이 아니라 어두운 부분에 좀 더 많은 자원을 쓰고, 밝은 부분에 자원을 덜 투입하는 효과가 발생한다. 디지털적으로 좀 과장해서 비유하자면 어두운 색은 10비트로 처리하고, 중간 밝기의 색은 8비트로, 밝은 색은 6비트로 처리하는 효과가 발생한다는 것이다.
따라서 카메라에서는 위쪽으로 볼록한 형태의 비선형으로 처리하여 인간의 시감과 비슷한 방식으로 인코딩을 하고, 반대로 디스플레이에서는 카메라와 반대로 아래로 볼록한 형태의 비선형으로 디코딩을 함으로써 원래의 자연광에서 우리 눈으로 보는 것과 유사한 계조가 재현되도록 하였다. 역시서 디스플레이 감마 (혹은 EOTF)의 경우에는 원래 CRT가 가진 전광 특성이 대략 카메라와 상반되었기 때문에 별도의 디코딩 과정은 없다. 하지만 이후에 등장한 LCD나 OLED 등은 CRT와 다른 특성을 가졌으나 기존의 방송표준에 정해진 OETF 특성을 고려하여 모두 CRT와 유사한 감마 특성 (EOTF)를 가지도록 개발, 생산되고 있다.

BT.2100에 채용된 HDR을 위한 Transfer Function은 2가지이다. 먼저 PQ (Perceptual Quantizer)는 돌비가 Dolby가 HDR 시스템으로 제안한 Dolby Vision에 포함된 것으로 SMPTE 표준 (ST.2084) 및 ITU 표준 (BT.2100)으로 채택되었다. 0.0001 ~ 10,000nit의 매우 광범위한 휘도 범위를 커버할 수 있는 변환곡선으로 12비트 이상이 권장된다. 현실적으로는 이렇게 넓은 휘도 범위를 커버할 수 있는 디스플레이도 없고, 그럴 필요도 없기 때문에 보통 0.001 ~ 1,000nit 범위의 디스플레이에 적용할 수 있다.

BT.2100에 채용된 또 하나의 HDR용 Transfer Function은 HLG (Hybrid-Log Gamma)라는 것으로 영국 BBC 방송국과 일본 NHK 방송국이 협력하여 만든 것이다. PQ에 비해 현실적인 휘도 범위 (~ 1,000nit)를 기준으로 만들어졌고 휘도 구간별로 Log와 Gamma가 혼합된 형태라 PQ에 비해 생방송에 좀 더 유리하다는 평가를 받고 있다. 이에 비해 PQ는 영화나 드라마 등 후반작업 (Post Production)이 가능한 작업에 유리하다는 평가이다. PQ가 디스플레이의 Transfer Function인데 비해, HLG는 카메라 (혹은 인코더)를 위한 Transfer Function이다. 물론 둘 다 역함수를 구하면 반대의 경우에 적용할 있다.

Matrix
매트릭스는 수학에서 계산할 때 사용되는 ‘행열’을 뜻한다. 컬러 비디오 신호를 만들기 위해서는 R, G, B 화소를 가진 카메라의 광학센서에서 출력하는 R, G, B 각 채널별 전기적 레벨을 전자적 값으로 변환한 후 다시 이를 좀 더 처리하기 쉬운 (아날로그) 색차신호로 변환시킨다. 즉, 0~1 사이의 R, G, B 값을 Y, Pb, Pr과 같은 색차 신호로 변환시키는데 이런 과정을 Color Space Conversion (CSC)라 한다.

※ RGB to YPbPr Color Space Conversion Matrix (출처: Wikipedia)
위의 행렬식을 좀 더 이해하기 쉬운 방식으로 표현하자면 아래와 같다. 즉, 밝기 값 (Y’=100%)는 Red 채널의 29.9%, Green 채널의 58.7%, 그리고 Blue 채널의 11.4%로 구성되어 있다는 뜻이다. 만약 P’b와 P’r 값이 모두 0이라면 컬러가 없는 무채색 (Neutral Color)이 되는데, 따라서 이 Y’ 값 만으로 흑백 영상을 송수신 할 수 있다. 참고로 여기서 R’, G’, B’, Y’ 등으로 표기한 이유는 원래의 밝기를 단순히 0~1으로 선형 변환한 것이 아니라 Transfer Function (이 경우 카메라 감마)를 적용해서 비선형 변환을 했다는 뜻이다.
Y’=0.299×R’+0.587×G’+0.114×B’
P’B=0.5×(B’-Y’)/(1-0.114)
P’R=0.5×(R’-Y’)/(1-0.299)
혹시 위의 식 (Y’=0.299×R’+0.587×G’+0.114×B’)에서 0.299와 0.587, 0.114와 같은 수치는 어떻게 만들어진 것이지 궁금한 분이 있을 것이다. 이것은 바로 CRT의 3원색(Color Primaries)와 백색 (White Point)의 색 좌표로부터 계산한다. 앞서 설명한 바와 같이 가장 밝은 색인 백색 (혹은 무채색의 밝기)는 빨강, 초록, 파랑의 3원색의 조합으로 만들어진다. 따라서 3원색과 백색의 색 좌표를 안다면 그 색 좌표로부터 R, G, B의 배합 비율을 계산할 수 있다. 이를 루마 계소 (Luma Coefficient)라 부른다. 참고로 디스플레이의 절대적 밝기를 뜻하는 Luminance (휘도)와 0~1의 범위로 비선형 압출된 밝기값 Luma는 다른 개념임을 혼동하지 말아야 한다.

위에서 설명한 바와 같이 Luma 계수는 백색과 3원색의 색 좌표로부터 계산하기 때문에 BT.709나 BT.2020과 같이 3원색의 색 좌표가 달라졌을 경우에는 Luma Coefficient를 새로 계산해야 하며, 결과적으로 CSC를 위한 Matrix값도 달라진다. 즉, 앞서 보여 드린 NDI의 HDR Metadata에서 Matrix라는 것은 BT.601이냐, BT.709냐, 혹은 BT.2020 (=BT.2100)이냐에 따라 다른 Matrix 값을 적용해서 계산하라는 뜻이다. 즉, 이들은 모두 White Point는 D65 (Daylight 6500K)로 동일하지만, 색 재현 범위 (즉 3원색의 색 좌표)는 모두 다르기 때문에 계산에 사용되는 Matrix값이 달라진다는 뜻이다.

아래의 표는 ITU 표준에서 BT.601, BT.709, BT.2020, BT.2100 간의 파라미터 차이를 간략하게 요약한 것이다. 여기서 BT.601, BT.709, BT.2020을 SDR (Standard Dynamic Range)라 부르고, BT.2100만을 HDR이라 한다. 결정적인 차이는 BT.2020의 넓은 색 재현력에 더해 HDR용 감마인 PQ와 HLG라는 Transfer Function을 적용했다는 점이다.
참고로, 아래의 표에서 사용된 용어와 NDI Metadata에서 사용된 용어를 비교하자면 아래와 같다.
※ Color Gamut è Primaries
※ Color Component è Matrix
※ OETF (Gamma) è Transfer

결론: NDI와 HDR
이상 NDI 6에서 지원하는 HDR의 Metadata에 대한 배경 설명을 드렸다. 사실 NDI에서 HDR을 사용하는데 있어서 이렇게 조금은 복잡한 것까지 알 필요는 없다. 하지만 NDI의 Metadata에 Primaries, Transfer, Matrix 등과 같이 간략한 용어가 사용되고 있어 정확히 그게 무슨 뜻인지 궁금해 하실 분들을 위해 좀 자세히 설명해 보았다. 그리고 bt_601, bt_709, bt_2020, bt_2100과 같이 ITU 표준이 무엇인지 정학하게 알아야 나중에 자신이 사용하는 컨텐츠가 무엇인지에 따라 정확한 설정을 할 수 있을 것 같아 각각의 표준간 차이점에 대해서도 설명해 보았다.
여기서 설명하지 않은 것은 Color Depth 즉, HDR을 몇 비트 (bit)로 처리할 것인가에 대한 부분이다. 표준에서는 PQ는 12bit 이상, HLG는 10bit 이상을 권장하고 있지만 현실적으로는 대부분의 방송장비에서 PQ와 HLG를 10bit로 처리하고 있다. 그런데, NDI-HX2나 HX3는 H.264나 H.265로 압축을 많이 하기 때문에 다이나믹 레인지가 넓은 HDR 영상을 처리할 때 유의할 필요가 있다. (특히 PQ)
참고로 NDI에 따르면 압축된 영상 포맷으로 HDR을 보낼 때, 즉 H.264나 H.265로 10비트나 12비트의 HDR을 보낼 때에는(NDI HX2혹은 HX3인 경우) non-HDR (=SDR) 영상을 보낼 때와 동일하다고 한다. 하지만, 비압축된 HDR 프레임을 보낼 경우 (즉, SpeedHQ 코덱을 이용한 Full NDI 영상의 경우) 먼저 비디오 데이터를 16비트로 변환한 후 P216 버퍼 (알파 채널 필요시 PA16 버퍼)에 써 주어야 한다고 한다. 참고로 ‘P216 버퍼’란 NDI에서 HDR 영상을 처리할 때 사용하는 16비트, Limited Range (256~55225)의 YCbCr 포맷을 뜻한다고 한다.
마지막으로, NDI의 SDK 버전에 따라 HDR 처리에 있어 아래와 같은 차이가 있다고 한다.
* NDI SDK: HDR 수신만 가능
* NDI Advanced SDK: HDR 송신 및 수신 모두 가능
지난 기사에서는 PTZ 카메라에서 지원 가능한 NDI, SRT, RTSP 등의 스트리밍 프로토콜을 실제 어떻게 사용할 수 있는 지에 대해 간략하게 설명 드렸다. 이번 기사에서는 NAB 2025에서 발표된 NDI 6.2에 새롭게 추가된 것들 중에서 (필자 입장에서) 가장 주목할 만한 기능이라고 할 수 있는 HDR에 대해 설명 드리도록 하겠다.
NDI 6.2 무엇이 달라졌나? (What’s new?)
위의 제목 그대로 구글에 질문을 올렸더니 검색 결과의 맨 위에 구글 인공지능(AI)가 요약한 NDI 6.2의 개요가 먼저 표시된다. AI의 활용이 점점 늘고 있는데, 이제는 굳이 AI 기능을 선택하지 않더라도 이렇게 검색엔진에서 자동으로 적용해 주고 있다. 참으로 놀라운 일이다. 일단, 좀 더 정확한 이해를 위해 원문을 먼저 실어 드린다.
AI 개요
NDI 6.2 introduces advanced discoverability and real-time monitoring capabilities. It allows users to see all NDI-connected sources with full visibility, including details like video format, codec, frame rate, resolution, and connection state. Additionally, NDI 6.2 features embedded WAN connectivity for some cameras and HDCP support for secure content transmission.
Here's a more detailed breakdown:
Enhanced Receiver Discoverability:
NDI 6.2 provides users with a clear view of all NDI-connected sources, making it easier to manage and utilize various video feeds.
Real-time Monitoring and Control:
Improved monitoring features allow users and developers to track key stream information, including video format, codec, frame rate, resolution, and connection status, all in real-time.
Embedded WAN Connectivity:
Certain cameras now have the NDI Bridge utility built-in, enabling them to send NDI streams over wide area networks (WAN) with ease.
HDCP Support:
NDI 6.2 includes support for HDCP (High-bandwidth Digital Content Protection), allowing for the secure transmission of protected content.
NDI HX3 Support:
NDI 6.2 supports NDI|HX3, which utilizes HEVC encoding, resulting in lower bandwidth consumption and compatibility with Wi-Fi-enabled PTZ cameras.
Metadata Lab:
The new Metadata Lab initiative aims to standardize metadata proposals for NDI workflows, potentially unlocking new possibilities for automation and control.
Integration with AWS Elemental MediaConnect:
NDI is now integrated into AWS Elemental MediaConnect, enabling high-quality IP video transport within the AWS cloud.
다들 아시겠지만 위의 내용을 한글로 번역하는 것도 너무도 쉽고 빠르다. 단지 마우스 클릭 2번이면 해결된다. 일단 구글이 번역해 준 원문 그대로 참고하시기 바란다.
AI 개요
NDI 6.2에서는 다음을 소개합니다. 고급 검색 기능 및 실시간 모니터링 기능 사용자는 비디오 형식, 코덱, 프레임 속도, 해상도, 연결 상태 등의 세부 정보를 포함하여 NDI에 연결된 모든 소스를 완벽하게 볼 수 있습니다. 또한, NDI 6.2는 일부 카메라에 대한 내장 WAN 연결 기능과 안전한 콘텐츠 전송을 위한 HDCP 지원 기능을 제공합니다.
더 자세한 내용은 다음과 같습니다.
향상된 수신기 검색 기능:
NDI 6.2는 사용자에게 모든 NDI 연결 소스를 명확하게 보여줌으로써 다양한 비디오 피드를 보다 쉽게 관리하고 활용할 수 있도록 해줍니다.
실시간 모니터링 및 제어:
개선된 모니터링 기능을 통해 사용자와 개발자는 비디오 형식, 코덱, 프레임 속도, 해상도, 연결 상태 등의 주요 스트림 정보를 실시간으로 추적할 수 있습니다.
내장형 WAN 연결:
일부 카메라에는 이제 NDI 브리지 유틸리티가 내장되어 있어 손쉽게 WAN(광역 네트워크)을 통해 NDI 스트림을 전송할 수 있습니다.
HDCP 지원:
NDI 6.2에는 HDCP (고대역폭 디지털 콘텐츠 보호) 지원이 포함되어 있어 보호된 콘텐츠의 안전한 전송이 가능합니다.
NDI HX3 지원:
NDI 6.2는 HEVC 인코딩을 활용하는 NDI|HX3를 지원하여 대역폭 소모를 줄이고 Wi-Fi 지원 PTZ 카메라와 호환됩니다.
메타데이터 랩:
새로운 메타데이터 랩 이니셔티브는 NDI 워크플로에 대한 메타데이터 제안을 표준화하여 자동화 및 제어에 대한 새로운 가능성을 열어주는 것을 목표로 합니다.
AWS Elemental MediaConnect와 통합:
이제 NDI가 AWS Elemental MediaConnect에 통합되어 AWS 클라우드 내에서 고품질 IP 비디오 전송이 가능해졌습니다.
NDI의 HDR 지원
AI가 요약해 준 위의 NDI 6 개요에는 보이지 않지만 NDI 6에 추가된 중요한 것 중 하나가 바로 10비트 이상의 HDR 지원이 가능해 졌다는 것이다. HDR이 무엇인지, 그리고 왜 필요한지 잘 모르시는 분들을 위해 아주 간단하게 설명해 드리자면 이렇다. 먼저 아래의 그림이 돌비에서 제안한 Dolby Vision이라는 HDR의 기본적인 컨셉을 기존의 SDR과 대비해서 보여주고 있다.
한 마디로 말해서 HDR은 “우리 눈이 볼 수 있는 수준과 최대한 비슷하게 이미지 혹은 영상을 보여주자는 것이고, 그러기 위해 더 넓은 색 재현 범위와 명암대비를 구현하자는 것”이다. 이를 위해 카메라와 디스플레이 같은 하드웨어의 발전도 필요하고, 그 기준이 되는 더 넓은 색 재현 범위와 더 높은 명암대비를 위한 표준이 필요하다. 그리고 이러한 표준이 담긴 문서가 바로 ITU-R BT.2100 이라는 문서이다.
먼저, UHD를 위한 표준인 BT.2020에서는 HD 표준인 BT.709에 비해 색 재현 범위가 대폭 넓어졌다. 이렇게 색 재현범위가 넓어지면 아래의 그림에서 보는 것과 같이 그만큼 더 현실적인 이미지나 영상을 보여 줄 수 있게 된다. HDR 표준인 BT.2100은 UHD 표준인 BT.2020의 넓은 색 재현 범위를 그대로 동일하게 사용한다. BT.2020이 2012년에 만들어졌지만 13년이 지난 현재까지도 BT.2020에서 규정한 넓은 색 재현 범위를 가진 디스플레이 (LCD, OLED 등) 제품을 아직도 상용화하지 못했다. 따라서 2016년에 만들어진 BT.2100이 이 보다 더 넓은 색 재현 범위를 (기술적 지향점으로서라도) 규정할 수 없었을 것이라는 점을 쉽게 이해할 수 있을 것이다. 어쨌든 색 재현 범위 (Color Gamut 혹은 Color Primaries)의 경우 BT.2020 = BT.2100이라는 점을 기억해 주시면 되겠다.
BT.2100 (HDR)이 BT.2020 (UHD)와 결정적으로 다른 것은 바로 더 높은 명암대비 (Dynamic Range)를 구현하기 위해 새로운 Transfer Function을 도입했다는 것이다. 좀 더 구체적으로는 카메라의 경우 OETF (Opto-Electrical Transfer Function), 그리고 디스플레이의 경우 EOTF (Electro-Optical Transfer Function)으로 구분되는데, 한 마디로 말해서 HDR을 위한 새로운 감마(Gamma)라고 이해하시면 되겠다.
기존의 SDR (BT.601, BT.709, BT.2020)의 경우 이제는 사라진 CRT (브라운관)의 휘도 범위인 약 0.01 ~ 100nit를 기준으로 감마를 포함한 비디오 파라미터들이 만들어졌었다. 하지만 이제는 Local Dimming LCD라든지 OLED, 그리고 나아가 QD-OLED 등 새로운 디스플레이 기술의 등장으로 인해 더 넓은 휘도 범위, 혹은 더 높은 명암대비를 구현할 수 있게 되었다. 이에 따라 새로운 카메라 감마와 디스플레이 감마가 필요한데, 그게 바로 BT. 2100인 것이다.
어쨌거나 기존의 0.01 ~ 100nit의 휘도 범위 즉, Dynamic Range가 0.001 ~ 1000nit, 혹은 0.001 ~ 10,000nit까지 확장될 경우 훨씬 풍성한 컬러, 우리 눈이 자연에서 볼 수 있는 것에 훨씬 근사한 실감나는 컬러를 볼 수 있게 된다는 것이다. 아래의 표 (출처: 돌비)에서는 HDR이 SDR에 비해 최대 843% 강화된 풍성한 컬러를 보여 준다는 설명이다.
아래의 그림은 NDI 홈페이지에서 HDR을 설명하는 페이지의 일부를 캡쳐한 것인데 NDI가 HDR을 어떻게 처리하는 지 대략적으로 이해할 수 있다. 결론부터 얘기하자면 국제방송연맹 (ITU)의 HDR 표준인 BT. 2100을 그대로 활용한다는 것이다. 따라서 기존에 BT.2100에 대해 이해하고 있는 분이라면 NDI가 HDR을 어떻게 처리하는 지에 대해서도 이미 알고 있는 것이나 마찬가지이다. HDR 처리를 위해 SDR (BT.601, BT.709, BT.2020)과 구분하여 HDR (BT.2100)의 파라미터를 NDI 스트림을 송신하거나 수신할 때 메타 데이터에 넣어 준다는 것이다.
먼저 위의 표 상단에 있는 Primaries, Transfer, Matrix라는 항목이 무엇을 뜻하는 지에 대해 설명 드리도록 하겠다.
Primaries
우리 말로 하면 (빛의) 삼원색 (三原色)을 뜻한다. 태양 빛을 프리즘에 통과시키면 다양한 파장대의 빛으로 분리되며 무지개의 다양한 색을 보여 준다. 하지만 우리가 인위적으로 만드는 빛의 컬러는 대개 빨강, 초록, 파랑의 3가지 색을 조합하여 만든다. 그 이유는 인간의 눈이 이 3원색의 조합으로서 빛의 색을 인식하기 때문이다.
우리 눈의 망막 (Retina) 안에는 2가지 종류의 시감 세포가 있다. 먼저, 막대기 모양의 간상세포 (Rod Cell)는 빛의 밝기에는 매우 민감하지만 색을 구별하지는 못한다. 매우 어두운 환경에서도 어렴풋이 물체의 형태를 볼 수 있는 것은 이 간상세포가 작동하기 때문이다. 이에 비해 조금 밝은 환경에서 작동하는 원뿔세포 혹은 추상세포 (Cone Cell)는 단파장, 중파장, 장파장의 가시광선 (Visible Light)을 감지하는데, 이들은 대략적으로 파랑, 초록, 빨강 색에 대응한다. 따라서, 인간의 눈은 망막에 들어 오는 빛을 3원색 (빨강, 초록, 파랑)의 조합으로써 인식하게 되고, 이를 통해 색을 구별하는 것이다.
이에 따라 우리가 컬러 이미지나 영상을 보여 주고자 할 때 이 3원색을 조합할 수 있도록 이미지혹은 비디오 코딩 시스템을 만들고, 이를 다시 빛 (가시광선)으로 만들어 주는 장치를 개발한다. 예를 들어, 우리가 매일 사용하고 있는 스마트 폰의 디스플레이 (LCD 혹은 OLED)는 해상도 (예: Full HD = 1920×1080)에 해당하는 수량의 화소 (Pixel)를 가진다. 그리고, 하나의 화소 (Pixel) 속에는 빨강, 초록, 파랑의 하위 화소 (Sub-pixel)을 가지고 있으며, 이 하위 화소들의 밝기 비율에 따라 우리 눈에 보이는 컬러가 달라지는 것이다. TV나 모니터 등 이미지나 영상을 보여 주는 모든 종류의 디스플레이 장치들도 같은 원리를 가진다.
Transfer (Function)
인간의 눈은 빛의 밝기 증가에 정비례해서 밝게 느끼지 않는다. 예를 들어, 모니터 화면의 휘도를 10nit로 설정했을 때 인간의 눈이 감지하는 밝기를 10이라고 하자. 그리고, 20nit, 30nit, 40nit ~ 200nit까지 휘도를 일정하게 증가시키며 인간의 눈이 감지하는 밝기를 측정해 본다면 20, 30, 40 ~ 200으로 일정하게 증가할까? 실험 결과는 그렇지 않다는 것이다. 아래의 그래프에서 보듯, 인간의 눈이 감지하는 빛의 밝기는 실제 의 밝기에 대해 지수함수적으로 증가한다.
※ Encoding Transfer Function: L* vs BT.709, sRGB
이러한 인간의 눈이 가진 특성을 활용하면 더 적은 자원을 활용해서 더 큰 효과를 얻을 수 있다. 즉, 위의 그래프가 말해주는 것은 인간의 눈은 어두운 빛(색)간의 구별에는 상대적으로 민감하고, 매우 밝은 빛(색)간의 구별에는 상대적으로 둔감하다는 것이다. 따라서, 비디오 카메라 역시 카메라의 렌즈를 통해 들어오는 빛(가시광선)을 있는 그대로 처리하는 게 아니라 인간의 눈이 가진 특성과 유사하게 지수함수적으로 처리한다. 이렇게 하면 Black부터 White까지의 다양한 밝기 구간에 동일한 비율로 자원을 배분할 것이 아니라 어두운 부분에 좀 더 많은 자원을 쓰고, 밝은 부분에 자원을 덜 투입하는 효과가 발생한다. 디지털적으로 좀 과장해서 비유하자면 어두운 색은 10비트로 처리하고, 중간 밝기의 색은 8비트로, 밝은 색은 6비트로 처리하는 효과가 발생한다는 것이다.
따라서 카메라에서는 위쪽으로 볼록한 형태의 비선형으로 처리하여 인간의 시감과 비슷한 방식으로 인코딩을 하고, 반대로 디스플레이에서는 카메라와 반대로 아래로 볼록한 형태의 비선형으로 디코딩을 함으로써 원래의 자연광에서 우리 눈으로 보는 것과 유사한 계조가 재현되도록 하였다. 역시서 디스플레이 감마 (혹은 EOTF)의 경우에는 원래 CRT가 가진 전광 특성이 대략 카메라와 상반되었기 때문에 별도의 디코딩 과정은 없다. 하지만 이후에 등장한 LCD나 OLED 등은 CRT와 다른 특성을 가졌으나 기존의 방송표준에 정해진 OETF 특성을 고려하여 모두 CRT와 유사한 감마 특성 (EOTF)를 가지도록 개발, 생산되고 있다.
BT.2100에 채용된 HDR을 위한 Transfer Function은 2가지이다. 먼저 PQ (Perceptual Quantizer)는 돌비가 Dolby가 HDR 시스템으로 제안한 Dolby Vision에 포함된 것으로 SMPTE 표준 (ST.2084) 및 ITU 표준 (BT.2100)으로 채택되었다. 0.0001 ~ 10,000nit의 매우 광범위한 휘도 범위를 커버할 수 있는 변환곡선으로 12비트 이상이 권장된다. 현실적으로는 이렇게 넓은 휘도 범위를 커버할 수 있는 디스플레이도 없고, 그럴 필요도 없기 때문에 보통 0.001 ~ 1,000nit 범위의 디스플레이에 적용할 수 있다.
BT.2100에 채용된 또 하나의 HDR용 Transfer Function은 HLG (Hybrid-Log Gamma)라는 것으로 영국 BBC 방송국과 일본 NHK 방송국이 협력하여 만든 것이다. PQ에 비해 현실적인 휘도 범위 (~ 1,000nit)를 기준으로 만들어졌고 휘도 구간별로 Log와 Gamma가 혼합된 형태라 PQ에 비해 생방송에 좀 더 유리하다는 평가를 받고 있다. 이에 비해 PQ는 영화나 드라마 등 후반작업 (Post Production)이 가능한 작업에 유리하다는 평가이다. PQ가 디스플레이의 Transfer Function인데 비해, HLG는 카메라 (혹은 인코더)를 위한 Transfer Function이다. 물론 둘 다 역함수를 구하면 반대의 경우에 적용할 있다.
Matrix
매트릭스는 수학에서 계산할 때 사용되는 ‘행열’을 뜻한다. 컬러 비디오 신호를 만들기 위해서는 R, G, B 화소를 가진 카메라의 광학센서에서 출력하는 R, G, B 각 채널별 전기적 레벨을 전자적 값으로 변환한 후 다시 이를 좀 더 처리하기 쉬운 (아날로그) 색차신호로 변환시킨다. 즉, 0~1 사이의 R, G, B 값을 Y, Pb, Pr과 같은 색차 신호로 변환시키는데 이런 과정을 Color Space Conversion (CSC)라 한다.
※ RGB to YPbPr Color Space Conversion Matrix (출처: Wikipedia)
위의 행렬식을 좀 더 이해하기 쉬운 방식으로 표현하자면 아래와 같다. 즉, 밝기 값 (Y’=100%)는 Red 채널의 29.9%, Green 채널의 58.7%, 그리고 Blue 채널의 11.4%로 구성되어 있다는 뜻이다. 만약 P’b와 P’r 값이 모두 0이라면 컬러가 없는 무채색 (Neutral Color)이 되는데, 따라서 이 Y’ 값 만으로 흑백 영상을 송수신 할 수 있다. 참고로 여기서 R’, G’, B’, Y’ 등으로 표기한 이유는 원래의 밝기를 단순히 0~1으로 선형 변환한 것이 아니라 Transfer Function (이 경우 카메라 감마)를 적용해서 비선형 변환을 했다는 뜻이다.
Y’=0.299×R’+0.587×G’+0.114×B’
P’B=0.5×(B’-Y’)/(1-0.114)
P’R=0.5×(R’-Y’)/(1-0.299)
혹시 위의 식 (Y’=0.299×R’+0.587×G’+0.114×B’)에서 0.299와 0.587, 0.114와 같은 수치는 어떻게 만들어진 것이지 궁금한 분이 있을 것이다. 이것은 바로 CRT의 3원색(Color Primaries)와 백색 (White Point)의 색 좌표로부터 계산한다. 앞서 설명한 바와 같이 가장 밝은 색인 백색 (혹은 무채색의 밝기)는 빨강, 초록, 파랑의 3원색의 조합으로 만들어진다. 따라서 3원색과 백색의 색 좌표를 안다면 그 색 좌표로부터 R, G, B의 배합 비율을 계산할 수 있다. 이를 루마 계소 (Luma Coefficient)라 부른다. 참고로 디스플레이의 절대적 밝기를 뜻하는 Luminance (휘도)와 0~1의 범위로 비선형 압출된 밝기값 Luma는 다른 개념임을 혼동하지 말아야 한다.
위에서 설명한 바와 같이 Luma 계수는 백색과 3원색의 색 좌표로부터 계산하기 때문에 BT.709나 BT.2020과 같이 3원색의 색 좌표가 달라졌을 경우에는 Luma Coefficient를 새로 계산해야 하며, 결과적으로 CSC를 위한 Matrix값도 달라진다. 즉, 앞서 보여 드린 NDI의 HDR Metadata에서 Matrix라는 것은 BT.601이냐, BT.709냐, 혹은 BT.2020 (=BT.2100)이냐에 따라 다른 Matrix 값을 적용해서 계산하라는 뜻이다. 즉, 이들은 모두 White Point는 D65 (Daylight 6500K)로 동일하지만, 색 재현 범위 (즉 3원색의 색 좌표)는 모두 다르기 때문에 계산에 사용되는 Matrix값이 달라진다는 뜻이다.
아래의 표는 ITU 표준에서 BT.601, BT.709, BT.2020, BT.2100 간의 파라미터 차이를 간략하게 요약한 것이다. 여기서 BT.601, BT.709, BT.2020을 SDR (Standard Dynamic Range)라 부르고, BT.2100만을 HDR이라 한다. 결정적인 차이는 BT.2020의 넓은 색 재현력에 더해 HDR용 감마인 PQ와 HLG라는 Transfer Function을 적용했다는 점이다.
참고로, 아래의 표에서 사용된 용어와 NDI Metadata에서 사용된 용어를 비교하자면 아래와 같다.
※ Color Gamut è Primaries
※ Color Component è Matrix
※ OETF (Gamma) è Transfer
결론: NDI와 HDR
이상 NDI 6에서 지원하는 HDR의 Metadata에 대한 배경 설명을 드렸다. 사실 NDI에서 HDR을 사용하는데 있어서 이렇게 조금은 복잡한 것까지 알 필요는 없다. 하지만 NDI의 Metadata에 Primaries, Transfer, Matrix 등과 같이 간략한 용어가 사용되고 있어 정확히 그게 무슨 뜻인지 궁금해 하실 분들을 위해 좀 자세히 설명해 보았다. 그리고 bt_601, bt_709, bt_2020, bt_2100과 같이 ITU 표준이 무엇인지 정학하게 알아야 나중에 자신이 사용하는 컨텐츠가 무엇인지에 따라 정확한 설정을 할 수 있을 것 같아 각각의 표준간 차이점에 대해서도 설명해 보았다.
여기서 설명하지 않은 것은 Color Depth 즉, HDR을 몇 비트 (bit)로 처리할 것인가에 대한 부분이다. 표준에서는 PQ는 12bit 이상, HLG는 10bit 이상을 권장하고 있지만 현실적으로는 대부분의 방송장비에서 PQ와 HLG를 10bit로 처리하고 있다. 그런데, NDI-HX2나 HX3는 H.264나 H.265로 압축을 많이 하기 때문에 다이나믹 레인지가 넓은 HDR 영상을 처리할 때 유의할 필요가 있다. (특히 PQ)
참고로 NDI에 따르면 압축된 영상 포맷으로 HDR을 보낼 때, 즉 H.264나 H.265로 10비트나 12비트의 HDR을 보낼 때에는(NDI HX2혹은 HX3인 경우) non-HDR (=SDR) 영상을 보낼 때와 동일하다고 한다. 하지만, 비압축된 HDR 프레임을 보낼 경우 (즉, SpeedHQ 코덱을 이용한 Full NDI 영상의 경우) 먼저 비디오 데이터를 16비트로 변환한 후 P216 버퍼 (알파 채널 필요시 PA16 버퍼)에 써 주어야 한다고 한다. 참고로 ‘P216 버퍼’란 NDI에서 HDR 영상을 처리할 때 사용하는 16비트, Limited Range (256~55225)의 YCbCr 포맷을 뜻한다고 한다.
마지막으로, NDI의 SDK 버전에 따라 HDR 처리에 있어 아래와 같은 차이가 있다고 한다.
* NDI SDK: HDR 수신만 가능
* NDI Advanced SDK: HDR 송신 및 수신 모두 가능