Upscaling

사진이나 동영상의 픽셀과 픽셀 사이에 새로운 픽셀을 끼워 넣어 해상도를 높여주는 기술.

Spatial Upscaling

  • 각 프레임의 개별 픽셀 데이터를 사용하여 업스케일링을 수행
  • 모든 프레임을 독립적으로 처리
post_thumbnail
Nearest Interpolation



post_thumbnail
Bilinear Interpolation



post_thumbnail
12 * 2/3 + 9 * 1/3 = 11

Temporal Upscaling

  • 사진 여러 장이 있을 때, 사진에 보이는 물체들이 얼마나 빨리, 어느 방향으로 이동하고 있는지 추정하여 선명도를 높인다

FSR 예시

post_thumbnail
  • 지난 프레임 히스토리 수집
    • Camera Jitter로 동일한 프레임 내의 픽셀들의 위치를 미세하게 움직인 결과 포함
      • 정적인 화면에서도 Temporal Data 생성
      • 업스케일링에 필요한 샘플 다양화
post_thumbnail
  • 여러 프레임에 걸쳐서 픽셀 기여도(Contribution/Weight) 수집
    • 중앙에 가까울수록 높은 기여도 + 최근 프레임일수록 높은 기여도
  • 픽셀 기여도에 따른 최종 픽셀을 선별에 저해상도 프레임 생성
  • 란초스 알고리즘(공간 업스케일링)으로 업스케일링
post_thumbnail
  • 업스케일링된 프레임에 모션 벡터 적용
    • 물체가 어느 방향으로 이동하고 있는지 벡터를 기록한 맵
    • 히스토리 누적 프레임의 각 픽셀을 대응하는 모션 벡터만큼 이동
  • 현재 프레임과 보간
  • 이후 고스팅 완화 및 보정 작업

렌더링 비용 줄이기

post_thumbnail
  • 게임 프레임을 작은 스케일로 렌더링 후 업스케일링
  • 렌더링 비용 감소 → 퍼포먼스 증가 → 게임이 빠릿빠릿해짐

Frame Generation

두 개의 연속적인 렌더링 프레임 사이의 가상의 프레임을 생성하는 기술 즉, 프레임을 2배 가까이 늘리는 기술

post_thumbnail
post_thumbnail

광학 흐름 방정식

인풋랙 이슈

  • n 프레임 + n-1 프레임 → n - 0.5 프레임 생성
    • 보간 프레임이 생성되는 시점에, 그 다음 프레임은 이미 생성되어 있다
  • 프레임이 기존의 실제 출력 시간보다 느리게 출력 된다
    • 인풋랙 발생

일반적으로, 최소 50 fps 이상 나오는 상태에서 효과적으로 작동

낮은 프레임 사이에서 보간된 프레임은 부자연스럽게 보이고, 지연 시간이 더 커진다

  • 프레임 사이의 시간이 길수록, 연산의 복잡도가 상승한다
  • 객체 움직임과 변화는 더 커지는데, 프레임이 낮아서 Temporal Data는 부족하다.

DLSS (Deep Learning Super Sampling)

post_thumbnail

FSR (Fidelity Super Resolution)

post_thumbnail

XeSS (Xe Super Sampling)

post_thumbnail
  • Intel 개발
  • FSR보다 더 뛰어나고 DLSS와 견줄만하다는 평가
    • DLSS처럼 선행 학습된 AI를 이용한 업스케일러
  • Shader Model 6.4 이상을 지원하고 DP4a 명령어를 사용하는 GPU를 권장

기타

FSR은 AI 미사용

Xe는 Frame Generation 미지원

DLSS / FSR / XeSS 지원 게임 목록

DLSS / FSR / XeSS 비교 (스타필드)

Apple의 MetalFX

FSR 적용 시 화면 좌우가 반짝거리는 이슈

각 플러그인 다운로드 링크