Scalable multiviewer system and method for distributing data

11599324 · 2023-03-07

Assignee

Inventors

Cpc classification

International classification

Abstract

A scalable multiviewer system including at least one communication circuit is described. The at least one communication circuit includes at least one input being associated with at least one data source. The at least one communication circuit further includes at least one output being associated with at least one data sink. The at least one communication circuit further includes at least one channel interface for an inter-circuit communication channel being configured to transfer data between the at least one communication circuit and at least one further communication circuit. The at least one communication circuit further includes a processing circuit being configured to receive an input signal from the at least one input. The processing circuit further is configured to selectively transmit the input signal to the at least one output or to the at least one channel interface based on at least one preset communication parameter. The at least one preset communication parameter is programmable via a communication bus of the multiviewer system. Further, a method for distributing data from at least one data source to several data sinks via a scalable multiviewer system is described.

Claims

1. A scalable multiviewer system comprising: at least one communication circuit comprising at least one input having a first network interface, wherein the at least one input is associated with at least one data source of a plurality of data sources; at least one output having a second network interface, wherein the at least one output is associated with at least one data sink; at least one channel interface for an inter-circuit communication channel configured to transfer data between the at least one communication circuit and at least one second communication circuit; and a processing circuit connected to the at least one input, the at least one output, and the at least one channel interface in a signal transmitting manner, wherein the processing circuit is configured to: receive an input signal from the at least one input; and selectively transmit the input signal to the at least one output or to the at least one channel interface based on at least one preset communication parameter, wherein the at least one preset communication parameter is programmable via a communication bus of the scalable multiviewer system, wherein the communication bus is configured to distribute a parameter adaptation request from the at least one data sink to the at least one communication circuit, wherein the parameter adaptation request corresponds to a request of a user to receive the signals from certain ones of the plurality of data sources, wherein the at least one preset communication parameter of the at least one communication circuit and/or at least one preset communication parameter of at least one second communication circuit is adapted based on the parameter adaptation request and wherein the scalable multiviewer system controls the communication circuits without a central control circuit.

2. The scalable multiviewer system of claim 1, wherein the at least one communication circuit comprises at least one network interface card, wherein the at least one network interface card comprises the first network interface, the second network interface and/or the channel interface for the inter-circuit communication channel.

3. The scalable multiviewer system according to claim 1, wherein the communication bus is configured to distribute a list of available data sources to the at least one data sink.

4. The scalable multiviewer system according to claim 1, wherein the communication bus is configured to distribute a list of available data sources to all data sinks.

5. The scalable multiviewer system according to claim 1, wherein the communication bus is based on a Message Queuing Telemetry Transport protocol or another messaging protocol.

6. The scalable multiviewer system according to claim 1, wherein the at least one data source is immediately connected to at most one communication circuit.

7. The scalable multiviewer system according to claim 1, wherein the at least one preset communication parameter comprises at least one of the following parameters: a communication protocol, a data rate, a sample rate, a resolution, and/or a data compression.

8. The scalable multiviewer system according to claim 1, further comprising at least two communication circuits, wherein the at least two communication circuits are interconnected via their channel interfaces for the inter-circuit communication channel.

9. The scalable multiviewer system of claim 8, wherein a first communication circuit of the at least two communication circuits is connected to at least a first data sink via the output of the first communication circuit, and wherein a second communication circuit of the at least two communication circuits is connected to at least a second data sink via the output of the second communication circuit, wherein the first data sink and the second data sink are different from each other.

10. The scalable multiviewer system of claim 8, wherein the processing circuits of the respective communication circuits are configured to communicate with each other.

11. The scalable multiviewer system according to claim 1, wherein the scalable multiviewer system is configured such that the at least one preset communication parameter is programmable via the output by the communication bus of the scalable multiviewer system.

12. The scalable multiviewer system according to claim 1, wherein the scalable multiviewer system comprises a client-side device connected with the output, wherein the client-side device comprises a user interface via which the at least one preset communication parameter is set to direct the input signal in a defined manner.

