게임 사이트 정보 게시판에, 잘못된 프레임 측정 결과가 올라오기도 해서 콘솔 게임의 프레임에 대해 이야기를 해볼까 합니다.
사실 자세하게 알기 귀찮으면 프레임 측정 결과는 디지털 파운드리, VG Tech 정도만 보시면 됩니다. 구독자 수가 많건, 조회 수가 높게 나오건, 그리고 오랫동안 관련 활동을 해왔건 관계없이, 결과가 잘못된 걸 올리기도 하기 때문에 가장 신뢰할만한 저 2곳 정도만 기억하시면 됩니다.
프레임과 관련한 기본 개념부터 먼저 알아 보겠습니다.
가장 중요한 것은 프레임과 프레임 타임입니다.
프레임 (frame rate)
영상이라는 것이 여러 개의 이미지를 빠르게 교체시키면서 움직이는 것처럼 만든다는 것은 많은 분들이 아실 겁니다. frame은 이런 영상의 한 장면, 1개의 이미지를 말합니다. 많이들 쓰시는 gif 의 한 장이 프레임이라고 보시면 됩니다.
프레임 레이트는 이러한 frame이 화면에 표시되는 속도를 말합니다. 좀 다르게 얘기하면 프레임이 교체되는 속도라고 할 수 있겠네요.
*rate는 비율이라는 뜻도 있어서인지 frame rate를 검색해보면 프레임률이라고 번역하기도 하던데, 률에 속도나 빈도 관련 의미가 없을테니, 그냥 률은 생각 안 하고 속도라고 생각하는 게 맞을 것 같습니다.
프레임을 이야기할 때 쓰는 속도의 단위인 fps는 frames per second를 줄인 말입니다. 화면에 1초 동안 얼마나 많은 이미지를 표시했느냐를 알려주는 정보죠. 10 m/s면 1초에 10미터를 이동할 수 있는 정도의 속도인 것을 알 수 있듯이, 100 fps 그러면 1초에 100장을 표시할 수 있을 정도의 속도라는 의미입니다.
*fps는 1인칭 슈팅 게임 first person shooter의 약자로도 쓰입니다.
우리 입장에서는, 그러니까 한국 게이머 입장에서는 프레임이라고 해도 딱히 다른 개념과 헷갈릴 것이 없어서 프레임 레이트라고 다 말하진 않고 그냥 프레임이라고 많이들 줄여서 얘기합니다. 사실 한글로 프레임 레이트라고 다 적는 경우는, 개념 설명할 때 외에는 거의 본 기억이 없네요.
위 이미지는 똑같은 영상을 다른 프레임의 gif로 저장한 것인데 위는 5 fps, 아래는 15fps 입니다. 위의 영상이 더 뚝뚝 끊겨 보입니다. 여기서 30fps로 올라가면 더 부드럽고, 60fps로 올라가면 또 더 부드럽습니다.
이렇게 프레임이 높을수록 화면의 움직임이 더 부드럽게 보이기 때문에 게임에서는 프레임이 중요합니다.
프레임 타임(frame time)
프레임 외에 중요한 정보가 프레임 타임입니다.
프레임 타임은 프레임 하나가 표시되는 시간을 말합니다.
좀 더 엄밀하게 얘기하면 프레임 하나를 그리는데 걸린 시간을 의미하는데, 그래픽 카드가 프레임을 하나를 다 그리고 이걸 화면에 전달해줘서 그 시간만큼 표시한다고 합니다. 그래서 프레임 타임은 화면에 프레임 하나가 머물러 있는 시간 정도로 이해해도 무리는 없을 것 같습니다. 이렇게 단순하게 생하는 게 밑에 내용들과 연관지어서 이해하는 데는 더 쉬울 것 같네요.
대부분의 벤치마크에서 프레임 외에 프레임 타임도 같이 표시해주는데, 밀리세컨드 ms 로 표시된 정보가 프레임 타임입니다.
60 프레임은 60 fps, 그러니까 1초에 60 번 이미지를 화면에 표시해준다는 의미입니다. 그러면 60프레임인 영상에서 이미지 1개를 온전히 화면에 표시하는데 걸린 시간은 1/60 초, 16.666...ms가 됩니다.
https://digitalmasta.com/frametime-vs-fps/
위와 아래 1s에서 숫자 하나하나가 프레임, 한 칸의 가로 길이가 프레임 타임입니다. 모니터에는 1초 동안 1부터 10까지 순서대로 표시해 주겠죠.
위의 1초와 아래의 1초 모두 프레임은 10개 들어갔기 때문에 둘 다 10 fps입니다. 하지만 아래쪽 1번 프레임과 5번 프레임은 표시된 시간이 다른 프레임이 비해 엄청 길었습니다. 그런데도 둘 다 10fps입니다. 하지만 아래는 1번과 5번 프레임 순간에 프레임 타임이 엄청 길었기 때문에 저 순간은 짧게나마 멈춘 듯이 느껴졌을 것이고 나머지는 프레임 타임이 짧기 때문에 너무 빠르게 지나간 것처럼 느껴질 것입니다.
프레임은 10fps 이더라도 실질적인 시각 경험은 위쪽이 훨씬 더 좋습니다.
프레임이 20~60 왔다갔다 하면서 평균 40프레임을 달성하는 것보다, 일정하게 30프레임을 계속 유지하는 것이 훨씬 더 만족스러운 게임 플레이를 할 수 있습니다.
이렇게 프레임이 줄 수 없는 정보를 주기 때문에 프레임 타임이 중요합니다.
설명이 갈수록 길어지네요. 위에서 대략적으로 말한 스터터링이나, 1% , 0.1% 하위 프레임 값 뭐 이런 것도 알면 좋긴 한데, 프레임과 프레임 타임보다는 덜 중요하니 일단은 이 정도로만 이야기하고 넘어갑시다.
아래는 콘솔 게임의 프레임 결과가 잘못된 영상의 스샷입니다.
레퀴엠은 30프레임 제한 모드, 40프레임 제한 모드 이렇게 2가지 프레임 모드가 있습니다.
40프레임 모드는 따로 선택할 수 없고 콘솔 자체의 새로고침 빈도를 120hz로 설정했을 때 자동으로 적용됩니다. 그래서 저기서도 40프레임 모드에서 테스트해서 측정한 거면 저렇게 30 넘게 나오는 게 맞을 수도 있습니다.
하지만 저 영상을 다운 받아서 확인해 봤더니 40프레임 모드가 아니었습니다.
40프레임 모드가 아닌지를 어떻게 알 수 있는지를 설명하려면 좀 긴 이야기를 해야 합니다.
일단은 저 영상은 60프레임 영상입니다.
게임이나 영상 등 프레임 단위를 쓰는 대상이 60 프레임이라고 하면, 이것은 1초 동안 60개의 이미지를 화면에 표시한다는 의미입니다. 30프레임이면 1초에 30장의 그림을 화면에 표시한다는 이야기겠죠.
그럼 30프레임 게임을 60프레임 영상으로 캡쳐하면 어떻게 될까요?
영상과 실제 게임의 프레임이 다를 경우, 영상은 똑같은 게임 화면을 복제하면서 영상의 프레임에 맞춰 캡쳐하게 됩니다.
예를 들어 게임이 30 프레임인데 영상 녹화는 60프레임으로 한다, 그러면
이런 식으로 똑같은 장면이 2번씩 반복되어서 캡쳐가 됩니다. 그러면 게임은 30, 영상은 60 딱 맞게 처리되는 거죠.
게임이 40 프레임인데 녹화는 60으로 한다, 그러면
이런 식으로 캡쳐를 하겠죠. 물론 1초 동안 40개의 다른 이미지가 들어가도록만 맞춘다면 123344 처럼 다른 식으로 할 수도 있습니다.
그래서 위 채널의 영상이 40프레임 모드로 캡쳐한 영상이라면 2번째 스타일, 혹은 어찌되었건 40fps에 맞게 화면이 바뀌어야 합니다.
하지만 저 영상은 112233, 즉 30 프레임 게임을 60프레임으로 녹화 영상이었습니다. 그렇기 때문에 프레임 결과가 30을 넘게 나와선 안됩니다.
궁금하신 분들은 직접 영상을 다운받아서 확인해 보셔도 됩니다. avidemux 나 프리미어 등 프레임 단위로 확인할 수 있는 툴이면 뭐든지 활용해서 1 프레임 단위로 확인해 보시면 됩니다.
참고로 30프레임 제한이라고 하더라도 31은 나올 수도 있습니다.
디파 빼고는 거의 대부분 trdrop이라는 프레임 측정 툴을 사용하는데, 프레임 계산을 하면서 올림이 되는지 실제 프레임이 30이더라도 저 툴에서는 31 아니면 30.x로 나오는 경우가 있습니다. 마찬가지로 60프레임도 61이 나올 수 있구요. 이런 건 그냥 그럴 수 있다 정도로 생각해 주세요.
그럼 왜 저렇게 잘못된 결과가 나왔는지 얘기를 해보겠습니다.
trdorp은 캡쳐된 영상을 가지고 프레임을 측정하는 툴입니다.
캡쳐된 게임 영상의 모든 프레임을 순서대로 같은지 다른지 비교를 하는데, 같은 화면이 나오면 프레임이 떨어진다고 처리해서 프레임을 계산해 냅니다.
이런 식의 6 fps 영상이 있으면 1 1 은 같은 거니까 1 프레임으로 보고, 2 2도 같은 거니까 1프레임으로 봐서 4 fps라는 결과가 나오게 되는 거죠.
앞서 게임 영상과 녹화 영상의 프레임이 다를 경우 어떻게 캡쳐를 하는지 얘기했는데, 그 과정을 반대로 해서 프레임을 계산해 낸다고 보시면 됩니다.
중요한 건 영상의 1 프레임끼리 비교를 할 때 민감하게 볼 지, 둔하게 볼 지를 설정하는 겁니다. 민감하게 본다면 캡쳐한 영상에서 1픽셀만 달라져도 다른 화면으로 보고, 둔하게 보면 거의 뭐 90%가 달라도 동일한 화면으로 볼 수도 있습니다. 이걸 잘 설정해야 프레임 값을 올바르게 측정할 수 있습니다.
이게 왜 필요하냐 하면, 영상으로 캡쳐하면서 화질 손실이 있기 때문입니다.
위와 같이 캡쳐된 경우 실제 게임기는 첫 번째와 두 번째에 동일한 화면 정보를 보내줬겠지만, 캡쳐하는 과정에서 화질 손실이 좀 있어서 두번째 이미지가 좀 다르게 저장된 상황입니다. 여기서 1픽셀이라도 다르면 다른 프레임으로 본다고 설정하고 프레임을 측정해 버리면, 4fps가 아니라 5fps라는 결과로 나오게 됩니다.
아래는 동일한 영상을 세팅만 다르게 하고 프레임을 측정한 화면입니다.
*아래 스샷은 trdrop 원본 프로그램으로 측정한 화면입니다. 제가 올리는 프레임 측정 결과도 같은 trdrop인데 그래프 모양만 다르게 수정한 버전을 쓰고 있습니다.
동일 영상에 동일 장면인데 프레임이 다 다릅니다.
위 스샷에서 첫번째 측정 화면은 프레임 타임이 33.3보다 밑으로 떨어지는 순간이 있습니다.
30프레임 제한이 걸린 게임이라 30프레임 나오려면 프레임 타임은 33.3ms 만 나와야 하는데 그것보다 낮게 나오는 건 측정이 잘못 되었다는 거죠. 마찬가지로 노란색 그래프도 잘못 측정되었습니다.
저렇게 어두운 화면에서는 잘못 측정되는 경우가 상당히 많습니다.
이렇게 세팅을 어떻게 하느냐에 따라 프레임이 제대로 나오기도 하고 이상하게 나오기도 합니다. 하지만 어떤 값이 해당 영상에 가장 잘 맞는지는 측정해 보기 전에는 알 수가 없습니다. 대략적으로는 얼마면 된다는 감이 있지만 그게 이번에도 맞을지는 확실하지 않은 상황입니다. 거기다 한 영상 내에서도 화면이 다양하게 나오는 영상이면 프레임이 제대로 측정이 안 되기도 합니다. 각 화면마다 적절한 세팅값이 다를 수 있거든요.
때문에 프레임을 측정할 때 2번 이상은 해봐야 합니다. 2번도 운이 좋아야 2번이지 몇 번씩 하는 경우도 많습니다.
그리고 프로그램으로 측정을 끝낸 결과도 이상한 곳이 있는 1프레임 단위로 하나하나 눈으로 검토도 해봐야 합니다.
그래서 프레임 측정을 제대로 하자면 시간이 많이 걸립니다.
테어링 tearing 은 위와 같이 화면이 가로로 찢어지는 현상을 말합니다. 방패 보시 심하게 갈라졌죠.
프레임 측정 결과에서 왼쪽 화면과 같이 빨간 선이 있는 장면도 있는데, 이 빨간 선은 테어링이 있다는 표시입니다.
저게, 현재의 테어링을 빨간 선으로 표시하고 페이드 아웃되면서 사라지는 게 기본 설정이기 때문에 한 화면에 빨간 선이 여러 개 있다고 해서 테어링이 저렇게 많다 그런 의미는 아닙니다.
테어링 정도에 따라 프레임 계산이 또 달라지는데, trdrop에서는 테어링 관련해서 세팅하는 부분도 있긴 하지만, 이 툴 자체가 테어링을 잘못 잡는 경우가 좀 있습니다. 이렇게 되면 프레임이 또 이상하게 나오게 됩니다.
프레임 값이 소수점으로 나오는 경우는 테어링 때문에 그렇게 계산했다고 보시면 맞을 겁니다. 내부 계산이 어떻게 되는지 까지는 확인을 못 했지만, 영상 기반 프레임 계산이기 때문에 영상은 소수점 프레임이 나올 수가 없으니 테어링 몇 %냐에 따라 계산을 해줘야 소수점이 나올 수 있으니 말이죠.
모던 워페어 측정 영상도 보면 테어링 때문에 프레임이 떨어지는게 나옵니다.
보시면 프레임 타임은 변화가 없는데 프레임은 소수점 단위로 낮아집니다. 이건 테어링 때문에 이렇게 되었다고 처리해서 저렇게 나온다라고 볼 수 있습니다.
하지만 저기 테어링이 있다고 빨간 선으로 표시한 게 테어링이 맞는 건지 의심스럽습니다. 3분할이다 보니 전체를 볼 수 없어서 판단이 어렵긴 한데, 일단 저것만 보기에는 테어링이 없어 보입니다. 하지만 뭐 120 영상으로 캡쳐한 후에 유튜브에 60으로 올리면서 날아간 부분에 테어링이 있었을 수도 있으니 일단 그 부분은 확인이 어려우니, 굉장히 의심스럽지만 일단 패스하겠습니다.
다른 부분을 보면 테어링이 확실하게 있는 곳도 테어링 표시가 안 되고 있음을 알 수 있습니다. 이렇게 확실한 것도 제대로 못 잡는 걸 보니 테어링 때문에 프레임이 떨어지는 것도 제대로 측정 안 된거다라고 봐도 되겠네요.
저는 프레임을 측정할 때 그냥 테어링 있는 게임은 측정을 어지간하면 포기합니다. 결과가 제대로 안 나올 때가 많아서요.
이렇게 테어링을 잘 잡아낼 때도 있지만,
이렇게 엉뚱한 곳을 테어링이라고 표시하기도 하고, 테어링이 없는데도 테어링이라고 나오기도 합니다.
*테어링 표시 선은 기본값이 흰색인데 색을 바꿀 수 있기 때문에 색이 다른 건 별다른 의미 없습니다.
테어링 잘 나오게 세팅을 바꾸면 프레임 체크가 제대로 안 되기도 해서 제대로 하기가 많이 까다롭습니다. trdrop의 경우 현재는 잘못 측정된 곳만 찾아서 새로 측정하는 기능같은 건 없기 때문에 잘못된 부분이 나오면 처음부터 혹은 측정할 구간만 영상을 따로 편집해내서 측정을 하거나 해야 합니다.
제가 수정할 능력만 있으면 원하는 구간만 새로 측정할 수 있도록 수정하고 싶을 정도입니다. 상용 프로그램으로 그런 기능 지원하는 거 있으면 차라리 사서라도 쓰고 싶을 정도입니다.
그 외에 또 이상한 점은 보시면 플스 쪽은 멈춰 있는데 엑박 쪽은 움직임이 있는 구간이 있습니다. 눈으로 봤을 때는 플스 쪽이 멈춰있기 때문에 프레임 타임이 튀면서 프레임이 드랍되어야 합니다. 하지만 플스 프레임 수치에는 변화가 없습니다.
이게 3분할에 나오는 부분 외에 안 보이는 부분이 어떻게 된 상황인지 알 수 없는데다, 영상 제작자가 의도적으로 화면을 비슷하게 유지하려고 플스쪽만 의도적으로 멈췄을 수도 있긴 한데, 뭐가 되었건 저렇게 보이는 건 좀 문제입니다.
레퀴엠 프레임이 플스와 엑박이 차이가 얼마나 나는지 정확하게 알기는 어렵지만, 플스에서 테어링이 있는 건 확실히 확인했습니다. 테어링 부분은 수직 동기화 걸면 프레임이 떨어질 것이기 때문에 엑박이 플스보다 성능이 더 좋다고 볼 수 있습니다.
그리고 일단 테어링이 있다는 것 자체가 실제로 플레이할 때는 퀄이 훨씬 떨어지게 느껴지기 때문에, 현재 1.2.0.0 버전의 레퀴엠은 그냥 프레임 수치를 안 봐도 엑박이 훨씬 좋다고 봐야 합니다.
그렇다고 하더라도, 측정값이 이상하게 나온 결과를 가지고 둘을 비교하는 것은 좋은 비교가 아닙니다.
모던 워페어는 하나하나 찾아볼 수가 없어서 눈에 띄는 부분만 확인했는데, 거기서도 잘못된 게 있기 때문에 전체적으로 믿을만 해 보이지는 않습니다.
빨리 올라오는 정보가 꼭 가치있는 정보는 아닙니다. 많은 분들이 저런 이상한 결과는 걸러낼 수 있는 선구안을 가지고 게임 정보를 접하셨으면 좋겠습니다. 그게 어려우시면, 그냥 디지털 파운드리만 보세요.
'기타' 카테고리의 다른 글
샤나 인코더 게임 영상 인코딩 세팅별 화질 비교 (2) (1) | 2023.01.15 |
---|---|
샤나 인코더 게임 영상 인코딩 세팅별 화질 비교 (1) (1) | 2023.01.14 |
[스팀 동접] 싱글 게임 동접, 한 달이면 70% 감소 - 플스 독점 출신 6게임 기준 (1) | 2022.10.11 |
[스팀동접] 사이버펑크 2077 - 애니메이션의 힘으로 동접 증가 (22.09.27 기준) (1) | 2022.09.27 |
[스팀 동접] 스파이더맨 - 플스 독점 PC 게임 중 2번째 최고 동접 (0) | 2022.08.16 |