The encoder cannot run at full power

1.When using JETSON_MULTIMEDIA_API, setMaxPerfMode(1) has been set during encoding, but it has not taken effect. The encoding power fluctuates whether it is configured or not.The power supply has been set to MAXN mode.

2.How can we make the encoder always run at maximum power to reduce encoding latency?

3.Why is the delay when encoding a severely distorted image significantly higher than that of an undistorted image? For the same 1080p image, the delay when encoding an undistorted image is about 15ms, while the delay when encoding a fisheye image is about 110ms.

Hi,
Please try Jetpack 6.1 and run the sample:

/usr/src/jetson_multimedia_api/samples/01_video_encode/

After enabling the option:

        --max-perf            Enable maximum Performance

We can see NVENC be fixed at maximum clock. You may run sudo tegrastats to check.

Hello, I am using JP6 15_multivideo_encode and have configured setMaxPerfMode(1). The results are shown in the figure.


Hi,
Probably you don’t set it in correct place. Does it work if you run 01_video_encode?

I set setMaxPerfMode after setCapturePlaneFormat and setOutputPlaneFormat. Does it depend on other settings? I will try it with 01_video_encode later.

I use 01_video_encode to run the log as follows:


./video_encode input.yuv 3840 2160 H265 output.h265 --max-perf -br 10000000 -fps 30 1 --stats --dbg-level 3

But this seems to be software encoding, the encoder is not started.

Hi,
Looks like encoding is running. You can run sudo tegrastats and check if NVENC is running.

This is the tegrastats log. Is it because there is no frame rate limit for reading the file input image that makes the encoder run at 99%? The difference from 01_video_encode is that my project feeds images at 30fps.

I may not have expressed my meaning clearly. When I input images to the encoder at 30fps, the encoder power is fluctuating and the encoding delay is not at the lowest state. When I input images to the encoder at 10fps, the encoding delay is longer than that at 30fps.

Is it possible to run the encoder at full power so that the latency of image encoding can be at a stable minimum regardless of the input?

Hi,
NVENC is up and running at maximum clock. Setting --max-perf should take effect. You may run the script to enable most hardware engines at maximum performance:

VPI - Vision Programming Interface: Performance Benchmark

You can enable the option for profiling latency:

        --stats               Report profiling data for the app

I ran the script and observed that VIC and EMC were running at maximum frequency.

01_video_encode has a --stats option, but when I checked ./multivideo_encode --help, I found that there are no --stats and --max-perf options.

Hi,
By default the options are not in 15_multivideo_encode sample. You would need to refer to 01_video_encode and port the code to 15 sample.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.