Simultaneous Ethernet Camera Streaming Solution

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Simultaneous Ethernet Camera Streaming Solution

143件の閲覧回数
Wobaffet
Senior Contributor I

We are developing a custom i.MX8MP-based board for an automotive camera system. We have a working single-camera H.264 RTP streaming pipeline using the VPU hardware decoder on our 5.15.71 NXP Yocto BSP. We are now planning to scale to 4 simultaneous camera streams via an Ethernet switch.  The switch will aggregate 4x 100BASE-T1 camera ports and connect to the i.MX8MP EQOS MAC via a gigabit RGMII uplink, with each camera isolated on its own VLAN.

Our display is 1280x800. For 4-stream simultaneous view each stream only needs to fill a quarter of the display (~640x400 or lower @30 fps), so we can scale camera resolution down as needed.

1. Is there an NXP i.MX8MP reference design or application note covering multi-channel video decode that we can use as a starting point?

2. Can the H.264 VPU decoder handle multiple independent instances from separate sources, or is a pre-decode composition step required to reduce the number of processes and context switches? If composition is required, what is the recommended approach on i.MX8MP?

3. What is the overall recommended software architecture for this use case from NXP's perspective?

Our future application is surround view, so scalability and low latency are key requirements.

Thanks!

0 件の賞賛
返信
3 返答(返信)

13件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @Wobaffet 

The i.MX8MP can serve as a candidate platform for this 4-channel Ethernet H.264 camera quad-view application; however, only the i.MX8QM and i.MX95 have reference designs for surround view.

 

The recommended architecture is for the four RTP/H.264 streams to enter separate GStreamer pipelines, be decoded individually by VPU hardware decoders, and then undergo hardware-assisted scaling and composition after decoding, with the output displayed on a 1280×800 display. It is not recommended to attempt composition before H.264 decoding, as separate H.264 streams cannot be directly composited into a single display frame in the compressed domain unless decoding and re-encoding have already been completed at the upstream switch or camera.

 

For a display requirement of 4 streams at approximately 640×400@30fps, a rough estimate based on pixel rate indicates that the load is significantly lower than that of 1080p60 decoding, so this approach is reasonable. However, whether this ultimately meets the low-latency and stability requirements for surround view will require system-level verification, taking into account actual camera bitrate, profile, GOP, RTP jitter, DDR bandwidth, the GStreamer zero-copy path, and the composition method.


Best Regards,
Zhiming

0 件の賞賛
返信

6件の閲覧回数
Wobaffet
Senior Contributor I

Hello,

Thank you for the answer!

As a follow up, 

1. We are planning to run 4 independent GStreamer pipelines simultaneously, each decoding its own H.264 stream using the VPU hardware. We want to confirm that the VPU driver in the 5.15.71 BSP supports 4 truly concurrent decode instances. Is there any known configuration or limitation in this BSP that would prevent all four pipelines from decoding in parallel, or is a scheduling method required? If so, are any examples available?

2. Our setup has an Ethernet switch connecting 4 cameras to the i.MX8MP via a single RGMII uplink, with each camera on its own VLAN. On the Linux side we plan to create VLAN subinterfaces on the EQOS port and have each GStreamer pipeline receive UDP/RTP from its own subinterface. Two questions on this: Does the EQOS driver in the 5.15.71 BSP support 802.1Q VLAN tagged frames correctly out of the box, or is there any additional configuration needed? And are there any known receive-path tuning recommendations for running 4 simultaneous UDP streams on this interface in this BSP?

Thanks!

 

 

0 件の賞賛
返信

25件の閲覧回数
Wobaffet
Senior Contributor I