13. A method for distributing data from at least one data source of a plurality of data sources to several data sinks via a scalable multiviewer system, wherein the method comprises: receiving an input signal from the at least one data source via a first communication circuit; and selectively transmitting said input signal directly to at least one of the data sinks or to at least a second communication circuit based on at least one preset communication parameter, wherein the at least one preset communication parameter is programmable via a communication bus of the scalable multiviewer system, wherein a parameter adaptation request is distributed from at least one of the data sinks to the first and second communication circuits via the communication bus, wherein the parameter adaptation request corresponds to a request of a user to receive the signals from certain ones of the plurality of data sources, wherein the at least one preset communication parameter of the first communication circuit and/or at least one preset communication parameter of the second communication circuit is adapted based on the parameter adaptation request, and wherein the communication circuits are controlled by the scalable multiviewer system without a central control circuit.

14. The method of claim 13, wherein a list of available data sources is distributed to at least one of the data sinks via the communication bus.

15. The method of claim 14, wherein the list of available data sources is distributed to all data sinks via the communication bus.

Description

DESCRIPTION OF THE DRAWINGS

(1) The foregoing aspects and many of the attendant advantages of the claimed subject matter will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:

(2) FIG. 1 schematically shows a block diagram of a scalable multiviewer system according to an embodiment of the present disclosure; and

(3) FIG. 2 shows a flow chart of a method according to an embodiment of the present disclosure.

DETAILED DESCRIPTION

(4) The detailed description set forth below in connection with the appended drawings, where like numerals reference like elements, is intended as a description of various embodiments of the disclosed subject matter and is not intended to represent the only embodiments. Each embodiment described in this disclosure is provided merely as an example or illustration and should not be construed as preferred or advantageous over other embodiments. The illustrative examples provided herein are not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed. Similarly, any steps described herein may be interchangeable with other steps, or combinations of steps, in order to achieve the same or substantially similar result. Moreover, some of the method steps can be carried serially or in parallel, or in any order unless specifically expressed or understood in the context of other method steps.

(5) In the foregoing description, specific details are set forth to provide a thorough understanding of exemplary embodiments of the present disclosure. It will be apparent to one skilled in the art, however, that the embodiments disclosed herein may be practiced without embodying all of the specific details. In some instances, well-known process steps have not been described in detail in order not to unnecessarily obscure various aspects of the present disclosure. Further, it will be appreciated that embodiments of the present disclosure may employ any combination of features described herein.

(6) FIG. 1 schematically shows a block diagram of an embodiment of a scalable multiviewer system 10. In the embodiment shown, the multiviewer system 10 comprises a first communication circuit or module 12, a second communication circuit or module 14, several data sources 16, and several data sinks 18.

(7) Therein and in the following, the term “data sink” is used to denote all kinds of devices on a receiving side of the multiviewer system 10. For example, the term “data sink” comprises a user device, such as a personal computer, a laptop, a smartphone, a tablet or a dedicated user-side multiviewer device. In other words, the term “data sink” is associated with a respective client-side device.

(8) In some embodiments, the term “module,” “unit,” etc., refers to or includes, inter alia, a combination of hardware (e.g. a processor such as an integrated circuit or other circuitry) and software (e.g. machine- or processor-executable instructions, commands, or code such as firmware, programming, or object code). Furthermore, a combination of hardware and software may include hardware only (i.e. a hardware element with no software elements), software hosted at hardware (e.g. software that is stored at a memory and executed or interpreted at a processor), or hardware with the software hosted thereon. In some embodiments, the hardware may, inter alia, comprise a CPU, a GPU, an FPGA, an ASIC, or other types of electronic circuitry

(9) For example, the communication module can be functional unit comprising in some embodiments suitable circuitry, including hardware and/or software. Generally, the communication modules may be established as individual physical modules of a single server, and/or as individual physical modules of several interconnected servers forming a network.

(10) In the example shown in FIG. 1, the several data sources 16 comprise a first video and/or audio source 20 (“VA source” in the following), a second VA source 22, and a third VA source 24. It is noted that the number of three VA sources 20, 22, 24 is chosen only for illustration purposes. Of course, the multiviewer system 10 may comprise any other number of VA sources.

(11) Each of the data sources 16 is immediately connected to exactly one of the communication modules 12, 14. Thus, input signals generated by the data sources 16 are only transmitted to one of the communication module 12, 14, respectively.

(12) The several data sinks 18 correspond to a first client-side device 26 and a second client-side device 28. The client-side devices 26, 28 may be located at different geographic locations.

