1.jpg

 

NVIDIA는 지난 6월 17일에 지포스 340.43 드라이버의 베타 버전을 공개했습니다. 이 드라이버는 게임 타이틀의 최적화가 주요 특징이지만 그것 외에도 숨겨진 기능이 하나 있습니다. 바로 HDMI 1.4에서 4K/60Hz 전송이 가능하도록 하는 것입니다.

 

기존 세대의 지포스를 탑재한 그래픽카드는 HDMI 1.4를 지원합니다. 하지만 HDMI에서 4K/60Hz를 출력하려면 HDMI 2.0가 필요합니다. 따라서 지포스에선 HDMI를 통해 4K/60Hz 출력을 할 수 없다고 봐야 할 것입니다.

 

그럼 340.43 베타 드라이버에선 어떻게 지포스의 HDMI 포트로 4K/60Hz 출력이 가능하도록 한 것일까요? 아래는 그 설명과 실제 테스트 결과를 소개하도록 하겠습니다.

 

2.jpg

 

PC용 4K 모니터는 2013년 후반부터 두각을 보이고 있습니다. 그 보급 속도를 풀 HD에 비교하는 경우도 있지요. 반면 여기에 대한 GPU의 대응은 그리 빠르지 않습니다.

 

3840x2160의 4K 해상도를 1초 60장(60fps=60Hz)로 HDMI를 통해 전송하려면 영상 출력과 입력 모두 2013년 9월에 출시된 HDMI 2.0 규격을 지원해야 합니다. 그래서 TV와 디스플레이는 2013년 후반부터 HDMI 2.0 대응 제품이 나오고 있습니다.

 

반면 GPU는 2009년에 등장한 디스플레이포트 1.2 규격에서 4K/60Hz 출력을 할 수 있게 되면서 HDMI를 통한 4K/60Hz 대응엔 소극적인 자세를 보이고 있습니다. 지포스와 라데온 모드 HDMI 2.0을 지원하지 않으며 4K/60Hz를 출력하려면 디스플레이포트를 쓰라는 입장인 것이지요.

 

NVIDIA가 340.43 베타에서 도입한 HDMI 관련 업데이트는 바로 이 차이를 메우기 위한 것입니다. 근본적인 해결이 아니라 임시방편이긴 하지만, 현재 GPU의 스펙 안에서 HDMI를 통해 4K/60Hz 출력이 가능하도록 한 방법입니다.

 

그럼 어떻게 하드웨어의 벽을 뒤어넘은 것일까요. HDMI 2.0이 18Gbps, 디스플레이포트 1.2가 21.6Gbps인데 비해 HDMI 1.4는 10.2Gbps입니다. 하지만 3840x2160을 24비트로 60fps로 전송할 때는 3840×2160×24bit×60fps≒ 11.94Gbps보다 더 많은 대역폭이 필요합니다.

 

3.jpg

 

왜냐하면 표시 화소 이외에 수직/수평의 컨트롤 구간이 있기 때문입니다. 또 HDMI의 TMDS(Transition Minimized Differential Signaling)는 데이터에 동기화 신호를 넣어 8비트를 10비트로 변환하여 전송하기 때문에 전송 데이터의 양은 25%가 늘어납니다.

 

그 결과 3840x2160을 HDMI의 TDMS로 전송할 때는 12Gbps보다 더 많은 대역폭이 필요합니다. 어느 정도인지는 제품에 따라 다르지만 4400x2250 해상도를 24비트 60fps로 전송한다면 4400×2250×24bit×60fps× 1.25≒ 17.82Gbps니까 10.2Gbps의 HDMI 1.4론 커버할 수 없습니다.

 

그래서 NVIDIA는 케플러 이후의 GPU에서 4K/60Hz 출력을 했을 경우 RGB가 각각 8비트가 아닌 YCbCr=4:2:0으로 출력하도록 했습니다. 이것이 바로 HDMI 1.4에서 4K/60Hz 출력이 가능하게 하는 핵심입니다.

 

4.jpg

 

YCbCr, YPbPr, YUV라 불리는 신호란 무엇일까요? 컴퓨터에서 1개의 픽셀은 RGB 3원색의 값을 조합한 것으로 표시합니다. 게임 그래픽 등에서 쓰이는 HDR 등을 제외하면 일반적으로 RGB에 8비트씩 총 24비트 컬러를 사용하게 됩니다.

  

동영상에선 RGB가 아니라 YCbCr로 표시하는 신호를 쓰는 게 일반적입니다. 이는 검은색에 해당하는 밝기(Y)와 파랑색의 차이(Cb), 빨간색의 차이(Cr)을 의미합니다. 여기서 말하는 차이란 3원색에서 밝기(Y)를 뺀 값으로 (B-Y)x정수 같은 식이 되며, RGB와 YCbCr의 변환이 가능합니다.

  

