ZHCADU3A February   2024  – November 2024 AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1 , DS90UB953A-Q1 , DS90UB960-Q1 , TDES960 , TSER953

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2将多个 CSI-2 摄像头连接到 SoC
    1. 2.1 使用 SerDes 的 CSI-2 聚合器
    2. 2.2 不使用 SerDes 的 CSI-2 聚合器
    3. 2.3 支持的摄像头数据吞吐量
  6. 3在软件中启用多个摄像头
    1. 3.1 摄像头子系统软件架构
    2. 3.2 图像流水线软件架构
  7. 4参考设计
    1. 4.1 支持的摄像头
    2. 4.2 设置四个 IMX219 摄像头
    3. 4.3 配置摄像头和 CSI-2 RX 接口
    4. 4.4 从四个摄像头进行流式传输
      1. 4.4.1 将摄像头数据流化传输到显示器
      2. 4.4.2 通过以太网流式传输摄像头数据
      3. 4.4.3 将摄像头数据存储到文件
    5. 4.5 多摄像头深度学习推理
      1. 4.5.1 模型选择
      2. 4.5.2 流水线设置
  8. 5性能分析
  9. 6结语
  10. 7参考资料
  11. 8修订历史记录

通过以太网流式传输摄像头数据

摄像头数据还可以通过以太网流式传输,而不是流式传输到连接到同一 SoC 的显示器。接收端可以是另一个 AM62A/AM62P 处理器,也可以是主机 PC。以下是通过以太网流式传输摄像头数据的示例(为简单起见,示例中使用了两个摄像头)(请注意流水线中使用的编码器插件):

gst-launch-1.0 \
v4l2src device=/dev/video-imx219-cam0 io-mode=5 ! video/x-bayer,width=1920,height=1080,framerate=30/1,format=bggr ! queue leaky=2 ! \
tiovxisp sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/dcc_viss_1920x1080.bin \
sink_0::dcc-2a-file=/opt/imaging/imx219/dcc_2a_1920x1080.bin sink_0::device=/dev/v4l-imx219-subdev0 ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink port=5000 host=<receiving IP address> \
v4l2src device=/dev/video-imx219-cam1 io-mode=5 ! video/x-bayer,width=1920,height=1080,framerate=30/1,format=bggr ! queue leaky=2 ! \
tiovxisp sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/dcc_viss_1920x1080.bin \
sink_0::dcc-2a-file=/opt/imaging/imx219/dcc_2a_1920x1080.bin sink_0::device=/dev/v4l-imx219-subdev1 ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink port=5001 host=<receiving IP address>

以下是接收摄像头数据并流式传输到另一 AM62A/AM62P 处理器上的显示器的示例:

gst-launch-1.0 -v \
udpsrc port=5000 ! 'application/x-rtp, encoding-name=H264, payload=96' ! rtph264depay ! avdec_h264 ! queue ! videoconvert ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080 ! queue ! mosaic.sink_0 \
udpsrc port=5001 ! 'application/x-rtp, encoding-name=H264, payload=96' ! rtph264depay ! avdec_h264 ! queue ! videoconvert ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080 ! queue ! mosaic.sink_1 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<960>" sink_0::heights="<540>" \
sink_1::startx="<960>" sink_1::starty="<540>" sink_1::widths="<960>" sink_1::heights="<540>" ! \
queue ! kmssink driver-name=tidss sync=false