[VR] 4K 8K 영상 용량 줄이는 방법(그래픽카드 가속)

그래픽카드 가속 nvenc 방식으로 h264를 h265(hevc nvenc)으로 영상 용량 줄이는 방법에 대해 알아봅시다. 기본적으로 압축 효율은 당연하게도 h265(하드웨어, CPU) 방식이 가장 좋습니다. 하지만 문제는 너무 느리다는 단점이 있습니다. VR 영상들은 특히 용량도 많고 프레임 수도 많아서 영상 한 편을 줄이려면 5시간 이상이 걸리는 경우가 많습니다. 보통 게이머들은 엔비디아 그래픽카드를 가지고 있을 텐데요. 그래픽 카드 가속으로도 영상의 손실은 최소화하면서, 최대한 용량을 줄이는 방법을 알아냈습니다.

먼저 h264, h265, h265 nvenc 등의 차이를 알아보겟습니다.

h264, h265, h265 nvenc

h264, h265, h265 nvenc는 모두 비디오 압축 코덱으로, 비디오 파일의 크기를 줄이는 데 사용됩니다. 먼저, h264 (AVC)는 오래된 코덱으로, 현재 가장 널리 사용되고 있습니다. 압축 효율은 h265에 비해 낮지만, 호환성이 좋아 많은 기기에서 지원되는 장점이 있습니다.

반면에, h265 (HEVC)는 h264의 후속 코덱으로, 더 높은 압축 효율을 제공합니다. 같은 화질에서 h264 대비 약 50% 정도의 용량 절감이 가능하다는 것이 가장 큰 장점이죠. 하지만 처리 속도가 h264보다 느리고, 아직 호환되는 기기가 제한적이라는 단점도 있습니다.

마지막으로, h265 nvenc는 NVIDIA에서 개발한 하드웨어 인코딩 기술인 nvenc를 사용하여 h265 인코딩을 수행합니다. GPU를 사용하여 비디오 인코딩을 처리하므로, CPU 부하를 줄일 수 있다는 장점이 있습니다. 소프트웨어 기반의 h265 인코딩보다 속도가 빠르지만, 화질은 다소 낮을 수 있다는 점은 고려해야 할 사항입니다.

결론적으로, 각각의 코덱은 장단점이 있으므로 사용 목적에 따라 적절한 코덱을 선택하는 것이 중요합니다. 호환성을 중요시한다면 h264를, 압축 효율을 중요시한다면 h265를, 인코딩 속도를 중요시하고 NVIDIA GPU를 사용한다면 h265 nvenc를 선택하는 것이 좋습니다.

화질 떨어지면 안 좋은 거 아닌가?

맞습니다. 화질이 떨어질 확률이 높으니 화질이 중요한 VR에서는 문제가 될 가능성이 다분합니다. 하지만 특정한 세팅값으로 h265 nvenc를 진행하면 SSIM 수치가 0.996에 달할 정도로 유사한 영상을 인코딩할 수 있습니다.

SSIM은 무엇인가?

SSIM(Structural Similarity Index)은 두 이미지 간의 유사성을 측정하는 객관적인 지표입니다. 기존의 이미지 품질 평가 방법인 MSE(Mean Squared Error)나 PSNR(Peak Signal-to-Noise Ratio)이 이미지의 절대적인 차이만을 계산하는 데 반해, SSIM은 이미지의 구조적 정보를 고려하여 인간 시각 시스템에 더 가까운 방식으로 유사성을 평가합니다.

SSIM은 두 이미지 간의 밝기(Luminance), 대비(Contrast), 구조(Structure)를 비교하여 계산됩니다. 밝기는 이미지의 평균 픽셀 값, 대비는 이미지의 표준 편차, 구조는 이미지의 공분산을 사용하여 측정됩니다. 이 세 가지 요소를 조합하여 최종 SSIM 값을 계산하는데, 이 값은 0부터 1 사이의 범위를 가지며, 1에 가까울수록 두 이미지가 유사함을 나타냅니다.

SSIM은 이미지 압축, 노이즈 제거, 해상도 변경 등 다양한 이미지 처리 분야에서 품질 평가 지표로 널리 사용되고 있습니다. 특히, 비디오 압축 코덱의 성능을 평가할 때 SSIM을 사용하면, 인간의 시각적 인지와 유사한 결과를 얻을 수 있어 코덱 간 화질 비교에 유용합니다.

