HD-SDI or HDMI Video Capture into Jetson TX2

We want to use the TX for processing video streams from a Sony FCB-EV7520 block camera. The video is coming from an HD-SDI or HDMI board. How can get I this stream into the Jetson TX2?

Is there any list or support document regarding what PCIe capture board can be used. I found the “CM313B Mini PCI-e HW Encode Frame Grabber with 3G-SDI” from AverMedia, and also the “Pro Capture Mini HDMI” from Magewell, but no answer yet if they can be used on the TX2 (64-bit Ubuntu 16.04 Kernel 4.4).

Also looking at the block schematic for the TX2 SoC module here: Jetson TX2 - eLinux.org it looks like the PCIE bus it not directly connected to the host buffer, but rather goes through the “system fabric”, not sure if that will have any (negative) impact on performance?

So; it the “only” way to get video into to the TX2 trough the MIPI/CSI interface?

Thanks for any input and advice!

There are people using both USB and gigabit ethernet cameras (in addition to MIPI/CSI). I don’t know one way or the other about PCIe capture cards, but typically what you’d want to guarantee before picking up a PCIe device (including cameras) is if the ARMv8/arm64/aarch64 drivers are available for that device. Sometimes drivers are available by default in the kernel (though it might require a recompile to add the driver), and at other times the manufacturer provides a binary-only format of the driver. This latter case won’t work on ARM. Sometimes a driver for x86_64 PC will need changes to work on arm64 (for example, if x86 assembler is used it won’t work on arm64).

Thanks!

Yes, we will keep looking for a PCIe interface solution. The raw bitstream for 1080p60 advocates either av 3G/HD-SDI or HDMI (or the MIPI/CSI, but the CSI is hard to wire, we need to go a few meters from the FCB-EV7520 to the TX2, and SDI is really preferred). Both of the mentioned ones (ref. above) indicate to support ARM, but not sure, waiting for confirmation. I am also a bit concerned regarding the internal device structure on the TX2 module, here: Jetson TX2 - eLinux.org, it could look like that the data-flow/pipeline for the MIPI/CSI interface is more streamlined into the Pascal core.

Another part would be to convert the native LVDS signal from the FCB-EV7520 block camera (the native output seems like FlatLink), into MIPI/CSI. That would imply some hardware/FPGA development and most likely a driver, so we want to avoid that.

Thanks again for your inputs.

Do beware that “ARM” drivers used to only mean 32-bit arm/armhf. ARMv8/arm64/aarch64 is a separate architecture, so when it says “ARM” you need to know specifically if this is 32-bit or 64-bit support. ARMv8 has a compatibility mode for 32-bit arm/armhf/NEON (which is ARMv7), but normally the Jetson is not set up to use this (you’d have to install 32-bit as a foreign architecture…similar to a 64-bit PC normally running x86_64, but having i386 or i686 compatibility for 32-bit). Anything running in 32-bit mode would be terribly slow in comparison to 64-bit native mode.

The comment regarding the ARM architecture is sure helpful and valid, but I am still looking for answers to the main question here; how to get 3G/HD-SDI or HDM video into the TX2.

So far I did not get a clear answer from any vendor if their card supports the TX2 (I have contacted both AverMedia and Magewell). Is there any known solution for this?

Also, its is still unclear to me if the PCIe “bus path” into the CUDA cores will be less efficient compared to the MIUPI/CSI interface. I guess only NVIDIA would know the answer to this?

Thanks for any advice or comment!

Also interested on this. I think it is just a matter of time that some vendor develops the fpga based board for interfacing hdmi or hd-sdi with the tx1 and tx2 csi ports and drivers on the jetson part.

This company makes exactly this but for raspberry pi

it takes the hdmi or composite video stream and mimics the rpi camera. The product works really nice by the way. I will make them know about this thread, maybe they could be interested in develop such a product for nvidia jetson series.

I found that Lattice have a solution for converting LVDS to CSI-2: http://www.latticesemi.com/en/Products/DesignSoftwareAndIP/IntellectualProperty/ReferenceDesigns/ReferenceDesign04/SonySubLVDStoMIPICSI2SensorBridge.aspx

but they only provide a fpga reference design. In addition,no specific driver for jetson might be a problem either.

There is a lot there I can’t answer. One comment though…there is no PCIe bus path to CUDA cores on a Jetson. The GPU is wired directly into the memory controller (system memory is used rather than dedicated GPU memory). Any of the support tools used on a desktop system which specifically use a PCI interface will not work on a Jetson.

We have developed our own PCIe DMA core and the first application we had is a HD/3G SDI i/o interface. The TX2 can support up to 12 Gbit of traffic, so that is 2x6G or 4x3G inputs. If you are interested, please contact me directly on daniel at rozsnyo dot com and we can discuss your project. Currenty we have no hardware, since we have focused on getting raw data from 4K60 sensors, since NVIDIA is doing everything against letting us using their ISP. So we went an independent way (and those bigger sensors are not MIPI based anyway).

I don’t know about HDMI or HD-SDI but AverMedia have working driver for the SD capture card (4-ch on miniPCIe) on TX2. I requested the driver for TX2 and it runs pretty well (i ran it non-stop for a week).

I am interested in Magewell for comparison since they have both HDMI and CVBS in one capture card, it seems that they provided the source code for sdk and driver for download. Do you have any update on this?

Please check out our CHARM-100 at the Vision4ce.com website www.vision4ce.com
This carrier board uses the TX1 or TX2 module and will take in HD-SDI and 3G SDI plus PAL/NTSC using the CSI inputs
It also outputs using MIPI DSI converted into HD-SDI etc

It also has an HD component video input directly compatible with the Sony Block camera modules
You can contact me directly on gordon.cain@vision4ce

1 Like

I am wondering if you found a solution to using a block camera, or if you found a frame grabber that has support other than avermedia.