최근 수정 시각 : 2024-04-07 17:59:40

업스케일링


1. 개요2. 비AI 업스케일링
2.1. 최단입점(Nearest neighbor)2.2. 쌍선형(Bilinear)2.3. 쌍입방(Bicubic)2.4. 란초스(Lanczos)2.5. 스플라인 곡선(Spline)2.6. NGU2.7. Anime4
3. AI 업스케일링4. 기타
4.1. 35mm 필름 확대 인화
5. 관련 문서

1. 개요

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

2. 비AI 업스케일링


전통적인 방식으로 대표적으로 다음과 같은 알고리즘을 사용하여 업스케일링을 진행한다. 이러한 방법들은 안 쓰는 것보단 나을 뿐 최상급 알고리즘의 설정을 개별 상황에 맞춰 세세하게 조절하지 않는 한 품질 등을 개선하는 정도는 미약했다. 새로운 픽셀을 끼워 넣는 정도로는 영상의 화질이 눈에 띄게 개선되지 않아 기본적으로 노이즈 제거(denoise), 샤픈 필터 등의 타 작업을 병행하는 경우도 많다.

2.1. 최단입점(Nearest neighbor)

픽셀 사이에 옆의 픽셀을 그대로 복사해 넣는 방식. 딱 이미지 스케일링(Image scaling)만 하는 방식이다. 픽셀이 두드러져 보이기 때문에 일반적으로는 사용되지 않고 도트로 된 이미지의 크기를 키울 때(원본 해상도가 너무 낮아 보정이 힘들거나 레트로 게임처럼 애초에 의도적으로 도트 이미지를 사용한 경우) 주로 이용된다. 고전게임 도트 그래픽을 고해상도 모니터와 호환시키기 위해(정확히는 그로 인한 성능 문제를 최소화하기 위해) 정수 배 확대로 한정한 대신 GPU에서 하드웨어 가속해 주는 방식이 integer scaling이다.

2.2. 쌍선형(Bilinear)

주변 4개의 픽셀(2×2)을 이용해 크기를 키우는 방식으로 간단하고 빠르기 때문에 옛날엔 가장 일반적으로 사용했다(Bicubic도 가벼운 알고리즘 취급 당하게 된 이후로는 옛말). 품질은 다른 더 많은 샘플을 이용하는 알고리즘보다는 떨어진다. 3D 게임에서는 Trilinear(삼선형)을 기본으로 하되 Bilinear와 체감 품질 차이가 적은 부분만 그래픽카드 드라이버가 알아서 Bilinear로 처리하는 최적화 방식(옵션 이름은 '삼선형 최적화')으로 사용한다.

2.3. 쌍입방(Bicubic)

16 픽셀(4×4)을 이용하는 방식으로 Bilinear보다 깔끔한 결과물을 얻을 수 있다. 이름에서 알 수 있듯 국소적인 3차 함수로 표현되며 보간된 각 컬럼에서 다시 3차 함수를 계산하여 원하는 점의 픽셀을 얻어낸다. bicubic만 해도 요구되는 연산량이 적지 않으며 차수가 올라갈 때마다 필요한 연산량이 지수적으로 증가하므로 차수를 더 이상 늘리지는 않는다. 어차피 인접한 픽셀 간에 색좃값이 엄청난 차이가 나는 경우는 픽셀 간 불연속이 있는 경우기 때문에 차수를 올려 스무딩한다고 해서 품질이 나아지지 않는다.

2.4. 란초스(Lanczos)

일반적으로 지원되는 알고리즘 중 가장 고품질의 이미지를 얻을 수 있다. 특히, 영상의 크기를 키워서 볼 때 인기 있는 알고리즘이다. FidelityFX Super Resolution도 이거 기반으로 만들었을 정도. 기본적으로 bicubic 이나 bilinear와 원리는 비슷하나 각 픽셀을 사인 함수의 합으로 나타낸다. 어찌 보면 푸리에 변환과 유사하다고 볼 수 있다.

2.5. 스플라인 곡선(Spline)

Lanczos급 이상을 추구할 때 등장하는 알고리즘 중에선 비교적 오래되고 유명한 물건(단, 기본적인 구현 기준으론 딱히 낫다고 단정하긴 어렵다.).

이를 세세하게 튜닝한 S-Spline Max(현 PhotoZoom Pro)라는 프로그램은 알만한 사람들 사이에선 (AI 등장 이전 기준으로) 사진 확대 종결자로 통했다. waifu2x 등이 처음 등장하던 시절만 해도 애니 2배 확대만 빼면 어떤 AI든 PhotoZoom Pro 선에서 정리 가능하단 평가가 있었을 정도. 물론 지금은 AI들이 많이 발전[1]해서 불공정 비교가 아닌 이상 PhotoZoom Pro의 설정을 아무리 잘 조절해도 이기기 힘들어졌다.