(13) Each of the client-side devices 26, 28 comprises several display areas 30. The display areas 30 may be sub-areas of a larger display. Alternatively, the display areas 30 may be established as separate display devices, e.g. monitors.

(14) It is noted that the number of two client-side devices 26, 28 is chosen only for illustration purposes. Of course, the multiviewer system 10 may comprise any other number of signal sinks, for example client-side devices.

(15) In the exemplary embodiment shown in FIG. 1, the first communication module 12 is connected to the first client-side device 26, and the second communication module 14 is connected to second client-side device 28. In general, each communication module 12, 14 may be connected to a set of data sinks 18, wherein the sets of data sinks 18 are pairwise disjoint. In other words, each client-side device 26, 28 is connected to a single server, and the requested input signal is transmitted to the client-side device 26, 28 only via that particular server.

(16) Generally speaking, the multiviewer system 10 is configured to distribute input signals generated by the data sources 16 to the data sinks 18 in a particular manner, which will be explained in more detail below. Therein, the input signals respectively may be established as a video signal and/or as an audio signal (“VA signal” in the following).

(17) Without restriction of generality, the case of the input signals being pure video signals will be discussed in the following. Accordingly, in the following the input signals generated by the VA sources 20, 22, 24 are denoted by v.sub.20, v.sub.22, and v.sub.24, respectively.

(18) The users of the client-side devices 26, 28 may choose which of the input signals are to be displayed on the individual display areas 30. In the example shown in FIG. 1, all three input signals v.sub.20, v.sub.22, v.sub.24 are to be displayed on the display areas 30 of the first client-side device 26, while only the two input signals v.sub.20 and v.sub.24 are to be displayed on the display areas 30 of the second client-side device 28.

(19) The first communication module 12 and the second communication module 14 each comprise an input 32 with a first network interface 34 and an output 36 with a second network interface 38. An inter-module communication channel 40 is provided between the communication modules 12, 14 wherein each communication module 12, 14 has a dedicated channel interface 42 associated with the inter-module communication channel 40.

(20) The communication modules 12, 14 may comprise at least one network interface card 43 (e.g., hardware circuitry), wherein the at least one network interface card 43 comprises the first network interface 34, the second network interface 38 and/or the channel interface 42. Alternatively, the communication modules 12, 14 may comprise several interconnected network interface cards 43 that are each associated with at least one of the input 32, the output 36, and the channel interface 42 for the inter-module communication channel 40.

(21) The communication modules 12, 14 further each comprise a processing module 44, comprising one or more processors, processing circuits, etc. In the embodiment shown in FIG. 1, the processing module 44 comprises three processing units 46. For example, the processing units 46 may each be established as circuitry, such as a microprocessor, as a CPU, as a GPU, as a FPGAs, or as another type of suitable electronic circuitry.

(22) Each of the input 32, the output 36 and the channel interface 42 for the inter-module communication channel 40 is immediately connected to only one of the processing units 46, respectively. Moreover, the processing units 46 are interconnected with each other.

(23) It is noted that the number of three processing units 46 is chosen only for illustration purposes. The processing module 44 may also comprise any other number of processing unit 46, for example one or two processing units 46 or even more than three processing units 46.

(24) In some embodiments, the processing module 44 may comprise a single processing unit 46 that is immediately connected to each of the input 32, the output 36, and the channel interface 42 for the inter-module communication channel 40. Alternatively, the processing module 44 may comprise two processing units 46. For example, one of the two processing units 46 may be immediately connected to the input 32 and the channel interface 42 for the inter-module communication channel 40, and the other one of the two processing units 46 may be immediately connected to the output 36.

(25) The multiviewer system 10 is configured to perform a method for distributing data from the data sources 16 to the data sinks 18, an example of which is described in the following with reference to FIG. 2.

(26) The input signals v.sub.20, v.sub.22, and v.sub.24 are received by the communication modules 12, 14 via the respective input 32 and forwarded to the processing module 44, for example the respective processing unit 46 connected to the input 32 (step S1).

(27) The respective processing unit 46 processes and analyzes the received input signal or the received input signals, thereby determining at least one quality parameter associated with the input signal (step S2).

(28) Generally speaking, the at least one quality parameter is indicative of the quality of the video stream associated with the respective input signal. More precisely, the at least one quality parameter may indicate a resolution of the video stream, a data rate of the video stream, a sample rate of the video stream and/or a data compression of the video stream.

