지난 포스팅에서 언급했듯이, 비디오 인코딩 품질 비교 기준, FFmpeg/nvenc 옵션 등이 수정됐다.
이에 따라 변경된 기준들을 정확히 반영할 수 있는 옵션값을 다시 찾아야 했다.
이전 테스트와 같은 소스에서 테스트를 다시 한 번 진행해봤다.
큰 틀에서의 기준은 이전과 동일하다.
FFmpeg의 가이드에서 얘기하는 무손실 조건 등에 가장 근접한 옵션을 찾는 것.
The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible. A lower value generally leads to higher quality, and a subjectively sane range is 17–28. Consider 17 or 18 to be visually lossless or nearly so; it should look the same or nearly the same as the input but it isn't technically lossless.
우선 x264의 옵션 별 SSIM을 계산해봤다.
최고 화질(visually lossless)은 Q(crf)=18을 기준으로, 최저 화질은 Q=26을 기준으로 하기로 했다.
각 인코더로 인코딩한 결과가 아래 표의 SSIM All 값과 유사한 옵션을 찾는 것이 테스트의 목표이다.
위의 값을 그래프로 그려보면 아래와 같다.
구체적인 값을 읽을 필요는 없고, 대략 이런 느낌이라는 정도만 생각하면 될 듯.
8비트/10비트 x265의 결과는 아래와 같다.
10비트 색심도의 결과물이 8비트에 비해 약 5% 더 크다는 점이 눈에 띈다.
nvenc에서 우선 확인해봐야 할 점은 공식(?) 품질 옵션인 cq와 우회로 옵션인 rc이 같은지 여부다.
아래 그래프에서 볼 수 있듯이, rc 옵션 쪽이 살짝 더 품질이 좋다.
파일 크기를 기준으로 보면 cq 옵션 쪽이 약 4% 정도 파일 크기가 더 크다.
nvenc(H.264)와 조금 다르게 두 옵션 간의 품질 차이가 두드러지게 나타난다.
동일한 품질이라면 cq 옵션을 사용하는 쪽이 약 12% 정도 파일 크기가 더 크다.
즉, rc 옵션을 사용하는 것이 합리적인 선택이다.
10비트 색심도 역시 8비트 HEVC와 마찬가지로 cq 옵션 쪽의 파일이 약 12% 더 크다.
nvenc HEVC 인코더의 8비트 vs 10비트를 비교해봤다.
x265의 8비트 vs 10비트와 유사하게, nvenc의 HEVC 역시 10비트 쪽이 파일 크기가 12% 크다.
즉, 원 소스가 8비트라면 굳이 10비트로 저장할 메리트는 없다고 봐야 한다.
이 결과들을 하나의 그래프에 모아보면 아래와 같다.
예전 테스트에선 8비트와 10비트의 파일 크기를 동일하다고 봤는데, SSIM 기준으로는 그렇지 않다.
10비트 쪽이 파일 크기가 더 크다.
또한, nvenc HEVC 인코더가 많이 향상됐지만, 아직 x264를 능가하진 못했다는 점도 눈에 띈다.
인코딩시 적용할 Q의 권장값은 아래와 같다.
구 분 | 최고 품질 | 고품질2 | 고품질1 | 보통 품질 | 최소 품질 |
x264 | 18 | 20 | 22 | 24 | 26 |
nvenc | 20 | 22 | 23 | 25 | 28 |
구 분 | 최고 품질 | 고품질2 | 고품질1 | 보통 품질 | 최소 품질 |
x265 | 19 | 22 | 23 | 26 | 28 |
nvenc | 20 | 22 | 24 | 27 | 29 |
구 분 | 최고 품질 | 고품질2 | 고품질1 | 보통 품질 | 최소 품질 |
x265 | 18 | 21 | 23 | 26 | 28 |
nvenc | 20 | 22 | 24 | 26 | 29 |
덧1. 이 값들은 추후 iTrans 업데이트시 반영 예정
덧2. 추후 Big Navi 구매 시 같은 기준으로 비교 테스트 예정
MainConcept HEVC 인코더는 쓸만할까? (부제: Big Navi 사지 말까?) (0) | 2021.02.13 |
---|---|
AMD의 RX 6700은 언제쯤 나올 것인가 (0) | 2021.01.10 |
H.264/HEVC HW 인코더 품질 시험 관련 잡담 (0) | 2020.12.05 |
이제 DGDecNV를 보내줘야 할 때인가 (0) | 2020.12.05 |
ffmpeg으로 PSNR/SSIM 간단하게 계산하기 (0) | 2020.11.29 |