# Patent

## Title
Video conference virtual endpoints

## Abstract

A method and a device providing one virtual endpoint dedicated to serve one particular real endpoint, and the virtual endpoint is typically installed on a server in the same local network as the associated real endpoint, where an MCU or a fraction of a distributed MCCJ also is installed. In the upstream direction, the virtual endpoint includes at least an upstream decoder, a scaling unit and an upstream encoder. In the downstream direction, the virtual endpoint includes at least a number of decoders, a composing unit and a downstream encoder.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is: related to and claims priority to U.S. Provisional Patent Application Ser. No. 61/772,126, filed Mar. 4, 2013, entitled VIRTUAL ENDPOINT and Norwegian Patent Application No. 20130330 filed Mar. 4, 2013, entitled VIDEO CONFERENCE VIRTUAL ENDPOINTS, the entirety of both of which are incorporated herein by reference.


STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
n/a
FIELD OF THE INVENTION
The present invention relates to a method, computer program and a system providing efficient large scale video conference.
BACKGROUND OF THE INVENTION
Transmission of moving pictures in real-time is employed in several applications like e.g. video conferencing, net meetings and video telephony.
Video conferencing systems allow for simultaneous exchange of audio, video and data information among multiple conferencing sites. Systems known as Multipoint Control Units (MCUs) perform switching functions to allow the endpoints of multiple sites to intercommunicate in a conference. An endpoint conventionally refers to a video conference terminal, either a stand-alone terminal equipped with at least a camera, a display, a loudspeaker or a headphone and a processor or a video conferencing software client installed on a general purpose computer with the corresponding capabilities. In the following specification, this will also be referred to as a “real endpoint” to distinguish it from “virtual endpoint”, whose definition will be disclosed later in the specification.
The MCU links the sites together by receiving frames of conference signals from the sites, processing the received signals, and retransmitting the processed signals to • appropriate sites. The conference signals include audio, video, data and control information. In a switched conference, the video signal from one of the endpoints, typically that of the loudest speaker, is broadcasted to each of the participants. In a continuous presence conference, video signals from two or more sites are spatially mixed to form a composite video signal for viewing by conference participants. When the different video streams have been mixed together into one single video stream, the composed video stream is transmitted to the different parties of the video conference, where each transmitted video stream preferably follows a set of schemes indicating who will receive which video stream. In general, the different users prefer to receive different video streams. The continuous presence or composite image is a combined picture that may include live video streams, still images, menus or other visual images from participants in the conference. The combined picture may e.g. be composed by several equally sized pictures, or one main picture in addition to one or more smaller pictures in inset windows, commonly referred to as Picture-in-Picture (PIP). PIPs require typically a much lower resolution than the main picture due to the size difference within the screen.
A key problem with existing MCUs using the H.323 and SIP standards is the lack of scalability. In order to host large meetings one of three solutions may be used:
All endpoints call into a single large MCU in a single location. The problem of this is the excessive bandwidth consumption. As an example, if a video conference includes a large number of endpoints in both USA and Europe with the MCU residing in New York, a huge bandwidth usage across the Atlantic between the MCU and the endpoints in Europe would be required.
Another possibility is to cascade several MCUs by using H.243 or similar. The problem with this is that a broken user experience may occur. When all endpoints call into the same MCU, a participant typically views the 4-to-10 most recent speakers simultaneously. When endpoints call into two different MCUs, an endpoint can only see one of the endpoints connected to the other MCU.
There already exists non-standards based MCU dealing with problems discussed above using techniques such as SVC (Scalable Video Coding), but the investment in standards based endpoints would then be lost, and a problem with interoperability would also occur.
SUMMARY OF THE INVENTION
An object of embodiments herein is to overcome or at least alleviate the above mentioned disadvantage. This object and other objects are achieved by the independent claims enclosed herewith.
According to a first aspect, there is provided a virtual endpoint adapted to be installed on a computer device associated with a video conference endpoint adapted to participate in a multi-party video conference. The video conference endpoint is adapted to encode and transmit an upstream media stream comprising at least video data in an upstream direction and to receive and decode a combined media stream in a downstream direction. The virtual endpoint is characterized in comprising at least one upstream decoder adapted to decode an upstream encoded media stream received from the video conference endpoint into an upstream decoded media stream, a scaling device adapted to scale the upstream decoded media stream into a scaled upstream media stream, and at least one upstream encoder adapted to encode the scaled upstream media stream into an encoded scaled upstream media stream. The virtual endpoint is furthermore characterized in comprising a first downstream decoder adapted to decode a downstream encoded media stream of a first resolution, at least one second downstream decoder adapted to decode at least one of a number of downstream encoded media streams of a second resolution, a media composer adapted to compose a combined downstream media stream of decoded media streams of the first and the second resolution, and at least one downstream encoder adapted to encode the combined downstream media stream.
According to an embodiment, the virtual endpoint is characterized in that it is further adapted to retransmit the received upstream encoded media stream.
According to another embodiment, the virtual endpoint is characterized in that the first resolution is a High Definition (HD) resolution.
According to yet another embodiment, the virtual endpoint is characterized in that the scaling device is adapted to scale video data in the decoded media stream to the second resolution.
According to one embodiment, the virtual endpoint is characterized in that the second resolution is a Picture-in-Picture (PIP) resolution.
According to another embodiment, the virtual endpoint is characterized in that one or more other virtual endpoints respectively associated with one or more other endpoints adapted to participate in the multi-party video conference are adapted to be installed on the computer device.
According to yet another embodiment, the virtual endpoint is characterized in the virtual endpoint being connected to a switching node adapted to switch the encoded scaled upstream media stream and/or the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.
According to a further embodiment, the virtual endpoint is characterized in that the switching node is further adapted to switch the downstream encoded media stream of the first resolution and the number of downstream encoded media streams of the second resolution to one or more virtual endpoints associated with the other switching nodes.
According to a second aspect, there is provided a method in a virtual endpoint installed on a computer device associated with a video conference endpoint participating in a multi-party video conference. The video conference endpoint is encoding and transmitting an upstream media stream comprising at least video data in an upstream direction and receiving and decoding a combined downstream media stream in a downstream direction. The method is characterized in comprising the steps of decoding an upstream encoded media stream received from the video conference endpoint into an upstream decoded media stream, scaling the upstream decoded media stream into a scaled upstream media stream, encoding the scaled upstream media stream into an encoded scaled upstream media stream. The method is furthermore characterized in comprising the steps of decoding a downstream encoded media stream of a first resolution, decoding a number of downstream encoded media streams of a second resolution, composing a combined media stream of the downstream media stream of the first resolution and the number of downstream media streams of the second resolution, and encoding the combined media stream.
According to an embodiment, the method is characterized in comprising an additional step of retransmitting the received upstream encoded media stream.
According to another embodiment, the method is characterized in that the first resolution is a High Definition (HD) resolution.
According to yet another embodiment, the method is characterized in an additional step of scaling video data in the decoded media stream to the second resolution.
According to a further embodiment, the method is characterized in that the second resolution is a Picture-in-Picture (PIP) resolution.
According to one embodiment, the method is characterized in that one or more other virtual endpoints respectively associated with one or more other endpoints participating in the multi-party video conference are installed on the computer device.
According to another embodiment, the method is characterized in an additional step of switching the encoded scaled upstream media stream and/or the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.
According to a further embodiment, the method is characterized in an additional step of switching the downstream encoded media stream of the first resolution and the number of downstream encoded media streams of the second resolution to one or more virtual endpoints associated with the other switching nodes.
According to a third aspect, there is provided an endpoint system comprising at least one virtual endpoint as discussed in the foregoing. The virtual endpoint system further comprises at least one switching node adapted to switch the encoded scaled upstream media stream and/or the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.



BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present invention, and the attendant advantages and features thereof, will be more readily understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
FIG. 1 is an illustration of an exemplifying virtual endpoint according to embodiments of the disclosure,
FIG. 2 is an illustration of an exemplifying Multipoint Control Unit (MCU) consisting of a number of virtual endpoints and a switching node according to embodiments of the disclosure,
FIG. 3 is an illustration of an exemplifying MCU connected to a variety of different types of endpoints according to embodiments of the disclosure,
FIG. 4 illustrates an exemplifying distributed MCU comprising duplets of one switching node and two virtual endpoints according to embodiments of the disclosure,
FIG. 5 illustrates in an exemplifying manner how a backplane only requires to carry one high resolution stream in addition to a number of low resolution streams according to one of the embodiments herein,
FIG. 6 shows in an exemplifying manner how media streams across a backplane simply can be copied and forwarded across the backplane in accordance with embodiments of the disclosure, and
FIG. 7 illustrates in an exemplifying manner how media data across the backplane can be encoded to provide an efficient format between the switching nodes in accordance with embodiments of the disclosure.



DETAILED DESCRIPTION OF THE INVENTION
According to embodiments herein, a virtual endpoint is introduced overcoming the above discussed problems. One virtual endpoint is dedicated to serve one particular real endpoint, and the virtual endpoint is typically installed on a server in the same local network as the associated real endpoint, where a Multipoint Control Unit (MCU) or a fraction of a distributed MCU also is installed.
In the upstream direction, the virtual endpoint includes at 15 least an upstream decoder, a scaling unit and an upstream encoder. In the downstream direction, the virtual endpoint includes at least a number of decoders, a composing unit and a downstream encoder.
The real endpoint transmits coded data to its dedicated virtual endpoint which is being decoded by the upstream decoder. The decoded data is being available for the scaling unit, which in turn is being downscaled to a predefined or requested resolution. The downscaled data is then encoded by the upstream encoder, and transmitted further as a downscaled stream, e.g. to one or more stream switching nodes. In addition, the received coded data from the real endpoint is forwarded through the virtual endpoint as a non-downscaled stream to the one or more media nodes.
A schematic illustration of an example of a virtual endpoint as discussed above is shown in FIG. 1. Here, the task of the virtual endpoint in the upstream direction is to create and transmit two streams of the encoded data received from its associated real endpoint, one of high resolution, and one of low resolution. In the downstream direction, the task of the virtual endpoint is to decode one encoded HD (High Definition) data stream and a number of encoded PIPs (Picture In Picture) subscribed from one or more stream switching nodes, to compose a continuous presence picture from the encoded HD data stream and the number of PIPs, and then further to encode the whole continuous presence picture which is transmitted back to the associated real endpoint.
In the example above, only one downscaled stream of the encoded data received from an associated real endpoint is transmitted to the switching node. However, the scaling unit should be adjusted to downscale streams of a number of different resolutions at request. For example, a resolution according to a quadrant of picture is quite common in a continuous presence view.
A single MCU may be implemented as software on a physical off-the-shelf server/computer, consisting of a number of virtual endpoints plus a switching core, as shown in FIG. 2. Alternatively the components inside the dotted line may be deployed natively on a server. In the following, a virtualized-instance is described under the understanding that non-virtualized deployments are also possible.
As indicated in FIG. 3, the virtual endpoints inside the MCU are connected to the associated real endpoints which may be a variety of different types of endpoints like group video endpoints, personal video endpoints, mobile video endpoints and software video endpoints, as shown in FIG. 3.
As illustrated in FIG. 4, multiple stream switching nodes associated with a number of virtual endpoints framed by dotted lines may be connected in a distributed fashion by a backplane, which connects multiple stream switching nodes in a tree and/or mesh topology. The multiple stream switching nodes and the associated virtual endpoints can either be deployed on the same host (physical server), or on different hosts for geographical distribution.
According to embodiments herein, the virtual endpoint shields the internal logic in the MCU from the real endpoint. The real endpoint could be any standards based SIP, H.323, HTML5 endpoint, using any number of voice and video codecs.
As earlier indicated, the virtual endpoint might subscribe 15 to receive, from the switching core, a number of video streams:

    
    
        The current speaker in high resolution
        The most recent arbitrary number of speakers, for instance 4-9 speakers, as low resolution streams
    
    


