Sign In to Follow Application
View All Documents & Correspondence

System And Method For Adaptive Bitrate Streaming

Abstract: A method for adaptively selecting a bitrate for streaming media content includes receiving a request from a user device (102A-N) associated with a user (104A-N) for streaming the media content to the user device (102A-N) over a network (110). One or more parameters including network characteristics of the network (110), device parameters of the user device (102A-N), quality attributes determined from received segments of the media content, and an interactive user action performed in response to the received media segments are received. An experience index that is indicative of a response of the user (104A-N) to the received media segments is determined. The bitrate for streaming a subsequent segment of the media content to the user device (102A-N) is selected using a machine learning system (108) based on the determined experience index and historical data, and the subsequent segment is streamed to the user device (102A-N) at the selected bitrate. FIG. 1

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
31 March 2017
Publication Number
40/2018
Publication Type
INA
Invention Field
COMMUNICATION
Status
Email
shery.nair@tataelxsi.co.in
Parent Application
Patent Number
Legal Status
Grant Date
2024-01-18
Renewal Date

Applicants

TATA ELXSI LIMITED
TATA ELXSI LIMITED, ITPB ROAD, WHITEFIELD, BANGALORE-560048.

Inventors

1. SARAVANAN THECKYAM SANTHAMOORTHY
TATA ELXSI LIMITED, ITPB ROAD, WHIETFIELD, BANGALORE-560048.

Specification

DESC:BACKGROUND

[0001] Embodiments of the present specification relate generally to streaming media content over a network. More particularly, the present specification relates to a system and method for streaming media content to a client device over the network at suitable bitrates for improving user’s experience.
[0002] Streaming multimedia refers to transmitting multimedia content that is stored on a server to client devices over a communications network such as the internet. The multimedia content is continuously transmitted from the server to the client devices at a constant bitrate (CBR) or at a variable bitrate (VBR). Streaming multimedia content to a client device at a constant bitrate may hinder a user’s viewing experience. For example, when a network’s bandwidth is less than a bitrate at which the multimedia content is currently being streamed, the multimedia stream undergoes buffering. In addition, a network buffer may overflow leading to packet loss resulting in garbled playback of the multimedia content. To address these problems associated with streaming multimedia content at a constant bitrate, adaptive bitrate streaming technology was developed.
[0003] Conventional adaptive bitrate streaming protocols encode multimedia content at different bitrates and create multiple versions of the same multimedia content such that each version corresponds to a desired bitrate. Examples of such conventional adaptive bitrate streaming protocols include hypertext transfer protocol (HTTP) live streaming (HLS), HTTP dynamic streaming (HDS), smooth streaming, and moving picture experts group-dynamic adaptive streaming over HTTP (MPEG-DASH). Subsequently, each version of the multimedia content is segmented into small chunks, for example, of multi-second parts. Thus, the conventional adaptive bitrate streaming technologies provide multiple small chunks of the multimedia content and each of the small chunks is available at different bitrates.
[0004] Typically, systems and methods implementing the conventional adaptive bitrate streaming protocols select an appropriate bitrate from the different bitrates available on the server for streaming the multimedia content to the client device based on network characteristics that are received as a feedback from the client’s device. Examples of such network characteristics include available bandwidth, network congestion data, multimedia packet arrival rate, bitrates of streams received by the client device, loss of packets, and latency. For instance, when the network is congested, the systems and methods implementing the conventional adaptive bitrate streaming technologies select a low bitrate multimedia version for transmitting to the client device until network conditions improve. Once the network condition improves, the systems and methods may select a high bitrate multimedia version if the network bandwidth is capable of streaming such high bitrate multimedia version continuously.
[0005] However, the current systems and methods implementing adaptive bitrate streaming select an appropriate bitrate for streaming the multimedia content based only on the network characteristics. In addition, the current systems and methods consider quality of experience (QoE) and quality of service (QoS) based primarily on the network characteristics that are inadequate or inefficient for selecting appropriate bitrates. Because the network characteristics keep changing and changes in the network characteristics may cause audio or video related quality errors that may be acceptable by a first group of users and may not be acceptable by a second group of users. Hence, merely selecting bitrates for streaming media content based on the network characteristics may not provide end user’s satisfaction for all group of users. Accordingly, there remains a need for systems and methods that consider not only network characteristics but also other parameters for improving end users QoE and QoS by intelligently selecting suitable bitrates for streaming multimedia content. In addition, there remains a need for systems and methods that are capable of self-learning to determine which bitrate to select for streaming segments of the multimedia content in real-time based on measured end user experience.

BRIEF DESCRIPTION

