FPS 란 Frames Per Second의 약자로 영어단어 그대로 초당 프레임 수를 의미한다.
동영상은 사실 정지된 사진들의 모음으로 볼 수 있다.
어릴적 책 한쪽 구석에 그림을 그려놓고 사르륵 펼치면서 움직이는 그림처럼 만든 적이 있을 것이다. (플립북이라고 함)
이처럼 여러개의 정지된 사진들을 얼마나 보여주냐에 따라서 어색하거나 또는 매끄러운 영상이 될 수 있다.
따라서 영상이 얼마나 매끄러운지 표시하기 위해 FPS라는 개념을 가져오게 된것이다.
가령 30FPS 면 1초당 이미지를 30개씩 보여준다는 의미이며, 60FPS면 1초당 60개의 이미지를 보여준다는 의미이다.
다음 그림은 FPS의 차이에 따른 영상 차이를 확인 할 수 있는 그림이다ㅣ.
사실상 영상이 끊겨보이거나 어색해 보이는 것은 이런 FPS차이에 의해서 발생하게 된다.
따라서 FPS가 높을 수록 좋다고 보면 된다. 다만 높은 FPS를 데이터 처리한다면 그만큼 고성능의 하드웨어가 필요할 것이다.
게임쪽에서의 FPS의 의미는 위의 설명과 비슷한데, 1초에 화면이 얼마나 다시 그려지느냐로 판단한다.
1초에 30번 화면을 새로 그린다면, 30FPS이고, 60번 화면을 새로 그린다면 60FPS가 된다.
여기서 모니터의 주사율도 관련이 있는데 모니터 주사율은 무엇인가?
모니터 주사율은 단위는 Hz로 표시하며 화면 재생빈도라고 생각하면 된다. 모니터가 그래픽 카드에서 제공하는 프레임을 얼마나 자주 교체하는지에 대한 수치이다.
우리가 일반적으로 사용하는 모니터 주사율은 60Hz이다. 1초동안 화면을 60단계로 쪼개서 보여줄수 있다는 의미이다.
고주사율의 모니터는 120 hz 에서 240 hz까지 기존 모니터에 비해 수 배 는 많은 장면을 나눠서 보여준다. 이 때문에 화면을 끊김 없이 더 부드럽게 표시 할 수 있다.
모니터에서 쓰는 '주사'라는 단어는 화면을 한번 그려낸다는 의미이다.
모니터와 컴퓨터는 빠르게 화면을 그려가면서 사실 이미지를 바꿔치기 하는것이다. L
FPS와 모니터 주사율을 해깔릴 수도 있는데, FPS는 컴퓨터 그래픽 기기가 초당 얼마나 많은 프렝미을 뽑아낼 수 있는지에 대한 의미라면, 모니터 주사율은 이런 프레임들을 모니터가 얼마나 자주 교체하는지에 대한 수치이다.
주사율에 비해 FPS가 낮으면 동일한 화면을 여러번 그리게 되며, 반대로 주사율에 비해 FPS가 높으면 모니터는 새로 만들어진 프레임을 보여줄 수 없어 프레임을 보여주지 못해 상실되는 문제가 발생하게 된다.
또한 주사율에 비해 FPS가 지나치게 높아지면 모니터가 프레임을 교체하던 주기 중 새 프레임이 입력되어 화면 가운데에 위와 아래가 서로 다른 프레임이 표기되어 버리는 '스크린 테어링(screen tearing)' 현상이 발생하게 된다.
이런 Screen Tearing 현상을 없애기 위해 모니터 프레임 출력과 그래픽 카드 프레임 생성의 타이밍을 맞추는 설정을 해준다. 이름하야 수직동기화!
'수직동기화'란 단어는 게임을 많이 하는 사람이라면 많이 들어봤을것이다. \
동기화라는 것은 일종에 sync를 맞추는 작업을 의미한다.
수직동기 신호는 디스플레이의 가장 마지막에서 발생해 가장 위쪽에서 종료되며, 디스플레이 화면의 왼쪽에서 오른쪽, 위에서 아래로 화면을 그리고 내려와서 다시 화면의 아래쪾에서 새로운 수직 동기 신호를 발생시키는데... 여기까지가 1/60초가 걸리게 된다. 그래서 동기화를 맞춘다면 게임도 여기에 맞춰 1/60 초에 한번씩 데이터를 계산하고 화면을 새로 그리게 된다.
다만 단점은 화면이 수직 동기 버퍼를 거쳐 나가는 (아무튼 계산과 동기화 과정) 과정에서 결과적으로 입력과 출력사이 딜레이가 생김. (인풋렉 발생)
따라서 고사양 게임은 성능 저하를 유발하는 것이 보통이라 수직동기화를 끄는 것이 성능 개선에 도움이 될 수 있다.
지금까지 FPS와 해상도 등에 대해서 알아보았다.
다음 포스팅에서는 액션캠과 캡처보드(캡처카드)에 대해서 알아보도록 하겠다.
'컴퓨터 프로그래밍' 카테고리의 다른 글
Tensorflow gpu 버전 설치하기, windows 10, Anaconda(python 3.6) (0) | 2019.08.06 |
---|---|
Tensorflow 를 이용한 Object Detection (human detection) (0) | 2019.08.05 |
Realsense 카메라를 이용한 Calibration 작업 - 문서내용 정리 (0) | 2019.07.18 |
Realsense 카메라를 이용한 Calibration 작업 (0) | 2019.07.17 |
pyinstaller 로 exe파일 실행파일 만들기 - tensorflow-gpu 버전 내용 추가 (0) | 2019.07.11 |