노이즈 심한 저해상도 비디오의 품질을 개선해 쾌적한 사용자 경험 누리는 방법 (1)

by NVIDIA Korea

코로나19 대유행에 따른 폐쇄조치와 재택 근무 정책으로 화상 회의, 오디오와 비디오 스트리밍, 무선 통신이 최근 폭발적으로 증가했습니다. 기업과 교육계, 공공기관은 가상 협업과 콘텐츠 제작 애플리케이션 수요의 급증을 경험하고 있는데요. 간단한 영상 통화나 광범위한 시청자 대상의 콘텐츠 스트리밍 등을 통틀어 온라인 통신의 핵심은 비디오 스트림입니다. 온라인 통신에서 네트워크 대역폭을 가장 많이 사용하는 부분 또한 비디오 스트림이며, 종종 노이즈와 아티팩트(artifact)를 동반합니다.

이러한 비디오 품질 문제를 해결하기 위해 NVIDIA Maxine Video Effects SDK는 AI 기반 시각 기능으로 노이즈가 심한 저해상도 비디오 스트림을 개선해 보다 쾌적한 사용자 경험을 제공합니다. 이번 포스팅에서는 기본 웹캠 인풋에 NVIDIA Maxine Video Effects SDK의 효과들을 실행하고 이를 화상 회의와 콘텐츠 제작 파이프라인에 원활히 통합하는 방법을 소개합니다.

디테일 추가와 해상도 개선

이미지 프레임의 낮은 해상도가 야기하는 비디오 품질 저하 문제를 해결하기 위해 Maxine Video Effects SDK는 AI 기반의 최첨단 시각 효과를 제공하는데요. 바로 슈퍼 해상도(Super Resolution)와 업스케일러(Upscaler)입니다.

슈퍼 해상도(Figure 1)는 주어진 인풋 이미지의 해상도와 텍스처를 개선해 우수한 품질의 이미지를 생성합니다. 전체적 개선을 달성하면서 콘텐츠는 보존하죠. 이 시각 효과는 H.264와 같은 무손실 압축 데이터에 사용할 때 가장 좋습니다. 이 기능으로 미디어를 1.33배와 1.5배, 2배, 3배, 4배까지 확장할 수 있습니다.

Figure 1. 슈퍼 해상도 기능 적용의 전과 후

슈퍼 해상도 효과를 조정하려면 관련 모드를 선택합니다.

  • 0: 인코딩 아티팩트가 있는 스트림과 손실 압축으로 인코딩된 스트림에 권장합니다.
  • 1: 강력한 시각적 개선이 적용되는 모드로, 무손실 압축으로 인코딩된 스트림에 권장합니다.

업스케일러(Figure 2)는 인풋 비디오의 해상도를 높이는 한편 이미지에 디테일을 더해주는 빠르고 간편한 기법입니다. 프레임 내 콘텐츠의 기하학적 구조에 집중하고 디테일을 강화하죠. 이미지 해상도의 개선에 더해 업스케일러 효과는 보다 맑고 선명한 이미지를 만들어냅니다.

Figure 2. 업스케일러 기능 적용의 전과 후

업스케일러의 개선 파라미터는 [0,1] 범위 내에서 설정할 수 있습니다.

  • 0: 이미지 개선 없이 해상도를 높입니다.
  • 1: 이미지의 선명도와 관련한 시각 효과 개선을 극대화합니다.

업스케일러 개선 파라미터의 기본값은 0.4로 설정됩니다.

웹캠 비디오의 노이즈 제거와 인코딩 아티팩트 감소

사용자 경험의 개선 혹은 저하로 이어지는 비디오 노이즈의 근본 원인은 다양합니다. 그러나 대표적 원인을 2개만 꼽자면 웹캠 노이즈와 인코딩 아티팩트를 들 수 있습니다.

웹캠 노이즈의 원인은 카메라 센서의 유형, 노출, 조도 등을 예로 들 수 있습니다. 사용자가 생성하는 스트림의 경우 주변 조명이 불충분하거나 카메라의 품질이 열악하다면 노이즈가 특히 심해지는데요. 이러한 유형의 노이즈는 카메라의 센서 유형에 크게 좌우됩니다.

비디오 스트림의 인코딩 아티팩트는 프레임 전송에 필요한 대역폭의 제약 때문에 발생합니다. 손실 압축은 일반적으로 이미지 내 텍스처 정보의 일부 손실과 함께 데이터 인코딩을 동반합니다. 손실 압축 표준의 대표적 사례가 바로 이미지용 JPEG와 비디오용 H.264입니다. 이 미디어를 스트리밍할 때 단위 시간당 스트림 대역폭을 비트율(bitrate)이라 부릅니다.