The exception to this rule is that the participant who is the current speaker is likely to want to receive the previous speaker in high resolution, since it is likely that no participant will want to view himself in full screen view.
The virtual endpoint will then decode these streams, scale and compose it into a nice continuous presence layout, and encode the resulting image into a video stream appropriate for the real endpoint it is connected to.
An optional stream switching node may make all its streams available also over the backplane. Hence, in a distributed system, another stream switching node can request to receive any number of streams. This means that the user experience for all endpoints might be identical, e.g. current speaker in full screen plus a number of recent speakers in small thumbnail views. The fact that multiple streams may be transmitted between stream switching nodes is a major difference from the way existing MCUs are cascaded using mechanisms like H.243 (these old ways of doing cascading only provide a single bidirectional video stream between the MCUs)
Since multiple streams are transmitted over the backplane, bandwidth usage is a concern. However, only the streams representing current and previous speakers are transmitted at full resolution. The other participants may be scaled down to between 1/25th and 1/100th of a full screen view. In a distributed conference, this means that that the backplane never needs to carry more than one high resolution stream plus e.g. nine low resolution streams. If the bandwidth of the low resolution stream is 1-5% of the bandwidth of the full resolution stream, it means that the total bandwidth used across the backplane between two nodes will typically be between 1 and 1.5 times the bandwidth of a single stream. An illustration of this is shown in FIG. 5.
The embodiments herein provide significant savings over traditional non-distributed MCU conferences. As an example, consider the use case of a global company all-hands meeting with e.g. 100 participants in the U.S. and 100 participants in Europe. In a traditional MCU deployment, all 200 participants would call into a single MCU. This would require 100 full resolution streams across the Atlantic. According to some of the embodiments herein, only a single full-resolution stream would be transmitted across the Atlantic, plus up to e.g. 9 smaller “thumbnails” of recent speakers. If each thumbnail is 1/100th of a full resolution stream, it means that rather than sending 100 streams we are sending 1.09 streams.
From an end-user point of view, the number or URI (Uniformed Resource Identifier) to dial in order to join a particular conference is the same regardless of which location the end-user is located. The endpoint will connect to its closest switching node based on either configured location or automatic location assignment based on any number of well-known methods.
In a distributed conference, media data will pass through one or more switching nodes. In the ideal case, the network 15 connection between switching nodes is perfect, with no packet loss. In this case, the media streams across the backplane can simply be copied and forwarded across the backplane as illustrated in FIG. 6.
However, in the case of packet loss or other network 20 problems in the network, some robustness/resilience may preferably be added. According to embodiments herein, there are two methods. The first one is to re-encode the media that is transmitted over the backplane, and the second one is to protect the media stream by adding error correction to the media stream. A combination is of course also possible—re-encode the media into a more resilient format (e.g. using hierarchical encoding methods such as those that exist in H.264) and additionally add error correction.
Re-encoding the media may possibly add latency in the order of e.g. 10-100 ms to the media stream. Adding error correction may add overhead and may require increased bandwidth. In some cases, such as when multiple stream switching nodes are located in the same data-center, the network can be engineered such that packet loss is avoided. Hence the embodiments as described herein may be scaled up without adding latency.
In order to reduce bandwidth between the switching nodes, the media data across the backplane can be encoded into a more efficient format. As an example, if the endpoints participating in a conference use H.263 and/or H.264, a more bandwidth efficient codec such as ITU-T H.265/HEVC can be used across the backplane, in order to save 20-50% bandwidth. This is illustrated in FIG. 7 with a decoder (dec) and encoder (enc) on each switching towards the backplane interface.

