EP-4742627-A2 - REALTIME DISTRIBUTION OF GRANULAR DATA STREAMS ON A NETWORK
Abstract
A system and method for an asynchronous media fabric service. The system includes at least one host configured with the asynchronous media fabric service. The asynchronous media fabric service is configured to: create and delete shared memory pools that are used to allow processes running on a single host direct access to grain data; send and receive grains from other hosts; and serve as an API endpoint for asynchronous media fabric function processes to create, delete and obtain references to streams.
Inventors
- LAFFERTY, Martin George
Assignees
- Matrox Graphics Inc.
Dates
- Publication Date
- 20260513
- Application Date
- 20210224
Claims (15)
- A system, including: at least one host, each host being configured with an asynchronous media fabric service, the asynchronous media fabric service being configured to: create and delete shared memory pools that are used to allow processes running on a single host direct access to grain data; send and receive grains from other hosts; and serve as an API endpoint for asynchronous media fabric function processes to create, delete and obtain references to streams.
- The system of claim 1, wherein in each host there is a single AMF Service, which allocates and deletes grain pools in shared memory as required by AMF function processes.
- The system of claim 1, wherein there are multiple grain pools, each with a unique name, on a host.
- The system of claim 3, wherein function processes request references to pools, by name, from the AMF Service.
- The system of claim 3, wherein references to pools held by function processes are pointers to shared memory.
- The system of claim 3, wherein there may be multiple copies of the same pool within the system, but on different hosts.
- The system of claim 3, wherein pool lifetime is controlled by reference-counting.
- The system of claim 1, wherein each host has a clock service to generate ClockTick and ProcessFrame callbacks within each AMF function process.
- The system of claim 8, wherein grains are read from pools and written to pools within callbacks in accordance with an objective of the function process and as defined by a set of control input parameters defined over an interval, supplied by a controlling AMF application.
- The system of claim 8, wherein the clocks on each host are synchronised using a standard time synchronisation protocol.
- The system of claim 1, wherein the AMF service on a host may communicate with AMF Services on other hosts within the system using a message bus.
- The system of claim 11, wherein messages are directed to all hosts (broadcast) or a single host (directed).
- The system of claim 11, wherein if multiple copies of a pool exist, then all those copies are on different hosts.
- The system of claim 11, wherein the AMF service on each system maintains a network of high bandwidth grain transfer links so that each pool has a connection to all other pools within the system having an identical name.
- The system of any one of the above claims, (a) further including at least a second host; or (b) wherein the asynchronous media fabric service is configured to serve as an API endpoint for other software to control asynchronous media fabric function processes; or (c) wherein control inputs to the function processes are defined over an interval rather than by immediate update, preferably wherein the interval being defined uses a same time unit as the media streams upon which the processes act.
Description
1 Field of the Invention The present disclosure relates to improvements in systems and methods designed to distribute granular data streams within a network where there are real time constraints and a need for multiple (redundant) producers of the same stream and multiple consumers of any stream. 2 Background Television was developed before the advent of the digital computer. Historically, in television stations and production facilities, analogue signals were carried between specialised pieces of signal processing equipment in real time through specialised cables and switches. In the late 1990s the widespread adoption of the SDI (Serial Digital Interface) standard meant that analogue signals could be transmitted as digitised streams, but the essential qualities of the analogue system remained unchanged; SDI signals are carried in real-time on dedicated point-to-point connections through a large crosspoint switcher. In the late 2000s, the advent of the high-bandwidth PCle bus in commodity PC hardware meant that it was possible to use generic computers to carry out many of the signal processing functions previously carried out by specialised hardware. This meant that computers could be fitted with SDI interface cards in order to allow asynchronous operations on memory buffers within the computer to process synchronous signals carried in and out of the computer on SDI cables. Switching capacity for SDI signals is expensive and complex to manage compared to much more widely deployed ethernet networks. With the advent of high-bandwidth ethernet (10GB and above) methods were developed to allow the transport uncompressed video in real time over ethernet. This resulted in the SMPTE 2022 and SMPTE 2110 standards, which have seen widespread adoption. Although SMPTE 2022-6 and SMPTE 2110 allow uncompressed media to be transported over ethernet, they impose tight time constraints on the transmission and reception of the individual ethernet packets that make up a data stream which simulates the timing characteristics of SDI. This is in contrast to the more typical asynchronous data transmission within a generic ethernet environment, where data that need to be transmitted between hosts is packetized according to the needs of the application and transmitted by the network as quickly as possible to the host that requires it, using protocols such as UDP or TCP. The SMPTE 2022-6 and SMPTE 2110 protocols are well suited for interoperability with SDI, but not appropriate for use in the situation where the processing functions presently carried out asynchronously within a commodity computer need to be executed by multiple hosts in a generic data centre or cloud computing environment. It will be clearly understood that, if a prior art publication is referred to herein, this reference does not constitute an admission that the publication forms part of the common general knowledge in the art. 3 Definitions Granular stream As used herein, a "granular stream" is a body of data which is divided up into a number of parts (called "grains") which are ordered in an evenly-spaced temporal sequence. An example would be a video stream in which each frame of video is a grain and it must be originated or rendered at a fixed framerate.Synchronous stream A synchronous stream is one that is produced, consumed or processed at a constant rate (in grains/s) in real time as required by a producer, consumer or real-time transmission format such as SDI, S2022-6 or S2110.Asynchronous stream An asynchronous stream is one that is produced, consumed or processed at an average rate (in grains/s) that is constant over a relatively long period of time, but where individual grains are processed, in the correct sequence, at any time providing the external real-time requirements of the system are respected. 4 Summary In one preferred aspect, the present disclosure describes a system including at least one host, each host being configured with an asynchronous media fabric service. The asynchronous media fabric service is configured to: create and delete shared memory pools that are used to allow processes running on the same host direct access to grain data; send and receive grains from other hosts as needed; and serve as an API endpoint for asynchronous media fabric function processes to create, delete and obtain references these memory pools. A system and methodology is suggested that is suitable for running media processing applications in such environments. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. In the present specification and claims, the word "comprising" and its derivatives including "comprises" and "comprise" include each of the stated integers, but does not exclude the inclusion of one or more further integers. It will be appreciated that reference herein to "preferred" or "preferably" is intended a