Video capture for streaming - CSI or PCIe?

Hi folks

I’m at the proof of concept stage for a fairly basic product that will need to be able to take a feed from a single 1080p video source via SDI and do basic processing i.e. make available as a stream, save compressed video online, etc. No AI processing or other fancy stuff.

I appreciate the Xavier NX is massive overkill for this but I’m looking at it with one eye on the product roadmap. Otherwise I think the TX2 NX would be ideal for what I want.

That said, I’d like to keep the door open to AI analysis of the video streams in the future.

I’m focusing on SDI to CSI type solutions at the minute because my understanding is that bringing the video in via CSI makes it directly accessible to the CPU internal memory (apologies if I’m mangling that description).

However, going the path of a PCIe based capture card would give me more flexibility and probably a bit more future proofing.

I just wanted to check if the “CSI is better” thing was correct and, if so, are there any particular scenarios where it’s significantly better vs maybe a few percent less CPU utilisation?

Thanks

edited to note I know the Xavier NX is overkill :-)

Maybe below device.

Thanks Shane but it’s no so much a specific device (I have options for both SDI to CSI or PCIe) but rather if there’s any significant advantage to going the CSI route over a PCIe based solution i.e. does bringing the signal in via CSI reduce the processing required significantly.

I appreciate there are a lot of subjective terms in there :-)

I would suggest to use PCIE due to you can follow the v4l2 framework and have much control like CSI have some protect source code.

I had a similar requirement 1080p@25 and using CSI with the TC358743XBG seems to work pretty well on the NX using the v4l2 interface. Just need to convert/write a driver for it, the main drawback is that the max frame rate will be limited to 1080[@30 due to 2 lane CSI. The processing over isn’t significant. The main issue with the PCIe route was finding a card that would match the M2 slot plus converting the drivers to work on the NX depending on it uses interrupts/dma.

Thanks @jas-mx but I’m heading down the PCIe route for now based partly on the advice from @ShaneCCC (thanks for that Shane) and partly on the fact that while I don’t require 4K at the minute it would be nice to have that option in the future and there are 4K PCIe cards available now whereas I’m not seeing any 4K to CSI-2 solutions.

I’m not sure if there are any issues with mentioning specific companies but if you’re looking for M.2 solutions both Magewell (Eco Capture - Ultra Compact & Lower Power Consumption - Magewell) and Yuan (https://www.yuan.com.tw/products/capture/capture_m.2.htm) have products. I’ve no affiliation with either company.

I’m currently testing the Yuan SC540N1 which works fine using the Nvidia stock 18.04 image but I’m having trouble getting it to work with a Yocto Open Embedded build (I’m wayyy out of my depth when it comes to drivers on Linux)

I haven’t tried the Magewell EcoCapture but I’ve been using their USB capture devices as the base for another product for years and couldn’t speak highly enough of them. The kit is rock solid in terms of dependability and their customer service is excellent, they did a bespoke design for me for a MOQ of 100 units. The only reason I’m not immediately using their product is that they don’t have a M.2 card with SDI passthrough.

To be fair Yuan are being helpful with the other card, it’s just slow with one message per day due to time zone differences.

1 Like