그럼 왜 YCbCr 같은 복잡한 방식을 쓰느냐 하면 YCbCr의 Y가 흑백 영상과 같기 때문입니다. 예전에 TV가 흑백에서 컬러로 바뀔 때, 흑백과의 호환성을 유지하면서 컬러로 가기 위해서 이런 방법을 도입했던 것이지요.

 

9.jpg

 

YCbCr 방식에서도 Y, Cb, Cr을 각각 8비트로 표혐하면 1픽셀 당 24비트니 색 표현 정확도는 RGB와 같습니다. 즉 영상을 구성하는 모든 픽셀이 24비트로 표현되는 한 이론적으로는 RGB 영상과 YCbCr 영상의 품질은 같아야 하지만 TV, DVD, 블루레이에선 그렇지 않은 경우가 있습니다.

 

아날로그 컬러 시절, 영상 데이터를 전송할 때 밝기와 색 차이를 풀 해상도로 보내면 데이터 용량이 너무 많아지면서 영상을 압축했기 때문입니다. 당시엔 컴퓨터의 성능이 우수하지 않아 MPEG 같은 것도 기대할 수 없었으니 대담한 방법으로 영상을 압축했지요.

 

인간의 시각은 밝기의 해상도엔 민감하지만 색의 해상도엔 그리 민감하지 않습니다. 그래서 밝기(실질적으로는 흑백 영상) 데이터는 풀 해상도를 전송하면서 색상 정보는 어느 정도 쳐낸다는 것이 바로 그 방법입니다.

 

색 정보를 선별해내는 방법엔 몇가지 패턴이 있지만 YCbCr=4:4:4에서 주사열의 짝수열 픽셀에서 CbCr을 줄이는 YCbCr=4:2:2를 널리 씁니다. 이 경우 밝기는 풀 해상도지만 색상은 절반이 됩니다. 현재 지상파 TV나 DVD, 블루레이에선 모두 YCbCr=4:2:2를 씁니다.

 

5.jpg

 

YCbCr의 4:4:4, 4:2:2, 4:2:0의 차이입니다. 그림 중의 사각형은 1개의 픽샐, 1개의 줄은 주사선을 의미합니다. 4:2:0에선 Cr과 Cb 중 선별되는 쪽이 프레임마다 바뀌는데 여기선 홀수 행을 표시한 걸로 나오네요.

 

