조회 수 4148 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

NVENC로 인코딩할 때,

 

  1. FHD 영상의 비트레이트는 어느 정도로 할지
  2. H264로 할지, HEVC으로 할지

 

결정하는 문제에 화질에 관한 두 지표값의 도움을 받아 볼까 해서 테스트해 보았습니다.

 

개인적으로는 평소 FHD 영상을 HEVC(NVENC)로 2,000 Kbps 정도로 자주 재인코딩하는데, 제 눈으로 보기엔 크게 거슬리는 artifact가 없어 보입니다. (물론 원본이 충분히 괜찮아야 한다는 전제가 붙긴 합니다.) 그리고 H264보다는 HEVC이 화질이 좀더 나아 보여 HEVC을 선호하는 편인데, 객관적인(?) 지표값을 뽑아 보아도 과연 그런지 궁금하여 테스트했습니다.

 

1. 원본 정보와 인코딩 정보

<원본 정보>

길이: 1시간 16분

해상도: 1920x1012 (준 FHD)

비디오 스트림 크기: 2GB (비트레이트: 3,748 Kbps)

비디오 코덱: H264 (x264로 2pass 4,000 Kbps로 인코딩)

(드라마 '아는 XXX' 1화입니다. 릴은 알아서 파악하시길... ^^;;)

<인코딩 정보>

길이 변경, 해상도 변경 없음

타겟 파일 크기: 1.5 GB = 1,536 MB (비디오 비트레이트: 2,000 Kbps)

-> 실제 인코딩된 비디오 스트림 크기: 1.03GB (비디오 비트레이트: 1,940 Kbps)

 

비트레이트를 원본보다 반으로 줄였으니 당연한 얘기겠지만, 원본의 50% 정도로 파일 크기가 감소했습니다.

 

인코딩할 때 HEVC(NVENC)과 H264(NVENC) 모두 인코딩 옵션을 customize 하지 않고 샤나인코더의 기본 rate control(-shanarcmode variable)을 이용했습니다.

 

2. H264(NVENC) 코덱과 HEVC(NVENC) 코덱으로 인코딩한 영상의 화질 지표값

<H264(NVENC)>

[SSIM] Y:0.986794 (18.792259) U:0.990432 (20.191679) V:0.990341 (20.150580) All:0.987991 (19.205075)

[PSNR] y:40.307308 u:47.948815 v:47.772416 average:41.702540 min:8.391338 max:61.591968

<HEVC(NVENC)>

[SSIM] Y:0.987739 (19.114811) U:0.989455 (19.769405) V:0.989348 (19.725855) All:0.988293 (19.315671)

[PSNR] y:40.508644 u:47.904351 v:47.727796 average:41.883497 min:8.395822 max:61.4422622

 

SSIM은 HEVC(NVENC)가 H264(NVENC)보다 아주 조금 높아 근소하게나마 화질이 낫다는 것을 보여 줍니다만 무시해도 될 정도입니다. 어차피 둘 다 99% 가량으로 원본과 상당히 유사함을 알 수 있습니다.

 

PSNR 역시 HEVC(NVENC)가 H264(NVENC)보다 약 0.18 정도 값이 높아 근소하게 화질이 나음을 보여 주고 있습니다만 이 역시 무시해도 될 수준입니다. 둘 다 42 정도의 값으로 준수한 수준을 보여 주고 있습니다. (PSNR은 8비트 영상에서 보통 30~50 정도 수준이며 값이 높을수록 화질이 낫다고 평가함.)

 

※ 참고로, 정확히 계산해 보면 H264(NVENC)의 MSE가 HEVC(NVENC)의 MSE보다 약 4.25% 정도 큽니다.

    psnr_comparison_calculation.gif = 약 1.0425

 

두 지표값을 두고 판단했을 때 NVENC 계열은 H264와 HEVC 둘 간에 차이가 거의 없음을 알 수 있습니다. 경험상 화질도 FHD 정도의 해상도에서는 HEVC(x265)가 H264(x264)보다 나아 보이고, 실제로 공식적으로도 "평균적으로 HEVC이 H264보다 효율이 30~50%까지 개선되었다"고 하는데 이게 NVENC에서는 나타나지 않습니다. 이번 샘플만 그런 건지, 아니면 대부분 그런 건지는 확인이 필요하겠습니다만...

 

인코딩 속도도 둘이 거의 차이가 나지 않습니다. HEVC(x265)가 H264(x264)보다 확실히 인코딩 속도가 느린 것과 비교했을 때 확연히 다르죠.

 

3. 결론

결론적으로 말씀드리자면, "(원본이 충분히 괜찮다면) FHD의 경우 비트레이트 2,000 Kbps로 하드웨어 인코딩을 해도 결과 역시 충분히 괜찮고, 화질에 대한 평가는 주관적인 기준에 따라 엇갈린다. HEVC(NVENC)의 H264(NVENC)에 대한 화질 우위와 속도 저하는 거의 없다."고 말씀드릴 수 있겠습니다.

 