[0006] According to an exemplary aspect of the present specification, a method for adaptively selecting a bitrate for streaming media content is provided. The method includes receiving a request from a user device associated with a user for streaming the media content to the user device over a network. The one or more parameters including one or more network characteristics associated with the network, one or more device parameters associated with the user device, one or more quality attributes determined from one or more received segments of the media content, and an interactive user action performed by the user in response to the received media segments are received. The received quality attributes and the interactive user action may indicate a dissatisfaction of the user with the received media segments.
[0007] An experience index that is indicative of a response of the user to the received media segments is determined based on one or more of the received quality attributes and the received interactive user action. The bitrate for streaming one or more subsequent segments of the media content to the user device is adaptively selected using a machine learning system based on the determined experience index and historical data. The historical data includes historical values of one or more of the parameters that are collected during streaming of a plurality of media content to a plurality of user devices over a designated period of time in the past. The parameters include one or more network characteristics, device parameters, quality attributes, interactive user actions, experience indices, and historically selected bitrates. The bitrate is communicated to one or more of the user device and the content server for streaming the one or more subsequent segments of the media content from a content server to the user device at the selected bitrate.
[0008] The one or more quality attributes associated with the received media segments may include one or more of a restart of a media playback, a blur, a pixellation, and a macroblocking. The interactive user action may include one or more of restarting playback of the media content, forwarding at least a segment of the media content, rear-warding at least a segment of the media content, pausing the media content, skipping one or more segments of the media content, and navigating from a currently streaming media content to another media content. The machine learning system may be trained using training data. The training data may include the historical data. The experience indices of a plurality of users associated with the plurality of user devices may be determined based on one or more of the quality attributes and the interactive user actions.
[0009] A plurality of feature vectors may be generated based on the one or more historical parameters. Each of the plurality of feature vectors may correspond to an input layer of the machine learning system and may include one or more values associated with one or more of the network characteristics, the device parameters, the quality attributes, the interactive user actions, and the experience indices. The historically selected bitrates associated with the plurality of the feature vectors may be identified from the historical data. A first subset of feature vectors and a second subset of feature vectors may be identified from the plurality of feature vectors. The first subset of feature vectors may correspond to positive experience indices. The second subset of feature vectors may correspond to negative experience indices.
[0010] The machine learning system may learn suitable bitrates for the first subset of feature vectors by selecting the historically selected bitrates associated with the first subset of feature vectors as the suitable bitrates. The suitable bitrates may correspond to an output layer of the machine learning system. The machine learning system may learn suitable bitrates for the second subset of feature vectors by selecting bitrates that are higher than the historically selected bitrates associated with the second subset of feature vectors as the suitable bitrates. A feature vector may be selected from the second subset of feature vectors. The selected feature vector may be associated with one or more selected users. One or more associated feature vectors that correspond to the one or more selected users or a user group comprising the one or more selected users may be identified from the second subset of feature vectors based on the historical data. The one or more related feature vectors may be identified based on an overlap between values associated with parameters of the selected feature vector and values associated with parameters of the associated feature vectors.
[0011] A related feature vector that includes a highest experience index may be determined from the one or more related feature vectors. The machine learning system may identify if an experience index associated with the related feature vector is greater than an experience index associated with the selected feature vector. A historically selected bitrate associated with the related feature vector may be selected as the suitable bitrate for the selected feature vector when the experience index associated with the related feature vector is greater than the experience index associated with the selected feature vector.
[0012] The machine learning system may be trained iteratively based on identification of a learning trigger. The learning trigger may include lapse of a predefined period of time since a previous training, a number of issues related to the network characteristics and the quality attributes reported within a selected time period exceeding a defined threshold, receiving a report of one or more critical issues, and a resolution of one or more critical issues. A feature vector corresponding to the received media segments may be generated based on the received network characteristics, the received device parameters, the received quality attributes, the received interactive user action, and the determined experience index. The machine learning system may determine if the determined experience index corresponds to one or more positive values, one or more neutral values, or one or more negative values.
[0013] The one or more subsequent segments of the media content may be streamed at a designated bitrate associated with the received media segments when the determined experience index corresponds to the one or more positive values or the one or more neutral values. The bitrate for streaming the one or more subsequent segments of the media content may be adaptively selected based on the feature vector including the determined experience index and the one or more parameters that are received along with the request from the user for the media content. The machine learning system may receive the request for the media content from the user device or the content server. The selected bitrate may be transmitted to the content server for streaming the one or more subsequent segments of the media content to the user device at the selected bitrate.
[0014] In another aspect, an adaptive bitrate system is provided. The adaptive bitrate system includes a machine learning system communicatively coupled to one or more of a user device associated with a user and a content server configured to stream media content to the user device over a network. The machine learning system is configured to receive one or more parameters associated with a request from the user for streaming media content to the user device. The one or more parameters include at least one network characteristics of the network and at least one device parameter of the user device, at least one quality attribute determined by a quality monitoring system based on received segments of the media content, and an interactive user action performed by the user in response to the received media segments. The received quality attributes and the interactive user action indicate a dissatisfaction of the user with the received media segments.
[0015] The machine learning system determines an experience index that is indicative of a response of the user to the received media segments based on one or more of the received quality attributes and the received interactive user action. Subsequently, the machine learning system adaptively selects the bitrate for streaming one or more subsequent segments of the media content to the user device based on the determined experience index and historical data. The historical data comprises historical values of one or more of the parameters that are collected during streaming of a plurality of media content to a plurality of user devices over a designated period of time in the past. The parameters include one or more network characteristics, device parameters, quality attributes, interactive user actions, experience indices, and historically selected bitrates. The one or more subsequent segments are streamed from the content server to the user device at the selected bitrate. The machine learning system communicates the selected bitrate to one or more of the user device and the content server.
[0016] The machine learning system may be implemented within the user device, within the content server, or within a runtime server. The adaptive bitrate system may further comprise a quality monitoring system and an interactive action monitoring system. The quality monitoring system may be configured to determine the quality attributes associated with the received media segments in real-time while the media content is being streamed to the user device. The interactive action monitoring system may be configured to detect and classify the interaction user action performed by the user following playback of the received media segments on the user device. The interactive action monitoring system may include one or more sensors that are integrated with the user device and are configured to identify an experience of the user in response to streaming the received media segment at the selected bitrate. The one or more sensors associated with the interactive action monitoring system may include an accelerometer sensor, a gyroscope sensor, and/or an optical sensor.

DRAWINGS

[0017] These and other features, aspects, and advantages of the claimed subject matter will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
[0018] FIG. 1 is a system diagram illustrating an exemplary adaptive bitrate system, according to an embodiment of the present disclosure;
[0019] FIG. 2 is a flow diagram illustrating an exemplary method for training a machine learning system to select suitable bitrates for streaming a plurality of media content to user devices using the system of FIG. 1;
[0020] FIG. 3 is a table view illustrating an exemplary selected feature vector associated with a segment of the media content;
[0021] FIG. 4 is a table view illustrating exemplary feature vectors that are related to the selected feature vector and are identified during training of the machine learning system of FIG. 1; and
[0022] FIG. 5 is a flow diagram illustrating an exemplary method for selecting a suitable bitrate for streaming one or more segments of a requested media content based on the trained machine learning system of FIG 2.

DETAILED DESCRIPTION

