Low quality video issues on TX2 NX (NVENC)

Hello,

we are not able to get great PSNR values using NVENC on TX2 NX with adequate bitrate settings.
To reproduce:
Download sample: https://media.xiph.org/video/derf/y4m/park_joy_1080p50.y4m

Run Gstreamer Pipeline: gst-launch-1.0 filesrc location= park_joy_1080p50.y4m ! y4mdec ! nvvidconv ! nvv4l2h264enc bitrate=14000000 control-rate=1 vbv-size=450000 ! h264parse ! qtmux ! filesink location= park_joy.mp4
Test result using ffmpeg: ffmpeg -i park_joy.mp4 -f rawvideo -video_size 1920x1080 -framerate 50 -i park_joy_1080p50.y4m -lavfi "ssim;[0:v][1:v]psnr" -f null -

Result:

[Parsed_ssim_0 @ 0x5590608af0] SSIM Y:0.224862 (1.106211) U:0.547939 (3.448028) V:0.746531 (5.960758) All:0.365653 (1.976733)
[Parsed_psnr_1 @ 0x559062c4f0] PSNR y:13.579160 u:24.229653 v:30.624902 average:15.226659 min:14.312028 max:23.342425

Expected Result:

  • Better image quality, less blockiness and PSNR >30

How can we improve this? If additional info is required, please let me know.

Kind regards,
Tobias

1 Like

Hi,
Please try H265. We have comparison in
Random blockiness in the picture RTSP server-client -Jetson TX2 - #5 by DaneLLL

H265 is expected to have better PSNR than H264. Please give it a try. And may try larger vbv-size.

Thank you for the reply!

I was able to narrow-down the biggest issue: it is the quality of the I-frames. Is there a different preset in terms of Quantization between P and I frames?
Presetting the qp-range resolves the issue (sth. like qp-range=20,40:20,400:20,40) but then the bandwith overshoots.

Is there a way to increase the quality of I-frames while still letting the bitrate-settings, profile etc. take control of the bitrate consumed?