AI 업스케일은 화질을 "복원"하지 않는다

AI 확대와 프레임 보간이 실제로 하는 일은 "그럴듯하게 그리기"다. 무엇을 기대해도 되고 무엇은 기대하면 안 되는지, 직접 잰 숫자로.

"AI로 화질을 높여 준다"는 말을 들으면 흐릿한 사진 속에 원래 있던 세부가 되살아나는 장면을 떠올리기 쉽다. 실제로 AI 확대 결과를 보면 선이 또렷해지고 뭉개진 질감이 살아난 것처럼 보인다. 그런데 그 세부는 어디서 왔을까. 답을 알면 이 도구를 어디에 써도 되고 어디에 쓰면 안 되는지가 분명해진다.

AI 확대는 "되살리기"가 아니라 "그려 넣기"다

작은 사진을 크게 키우면 픽셀 사이를 채울 값이 필요하다. 전통적인 확대(바이큐빅 등)는 주변 픽셀을 섞어 그 값을 만든다. 그래서 결과가 부드럽지만 흐릿하다. 원래 사진에 없던 정보를 새로 만들어 내지 않기 때문이다.

AI 확대는 다르게 접근한다. 수많은 "고화질 ↔ 저화질" 사진 쌍을 보고 흐릿한 부분이 원래 어떤 모양이었을 법한지를 배워 두었다가, 새 사진에서 비슷한 패턴을 보면 배운 대로 세부를 그려 넣는다. 머리카락처럼 보이는 곳에는 머리카락 결을, 벽돌처럼 보이는 곳에는 벽돌 줄눈을 그린다. 그래서 결과가 선명하다. 대신 그 세부는 원본에 있던 것이 아니라 모델이 추측한 것이다.

직접 확인할 수 있다. 깨끗한 사진을 일부러 절반으로 줄였다가 JPEG 품질 50으로 저장해 망가뜨린 뒤, 이미지 업스케일링의 "1배(크기 그대로 선명하게)"로 되돌려 보았다. 눈으로는 확실히 나아졌다 — 블록 잡음과 번짐이 사라지고 선이 또렷해졌다. 그런데 원본과 얼마나 같은지를 재 보니 오히려 2~4dB 멀어졌다(PSNR 29.1dB → 24~27dB). 가는 선 몇 개가 합쳐지고, 질감이 원래와 다른 모양으로 바뀌었기 때문이다. 더 선명한데 원본과는 덜 닮은 것 — 이것이 AI 확대의 본질이다.

그래서 이런 데 쓰면 안 된다

이 차이는 실용적으로 중요하다. AI가 그린 세부는 그럴듯할 뿐 사실이 아니다. 흐릿한 번호판이나 간판 글자, CCTV 속 얼굴을 AI로 키우면 읽을 수 있을 것처럼 선명해지지만, 그 글자와 이목구비는 모델이 학습한 "흔한 모양"을 그린 것이다. 원래 무엇이 쓰여 있었는지, 누구였는지를 판단하는 근거로 삼으면 안 된다. 증거·기록·신원 확인에는 원본을 쓰고, AI 확대는 보기 좋게 만드는 용도로만 쓰는 것이 맞다.

모델마다 잘 그리는 그림이 다르다

AI는 배운 것만 그린다. 애니메이션으로 학습한 모델은 또렷한 선과 평평한 색면을 잘 만들지만, 사람 피부나 나뭇잎에 쓰면 그것까지 "그림처럼" 매끈하게 바꿔 버릴 수 있다. 실사로 학습한 모델은 사진 속 질감을 살리는 쪽으로 그린다. 어느 쪽이 나은지는 영상마다 달라서, 숫자보다 눈으로 보는 것이 빠르다.