2.6. NGU

동영상 렌더링 출력으로 유명한 madVR에서 사용하는 방식으로 Lanczos보다 더 선명하고 깔끔한 보정 방식으로 알려졌다. 다만 자체 기술이고 madVR에서만 사용할 수 있는지라 해당 보정 방식을 활용할 수 있는 곳이 동영상 외에는 없다.

2.7. Anime4

동영상 필터 기술로 공개된 업스케일링으로 이것을 동영상 플레이어에서 사용 가능하게 포크된 Anime4KCPP로 유명해졌다. 주요 기능은 애니메이션에 화질을 보정하는 것이 목적으로 이것을 사용해서 4K급 영상으로 업스케일링하여 에일리어스 보정 및 노이즈 제거와 선명하고 깔끔한 보정을 해주는데 덕분에 저화질 애니라도 AI 보정 기술 못지않게 꽤나 높은 품질로 변환해 주고 무엇보다 이런 변환 속도가 3ms라는 빠른 처리 속도를 자랑한다. 그리고 엔비디아에 CUDA와 OpenCL 기술을 사용해서 범용성이 높다. 단점은 오직 애니메이션을 보정하는 것이 목적이어서 일반적인 동영상에 사용하면 뭉개지고 수채화된 그래픽 화면이 단점이다.

3. AI 업스케일링



업스케일링 기술이 본격적으로 상용화될 수 있었던 이유는 컴퓨터 비전 기계학습의 발전 덕분이다. 딥 러닝을 거친 AI나 몇만 번의 CNN 학습을 시킨 초해상화(Super-Resolution) 모델을 사용하는 경우, 학습 수준에 따라 결과가 천차만별인데, 잘되면 초고해상도 원본을 축소시키거나 새로 그린 수준을 보이기도 하지만, 멀쩡한 부분을 망쳐놓아 이미지 스케일링만 한 것보다 못한 결과를 보일수도 있다. 이는 모든 AI가 가지는 공통적인 장점이자 단점이다. 단순히 interpolation을 수행하고 알고리즘에 따라 그 복잡도만 달라지는 기존 스케일링과 달리 적극적으로 중간 픽셀을 유추해서 채워 넣기 때문에 어떤 학습 프리셋을 사용했는지에 따라 천차만별이다.[2]

AI 기술이 조악하던 과거에는 사진 정도만 간신히 업스케일링할 수 있었으나, 이제는 예전 영상들을 고해상도로 복원할 수 있게 되었다. 이것을 비디오 스케일러(Video scaler)라고 한다. 특정 해상도의 비디오 신호를 다른 신호로 변환해 주는 시스템인데, 보통 스케일러를 이용한 비디오 신호 변환 작업을 업스케일링 혹은 업컨버전(upconversion)이라고 한다.

4K나 8K TV 같은 고화질 디스플레이에서는 자체적으로 AI를 이용하여 저화질 영상을 실시간으로 업스케일링해 주기도 한다. 관련 광고

업스케일링에서 더 나아가 동영상의 프레임과 프레임 사이에 새로운 프레임을 끼워 넣어 프레임 재생률을 높이는 프레임 보간도 존재한다.

대표적인 업스케일링 기술은 "세부 묘사 유지"( 포토샵 어도비 프로그램), Gigapixel AI[3], Video Enhance AI, waifu2x, Anime4K, SRMD, real-cugan, Real-ESRGAN, NVIDIA VSR 등이 있으며 GPU 제작사들이 2D, 3D 렌더링을 위해 내놓은 기술로 DLSS, XeSS, FSR, MetalFX[4] 가 있다. 일반인 레벨에서 무료로 쉽게 사용할 수 있는 프로그램은 waifu2x 혹은 waifu2x_snowshell을 권장.

다만, AI 업스케일링이라고 해서 화풍을 이해하거나 그림과 사진 속의 사물을 인식하는 것이 아니다. 그래서 일부러 노이즈가 낀 듯한 화풍이나 거친 표면을 가진 사물이 있는 그림과 사진일 경우, 업스케일러를 사용할 때 모델 선택이나 노이즈 제거 옵션의 조절을 주의해야 할 필요가 있다. 그렇지 않으면 일부러 노이즈가 낀 듯이 묘사된 화풍이나 거친 표면을 가진 사물을 맨들맨들하게 만들 우려가 있다.