쉽게 정리해서 SSIM이 0.995 이상만 되면 인간의 눈으로 구분하기가 매우 어렵다고 합니다.

h265 nvenc 결과물

지금까지 총 10개의 영상을 진행해보았습니다. SSIM값은 모두 0.996이 나왔습니다. 인간의 눈으로는 거의 구분하기 힘든 수준까지 왔다는 겁니다. 그럼 용량은 얼마나 줄어들었을까요?

5.04GB의 용량이 1.93GB로 상당히 많이 줄어들었습니다. 비트레이트가 반토막이 났지만, SSIM으로 비교한 결과 동일한 프레임에서 이미지의 차이가 거의 나지 않는다는 것도 확인할 수 있습니다. CPU 인코딩보다 훨씬 빠른 속도로 진행할 수 있는데, 이 정도로 퀄리티가 나온다면 괜찮은 방법인 것 같습니다.

요즘 하드디스크의 가격이 매우 비싸고, Vr 영상을 보관하고자 외장하드나 나스 구성을 하는 것은 상당히 비효율적이라고 할 수 잇습니다. 물론, 돈이 넘쳐난다면 이런 방법도 좋겠지만 VR 영상은 계속해서 출시되고 있으며 하드가 무한하지 않은 이상 계속해서 보관하기는 힘듭니다. 심지어 나스가 있다고 하더라도 이런식으로 영상의 용량을 다이어트 하는 것은 중요합니다.

영상 용량 줄이는 방법

킹성비에서는 샤나인코더를 활용하고 있습니다. 샤나인코더는 샤나인코더 공식 홈페이지에서 다운로드 받으면 됩니다.

샤나 인코더에 영상을 넣고 빠른 설정을 엽니다.

파일 형식 : mp4
비디오 코덱 : HEVC(NVENC) 퀀타이저
퀀타이저 : 24

코덱 설정을 엽니다. 바꿀 건 프리셋 하나 입니다. 프리셋을 미디움으로 바꿔줍니다.

인코딩이 동시에 진행되고 있습니다. 변환 속도는 110fps ~ 130fps까지 나오는데, 두 영상을 동시에 진행하니 대략 220270 fps라 생각하시면 됩니다. VR영상의 프레임 레이트가 보통 60이고, 20분짜리 영상의 프레임 수는 60 * 60 * 20 = 72,000 프레임입니다. 따라서 20분짜리 VR영상 두 개를 인코딩하는 데 걸리는 시간은 72,000 * 2 / (220270) = 약 533~655초, 즉 8분 53초에서 10분 55초 정도 소요될 것으로 예상됩니다.

물론, 이는 인코딩 속도가 일정하다는 가정 하에 계산된 값이며, 실제로는 영상의 복잡도, 인코딩 옵션, 하드웨어 성능 등 다양한 요인에 따라 인코딩 속도가 변동될 수 있습니다. 또한, 인코딩 중 CPU나 GPU 사용량이 100%에 가까워지면 인코딩 속도가 다소 느려질 수 있으니 이 점도 고려해야 합니다.

인코딩 완료 후에는 반드시 출력된 영상의 품질을 확인해야 합니다. 인코딩 과정에서 예기치 못한 문제가 발생했을 수 있기 때문입니다. 출력 영상의 재생 시간, 프레임 레이트, 해상도 등을 체크하고, 실제로 영상을 재생해보며 화질과 음질을 꼼꼼히 살펴보는 것이 좋습니다. 이상이 없다면 인코딩이 성공적으로 완료된 것으로 볼 수 있습니다.

사운드 설정값

오디오 코덱은 그대로 스트림 복사로 진행하시면 됩니다.

궁금한 점이 있다면 댓글을 달아주시길 바랍니다.

최무성
디즈니 플러스에서 공개된 한강입니다. 솔직히 말해서 권상우가 나온다고 하길래 거르려고 하다가...
1675755583510499175041
2023년 드라마 감상평은, 드라마 폐인인 킹성비가 2023년에 본 드라마들을 처음부터 끝까지...

Leave a Comment