EP-4738843-A1 - QUALITY AWARE PROFILE FILTERING IN CONTENT DELIVERY
Abstract
In some embodiments, a method determines an instance of content to be delivered to a client device. The content includes segments that are associated with a plurality of profiles. A target metric and a bandwidth distribution are determined. The method determines a plurality of top profile decisions for the plurality of segments where a top profile decision lists a top profile that can be selected for respective segments in the plurality of segments. A performance of the target metric is determined for the plurality of top profile decisions based on the bandwidth distribution. The method selects a top profile decision from the top profile decisions based on the performance of the target metric for the top profile decisions. The top profile decision is used to determine a target quality. The target quality is used to select top profiles for requesting segments in the segments during playback of the content.
Inventors
- HUANG, LEMEI
- Dai, Tongyu
- ZHANG, WENHAO
- CHEN, Si
- HOWE, THOMAS
Assignees
- Disney Enterprises, Inc.
- Beijing YoJaJa Software Technology Development Co., Ltd.
Dates
- Publication Date
- 20260506
- Application Date
- 20250724
Claims (15)
- A method comprising: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a plurality of top profile decisions for the plurality of segments, wherein a top profile decision lists a top profile that can be selected for respective segments in the plurality of segments; determining a performance of the target metric for the plurality of top profile decisions based on the bandwidth distribution; selecting a top profile decision from the plurality of top profile decisions based on the performance of the target metric for the plurality of top profile decisions; and using the top profile decision to determine a target quality, wherein the target quality is used to select top profiles for requesting segments in the plurality of segments during playback of the instance of content.
- The method of claim 1, wherein the target metric is selected from a first metric based on data saved and a second metric based on quality loss.
- The method of claim 1 or 2, wherein the bandwidth distribution is based on a download bandwidth probability.
- The method of any one of claims 1 to 3, wherein the bandwidth distribution is based on information from the client device.
- The method of any one of claims 1 to 4, wherein determining the target metric comprises: receiving a target value for the target metric, and wherein optionally the target value for the target metric is adaptable per instance of content or client device.
- The method of any one of claims 1 to 5, wherein determining the plurality of top profile decisions comprises: determining metric values of a quality metric for profiles in the plurality of profiles; and determining an interval partition based on the metric values of the quality metric for a segment, wherein interval partition lists a set of metric values for the quality metric to form intervals that are associated with respective profiles.
- The method of any one of claims 1 to 6, wherein determining the plurality of top profile decisions comprises: determining an interval partition for multiple segments in the plurality of segments; and determining a representation that includes a single interval partition that represents the interval partitions of the multiple segments, and wherein optionally: the representation includes a plurality of intervals, each interval lists a top profile for respective segments in the multiple segments, and a top profile decision is determined for each interval.
- The method of any one of claims 1 to 7, wherein determining the performance of the target metric for the plurality of top profile decisions comprises: evaluating a probability of selecting profiles in the plurality of profiles; and predicting a first value for the target metric based on the performance of the metric using a constraint with the top profile from the top profile decision and a second value for the target metric without using the constraint, wherein the first value and the second value are used to determine a third value for the performance of the target metric that is used to select the top profile decision; and/or wherein determining the performance of the target metric for the plurality of top profile decisions comprises: predicting the performance of a second metric using the constraint with the top profile from the top profile decision and without using the constraint; and predicting a fourth value for the second metric based on the performance of the metric using the constraint with the top profile from the top profile decision and a fifth value for the second metric without using the constraint, wherein the fourth value and the fifth value are used to determine a sixth value for the performance of the second metric that is used to select the top profile decision.
- The method of any one of claims 1 to 8, wherein the target metric is used to select the top profile decision based on the second metric.
- The method of any one of claims 1 to 9, wherein selecting the top profile decision comprises: comparing a target value for the target metric for respective target profile decisions the plurality of top profile decisions to select the top profile decision, and wherein optionally comparing the target value for the target metric comprises: using a target value for a second metric to select the top profile decision.
- The method of any one of claims 1 to 10, wherein the top profile decision includes a target value for the target metric that is closer to the target metric than another top profile decision in the plurality of top profile decisions.
- The method of any one of claims 1 to 11, wherein using the top profile decision to determine the target quality comprises: selecting a target quality value based on an interval of quality values that is associated with the top profile decision; and/or wherein top profile decisions in the plurality of top profile decisions are associated with different intervals of quality values.
- A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a plurality of top profile decisions for the plurality of segments, wherein a top profile decision lists a top profile that can be selected for respective segments in the plurality of segments; determining a performance of the target metric for the plurality of top profile decisions based on the bandwidth distribution; selecting a top profile decision from the plurality of top profile decisions based on the performance of the target metric for the plurality of top profile decisions; and using the top profile decision to determine a target quality, wherein the target quality is used to select top profiles for requesting segments in the plurality of segments during playback of the instance of content.
- The non-transitory computer-readable storage medium of claim 13, wherein determining the performance of the target metric for the plurality of top profile decisions comprises: evaluating a probability of selecting profiles in the plurality of profiles; and predicting a first value for the target metric based on the performance of the metric using a constraint with the top profile from the top profile decision and a second value for the target metric without using the constraint, wherein the first value and the second value are used to determine a third value for the performance of the target metric that is used to select the top profile decision.
- An apparatus comprising: one or more computer processors; and a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a plurality of top profile decisions for the plurality of segments, wherein a top profile decision lists a top profile that can be selected for respective segments in the plurality of segments; determining a performance of the target metric for the plurality of top profile decisions based on the bandwidth distribution; selecting a top profile decision from the plurality of top profile decisions based on the performance of the target metric for the plurality of top profile decisions; and using the top profile decision to determine a target quality, wherein the target quality is used to select top profiles for requesting segments in the plurality of segments during playback of the instance of content.
Description
BACKGROUND In adaptive bitrate streaming, content is encoded in multiple profiles with different bitrates, qualities, or bitrates and qualities. Then, during playback, a media player may adaptively switch between the different profiles according to a criteria, such as available bandwidth. However, not all the profiles may be necessary for all types of devices. For example, on some devices, such as smartphones with limited computing resources or smaller screens, users may not notice a quality improvement of selecting a profile with a very high bitrate. However, providing a very high bitrate may result in a higher risk of rebuffering where not enough content is available to meet the playback rate of the media player, a higher cost for users due to the delivery of cellular data, or a higher cost for a company that is transferring the data. BRIEF DESCRIPTION OF THE DRAWINGS The included drawings are for illustrative purposes and serve only to provide examples of possible structures and operations for the disclosed inventive systems, apparatus, methods and computer program products. These drawings in no way limit any changes in form and detail that may be made by one skilled in the art without departing from the spirit and scope of the disclosed implementations. FIG. 1 depicts a simplified system for performing profile filtering according to some embodiments.FIG. 2 depicts a simplified flowchart of a method for determining the top profile decisions according to some embodiments.FIG. 3A depicts an example of the video quality intervals according to some embodiments.FIG. 3B depicts an example of a representation of the reduction according to some embodiments.FIG. 4 depicts a simplified flowchart of a method for predicting the performance of top profile decisions according to some embodiments.FIG. 5 depicts a simplified flowchart by method for selecting the target video quality according to some embodiments.FIG. 6 illustrates one example of a computing device according to some embodiments. DETAILED DESCRIPTION Described herein are techniques for a content delivery system. In the following description, for purposes of explanation, numerous examples and specific details are set forth to provide a thorough understanding of some embodiments. Some embodiments as defined by the claims may include some or all the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein. System Overview In some embodiments, a system uses a profile filtering process to exclude some profiles that are available to client devices. Content, such as a video, audio, video and audio, or other multimedia content, may be encoded in multiple profiles that correspond to different levels, which may be different levels of bitrates, quality, or bitrate and quality. The profiles may be included in a profile ladder. The system may receive adaptable parameter settings that meet specified targets, such as quality of service targets. In some embodiments, the system may use targets of a maximum tolerable quality loss or a minimum required data saved ratio, but other targets may be used based on the performance metric that is used. The value of the target may also be varied, such as an absolute value or percentage may be used for either. The maximum tolerable quality loss may be the maximum amount of quality that is lost by removing profiles from the profile ladder. The minimum required data saved ratio may be the minimum data saved ratio based on data saved by removing one of the profiles. These parameters may be adjusted, and based on the values, the process may analyze the profiles for multiple segments to select a target video quality for the content. The target video quality may be sent to a client device. Then, the client device uses the target video quality to perform profile filtering of a profile ladder. The profile filtering may remove profiles from the profile ladder. Accordingly, an adaptive bitrate algorithm may not be able to select these profiles during playback of the content. The selection of the target video quality using the parameters may improve the content delivery process. For example, the profiles that are removed may cause the delivery of the content to optimally meet the target quality of service that is desired. The profile filtering process may analyze possible combinations of top profiles for segments to determine an optimal decision of top profiles for segments. That decision is used to select the target video quality. This process may select the target video quality that may result in profiles being removed at the client device that may meet the target quality of service when the content is delivered. This may result in resources being saved or being used more efficiently. For example, data being transferred through the network may be saved due to removing profiles that may not be necessary for a type