어푸푸

DLSS 게 섰거라! 'RIS 등장에 DLSS 망연자실' 본문

잡동사니/IT

DLSS 게 섰거라! 'RIS 등장에 DLSS 망연자실'

예수님부처 2019. 9. 18. 22:48

이 포스트의 제목을 쓰면서 생각했다. 기자들이 이 맛에 제목을 뽑는게 아닐까하고. 상당히 마술적이다. DLSS는 가만히 있었는데 제목 하나로 갑자기 망연자실해보인다.

마찬가지로 나는 인터뷰를 곧이곧대로 받아들이지 않는 편이다. 기사 제목을 뽑는 것과 마찬가지로 텍스트에 기자의 의도가 들어갈 수 밖에 없기 때문이다. 더 자극적이고 더 시선을 끌고 더 재밌게. 그게 기자들의 관심사이고, 텍스트의 왜곡은 두 번째 문제가 된다. 내가 대학원에 입학 면접을 보러왔을 때 면접이 끝나고나서 같이 면접을 같이 본 지인들이랑 서있는데 학교 신문사에서 인터뷰 요청이 들어왔다. 까짓거 어려울 것도 없겠다 싶어서 요청에 응했다. 카이스트에 와서 뭐가 인상깊었냐는 질문에 나는 내가 느낀 것을 솔직하게 얘기했다. "학식 밥이 항공대학교보다 더 맛있어요." 그 질문 이후로 그 기자는 내 옆에 있는 지인에게만 질문을 했다. 그 지인의 대답은 "카이스트 학생들도 면접에서 긴장을 하는 것을 보니 사람이란 것이 느껴졌고 그래서 인상깊었다."였던 것으로 기억한다. 마지막으로 사진을 촬영해도 되겠냐고 해서 그러라고 했다.