[0023] The following description presents exemplary systems and methods for adaptive bitrate streaming of media content. Particularly, embodiments described herein disclose systems and methods for selecting suitable bitrates for streaming segments of a plurality of media content to user devices such that end user experiences associated with streaming media content improve over a period of time. As noted previously, conventional adaptive bitrate selection systems (CABSS) select bitrates for streaming media content merely based on previous network characteristics and to some extent based on previous device parameters. Moreover, though the CABSS are capable of delivering segments of a media content at different bitrates to ensure continuous streaming of the media content, the CABSS do not capture and provide end user’s experience associated with the streaming media content.
[0024] To address the problems associated with the CABSS, the present systems and methods provide an adaptive bitrate (ABR) system having a machine learning system (MLS) that is capable of selecting suitable bitrates for streaming media content and thereby improves user’s experience. The machine learning system described herein throughout various embodiments is configured to receive a plurality of parameters that include, but are not limited to, network characteristics, device parameters, quality attributes associated with media content, and interactive actions performed by users while the media content being streamed to user devices for selecting appropriate bitrates. In one embodiment, the machine learning system is trained to select suitable bitrates for streaming one or more segments of the media content, for example, in real-time based on the received plurality of parameters, as described in greater detail with reference to description of FIG. 1.
[0025] FIG. 1 is a system diagram illustrating an adaptive bitrate system 100 for selecting suitable bitrates for streaming media content. In one embodiment, the adaptive bitrate system 100 includes a plurality of user devices 102A-N associated with a plurality of users 104A-N and a content server 106 that stores a plurality of media content. Examples of the media content stored in the content server 106 include one or more of video content, audio content, text content, image content, and any other form of multimedia content. Specifically, the content server 106 stores each media content at multiple different bitrates and in addition, each media content includes multiple segments or chunks that correspond to a designated playback duration. For example, the content server 106 stores a one-minute video as a plurality of segments and each segment corresponds to a playback duration of 10 seconds. In addition, the content server 106 stores each segment of the one-minute video at different bitrates. For instance, the segments of the one-minute video are stored at bitrates such as 50 kilobits per second (Kbps), 100 Kbps, 500 Kbps, 750 Kbps, 1 megabits per second (Mbps), 1.5 Mbps, 2 Mbps, and 4 Mbps.
[0026] In certain embodiments, the users 104A-N request the media content stored in the content server 106 using their corresponding user devices 102A-N. Examples of the user devices 102A-N include, but are not limited to, one or more laptops, one or more desktops, one or more tablets, one or more mobile phones, one or more set-top boxes, and one or more internet enabled televisions. Based on the requests, a machine learning system 108 selects suitable bitrates based on or more parameters for streaming the requested media content to the user devices 102A-N. Subsequently, the content server 106 streams one or more segments of the media content at the bitrates selected by the machine learning system 108 to the user devices 102A-N over a network 110. In one embodiment, the network 110 includes one or more of a local area network, a wide area network, a short-range network, a wireless network, and/or the Internet. In one embodiment, each of the plurality of user devices 102A-N includes one or more media players that are configured to stream the media content at the bitrates selected by the machine learning system 108.
[0027] In one embodiment, the machine learning system 108 resides in a runtime server 112 that is communicatively coupled to one or more of the user devices 102 A-N and the content server 106. In this embodiment, a user 104A-N opens a media player that resides in the user device 102A-N and requests a media content. The user device 102A-N transmits the request to the runtime server 112 over the network 110. The machine learning system 108 in the runtime server 112 receives the request and identifies a suitable bitrate for streaming the requested media content. The runtime server 112 communicates the identified bitrate to the content server 106. The content server 106 receives the identified bitrate and streams one or more segments of the requested media content to the user device 102A-N at the identified bitrate over the network 110.
[0028] In another embodiment, the machine learning system 108 resides in the user devices 102A-N instead of the runtime server 112. In this embodiment, a user 104A-N requests the media content. The machine learning system 108 in the user device 102A-N identifies the suitable bitrate for streaming the requested media content. The user device 102A-N transmits the request directly to the content server 106 along with the identified bitrate information over the network 110. The content server 106 receives the request and the identified bitrate information from the user device 102A-N, and streams one or more segments of the requested media content to the user device 102A-N at the identified bitrate over the network 110.
[0029] In alternative embodiment, the machine learning system 108 resides in the content server 106 instead of the runtime server 112 and the user devices 102A-N. In this embodiment, a user 104A-N opens the media player that resides in the user device 102A-N and requests the media content. The user device 102A-N transmits the request to the content server 106 over the network 110. The machine learning system 108 in the content server 106 receives the request and identifies a suitable bitrate for streaming the requested media content, as described in further detail hereinafter in the description. Subsequently, the content server 106 streams one or more segments of the requested media content to the user device 102A-N at the identified bitrate over the network 110. Thus, it is to be understood that the machine learning system 108 can reside in the user devices 102A-N, the runtime server 112, and/or the content server 106.
[0030] In one embodiment, the content server 106 is a web server that transmits the media content to the user device 102A-N over the network 110 using Hypertext Transfer Protocol (HTTP). In another embodiment, the content server 106 transmits the media content to the user device 102A-N at the bitrate selected by the machine learning system 108 over the network 110 using a real-time streaming protocol (RTSP).
[0031] In certain embodiments, the machine learning system 108 uses one or more techniques for selecting suitable bitrates for streaming media content. In one embodiment, the techniques include one or more of decision tree learning, association rule learning, artificial neural networks, convolutional neural network, deep learning, inductive logic programming, support vector machines, clustering, bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, genetic algorithms, rule-based machine learning, and learning classifier systems. An exemplary method that employs one or more of these techniques for selecting suitable bitrates for streaming media segments is described in detail with respect to description of FIG. 5. The machine learning system 108 is configured to improve end user’s experience by selecting suitable bitrates for streaming media content to the user devices 102A-N based on a plurality of parameters as described in detail in the subsequent paragraphs.
[0032] As previously noted, the machine learning system 108 receives a request from a user device 102A-N associated with a selected user 104A-N, the content server 106, or the runtime server 112 for streaming media content to the user device 102A-N over the network 110. In certain embodiments, along with the request, the machine learning system 108 also receives one or more network characteristics associated with the network 110 and one or more parameters associated with the user device 102A-N. In one embodiment, the media player in the user device 102A-N identifies the network characteristics and the device parameters for transmitting the identified network characteristics and the identified device parameters along with the request to the machine learning system 108. In one embodiment, the network characteristics, for example, include available bandwidth, network congestion data, data packets arrival rate, loss of packets in case of any loss network characteristics, and latency. Further, the one or more parameters associated with the user device 102A-N include, but are not limited to, a device type, processor characteristics such as a processor speed, a power level, an operating system, and a memory associated with the user device 102A-N.
[0033] In one embodiment, the machine learning system 108 includes a memory that stores a database (not shown in FIG. 1). The database includes profile information associated with the plurality of users 104A-N and historically selected bitrate information for each of the users 104A-N. In an embodiment, the machine learning system 108 identifies the selected user 104A-N who requested the media content based on a user device identifier, an IP address associated with the user device 102A-N, or based on account details (e.g., an email account) of the user 104A-N. Subsequently, the machine learning system 108 selects a designated bitrate for initiating streaming of the requested media content based on historically selected bitrate information associated with the selected user 104A-N.
[0034] In alternative embodiment, the machine learning system 108 selects the designated bitrate for initiating streaming of the requested media content randomly or based on the identified network characteristics and the identified device parameters. The machine learning system 108 communicates the designated bitrate information to the content server 106 such that the content server 106 transmits one or more segments of the requested media content to the user device 102A-N at the designated bitrate over the network 110. In another embodiment, instead of communicating the designated bitrate information to the content server 106, the machine learning system 108 communicates the designated bitrate information to the user device 102A-N. The user device 102A_receives the designated bitrate information and updates a previous request for the media content with the designated bitrate information to obtain an updated request. The user device 102A-N then transmits the updated request to the content server 106 over the network 110. The content server 106 receives the updated request and transmits one or more segments of the requested media content to the user device 102A-N at the designated bitrate over the network 110. Thus, the user device 102A-N associated with the selected user 104A-N receives the segments of the requested media content encoded at the designated bitrate, and streams the segments using the media player.
[0035] In certain embodiments, while streaming the segments of the media content to the user device 102A-N at the designated bitrate, a quality monitoring system 114 continuously monitors video and/or audio feed associated with the media content and identifies one or more quality attributes of the media segments received at the user device 102A-N in real-time, for example, within a few microseconds. In an embodiment, the quality monitoring system 114 may reside in the user device 102A-N. The term “quality attributes” described herein throughout various embodiments indicate errors associated with the streaming media content and do not refer to quality issues associated with the network characteristics. Examples of the quality attributes associated with the received media segments include, but are not limited to, macroblocking, blur, pixellation, restart of a media playback, and a change in a contrast or a brightness of the streaming media content.
[0036] In another embodiment, the quality monitoring system 114 is a processing subsystem that includes a processing device 118. The processing device 118 is a processor-enabled device, for example, a computer, a desktop, a laptop, a tablet, or a smartphone. In this embodiment, the quality monitoring system 114 in the processing device 118 receives video and/or audio feed associated with the streaming media content from the user device 102A-N over the network 110. Subsequently, the quality monitoring system 114 identifies the one or more quality attributes of the streaming media content.
[0037] In addition, while streaming the segments of the media content to the user device 102A-N at the designated bitrate, an interactive actions monitoring system 116 identifies one or more interactive actions performed by the selected user 104A-N in real-time in response to the received media segments. In one embodiment, the interactive actions monitoring system 116 is a software program that resides in the user device 102A-N and is configured to track a change in state of the playback of received media segments on a media player in the user device 102 A-N. A change in state of the media playback are indicative of the interactive user actions. Examples of the interactive user action include, but are not limited to, restarting playback of the media content, forwarding the media content, rear-warding the media content, pausing the media content, skipping one or more segments of the media content, and navigating from one media content to another media content. Alternatively, the interactive actions monitoring system 116 includes one or more sensors that are configured to determine experience of the selected user 104A-N in response to playing a particular media segment at a designated bitrate. For example, when the selected user 104A-N experiences multiple blurs while a particular media segment is being streamed at a designated bitrate, the selected user 104A-N may shake his/her device in order to get better reception of the particular media segment. Sensors such as an accelerometer and/or a gyroscope existing in the user device 102A-N associated with the selected user 104A-N may be used to determine the shaking action that indicates dissatisfaction of the selected user 104A-N in response to playing the particular media segment at the designated bitrate. In another example, an optical sensor (e.g., a camera) existing in the user device 102A-N may be used to identify a facial expression and a behavior of the selected user 104A-N in response to playing the particular media segment at the designated bitrate.
[0038] In certain embodiments, the machine learning system 108 receives the identified quality attributes associated with a particular segment of the media content, and the interactive user action performed by the selected user 104A-N while the particular segment is being played on the user device 102A-N. Subsequently, the machine learning system 108 determines an experience index of the selected user 104A-N in response to playing the particular segment received at the designated bitrate based on one or more of the identified quality attributes and the interactive user action. The determined experience index indicates a satisfaction level of the selected user 104A-N in response to playback of the particular segment at the designated bitrate. Although, in the present embodiment, the machine learning system 108 determines the experience index, in alternative embodiments, the experience index can be determined by an independent system (e.g., the processing device 118) and can be fed as inputs to the machine learning system 108.
[0039] In one embodiment, the machine learning system 108 determines the experience index (EI) of the selected user 104A-N based on weighted values of one or more quality attributes (QA) and one or more interactive actions (IA) performed by the selected user 104A-N in accordance with the equation (1).

