AWS 기술 블로그
AWS상에서 비용 효율적으로 영상 컨텐츠 화질 개선하기 – Video Super Resolution(VSR) on AWS
OTT 및 FAST TV 서비스의 증가로 개인화된 콘텐츠, 특히 고전 영화와 TV 프로그램의 수요가 증가하였으며, 이러한 콘텐츠의 대부분은 저해상도(Standard Definition, SD) 형식으로 제공되어 향상된 시청 경험이 필요한 상황입니다. 특히 구작에 대한 수요가 급격히 증가하거나 소위 인기가 역주행하는 경우에 컨텐츠 제공자 입장에서 개선된 화질을 제공하는 것이 콘텐츠를 처음 접하는 잠재 시청자를 확보할 수 있는 중요 요인이 되었습니다. 따라서 제작자 입장에서 UHD 영상을 확보해야 하는 경우, 처음부터 제작하지 않고 기존의 영상의 화질을 올리는 것을 고민합니다. 이때 고성능 장비를 구매하는 것은 초기 높은 투자 비용이 발생하므로 비용 효율적으로 고화질 영상을 제작하는 것이 중요해졌습니다. 이렇게 다양한 요건과 수요로 인해 영상에 픽셀을 추가하여 해상도를 높여주는 업스케일링 기법은 오랜 과제의 대상이었습니다. 이러한 기법을 Super Resolution(이하 SR)이라고 하며, 비디오 업스케일의 경우 Video Super Resolution(이하 VSR)이라고 합니다. 전통적인 SR 방법에서 발전하여 최근에는 AI 기술을 활용한 SR 방법이 널리 적용되고 있습니다. AI 기반의 SR은 기존의 전통적인 방법들보다 더 뛰어난 성능을 보여주어, 업계에서 주목받고 있으며 점차 그 사용이 확대되고 있습니다.
해당 블로그에서는 SR에 대해 소개하고 성능과 비용 측면에서 가장 최적의 퍼포먼스를 보이는 RAISR기법에 대해 설명합니다. 또한, 인텔 프로세서의 가속 기능을 활용하여 CPU 기반의 개선된 Intel VSR library에 대해 설명하고 AWS상에서 편리하게 사용할 수 있도록 Intel과 AWS의 협업을 통해 최적화된 Intel-AWS 솔루션에 대해 설명합니다. Intel-AWS 솔루션의 사용 가이드, 비용, 그리고 성능 정보를 공유하여 사용자들이 편리하게 접근할 수 있도록 합니다.
Super Resolution(SR) 정의
SR은 저해상도의 이미지나 영상을 고해상도의 이미지나 영상으로 변환하는 기술을 말합니다. SR은 역사가 긴 기술로, 간단한 수학적인 알고리즘을 통해 단순히 이미지를 보간(interpolation)하는 전통적인 기법부터, 최근 생성형 AI의 대표적 기술인 트랜스포머나 디퓨전 모델을 적용한 기법까지, 지속적으로 다양한 기술이 연구되고, 적용되고 있습니다. 적용 대상이 영상인지 이미지인지에 따라, Video Super Resolution(VSR)과 Single Image Super Resolution(SISR)로 구분할 수 있는데, 여기서는 VSR 위주로 기술하고자 합니다.
[그림 1. 좌 SR 적용전(좌), SR 적용 후(우)][출처: Set5 데이터셋]
VSR의 방식은 크게, 1)비디오의 모든 프레임을 추출한 후, 개별 프레임별로 SISR을 적용하는 방식과, 2)모든 프레임을 추출한 후, 고해상도 프레임을 생성하기 위해, 여러 프레임 혹은 전체 프레임을 입력으로 사용하는 방식이 있습니다. 2)의 방법이 정보(프레임)를 많이 사용하기 때문에 일반적으로 더 좋은 품질을 보여주지만, 모델이 더 복잡해지고, 입력 데이터양도 늘어나기 때문에 비용이 증가하게 됩니다.
기존 SR 적용의 어려운 점
전통적인 Image processing 기반의 SR은 몇 가지 중요한 문제점과 한계를 가지고 있습니다. 전통적인 Lanczos와 Bicubic 같은 저복잡도 Upscaling 방법은 에지를 보존하면서 해상도를 높이는 것이 어렵고 블러링이나 링잉 아티팩트가 발생하는 문제가 있으며, 복잡한 텍스처나 패턴을 정확히 재현하는 데 한계가 있었습니다. 또한 특정 유형의 이미지에 대해 최적화된 알고리즘은 다른 유형의 이미지에서 좋지 않은 성능을 보이는 경우가 많아 다양한 이미지 콘텐츠에 대해 일관된 성능을 제공하기 어려웠습니다.
반면, SRCNN, EDSR와 같은 딥러닝 기반의 SR 기법이나, 더 최근의 생성형 AI 기술인 트랜스포머 계열(SwinIR2 등), 디퓨전 계열(CCSR, SUPIR 등)의 모델 적용은 성능적으로 뛰어나지만 비용적인 한계가 존재하였는데, 대표적으로 대규모 AI 모델을 훈련하고 실행하기 위한 고성능 GPU가 필요하고 처리 속도 향상을 위해서 더 강력한 하드웨어를 사용해야 하는 요인들이 비용을 증가시킵니다.
RAISR 소개
RAISR는 Rapid and Accurate Image Super Resolution의 약어로 공개적으로 공개된 AI 기반 VSR 알고리즘입니다. 표준 bicubic 알고리즘이나 EDSR과 같은 딥러닝 기반 알고리즘 대비 10 ~ 100배 빠르면서도 비슷하거나 더 나은 성능을 비용 효율적으로 제공합니다. 알고리즘에 적용된 기법을 간략히 설명하면 다음과 같습니다.
[동작 원리 및 특징]
RAISR은 저해상도와 고해상도 이미지 쌍을 사용하여 필터를 학습하며 아래와 같이 두가지 방법으로 학습데이터셋을 구성합니다.
- 저해상도와 고해상도 이미지 쌍을 사용하여 필터를 학습
- 직접 방식 : 저해상도와 고해상도 이미지 쌍에서 직접 필터를 학습
- 간접 방식 : 저해상도 이미지를 먼저 Upsampling 한 후 학습
학습은 이미지의 작은 패치에서 발견되는 Edge의 특성(밝기/컬러 그레디언트, 평면/텍스처 영역, Edge의 일관성 등)에 따라 필터를 학습합니다. 학습된 모델을 사용하여 추론하게 되면 저해상도 이미지의 각 픽셀 주변에 가장 적합한 필터를 선택하여 적용할 수 있게 되며, 이를 통해 고해상도 이미지의 세부 사항을 재현할 수 있습니다. 이런 기법은 기존의 간단한 업스케일링 방식과 비교했을 때, 단순한 구조의 필터 학습을 하는 점에서 전체적으로 비용 효율적이고, 처리 속도가 뛰어납니다.
Intel-AWS 솔루션 소개
[솔루션 개요]
인텔은 공개된 RAISR 알고리즘을 개선하였고 인텔® 제온® 플랫폼과 GPU에서 2배 및 1.5배 업스케일링 시 더 나은 시각적 품질과 실시간 이상의 성능을 달성했습니다. Intel-AWS솔루션은 개선된 Intel VSR 라이브러리를 AWS 상에서 쉽게 구축하여 인프라에 대한 초기 구축 부담을 줄이고 배포 자동화 파이프라인을 구축할 수 있도록 하는 협업 솔루션입니다.
Intel VSR 라이브러리는 향상된 RAISR 구현을 특징으로 하며, 선명도 조절이나 노이즈 제거와 같은 추가적인 사전 또는 사후 업스케일링 필터 사용을 위한 2단계 필터링을 지원합니다. VSR 라이브러리는 다양한 데이터셋으로 학습한 사전 학습된 모델을 제공하며, 사용자 정의 데이터셋에 대한 필터 재훈련을 쉽게 할 수 있도록 지원합니다. 또한 FFmpeg 플러그인으로 제공되며, CPU용으로는 Docker 컨테이너 내에 패키징되어 테스트와 배포가 용이합니다.
C++로 개발된 이 프로젝트는 인텔® AVX-512 기술을 활용하는 데, 인텔 AVX-512를 활용하여 SR을 구현하려면 c5.2xlarge, c6i.2xlarge 및 c7i.2xlarge와 같은 AWS 전용 인스턴스 유형이 필요합니다. 파이프라인 자동화를 위해 AWS Batch를 사용함으로써 사용자는 EC2 인스턴스의 시작과 종료 시점을 관리할 필요가 없이 비용 효율적으로 사용할 수 있습니다. 또한, 위 구성은 AWS CloudFormation 템플릿을 다운 받아 사용자 환경에 원클릭 배포가 가능하므로 빠르게 구축해서 사용할 수 있습니다.
[사용 가이드]
아래는 솔루션을 AWS계정에 배포 후, 사용하는 순서에 대해 설명합니다. 자세한 내용은 링크에서 확인이 가능합니다.
- 생성된 Amazon S3 버킷은 영상의 input과 output을 관리하는 2개의 버킷입니다. vsr-input 버킷에 SR 대상 영상을 업로드합니다.
*컨테이너 포맷은 FFmpeg에서 지원하는 포맷을 지원합니다. - AWS Batch에서 좌측 ‘작업’의 ‘새 작업 제출’을 클릭합니다.. 허용되는 EC2 인스턴스 유형을 포함한 CPU 요구사항을 정의합니다. 기 생성된 ‘작업 정의’와 ‘작업 대기열’을 선택하고 ‘다음’을 클릭합니다.
- ‘컨테이너 재정의’에서 하단의 ‘작업 정의에서 로드’를 클릭하면 작업이 실행될 때 실행할 명령어를 가져옵니다. 여기서 “input-low-resolution.ts”를 업로드한 파일명으로 대체하고 “output-high-resolution.ts”을 원하는 작업명으로 대체합니다. 이때 컨테이너 타입은 input과 output이 동일해야 합니다.
- vCPU와 메모리를 입력하고 ‘작업 생성’을 클릭합니다. Default로 둘 경우 vCPU: 2(최대 8), 메모리: 4,000(최대 15,000)이 선택됩니다.
- 작업이 완료되면 vsr-output 버킷에서 결과물을 확인합니다.
[그림 2. AWS Batch의 작업 → 새 작업 제출 → 2단계: 재정의 구성 화면]
[테스트 예시]
해당 솔루션은 스포츠 영상, 광고, 드라마, 다큐멘터리, 영화 등 다양한 영상에 대해 테스트되었으며, 아래는 테스트 예시입니다.
[그림 3. 테스트 예시 1 – 기존 화질 (좌측): 320 × 212 / 2x 화질(우측): 640 × 424 ]
[ 그림 4. 테스트 예시 2 – 기존 화질 (좌측): 320 × 212 / 2x 화질(우측): 640 × 424 ]
[ 그림 5. 테스트 예시 3 – 기존 화질 (좌측): 308 × 240 / 2x(2회) 화질(우측): 1232 × 960 ]
[비용]
AWS Batch를 통해 사용한 리소스에 대해서만 비용을 지불하며, 기본적으로 사용되는 c5.2xlarge인스턴스의 비용은 시간당 $0.34입니다. 다른 인스턴스 옵션인 c7i.2xlarge의 경우에도 $0.357로 비용적인 차이는 크지 않습니다. 만약 컴퓨팅 환경으로 스팟 인스턴스를 사용하면 온디맨드 인스턴스 대비 비용을 절감할 수 있으나 시간은 더 소요될 수 있습니다.
예1) 아래 스펙을 가진 10초 분량의 스포츠 영상의 경우, 2x 업스케일링에 ‘1분 43초‘ 소요되었습니다.
-Size: 1920 x 1080 → 3840 × 2160
-Rate: 29.97 fps, Progressive
-Format: AVC, mov
-Size: 21.6 MB
예2) 아래 스펙을 가진 1분 47초 분량의 영화 영상의 경우, 2x 업스케일링에 ‘12분 16초’ 소요되었습니다.
-Size: 1920 × 1080 → 3840 × 2160
-Rate: 24.00 fps, Progressive
-Format: H.264, mp4
-Size: 214.6 MB
* 업스케일링 속도는 원본 영상의 크기, FPS 등 처리해야하는 데이터의 양에 영향을 받으며, 해상도가 낮은 영상을 작업할 경우, 더 적은 시간이 소요됩니다. 예시로 위의 동일한 스포츠 영상을 960 x 540 화질에서 1920 x 1080으로 업스케일링할 경우, 30초가 소요되었습니다.
[성능]
성능 테스트를 위해 Video Multimethod Assessment Fusion (VMAF) 메트릭을 활용하였으며, 아래와 같은 테스트 과정을 거쳤습니다. 또한, AWS Batch의 작업 구성 시, vCPU: 8 / 메모리: 15,000 으로 설정하였습니다.
[그림 6- 성능 테스트를 위해 AWS Batch의 작업 구성 시, vCPU: 8 / 메모리: 15,000으로 설정 ]
테스트 1 – 영화 영상
- 기존 3840 × 2160 해상도를 가진 영상을 1920 x 1080으로 다운스케일
- intel-AWS VSR을 적용하여 1920 x 1080 해상도를 가진 영상을 3840 × 2160로 업스케일
- 원본 영상(2160p)과 업스케일된 영상(1080p→2160p)을 비교
테스트 2 – 광고 영상
- 기존 1920 x 1080 해상도를 가진 영상을 960 x 540으로 다운스케일
- intel-AWS VSR을 적용하여 960 x 540 해상도를 가진 영상을 1920 x 1080로 업스케일
- 원본 영상(1080p)과 업스케일된 영상(540p→1080p)을 비교
[ 그림 7 – 영화 원본 영상(2160p)과 업스케일된 영상(1080p→2160p)을 VMAF 지표로 비교한 결과 ]
[표 1 – 2개 영상에 3가지 인스턴스를 사용한 업스케일 결과]
*해당 테스트에서 고사양의 인스턴스를 사용할수록 처리 시간이 단축되는 것을 볼 수 있습니다.
결론
여러 산업에서 다양한 이유로 저해상도 콘텐츠의 화질 개선 필요성이 대두되고 있습니다. 이에 대한 해결책으로 Super Resolution(SR) 기술이 주목을 받고 있으며, 해당 블로그에서는 Video Super Resolution(VSR)에 대해 집중적으로 다루었습니다. 다양한 기법 중 RAISR는 빠른 속도와 우수한 성능으로 주목받고 있으며, 기존의 SR사용에 한계가 되었던 부분들이 개선되고 있습니다. Intel-AWS 솔루션은 RAISR을 개선한 VSR 라이브러리를 AWS 환경에서 쉽게 구축하고 사용할 수 있게 해줍니다. 이 솔루션은 사전 학습된 모델 제공, 사용자 정의 데이터셋 지원, FFmpeg 플러그인 제공 등 다양한 기능을 갖추고 있어, 비용 효율적이고 편리한 고화질 영상 제작을 가능하게 합니다.