디인터레이싱, 프레임 보간과 더불어 인터넷 등지에서 개인이 저해상도 영상[5]을 (주로 비영리적인 목적으로) 비공식 리마스터 할 때 자주 쓰는 방식이지만, 정식으로 발매하는 2차 매체 등 영리 목적으로 공식적으로 리마스터하는 전문 분야에서는 전통적인 비AI 업스케일링과 달리 사실상 금기시된다고 봐도 될 정도로 기피하는 편이다. 없는 디테일을 AI로 추가하는 방식이다 보니 100% 자연스러운 완성도가 사실상 불가능한 데다[6] 결과물의 퀄리티와는 별개로 그 자체로 원본 훼손이라고 여겨 "원본 자체가 저해상도면 어쩔 수 없는 거지[7], 왜 억지로 고화질을 만드냐?" 또는 "무슨 AI 업스케일링 돌린 걸 정식으로 돈 받고 팔 생각을 하냐?"같은 식의 불호가 굉장히 많기 때문이다.[8] 16mm 필름으로 촬영된 비틀즈: 겟 백 DV로 촬영된 인랜드 엠파이어(영화)가 AI 업스케일링으로 4K 리마스터를 했는데, 둘 다 불호가 적지 않은 편이다.

4. 기타

4.1. 35mm 필름 확대 인화

일반적인 의미의 업스케일링과는 거리가 굉장히 먼 방식으로, 디지털 영상을 35mm 영화 필름에 확대 인화해서 디지털 픽셀을 물리적인 필름 입자로 바꿔버리는 방식이다. DV HD 촬영이 보급되던 1990년대 후반 ~ 2000년대 당시는 아직 필름 상영이 보편적이었고 디지털 상영관이 매우 적었기 때문에, 촬영부터 최종 편집까지 전부 디지털로 한 영화일지라도 극장에 걸려면 무조건 이 과정을 거쳐야 했다.[9] 그러나 영화 필름 자체가 멸종 직전인 지금은 오히려 사실상 불가능한 방식이 되었다.

완전히 아날로그식 보정이기 때문에, 이 방식으로 처리된 영상의 질감을 디지털 보정으로 흉내내기는 상당히 힘들다. DV 영화들 중 아녜스 바르다의 < 이삭줍는 사람들과 나>, 압바스 키아로스타미, 토마스 빈터베르 셀레브레이션, 하모니 코린의 <줄리언 동키보이>[10] 등이 35mm 필름 프린트 쪽을 원본으로 2차 매체가 발매되었는데, 디지털 원본 쪽을 그대로 2차 매체로 낸 일반적인 다른 DV 영화들과 비교해 보면 척 봐도 질감 차이가 상당함을 알 수 있다.

5. 관련 문서


[1] 기계학습 딥러닝 특성상 같은 학습 모델이라도 학습 데이터가 많은 쪽이 더 좋은 결과를 보인다 [2] 색조가 단순하고 선화가 극단적인 애니메이션에선 매우 좋은 결과를 가져올 수도 있다. [3] 원본이 720p 정도 선명해야 크게 실감이 난다고 한다. [4] 란초스(Lanczos) 기반이며 AI 아님 [5] 원본 자체가 SD로 촬영되었거나, 또는 필름/HD 촬영이지만 DVD로만 발매된 영상물 등등. [6] 사실 실사 영상의 경우 애니메이션에 비해 비AI, AI 할 것 없이 업스케일링을 제대로 먹이는 게 (특히 원본의 해상도가 낮을수록) 몇 배는 힘들다. 애니처럼 선이나 명암, 채도가 극단적으로 뚜렷하지 않아서 화면 정보량이 훨씬 많고 복잡하기 때문에 비AI는 유의미한 퀄리티가 안 나오고, AI는 작은 픽셀들의 디테일을 뭉개버리니 인공적인 질감이 추가되는 데다 사람 얼굴 등은 어지간히 클로즈업된 게 아니면 불쾌한 골짜기가 생기기 일쑤다. 실사보다 애니메이션과의 궁합이 유독 안 좋은 프레임 보간과는 정반대다. [7] 사실 이게 싫으면 리마스터를 넘어서 리메이크을 하거나 아예 신작을 만드는 게 맞다. [8] 더욱이 뉴스 방송분, 다큐멘터리, 법정 증거 같이 영상 자료를 최대한 원본 그대로 아카이빙해야 하는 분야에서는 당연하지만 아예 금기시된다. 이런 분야는 애초에 비AI 업스케일링이나 디인터레이싱조차 어지간하면 안 한다. [9] 한국 영상업계에선 이 과정을 '키네스코프'에서 따와서 '키네코'라고 부르기도 했다. 다만 키네스코프라는 기술 자체는 모니터에 필름 카메라를 대고 찍는 오래되고 무식한 방식이라 90년대 시점에선 이미 거의 쓰이지 않았다. [10] 이 작품은 16mm 필름으로 확대 인화 한 후 그걸 다시 35mm 필름에 확대 인화 했기 때문에 화면 질감이 매우 거칠다.