EI=FQA(?_(i=1)^N¦?xi,n,*wi?) FIA(?_(j=1)^N¦?yj*wj?) (1)

where FQA represents an operation that determines the experience index as a function of the one or more quality attributes, and FIA represents an operation of determining the experience index as a function of the interactive action. xi represents types of the one or more identified quality attributes, for example, macroblock, blur, pixellation, restart of a media playback, contrast, and/or brightness. Further, ‘n’ represents a number of occurrences of the identified quality attributes in the one or more received media content segments. wi represents a corresponding weight assigned to each type of the quality attribute. yj represents a type of an interactive user action and wj represents a corresponding weight assigned with each type of the interactive user action. The specific weight to be assigned to the quality attributes and the interactive actions may be defined using designated rules. The designated rules may be predefined and stored in the database of the machine learning system 108.

[0040] In certain embodiments, the machine learning system 108 or another suitable system determines the experience index based only on the one or more identified quality attributes. In such embodiments, the weights assigned to the interactive user actions are zero. Specifically, in one exemplary implementation, the machine learning system 108 determines the experience index based on types of quality attributes identified, a number of occurrences of the identified quality attributes, and weights defined for the identified quality attributes using the designated rules. For example, a first video segment and a second video segment being streamed to the user device 102A-N have three pixellations and three macroblockings, respectively. The designated rules may define the macroblockings as a higher priority error than the pixellation, and accordingly, an exemplary weight assigned to the pixellation is -1 and an exemplary weight assigned to the macroblockings is -2. It may be noted here that the value of -1 is considered as greater than the value of -2 mathematically. However, for the sake of simplicity, the negative weights described herein throughout various embodiments assume the same order of priority as corresponding positive weights. That is, the value of -1 is considered lesser than the value of -2. The machine learning system 108 determines the experience index for the first video segment having three pixellations as -3 and the experience index for the second video segment having three macroblockings as -6. The negative experience index represents the selected user 104A-N is not satisfied with the media content being streamed at the designated bitrate, and hence requires adaptive selection of an alternative bitrate.
[0041] In another embodiment, the machine learning system 108 or another suitable system determines the experience index based on both the one or more quality attributes and the one or more interactive actions performed by the selected user 104A-N. In this embodiment, the designated rules may define correlations between the interactive user actions and the quality attributes or other type of issues for determining the experience index. For example, the designated rules may correlate pausing the media content or the restarting a playback of the media content to buffering that represents issues associated with the network 110. In another example, the designated rules correlate skipping a segment of the media content to macroblocking. The machine learning system 108 receives the interactive user action and correlates the interactive user action to a specific type of issue using the designated rules for determining the experience index.
[0042] For instance, in the previously mentioned example of a user action including skipping the segment of the media content due to macroblocking, the machine learning system 108 correlates the user action of skipping the segment of the media content to macroblockings based on the designated rules. Subsequently, the machine learning system 108 may determine the experience index as -3 based on a summation of a weight (e.g., -1) associated with the user action and a weight (e.g., -2) associated with macroblocking. The negative experience index represents the selected user’s 104A-N dissatisfaction with the designated bitrate, and hence requires adaptive selection of an alternative bitrate. In one embodiment, absence of the user actions post selection of the alternative bitrate up votes the designated rules that correlate the user actions to the quality attributes. Repeating the user actions post selection of the alternative bitrate indicates the correlations defined by the designated rules needs to be updated.
[0043] In an alternative embodiment, the machine learning system 108 determines the experience index based on the one or more quality attributes and the one or more interactive user actions without need for defining the correlations between the quality attributes and the interactive user actions. In this embodiment, the machine learning system 108 continuously receives the quality attributes and the interactive user actions, and automatically identifies a correlation between the quality attributes and the interactive user actions based on a timestamp associated with a particular segment of a media content. For example, while streaming a thirty minutes video to the user device 102A-N, the quality monitoring system 114 identifies four pixellations that occurred while streaming a segment carrying media packets to be streamed between third minute and fourth minute of the video. In response to the perception of the pixellations, the selected user 104A-N may have skipped the segment of the video. The interactive actions monitoring system 116 identifies the user action of skipping the video content segment.
[0044] Subsequently, the machine leaning system 108 receives the identified quality attributes and the identified user action, and automatically correlates skipping the video content segment to the pixellations because both identification of the pixellations and the user action occur while streaming the same segment. In this example, the machine learning system 108 determines the experience index as -5 based on a summation of a weight (e.g., -1) associated with the user action of skipping the video content segment and a weight (e.g., -4) associated with four pixellations. In another example, while streaming the same thirty minutes video to another user 104A-N, the user 104A-N may not skip the segment having four blurs. Therefore, the machine learning system 108 determines the experience index as -4 not as -5, based on that particular user’s perceived level of satisfaction. Thus, the determined experience index varies from user to user, for example, based on the interactive actions performed. Accordingly, the bitrates adaptively selected for streaming the media content may also vary from user to user.
[0045] In one embodiment, when the segments of the streaming media content do not have any quality related errors or have errors less than a defined threshold and/or when the selected user 104A-N has not performed any interactive actions, the machine learning system 108 determines the experience index of the selected user 104A-N as positive. In one exemplary implementation, the positive experience index is assumed to indicate that the selected user 104A-N is satisfied with the segment of the media content being streamed at the designated bitrate.
[0046] In certain embodiments, the machine learning system 108 determines the experience index associated with each user of the plurality of users 104A-N to obtain collective experience indices that represent satisfaction level of a group of users. For example, the same video may be requested by the plurality of users 104A-N located in different areas. While streaming such video to the user devices 102A-N, if same video errors occur or same user actions occur, the machine learning system 108 identifies an issue to be associated with the video. In addition, if a first group of users in one location or having one type of device is satisfied with the video, but a second group of users in another location or having another type of device is not satisfied, the machine learning system 108 identifies an issue to be associated with the network 110 or the media player in the user devices 102A-N.
[0047] Upon determining the experience index of the selected user 104A-N as a positive value or a negative value in response to received segments of the media content at the designated bitrate, the machine learning system 108 generates a feature vector based on one or more parameters that are collected while streaming the segment to the user device 102A-N. The one or more parameters include, but are not limited to, the network characteristics, the device parameters, the quality attributes, the interactive actions, the experience index, and weather data. In certain embodiments, the feature vector is a matrix having an array of numbers arranged in one or more rows and one or more columns. Thus, in certain embodiments, the feature vector includes values associated with the one or more parameters. Subsequently, the machine learning system 108 selects a bitrate for streaming one or more subsequent segments of the media content based on the feature vector and a training provided to the machine learning system 108. An exemplary methodology used for training the machine learning system 108 based on a training system 120 is described in greater detail with reference to description of FIG. 2.
[0048] FIG. 2 is a flow diagram 200 illustrating an exemplary method for training the machine learning system 108 of FIG. 1 to enable the machine learning system 108 to select a suitable bitrate for streaming the media content to the user device 102A-N. The order in which the exemplary method is described is not intended to be construed as a limitation, and any number of the described blocks may be combined in any order to implement the exemplary method disclosed herein, or an equivalent alternative method. Additionally, certain blocks may be deleted from the exemplary method or augmented by additional blocks with added functionality without departing from the spirit and scope of the subject matter described herein.
[0049] In certain embodiments, training of the machine learning system 108 occurs in the training system 120. The training system 120 is a processor enabled device, for example, a computer, a desktop, a laptop, a tablet, or a smartphone. In one embodiment, the machine learning system 108 can be executed as a hardware accelerated implementation. For example, the machine learning system 108 can be executed as a field-programmable gate array based accelerated implementation. The trained machine learning system 108 having an experience mapping function is transmitted to the runtime server 112 or to the user device 102A-N for selecting the suitable bitrate, using one or more steps of the present method. In one embodiment, the experience mapping function may include one or more machine-learning algorithms (e.g., artificial neural networks) that maps feature vectors of input layers to learnt patterns as described in detail in the subsequent paragraphs.
[0050] At step 202, the machine learning system 108 receives training data that includes historical data having values associated with one or more parameters from one or more sources. In one embodiment, the historical data is collected during streaming of a plurality of media content to the plurality of user devices 102A-N over a designated period of time in the past. The one or more parameters include, but are not limited to, network characteristics, device parameters, media quality attributes, interactive user actions, weather data, issues reported via tickets, and historically selected bitrate. In certain embodiments, the training data further includes additional data, for example, derived from electronic versions of engineering books, engineering datasheets, troubleshooting manuals, and profiles and demographic information of the users 104A-N.
[0051] Upon receiving the training data including the one or more parameters, at step 204, the machine learning system 108 determines experience indices of the users 104A-N based on one or more of the received quality attributes and the received interactive actions, as previously noted with reference to the description of FIG. 1.
[0052] At step 206, the machine learning system 108 generates a plurality of feature vectors based on the training data and the determined experience indices. In certain embodiments, each of the plurality of feature vectors includes values associated with the one or more parameters including one or more network characteristics, device parameters, quality attributes, interactive actions, experience indices, and weather data arranged in one or more corresponding rows and columns.
[0053] For example, a selected feature vector may include values of various parameters such as available bandwidth (e.g., 2 Mbps), a processor capacity (e.g., 80%), the quality attributes (e.g., 3 pixellations and 1 blur), the user action (e.g., ‘1’ may represent refreshing a media content display page), the experience index (e.g., -5), and the weather data (30° C). A historically selected bitrate for the selected feature vector may be 750 Kbps and the historically selected bitrate may be a part of the selected feature vector. Similarly, it is to be understood that all the plurality of feature vectors include the one or more parameters and corresponding values associated with the one or more parameters. In certain embodiments, the plurality of feature vectors correspond to input layers of the machine learning system 108.
[0054] Further, at step 208, the machine learning system 108 identifies historically selected bitrates associated with the plurality of feature vectors based on the training data that includes historical bitrate selection information. At step 210, the machine learning system 108 identifies a first subset of feature vectors that correspond to positive experience indices from the plurality of feature vectors. The positive experience indices indicate satisfaction of the users 104A-N when a particular media segment was streamed to the user devices 102A-N at the historically selected bitrates and the users 104A-N. In addition, the machine learning system 108 identifies a second subset of feature vectors that correspond to negative experience indices from the plurality of feature vectors. The negative experience indices indicate dissatisfaction of the users 104A-N when a particular set of media segments were streamed to the user devices 102A-N at the historically selected bitrates.
[0055] At step 212, the machine learning system 108 learns suitable bitrates to be selected for the first subset of feature vectors. In one embodiment, the machine learning system 108 selects the historically selected bitrates as the suitable bitrates for the first subset of feature vectors. At step 214, the machine learning system 108 learns suitable bitrates to be selected for the second subset of feature vectors. In certain embodiments, the bitrates selected by the machine learning system 108 correspond to output layers of the machine learning system 108. The suitable bitrates associated with the second subset of feature vectors may be different from the historically selected bitrates.
[0056] In one embodiment, the machine learning system 108 selects bitrates that are higher than the historically selected bitrates as the suitable bitrates for the second subset of feature vectors. For example, the machine learning system 108 selects a suitable bitrate as 1 Mbps that may be next highest to the historically selected bitrate of 750 Kbps. In certain other embodiments, however, the machine leaning system 108 may employ alternative methods for selecting suitable bitrates for the second subset of feature vectors.
[0057] In one particular implementation, for example, the machine leaning system 108 stores profile information of each of the users 104A-N and various user groups that are pre-classified based on certain selected criteria such as profile information, demographic information, and operational or usage characteristics of the users 104A-N. For each selected feature vector, the machine learning system 108 identifies a profile of a user associated with the selected feature vector from the historical data. In one example, the machine learning system 108 identifies a user associated with the selected feature vector 302 based on a user device identifier, an IP address associated with the user device 102A-N, or based on an account details (e.g., an email account) of the user.
[0058] Subsequently, the machine learning system 108 identifies one or more groups associated with the user from the stored user groups based on the profile information. Furthermore, the machine learning system 108 identifies all feature vectors that correspond to the user and/or the one or more associated groups from the input layer of the machine learning system 108. The feature vectors that correspond to the user and/or the one or more associated groups are referred as associated feature vectors. For example, if the identified user is ‘X’ and the user ‘X’ belongs to the user groups ‘GA’ and ‘GE,’ the machine learning system 108 identifies feature vectors that correspond to the user ‘X’ and/or the groups ‘GA’ and ‘GE’ as associated feature vectors.
[0059] Subsequently, the machine learning system compares parameter values of the selected feature vector 302 with corresponding parameters values of the associated feature vectors to identify one or more related feature vectors. FIG. 3 depicts a tabular view 300 illustrating an exemplary selected feature vector 302 from the second subset. The selected feature vector 302 includes one or more parameters and corresponding values.
[0060] In certain embodiments, the related feature vectors parameters values are same or similar to the parameters values of the selected feature vector. For example, FIG. 4 depicts a tabular view 400 illustrating exemplary related feature vectors including a first related feature vector 402, a second related feature vector 404, and a third related feature vector 406. The related feature vectors are identified based on a comparison between the selected feature vector 302 with the associated feature vectors and selecting the feature vectors that exhibit a substantial overlap between corresponding parameter values.
[0061] In certain embodiments, the machine learning system 108 identifies a related feature vector that has a highest positive experience index from the related feature vectors. For example, the machine learning system 108 identifies the second related feature vector 404 listed in the table 400 as having the highest positive experience index (e.g., -1). Subsequently, the machine learning system 108 compares the experience index associated with the selected feature vector 302 (i.e., -6) with the experience index (i.e., -1) associated with the second related feature vector 404. In certain embodiments, the machine learning system 108 selects a bitrate (e.g., 1.5 Mbps) that corresponds to the second related feature vector 404 as the suitable bitrate for the selected feature vector 302 if the experience index of the second related feature vector 404 is greater than the experience index of the selected feature vector 302.
[0062] Thus, the machine learning system 108 may automatically select 1.5 Mbps as the suitable bitrate for streaming the same media content in the future. However, if the user ‘X’ performs any interactive actions following streaming the media content at 1.5 Mbps that indicates his or her dissatisfaction, the machine learning system 108 selects a new bitrate (e.g., the next highest bitrate such as 1.7 Mbps) for the selected feature vector 302. Thus, the machine learning system 108 keeps learning suitable bitrates to be selected for each of the users 104A-N and improves a bitrate selection accuracy over a period of time. Further, in certain embodiments, the , the machine learning system 108 may be configured such that if the available bandwidth associated with the network 110 is 2 Mbps, the machine learning system 108 may still select 1.5 Mbps as a suitable bitrate for streaming the media content to the user device 102A-N associated with the user ‘X’. Thus, the machine learning system 108 intelligently selects the suitable bitrates, saves data consumption for the user ‘X,’ reduces network’s load, and thereby allows for transmission of additional data though the network 110.
[0063] In one embodiment, the machine learning system 108 identifies a set of feature vectors including a first feature vector and a second feature vector. The first feature vector belongs to the input layer of the machine learning system 108 and has the one or more parameters and the associated values. The second feature vector belongs to the output layer of the machine learning system 108 and includes a suitable bitrate for the first feature vector selected by the machine learning system 108. Subsequently the machine leaning system 108 automatically learns a corresponding pattern for the set having the first and second feature vectors such that for any generated feature vector in the future that is same or similar to the first feature vector, the machine learning system 108 automatically selects the bitrate defined by the second feature vector based on the learnt pattern. The learnt pattern that corresponds to the first and second feature vectors is a matrix having arrays of numbers and corresponds to one or more hidden layers of the machine learning system 108. Subsequent to training the machine learning system 108, the machine learning system 108 having the experience mapping function is transmitted to the runtime server 112 or to the user devices 102A-N. The machine learning system 108 receives a request from the user 104A-N for media content directly or via the content server 106 and selects a suitable bitrate to stream the requested media content, as described in greater detail with reference to FIG. 5.
[0064] Referring back to description of FIG. 2, at step 216, the machine learning system 108 identifies a retraining trigger and undergoes retraining based on the identification of the learning trigger. In one embodiment, the machine learning system 108 is triggered to undergo retraining based on a designated training frequency. For example, the machine learning system 108 undergoes re-training once in a week, once in two weeks, or once in a month based on the designated training frequency. The training system 120 uses training data including the one or more parameters collected over a designated period of time while streaming a plurality of media content to the user devices 102A-N for retraining the machine learning system 108. For example, if the designated training frequency is ‘1’ month, the training system 120 uses the one or more parameters that are all collected during a previous month for retraining the machine learning system 108. In one embodiment, the training system 120 collects the one or more parameters over the designated period from the user devices 102A-N, the network 110, the quality monitoring system 114, and the interactive actions monitoring system 116. In certain embodiments, the machine learning system 108 undergoes retraining in real-time while selecting the suitable bitrate for the requested media content.
[0065] In certain embodiments, the machine learning system 108 is triggered to undergo retraining upon suddenly receiving a number of complaints related to quality of experience (QoE) and/or quality of service (QoS) within a short time (e.g., in last 24 hours). In one embodiment, the machine learning system 108 is triggered to undergo retraining upon receiving one or more complaints that relate to significant artifacts that impede media quality or are indicative of impaired delivery. Such issues with the received media quality may occur due to presence of a bug that may potentially crash the machine learning system 108. The machine learning system 108 is also triggered to undergo retraining upon receiving a report of one or more critical issues and a resolution of one or more critical issues. Once the machine learning system 108 is trained, the user devices 102A-N and/or an associated web server may communicate with the machine learning system 108 for selecting suitable bitrates for transmitting requested media content, as described in detail with reference to description of FIG. 5.
[0066] FIG. 5 is a flow diagram 500 illustrating an exemplary method for selecting a suitable bitrate for streaming one or more segments of requested media content using the trained machine learning system 108 of FIG. 1. At step 502, the machine learning system 108 receives a request for a particular media content from the user device 102A-N associated with the user 104A-N. Alternatively, the machine learning system 108 receives the request for the particular media content from the content server 106 or the runtime server 112. In certain embodiments, the machine learning system 108 receives network characteristics associated with the network 110 and device parameters associated with the user device 102A-N along with the request from a media player residing in the user device 102A-N.
[0067] At step 504, the machine learning system 108 identifies the user who requested the media content and one or more groups associated with the user, as previously noted with reference to the description of FIG. 2. At step 506, the machine learning system 108 selects a bitrate for initiating streaming of the requested media content from the content server 106 to the user device 102A-N. In one embodiment, the machine learning system 108 selects the historically selected bitrate information associated with the user for initiating streaming of the requested media content. At step 508, the runtime server 112 or the user device 102A-N communicates the bitrate selected by the machine learning system 108 to the content server 106. At step 510, the content server 106 initiates streaming of the requested media content at the selected bitrate to the user device 102A-N.
[0068] At step 512, the machine learning system 108 generates a feature vector based on one or more parameters determined from the user request and/or measured during the initial streaming of the media content at the selected bitrate. The one or more parameters include the network characteristics, the device parameters, the quality attributes, the interactive actions, and the weather data associated with the user request. At step 514, the machine learning system 108 determines an experience index associated with a currently streaming segment of the requested media content based on one or more of quality attributes corresponding to the delivered content, and interactive user actions, if any, as previously noted with reference to description of FIG. 1. At step 516, the machine learning system 108 identifies if the determined experience index associated with the currently streaming segment is a positive value, a negative value, or a neutral value. Further, if the experience index is a positive value or a neutral value, the machine learning system 108 selects the bitrate associated with the currently streaming segment as a suitable bitrate for streaming one or more subsequent segments of the requested media content.
[0069] In one embodiment, if the experience index of the currently streaming segment determined to be a negative value, at step 518, the machine learning system 108 selects a suitable bitrate for streaming one or more subsequent segments of the requested media content. The machine learning system 108 selects the suitable bitrate based on the generated feature vector and the patterns learnt during the training of the machine learning system 108, as previously noted with reference to description of FIG. 2. For example, parameters values of the generated feature vector associated with the currently streaming segment may be same or similar to parameters values of the selected feature vector 302. In this scenario, the machine learning system 108 selects the bitrate of 1.5 Mbps as the suitable bitrate for streaming the one or more subsequent segments of the media content instead of 1 Mbps based on a pattern learnt for the selected feature vector 302 at the time of training the machine learning system 108. Thus, streaming the one or more subsequent segments of the media content at the bitrate of 1.5 Mbps selected by the machine learning system 108 reduces the number of blurs, and thus, improves the experience index of the user 104A-N.
[0070] Conventional adaptive bitrate selection systems select a bitrate merely based on the network characteristics or the device parameters, and do not quantitatively determine end user’s experience in response to streaming the media segment at the selected bitrate. Hence, the conventional adaptive bitrate selection systems continue to stream the media segment at the same bitrate irrespective of quality issues perceived by the user 104A-N and/or actions performed by the user 104A-N. For example, a conventional adaptive bitrate selection system selects a bitrate of 1 Mbps for streaming media content to the user device 102A-N based on available bandwidth associated with the network 110. While streaming a segment of the media content to the user device 102A-N at the selected bitrate of 1 Mbps, the user 104A-N associated with the user device 102A-N may perceive three macroblocks and hence the user 104A-N may not be satisfied with the media content. In this scenario, even though the user 104A-N is not satisfied with the media content being streamed at the selected bitrate, the conventional adaptive bitrate selection system continues to stream the media content at the selected bitrate of 1 Mbps because the bitrate selection is based merely on the network characteristics and the device parameters. Hence, the conventional adaptive bitrate selection systems do not have the ability to adaptively select a bitrate based on end user’s experience.
[0071] However, the adaptive bitrate system 100 of the presently described embodiment is configured to adaptively select the bitrate based on the media quality issues perceived by the user 104A-N in real-time and interactive actions performed by the user 104A-N in response to the delivered content, in addition to the network characteristics and the device parameters. Further, the adaptive bitrate system 100 also considers the experience index of the user 104A-N determined based on one or more of the quality attributes and the interactive user action for adaptively selecting the bitrate. For example, the machine learning system 108 in the adaptive bitrate system 100 receives the quality attributes (e.g., three macroblockings) associated with the media segment from the quality monitoring system 114 and determines an experience index (e.g., -6) associated with the user 104A-N based on the received quality attributes and the designated rules. Subsequently, the machine learning system 108 selects an exemplary bitrate of 1.2 Mbps based on the determined experience index and the training provided to the machine learning system 108. Thus, an adaptive selection of the bitrate of 1.2 Mbps for streaming one or more subsequent segments of the media content may reduce the number of macroblockings, for example from three to zero, and thereby, improving the experience index of the user 104A-N associated with the media content.
[0072] In another example, when streaming the same media content segment having three macroblockings to another user device 102A-N associated with another user 104A-N, the user 104A-N may skip the segment. In this scenario, the experience index of the user 104A-N determined by the machine learning system 108 differs from the experience index of a user who has not skipped the segment, and therefore, the bitrate selected by the machine learning system 108 for the user 104A-N may also differ (e.g., 1.5 Mbps). Thus, the bitrate selected by the machine learning system 108 varies from one user to another user based on various parameters such as the network characteristics, the device parameters, the quality attributes, the interactive user action, the experience index, and the weather data.
[0073] Thus, embodiments of the adaptive bitrate system 100 improves user’s perception and satisfaction with the quality and timing of the delivered content. Further, the adaptive bitrate system 100 reduces number of reported issues, and allows for better customer retention. Additionally, the content server 106 uses recognized patterns in media content quality and resulting user satisfaction information to adjust its content management protocols to efficiently store frequently used media content at selected bit rates. The process, thus, improves the overall performance of the content delivery network. Over a period, the machine learning system 108 of the adaptive bitrate system 100 learns every user’s bitrate preferences on its own and provides enhanced QoE and QoS to every user while streaming media content.
[0074] It may be noted that the foregoing examples, demonstrations, and process steps that may be performed by certain components of the present systems, for example, by the machine learning system 108, the quality attributes monitoring system 114, the interactive actions monitoring system 116, and the training system 120 may be implemented by suitable code on a processor-based system, such as a general-purpose or a special-purpose computer. Accordingly, the machine learning system 108, the quality attributes monitoring system 114, the interactive actions monitoring system 116, and the training system 120, for example, includes one or more general-purpose processors, specialized processors, graphical processing units, microprocessors, programming logic arrays, field programming gate arrays, and/or other suitable computing devices. It may also be noted that different implementations of the present specification may perform some or all of the steps described herein in different orders or substantially concurrently.
[0075] Although specific features of various embodiments of the present systems and methods may be shown in and/or described with respect to some drawings and not in others, this is for convenience only. It is to be understood that the described features, structures, and/or characteristics may be combined and/or used interchangeably in any suitable manner in the various embodiments shown in the different figures.
[0076] While only certain features of the present systems and methods have been illustrated and described herein, many modifications and changes will occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the claimed invention.
,CLAIMS:
1. A method for adaptively selecting a bitrate for streaming media content, the method comprising:
receiving a request from a user device (102A-N) associated with a user (104A-N) for streaming the media content to the user device (102A-N) over a network (110);
receiving one or more parameters comprising one or more network characteristics associated with the network (110), one or more device parameters associated with the user device (102A-N), one or more quality attributes determined from one or more received segments of the media content, and an interactive user action performed by the user (104A-N) in response to the received media segments, wherein the received quality attributes and the interactive user action indicate a dissatisfaction of the user (104A-N) with the received media segments;
determining an experience index that is indicative of a response of the user (104A-N) to the received media segments based on one or more of the received quality attributes and the received interactive user action;
adaptively selecting the bitrate for streaming one or more subsequent segments of the media content to the user device (102A-N) using a machine learning system (108) based on the determined experience index and historical data, wherein the historical data comprises historical values of one or more of the parameters that are collected during streaming of a plurality of media content to a plurality of user devices (102A-N) over a designated period of time in the past, wherein the parameters comprise one or more network characteristics, device parameters, quality attributes, interactive user actions, experience indices, and historically selected bitrates; and
communicating the bitrate to one or more of the user device (102A-N) and the content server (106) for streaming the one or more subsequent segments of the media content from a content server (106) to the user device (102A-N) at the selected bitrate.