이제 본론으로 돌아가서, NVIDIA는 340.43 베타 드라이버에서 YCbCr=4:2:0를 썼습니다. 케플러 이후 세대의 GPU에서 4K/60Hz 출력을 했을 경우 YCbCr=4:2:0니까 그 대역폭은 (4400×2250×8bit)+(2200×1125×(8bit+8bit)×60×1.25≒ 8.91Gbps가 됩니다.

 

즉 색 신호의 해상도 중 1/4를 잘라낸 결과 색 정보는 1920x1080 해상도 수준이 되면서 HDMI 1.4의 10.2Gbps라는 대역폭으로 전송할 수 있게 되는 것입니다. 따라서 이걸로 HDMI 1.4에서 4K 해상도를 60fps로 표시하게 되는 것이죠.

 

그럼 왜 NVIDIA가 YCbCr=4:2:2를 쓰진 않았던 것일까요? YCbCr=4:2:2를는 밝기 정보를 4K 풀 해상도, 색 정보도 1920x2160 해상도로 유지할 수 있고 전송 속도도 HDMI 1.4의 대역폭에 넣을 수 있을 것처럼 보이거든요.

 

6.gif

 

하지만 실제로는 YCbCr=4:2:2에서 Y가 12비트, CbCr이 12비트가 됩니다. 8비트만 써도 나머지 4비트는 0으로 채워 12비트 데이터로 취급되기에 데이터를 줄여도 대역폭은 YCbCr=4:4:4와 같은 17.8Gbps가 되니 HDMI 1.4의 상한선인 10.2Gbps를 넘어서게 됩니다.

  

여기까지 설명을 했으니 그럼 이제 본격적인 테스트입니다. 340.43 베타 드라이버를 사용해 YCbCr=4:2:0으로 4K/60Hz 출력을 테스트해보도록 하겠습니다.

 

7.gif

 

이 컴퓨터를 4K TV와 HDMI로 연결하면 4K/30Hz 디스플레이로 인식합니다. 이를 4K/60Hz로 바꾸려면 컨트롤 패널의 해상도 설정에서 리프레시율을 60Hz로 바꾸거나 윈도우 화면 해상도 설정에서 3840 x 2160, True Color(32비트), 60Hz로 바꿔야 합니다.

 

이 과정에서 사용자가 YCbCr=4:2:0를 따로 설정할 필요는 없습니다. 4K TV와 HDMI 1.4로 연결된 상태에서 4K/60Hz로 동작을 고르면 자동으로 YCbCr=4:2:0 모드로 전환됩니다. 그럼 이렇게 표현한 화면이 정말 아무런 차이가 없을까요?

 

8.jpg

 

그걸 확인하기 위해 HDMI 2.0 입력이 가능한 4K TV를 준비했습니다. 4K/30Hz의 RGB 표시로 4K 풀해상도를 표시했을 때와 340.43 베타 드라이버에서 추가된 4K/60Hz의 YCbCr=4:2:0일 때의 화면을 디지털 현미경으로 촬영해서 비교했습니다.

 

10.jpg

 

4K/60Hz(YCbCr=4:2:0)

 

11.jpg

 

4K/30Hz(RGB)

 

이렇게 보면 두 화면의 차이를 알기 힙듭니다. 둘 다 밝기 정보는 100%의 해상도를 쓰기 때문이지요. 이처럼 밝기 차이가 심한 영상에선 YCbCr=4:2:0에 따른 단점을 알아보기 어려울 것입니다.

 

12.jpg

 

4K/60Hz(YCbCr=4:2:0)

 

13.jpg

 

4K/30Hz(RGB)

 

이것도 색은 디테일을 표시하는 데 쓰이며 밝기 정보가 두드러지는 화면에선 두 경우의 차이를 느끼기가 거의 힘듭니다. 그럼 반대로 빛의 차이는 명백하지만 밝기 차이는 거의 나지 않는 경우라면 어떨까요?

 

14.jpg

 

4K/60Hz(YCbCr=4:2:0)

 

15.jpg

 

4K/30Hz(RGB)

 

하얀색 배경에 빨간색과 녹색의 글자를 표시했을 경우입니다. YCbCr=4:2:0에서도 글자를 보는 데 문제는 없으나 RGB에 비해 색감이 달라져 있으며 특히 녹색 문자는 곡선 족에 노란색의 위색이 드러나 있습니다. 이것이 바로 YCbCr=4:2:0의 단점이라 할 수 있겠습니다.

 

16.jpg

 

4K/60Hz(YCbCr=4:2:0)

 

17.jpg

 

4K/30Hz(RGB)

 

다른 예를 봅시다. 명암 차이가 확실하기에 글씨 판독에는 문제가 없으나 YCbCr=4:2:0는 1개 1개의 픽셀별로 보면 높은 밝기의 주황색 배경에 글자가 상당 수준 파묻혀 있습니다. 이 경우 해상력이 떨어진다는 느낌을 받게 되지요.

 

18.jpg

 

4K/60Hz(YCbCr=4:2:0)

 

19.jpg

 

4K/30Hz(RGB)

 

배경과 글자를 모두 어둡게 했을 경우입니다. 파란색 글씨는 YCbCr=4:2:0에서 거의 식별이 불가능하게 됐네요. 왜냐면 저 파란색 글자가 색의 차이는 있지만 밝기 차이는 없기 때문에, 색의 해상도 정보가 줄어들면서 구분이 힘들게 된 것입니다.

 

이상의 테스트에서 알 수 있는 것은 밝기 표현은 4K/60Hz(YCbCr=4:2:0)에서도 비교적 정확히 재현 가능하다는 것. 그리고 밝기 차이가 얼마 나지 않으면서 색상의 차이만으로 표현하는 곳은 4K/60Hz(YCbCr=4:2:0)에서 가독성이 꽤 떨어진다는 것입니다.

 

20.jpg

 

이번엔 게임입니다. 데드 스페이스 3에서 풀옵으로 게임을 했는데요. 지포스 GTX 780 Ti를 썼기에 프레임은 60fps 정도를 유지할 수 있었습니다. 여기선 4K/60Hz(YCbCr=4:2:0)의 단점은 크게 드러나지 않았고 4K의 높은 해상력을 볼 수 있었다고 하네요.

 

21.jpg

 

어새신 크리드 4: 블랙 플래그도 해 보았지만 4K/60Hz(YCbCr=4:2:0)의 단점보다는 높은 해상도와 프레임 레이트가 더 크게 느껴졌다고 합니다.

 

GPU 부하라는 점에서 보면 GPU가 완벽한 4K 해상도로 맞춰 렌더링했지만 4K/60Hz(YCbCr=4:2:0)로 출력하면서 색상 정보의 3/4이 버러젼디는 건 아까운 일입니다. 그러니 GPU와 그래픽카드가 HDMI 2.0을 지원해 제대로 4K를 출력하는 게 최선이라는 점은 분명합니다.

 

하지만 최신 게임 타이틀에서 4K 해상도로 설정해 게임을 쾌적하게 플레이할 수 있는 건 쉽지 않은 일입니다. 일단 30fps 이상은 넘길 수 있는 상황이 되야 HDMI 2.0을 지원할 것이지요. 그런 의미에서 HDMI 1.4에서도 4K/60Hz 출력이 가능하다는 건 나쁘지 않은 일입니다.

 

따라서 게이머들이 4K를 표시할 때 프레임에 따라서 RGB 풀 해상도로 표시할 것인지, 아니면 (YCbCr=4:2:0)로 낮춰 60fps 출력을 할 수 있도록 하는지 선택의 여지를 준다는 점에선 분명 가치가 있다고 할 수 있겠습니다.   

 

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.