기본 콘텐츠로 건너뛰기

새로운 안티 에일리어싱(Anti-Aliasing) 기술인 DLSS(Deep Learning Super Sampling)

    목차



우리가 흔히들 말하는 '좋은 그래픽'의 기준은 여러가지가 될 수 있습니다. 화려한 셰이더, 높은 해상도 등이 있죠.
그 중에 하나는 '계단 현상'이 없는 이미지가 될 수도 있습니다.
계단 현상은 모든 디스플레이들이 네모의 픽셀을 가지고 있기 때문에 어쩔 수 없이 일어나는 현상입니다.
계단 현상은 사용자가 보기에 매우 안좋습니다. 그래서 생겨난 그래픽 기법이 안티 에일리어싱(Anti-Aliasing)입니다.


제가 전문가가 아니라서 어떤 원리인지는 자세히 설명드릴 순 없지만 기존의 안티 에일리어싱 기법들은 TAA(Temporal Anti-Aliasing), FXAA(Fast Approximate Anti-Aliasing) 등 매우 많은 종류의 기법들이 있습니다.

하지만 최근 엔비디아의 GeForce RTX시리즈가 발표되면서 DLSS(Deep Learning Super Sampling)이라는 기술이 발표되었습니다.

기존의 TAA와 DLSS의 차이

DLSS는 말 그대로 딥 러닝을 이용하여 인공지능이 스스로 판단하여 적절한 색상과 값을 판단하고 학습하면서 안티 에일리어싱을 하는 방식입니다.
DLSS는 그 특성상 기존의 TAA등과 같은 기법에 비해 훨씬 적은 연산량을 필요로 합니다.

TAA는 품질이 매우 훌륭하지만 시간에 따라 변화하는 이미지를 사용하기 때문에 이미지가 흐려지는 현상이 생길 수도 있고, 정지된 이미지에선 효과를 보기 어렵습니다.
하지만 DLSS는 비교적 안티 에일리어싱의 효과는 적은 경우도 있지만 그 방식이 다르기 때문에 그런 단점이 생기지 않습니다.


엔비디아의 새로운 그래픽카드인 RTX 시리즈는 RT 코어와 텐서 코어라는 새로운 프로세서가 장착되어있습니다. 그 중 RT 코어는 레이 트레이싱(Ray-Tracing)을 담당하고 바로 텐서 코어가 DLSS를 담당하게 됩니다.



기존의 안티 에일리어싱과는 달리 따로 프로세서를 사용하기 때문에 기존의 쿠다 프로세서의 할 일이 줄어들고 더 많은 일들을 빠르게 처리할 수 있게 되었고, 안티 에일리어싱의 품질도 훨씬 좋아질 수 있게 됩니다.
그래서 GTX1080보다 RTX2080의 성능이 더 기대가 되는 이유가 DLSS라고 할 수 있습니다. DLSS를 사용하는 만큼 노는 쿠다 프로세서가 더 높은 성능을 낼 수 있기 때문이죠.
(엔비디아 측에선 약 2배의 성능을 기대할 수 있다고 합니다.)



▲배틀필드V : TAA에 비해 DLSS의 40%성능 향상


하지만 DLSS의 단점은 지원하는 게임에서만 사용할 수 있다는 것입니다.
현재 DLSS를 지원하는 게임이 점점 늘어나고 있긴 하지만 대다수의 게임에서 적용할 수 없다는 것이 가장 큰 문제입니다.

하지만 최근 출시되고 있는 많은 게임에서 DLSS를 지원한다고 발표하고 있고, 실제로 DLSS를 적용하는 데 매우 적은 시간이 걸린다고 하니, 추후에는 많은 게임들이 DLSS를 지원할 것이라고 기대할 수 있습니다.

DLSS지원 게임들

DLSS는 그 성능 만으로도 과거의 안티 에일리어싱 기법들보다 우수하지만, 훨씬 적은 연산량과 따로 코어를 사용하는 등 여러가지 특성으로 엔비디아가 적극적으로 지원한다면 미래에 매우 기대되는 기술이 될 것이라고 생각합니다.



댓글

  1. 비교사진 보이지도 않는데 확대도 안됨.

    답글삭제
    답글
    1. 앗 확대가 안될 줄은 몰랐네요..

      삭제

댓글 쓰기

이 글도 관심 있으실 것 같아요!

놀이의 4대 요소 (Agon(아곤), Mimicry(미미크리), Ilinx(일링크스), Alea(알레아))