2. The method as claimed in claim 1, wherein the one or more quality attributes associated with the received media segments comprise one or more of a restart of a media playback, a blur, a pixellation, and a macroblocking.

3. The method as claimed in claim 1, wherein the interactive user action comprises one or more of restarting playback of the media content, forwarding at least a segment of the media content, rear-warding at least a segment of the media content, pausing the media content, skipping one or more segments of the media content, and navigating from a currently streaming media content to another media content.

4. The method as claimed in claim 1, further comprising:
receiving training data comprising the historical data;
determining the experience indices of a plurality of users (104A-N) associated with the plurality of user devices (102A-N) based on one or more of the quality attributes and the interactive user actions;
generating a plurality of feature vectors based on the one or more historical parameters, wherein each of the plurality of feature vectors corresponds to an input layer of the machine learning system (108) and comprises one or more values associated with one or more of the network characteristics, the device parameters, the quality attributes, the interactive user actions, and the experience indices;
identifying the historically selected bitrates associated with the plurality of the feature vectors from the historical data; and
identifying a first subset of feature vectors and a second subset of feature vectors from the plurality of feature vectors, wherein the first subset of feature vectors correspond to positive experience indices, and wherein the second subset of feature vectors correspond to negative experience indices.

5. The method as claimed in claim 4, further comprising learning suitable bitrates for the first subset of feature vectors by selecting the historically selected bitrates associated with the first subset of feature vectors as the suitable bitrates, wherein the suitable bitrates correspond to an output layer of the machine learning system (108).