그리고 해당 인터뷰가 페이스북에 실렸는데 난 내 눈을 의심했다. 사진은 내 사진을 쓰고 인터뷰 내용은 내 옆에 있던 지인 인터뷰를 실은 것이다. 그리고 인터뷰의 내용도 다소 왜곡이 되었다. "카이스트 학생들이 면접을 앞두고 긴장하는 것을 보니 인간미가 느껴져서 재미있었어요." 순식간에 나는 남이 긴장하는 것을 보고 재미를 느끼는 또라이가 되어있었다. 그것도 내 사진을 당당하게 걸어놓고서. 기자 개새기... 그 이후로 나는 인터뷰를 곧이곧대로 받아들이지 않게 되었다. 나는 공릉동 살인사건의 궁금한 이야기 Y의 어처구니없는 인터뷰를 보면서도 생각했다. 기자에게는 프로건 아마추어건 본인이 추구하는 바만 중요한 것이 아닌가 하고.
(http://www.todayhumor.co.kr/board/view.php?table=bestofbest&no=269811)
(http://blog.naver.com/PostView.nhn?blogId=sarah354&logNo=220603830512&categoryNo=36&parentCategoryNo=36&viewDate=¤tPage=7&postListTopCurrentPage=&from=postList&userTopListOpen=true&userTopListCount=5&userTopListManageOpen=false&userTopListCurrentPage=7)

제목과 별로 상관이 없는 듯한 내용이 많이 있는 것처럼 느껴지는 것은 기분 탓이다.

이제 본론으로 돌아가자. DLSS 그리고 RIS. 도대체 이 두 개가 무엇이길래 사람들이 끊임없이 이야기하는것인가. 그리고 도대체 이것들을 어떻게 써먹을 수 있는 것이고, 무슨 효과가 있는 것인가. 이를 위해서는 조금 기본적인 내용부터 이야기해야 한다. 그래픽카드에서는 렌더링 연산을 한다. 그리고 이 렌더링 연산은 픽셀마다 이루어진다고 생각해도 무방하다. 아마도. 그렇다면 해상도가 높아져서 픽셀 수가 늘어나면 렌더링 시간이 오래걸릴 것은 자명하다. 100개를 계산하는 것과 300개를 계산하는 것 중 무엇이 시간이 더 걸리겠는가. 해상도가 늘어나면 계산할 것들이 늘어난다. 그런데 계산 시간은 빠를수록 좋다. 왜냐하면 빠른 계산 시간은 더 높은 FPS를 (Frames Per Second) 뜻하기 때문이다. FPS가 높을수록 (모니터의 능력이 뒷받침된다면) 화면이 더 부드럽게 느껴진다. 우리가 비싼 그래픽 카드를 사는 것은 FPS를 높이기 위해서다.

그런데 여기에서 딜레마가 발생한다. FPS가 높을수록 화면이 부드러워진다. 그리고 해상도가 높을수록 화면의 품질이 좋아진다. 그런데 해상도가 높아지면 FPS가 낮아진다. 화면의 품질이냐 부드러움이냐. 우리는 둘 중 하나를 선택하거나, 적당하게 타협을 봐야하는 상황에 맞닥뜨린 것이다. 보통 이런 경우에는 본인의 입맛에 따라 선택을 하게 된다. 그러나 물건을 팔아먹어야하는 회사나 연구자 입장에서는 제 3의 길을 살펴볼 때가 많다. 품질이냐 부드러움이냐에 대한 딜레마에서도 마찬가지였는데, 그래픽카드 칩 개발 회사인 nVIDIA에서는 높은 해상도에서 높은 FPS를 얻을 수 있는 방법이 있지 않을까에 대한 연구를 진행한다.

nVIDIA에서는 (이하 엔당) 이에 대한 해결책으로 딥러닝을 제시한다. 해당 기술을 정확히 들여다보거나 해당 논문을 보지 못해서 뭐가 정확히 어떻게 돌아가는지 자세히는 모르지만 문제와 해결 방법을 보면 대략적인 내용은 보인다. 보나마나 엔당에서는 이런식으로 문제를 처리했을 것이다.

1. 똑같은 장면에 대해서 고해상도 데이터와 저해상도 이미지를 준비한다.
2. 학습을 할 때 저해상도 이미지를 입력 값으로 주고, 고해상도 이미지를 출력 값으로 준다.
3. 학습이 끝나면 저해상도 이미지를 주면 예상되는 고해상도 이미지를 뱉어준다.
4. 이를 게임에 적용하면 저해상도 이미지를 주었을 때 고해상도 이미지가 출력된다.
5. 출력된 고해상도 이미지를 사용한다.
6. 계산 비용: 저해상도 렌더링 계산 비용 + (저해상도→고해상도)를 담당하는 인공 신경망의 계산 비용

여기까지만 보면 이건 꽤나 매력적인 해답으로 보일 것이다. 왜냐? 요즘 여기저기에서 딥러닝 도입을 안하는 곳이 없고, 보도되는 내용이나 성공적으로 적용된 내용만 보면 딥러닝은 마법 지팡이처럼 보이기 때문이다. 그런데 막상 DLSS가 공대되고 나서는 욕을 바가지로 먹었다. 왜 그럴까? 딥러닝은 마법의 지팡이가 아니었나? 휘두르면 뿅 하고 원하는 결과물이 나타나는 신비한 미지의 무언가가 아니었냐는 말이다. 글쎄.. 나의 개인적인 의견으로는 그럴수 있는 일이었다고 생각한다.

인공 신경망에는 계산 비용이 들어간다. 인공 신경망의 규모를 크게하면 결과물이 향상되었을 수도 있지만, 그렇게 해서는 실시간으로 써먹기 힘들었을 수도 있다. 몇 가지 article들을 보면 인공 신경망을 이용할 경우 이미지의 업스케일링이 인공 신경망을 통해서 잘 되는 것 같긴 하다. 물론 단언하기 어렵다. 연구자들은 좋은 결과물만을 공개하는 경향이 있고, 다들 나름대로의 비밀이 있기도 하기 때문이다. 막말로 저쪽에서 보여준 예제에서는 잘 되었지만, 몇 가지 사진들을 넣다보니 이상한 결과물이 나오는 사진이 있을지 누가 알겠는가. 그리고 그러한 경우는 그렇게 보기 드문 경우도 아니다.
(https://towardsdatascience.com/deep-learning-based-super-resolution-without-using-a-gan-11c9bb5b6cd5)

어쨌거나 현재까지 엔당의 DLSS는 실패 그 자체이다. 입력 값보다 안좋은 결과물이 나올 수도 있는 업스케일링 모델이라니? 꽤나 치명적인 결점이다. AMD에서는 (이하 암당) 다른 접근법을 취했다. 해상도를 올리려는 시도 자체가 이미지 품질 향상을 꾀하는 것에서 시작되었으니, 이미지 품질 자체를 향상시켜보자는 관점에서 접근한 것이다. 물론 이와 같은 시도가 이전에 아예 없었던 것은 아니다. ReShade에 기본적으로 포함된 샤프닝 필터인 Adaptive Sharpen과 같이 이미지 품질 향상을 꾀하는 필터가 존재하긴 했었다. 다만 결과물이 별로 안좋아서 문제였다.
(https://www.techspot.com/review/1884-amd-ris-vs-nvidia-freestyle-vs-reshade/)

암당에서는 명암비를 (contrast) 기반으로 이미지의 품질 향상이 필요한 곳만 향상하는 알고리즘을 개발했다고 주장했고, 계산 비용도 거의 없다고 홍보했다. 그리고 이를 라데온 이미지 쨍하게 하기 (RIS: Radeon Image Sharpening) 이라고 이름 붙였고, 이 이미지의 품질을 향상시키는 필터의 이름은 명암대비 적응형 쨍하게 하기 (CAS: Contrast Adaptive Sharpening)이다. 자세한 내용이 궁금한 사람은 아래 URL을 참고하자.
(https://gpuopen.com/gaming-product/fidelityfx/)

암당에서는 이걸 꽤나 고무적인 결과라고 생각한 것 같다. 그래서 새로 출시한 나비 그래픽 카드에서만 쓸 수 있도록 드라이버를 개발했고, 세일즈 포인트로 강조했다. 사실 꽤 괜찮은 전략이었다. 직접 써본 결과 정말 기가막힌 후처리 필터였기 때문이다. 그런데 아뿔싸. 이렇게 열심히 개발하고 홍보한 CAS는 GPUOpen에 공개가 되어버렸다. 암당에서는 그래픽 시장의 점유율을 올리기 위해서 많은 것들을 오픈소스로 공개하고 있는데, CAS도 오픈소스로 공개가 되었다. 이걸 보고 엔당의 황회장이 가만히 있을리 없다. 엔당에서도 사실 프리스타일 내에서 선명도 필터라는 이름으로 이미지 품질 향상 필터를 제공하고 있었는데, 품질도 떨어질뿐더러 계산 비용도 꽤 컸다. 그랬는데 CAS가 공개된 뒤 엔당 드라이버가 업데이트 되면서 암당의 CAS와 거의 유사한 결과물을 뽑아내면서 계산 비용도 기존보다 확 줄어들도록 선명도 필터를 업데이트한 것이다. 이에 테크스팟의 기고문에서는 엔당에서 오픈소스인 CAS를 베낀것이 아니냐는 킹리적 갓심을 내비추기도 했다. 확실히 조금 묘하긴 하다. 만약 이게 사실이라면 황회장은 돈 앞에서 상도덕이고 뭐고 없는 장사치가 된다. 근데 하는 행동을 보면 원래 노양심 장사치라서 그럴 수도 있을 것 같다.
(https://www.techspot.com/review/1884-amd-ris-vs-nvidia-freestyle-vs-reshade/)
(https://www.techspot.com/review/1903-dlss-vs-freestyle-vs-ris/)

어쨌거나 CAS를 열심히 개발한 암당은 죽쒀서 황회장줬다. 왜? CAS를 엔당 그래픽카드에서 쓸 수 있는데 누가 CAS 쓰겠다고 암당 그래픽카드를 사겠는가. 어떻게 보면 일반 소비자 입장에서는 좋은 일이기도 하다. 해외의 어떤 사람이 공개된 CAS 코드를 ReShade에서 사용할 수 있게 래퍼를 (wrapper) 만들었기 때문이다. 암당에서 제공하는 RIS와 엔당이 제공하는 프리스타일의 선명도 필터는 지원하는 게임도 많지만, 지원하지 않는 게임도 많다. 조금 더 자세히 이야기하자면 암당의 경우 Dx11 기반 게임에 대해서는 RIS를 지원하지 않는다. 그런데 ReShade는 거의 모든 게임에 적용이 가능하고, ReShade가 적용이 가능하기만 하다면 CAS를 바로 적용할 수 있다. 즉, 암당과 엔당에서 공식적으로 지원하지 않는 게임들에 대하여 CAS를 사용할 수 있는 것이다. 게다가 ReShade로 포팅된 CAS는 나름 최적화가 이루어져있어서 계산 비용도 거의 들지 않고, 선명도도 조절할 수 있다. 어찌보면 이제 엔당 입장에서 현재 DLSS는 애물단지가 되어버렸다. 더 적은 계산비용으로 더 좋은 품질을 얻을 수 있는 기술이 있기 때문이다.

결론적으로 이야기하자면 FHD나 QHD 해상도에서 게임을 하는 사람들은 ReShade를 기반으로 CAS를 적용하는 것을 추천한다. 설치하기도 간단하고 (30초컷 가능) 삭제도 쉽고, CAS 적용도 실시간으로 했다가 안했다가 마음대로 적용할 수도 있다. 물론 ReShade의 단점이 없는 것은 아니다. 공개된 CAS의 소스 코드를 보면 업스케일링을 하는 코드가 있는데, ReShade에서는 해상도를 건드릴 수가 없기 때문에 ReShade를 사용할 경우 샤프닝+업스케일링을 할 수가 없다. 이 빈 공간을 잘 파고든것이 그래픽카드 제조사 사파이어이다. 사파이어에서는 TRIXXBOOST라는 기능을 지원하는데, 이 기능에서는 낮은 해상도로 렌더링 된 것을 업스케일링하고 샤프닝 필터를 적용한다. ReShade를 사용할 경우 불가능한 일이다. 엔당에서 제공하는 프리스타일은 잘 안써서 TriXX BOOST처럼 활용 가능한지는 잘 모르겠다.

물론 여기에서 의문점이 든다. '그렇다면 샤프닝 필터를 적용하고 업스케일링을 진행한 것과 업스케일링을 진행하고 샤프닝 필터를 적용한 결과물에는 어떤 차이가 날까?' 하는 의문점이... 이 의문점은 추후에 한 번 해결해보고자 한다.

CAS를 적용하면 그래픽 품질이 얼마나 좋아지는지는 아래 youtube 비디오을 참고하면 알 수 있다. 그리고 근시일내에 ReShade 설치법과 CAS 필터 적용법을 설명하는 포스트도 하고자 한다.
(https://youtu.be/8PON7Vtdbk0)

다들 안녕~