그래서 동영상 업스케일링은 영상 종류를 먼저 고르게 한다(애니·만화는 Real-ESRGAN의 animevideov3, 실사는 general-x4v3). 두 모델은 속도도 다르다. 1080p를 4K로 키울 때 M4 Pro 맥북에서 프레임당 애니 모델은 약 0.85초, 실사 모델은 1.5초가 걸렸다. 실사 모델이 층이 두 배(16층 대 32층)라서다. 어느 쪽이든 시작 전에 한 장면을 원본과 나란히 비교해 보는 것이 가장 확실하다.

영상은 왜 이렇게 오래 걸리나

영상은 사진의 연속이다. 10초짜리 30fps 영상은 사진 300장이고, 1080p 한 장을 4K로 키우는 데 수조 번의 계산이 든다. 실제로 재 보면 처리 시간의 99% 이상이 AI 계산이고, 영상을 풀고 다시 압축하는 일은 GPU 옆의 전용 하드웨어가 동시에 처리해 거의 시간을 먹지 않는다. 결국 속도는 GPU 성능이 정한다.

애니메이션에는 줄일 여지가 하나 있다. 애니는 원래 같은 그림을 2~3프레임씩 이어 쓴다. 같은 그림을 매번 새로 키울 이유가 없으니, 직전에 키운 그림과 거의 같은 프레임은 그 결과를 다시 쓰면 된다. 10초 1080p 애니 클립에서 이 방법으로 4분 16초가 1분 37초로 줄었고, 전부 새로 키운 결과와의 차이는 눈으로 구분되지 않았다. 함정도 있었다. 화면이 서서히 밝아지는 페이드는 프레임마다 차이가 아주 작아서 "같은 그림"으로 오판하기 쉽고, 그러면 밝기가 계단처럼 끊겨 보인다. 그래서 화면 전체 밝기가 달라지면 무조건 새로 키우도록 판정을 나눴다.

프레임 보간도 결국 "그려 넣기"다

30fps 영상을 60fps로 만드는 AI 프레임 보간은 두 프레임 사이에 원래 없던 장면을 한 장씩 끼워 넣는다. AI(RIFE)가 두 프레임을 비교해 각 부분이 어디로 움직였는지(광학 흐름)를 추정하고, 그 중간 지점의 모습을 그린다. 움직임이 단순할수록 결과가 자연스럽다.

한계도 같은 원리에서 나온다. 한쪽 프레임에만 보이는 부분 — 손이 얼굴 앞을 지나가거나 사람이 물체 뒤로 들어가는 순간 — 은 어디로 움직였는지 알 수 없어 흐리거나 늘어나 보인다. 장면이 바뀌는 순간은 더 나쁘다. 전혀 다른 두 장면 사이의 "중간"을 그리면 두 장면이 겹친 잔상이 된다. 그래서 장면 전환은 찾아서 섞지 않고 앞 프레임을 한 번 더 쓴다(10초 애니 클립에서 2곳).

그리고 애니메이션은 기대를 조금 낮춰야 한다. 애초에 같은 그림을 2~3프레임씩 쓰기 때문에, 그 사이는 "움직임이 없는 구간"이라 보간할 것이 없다. 실사처럼 매끄러워지기보다는, 그림이 바뀌는 순간만 부드러워진다.

정리하면

  • 기대해도 되는 것: 저해상도 영상·사진을 큰 화면에서 보기 좋게 만들기, 압축으로 생긴 블록 잡음·번짐 줄이기, 끊기는 영상을 부드럽게 보이게 하기.
  • 기대하면 안 되는 것: 원래 없던 정보의 복원. 글자·번호·얼굴의 판독. AI가 그린 세부는 사실이 아니다.
  • 고르는 법: 그림(애니·만화·게임)이면 애니 모델, 사람·풍경이면 실사 모델. 확신이 없으면 전/후 비교로 한 장면을 먼저 본다.
  • 시간: GPU가 전부 정한다. 도구가 시작 전에 내 기기에서 재 준 예상 시간을 보고 결정하면 된다.