6. The method as claimed in claim 4, further comprising learning suitable bitrates for the second subset of feature vectors by selecting bitrates that are higher than the historically selected bitrates associated with the second subset of feature vectors as the suitable bitrates, wherein the suitable bitrates correspond to an output layer of the machine learning system (108).

7. The method as claimed in claim 4, further comprising:
selecting a feature vector from the second subset of feature vectors, wherein the selected feature vector is associated with one or more selected users (104A-N);
identifying one or more associated feature vectors that correspond to the one or more selected users (104A-N) or a user group comprising the one or more selected users (104A-N) from the second subset of feature vectors based on the historical data;
identifying one or more related feature vectors from the associated feature vectors based on an overlap between values associated with parameters of the selected feature vector and values associated with parameters of the associated feature vectors;
determining a related feature vector that comprises a highest experience index from the one or more related feature vectors;
determining if an experience index associated with the related feature vector is greater than an experience index associated with the selected feature vector; and
selecting a historically selected bitrate associated with the related feature vector as the suitable bitrate for the selected feature vector upon identifying the experience index associated with the related feature vector is greater than the experience index associated with the selected feature vector.

8. The method of claim 7, further comprising iteratively training the machine learning system (108) based on identification of a learning trigger, wherein the learning trigger comprises lapse of a predefined period of time since a previous training, a number of issues related to the network characteristics and the quality attributes reported within a selected time period exceeding a defined threshold, receiving a report of one or more critical issues, and a resolution of one or more critical issues.