## Claims

1. A virtual endpoint adapted to be installed on a computer device associated with a video conference endpoint adapted to participate in a multi-party video conference, the video conference endpoint being adapted to encode and transmit an upstream media stream including at least video data in an upstream direction and to receive and decode a combined media stream in a downstream direction, the virtual endpoint comprising:
at least one upstream decoder adapted to decode the upstream encoded media stream received from the video conference endpoint into an upstream decoded media stream;
a scaling device adapted to scale the upstream decoded media stream into a scaled upstream media stream;
at least one upstream encoder adapted to encode the scaled upstream media stream into an encoded scaled upstream media stream;
a first downstream decoder adapted to decode a downstream encoded media stream of a first resolution;
at least one second downstream decoder adapted to decode at least one of a number of downstream encoded media streams of a second resolution;
a media composer adapted to compose a combined downstream media stream of decoded media streams of the first and the second resolution; and
at least one downstream encoder adapted to encode the combined downstream media stream.

2. The virtual endpoint according to claim 1, further adapted to retransmit the received upstream encoded media stream.

3. The virtual endpoint according to claim 1, wherein the first resolution is a High Definition (HD) resolution.

4. The virtual endpoint according to claim 1, wherein the scaling device is adapted to scale video data in the decoded media stream to the second resolution.

