많은 분들이 NVENC의 화질에 대하여 안 좋은 평을 많이 남기셔서 글을 남깁니다.
참조 글은 아래의 링크입니다.
https://devblogs.nvidia.com/turing-h264-video-encoding-speed-and-quality/
해당 글의 작성자는 일반인이 아닙니다.
GPU 개발자의 글이니
어느정도 공신력이 있다고 생각하시면 됩니다.
비교하고자 하는 파라미터는 아래와 같습니다.
Preset | NVENC | libx264 |
High Quality | -c:v h264_nvenc -preset medium -b:v BITRATE -bufsize BITRATE*2 -profile:v high -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 | -c:v libx264 -preset medium -b:v BITRATE -bufsize BITRATE*2 -profile:v high -tune psnr -vsync 0 -threads 4 |
Low Latency Fast | -c:v h264_nvenc -preset llhp -rc cbr_ld_hq -b:v BITRATE -bufsize BITRATE/FRATE -profile:v high -g 999999 -vsync 0 | -c:v libx264 -preset fast -b:v BITRATE -bufsize BITRATE/FRATE -profile:v high -g 999999 -x264opts no-sliced-threads:nal-hrd=cbr -tune zerolatency -threads 4 -vsync 0 |
We used a variety of input videos for RD-estimation, such as basketball_drive, bq_terrace, cactus, crowd_run, ducks_take_off, jokey, kimono, and many more at 1280×720, 1920×1080 and 3840×2160 resolutions.
둘다 preset이 medium 기준입니다.
제가 알기로는 많은 분들이 medium 혹은 더 화질에 민감하신 분들은 slow 로 사용하시는 것으로 알고 있습니다.
뭐 아닌 분들도 계시겠지만요...
제가 이 글에서 관심있게 본 부분은
High-Motion Sequences
The Red Kayak and Cactus sequences include significant chaotic and circular motion, respectively. NVENC shows a clear advantage over libx264 in these scenes which contain complex inter-predicition, as shown on figures 7 and 8.
Figure 7. PSNR RD curve for Red Kayak sequence in 1080p resolution.Figure 8. PSNR RD curve for Cactus sequence in 1080p resolution.
The Tesla T4 NVENC easily outperforms libx264 in low-latency mode as highlighted in figures 9 and 10. Notice how the Tesla T4 is more effective at high resolutions, offering one dB better visual quality at the same bitrate.
Figure 9. PSNR RD curve for Cactus sequence in 1080p resolution and low latency modeFigure 10. PSNR RD curve for Ducks take off sequence in 2160p resolution.
Difference in visual quality can be easily seen by eye as it’s illustrated on figures 11 and 12:
요놈입니다.
PSMR값이 libx264 medium preset에 비해서 전혀 꿀릴 게 없습니다. Low Latency , High Quality 모두 NVENC의 PSMR값이 더 높군요.
결론 :
NVENC할거면 1660사서 하드웨어 인코딩 합시다. 요즘 25만원이면 사네요.
(물론 파스칼 아키텍쳐에 비해 인코딩 되는 속도는 많이 느립니다)
저도 이쪽은 남의 글 보면서 참조하는 수준밖에는 안 되므로 지적할 부분이 있으면 해주셨으면 좋겠습니다.
사실 강의라고 쓴 것이라기 보다는 '이런 거 아냐?' 정도의 수준밖에는 안 됩니다.
이 글도 가볍게 쓴 것이니.. 우리 모두 discussion 해봅시다.ㅎㅎ