9. The method as claimed in claim 8, further comprising:
generating a feature vector corresponding to the received media segments based on the received network characteristics, the received device parameters, the received quality attributes, the received interactive user action, and the determined experience index;
determining if the determined experience index corresponds to one or more positive values, one or more neutral values, or one or more negative values;
streaming the one or more subsequent segments of the media content at a designated bitrate associated with the received media segments when the determined experience index corresponds to the one or more positive values or the one or more neutral values; and
adaptively selecting the bitrate for streaming the one or more subsequent segments of the media content based on the feature vector comprising the determined experience index and the one or more parameters that are received along with the request from the user (104A-N) for the media content.

10. The method as claimed in claim 9, further comprising:
receiving the request by the machine learning system (108) for the media content from the user device (102A-N) or the content server (106); and
transmitting the selected bitrate to the content server (106) for streaming the one or more subsequent segments of the media content to the user device (102A-N) at the selected bitrate.

11. An adaptive bitrate system (100), comprising:
a machine learning system (108) communicatively coupled to one or more of a user device (102A-N) associated with a user (104A-N) and a content server (106) configured to stream media content to the user device (102A-N) over a network (110), wherein the machine learning system (108) is configured to:
receive one or more parameters associated with a request from the user (104A-N) for streaming media content to the user device (102A-N), wherein the one or more parameters comprise at least one network characteristic associated with the network (110) and at least one device parameter associated with the user device (102A-N) along with the request, at least one quality attribute determined by a quality monitoring system (114) based on one or more received segments of the media content, and an interactive user action performed by the user (104A-N) in response to the received media segments, wherein the received quality attributes and the interactive user action indicate a dissatisfaction of the user (104A-N) with the received media segments;
determine an experience index that is indicative of a response of the user (104A-N) to the received media segments based on one or more of the received quality attributes and the received interactive user action;
adaptively select the bitrate for streaming one or more subsequent segments of the media content to the user device (102A-N) based on the determined experience index and historical data, wherein the historical data comprises historical values of one or more of the parameters that are collected during streaming of a plurality of media content to a plurality of user devices (102A-N) over a designated period of time in the past, wherein the parameters comprise one or more network characteristics, device parameters, quality attributes, interactive user actions, experience indices, and historically selected bitrates, wherein the one or more subsequent segments are streamed from the content server (106) to the user device (102A-N) at the selected bitrate; and
communicate the selected bitrate to one or more of the user device (102A-N) and the content server (106).