스트리밍 환경에서는 압축된 콘텐츠의 스트리밍에 사용할 수 있는 대역폭이 유동적입니다. 이러한 가변성으로 인해 프레임의 압축에 필요한 비트수보다 인코더의 비트수가 적은 상황이 발생하고, 이것이 압축 아티팩트로 이어집니다. 압축 아티팩트는 다양한 형태를 띠지만 가장 대표적인 것은 블로킹(blocking) 아티팩트입니다.

Maxine Video Effects SDK의 비디오 노이즈 제거(The Video Noise Removal, Figure 3) 기능을 사용하면 웹캠 스트림의 노이즈를 제거하고 디테일을 보존해 사용자 경험을 개선할 수 있습니다.

Figure 3. 비디오 노이즈 제거 기능 적용의 전과 후

이 기능은 강도값에 따른 두 가지 형태로 제공됩니다.

  • 0: 텍스처 품질을 보존하는 저강도 노이즈 감소 효과. 노이즈가 적은 미디어에 적합합니다.
  • 1: 텍스처 품질에 영향을 미칠 가능성이 있는 고강도 노이즈 감소 효과. 이 형식은 업스케일러나 슈퍼 해상도와 원활히 연결되어 디테일을 더하고 해상도를 향상시킵니다.

Maxine의 아티팩트 감소(Artifact Reduction, Figure 4) 기능은 화상 통화에서 대역폭이 줄어들 때 발생하는 블로킹 아티팩트를 줄여줍니다. 또한 링잉(ringing) 아티팩트와 모스키토 노이즈(mosquito noises)를 감소시키면서 원본 비디오의 디테일을 보존합니다.

Figure 4. 아티팩트 감소 기능 적용의 전과 후

이 AI 기반 기능은 두 가지 모드에 최적화되어 있습니다.

  • 0: 로우 그래디언트(low gradient) 정보를 보존하면서 아티팩트를 줄입니다. 이 모드는 비트율이 높은 비디오에 적합합니다.
  • 1: 개선된 아웃풋 스트림을 제공합니다. 낮은 비트율의 고품질 무손실 비디오를 위해서는 이 모드를 적용해야 합니다.

가상 배경 선택 지원하기

Maxine Video Effects SDK는 사용자가 지나치게 개인적이거나 산만한 환경에서 회의에 참여하는 일이 없도록 가상 배경(Virtual Background) 기능을 제공합니다.

기본적으로 가상 배경 기능(Figure 5 참고)은 마스크를 생성해 전경(이 경우에는 스트림의 인물)을 분할하고 떼어냅니다. 이미지나 비디오 등 모든 미디어를 배경으로 제공할 수 있습니다. 또한 동일한 배경에 다수의 사용자를 추가하는 것처럼 다양하고 창의적인 응용도 가능하죠. 예를 들어 2인의 해설자가 실시간 이벤트에 대해 대화하고 있다면 해당 이벤트의 라이브 피드에 두 사람의 모습을 넣을 수 있습니다. 또 다른 예는 사용자를 분리해 그들 컴퓨터의 라이브 피드에 덮어 씌우는 것입니다. 이렇게 하면 1인 또는 복수의 사용자가 실시간으로 동시에 참여하면서 몰입도를 유지할 수 있습니다. 이때 연산 일체는 GPU가 제공하는 병렬화를 사용함으로써 실시간으로 처리할 수 있는 스트림의 수를 늘립니다.

Figure 5. 가상 배경 기능 적용 사례

가상 배경 기능은 두 가지 모드로 실행됩니다.

  • 품질 모드(Quality mode): 최상의 분할 품질을 원하는 경우
  • 성능 모드(Performance mode): 최고 속도의 성능을 원하는 경우

또한 이 기능을 사용하면 블러(blur)의 강도를 조정해 흐릿하게 처리된 배경을 생성할 수 있습니다.

비디오 효과 기능의 연결

사전 압축된 비디오나 노이즈가 있는 비디오를 처리하면서 해상도 개선도 함께 원한다면, 활용 사례에 따라 아티팩트 감소 또는 비디오 노이즈 제거 효과를 업스케일러와 연결해 사용하는 방법을 권장합니다. 더 자세한 정보는 API 탐색하기를 참고하세요. 또한 Maxine Video Effects SDK와 함께 제공되는 업스케일파이프라인(UpscalePipeline) 샘플 애플리케이션을 통한 손쉬운 경험도 가능합니다.

 

두 번째 블로그에서 컨테이너와 윈도우에서 Maxine Video Effects SDK 설치 방법을 확인해보세요!