수직동기화

1 개요

Vertical Synchronization (V-sync)

컴퓨터 디스플레이에서 그래픽 카드의 프레임 생성과 모니터의 프레임 출력 타이밍을 맞추도록 하는 설정. 아날로그 영상 신호에서 프레임 시작을 나타내는 신호의 이름에서 유래하였다. 흔히 게임의 비디오 옵션에서 자주 보이는 Vsync 옵션이 바로 수직동기화와 관련이 있다.

수직동기 신호는 디스플레이의 가장 마지막에서 발생하여 가장 위쪽에서 종료된다. 그 다음에는 디스플레이 화면의 왼쪽에서 오른쪽으로, 위에서 아래로 화면을 그리며 내려와서, 다시 화면의 맨 아래쪽에서 새로운 수직동기 신호를 발생시킨다. 여기까지가 주로 1/60 초가 걸리게 된다. 그래서 대부분의 게임도 여기에 맞춰 1/60초에 한번씩 데이터 계산하고 화면을 새로 그리게 된다.

텔레비전 게임기야 무조건 수직동기화가 기본이었기에 상관없는 이야기지만, 컴퓨터 게임의 경우엔 수직동기화를 켜는 것이 의미가 없는 경우가 많았다. 예전 CRT 모니터가 널리 쓰일 때는 모니터의 주사율이 60Hz를 한참 넘기는 것이 보통이었기 때문에[1] 수직동기화를 켜서 얻는 이익이 그리 크지 않았다. 오히려 수직동기화를 끄고 벤치마크를 돌려 초당 120 프레임을 관측하며 성능부심을 갖는 일이 흔했을 정도. 그러나 현재와 같이 60Hz짜리 LCD를 주로 쓰는 상황에서는 이것을 사용해야만 테어링을 방지할 수 있는 경우가 많다.

예외적으로 120Hz 혹은 144Hz 게이밍 모니터를 사용하는데 60fps 이상으로 실행될 때 게임이 문제를 일으키는 경우[2] 이걸 방지하기 위해 프레임을 60으로 제한하거나 1/2 수직동기화를 걸기도 한다.

2 수직동기화

전술했듯이 1/60초 단위로 수직동기를 대기하며 계산을 마치고 그림을 그린다. 그런데 만약 처리가 늦어져서 수직동기 신호를 놓치게 되면 게임은 다음번 수직동기 신호까지 또 다시 대기를 해야 한다. 그러면 그 프레임에서는 결국 두 배인 1/30초를 소비하게 되는 것이다. 이런 처리 지연이 계속 이어지게 된다면 결국 플레이어는 게임이 느려지게 되는 현상을 경험하게 되는 것이다. 게임기의 성능을 넘어서는 적의 출현, 총알의 과다 표현 등으로 게임이 슬로 모션으로 돌아가는 이유는 이 때문이다.

수직동기화의 장단점은 다음과 같다.

  • 장점
    • 테어링을 방지한다. 삼중버퍼링과 함께 사용하면 더욱 좋다.
    • 필요 이상의 과도한 화면 갱신을 막아주어 CPUGPU전력소모를 감소시킨다.
    • 컴퓨터의 성능이 좋지 않을 경우, 화면을 안정시켜 줄 수 있다.
  • 단점
    • 반응속도를 억제시키기 때문에 민감한 사람에겐 60fps 고정으로도 인풋랙을 느낄 수 있다.
    • 게임이나 사양에 따라서는 오히려 성능 저하를 유발하기도 한다.[3]
게임에 따라 다르지만, 대체로 컴퓨터 성능이 게임에 비해 좋지 않으면 수직 동기화를 키는 것을 추천한다.[4] 반면에 컴퓨터의 성능이 게임에 비해 널널할 경우에는 수직 동기화를 끄는 것이 좋다.

3 테어링

(screen) tearing. 화면이 찢어져 보이는 현상을 일컫는 용어. '티어링'은 여기서 옳은 발음이 아니며 외래어 표기법의 국제 음성 기호 대조표에 따라 '테어링'으로 표기하는 것이 맞다.[5]
[출처]
현재의 디스플레이 장치는 모두 기본적으로 더블 버퍼, 즉 백버퍼프론트버퍼를 사용하여 백버퍼에 다음에 출력될 화면을 집어넣고 화면이 갱신될때 프론트 버퍼와 백버퍼를 바꿔치기 하여 백버퍼 내용을 보여줌으로서 자연스러운 화면 전환을 이룬다. 이때 백버퍼에 화면을 넣고 있는동안 프론트 버퍼와의 전환이 이루어지면 출력되는 화면은 지금 넣고 있는것과 이전의 화면이 섞이게 되며 이것을 테어링 이라고 한다. 이 테어링을 제거하기 위한 기술이 수직동기화이다.