12. The adaptive bitrate system (100) as claimed in claim 11, wherein the machine learning system (108) is implemented within the user device (102A-N), within the content server (106), or a standalone system (112) communicatively coupled to at least one of the user device (102A-N) and the content server (106) over the network (110).
13. The adaptive bitrate system (100) as claimed in claim 11, wherein the adaptive bitrate system (100) further comprises:
a quality monitoring system (114) configured to determine the quality attributes associated with the received media segments in real-time while the media content is being streamed to the user device (102A-N); and
an interactive action monitoring system (116) configured to detect and classify the interactive user action performed by the user (104A-N) following playback of the received media segments on the user device (102A-N).

14. The adaptive bitrate system (100) as claimed in claim 13, wherein the interactive action monitoring system (116) comprises one or more sensors that are integrated with the user device (102A-N) and are configured to identify an experience of the user (104A-N) in response to streaming the received media segment at the selected bitrate, wherein the one or more sensors associated with the interactive action monitoring system (116) comprise an accelerometer sensor, a gyroscope sensor, and an optical sensor.

Documents

Application Documents

# Name Date
1 Power of Attorney [31-03-2017(online)].pdf 2017-03-31
2 Form 5 [31-03-2017(online)].pdf 2017-03-31
4 Drawing [31-03-2017(online)].pdf 2017-03-31
5 Description(Provisional) [31-03-2017(online)].pdf 2017-03-31
6 201741011863-FORM 3 [08-09-2017(online)].pdf 2017-09-08
7 201741011863-FORM 18 [08-09-2017(online)].pdf 2017-09-08
8 201741011863-DRAWING [08-09-2017(online)].pdf 2017-09-08
9 201741011863-COMPLETE SPECIFICATION [08-09-2017(online)].pdf 2017-09-08
10 Form5_After Filing_13-07-2018.pdf 2018-07-13
11 Form26_General Power of Attorney_13-07-2018.pdf 2018-07-13
12 Form1_After Filing_13-07-2018.pdf 2018-07-13
13 Declaration_GPA_13-07-2018.pdf 2018-07-13
14 Correspondence by Agent_Form1, 5, Declaration, GPA_13-07-2018.pdf 2018-07-13
15 abstract 201741011863 .jpg 2018-07-18
16 201741011863-FER.pdf 2020-01-08
17 201741011863-PETITION UNDER RULE 137 [06-07-2020(online)].pdf 2020-07-06
18 201741011863-FORM 3 [06-07-2020(online)].pdf 2020-07-06
19 201741011863-FER_SER_REPLY [06-07-2020(online)].pdf 2020-07-06
20 201741011863-DRAWING [06-07-2020(online)].pdf 2020-07-06
21 201741011863-COMPLETE SPECIFICATION [06-07-2020(online)].pdf 2020-07-06
22 201741011863-CLAIMS [06-07-2020(online)].pdf 2020-07-06
23 201741011863-US(14)-HearingNotice-(HearingDate-02-01-2024).pdf 2023-12-02
24 201741011863-FORM-26 [14-12-2023(online)].pdf 2023-12-14
25 201741011863-Correspondence to notify the Controller [14-12-2023(online)].pdf 2023-12-14
26 201741011863-Written submissions and relevant documents [16-01-2024(online)].pdf 2024-01-16
27 201741011863-Annexure [16-01-2024(online)].pdf 2024-01-16
28 201741011863-PatentCertificate18-01-2024.pdf 2024-01-18
29 201741011863-IntimationOfGrant18-01-2024.pdf 2024-01-18

Search Strategy

1 SearchStrategy_09-10-2019.pdf
2 2020-08-2511-25-55AE_25-08-2020.pdf

ERegister / Renewals