(29) A list of all available data sources 16 is broadcasted to all data sinks 18 via a communication bus of the multiviewer system 10 (step S3).

(30) Therein, the communication bus may be based on a Message Queuing Telemetry Transport (MQTT) protocol. However, any other suitable type of network protocol or messaging protocol may be used for the communication bus, for instance Advanced Message Queuing Protocol (AMQP), Constrained Application Protocol (CoAP) or Extensible Messaging Presence Protocol (XMPP).

(31) Thus, instead of broadcasting all input signals v.sub.20, v.sub.22, v.sub.24 to all data sinks 18, only the list of available data sources 16 is distributed to the data sinks 18.

(32) The list of available data sources 16 may also comprise the quality parameters associated with the input signals v.sub.20, v.sub.22, v.sub.24. Thus, the users of the first clients-side device 26 and of the second client-side device 28 are provided with an overview of all available input signals v.sub.20, v.sub.22, v.sub.24 and of the respective quality of the input signals v.sub.20, v.sub.22, v.sub.24.

(33) The users may then choose which of the input signals v.sub.20, v.sub.22, v.sub.24 are to be received, and in which quality the input signals v.sub.20, v.sub.22, v.sub.24 are to be received. Moreover, the users may choose via which communication protocol the input signals v.sub.20, v.sub.22, v.sub.24 are to be transmitted to the data sinks 18.

(34) In some embodiments, the users may perform these settings via a user interface of the respective client-side device 26, 28.

(35) A parameter adaptation request corresponding to the settings performed by the user is generated by each of the client-side devices 26, 28, respectively.

(36) The parameter adaptation requests are each broadcasted to the communication modules 12, 14 via the communication bus of the multiviewer system 10 (step S4).

(37) In general, the parameter adaptation request comprises a request for adapting at least one of the following parameters: a communication protocol via which the input signals v.sub.20, v.sub.22, v.sub.24 are to be received by the respective client-side device 26, 28, a desired data rate with which the input signals v.sub.20, v.sub.22, v.sub.24 are to be received by the respective client-side device 26, 28, a desired sample rate with which the input signals v.sub.20, v.sub.22, v.sub.24 are to be received by the respective client-side device 26, 28, a desired resolution of the input signals v.sub.20, v.sub.22, v.sub.24, and a data compression of the input signals v.sub.20, v.sub.22, v.sub.24.

(38) Based on the parameter adaptation requests, at least one communication parameter of the processing modules 44 is adapted, if necessary (step S5).

(39) The at least one preset communication parameter comprises at least one of the following parameters: a communication protocol, a data rate, a sample rate, a resolution, and/or a data compression.

(40) Moreover, the at least one communication parameter determines which data sink 18 receives signals from which data source 16.

(41) If the preset communication parameters are already the same as requested, then the communication parameters are, of course, not adapted.

(42) The processing modules 44 then process the input signals v.sub.20, v.sub.22, v.sub.24 based on the adapted preset communication parameters and selectively forward the input signals v.sub.20, v.sub.22, v.sub.24 to the respective output 36 and/or to the respective channel interface 42 for the inter-module communication channel 40 based on the adapted preset communication parameters (step S6).

(43) Generally speaking, the processing modules 44 process and selectively forward the input signals v.sub.20, v.sub.22, v.sub.24 in such a way that every one of the client-side devices 26, 28 receives the requested ones of the input signals v.sub.20, v.sub.22, v.sub.24, namely in the requested quality and via the requested communication protocol.

(44) Accordingly, if the quality of one of the input signals v.sub.20, v.sub.22, v.sub.24 is higher than requested by one of the client-side devices 26, 28, the respective processing module 44 may downscale the corresponding input, thereby generating a downscaled input signal. In other words, the processing module 44 may reduce the data size of the corresponding input signal v.sub.20, v.sub.22, v.sub.24, for example by reducing the data rate and/or the sample rate of the corresponding input signal, or by compressing the corresponding input signal v.sub.20, v.sub.22, v.sub.24.

(45) In this case, the downscaled input signal is selectively forwarded to the respective output 36 and/or to the respective channel interface 42 associated with the inter-module communication channel 40 based on the adapted preset communication parameters.