만약 수직동기가 되지 않은 상태에서 프레임의 생성을 프로그램에게 맡겨둔다면 정해진 시간 없이 프레임이 과다 혹은 과소 생성되게되어 한 화면에 동시에 2-3개의 화면이 그려지게 되는 경우가 발생하게 될 것이다. 이런 상황에서 화면이 좌에서 우로 흐른다면 서로 맞지 않는 그림들이 한 화면에 섞여져 나와 어긋나게 보여질 것이다. 가장 잘 느껴보고 싶다면 수직동기화를 끄고 데드스페이스같은 게임을 해보자. 맵에서 불빛이 점멸하면 화면이... 참고로 데드스페이스1은 수직동기화를 켜면 마우스 감도가 낮아지는 버그도 있다(...)

테어링이 발생하는가 하는 사실 자체는 FPS수치와 관련없이 항상 일어나고 있지만 우리가 발생하는 테어링을 보고 불편함을 느끼는데는 밀접한 관련을 가진다.

테어링은 백버퍼에 쓰고있는 화면과 이전 화면이 크게 다를때 쉽게 인지하게 되는데 이런경우는 1인칭 슈팅게임등 화면이 급격하게 변할때가 된다. FPS 수치가 지나치게 높아지면 백버퍼에 쓰고있는 시간이 증대되므로 테어링의 발생확률이 증가하게 되고 FPS수치가 지나치게 낮아지면 발생확률은 낮아지지만 발생시 테어링의 지속시간이 길어지고 화면간의 변화가 커지게 되므로 심하게 불편함을 느끼게 된다.

수직동기화를 통하여 테어링을 제거하지 않는다면 일반적으로 FPS수치가 모니터의 초당 갱신수와 일치할때, 60Hz 모니터가 일반적이므로 60fps일때 가장 불편함을 덜 느끼게 된다.

4 NTSCPAL

보통 디스플레이는 1/60 초로 화면을 갱신하지만 유럽쪽에 사용되는 PAL 같은 경우에는 1/50 초로 화면을 갱신한다. 그래서 과거에는 프로그램도 여기에 맞춰서 만들어야 할 필요가 있었다. 주로 1/60 초로 제작하고 6번에 한 번 그림을 그리지 않는 식으로 만들었는데, HD방송 시대가 오면서 대부분 1/60 초의 신호를 갖고 있기 때문에 고려하지 않아도 되었다고. PAL 게임을 NTSC에서 돌리면 게임이 1.2배 빨라진다거나 하는 현상을 볼 수 있다.

5 적응형 싱크(Adaptive Sync)

적응형 싱크란 모니터와 비디오 소스가 가변적인(Adaptive) 싱크로 동작하는 것이다. CRT의 한계상 고정된 모니터의 주사율을 가질 밖에 없었는데,이 때문에 고정된 동기화(싱크)를 사용했어야 했고 CRT가 사실상 더 이상 사용되지 않는 오늘날에도 이를 계속 유지해 왔었다. 적응형 싱크란 이러한 구세대적인 제약에서 벗어나 모니터가 가변적인 싱크로 동작하는 것인데 비디오 소스가 화면이 바뀔 때만 화면을 보내 주고 모니터는 화면에 대한 정보를 수신할 때만 갱신하는 형태가 된다. 즉 주객이 바뀌게 되는 셈.

이러한 것은 상당한 장점이 많은데 모니터 싱크를 기다리다가 폐기되는 프레임이 없어지고, 전 프레임과 정확히 같은 프레임일 경우 고정된 싱크일 경우 싱크에 맞춰 무조건 새롭게 연산해서 이를 보내야 했으나 적응형 싱크일 경우는 프레임이 달라질 경우에만 송신해도 되기 때문에 추가 연산을 할 필요가 없어져 전력효율이 높아진다. 그리고 비디오 소스가 화면을 (규격범위내에서) 자유롭게 송신할 수 있으면서도 실질적으로는 수직 동기화가 동작하는 것이기 때문에 테어링현상도 없다. 또한 게임플레이시 낮은 프레임때 발생되는 인풋랙도 줄게 된다.

동기화에 대해서 가장 민감한 것이 게임업계이기는 하나 이 기술은 단순히 게임을 벗어나 모바일, TV등 다양한 영상분야에 폭넓게 활용될 수 있는 기술이다.

AMD는 FreeSync라는 이름으로, NVIDIA는 G-Sync라는 이름을 사용한다. 근본적인 방식은 비슷하지만 엄밀히는 다른데, 지싱크의 경우엔 모니터 자체에 별도의 하드웨어를 부착하여 조절하는 방식이지만 프리싱크 등의 경우엔 소프트웨어상으로 제어한다는 것이 특징.프리싱크의 경우는 기존에 있는 VESA 표준 기능을 활용하는 것이긴 하나 잘 사용되지 않는 기능이었기 때문에 이를 완벽히 지원하는 모니터가 사실상 없었다. 따라서 소프트웨어 방식이라고 하나 하드웨어 개선없이 사용할 수 없는 한계가 있다. 이러한 면에서는 로열티를 제외하고는 지싱크와 비슷한 상황이라고 할 수 있다. 다만 VESA 표준이면서 로얄티가 없거니와 전력효율이 좋아지고 엔비디아의 간섭에서 자유로운 등 다양한 장점이 많아서 hdmi 1.4a에 적용되었으며 다양한 기업에서 모니터 뿐만 아니라 일반 TV등에도 이 기능을 포함한 제품을 출시 예정이다.

