스크린 테어링

스크린 테어링()은 디스플레이 장치가 단일 스크린을 그릴 때 여러 프레임으로부터 정보를 표시하는 비디오 디스플레이의 시각 인공물이다.

이 인공물은 장치에 대한 비디오 피드가 디스플레이의 재생 빈도와 동기되지 않을 때 발생한다. 일치하지 않은 화면 주파수에 의해 발생할 수 있으며 이때 테어 라인(tear line)은 위상차 변화에 따라 움직이게 된다. 단순히 동기의 부재를 이유로 발생할 수도 있다. 비디오가 움직이는 가운데 스크린 테어링은 벽이나 나무 따위의 물체의 모서리가 일렬로 정렬되지 않은 것처럼 보이게 만든다.

테어링은 일반적인 디스플레이 기술과 비디오 카드에서 발생할 수 있으며 영화 속 느린 카메라 패닝, 고전 사이드스크롤링 비디오 게임 등 수평으로 이동하는 시각 영상에서 눈에 잘 띈다.

 예방 
스크린 테어링을 방지하는 방법은 디스플레이 장치와 그래픽 카드 기술, 사용 중인 소프트웨어 및 비디오 자료의 특성에 따라 달라진다. 가장 일반적인 해결책은 다중 버퍼링을 사용하는 것이다.

대부분의 시스템은 다중 버퍼링과 디스플레이 및 비디오 메모리 갱신 주기를 동기화하는 수단을 사용한다.

 수직 동기화 
수직 동기화(VSync)는 모니터가 현재의 화면 재생 주기를 마칠 때까지 그래픽 카드가 디스플레이 메모리에 가시적인 작업을 수행하지 못하도록 하는 대부분의 시스템 옵션이다.

수직 귀선 기간 동안 드라이버는 그래픽 카드에 화면 외부의 그래픽 영역을 활성 디스플레이 영역으로 빠르게 복사하도록 명령하거나(이중 버퍼링), 두 메모리 영역을 모두 표시 가능한 것으로 간주하고 단순히 두 영역 사이를 전환하도록 명령한다(페이지 플리핑).

엔비디아와 AMD에서 제작한 GPU는 '적응형 수직 동기화(Adaptive Vsync)' 옵션을 제공하는데, 이는 소프트웨어의 프레임 레이트가 디스플레이의 화면 재생 빈도를 초과할 때만 수직 동기화를 켜고, 그렇지 않으면 비활성화한다. 이는 렌더링 엔진의 프레임 레이트가 디스플레이의 화면 재생 빈도 아래로 떨어질 때 발생하는 스터터링(끊김 현상)을 제거한다.

 문제점 
수직 동기화를 사용하면 렌더링 엔진의 프레임 레이트가 비디오 신호의 프레임 레이트로 제한된다. 이 기능은 일반적으로 비디오 품질을 향상시키지만 일부 경우에는 상충 관계가 발생한다.

 저더 (Judder) 
비디오나 영화 프레젠테이션은 일반적으로 일반적인 모니터 재생 빈도(24–30 프레임/s)보다 현저히 낮은 프레임 레이트로 녹화되기 때문에 수직 동기화는 아티팩트를 유발할 수 있다. 일반적인 60 Hz 재생 빈도로 설정된 모니터에서 이러한 영화를 재생할 때, 비디오 플레이어는 모니터의 마감 시간을 상당히 자주 놓치게 되며, 그 사이의 프레임이 의도보다 약간 더 빠르게 표시되어 저더와 유사한 효과가 발생한다. (텔레시네: 프레임 레이트 차이 참조.)

 입력 지연 (Input lag) 
다양한 렌더링 엔진을 사용하는 비디오 게임은 일반적으로 프레임이 요청되는 순간 엔진의 변수가 지정하는 내용에 따라 실시간으로 각 프레임을 구축해야 하므로 수직 동기화를 통해 시각적인 이점을 얻는 경향이 있다. 그러나 수직 동기화는 입력 지연을 유발하기 때문에 게임의 상호작용 특성을 방해하며, 특히 정밀한 타이밍이나 빠른 반응 속도가 필요한 게임에 방해가 된다.

 벤치마킹 
마지막으로, 그래픽 카드나 렌더링 엔진을 벤치마킹한다는 것은 일반적으로 하드웨어와 소프트웨어가 모니터 기능이나 그로 인한 스크린 테어링에 관계없이 가능한 한 빨리 화면을 렌더링한다는 것을 의미한다. 그렇지 않으면 모니터와 그래픽 카드가 벤치마킹 프로그램을 억제하여 잘못된 결과를 초래한다.

 가변주사율 (VRR) 

AMD의 FreeSync 및 엔비디아의 G-Sync와 같은 가변주사율 기술은 디스플레이의 재생 빈도를 GPU가 렌더링하는 프레임 레이트에 맞춘다. 이러한 기술을 사용하려면 비디오 어댑터와 디스플레이 모두에서 특정 지원이 필요하다.

 기타 기법 
일부 그래픽 시스템에서는 소프트웨어가 디스플레이 하드웨어의 재생 주기와 관련하여 동일한 시점에 메모리 액세스를 수행하도록 허용하는데, 이를 래스터 인터럽트 또는 레이싱 더 빔이라고 한다. 이 경우 소프트웨어는 모니터의 활성 재생 지점 바로 뒤에 머물면서 방금 업데이트된 디스플레이 영역에 기록한다. 이를 통해 렌더링 엔진이 뒤처졌을 때 모니터의 활성 재생 지점을 "따라잡을" 수 있는 한, 처리량 예측이 덜 정밀한 복사 루틴이나 렌더링 엔진을 사용할 수 있다.

또는 소프트웨어가 활성 재생 지점보다 약간 앞서 머무를 수도 있다. 얼마나 앞서 있을지를 선택함에 따라 이 방법은 고정된 일정한 속도로 디스플레이를 복사하거나 렌더링하는 코드를 요구할 수 있다. 지연 시간이 너무 길면 모니터가 가끔 소프트웨어를 추월하게 되어 렌더링 아티팩트, 테어링 등이 발생한다.

코모도어 64 및 ZX 스펙트럼과 같은 고전 시스템의 데모 소프트웨어는 다른 방식으로는 불가능했을 효과를 얻기 위해 각 비디오 시스템의 예측 가능한 특성을 활용하여 이러한 기법을 자주 사용했다.

 각주 

분류:영상 기술