(46) Step S6 will be illustrated for an hypothetical example by the input signal v.sub.20 generated by the first VA source 20. For example, the input signal v.sub.20 is a High Definition (“HD”) video stream. The first client-side device 26 has requested to receive the input signal v.sub.20 in HD, while the second client-side device 28 has requested to receive the input signal v.sub.20 in Standard Definition (“SD”).

(47) Accordingly, the processing module 44 of the first communication module 12 transmits the input signal v.sub.20 to the first client-side device 26 via the output 36 of the first communication module 12 without downscaling.

(48) However, as the second client-side device 28 requested the input signal v.sub.20 in SD, the processing module 44 of the first communication module 12 downscales the input signal v.sub.20 from HD to SD, thereby generating the downscaled input signal.

(49) The downscaled input signal is then transmitted to the second communication module 14 via the inter-module communication channel 40 associated with the first communication module 12 and the second communication module 14. The downscaled input signal is then transmitted to the second client-side device 28 via the output 36 of the second communication module 14 by the processing module 44 of the second communication module 14.

(50) Summarizing, the input signals are transmitted only to certain data sinks 18, namely only to such data sinks 18 that have requested to receive the respective input signal. Thus, a user may simply select the data sources 16 from which the data shall be transferred to the data sink 18 associated with the user. The preset communication parameters of the processing modules 44 of the communication modules 12, 14 are then re-programmed via the communication bus such that the input signals from the different data sources 16 are distributed correctly to the data sinks 18.

(51) Thus, no central controller for the communication modules 12, 14 is required. Instead, the communication parameters of the communication modules 12, 14 are adapted via the communication bus and stored on the respective communication modules 12, 14, such that the input signals from different data sources 16 are distributed correctly.

(52) Certain embodiments disclosed herein, for example the respective module(s) and/or unit(s), utilize circuitry (e.g., one or more circuits) in order to implement standards, protocols, methodologies or technologies disclosed herein, operably couple two or more components, generate information, process information, analyze information, generate signals, encode/decode signals, convert signals, transmit and/or receive signals, control other devices, etc. Circuitry of any type can be used. It will be appreciated that the term “information” can be use synonymously with the term “signals” in this paragraph. It will be further appreciated that the terms “circuitry,” “circuit,” “one or more circuits,” etc., can be used synonymously herein.

(53) In an embodiment, circuitry includes, among other things, one or more computing devices such as a processor (e.g., a microprocessor), a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a system on a chip (SoC), or the like, or any combinations thereof, and can include discrete digital or analog circuit elements or electronics, or combinations thereof. In an embodiment, circuitry includes hardware circuit implementations (e.g., implementations in analog circuitry, implementations in digital circuitry, and the like, and combinations thereof).

(54) In an embodiment, circuitry includes combinations of circuits and computer program products having software or firmware instructions stored on one or more computer readable memories that work together to cause a device to perform one or more protocols, methodologies or technologies described herein. In an embodiment, circuitry includes circuits, such as, for example, microprocessors or portions of microprocessor, that require software, firmware, and the like for operation. In an embodiment, circuitry includes one or more processors or portions thereof and accompanying software, firmware, hardware, and the like.

(55) The present application may reference quantities and numbers. Unless specifically stated, such quantities and numbers are not to be considered restrictive, but exemplary of the possible quantities or numbers associated with the present application. Also in this regard, the present application may use the term “plurality” to reference a quantity or number. In this regard, the term “plurality” is meant to be any number that is more than one, for example, two, three, four, five, etc. The terms “about,” “approximately,” “near,” etc., mean plus or minus 5% of the stated value. For the purposes of the present disclosure, the phrase “at least one of A and B” is equivalent to “A and/or B” or vice versa, namely “A” alone, “B” alone or “A and B.”. Similarly, the phrase “at least one of A, B, and C,” for example, means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C), including all further possible permutations when greater than three elements are listed.

(56) The principles, representative embodiments, and modes of operation of the present disclosure have been described in the foregoing description. However, aspects of the present disclosure which are intended to be protected are not to be construed as limited to the particular embodiments disclosed. Further, the embodiments described herein are to be regarded as illustrative rather than restrictive. It will be appreciated that variations and changes may be made by others, and equivalents employed, without departing from the spirit of the present disclosure. Accordingly, it is expressly intended that all such variations, changes, and equivalents fall within the spirit and scope of the present disclosure, as claimed.