반응형

지난 추가 시험 이후 GTX1660을 를 새로 장만했다.

또, 지인이 라이젠 3400G를 구매해서 AMD의 HW 인코더인 AMF도 추가적인 테스트를 할 수 있게 되었다.

한편으로는 ffmpeg에서 AMD의 AMF 등 HW 인코더를 지원하는 부분이 안정화되고 있다.

 

그래서 아예 제대로 테스트 해보기로 했다.

이번에도 테스트 소스는 이전과 동일한 sintel[각주:1].

 

 

공식적으로는 GTX1050Ti의 후계자는 GTX1650이다.

그런데, 자료들을 뒤져보니 코어만 튜링이고 nvenc는 1050Ti와 동일하며, 새로운 nvenc 코어는 1660부터 적용[각주:2]되었다.

 

일단 전통의(?) H.264 인코딩 결과.

당연하게도(?) x264의 용량 대비 품질이 제일 높고, 인텔 퀵싱크 비디오(이하 qsv)가 이와 거의 동일한 수준이다.

그런데, 눈에 띄는 점 하나는 GTX1660이 GTX1050Ti보다 상당히 향상되었다는 점이다.

 

더불어, 지난번 테스트와는 달리 AMD의 라이젠 3400G에서 꽤 쓸만하게 인코딩을 한다.

참고로, 지난 테스트에서도 그랬듯이, PSNR 45 정도를 보통 품질, 48 이상을 최고품질(거의 무손실), 43을 최소품질로 잡았다.

아래 그래프들에 표시된 파란 가로선은 이를 표시하기 위한 선이다.

 

언제나 그렇듯 이 그래프는 위로/왼쪽으로 갈 수록 인코딩 결과가 우수하다는 의미임

 

시놀로지(DS-418)의 하드웨어 인코딩 결과를 함께 비교하면 좀 미안한[...] 수준이다.

그래... 그냥 쓰지 말자...

 

 

qsv는 H.264에서는 극강의 성능[각주:3]을 보여주지만, HEVC(8비트)에서는 그 정도까지는 아니다.

HW 인코더 중에선 최선이지만, SW(x265)의 성능에 필적하지는 못한다.

그리고, GTX1660이 qsv와 사실상 동일한 성능을 보여준다.

 

눈에 띄는 점 중 하나는, 앞에서도 그랬듯이, GTX1660의 nvenc가 GTX1050Ti에 비해 상당히 향상되었다는 점이다.

 

 

요즘 HEVC 인코딩은 8비트보다 10비트가 대세인 것 같아 이 쪽도 같이 확인해봤다.

물론, 소스가 8비트 영상이기 때문에 이로 인한 메리트가 있는 건 아니고, 단순한 비교 차원의 확인이다.

 

앞의 8비트 HEVC와 큰 차이는 없지만, GTX1660의 품질이 qsv를 넘어섰다는 점이 눈에 띈다.

 

 

HEVC 8비트와 HEVC 10비트 그래프를 함께 보면 아래와 같다.

일단, x265의 경우 8비트와 10비트가 동일한 용량 대비 품질을 보여주는 것이 눈에 띈다.

10비트 HEVC의 파일 크기가 조금은 클 것이라 생각했는데 이 예측이 보기 좋게 벗어났다.

 

 

특히 GTX1660의 10비트 HEVC 인코딩은 어떤 수준인 있는지 따로 확인해보면 아래와 같다.

즉, x265에는 못 미치지만, 적어도 x264의 성능은 따라 잡았다.

 

한편으로 보면 HEVC의 성능을 완벽하게 발휘할 수 있는 인코더는 아직 나오지 않았다.

여전히 용량 대비 품질만을 생각하면 x265가 최고[각주:4]다.

 

 


 

이 테스트의 결론 및 참고할 내용들은 아래와 같다.

 

1. 인코더 품질값 지정

위의 설명에서는 인코딩시 실제 지정된 Q(crf)에 대한 설명을 하지 않았는데, 적용한 값을 정리하면 아래와 같다.

- H.264

구분 최고품질(48) 고품질(47)  보통품질(45) 최소품질(43)
x264 17 20 23 27
nvenc 20 23 25 28
qsv 17 20 23 26
AMF 18 21 23 27

 

- HEVC(8bit)

구분 최고품질(48) 고품질(47)  보통품질(45) 최소품질(43)
x265 19 22 25 30
nvenc 20 23 26 30
qsv 14 17 20 25
AMF 17 20 23 27

 

- HEVC(10bit)

구분 최고품질(48) 고품질(47)  보통품질(45) 최소품질(43)
x265 20 23 26 29
nvenc 19 22 25 29
qsv 23 27 30 35
AMF 20 21 23 27

 

2. ffmpeg의 HW 인코딩 지원은 완벽한 상태인가?

ffmpeg 이전 버전(4.1.4)에서 qsv(8세대 i5)로 HEVC 10bit 인코딩에 실패했다가 4.2.0에서 성공한 경험이 있다.

즉, ffmpeg의 HW 인코딩 지원 자체에서 오류가 발생할 여지가 있는 것이다.

 

3. 2400G는 AMF 인코딩이 불가능한가?

이 부분은 2400G의 HW 문제인지, ffmpeg의 업데이트의 영향인지 확인할 수 없었다.

하지만, 2번 상황을 생각하면 ffmpeg 4.1.4의 오류일 가능성이 높고, ffmpeg 4.2.0의 안정성이 향상된 것으로 보인다.

 

믿습니다! 갓사 쑤!

 

덧. 이 테스트 결과들은 iTrans 새 버전에 반영될 예정임

 

 

  1. 여담이지만, 이 영상은 순수 오픈 소스 환경으로만 만든 단편 영화인데, 상당히 볼만함 [본문으로]
  2. 즉, 엔비디아는 상당히 치졸함, 1650은 튜링의 막내라고 보기엔 뭔가 부족 [본문으로]
  3. SW(x264)와 사실상 동일한 용량 대비 품질을 보여주기 때문에 qsv 환경에서는 무조건 qsv를 쓰는 것이 정답임 [본문으로]
  4. 하지만, 인코딩에 소요되는 시간도 최고로 많이 소요됨 [본문으로]
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band