GMSL Virtual Channel ID
|
Problems running the pipelines shown on this page? Please see our GStreamer Debugging guide for help. |
Introduction to GMSL Virtual Channel ID
The Maxim Gigabit Multimedia Serial Link (GMSL) SERDES technology provides high bandwidth and rich point-to-point interconnections between two endpoints over a single cable, which can be up to 15 meters long. SERDES (serializer / deserializer) technology is widely used for sensors and network communication. SERDES supports multiple protocols over the same link. Automotive industry applications rely heavily on this technology due to its flexibility and performance. This technology is enabling next-gen multimedia applications. For example (and not limited to):
- Advanced Driver Assistance Systems (ADAS)
- Smart agriculture
- Infotainment systems
Virtual channel ID
One approach to enable multiple camera capture using a SERDES architecture is to use virtual channels which are supported by the MIPI CSI-2 and CSI-3 specifications. Specifically for MIPI CSI-2 a deserializer can effectively decode up to four virtual channel IDs (see Figure 1). One deserializer that supports this feature is the MAX9286. In order for this deserializer to be able to combine all incoming video streams (up to four) and output them through CSI-2 (using virtual channel identified packets) frame sync locked status has to be achieved.
Sensor synchronization
For these systems based on GMSL compliant ICs, image sensor synchronization is usually a challenge. The SERDES chips offer a control channel which can be used to send a frame sync pulse to the cameras. This frame sync pulse can be generated using a reference signal from the host processor or internally in the deserializer (which may include various mode of usage).
GStreamer examples
GMSL MAX96705 MAX9286 - OV10635
The following pipelines were tested using a Jetson AGX Xavier and Jetson TX2:
- Multiple capture (1280x800@30 fps)
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1' ! queue ! mix.sink_0 v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1' ! queue ! mix.sink_1 videomixer name=mix background=1 sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=1280 sink_1::ypos=0 ! queue ! xvimagesink sync=false
- Capture and display (1280x800@30 fps)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1" ! nvvidconv ! "video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)RGBA" ! nvoverlaysink sync=false
- Recording H.264 (1280x800@30 fps)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1" ! nvvidconv ! omxh264enc ! mpegtsmux ! filesink location=gstreamer_test.ts -e
Video demonstration
The video below was taken using a Jetson AGX Xavier running the following the following pipeline:
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1' ! queue ! mix.sink_0 v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)800, framerate=(fraction)30/1' ! queue ! mix.sink_1 videomixer name=mix background=1 sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=1280 sink_1::ypos=0 ! queue ! xvimagesink sync=false
Results:
Format | Mean ARM Load (%) | FPS (Hz) |
---|---|---|
1280x800@30 | 21.53 | 30.07 |
Glass to glass latency
Mean glass to glass latency: 122 ms
Linux drivers
Ridgerun has developed Linux drivers for GMSL based systems, this drivers now have support for MIPI CSI-2 virtual channel. If you are interested in our GMSL SERDES Linux Drivers, please visit the following page: MAX96705 MAX9286 GMSL SERDES Linux Drivers or feel free to contact us.
For direct inquiries, please refer to the contact information available on our Contact page. Alternatively, you may complete and submit the form provided at the same link. We will respond to your request at our earliest opportunity.
Links to RidgeRun Resources and RidgeRun Artificial Intelligence Solutions can be found in the footer below.