Dynamic quality adaptation for multi-resolution transmission of content segments
Patent Information
- Application Number
- FR2023009824
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-18
- Publication Date
- 2025-03-21
- Estimated Expiration
- Not applicable · inactive patent
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Dynamic quality adaptation for multi-resolution transmission of content segments. FIELD OF THE INVENTION
[0001] The present invention relates to the field of transmission over a telecommunications network of data streams, in particular comprising digital multimedia content, namely digital audio and / or video content, also called audiovisual content.
[0002] It relates more specifically to the management of access by a reading device to segments of content accessible from content servers. This content can be multimedia content (video or audio-video for example) which can be in real time (called "live" content by those skilled in the art, or direct), or on demand (VoD for "Video on Demand").
[0003] In a conventional way, a data stream, especially multimedia content, is divided into segments.
[0004] These segments can be obtained in different ways. In particular, the segments can be obtained in unicast mode, for example in U-ABR mode (for "unicast adaptive bitrate" in English), or in multicast mode, for example in M-ABR mode (for "multicast adaptive bitrate" in English).
[0005] The U-ABR and M-ABR modes allow content segments to be downloaded according to a progressive adaptive downloading (or "adaptive streaming" in English) technique by a person skilled in the art.
[0006] The same content is transmitted in different resolutions to which each terminal can subscribe.
[0007] In a unicast retrieval (or transmission) mode, segments are transmitted between a sender (content server, etc.) and a receiver (a reading device, etc.). When several reading devices wish to obtain the same content, the segments are transmitted to each independently, in as many segment streams.
[0008] The multicast delivery (or transmission) method aims to pool transmission resources to multiple recipients. Recipients wishing to obtain the content request to subscribe to this multicast transmission service. A mechanism is then implemented to connect these new recipients to an existing distribution tree. This connection aims to optimize the pooling of transmission resources by taking into account the network topology.
[0009] Thus, the closer one is to the source of content, the more there is sharing, that is to say, the same segment is transmitted only once for a set of recipients. distinct natives. This results in a substantial gain in bandwidth.
[0010] In general, in an audiovisual distribution network, CDN (for "Content Delivery Network"), the streams of content segments are
[0011] In all cases, content segments at different resolutions are transmitted to an intermediate agent, which is closest to the recipient terminals and which is responsible for retransmitting the content segments to each terminal in the resolution that it requires and in unicast mode.
[0012] In such a scheme, it is understood that the intermediate agents must process the incoming segment streams in real time to distribute the appropriate packets to the terminals. Furthermore, terminals connected to the same intermediate agent may require different content.
[0013] However, intermediate agents are generally embedded in personal gateways which do not have very significant resources, both in terms of processing capacity and memory capacity.
[0014] Also, as the number of terminals and / or the number of content requested, and / or the number of resolutions per content requested by the agents increases, the agent can become a bottleneck and penalize the overall performance of the content distribution network and the user experience of the terminals.
[0015] Such a situation is not acceptable to users, and therefore there is a need to improve current state-of-the-art proposals. Summary of the invention
[0016] The invention aims to improve the overall user experience of terminals connected to a content distribution network via an intermediary agent. In particular, it aims to avoid, or at least minimize, this contention phenomenon at the level of intermediary agents.
[0017] To this end, according to a first aspect, the present invention can be implemented by a method of distributing a stream of content segments by at least one agent to a plurality of terminals, said method comprising, for each reception from a server in a multi-resolution transmission mode in response to a request specifying a maximum resolution: - a step of distributing said stream of content segments to said terminals in a respective resolution, - a verification step for a load criterion of said agent, and, - an adaptation step based on said verification, including a modification of the distribution of content segments to terminals
[0018] According to preferred embodiments, the invention comprises one or more of the following features which may be used separately or in combination partial combinations or total combinations: - The modification includes determining a new maximum resolution for transmitting a subsequent request to said server. This reduces the resource requirements at the agent level. - The modification includes establishing a connection from at least one terminal of said plurality to said server in order to directly receive said content segments. This also allows for a reduction in the agent's resource requirements by rerouting certain traffic. Establishing a connection involves transmitting a message to at least one terminal, specifically designed to trigger a request from that terminal to the server to receive the content segments. This allows the agent to maintain control and decide, on the fly, whether to redirect traffic or reintegrate it, depending on changes in its own workload. - The adaptation step is only triggered if the number of terminals among the aforementioned plurality is less than a given threshold. This allows us to adjust the degradation of the maximum resolution associated with content based on the number of terminals receiving that stream, thereby minimizing the number of users affected. - The load criterion includes a comparison with a given threshold of a measurement of the activity of a processor of said agent and / or a measurement of the fill level of a memory of said agent. These criteria make it possible to reveal the load state of an agent, implying the degradation of its performance, but other criteria can also be considered as alternatives or cumulatively. - the load criterion depends on a number of flows received by said agent and / or a number of resolutions and / or a number of terminals of said plurality. - the multi-resolution transmission mode is an adaptive bitrate multicast transmission mode, m-ABR. - The agent is embedded in a gateway, for example a personal gateway such as the Livebox™ from Orange. This avoids the need for an additional device.
[0019] Another aspect of the invention relates to an agent for distributing a stream of content segments to a plurality of terminals, said stream of content segments being received from a server in a multi-resolution transmission mode in response to a request specifying a maximum resolution, said agent being adapted for - distribute said stream of content segments to said terminals in a respective resolution, - verify a load criterion for said agent and, - Based on said verification, modify the distribution of content segments to terminals
[0020] Another aspect of the invention relates to a gateway comprising an agent as previously defined.
[0021] Another aspect of the invention relates to a computer program suitable for implementation on a supervisory device, the program comprising code instructions which, when executed by a processor, carries out the steps of the process as previously described.
[0022] Another aspect of the invention relates to a data carrier on which at least one series of program code instructions for the execution of a process as previously described has been stored.
[0023] Other features and advantages of the invention will become apparent from the following description of a preferred embodiment of the invention, given by way of example and with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE FIGURES
[0024] The attached drawings illustrate the invention: - [Fig. 1] illustrates a telecommunications network enabling the implementation of a process according to embodiments of the invention; - Fig. 2 illustrates a flowchart of a possible method for distributing a stream of content segments by an agent to a plurality of terminals, according to an implementation of the invention. - Figures 3a and 3b illustrate an example of the process, according to an implementation of the invention.
[0025] DETAILED DESCRIPTION OF EMBODIMENT METHODS OF THE INVENTION
[0026] Fig. 1 illustrates a telecommunications network, NET, enabling the routing of data streams, formed of content segments, to a plurality of terminals or reading devices T1, T2, T3.
[0027] These terminals or reading devices can be of different types, such as, in particular, a mobile terminal, a connected television, a computer, etc.
[0028] The mobile terminal can typically be a "smartphone" type smart phone or a digital tablet, adapted to receive multimedia streams and to produce them on an interface of the terminal or connected to said terminal.
[0029] The television can be natively connected or connected via an associated device such as, for example, an HDMI dongle connected to the television.
[0030] An example of an external device communicating with a TV is Chromecast. Chromecast is a real-time media streaming device (media gateway) developed and marketed by Google. The device plugs into the HDMI port of a TV and communicates, via Wi-Fi, with another device connected to the Internet (computer, smartphone, tablet, etc.) in order to display on the TV the multimedia content received from an application compatible with Google Cast technology, from the Google Chrome browser on a computer, or from certain Android devices.
[0031] In the latter case, the multimedia content reading device can be this associated device.
[0032] Data streams can be multimedia streams. These typically include video or audio-video streams (or content). They can also include audio streams (music, radio broadcasts, etc.) or interactive content (including games). They can be on-demand content or live content. This transmission method can be an IPTV (Internet Protocol Television) type transmission method, but other transmission methods are obviously possible.
[0033] Generally speaking, the contents are divided into segments.
[0034] When an adaptive download mode of the ABR (Adaptive Bit Rate) type is implemented, the segments can be available in several resolutions. A so-called "manifest" file allows the reading devices, T, to choose a resolution based in particular on their local environment.
[0035] In unicast mode, these manifest files are transmitted directly by the unicast servers and the terminals negotiate directly with the server to choose the desired resolution.
[0036] In multicast mode (m-ABR), manifest files are provided to terminals by agent A, and the terminals negotiate with this agent to choose the desired resolution. The corresponding segments are then transmitted to them locally in unicast mode.
[0037] Thus, the agent functions, from the point of view of agents, essentially like a content delivery network server, CDN. Also, such an agent is sometimes called a "nano CDN".
[0038] Resolutions correspond to qualities of video (and / or audio) content and consequently to different bit rates on the telecommunications network.
[0039] The qualities available in ABR may vary depending on the video streaming platform used, but generally and currently, common qualities include: - Very low quality: often suitable for users with connections For very slow or unstable internet connections, this quality may have a resolution of 240p and a bitrate of 200 kbps. - Low quality: This quality is suitable for more stable but still relatively slow Internet connections, with a resolution of 360p and a bitrate of 400-700 kbps. - Standard quality: This quality is suitable for most Internet connections, with a resolution of 480p or 720p and a bitrate of 800 kbps to 2 Mbps. - High quality: This quality is suitable for fast and reliable Internet connections, with a resolution of 1080p and a throughput of 2-5 Mbps. - Very high quality: this quality is suitable for very fast Internet connections, with a 4K resolution and a speed of more than 10 Mbps.
[0040] It is important to note that the available qualities may vary depending on the user's and network's bandwidth capabilities, as well as the quality and complexity of the video content being streamed. The "manifest" file may therefore be modified according to variations made at the network or content server level.
[0041] This content may initially be available on an SC source.
[0042] This source is connected to a content delivery network, CDN (for "Content Delivery Network") via a server S, which is responsible in particular for shaping the segments for multi-resolution transmission, ABR, and for setting up a multicast transmission mode, for example m-ABR (for "multicast ABR").
[0043] The content distribution network forms, in a way, an overlay to the telecommunications network, NET, such as Intermet.
[0044] The CDN content delivery network may include one or more distinct content servers. These servers may be unicast or multicast servers. In [Fig. 1], a single server S is shown, but it should be understood that the method and agent described below can take into account a multiplicity of servers.
[0045] Typically, the segments from the SC source are transmitted to a first unicast server and to a second multicast server. The multicast server, or "multicaster," can receive the segments from the unicast server when a decision is made to enable multicast transmission. This decision can, for example, be made by the first content server or by a monitoring device that is aware of the number of playback devices wishing to receive given content.
[0046] The CDN content delivery network also includes intermediate equipment, or "agents". These agents A can form a gateway between the public network on which the CDN content delivery network is deployed and a private network to which are connected different content reading devices, T1, T2, T3.
[0047] This local network can be a network installed at a user's premises (home network) allowing them to connect various equipment, or content playback devices, both to each other and to the gateway to the public network. Such a local network can conform to different technologies, for example Wi-Fi, Ethernet™, Bluetooth, etc., or to a combination of several such networks.
[0048] According to one embodiment, agent A is embedded in a gateway belonging to the home network and the public network. This gateway can also provide additional functionalities such as that of a Wi-Fi router, etc.
[0049] An example of such a gateway is the Livebox™ from the company Orange.
[0050] Fig. 2 illustrates a flowchart of a possible method for distributing a stream of content segments by an agent A to a plurality of terminals, T1, T2, T3.
[0051] This process is iterative because the agent transmits series of requests in order to receive content segments in response.
[0052] According to the proposed method, at each iteration, it is checked whether a condition on a load criterion is met in order to decide on a possible adaptation of the resolutions requested at the next iteration.
[0053] The illustrated process relates to a single server, for the sake of simplicity of explanation, but it is clear that this same process applies, mutatis mutandis, to a plurality of servers S.
[0054] In an SI step, agent A transmits a request to a content server S specifying a maximum resolution.
[0055] This maximum resolution is determined from the resolutions proposed by the server S through a manifest file describing the available resolutions.
[0056] These resolutions available from server S can be offered by agent A to the terminals T1, T2, T3 connected to it (within a local network) via a manifest file. The terminals can then choose a resolution based on their own environment (for example, the quality of the connection to agent A, their screen resolution, their processing power, user preferences, etc.).
[0057] The maximum resolution required by the agent from the server S can also be determined based on the choices of the different terminals. It can, for example, correspond to the maximum resolution chosen by the terminals (for the same content).
[0058] In response to this SI request, the server S transmits, in a step S2, the segment(s) in multi-resolution transmission corresponding to the maximum resolution required to agent A.
[0059] In a step S3, agent A distributes the received content segments to terminals T1, T2, T3 in the resolution chosen by each of them.
[0060] The transmission of the segments is a consequence of the reception of requests from segments transmitted by the terminals to agent A.
[0061] Fig. 3a illustrates an example of implementation with three terminals, T1, T2, T3, each having chosen a different resolution, respectively rl, r2, r3. In the illustrated example, it is assumed that these resolutions are ordered by quality order rl > r2 > r3.
[0062] The segments are transmitted in the 3 possible resolutions r1, r2, r3 from the server to the agent. Agent A processes the received segments conventionally to distribute them to terminals T1, T2, T3
[0063] In an S4 step, the agent checks a load criterion.
[0064] In one embodiment, this load criterion may include a comparison with a given threshold of a measurement of the activity of a processor of agent A, and / or of a measurement of the fill level of a memory of said agent. This memory may be RAM or Flash memory of agent A. Of course, the load criterion may include comparisons of other measurements as well.
[0065] The agent's workload may be related to a large volume of data processed.
[0066] The volume of this data is linked - the number of data streams received - the number of resolutions for each data stream - at the maximum resolution for each data stream (because the higher the quality of the resolution, the larger the associated data and the more processing resources are required), - the number of terminals connected to the agent to receive segments.
[0067] In one embodiment, agent A can be considered to be in charge when at least one of the measurements taken exceeds an associated threshold. In another embodiment, an overall comparison can be made based on a sum, possibly weighted, of the different measurements and its comparison with a single threshold.
[0068] The different thresholds can be determined beforehand.
[0069] According to one embodiment, the load criterion may depend on a number of flows received by agent A, and / or a number of resolutions and / or a number of terminals connected to agent A.
[0070] Depending on the result of the load criterion verification step, an adaptation step S5 may or may not be implemented.
[0071] This step S4 may include determining a change in the charge of the agent, and in particular detecting transitions between a normal state and a charged state as well as from a charged state to a normal state.
[0072] Transitions between different load levels can also be considered. Adaptation rules can then be associated according to the load levels.
[0073] If the load state is constant, that is, if the result of the load criterion check is the same as in the previous iteration (when requesting the previous content segments), then there is no need for adaptation, and the process loops back to the SI step of transmitting a request for new segments to the server S. This request specifies the same maximum resolution as the main request (unless one of the connected terminals chooses a change in resolution).
[0074] If the state of charge is not constant, that is to say if we go from an iteration where the charge criterion is met to an iteration where the charge criterion is no longer met, or vice versa, then an adaptation step S5 can be triggered.
[0075] This S5 adaptation step includes a modification of the distribution of content segments to terminals.
[0076] The modification of the distribution can be implemented in different ways.
[0077] This modification of the distribution may include the determination of a new maximum resolution for the transmission of a subsequent request to said server.
[0078] In the event of a load degradation, the adaptation aims to reduce the need for resources on the agent by lowering the maximum resolution required on the server S.
[0079] According to one embodiment, the maximum resolution is lowered by one level.
[0080] Since the maximum resolution has the greatest impact in terms of resources used, lowering it makes it possible to substantially reduce the load on the agent while maintaining acceptable quality for the largest number of connected terminals.
[0081] When agent A handles several streams of different content segments, the maximum resolution may only be lowered for certain streams of segments only.
[0082] For example, the S5 adaptation step is triggered only if the number of terminals among said plurality is less than a given threshold. In which case, an adaptation can be triggered for other flows of content segments passing through the same agent.
[0083] It is therefore possible to choose to arbitrate the degradation of the maximum resolution associated with content, based on the number of terminals receiving that stream. For example, the maximum resolution of content streams corresponding to the smallest number of subscribed terminals can be lowered. Thus, with a substantially equal gain in processing resources, a smaller number of users are penalized.
[0084] Thus, if several terminals receive a first content string and only one terminal receives a different content string, it will be preferable to degrade the quality for that other terminal, or to force its direct connection to the server corresponding to that other string. This optimizes the agent's resource management for the greatest number of terminals.
[0085] Furthermore, concurrent tasks can also be deployed on the agent, such as so that its load can evolve over time independently of the loads induced solely by content segment streams. Therefore, the proposed S5 adaptation step can be triggered even when terminals do not modify the desired qualities in requests (the S4 verification step being implemented for every content segment request).
[0086] Furthermore, adapting the distribution of content segments to terminals can also include establishing a connection between at least one terminal from the plurality and the server S in order to receive the content segments directly. In other words, the content segment stream then passes through the agent, thus reducing its load.
[0087] Establishing a connection may include transmitting to at least one terminal a message suitable for triggering a request from it to the server S to receive the content segments.
[0088] In the case of an improvement (i.e., a decrease) in load, the adaptation aims to increase the quality for terminal users by increasing the maximum resolution required of the server S. In general, this involves returning to a situation prior to a previous degradation.
[0089] This adaptation step therefore includes determining a new maximum resolution. This new maximum resolution is then transmitted to the server S in the SI step of the next iteration.
[0090] In general, during the initialization phase, terminals will require increasing qualities over time, until they reach a target quality or the limits of the network (or the agent or the server). The proposed method applies to this mechanism by allowing dynamic adaptation at each stage of terminal power ramp-up: access to a higher quality is thus subject to the proposed S5 adaptation mechanisms.
[0091] In the example in [Fig. 3b], related to the example in [Fig. 3a], an excessive charge of agent A is assumed (the charge criterion is met). The adaptation step S5 is therefore triggered. A new maximum resolution is thus determined.
[0092] In the example of Figures 3a, 3b, the maximum resolution is lowered by one level: among the resolutions rl, r2, r3, the highest quality maximum resolution rl is therefore removed. Following the detection of the load state, the query R in new segments therefore specifies the resolution r2 as the maximum resolution.
[0093] At the iteration of [Fig.3b], the server S therefore transmits segments at resolutions r2 and r3.
[0094] Terminal T2 was already receiving the stream of content segments in r2 resolution, and therefore there is no change for it. The same applies to terminal T3, which was already receiving the content in r3 resolution.
[0095] However, terminal Tl previously received the stream of segments in the resolution rl. Since this resolution rl is no longer available, it must adapt by choosing (for example) the maximum available resolution, r2.
[0096] Later, if the load state of agent A improves, it can again request the rl resolution from the server S and make this rl resolution available to terminals T1, T2, T3. Terminal T1 can then choose to subscribe to this resolution again.
[0097] As mentioned previously, "making available" a resolution can consist of publishing a manifest file accessible to terminals and specifying the different resolutions available.
[0098] According to one embodiment, the adaptation step S5 also includes the transmission to at least one terminal of an adapted message to trigger a request from that terminal to the server S to receive the content segments.
[0099] In other words, the agent forces the disconnection of one or more terminals by redirecting them directly to the server. Thus, agent A no longer has to manage the steps of receiving and distributing segments for this or these terminals, thereby freeing up its own resources.
[0100] However, this redirection can be performed for each iteration, so that the agent always retains control and can, when the S4 load criterion check step shows an improvement in the agent's load status, reconnect the terminal(s) in question. Again, the agent will act as an intermediary and nano-CDN server: it will receive the segments from the S server and distribute them to the terminals with the required resolution.
[0101] This mechanism can be an alternative, for the terminal, to the degradation of the content resolution. Following the determination of a lower maximum resolution, the terminal(s) associated with it can be redirected directly to the S server.
[0102] In the example of [Fig.3b], the terminal Tl can thus download the content segments in rl resolution directly from the server S.
[0103] According to one embodiment, this mechanism can make it possible to avoid degrading the maximum resolution and therefore provides an alternative to the adaptation step based on determining a new maximum resolution.
[0104] For example, if several terminals receive the same content at maximum resolution, but a single terminal (or a smaller number) receives different content, even at a lower resolution, it may be chosen to lower this resolution, and redirect the latter to the server S, in order to relieve agent A.
[0105] Of course, the present invention is not limited to the examples and embodiment described and illustrated, but is defined by the claims. In particular, it is susceptible of numerous variations accessible to those skilled in the art.
Claims
Claims
1. Method for distributing a stream of content segments by at least one agent to a plurality of terminals, said method comprising for each reception (S2) from a server (S) in a multi-resolution transmission mode in response to a request (SI) specifying a maximum resolution: - a step of distributing (S3) said stream of content segments to said terminals in a respective resolution, - a step of verifying (S4) a load criterion of said agent, and, - a step of adapting (S5) as a function of said verification, comprising a modification of the distribution of the content segments to the terminals.
2. Method according to the preceding claim, in which said modification comprises a determination of a new maximum resolution for transmission (SI) of a following request to said server (S).
3. Method according to one of the preceding claims, wherein the modification comprises establishing a connection of at least one terminal of said plurality to said server in order to directly receive said content segments.
4. Method according to the preceding claim, wherein said establishment of a connection comprises a transmission to said at least one terminal of a message adapted to trigger a request from said at least one terminal to said server (S) to receive said content segments.
5. Method according to one of the preceding claims in which said adaptation step (S5) is triggered only if a number of terminals among said plurality is lower than a given threshold.
6. Method according to one of the preceding claims, in which said load criterion comprises a comparison with a given threshold of a measurement of activity of a processor of said agent and / or of a measurement of filling of a memory of said agent
7. Method according to one of the preceding claims in which said load criterion depends on a number of flows received by said agent and / or of a number of resolutions and / or of a number of terminals of said plurality.
8. Method according to one of the preceding claims, wherein said multi-resolution transmission mode is an adaptive rate multicast transmission mode, m-ABR.
9. Method according to one of the preceding claims, in which said agent is embedded in a gateway.
10. Agent for distributing a stream of content segments to a plurality of terminals, said stream of content segments being received from a server in a multi-resolution transmission mode in response to a request specifying a maximum resolution, said agent being adapted to: - distribute said stream of content segments to said terminals in a respective resolution, - verify a load criterion of said agent and, - depending on said verification, modify the distribution of the content segments to the terminals.
11.
12. Gateway comprising an agent according to the preceding claim. Computer program capable of being implemented on a management entity, the program comprising code instructions which, when executed by a processor, performs the steps of the method defined in claims 1 to 9.
13. Data carrier on which at least one series of program code instructions has been stored for executing a method according to one of claims 1 to 9.
Citation Information
Patent Citations
Method and gateway for the automatic redistribution of at least one adaptive bitrate multicast stream
FR3126833A1
Method and system for audio-visual live content delivery
US20210314631A1