5. The virtual endpoint according to claim 1, wherein the second resolution is a Picture-in-Picture (PIP) resolution.

6. The virtual endpoint according to claim 1, wherein at least one other virtual endpoint respectively associated with at least one other endpoint adapted to participate in the multi-party video conference is adapted to be installed on the computer device.

7. The virtual endpoint according to claim 1, wherein said virtual endpoint is connected to a switching node adapted to switch at least one of the encoded scaled upstream media stream and the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.

8. A virtual endpoint according to claim 7, wherein the switching node is further adapted to switch the downstream encoded media stream of the first resolution and the number of downstream encoded media streams of the second resolution to at least one virtual endpoint associated with said other switching nodes.

9. A method in a virtual endpoint installed on a computer device associated with a video conference endpoint participating in a multi-party video conference, the video conference endpoint encoding and transmitting an upstream media stream including at least video data in an upstream direction and receiving and decoding a combined downstream media stream in a downstream direction, the method comprising:
decoding the upstream encoded media stream received from the video conference endpoint into an upstream decoded media stream;
scaling the upstream decoded media stream into a scaled upstream media stream;
encoding the scaled upstream media stream into an encoded scaled upstream media stream;
decoding a downstream encoded media stream of a first resolution;
decoding a number of downstream encoded media streams of a second resolution;
composing a combined media stream of the downstream media stream of the first resolution and the number of downstream media streams of the second resolution; and
encoding the combined media stream.

10. The method according to claim 9, further comprising:
retransmitting the received upstream encoded media stream.

11. The method according to claim 9, wherein the first resolution is a High Definition (HD) resolution.

12. The method according to claim 9, further comprising:
scaling video data in the decoded media stream to the second resolution.

13. The method according to claim 12, wherein the second resolution is a Picture-in-Picture (PIP) resolution.

14. The method according to claim 9, wherein at least one other virtual endpoint respectively associated with at least one other endpoint participating in the multi-party video conference is installed on the computer device.

15. The method according to claim 9, further comprising:
switching at least one of the encoded scaled upstream media stream and the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.

16. The method according to claim 15, further comprising:
switching the downstream encoded media stream of the first resolution and the number of downstream encoded media streams of the second resolution to at least one virtual endpoint associated with said other switching nodes.

17. A virtual endpoint system comprising:
at least one virtual endpoint according to claim 1; and
at least one switching node adapted to switch at least one of the encoded scaled upstream media stream and the upstream encoded media stream in the upstream direction to other switching nodes involved in the multi-party video conference.