Quality of Media Synchronization
20170353747 · 2017-12-07
Inventors
- Emmanuel Thomas (Delft, NL)
- Martin Prins (The Hague, NL)
- Hans Maarten Stokking (Wateringen, NL)
- Omar Aziz Niamut (Vlaardingen, NL)
Cpc classification
H04N21/242
ELECTRICITY
H04N21/23418
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/2387
ELECTRICITY
International classification
H04N21/242
ELECTRICITY
H04N21/234
ELECTRICITY
Abstract
The play-out of a media stream by a play-out device may be synchronized by a synchronization subsystem with a reference play-out, thereby obtaining a degree of synchronicity with the reference play-out. To address a structural deficiency in the obtaining of the synchronicity with the reference play-out, the play-out device may report a quality of sync metric to a metric subsystem, which may then be analysed to identify the structural deficiency. A corrective action may then be scheduled to address the structural deficiency. Examples of corrective actions include re-clustering of play-out devices, adjusting priority and/or bandwidth in the streaming, etc. As such, the quality of experience of one or more users experiencing the play-out may be improved.
Claims
1. A system for media synchronization, comprising: a play-out device for play-out of a media stream; a synchronization subsystem for synchronizing the play-out of the media stream by the play-out device with a reference play-out, thereby obtaining a degree of synchronicity with the reference play-out; wherein the play-out device comprises: a quality of sync subsystem for determining a quality of sync metric during the play-out of the media stream, the quality of sync metric being indicative of a structural deficiency in the obtaining of the synchronicity with the reference play-out; a reporting subsystem for externally reporting the quality of sync metric; the system further comprising: a metric subsystem for i) receiving the quality of sync metric from the play-out device, ii) analysing the quality of sync metric to identify the structural deficiency, and iii) scheduling a corrective action to address the structural deficiency.
2. The system according to claim 1, wherein the play-out device is configured for determining the quality of sync metric based on: an occurrence of one or more playback operations performed by the play-out device during play-out of the media stream; and/or a numerical measure of the degree of synchronicity obtained by the play-out device with the reference play-out.
3. The system according to claim 2, wherein the one or more playback operations comprise at least one of: a pausing of the play-out, a stopping of the play-out, a resuming of the play-out, a starting of the play-out, a seeking in the media stream, a change in speed of the play-out, a frame drop during the play-out, and a representation switch of the media stream in adaptive streaming.
4. The system according to claim 2, wherein the play-out device is configured for i) when performing the playback operation, registering a reason for performing the playback operation, thereby obtaining a registered reason, and ii) determining the quality of sync metric further based on the registered reason.
5. The system according to claim 11, wherein the play-out device is configured for formatting the quality of sync metric to indicate at least one of: a time period to which the quality of sync metric pertains, a number of occurrences of a type of playback operation, and a difference, or a mean and a variance of the difference, between a current playback timestamp of the play-out device and a reference playback timestamp provided by the synchronization subsystem.
6. The system according to claim 1, wherein the play-out device is part of one or more play-out devices for play-out of the media stream, and wherein the corrective action is an adjustment in at least one of: delivery of the media stream to at least one of the one or more play-out devices, and a boundary condition associated with the synchronizing of the play-out of the media stream by the play-out device with the reference play-out.
7. The system according to claim 6, wherein the adjustment in the delivery of the media stream comprises at least one of: a switching to a different media stream and/or to a different stream source for the same media stream, for at least one of the one or more play-out devices; an adjustment in priority and/or bandwidth in the streaming of the media stream to at least one of the one or more play-out devices; and an adjustment in a timing of the delivery of the media stream to at least one of the one or more play-out devices.
8. The system according to claim 6, wherein the adjustment in the boundary condition comprises at least one of: a clustering or re-clustering of play-out devices in two or more clusters to which the media synchronization is separately applied to obtain a more homogenous quality of sync than would have been obtained when applying the media synchronization to a single cluster comprising all of the play-out devices; an adjustment of the synchronization threshold in at least one of the one or more play-out devices, the synchronization threshold defining an allowed level of asynchrony between the play-out of the media stream and the reference play-out before a synchronization action is performed by a respective play-out device.
9. The system according to claim 1, wherein the metric subsystem is configured for effecting the corrective action by sending an instruction indicative of the adjustment to be performed to at least one of: at least one of the one or more play-out devices, a stream source providing the media stream, the synchronization subsystem, and a network entity involved in the streaming of the media stream to at least one of the one or more play-out devices.
10. The system according to claim 1, wherein the metric subsystem is configured for scheduling the corrective action in response to the quality of sync metric falling below a predetermined quality threshold.
11. The system according to claim 1, wherein communication between the play-out device and the metric subsystem takes place in accordance with a client-server communication scheme, and wherein the play-out device represents the client and the metric subsystem represents the server in the client-server communication scheme.
12. Play-out device for play-out of a media stream, the play-out of the media stream by the play-out device being synchronized by a synchronization subsystem with a reference play-out, thereby obtaining a degree of synchronicity with the reference play-out, the play-out device comprising: a quality of sync subsystem for determining a quality of sync metric during the play-out of the media stream, the quality of sync metric being indicative of a structural deficiency in the obtaining of the synchronicity with the reference play-out; a reporting subsystem for externally reporting the quality of sync metric.
13. Data representing the quality of sync metric reported by the play-out device as defined in claim 1.
14. A method for media synchronization in a system comprising a play-out device for play-out of a media stream, wherein the play-out of the media stream by the play-out device is synchronized with a reference play-out, thereby obtaining a degree of synchronicity with the reference play-out, the method comprising, in the play-out device: determining a quality of sync metric during the play-out of the media stream, the quality of sync metric being indicative of a structural deficiency in the obtaining of the synchronicity with the reference play-out; externally reporting the quality of sync metric; and in a metric system: receiving the quality of sync metric from the play-out device, analysing the quality of sync metric to identify the structural deficiency; scheduling a corrective action to address the structural deficiency.
15. A computer program product comprising instructions for causing a processor system to perform the method according to claim 14.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0065] These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter. In the drawings,
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078] It should be noted that items which have the same reference numbers in different Figures, have the same structural features and the same functions, or are the same signals. Where the function and/or structure of such an item has been explained, there is no necessity for repeated explanation thereof in the detailed description.
LIST OF REFERENCE NUMERALS
[0079] The following list of reference numbers is provided for facilitating the interpretation of the drawings and shall not be construed as limiting the claims. [0080] 010 streaming source [0081] 020 media stream [0082] 030 metrics database [0083] 032 data stored in metrics database [0084] 034 data retrieved from metrics database [0085] 100-104 instances of play-out device [0086] 100A quality of sync subsystem [0087] 100B reporting subsystem [0088] 110 data representing quality of sync metric [0089] 112 time period data [0090] 114 occurrence data [0091] 116 skew data [0092] 120 synchronization subsystem [0093] 130 data representing synchronization instruction [0094] 140 metric subsystem [0095] 140A metrics server [0096] 140B quality of sync analysis unit [0097] 140C session management unit [0098] 150 data representing corrective action instruction [0099] 160A-160C cluster of play-out devices [0100] 161-164 sets representing play-out devices [0101] 200 IDMS session orchestration [0102] 210 clustering of clients [0103] 220 data collection from clients [0104] 230 evaluation of quality of sync metrics [0105] 240 quality of sync satisfactory [0106] 250 scheduling of corrective action [0107] 252 re-clustering of clients [0108] 300 method for media synchronization [0109] 310 determining quality of sync metric [0110] 320 externally reporting quality of sync metric [0111] 330 receiving quality of sync metric [0112] 340 analysing quality of sync metric [0113] 340 scheduling corrective action [0114] 360 computer readable medium [0115] 370 non-transitory data representing instructions
DETAILED DESCRIPTION OF EMBODIMENTS
[0116] The play-out of a media stream by a play-out device may be synchronized by a synchronization subsystem with a reference play-out, thereby obtaining a degree of synchronicity with the reference play-out. To address a structural deficiency in the obtaining of the synchronicity with the reference play-out, the play-out device may report a quality of sync metric to a metric subsystem, which may then be analysed to identify the structural deficiency. A corrective action may then be scheduled to address the structural deficiency. Examples of corrective actions include re-clustering of play-out devices, adjusting priority and/or bandwidth in the streaming, etc. As such, the quality of experience of one or more users experiencing the play-out may be improved.
[0117] An embodiment of a system comprising the play-out device and the metric subsystem will be described with reference to
[0118]
[0119] As will be further elucidated with reference to
[0120] The system may further comprise a metric subsystem 140 for receiving the quality of sync metric from the play-out device, analysing the quality of sync metric to identify the structural deficiency, and scheduling a corrective action to address the structural deficiency. In the example of
[0121] The quality of sync metrics as reported by the play-out devices may be stored as data 032 in a metrics database 030. Conversely, data 034 may be retrieved from the metrics database 030, e.g., for analysis or determining the corrective action.
[0122] The metric subsystem 140 may be configured for scheduling the corrective action in accordance with a predefined criterion. For example, the corrective action may be scheduled in response to the quality of sync metric, or a measure derived therefrom, falling below a predetermined quality threshold. As will be elucidated with further reference to
[0123] It is noted that the communication between the play-out device(s) 101-103 and the metric subsystem 140 may take place in accordance with a client-server communication scheme. Herein, a play-out device may represent the client and the metric subsystem 140 may represent the server in the client-server communication scheme. Accordingly, the play-out device(s) 101-103 may also be referred to as ‘client’ in the following. It is further noted that in the example of
[0124]
[0125]
[0126] An example of a quality of sync metric may be the following. Here, the quality of sync metric is defined as an extension of an existing metric, namely of a playlist metric defined within MPEG—Dynamic Adaptive Streaming over HTTP (DASH), e.g., in ISO/IEC 23009-1:2014. The playlist metric is an example of a metric that a DASH client may be asked to report. Although the reporting mechanism is not defined within ISO/IEC 23009-1:2014, the metrics are. The definition of the playlist metric is user-centric as the definition specifies: “A playback period is the time interval between a user action and whichever occurs soonest of the next user action, the end of playback or a failure that stops playback”, referring to a user-initiated operation performed by the play-out device. The playlist metric may be modified so as to additionally or alternatively serve as quality of sync metric. Below, underlined text represents a modification of the playlist metric defined in ISO/IEC 23009-1:2014. Keys of the playlist metric which have not been modified have been omitted below.
TABLE-US-00001 Key Type Description Playlist List A list of playback periods. A playback period is the time interval between a user action or a player action and whichever occurs soonest of the next user action, the next player action, the end of playback, or a failure that stops playback. Entry Object A record of a single playback period. Start Real-Time Timestamp of the user or player action that starts the playback period. Mstart Media-Time The presentation time at which playout was requested by the user or player action. Starttype Enum Type of user or player action which triggered playout New playout request (e.g. initial playout or seeking) Resume from pause quality change Start of a metrics collection period (hence earlier entries in the play list not collected) Actiontype Enum Type of action that initiated the play-out: user action player action Trace List List of periods of continuous rendering of decoded samples. Entry Objects Single entry in the list. Stopreason Enum The reason why continuous presentation of this Representation was stopped. Either: Representation switch (not relevant in case of progressive download) rebuffering behind the IDMS reference playback timestamp ahead of the IDMS reference playback timestamp user request end of Period end of content end of a metrics collection period failure
[0127] Additionally or alternatively to the quality of sync metric being determined based on an occurrence of one or more playback operations performed by the play-out device during play-out of the media stream, the quality of sync metric may be determined based on a numerical measure of the degree of synchronicity obtained by the play-out device with the reference play-out. An example of such a numerical measure is a difference, or a mean and a variance of the difference, between a current playback timestamp of the play-out device and a reference playback timestamp provided by the synchronization subsystem. Such a difference may also be referred to as ‘skew’. Accordingly, the data 110 shown in
[0128] In an embodiment, the quality of sync metric may be as follows:
TABLE-US-00002 Key Type Description QoSyncList List A list of QoSync monitoring periods. A QoSync monitoring period collects over a given time interval information pertaining to the quality of the synchronization within a IDMS session. Entry Object A record of a single QoSync monitoring period. start Real-Time Timestamp of the start time of the monitoring period end Real-Time Timestamp of the end time of the monitoring period seekevents Integer Number of seek event occurrences caused by the IDMS heuristic pauseevents Integer Number of pause event occurrences caused by the IDMS heuristic switchevents Integer Number of Representation switch event occurrences caused by the IDMS heuristic skewmean Real Average of the skew between the reference and the actual playback timestamp. The skew at time t is the difference of the current timestamp and the reference timestamp. Note that a negative skew means that the client lags behind the reference playback timestamp. Inversely, a positive skew means that the client is ahead of the reference playback timestamp. skewvariance Real Variance of the skew.
[0129] By reporting the skew, or the mean and variance of the skew, between a reference and actual playback timestamp, the metric subsystem may determine an existence of a structural deficiency in the obtaining of the synchronicity with the reference play-out. This is graphically illustrated in
[0130] It is noted that the quality of sync metric may combine the occurrence of one or more playback operations performed by the play-out device during play-out of the media stream with a numerical measure of the degree of synchronicity obtained by the play-out device with the reference play-out. Effectively, the quality of sync metric may be comprised of two parts, e.g., two ‘sub-metrics’. Here, the reporting of occurrences of playback operations may be deemed to be a ‘subjective’ metric, in that it may reflect a consequences of structural difficulties encountered by the play-out in obtaining synchronicity with the reference play-out, which may decrease the quality of experience of the user(s) experiencing the play-out. The reporting of the numerical measure of the degree of synchronicity may be termed an ‘objective’ metric in that it may directly represent the degree of synchronicity obtained by the play-out device.
[0131]
[0132] 1. Measuring the play-out timing of the media streams at clients within a synchronization cluster, and communicating this timing to the other participants or to a centralised synchronization server.
[0133] 2. Determining the relative play-out timing between clients, and in general determining the slowest clients. In case of a central synchronization server, this information may be communicated as synchronization instructions to all clients.
[0134] 3. Delaying of the play-out at all clients to match the slowest client, to synchronise the play-out across all clients.
[0135] These steps may be performed in various architectures, including but not limited to A) Sync Maestro Scheme, where all clients may report about their play-out to a single server, and the single server may distribute instructions to all clients, B) Distributed Control Scheme, where all clients may report about their play-out to all other clients, and each client may autonomously make synchronization decisions, and C) Master/Slave scheme, where one client is designated as master client which reports about its play-out to all other clients, who must adhere to the master's play-out timing.
[0136] The inventors have recognized that due to fast technical developments, the characteristics of the clients to be synchronised are getting more and more diverse in terms of screen capabilities, available bandwidth, computation power, networking capabilities, etc. As a result, the quality of the experience that the users perceive in a synchronised media session may be poor for various reasons.
[0137] For example, the slowest client may contribute to lowering the quality of experience not only of its user but of everyone in the session. As is known from the technical field of media synchronization, the reference point in time where the clients of the same session have to adjust to may be determined by the position of the slowest client. As such, when watching live content, the slowest client may force all other clients in, e.g., an IDMS cluster to slow down. The extent of this slow-down may be such that the delay compared to the live edge may become unacceptably large.
[0138] Moreover, if there are large play-out differences between clients, a significant amount of buffering may be needed. For example, when changing channels during a synchronised session, channel changing delays may increase due to this buffering (if synchronised channel change is desired along the synchronised viewing), which may lead to excessively large channel changing delays. Also, the start-up delay for a synchronization session may be large if the play-out differences are large. In this respect, it is noted that typical delay differences for TV broadcasts may range from a few seconds delay differences to over one minute when including internet broadcasts.
[0139] Yet another reason for a poor quality of experience may be that due to, e.g., clock drift at some of the clients, many synchronization actions may be carried out, resulting in, e.g., continuous skipping ahead or pausing of the play-out to synchronise the play-out across clients. This may also hold for varying network circumstances. For example, network congestion may lead to buffer underruns and thus play-out discontinuities for one client, which may disturb the play-out of all clients in the session.
[0140] These synchronization actions may be visible to the user(s), and thus negatively impact their quality of experience. Artefacts such as the play-out temporarily pausing, jumping to another part of the media stream, or playing faster or slower than normal, or large waiting times during a channel change, are all examples of visible synchronization actions. It may thus be a problem to carry out IDMS with a high level of quality of experience for the user(s).
[0141] In particular,
[0142]
[0143] The quality of sync analysis unit 140B may then evaluate the Quality of Synchronization for a subset or all of the clients based on the reported data. For example, the reported quality of sync metrics may be considered as ‘raw’ data from which the overall Quality of Synchronization may be computed, e.g., based on the number of player-initiated playback pauses or skipping events per minutes, etc. In case the Quality of Synchronization is deemed unsatisfactory, the session management unit 140C may then schedule a corrective action to be taken. Different types of corrective actions may be taken so as to address different types of structural deficiencies in the obtaining of the synchronicity with the reference play-out, which may thereby improve the Quality of Synchronization. It is noted that corrective actions differ from synchronization actions, in that they specifically address a structural deficiency in the obtaining of the synchronicity. An example of a corrective action is an adjustment in a delivery of the media stream to at least one of the one or more play-out devices. Another example is that the corrective action may comprise an adjustment in a boundary condition associated with the synchronizing of the play-out of the media stream by the play-out device with the reference play-out.
[0144]
[0145] Accordingly, the metric subsystem may perform as corrective action a clustering or re-clustering of the play-out devices 101-104 in two or more clusters 160B, 160C to which the media synchronization may be separately applied to obtain a more homogenous quality of sync than would have been obtained when applying the media synchronization to the single cluster 160A comprising all of the play-out devices.
[0146] Such corrective action may involve the following: the play-out devices 101-104 may be separated and put together in separate clusters 160B, 160C. The clustering may be based on similarities which appear from the reported data. For example, ‘fast’ clients may be put together in a first cluster while ‘slow’ clients may be put together in second cluster. After such re-clustering, the Quality of Synchronization obtained in each of the clusters 160B, 160C may be greater than the one provided previously by the single cluster 160A, e.g., resulting in a ‘Syncness’ value of 5 instead of 2. Accordingly, a higher quality of experience may be obtained for the users of the play-out devices 101-104 in both clusters, e.g., by there being less buffering time for the fastest play-out devices 103-104 and thus there being less “wait” messages for the fastest play-out devices 103-104, the fastest ones being closer to the live edge, etc.
[0147] Within the context of MPEG-DASH, a workflow may be the following (here, further reference is made to units of the metric subsystem 140 shown in
[0148] 1. The session management unit 140C, acting as or representing an IDMS session manager, may communicate Session Information to clients. The Session Information may be part of a Media Presentation Description (MPD). It may comprise the quality of sync (QoSync) and quality of service (QoS) metrics to be reported by the clients, and identify the way and to whom the clients have to report said metrics. For example, the Session Information may identify the metrics server 140A.
[0149] 2. The clients may join the session, e.g., by a client sending a “Join” message to the IDMS session manager to signal its participation.
[0150] 3. The clients may start retrieving the media content, e.g., a media stream.
[0151] 4. The clients may report the quality of sync and quality of service metrics to the metrics server 140A.
[0152] 5. The quality of sync analysis unit 140B may determine whether some clients experience problems obtaining synchronicity with the reference playback timestamp, and in particular, whether there appears to exist a structural deficiency.
[0153] 6. For example, clients A and B may report poor QoSync and may lag behind the reference playback timestamp. As such, the users of clients A and B may have a poor quality of experience. Clients C, D and F may report good QoSync metrics.
[0154] 7. Because the session offers live content, the IDMS session manager may attempt to maintain the reference playback as close as possible to the live edge.
[0155] 8. The IDMS session manager may therefore create a new session for clients A and B and send new Session Information to them. Additionally, the IDMS session manager may have verified that clients A and B have similar quality of service which increases the chance for them to synchronise together.
[0156] 9. Clients A and B may join the new session and start synchronising.
[0157] 10. Clients A and B may report good quality of sync metrics
[0158] 11. Now two IDMS sessions are open, each representing a different cluster of clients. Session 1 comprising clients C, D and F may be the closest one to the live edge while Session 2 comprising clients A and B may be few seconds behind.
[0159]
[0160]
[0161] In the above example, the synchronization subsystem 120 is preferably aware of the availability of alternative streams and their (general) output timing. This may be the case if the synchronization subsystem 120 is co-located with a media server, or if the media server sends information about the availability and output timing to the synchronization subsystem 120. Also, in case of live content, the synchronization subsystem 120 may learn about the availability and output timing from reports of other clients. The synchronization subsystem 120 is preferably further aware of which streams offer the same content. Note that the instructions may also be general instructions to ‘switch’. A client, upon receiving these instructions, may know if alternative streams are available, and may then switch. This may lead to an improvement of the quality of sync, or it may not. This way, quality of sync may be improved in a trial-and-error manner.
[0162]
[0163]
[0164] As shown in
[0165] Other examples of adjusting the priority or bandwidth of the delivery of the media stream may be the following. For example, in a managed network, a 3GPP (3rd Generation Partnership Project) PCC (Policy Control & Charging) or RACS (Resource & Admission Control Subsystem) architecture may be used to guarantee bandwidth for certain streams. The same may be accomplished using IntServ (Integrated services). Also, in the example of
[0166]
[0167]
[0168] Note that there may be different ways of adjusting a synchronization threshold. In the example of
[0169]
[0170]
[0171] It is noted that delaying the delivery of a media stream by 10 seconds typically constitutes a corrective action which is visible for client 101. As such, the performing of the corrective action may be weighed against other aspects of synchronization quality. In this case, the synchronization algorithm may determine that the additional delay for clients 102 and 103 may have a higher impact on the quality of synchronization than the delay action for client 101. It is also noted that it may be the streaming source 010 that performs the delay action, but it may also be another entity.
[0172] The present invention may have been described within the context of one or more media streams being streamed. However, such media streams may also be accessed by a play-out device in a non-streaming manner, e.g., from a file.
[0173] The following scenario exemplifies an advantageous use of the present invention. An overseas Dutch fan group may gather online to enjoy the 2016 Euro cup finale which opposes the Netherlands and the host country, France. The group may consist of 20 users that are logged into a streaming service. An IDMS cluster may then be created for these 20 users. Before the game starts, the users may be invited to switch on the video feed to start synchronized play-out among the group members. Because the fans are scattered all over the world the quality of synchronization of the various users may be quite different. It may turn out that there are too many resynchronization events that occur to keep the group in sync which ultimately leads to a poor quality of experience. As a result, the service may create two new clusters where clients with similar quality of sync metrics are migrated to. It will be appreciated that in general, quality of sync metrics as reported in the past may be used to preemptively schedule a corrective action. For example, if a certain client always had a fast connection, the client is likely to have one again during a current session. Such historical data may be updated with new measurements during the session. It is noted that the present invention is applicable to various forms of media synchronization, such as to, e.g., for inter-media synchronization in an HbbTV setting. An example is synchronizing an auxiliary stream delivered over the internet containing a sign language interpreter with a main stream representing a regular TV broadcast.
[0174]
[0175] It will be appreciated that a method according to the invention may be implemented in the form of a computer program which comprises instructions for causing a processor system to perform the method. The method may also be implemented in dedicated hardware, or as a combination of the above.
[0176] The computer program may be stored in a non-transitory manner on a computer readable medium. Said non-transitory storing may comprise providing a series of machine readable physical marks and/or a series of elements having different electrical, e.g., magnetic, or optical properties or values.
[0177] It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments.
[0178] In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. Use of the verb “comprise” and its conjugations does not exclude the presence of elements or steps other than those stated in a claim. The article “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.