수직동기화는 수직동기된 프레임 수에서 떨어지면 강제로 30, 15프레임으로 낮아진다. 그래서 끊김[6]이 발생할 수 있는데 이 문제를 모니터의 주사율을 유동적으로 조절해 해결한 기술이다.

프리싱크는 VRR보다 낮은 프레임이 출력될 경우 모니터의 주사율을 VRR 최고값으로 고정시켜 출력하고, 지싱크는 VRR보다 낮은 프레임이 출력될 경우 강제로' 프레임을 상승시킨다는 차이가 있다. 정확히 말하면 이전의 프레임을 그대로 복사해서 붙여넣어 늘리는 방식.

프리싱크는 모니터 주사율을 낮추기 때문에 테어링스터터링 현상이 다시 나타날 가능성이 있고 주사율이 떨어지니 인풋렉이 증가한다는 단점이 있다. 결과적으론 모니터의 스펙빨을 좀 타는 편. CF도 지원을 안 했다가 15.7 드라이버부터 지원하기 시작했다.


지싱크는 프리싱크보다 대체적으론 나은 성능을 보여준다. 일단 엔비디아가 정한 기준을 맞춰야 되고 일정한 가이드라인이 잡혀있는 데다 모듈의 덕을 보기 때문.다만 지싱크의 모듈을 따로(...) 사야되기 때문에 모니터의 가격이 상승한다. 이 때문에 국내에서는 프리싱크 모니터 대비 지싱크 모니터의 비율이 극악에 가까울 정도로 차이가 난다. 이유는 매우 간단한데 위에서 쓴 로얄티가 없다는 장점 덕분에 삼성과 엘지가 지싱크 갖다 버리고 프리싱크 보급형 모니터만 줄창 뽑고 있기 때문. 현재 지싱크 모니터는 프리싱크 모니터와 가성비 싸움이 아예 안되는 수준까지 몰려있다.[7][8] 이건 그냥 프리싱크 사란거지
  1. CRT 모니터의 감광체 특성 때문에 최초 85Hz 이상으로 맞추는 경우가 많았으며 고급 모니터와 그래픽 카드는 120Hz 이상도 지원했다. 60Hz로 맞추면 화면의 깜빡임 때문에 오히려 눈이 엄청나게 피로해졌다.
  2. 게임이 주사율/60 배 속도로 실행된다거나 게임 내 특정 기능이 오작동한다거나 하는 등의 문제가 발생할 수 있다. 주로 콘솔 환경을 전제하고 만들어진 게임에서 이런 일이 잦다. 전자의 예가 오네찬바라 Z2: 카오스, 동물철권1로 120Hz에서 게임이 두 배 속도로 실행되기 때문에 정상적인 플레이가 불가능하다. 후자의 예로는 스카이림이 있는데, 60fps 이상에서 물리 엔진이 오작동을 일으켜 오브젝트가 제자리에서 부들부들 떨거나 사방으로 날아다니는 현상이 발생한다.
  3. 속도가 느려지게 느끼는 것 말고도 심한 경우는 그래픽 카드 자체가 뻗어 버려서 리셋 말고는 답이 없는 경우가 생기기도 한다. 폴아웃 4의 경우 NVIDIA 사용자들 사이에서 [이런 경우]가 종종 발생하는데 이 경우는 오히려 NVIDIA 제어판에서 수직동기화 설정을 꺼야 해결되기도 한다.
  4. 불안정한 70~90 프레임보다 수직 동기화 60 프레임이 훨씬 더 안정적이다
  5. 여기서 'tearing'은 '찢다'라는 뜻의 동사 'tear'/tɛə/의 동명사이므로 '테어링'/tɛəɹɪŋ/이라고 발음[#][#][#]해야 맞다. 대표적인 동철이음이의어([heteronym]) 중 하나로서, 철자는 'tear'로 같으나 발음(티어/테어)을 달리하면 다른 뜻(눈물/찢다)이 된다. 흔히 '티어링'으로 잘못 발음하는데 그러면 화면이 엉엉 눈물을 흘린다는 뜻이 되어버린다. 화면에 층이 난 모양에서 'tier'와 혼동된 것일 수도. 수차 '티어링'과 '테어링'으로 번갈아가며 편집되어왔고 주의를 요구하는 각주가 있어도 재차 '티어링'으로 편집되니 불필요한 편집을 막기 위해 본문에 주의를 요구하는 문구를 남길 필요가 있다. 틀린 발음으로 굳어져 우리나라에서만 잘못된 발음으로 통용되는 용어가 되지 않기를 바라며, 나아가 표준화되지 않은 전문용어 중 하나인데 적절한 우리말 용어가 제안[#]되었으면 하는 바람이다.
  6. 스터터링(stuttering)이라고 한다.
  7. 프리싱크의 경우 20만원대 보급형 모니터들만 되어도 다 달려나오는데 지싱크는 기본 80만원이 넘는 가격에서 시작한다. 이런 상태에서 게임이 될리가 없다.
  8. 이건 상기한 이유로 해외도 마찬가지, 그래도 북미쪽은 지싱크 모니터도 대충 살만한 수준이긴 하지만...