네덜란드의 고전 학자인 '요한 하위징아'의 저서인 「호모 루덴스 」에서 인간을 '유희의 인간'이라고 칭했습니다. 프랑스의 '로제 카유아'라는 학자는 「호모 루덴스 」의 이론을 발전시켜 그의 저서인 「놀이와 인간」 (원제 「 Man, plays and games 」) 에서 ‘놀이의 4대 요소’를 말했습니다. 저자는 그것을 아곤, 미미크리, 알레아, 일링크스로 소개했습니다. 이 네 가지 놀이의 요소는 인간의 모든 유희, 놀이에서 발전되어 현대의 비디오 게임에서도 매우 중요한 이론으로 알려져있습니다. 먼저, 아곤(Agon), 경쟁 아곤은 놀이의 주체와 객체간의 경쟁을 의미합니다. 사람들은 경쟁에서 승리함으로써 성취감을 얻고, 우월감을 느끼게 합니다. 이 아곤을 현대의 게임에 대입 시켜보면 경쟁은 최근 가장 많이 플레이 하는 게임 중 하나인 ‘배틀 그라운드’나 ‘리그 오브 레전드’같은 게임들도 경쟁에 기반이 되어있고, 혼자 플레이 하는 게임에서도 자기 자신과의 경쟁, AI와의 경쟁 등이 포함되어있습니다. 예를 들어, 슈퍼 마리오 같은 게임에서도 플레이어들은 어떻게 이 게임을 더 빨리 클리어하기 위해 경쟁하고, 더 많은 점수를 받기 위해 노력합니다. 또한 비교적 MMR시스템이 잘 짜여져있는 '리그 오브 레전드'같은 AOS게임에서도 플레이어의 등급을 결정하는 랭크 게임 시스템이 중점적으로 돌아가고 있고, '오버워치'의 경쟁전 등 많은 게임에서 이런 경쟁을 유도하는 시스템을 만들어 놓았습니다. 게임을 계속 플레이하게 만드는 가장 큰 요소가 아곤입니다. 많은 게임에서 플레이어의 경쟁을 어떻게 잘 이끌어 나갔느냐에 따라서 그 게임의 성공이 나뉠 수도 있습니다. 미미크리(Mimicry), 역할 미미크리는 역할을 의미합니다. 사람들은 실제 세계에서 하지 못하는 일들을 놀이에서 느끼면서 큰 기쁨을 느낄 수 있습니다. 이 역할은 롤플레...

FastAPI 실시간 영상 스트리밍 OpenCV

  FastAPI와 OpenCV를 활용한 실시간 영상 스트리밍 Permalink 실시간 영상을 스트리밍 하는 방법을 찾던 중 파이썬 FastAPI를 활용한 방법을 시도 해보았다. 필수 라이브러리 Permalink 필요한 것은 Python3.9버전 (애플 M1칩셋 맥북에어에서 3.8 버전으로 시도 해보니 OpenCV라이브러리 설치에서 문제가 발생했었다) FastAPI uvicorn OpenCV 정도면 될 것 같다. 라이브러리들은 모두 설치 되었다고 가정 하고, 예제 코드 Permalink # main.py # 라이브러리 import # StreamingResponse를 가져와야함 from fastapi import FastAPI from fastapi.responses import StreamingResponse # cv2 모듈 import from cv2 import get_stream_video # FastAPI객체 생성 app = FastAPI () # openCV에서 이미지 불러오는 함수 def video_streaming (): return get_stream_video () # 스트리밍 경로를 /video 경로로 설정. @ app . get ( "/video" ) def main (): # StringResponse함수를 return하고, # 인자로 OpenCV에서 가져온 "바이트"이미지와 type을 명시 return StreamingResponse ( video_streaming (), media_type = "multipart/x-mixed-replace; boundary=frame" ) # cv2.py import cv2 def get_stream_video (): # camera 정의 cam = cv2 . VideoCapture ( 0 ) while True : ...

Python FastAPI 알아보고 설치하고 초기 설정 해보기

  Python FastAPI, 설치하고 초기 설정 해보기 Permalink 파이썬 웹 서버를 만들어야 하는 일이 생겼늗데, 최대한 빠르고 안정적인 서버를 선택 해야했다. 그래서 기존에 사용하던 Flask보다 훨씬 빠르다고 하는 FastAP를 사용해보기로 했다. ❓ FastAPI란? Permalink 👉 FastAPI 공식 한국어 페이지  https://fastapi.tiangolo.com/ko/ FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다. FastAPI는 파이썬에서 사용 가능한 웹 프레임워크 중 하나인데, Flask나 Django보가 훨씬 빠른 속도를 보여준다고 하고, 확인 해봐야 하겠지만 Go언어와도 비슷한 속도를 보여준다고 한다. 또, 쉽고 간결한 코드, 200% ~ 300% 까지 증가하는 개발 속도를 기대할 수 있다고 하는데, 시작 해보자! 👏 Permalink FastAPI 설치 Permalink 먼저 공식 사이트에선 pip를 이용해 설치 하라고 나와있는데, 나는 anaconda를 이용해서 설치를 했다. bash $ pip install fastapi anaconda 사용 시 $ conda install fastapi 그리고 ASGI서버도 필요해서 같이 설치하라고 하는데, Univorn을 설치 해보자. bash $ pip install uvicorn[standard] anaconda 사용 시 $ conda install uvicorn FastAPI 예제 Permalink 설치가 완료되면 이렇게 vscode에서 FastAPI() 클래스가 자동 완성 되는걸 확인할 수 있다. 그리고 정말 간단히 API를 만들 수 있는데, main.py 파일을 만든 후에 from typing import Optional from fastapi import FastAPI app = FastAPI () @ app . get ( "/"...