Cisco, Intel and Microsoft Accelerate the Transition from SDI to IP with an Open Source Toolkit for Media Software Vendors
Written by Peter Bosch & Andre Surcouf
Live media production facilities primarily use serial digital interface (SDI) for interconnections between media applications, media appliances and other bespoke media equipment. The transition from SDI to IP aids in replacing traditional SDI cables with Ethernet networking and necessitates media software vendors to invest in Ethernet networking for media. Cisco’s virtual media interface (vMI) software toolkit – open sourced as “Herisson” – aids media software vendors wishing to make this transition. Jointly with Intel and Microsoft, Cisco is making available a highly optimized software networking kit to support media flows with Ethernet networks, specifically for the Windows operating system, the operating system of choice for many media software vendors.
Herisson is a software package developed to help professional media independent software vendors (ISVs) transition from their existing serial digital interface (SDI)-based workflows to IP/SMPTE-based workflows. This transition is progressing as IP/SMPTE-based over Ethernet provides more malleable networking technology, spans larger distances more easily, can be encrypted, is easier to manage relative to SDI, synchronizes more easily with PTP synchronization and especially with UHD/HDR/HFR does not require a bundle of SDI cables. vMI looks like a (virtualized) SDI card towards the existing professional media appliance or application software stacks, while interfacing with an Ethernet-based infrastructure to send or receive SMPTE-formatted and IP-based media streams. The prime benefit of vMI is that it enables ISVs to transition from the legacy SDI workflows and hardware to Ethernet/IP-based workflows by incorporating the open-sourced “vMI device driver”, where vMI takes care of efficiently and effectively moving media streams in and out of the ISV media applications, and, if necessary, be used for integrating SDI-card level signal operations.
The main challenge for carrying SMPTE- and IP-based audio and video in ISV appliances and applications, are the data rates involved. A simple HD-based video stream easily consumes 1.5Gb/s, while a single HDR/HFR 4K stream can easily use up to 12Gb/s. While today’s SDI devices and device drivers are highly optimized to support such data rates, supporting such data rates on today’s operating systems is a challenge: such data rates easily exceed the capacity of today’s operating system IP stacks generally and specifically for the Windows server operating system, the operating system of choice for many of the ISV applications.
To make certain vMI stacks up against existing SDI workflows, it is important that vMI’s capacity is at least as good as or better than offered through traditional SDI cards. An SDI card today usually can carry up to 12 coaxial input and/or output signals, and when one transitions from SDI to vMI, using vMI should not impact and only improve the capacity of ISV applications. Yet today’s IP stacks can, at best, support a handful of HD coded SMPTE streams. To realize capacity with vMI akin to traditional SDI cards, vMI needs an efficient path to the Ethernet NICs.
The Linux Foundation Data Plane Development Kit (DPDK) enables efficient access to underlying Ethernet NICs from application software. With DPDK, the Ethernet ring buffers are made available to the application software, thereby bypassing the operating system IP stack, and enabling Ethernet processing at line rate from the application software. To make certain that in a virtualized environment the application software can access the Ethernet NIC’s hardware, rings and ring buffers, a technique called PCI-passthrough enables the Ethernet NIC to be made available to application software and its memory buffers to be accessible both by the application software and Ethernet NIC. Separately, Cisco has shown that by using DPDK functionality, an Xeon-based rack server hosting a packet forwarder can forward up to 1Tb/s worth of Ethernet frames.
When DPDK, PCI-passthrough and vMI jointly are applied to ISV applications, ISV-based media applications can send and receive SMPTE-based audio and video at scale. We anticipate a single processor core can manage a 40Gb/s Ethernet interface and process all audio and video streams carried over such an Ethernet. Here, vMI addresses segmentation and re-assembly of audio buffers and video frames, while operating the Ethernet NIC by way of DPDK and PCI-passthrough.
Easy integration between legacy SDI appliances and SMPTE-based (virtualized) applications can be realized by the “vMI pacer” application. This “pacer” generates SMPTE media streams with the appropriate strict timing required for SMPTE 2022-6/-7 and 2110 and is used for interfacing with existing (hardware) SMPTE/SDI appliances. Signal quality monitoring of SMPTE signals in a virtualized environment are realized with the “vMI probe”; a tool that generates telemetry from SMPTE multicast streams and visualizes this with today’s web-based graphing tools.
DPDK, PCI-passthrough and vMI tool set are generally available under the Linux operating system. vMI is available for Linux and the Windows operating system.
The key innovation realized jointly between Microsoft, Intel and Cisco is that an integrated DPDK, PCI-passthrough and vMI library is made available for the Windows operating system. Most professional media appliances use the Windows operating system and thus, by making available an integrated vMI, DPDK and PCI-passthrough on Windows, the capabilities of vMI are extended to all Windows-based ISV appliances and (virtualized) applications. This means that ISVs can incorporate the vMI + DPDK + PCI-passthrough package into their appliance or application and reap the benefits of IP-based workflows at scale and easily convert their appliance or application to an IP-based workflow.
Cisco, Microsoft and Intel are making the vMI/DPDK/PCI-passthrough package available for appliances, application and virtualized deployments. All functionality is open sourced and available on GitHub.