다만 이 포스팅의 한계라고 할 만한 것은,

 

  1. 샘플이 하나라서 충분한 객관성을 담보할 수는 없다는 점
  2. 소프트웨어 인코딩(x264, x265)과 비교한 자료는 없다는 점
  3. 원본의 화질에 따라 결과가 어떻게 변할지 알 수 없다는 점(이건 1과도 관련 있습니다.)
  4. 결정적으로, SSIM과 PSNR이 절대적인 지표가 될 수는 없다는 점

 

입니다. 제가 논문을 쓰려는 것이 아니기 때문에 굳이 귀차니즘을 무릅쓰고 다양한 샘플에서 여러 인코딩 방법을 동원해 결과를 측정하지는 않았으니, 어디까지나 여러분이 판단하시는 데 참고 자료로만 사용하셨으면 좋겠습니다.

TAG •
Atachment
첨부 '1'
Facebook Twitter Pinterest Kakao
  • ?
    유토짱 2018.09.14 11:56
    제 비디오 카드가 gtx-750ti 2g라서 HEVC(NVENC) 하드웨어 가속을 지원안해서 테스트를 못하겠네요.

    다른 사람이 인코딩한 HEVC영상은 많이 봤는데, 부드럽고 선명한 느낌이었습니다.

    소프트웨어 hevc는 너무 느려서 사실상 포기하구요. 적어도 1x 이상 나와야 인코딩할 맛이 나는거 같습니다.

    gtx1050 ti를 중고로 구매할까 생각중인데... sSTSs님은 그래픽 카드종류가 어떤걸 사용하고 있나요?
  • ?
    JKyle 2018.09.14 13:01
    전 GTX 1060 (Max Q)입니다. 싸게 샀기 때문에 그런대로 만족하면서 쓰고 있습니다. 엔비디아 Pascal 아키텍쳐 기반 그래픽 카드의 비디오 디코딩/인코딩 관련 스펙은 아래 링크를 참조하시길...
    https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

    이번에 RTX 계열이 새로 발표되었는데 얘네들은 디코딩/인코딩 관련해서 어떤 성능을 보여줄지 기대가 되네요. 아마 1~2년 후쯤에는 이것들 중 하나로 갈아타게 될 것 같습니다. AMD가 지금보다 더 분발하면 어쩌면 AMD 쪽으로 가게 될지도... 그때 되면 HEVC보다는 AV1이 대세가 되기 시작할 때쯤이 아닐까 예상해 봅니다.
  • ?
    유토짱 2018.09.15 10:27
    GTX 750 TI는 Maxwel계열인데.. Pascal계열이 대세인가 보네요. 요즘 중고 Gtx1060 3g가 14만 정도 하던데, 한번 질러봐야 겠습니다.

    내장 그래픽 + 3~4만 그래픽카드로 모니터3대 달고, 부족함이 없었는데, 요즘 인코딩정쪽 공부 하느라 그래픽카드 욕심이 나기 시작하네요.

    처음엔 6Core(12 Thread) CPU를 바꿀가 생각했는데, 역시 하드웨어 가속 그래픽카드가 정답인거 같습니다.
  • ?
    JKyle 2018.09.15 13:42
    아무래도 인코딩 작업할 게 많다면 CPU만으론 한계가 있죠. RTX 나온 후로 GTX 쪽 가격이 떨어지고 있다고 하니 갈아타기 좋은 시기가 오는 것 같습니다.

  1. HEVC 코덱 설정->튜닝 옵션별 각 화질 비교

  2. H264(AMF), HEVC(AMF) 옵션 도움말

  3. H264(NVENC), HEVC(NVENC) 옵션 도움말

  4. 필터 적용 사례: 로고/워터마크 제거

  5. HDR 영상과 10비트 영상

  6. 색공간과 Bit Depth

  7. 샤나인코더 영상 사이즈 변경 옵션을 통한 FFmpeg 필터의 기초 이해

  8. 샤나인코더의 H264 설정과 FFmpeg의 x264 설정 이해

  9. FFmpeg 명령어 구조와 샤나인코더 작동 방식 이해

  10. [인포그래픽] 인코딩 작업 흐름과 자막 작업

  11. [인포그래픽] 인코딩 작업의 흐름도

  12. [필독] 비디오 코덱과 기본 용어 (H.264, HEVC)

  13. 샤나인코더로 움짤 만들기

  14. 기록 보기에서 Consider increasing the value for the 'analyzeduration' and 'probesize' options 내용이 있을 때 해결법

  15. SRT SMI 자막 인코딩 이용시 한글 깨짐 자막변환 방법

  16. webm VP9 멀티스레드 활성화하는 방법, 속도 향상시키는 방법

  17. "비트레이트를 원본보다 높게 주면 원본보다 퀄리티가 나아질 수 있다"는 주장에 대해

  18. SSIM, PSNR로 측정한 NVENC 인코딩

  19. 인코딩된 파일의 PSNR, SSIM 값 계산하기

  20. 8비트 원본을 10비트로 인코딩하면 8비트로 인코딩할 때보다 화질이 더 낫다?

Board Pagination Prev 1 2 3 4 Next
/ 4