Nvcsi max_rate not supported quad imx390?

orin nano 4gb R35.1
nvcsi max_rate is 214M,
imx390c sensor pix_clk_hz is 148 500 000 :(2l ane dphy)
pix_clk_hz * 12(pix_bit ) = 1782 000 000
pix_clk_hz * 12(pix_bit ) /2lane = 891 000 000
pix_clk_hz * 12(pix_bit ) /2lane /2(ddr) = 445 500 000
nvcsi_rate (byte) = pix_clk_hz * 12(pix_bit ) /2lane /2(ddr) /8 = 55 687 500

I don’t know if that’s the right calculation.
As above, a 4-way camera requires: 55 687 500 * 4 = 222 750 000
but nvcsi_max_rate is 214M,is nvcsi not supported 4 camera(imx390 raw@12)?
Tested to support 3 cameras 1920108030fps raw@12bit * 3camera

Later changed to 4lane (dphy), is it necessary to configure pix_clk_hz = 148500000/2

Tested 4 cameras video will jam frames

Suppose Jetson Orin support 4 cameras. Any problem for 4 imx390?

use:
nvgstcapture --sensord-id 0~3
hdmi monitor display lag , is orin support quad imx390 display.


nvgstcapture video decoding shows lack of performance, 1 camera is normal, 2 drop frames, nvgstcapture can specify cpu core?

Use:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Or
nvgstcapture --sensor-id=[0-3]

Boost the clocks to try.

sudo jetson_clocks
sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee  /sys/kernel/debug/bpmp/debug/clk/isp/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate



use v4l2 dump data is 30fps*2.
It looks like it’s a single core that can play 30fps, playing multiple cameras running on a single core, top shows 105% cpu usage on a single camera

Either one is 30fps when tested individually, but not at the same time,even with these added configurations.


Currently basically sure is nvgstcapture single core running problem, now we use v4l2 +opencv display can 30fps *3cam(cpu 300%), just cv2.cvtColor(img, cv2.COLOR_BayerRG2RGB) after converting the image green chroma is very dark, not as good as nvgstcapture normal

v4l2 should must have much lower CPU/GPU usage due to didn’t involve ISP pipeline and 3A and lot of software/HW feature.

v4l2-ctl only capture the frame to memory a very simple pipeline.


When trying to turn on the second camera of the test, both fps drop to very low, and can see that a certain cpu core idel that is not fixed is very low

It seems that kernel dynamic_debug=y is causing the problem

1 Like

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