ZHCADF0 November   2023 AM62A3-Q1 , AM62A7-Q1 , AM62P-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2AM62A 处理器
  6. 3AM62A 视频处理单元 (VPU) 功能
  7. 4AM62A JPEG 编码能力
    1. 4.1 开源 GStreamer 概述
    2. 4.2 TI 提供的用于多媒体的 V4L2 驱动程序
    3. 4.3 硬件加速 GStreamer 插件
  8. 5软件驱动器架构
  9. 6性能测量
  10. 7多媒体用例
    1. 7.1 智能 AI 盒
    2. 7.2 安全监控
  11. 8总结
  12. 9参考资料

智能 AI 盒

使用智能 AI 盒向零售店、交通道路、工厂和楼宇中的现有非分析型摄像头增加智能功能,是一种具有成本效益的方法。此类系统接收来自多个摄像头的实时视频流,对其进行解码并在边缘进行智能视频分析,从而减轻了将大型视频流传输回云进行分析的负担。AI 盒的应用包括具有异常或事件检测功能的安全监控系统、用于验证工人在进入危险区域之前是否穿戴了护目镜、安全背心和安全帽等个人防护装备 (PPE) 的工作场所安全系统。

图 7-1 展示了系统的数据流,其中有两个摄像头输入通过以太网进入,需要拆包并解码。通过深度学习进行的智能分析在解码的图像流上运行。TI 提供了一个模型分析器工具 [7],AI 分析设计人员可以根据精度、推理时间和 DDR 带宽消耗选择所需的深度学习模型。表 7-1 中为 SSDLite-MobDet-EdgeTPU-coco 网络提供了一个此类利用的示例。

检测到的目标对象会在其周围绘制边界框,然后重新对图像进行编码。这种类型的设置用于为没有连接分析处理器的传统 FHD 摄像机提供分析功能。

表 7-2 提供系统工程师可以构建的最终资源利用率表。通过 [8] 中提供的 PET 工具估算功耗。

GUID-20231120-SS0I-BLGR-JHF5-T8Q12RXG0NXM-low.svg图 7-1 智能 AI 盒
表 7-1 AM62A 在 850MHz 下使用 C7/MMA 时的深度学习性能示例
型号 分辨率 目标 FPS

MAP 精度

使用 CoCo 数据集

延迟

(ms)

深度学习

利用率

DDR 带宽

利用率

SSDLite-MobDet-

EdgeTPU-coco

320x320 30 29.7 8.35 25% 543MB/s
表 7-2 智能 AI 盒应用的资源利用率表示例
主 IP 负载
解码器+ 编码器 4 x2MP@ 30fps = 240MP/s
VPAC3L (ISP) 4x2MP@ 30fps = 240MP/s
ARM 加载 @ 1.25GHz 11.4%
深度学习 C7/MMA @850MHz 50%
DDR 带宽 2138MB/s(2522- 384(显示))
使用 PET 时的功耗估计值 (85c) 约为 1.8W

为了测量 DDR 带宽,构建了一个基于 gstreamer 的流水线,用于模拟图 7-1 中的数据流。在服务器端将 4 个已编码的数据流放到网络上,客户端用于对这些数据流进行解码,查看数据流并重新编码

  • 服务器端 Gstreamer 流水线:
    gst-launch-1.0 -v v4l2src device=/dev/video-rpi-cam0 io-mode=dmabuf-import ! \
    video/x-bayer, width=1920, height=1080, framerate=60/1, format=rggb10 ! \
    tiovxisp sink_0::device=/dev/v4l-rpi-subdev0 sensor-name="SENSOR_SONY_IMX219_RPI" dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_10b.bin sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_10b.bin format-msb=9 ! \
    video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! \
    tiovxmultiscaler name=msc \
    msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink host=192.168.1.134 port=6001  \
    msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink host=192.168.1.134 port=6002  \
    msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink host=192.168.1.134 port=6003  \
    msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink host=192.168.1.134 port=6004
  • 客户端 Gstreamer 流水线:
    gst-launch-1.0 -v udpsrc port=6001 ! 'application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \
    rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! tiovxmultiscaler name=msc \
    msc. ! queue ! video/x-raw, width=640, height=480, format=NV12 ! kmssink driver-name=tidss \
    msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080 ! v4l2h264enc output-io-mode=5 extra-controls="controls,h264_i_frame_period=60,video_gop_size=60"  ! rtph264pay ! udpsink host=128.247.75.190 port=6001 &
    gst-launch-1.0 -v udpsrc port=6002 ! 'application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \
    rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output-io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60"   ! rtph264pay ! udpsink host=128.247.75.190 port=6002 & 
    gst-launch-1.0 -v udpsrc port=6003 ! 'application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \
    rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output-io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60"  ! rtph264pay ! udpsink host=128.247.75.190 port=6003 &
    gst-launch-1.0 -v udpsrc port=6004 ! 'application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \
    rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output-io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60"   ! rtph264pay ! udpsink host=128.247.75.190 port=6004 &