Simultaneous Ethernet Camera Streaming Solution

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Simultaneous Ethernet Camera Streaming Solution

142 Views
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 Kudos
Reply
3 Replies

12 Views
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 Kudos
Reply

5 Views
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 Kudos
Reply

24 Views
Wobaffet
Senior Contributor I

reminder

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2381988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ESimultaneous%20Ethernet%20Camera%20Streaming%20Solution%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EWe%20are%20developing%20a%20custom%20i.MX8MP-based%20board%20for%20an%20automotive%20camera%20system.%20We%20have%20a%20working%20single-camera%20H.264%20RTP%20streaming%20pipeline%20using%20the%20VPU%20hardware%20decoder%20on%20our%205.15.71%20NXP%20Yocto%20BSP.%20We%20are%20now%20planning%20to%20scale%20to%204%20simultaneous%20camera%20streams%20via%20an%20Ethernet%20switch.%26nbsp%3B%20The%20switch%20will%20aggregate%204x%20100BASE-T1%20camera%20ports%20and%20connect%20to%20the%20i.MX8MP%20EQOS%20MAC%20via%20a%20gigabit%20RGMII%20uplink%2C%20with%20each%20camera%20isolated%20on%20its%20own%20VLAN.%3C%2FP%3E%3CP%3EOur%20display%20is%201280x800.%20For%204-stream%20simultaneous%20view%20each%20stream%20only%20needs%20to%20fill%20a%20quarter%20of%20the%20display%20(~640x400%20or%20lower%20%4030%20fps)%2C%20so%20we%20can%20scale%20camera%20resolution%20down%20as%20needed.%3CBR%20%2F%3E%3CBR%20%2F%3E1.%20Is%20there%20an%20NXP%20i.MX8MP%20reference%20design%20or%20application%20note%20covering%20multi-channel%20video%20decode%20that%20we%20can%20use%20as%20a%20starting%20point%3F%3CBR%20%2F%3E%3CBR%20%2F%3E2.%20Can%20the%20H.264%20VPU%20decoder%20handle%20multiple%20independent%20instances%20from%20separate%20sources%2C%20or%20is%20a%20pre-decode%20composition%20step%20required%20to%20reduce%20the%20number%20of%20processes%20and%20context%20switches%3F%20If%20composition%20is%20required%2C%20what%20is%20the%20recommended%20approach%20on%20i.MX8MP%3F%3C%2FP%3E%3CP%3E3.%20What%20is%20the%20overall%20recommended%20software%20architecture%20for%20this%20use%20case%20from%20NXP's%20perspective%3F%3CBR%20%2F%3E%3CBR%20%2F%3EOur%20future%20application%20is%20surround%20view%2C%20so%20scalability%20and%20low%20latency%20are%20key%20requirements.%3CBR%20%2F%3E%3CBR%20%2F%3EThanks!%3C%2FP%3E%3C%2FLINGO-BODY%3E