Hi,
I am experimenting with H265 lossless encoding on Jetson Orin NX 16GB.
Depending on the data to be encoded, I observe large variations in encoding speed. These are the commands to reproduce this observation:
Please note, input file is stored in RAM so that disk is not to be considered.
Test 1:
- create a YUV file where large portion of video is static:
gst-launch-1.0 videotestsrc num-buffers=100 ! 'video/x-raw, width=(int)4384, height=(int)2192, format=(string)Y444' ! filesink location=/dev/shm/static_y444_4384_2192.yuv
- then encode with jetson_multimedia_api sample 01:
./video_encode /dev/shm/static_y444_4384_2192.yuv 4384 2192 H265 ~/Videos/static.h265 -p main --elossless -cf 3 --max-perf -hpt 1 --stats
The resulting FPS is: 47.18 FPS (best of 5 runs)
Test 2:
- create a YUV file filled with noise:
gst-launch-1.0 videotestsrc pattern=snow num-buffers=100 ! 'video/x-raw, width=(int)4384, height=(int)2192, format=(string)Y444' ! filesink location=/dev/shm/snow_y444_4384_2192.yuv
- then encode with jetson_multimedia_api sample 01:
./video_encode /dev/shm/snow_y444_4384_2192.yuv 4384 2192 H265 ~/Videos/snow.h265 -p main --elossless -cf 3 --max-perf -hpt 1 --stats
The resulting FPS is: 11.73 FPS (best of 5 runs)
Could you please explain why there is such a large gap between this 2 extreme cases in encoding speed?
If you have any tip for faster lossless encoding, I am open to suggestions.