reminder

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2381988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88%E3%82%AB%E3%83%A1%E3%83%A9%E5%90%8C%E6%99%82%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%BD%93%E7%A4%BE%E3%81%AF%E3%80%81%E8%BB%8A%E8%BC%89%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%90%91%E3%81%91%E3%81%AB%E3%80%81i.MX8MP%E3%82%92%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%97%E3%81%9F%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E5%9F%BA%E6%9D%BF%E3%82%92%E9%96%8B%E7%99%BA%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E5%BD%93%E7%A4%BE%E3%81%A7%E3%81%AF%E3%80%81NXP%20Yocto%20BSP%205.15.71%E4%B8%8A%E3%81%A7VPU%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%87%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E3%80%81%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%82%AB%E3%83%A1%E3%83%A9H.264%20RTP%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%8C%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E7%8F%BE%E5%9C%A8%E3%80%81%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A64%E5%8F%B0%E3%81%AE%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AE%E6%98%A0%E5%83%8F%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%82%92%E5%90%8C%E6%99%82%E3%81%AB%E5%8F%97%E4%BF%A1%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E6%8B%A1%E5%BC%B5%E3%81%99%E3%82%8B%E8%A8%88%E7%94%BB%E3%82%92%E7%AB%8B%E3%81%A6%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%AF4%E3%81%A4%E3%81%AE100BASE-T1%E3%82%AB%E3%83%A1%E3%83%A9%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E9%9B%86%E7%B4%84%E3%81%97%E3%80%81%E3%82%AE%E3%82%AC%E3%83%93%E3%83%83%E3%83%88RGMII%E3%82%A2%E3%83%83%E3%83%97%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6i.MX8MP%20EQOS%20MAC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E5%90%84%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AF%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%E7%8B%AC%E8%87%AA%E3%81%AEVLAN%E3%81%AB%E5%88%86%E9%9B%A2%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%BD%93%E7%A4%BE%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%81%AE%E8%A7%A3%E5%83%8F%E5%BA%A6%E3%81%AF1280%C3%97800%E3%81%A7%E3%81%99%E3%80%824%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E5%90%8C%E6%99%82%E8%A1%A8%E7%A4%BA%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E5%90%84%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%81%AF%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%81%AE4%E5%88%86%E3%81%AE1%EF%BC%88%E7%B4%84640x400%E4%BB%A5%E4%B8%8B%E3%80%8130fps%EF%BC%89%E3%82%92%E5%8D%A0%E3%82%81%E3%82%8B%E3%81%A0%E3%81%91%E3%81%A7%E3%82%88%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81%E5%BF%85%E8%A6%81%E3%81%AB%E5%BF%9C%E3%81%98%E3%81%A6%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AE%E8%A7%A3%E5%83%8F%E5%BA%A6%E3%82%92%E4%B8%8B%E3%81%92%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%201.NXP%20i.MX8MP%E3%81%AE%E3%83%9E%E3%83%AB%E3%83%81%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%83%93%E3%83%87%E3%82%AA%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%BB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%84%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%8E%E3%83%BC%E3%83%88%E3%81%A7%E3%80%81%E5%8F%82%E8%80%83%E3%81%AB%E3%81%AA%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%202.%20H.264%20VPU%E3%83%87%E3%82%B3%E3%83%BC%E3%83%80%E3%81%AF%E3%80%81%E8%A4%87%E6%95%B0%E3%81%AE%E7%8B%AC%E7%AB%8B%E3%81%97%E3%81%9F%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E5%88%A5%E3%80%85%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E5%87%A6%E7%90%86%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%80%81%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E6%95%B0%E3%81%A8%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E6%95%B0%E3%82%92%E6%B8%9B%E3%82%89%E3%81%99%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E5%89%8D%E3%81%AE%E5%90%88%E6%88%90%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%E5%90%88%E6%88%90%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AA%E5%A0%B4%E5%90%88%E3%80%81i.MX8MP%E3%81%A7%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%8C%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3E3.%20NXP%E3%81%AE%E8%A6%96%E7%82%B9%E3%81%8B%E3%82%89%E8%A6%8B%E3%81%A6%E3%80%81%E3%81%93%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%82%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%B0%86%E6%9D%A5%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%82%B5%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E6%8B%A1%E5%BC%B5%E6%80%A7%E3%81%A8%E4%BD%8E%E3%83%AC%E3%82%A4%E3%83%86%E3%83%B3%E3%82%B7%E3%81%8C%E9%87%8D%E8%A6%81%E3%81%AA%E8%A6%81%E4%BB%B6%E3%81%A8%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E