WO2022195616A1 - Methods and systems for optimizing quality of experience for content viewers - Google Patents

Methods and systems for optimizing quality of experience for content viewers Download PDF

Info

Publication number
WO2022195616A1
WO2022195616A1 PCT/IN2022/050243 IN2022050243W WO2022195616A1 WO 2022195616 A1 WO2022195616 A1 WO 2022195616A1 IN 2022050243 W IN2022050243 W IN 2022050243W WO 2022195616 A1 WO2022195616 A1 WO 2022195616A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
profiles
optimized
abr
encoding
Prior art date
Application number
PCT/IN2022/050243
Other languages
French (fr)
Inventor
Sahil BUDHIRAJA
Ramesh V. PANCHAGNULA
Original Assignee
Novi Digital Entertainment Private Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Novi Digital Entertainment Private Limited filed Critical Novi Digital Entertainment Private Limited
Publication of WO2022195616A1 publication Critical patent/WO2022195616A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles

Definitions

  • the present technology generally relates to the delivery of content, such as streaming content to end-users and, more particularly, to systems and methods for optimizing Quality of Experience (QoE) for content viewers.
  • QoE Quality of Experience
  • the QoE associated with the playback of the content streamed to the viewer’s device may depend upon several factors. For example, factors like underlying network conditions and/or attributes associated with the viewer’s device, such as a video resolution used by the viewer’s device for content playback may influence the QoE provided to the viewer. If the playback of the content frequently stalls or if the picture resolution is extremely poor, the QoE may be severely degraded and the viewer may choose to stop watching the content, even though the content is of the viewer’s choice.
  • a computer-implemented method for optimizing Quality of Experience (QoE) for content viewers includes receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer.
  • the request for the playback URL includes a content title related to content and heartbeat information.
  • the method extracts, by the system, one or more parameters from the request for the playback URL.
  • the one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device.
  • the method determines, by the system, one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles.
  • the method facilitates, by the system, optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
  • ABR Adaptive Bitrate
  • a system for optimizing Quality of Experience (QoE) for content viewers includes a memory and a processor.
  • the memory stores instructions, that when executed by the processor, cause the system to receive a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer.
  • the request for the playback URL includes a content title related to content and heartbeat information.
  • the system extracts one or more parameters from the request for the playback URL.
  • the one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device.
  • the system determines one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles, and a plurality of ABR profiles.
  • the system facilitates optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
  • ABR Adaptive Bitrate
  • a computer-implemented method for optimizing Quality of Experience (QoE) for content viewers receives, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer.
  • the request for the playback URL includes a content title in relation to content and heartbeat information.
  • the method extracts, by the system, one or more parameters from the request for the playback URL.
  • the one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device.
  • the method determines, by the system, one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate parameters based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of Adaptive Bit Rate (ABR) profiles.
  • the method facilitates, by the system, optimization of QoE of content playback associated with playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR parameters.
  • the method provides, by the system, a manifest including playback URLs of a plurality of content streams, the one or more optimized ABR parameters, and information related to the one or more optimized set of encoding profiles to the electronic device in response to the request for the playback URL.
  • the manifest is configured to facilitate the display of the content associated with the content title on the electronic device based on the one or more optimized set of encoding profiles and the one or more optimized ABR parameters.
  • FIG. 1 is a schematic representation for illustrating delivery of content from a streaming content provider to a viewer, in accordance with an example scenario
  • FIG. 1 is a block diagram of a system for optimizing QoE for content viewers, in accordance with an embodiment of the invention.
  • FIG. 1 is a block diagram representation for illustrating processing of the request for the playback URL by a QoE optimizer, in accordance with an embodiment of the invention
  • FIG. 1 is a block diagram representation illustrating an example encoding profile and an example ABR profile, in accordance with an embodiment of the invention
  • FIG. 1 is a block diagram representation for illustrating end-to-end optimization facilitated by the QoE optimizer, in accordance with an embodiment of the invention
  • FIG. 1 shows a flow diagram of a method for optimizing QoE for content viewers, in accordance with an embodiment of the invention.
  • FIG. 1 shows a flow diagram of a method for optimizing QoE for content viewers, in accordance with another embodiment of the invention.
  • FIGS. 1 to 7 The best and other modes for carrying out the present invention are presented in terms of the embodiments, herein depicted in FIGS. 1 to 7.
  • the embodiments are described herein for illustrative purposes and are subject to many variations. It is understood that various omissions and substitutions of equivalents are contemplated as circumstances may suggest or render expedient but are intended to cover the application or implementation without departing from the spirit or scope of the invention. Further, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. Any heading utilized within this description is for convenience only and has no legal or limiting effect.
  • FIG. 1 is a representation 100 for illustrating delivery of content from a streaming content provider to a viewer 102, in accordance with an example scenario.
  • streaming content provider refers to an enterprise owner of digital video content libraries, which offers the video content on a subscription or on-demand basis by using a digital platform and over-the-top (OTT) media services, i.e. the video content is streamed over the Internet to the electronic devices of the subscribers.
  • a streaming content provider is hereinafter referred to as a ‘content provider’ for ease of description. Though a content provider is not shown in , a digital platform server and a content library associated with a content provider are shown in the representation 100.
  • the content offered by the content provider may be streaming video content such as live streaming content or on-demand video streaming content. Individuals who intend to view/access the content may subscribe to at least one type of subscription offered by the content provider. Accordingly, the term ‘subscriber’, ‘user’, ‘content viewer’ or ‘viewer’ as interchangeably used herein may refer to a viewer of subscribed content, which is offered by the content provider.
  • the representation 100 depicts the viewer 102 controlling an electronic device 104 for viewing/accessing content offered by the content provider.
  • the electronic device 104 is depicted to be a Television (TV) for illustration purposes.
  • the viewer 102 may use one or more electronic devices, such as a smartphone, a laptop, a desktop, a personal computer, or any spatial computing device to view the content provided by the content provider.
  • the viewer 102 may have downloaded a software application 106 (hereinafter referred to as an ‘application 106’ or an ‘app 106’) corresponding to at least one content provider on the electronic device 104.
  • the viewer 102 may access a Web interface associated with the application 106 of the content provider on the electronic device 104.
  • the electronic device 104 may be in operative communication with a communication network 110, such as the Internet, enabled by a network provider, also known as an Internet Service Provider (ISP).
  • the electronic device 104 may connect to the communication network 110 using a wired network, a wireless network, or a combination of wired and wireless networks.
  • wired networks may include the Ethernet, the Local Area Network (LAN), a fiber-optic network, and the like.
  • wireless networks may include the Wireless LAN (WLAN), cellular networks, Bluetooth or ZigBee networks, and the like.
  • the electronic device 104 may fetch the Web interface associated with the application 106 over the communication network 110 and cause display of the Web interface on a display screen (not shown) of the electronic device 104.
  • the Web interface may display a plurality of content titles corresponding to the content offered by the content provider to its consumers.
  • the viewer 102 may select a content title from among the plurality of content titles displayed on the display screen of the electronic device 104.
  • the selection of the content title may trigger a request for a playback Uniform Resource Locator (URL).
  • the request for the playback URL is sent from the electronic device 104 via the communication network 110 to a digital platform server 120 associated with the content provider.
  • the digital platform server 120 may include at least one of a Content Management System (CMS) and a User Management System (UMS) for facilitating streaming of digital content from a content library 130 associated with the content provider to a plurality of users, such as the viewer 102.
  • CMS Content Management System
  • UMS User Management System
  • the digital platform server 120 is configured to authenticate the viewer 102 and determine if the viewer 102 is entitled to view the requested content. To this effect, the digital platform server 120 may be in operative communication with one or more remote servers, such as an authentication server and an entitlement server.
  • the authentication server and the entitlement server are not shown in .
  • the authentication server may facilitate authentication of viewer account credentials using standard authentication mechanisms such as password matching, device ID matching, location matching, etc.
  • the entitlement server may facilitate the determination of the viewer’s subscription type (i.e. whether the viewer has subscribed to regular or premium content) and status (i.e. whether the subscription is still active or expired). Based on the subscription type and status of the viewer, the entitlement server determines whether the viewer 102 is entitled to view/access the requested content or not.
  • the digital platform server 120 extracts an Autonomous System Number (ASN) and an IP address from the playback URL request, and identifies at least one Content Delivery Network (CDN) Point of Presence (PoP), which is in the proximity of the location of the viewer 102.
  • ASN Autonomous System Number
  • IP address IP address
  • CDN Content Delivery Network
  • three CDN PoPs shown as a CDN PoP 108a, a CDN PoP 108b, and a CDN PoP 108c in , are depicted as identified CDN PoPs in the proximity of the location of the viewer 102.
  • the CDN PoP 108a, 108b, and 108c are hereinafter collectively referred to as CDN Points of Presence (PoPs) 108.
  • the digital platform server 120 performs a check to determine if the content associated with the requested content title is cached in at least one CDN PoP from among the CDN PoPs 108. It is noted that the requested content may have been cached from the content library 130 of the content provider to one or more CDN PoPs from among the CDN PoPs 108. If the content is not cached in the CDN PoPs, the digital platform server 120 checks whether any other CDN or CDN PoP in the vicinity of the CDN PoPs 108 is caching the content requested with content title or not.
  • the digital platform server 120 identifies an optimal CDN PoP taking into account, the location of the viewer 102, a content ID and performance metrics associated with the plurality of CDNs/ CDN PoPs.
  • the digital platform server 120 may be configured to cache the content from the content library 130 to a CDN PoP nearest to a location of the viewer 102.
  • the digital platform server 120 is configured to encode the content as per multiple encoding profiles and cause storage of the plurality of encoded versions of the content in the CDN PoP nearest to the location of the viewer 102. It is noted that the content, especially high-resolution video content, needs to be compressed for optimizing bandwidth usage and, therefore, the content is encoded (or compressed) before storing in the CDN PoP.
  • the digital platform server 120 may encode the content using codecs associated with multiple encoding standards such as, but not limited to, H.264, H.265, VP8, VP9, AOMedia Video 1 (AVI), Versatile Video Coding (VVC), and the like. Further, for each encoding standard, the content may be encoded at multiple resolutions such as, but not limited to, 360p, 480p, 720p, 1080p, and 4K/Ultra-high Definition (UHD) resolution to configure multiple sets of encoding profiles (also known as ‘encoding ladders’).
  • codecs associated with multiple encoding standards such as, but not limited to, H.264, H.265, VP8, VP9, AOMedia Video 1 (AVI), Versatile Video Coding (VVC), and the like.
  • the content may be encoded at multiple resolutions such as, but not limited to, 360p, 480p, 720p, 1080p, and 4K/Ultra-high Definition (UHD) resolution to configure multiple sets of
  • encoding profile corresponds to a set of content streams corresponding to a content, where each content stream is characterized by an encoding bitrate (r), a spatial resolution (s), a frame rate (fps), and a Video Multimethod Assessment Function (VMAF) value (v).
  • r encoding bitrate
  • s spatial resolution
  • fps frame rate
  • VMAF Video Multimethod Assessment Function
  • v Video Multimethod Assessment Function
  • video content may be encoded using H.264 standard at a bitrate of 400 KBps, a spatial resolution of 360p, a frame rate of 30 fps, and a VMAF of 75 to configure a content stream (CS1).
  • video content may be encoded using H.264 standard at a bitrate of 500 KBps, a spatial resolution of 480p, a frame rate of 30 fps, and a VMAF of 80 to configure another content stream (CS2). Multiple such content streams of content encoded as per H.264 standard configure one ‘encoding profile’.
  • video content may be encoded using H.265 standard at one or more resolutions, frame rates, and VMAF scores to generate multiple encoded content streams of video content, thereby configuring another encoding profile.
  • the digital platform server 120 may encode the content as per multiple encoding profiles and cache the content in the CDN PoP.
  • the digital platform server 120 provides a playback URL identifying the network/IP address of the CDN PoP in which the content is cached, to the electronic device 104 of the viewer 102.
  • the electronic device 104 is configured to generate a Hypertext Transfer Protocol (HTTP) request using the playback URL and provide the HTTP request over the communication network 110 to the CDN PoP to fetch the requested content and display the content to the viewer 102 on a display screen of the electronic device 104.
  • HTTP Hypertext Transfer Protocol
  • the electronic device 104 may employ adaptive bitrate (ABR) streaming to fetch the content from the CDN PoP. More specifically, the electronic device 104 may first identify an encoding profile from among the multiple encoding profiles based on the current network condition. For example, if the network condition associated with the electronic device 104 is poor, the electronic device 104 may fetch a content stream encoded at a lower resolution (e.g. less than a threshold network speed), such as 360p or 480p. Further, the electronic device 104 may fetch a content stream encoded at a higher resolution such as 1080p, if the network quality is excellent (e.g.
  • ABR adaptive bitrate
  • the encoding profile may be fetched at a bitrate that minimizes or avoids buffering or stalling of the playback, or severe degradation in the quality metric of playback. For example, a bitrate for fetching a slice of a content stream may be reduced from 1400 Kbps to 500 Kbps if the network quality is poor. Moreover, the bitrate may be dynamically adapted as per fluctuations in the network throughput.
  • a CDN POP caches a large number of encoded content streams corresponding to each content irrespective of the fact that the electronic device 104 may request content as per only a few encoding profiles. For example, if a viewer stays in a location that has excellent network connectivity in general, then caching of encoded streams as per all available encoding profiles is sub-optimal. Similarly, if a viewer is known to always use a Wi-Fi connection instead of a cellular network connection for watching content, then caching content as per all available encoding profiles may be sub-optimal.
  • the selection of ABR parameters to cater to changes in the network conditions is currently static in nature. More specifically, the ABR parameters are not specifically optimized for each viewer such as the viewer 102, and are manipulated as per predefined settings for each change in network conditions, leading to fluctuations in quality experienced by the viewer 102 as the rate of adapting to network changes is not controlled.
  • various embodiments of the present invention provide systems and methods for optimizing QoE for content viewers, described with references to FIGS. 2 to 7.
  • An example system for optimizing QoE for content viewers is explained next with reference to .
  • the system 200 may be implemented as part of a digital platform server. In some embodiments, the system 200 may be deployed within the digital platform server. Alternatively, the system 200 may be placed external to, and in operative communication with, the digital platform server.
  • the system 200 optimizes QoE for content viewers based on heartbeat information.
  • the heartbeat information includes information related to electronic device attributes and/or current network attributes that can also be transmitted from the electronic device to the digital platform server. Such information is hereinafter referred to as ‘heartbeat information’, ‘heartbeat packet’ or simply as ‘heartbeat’.
  • the heartbeat information may include information such as a throughput trace, a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, a type of network access (for example, cellular or Wi-Fi), network provider, IP address, geo-location information, browser information (e.g., cookie data, MAID), active background applications, and other electronic device attributes (e.g., device identifier, processing capability, type of Operating System, etc.), and the like.
  • a throughput trace e.g., a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, a type of network access (for example, cellular or Wi-Fi), network provider, IP address, geo-location information, browser information (e.g., cookie data, MAID), active background applications, and other electronic device attributes (e.g., device identifier, processing capability, type of Operating System, etc.), and the like.
  • the system 200 includes a processing module 202, a memory module 204, an input/output (I/O) module 206, a communication module 208, and a storage module 210.
  • the processing module 202 is further configured to include a QoE optimizer 212, which further includes a parameter extractor 214, a search space analyzer 216, an event logger 218, and an encoding implementer 220.
  • the system 200 is depicted to include the processing module 202, the memory module 204, the input/output (I/O) module 206, the communication module 208, and the storage module 210, in some embodiments, the system 200 may include more or fewer components than those depicted in .
  • the various components of the system 200 may be implemented using hardware, software, firmware, or any combination thereof. Further, the various components of the system 200 may be in operative communication with each other using standard interface protocols and communication channel media (such as a communication bus, for example). The interfaces and communication channel media are not shown in .
  • the processing module 202 may be embodied as a multi-core processor, a single-core processor, or a combination of one or more multi-core processors and one or more single-core processors.
  • the processing module 202 may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a graphical processing unit (GPU), a special-purpose computer chip, or the like.
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • MCU microcontroller unit
  • GPU graphical processing unit
  • special-purpose computer chip or the like.
  • the memory module 204 is capable of storing machine-executable instructions, referred to herein as platform instructions 205.
  • the processing module 202 is configured to execute the platform instructions 205.
  • the processing module 202 may be configured to execute hard-coded functionality.
  • the processing module 202 is embodied as an executor of software instructions, wherein the instructions may specifically configure the processing module 202 to perform the algorithms and/or operations described herein when the instructions are executed.
  • each component of the processing module 202 may be configured to execute instructions stored in the memory module 204 for realizing respective functionalities, as will be explained in further detail later.
  • the memory module 204 may be embodied as one or more non-volatile memory devices, one or more volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices.
  • the memory module 204 may be embodied as semiconductor memories, such as flash memory, mask ROM, PROM (programmable ROM), EPROM (erasable PROM), RAM (random access memory), and the like.
  • the memory module 204 may store a machine learning model (not shown in ).
  • the machine learning model is configured to facilitate the selection of optimal sets of encoding profiles and ABR profiles as will be explained in further detail later.
  • the memory module 204 may store one or more heuristic algorithms to facilitate the selection of optimal sets of encoding profiles and ABR profiles.
  • the memory module 204 stores logic and/or instructions that may be used by the processing module 202.
  • the memory module 204 includes instructions for (1) extracting one or more parameters from the request for the playback URL, (2) determining one or more optimized sets of encoding profiles, and one or more optimized Adaptive Bitrate (ABR) profiles based on the extracted one or more parameters, (3) facilitating optimization of QoE of content playback associated with the playback URL, (4) tracking playback of the content related to the content title on the electronic device, (5) detecting one or more events associated with the playback of the content, (6) predicting a need for optimizing QoE based on the one or more events, and (7) re-optimizing QoE based on the prediction and information in the heartbeat packets.
  • ABR Adaptive Bitrate
  • the I/O module 206 may include mechanisms configured to receive inputs from and provide outputs to an operator of the system 200.
  • the term ‘operator of the system 200’ as used herein may refer to one or more individuals, whether directly or indirectly associated with managing the digital OTT platform on behalf of the content provider.
  • the I/O module 206 may include at least one input interface and/or at least one output interface. Examples of the input interface may include but are not limited to, a keyboard, a mouse, a joystick, a keypad, a touch screen, soft keys, a microphone, and the like.
  • Examples of the output interface may include, but are not limited to, a display such as a light-emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, a microphone, a speaker, a ringer, and the like.
  • a display such as a light-emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, a microphone, a speaker, a ringer, and the like.
  • TFT thin-film transistor
  • AMOLED active-matrix organic light-emitting diode
  • At least one module of the system 200 may include an I/O circuitry (not shown in ) configured to control at least some functions of one or more elements of the I/O module 206, such as, for example, a speaker, a microphone, a display, and/or the like.
  • the processing module 202 of the system 200 and/or the I/O circuitry may be configured to control one or more functions of the elements of the I/O module 206 through computer program instructions, for example, software and/or firmware, stored on a memory, for example, the memory module 204, and/or the like, accessible to the processing module 202 of the system 200.
  • the operator of the system 200 may use the I/O module 206 to provide inputs to train the machine learning model stored in the memory module 204.
  • the operator of the system 200 may provide inputs related to encoding profiles and ABR parameters used by various viewers for viewing content, to the machine learning model.
  • the inputs provided to the machine learning model may also include information related to a playback quality experienced by a viewer after a selection of a particular encoding profile and/or an ABR profile.
  • the machine learning module is trained using such inputs to accurately determine/predict the optimal sets of encoding profiles and ABR profiles for a given set of viewer/network attributes.
  • the operator of the system 200 may also use the I/O module 206 to tune weights of parameters of the machine learning model to further optimize the machine learning model.
  • Some examples of the parameters of the machine learning model may include, but are not limited to, a type of network offered by a network provider (for example, a 4G/5G cellular network or a Wi-Fi network), a type of electronic device used by the viewer for watching the content (mobile/ television or any other computing device), a resolution selected for watching the content, network bandwidth traces, statistics related to variance and such other metrics to indicate past and current network performance and the like.
  • the communication module 208 is configured to facilitate communication between the system 200 and other components of the digital platform server (not shown in ). In some embodiments, the communication module 208 may be configured to facilitate communication between the system 200 and one or more remote entities over a communication network such as the network 110 shown in . For example, the communication module 208 is capable of facilitating communication with electronic devices of content viewers, with ISPs, with edge servers associated with CDNs, with content ingestion servers, and the like.
  • the storage module 210 is any computer-operated hardware or a database suitable for storing and/or retrieving data.
  • the storage module 210 is configured to store CDN registration data, CDN-content map, routing policies, real-time metrics of CDNs, heartbeat information received from viewer devices (e.g., electronic device 104), hostnames for CDNs, playback event logs for a plurality of viewers, and the like.
  • the storage module 210 may include multiple storage units such as hard drives and/or solid-state drives in a redundant array of inexpensive disks (RAID) configuration.
  • the storage module 210 may include a storage area network (SAN) and/or a network-attached storage (NAS) system.
  • the storage module 210 may correspond to a distributed storage system, wherein individual databases are configured to store custom information, such as user playback event logs.
  • the processing module 202 and/or other components of the QoE optimizer 212 may access the storage module 210 using a storage interface (not shown in ).
  • the storage interface may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing the processing module 202 and/or the QoE optimizer 212 with access to the storage module 210.
  • ATA Advanced Technology Attachment
  • SATA Serial ATA
  • SCSI Small Computer System Interface
  • a viewer may wish to watch content associated with a content title on an electronic device associated with the viewer.
  • the viewer may access an application, such as the application 106 shown in , on the viewer’s electronic device.
  • the UI of the accessed application may display the content title associated with the content.
  • the viewer may provide a selection of the content title to trigger fetching of the content associated with the content title.
  • the viewer’s selection of the content title may cause a request for playback URL to be transmitted from the electronic device to a digital platform server associated with the content provider.
  • the request for playback URL may include the content title (for which the content is requested), and information related to the viewer’s account, such as the viewer’s name, the type of account of the viewer (i.e.
  • the request for the playback URL includes the heartbeat information.
  • the heartbeat information includes information related to the electronic device’s attributes and/or current network attributes that can also be transmitted from the electronic device to the digital platform server.
  • the digital platform server may perform an authentication check and an entitlement check as explained with reference to .
  • the digital platform server is further configured to forward the request for playback URL to the system 200.
  • the communication module 208 of the system 200 is configured to receive the request for the playback URL and forwards the request for the playback URL to the processing module 202, or more specifically to the QoE optimizer 212. The processing of the request for the playback URL by the QoE optimizer 212 is explained next with reference to FIGS. 3A-3B and 4.
  • FIG. 300 is a block diagram representation 300 for illustrating processing of the request for the playback URL by a QoE optimizer 212 (shown in ), in accordance with an embodiment of the invention. More specifically, the block diagram representation 300 shows the processing of the request for the playback URL by the parameter extractor 214 and the search space analyzer 216 of the QoE optimizer 212 for facilitating QoE optimization.
  • the system 200 is configured to receive the request for the playback URL, sent by the electronic device of the viewer.
  • the QoE optimizer 212 within the processing module 202 may be configured to process the request for playback URL to facilitate QoE optimization.
  • the parameter extractor 214 of the QoE optimizer 212 is shown to receive a request for playback URL 304.
  • the parameter extractor 214 is configured to parse the information related to the request for playback URL 304 to generate parameters 306.
  • the request for playback URL 304 includes the content title related to the content and heartbeat information. For example, information related to underlying network conditions related to the user and one or more attributes related to the electronic device associated with the user may be extracted as the parameters 306.
  • the heartbeat information may include a throughput trace and information related to a screen resolution associated with the electronic device of the user (e.g., a maximum screen resolution supported by the electronic device).
  • throughput trace refers to a sampling of the playback quality, where the sampling is configured to capture the fluctuations in network bandwidth.
  • the parameter extractor 214 is configured to extract the throughput trace, the screen resolution, and the maximum screen resolution from the heartbeat information as the parameters 306.
  • the user s location, the content the user is intending to watch, the kind of device the user is using to watch content may be extracted from the request for playback URL 304 by the parameter extractor 214.
  • the parameters 306 extracted by the parameter extractor 214 may then be provided to a search space analyzer 216.
  • the search space analyzer 216 may also receive an input related to available ‘m’ encoding profiles shown as encoding profiles 308 and an input related to available ‘n’ ABR profiles shown as ABR profiles 310, from the storage module 210.
  • the ‘m’ encoding profiles and the ‘n’ ABR profiles together configure an ‘m x n’ search space of QoE profiles.
  • the term ‘ABR profile’ as used herein includes a set of scalar values corresponding to ABR hyper-parameters, which are used as part of ABR streaming to control an adaption rate on the electronic device given the fluctuations in the network throughput.
  • the ABR hyper-parameters are also interchangeably referred to as ABR parameters throughout the description.
  • the ABR parameters include a bandwidth downgrade target, a bandwidth upgrade target, a maximum duration for quality decrease, a bandwidth fraction, abandon multiplier, a maximum switching limit, and the like.
  • the abandon multiplier is a constant defined based on probable ABR profiles.
  • the maximum switching limit defines an upper threshold on the number of times an electronic device can switch between different encoding profiles in specified time duration, for example, a maximum switching limit of 5 in a time duration of 30 seconds.
  • a set of scalar values corresponding to one or more such ABR parameters configure an ‘ABR profile’ as used herein in the description.
  • the search space analyzer 216 is configured to retrieve code/instructions related to a machine learning model stored in the memory module 204 (shown in ).
  • the machine learning model is trained to optimize an objective function, which in turn is a function of a rebuffering rate of the electronic device, a quality metric of playback, and a throughput trace.
  • the objective function aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the user’s network.
  • the search space analyzer 216 is configured to provide the parameters 306 as input to the machine learning model and cause the machine learning model to search in the search space of m x n QoE profiles to identify sets of encoding profiles and ABR profiles based on an optimized objective function. For instance, those sets of encoding profiles and ABR profiles are identified that optimize the aforementioned objective function.
  • the search space analyzer 216 is configured to provide two outputs, namely optimized sets of encoding profiles 312 and optimized ABR profiles 314.
  • the digital platform server encodes the content as per all the available encoding profiles. More specifically, the digital platform server encodes the content using all possible combinations of encoding standards and resolutions to configure a large number of encoded content streams. A large number of encoded content streams are then cached in a CDN PoP nearest to the location of the viewer to facilitate fetching of the content stream by the electronic device of the viewer.
  • CDN PoP nearest to the location of the viewer to facilitate fetching of the content stream by the electronic device of the viewer.
  • only the most optimal sets of encoding profiles are identified for the given network/device attributes associated with the viewer. In one example scenario, only four sets of encoding profiles corresponding to combinations of encoding protocols H.
  • 264 and H.265 and resolutions of 360p and 720p are identified as the optimal sets of encoding profiles for providing the most optimum content viewing experience to the user.
  • the machine learning model may also identify optimum ABR profiles related to bitrate for fetching content streams, which are encoded using the four encoding profiles, from the CDN PoP.
  • An example encoding profile and an example ABR profile including optimized ABR parameters are shown in .
  • the CDN POP Instead of encoding content as per all available encoding profiles to cater to every change in network/device attribute, the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoding profiles. Further, the selection of ABR parameters to cater to changes in network conditions is dynamic and optimized based on historical data, leading to fewer or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is controlled. It shall be noted that although various embodiments of the invention describe caching the content in the CDN PoP, the content after encoding may be stored in a centralized server associated with the content provider such as, the digital platform server 120. In general, a plurality of content streams generated after encoding the content may be cached in many such digital platform servers distributed across geographical locations to provide requested content with optimized QoE to the viewers such as, the viewer 102.
  • a block diagram representation 350 illustrating an example encoding profile 352 and an example ABR profile 354 is shown, in accordance with an embodiment of the invention.
  • the encoding profile 352 is depicted to include four sets of values, such as those depicted in blocks 356, 358, 360, and 362 for encoding content.
  • Each set of value is depicted to exemplarily include a ‘bitrate’ parameter, a ‘height’ parameter, and a ‘VMAF’ parameter corresponding to an encoding data rate, a screen resolution, and a video quality, respectively.
  • Content requested by a user may be encoded as per each set of value to configure an encoded stream of content (i.e., a content stream).
  • the encoding profile 352 is depicted to be associated with four sets of values, four content streams of the content may be generated corresponding to the encoding profile 352.
  • the ABR profile 354 is depicted to include three scalar values corresponding to three ABR parameters, namely, bandwidth downgrade target, exponential weighted moving average, and the maximum duration for quality decrease.
  • the scalar values of the ABR parameters facilitate in controlling the rate of adaptation given the fluctuations in network throughput.
  • one encoding profile i.e. one set of content streams
  • one ABR profile such as the ABR profile 354
  • one or more optimized sets of encoding profiles and one or more optimized ABR profiles are identified in relation to various slices of playback of the content requested by the viewer.
  • the search space analyzer 216 is configured to provide the optimum sets of encoding profiles to the encoding implementer 220 (shown in ).
  • the encoding implementer 220 is configured to cause an encoding service associated with the digital platform server to encode the requested content as per the optimized sets of encoding profiles and cache the encoded content streams in the CDN PoP nearest to the location of the viewer.
  • the QoE optimizer 212 is configured to cause provisioning of the optimized ABR profiles 314 along with the information related to the optimized sets of encoding profiles 312 to the electronic device of the viewer via the communication module 208 (shown in ).
  • the optimized ABR profiles 314 and the information related to the optimized sets of encoding profiles 312 may be sent as part of the response to the request for playback URL. More specifically, in addition to the playback URL identifying the CDN PoP caching the content, the communication module 208 is further configured to cause provisioning of the optimized ABR profiles 314 and the information related to the optimized sets of encoding profiles 312 to the electronic device.
  • the optimized ABR profiles 314, the information related to the optimized sets of encoding profiles 312, and playback URLs related to the plurality of content streams configure a manifest.
  • the manifest is a log or record of information related to the transfer of the content to the electronic device of the viewer and includes information related to the content such as, but not limited to, available bitrates, available resolutions, a number of segments of the content, a size of the plurality of segments, Uniform Resource Locators (URLs) associated with each of the segments, advertisement related information, and the like.
  • the manifest is provided to the electronic device in response to the request for the playback URL.
  • the electronic device can make use of the optimized ABR profiles 314 from the manifest to make adjustments to the bitrate and control the rate of adaptation for fetching content encoded as per the optimal encoding profile from the CDN PoP.
  • the information related to the optimized sets of encoding profiles 312 enables the electronic device to select an optimal encoded stream for displaying requested content to the viewer.
  • Such an end-to-end optimization i.e. from the encoder, the streaming system, the CDN PoP to the viewer’s device, provides a high quality of experience to content viewers in substantially real-time.
  • the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoding profiles.
  • the ABR parameters are selected to cater to dynamic changes in network conditions and optimized based on historical data, leading to less or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is now controlled.
  • the system 200 is further configured to facilitate end-to-end QoE optimization in real-time as will be explained with reference to .
  • a block diagram representation 400 is shown for illustrating end-to-end optimization facilitated by the QoE optimizer 212 (shown in ), in accordance with an embodiment of the invention. More specifically, the block diagram representation 400 shows the event logger 218 and the encoding implementer 220 of the QoE optimizer 212 for facilitating QoE optimization.
  • the other components of the QoE optimizer 212, such as the parameter extractor 214 and the search space analyzer 216 are not shown and explained again in for sake of brevity.
  • the QoE optimizer 212 or, more specifically, the search space analyzer 216 of the QoE optimizer 212 is configured to generate an output related to the optimized sets of encoding profiles and an output related to the optimized ABR profiles.
  • the optimized sets of encoding profiles may be used to encode content streams and such encoded content streams are provided to a CDN PoP 402 along with the information related to the optimized sets of encoding profiles.
  • a manifest including the optimized ABR profiles 314 and information related to the optimized sets of encoding profiles are provided to an electronic device 404 used by the viewer for watching the content.
  • the QoE optimizer 212 is depicted (In the representation 400 shown in ) to provide the output related to the optimized sets of encoding profiles 312 to the CDN PoP 402 and the output related to the optimized ABR profiles 314 to the electronic device 404, it is noted that the system 200 (shown in ) or the digital platform server associated with the system 200 may provide the respective outputs to the CDN PoP 402 and the electronic device 404. Moreover, it is noted that the system 200 encodes the content and provides the encoded content streams corresponding to the optimized sets of encoding profiles 312 as output to the CDN PoP 402 in addition to the information related to the optimized sets of encoding profiles 312.
  • the provisioning a manifest 410 including the optimized sets of encoding profiles 312 and the optimized ABR profiles 314 is performed in response to a request for a playback URL.
  • the provisioning of the manifest 410 configures a forward loop of QoE optimization. More specifically, in the forward loop of QoE optimization, the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are determined before the start of playback of the content, and the parameters for fetching content are modified to optimize the content playback.
  • the playback of the content is tracked at the electronic device side and any events associated with the switching of the encoding profile or the ABR parameters during content playback are transmitted to the QoE optimizer 212.
  • the event logger 218 is configured to log the events.
  • the logged events may be analyzed by the processing module 202 to determine if there is a need for optimizing QoE to provide an improved quality of experience to the viewer. If there is a need for improved QoE, the parameter extractor 214 and the search space analyzer 216 may extract information from heartbeat packets and identify optimized sets of encoding profiles and optimized ABR profiles for re-optimizing the QoE. Such a flow from the electronic device to the QoE optimizer constitutes the reverse loop of QoE optimization for purposes of the invention as is exemplarily depicted using an arrow 406.
  • the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are re-evaluated during playback of the content, and the parameters for fetching content are modified to re-optimize the ongoing content playback.
  • an encoding profile may not be available among the ‘m’ encoding profiles retrieved from the storage module 210 (shown in ).
  • the encoding implementer 220 may be configured to use a cloud-based encoding service, such as the cloud-based encoding service 408 to acquire the missing encoding profile and complete the set of encoding profiles for facilitating QoE optimization.
  • the encoding implementer 220 may include a simulator 222 to simulate playback using the optimized sets of encoding profiles 312 and the optimized ABR profiles 314 to determine whether the QoE is optimized i.e. whether the buffering is minimized while displaying content with the highest possible quality given the throughput constraints of the user’s network.
  • a simulator 222 to simulate playback using the optimized sets of encoding profiles 312 and the optimized ABR profiles 314 to determine whether the QoE is optimized i.e. whether the buffering is minimized while displaying content with the highest possible quality given the throughput constraints of the user’s network.
  • Such simulation adds necessary checks and balances to the QoE optimization process and ensures that the encoding profiles and ABR parameters selected for QoE optimization are tried and tested in a controlled non-user environment before being applied in real-life scenarios.
  • FIGS. 5A and 5B collectively show a sequence flow diagram for illustrating a process flow 500 for optimizing QoE for content viewers, in accordance with an embodiment of the invention.
  • the process flow 500 starts at 510.
  • a request for playback URL is sent from an electronic device 504 associated with the content viewer 502 to a digital platform server 506 associated with the content provider via a communication network such as the communication network 110.
  • the viewer 502 may select a content title from among a plurality of content titles displayed on a display screen of the electronic device 504.
  • the selection of the content title may trigger the request for a playback Uniform Resource Locator (URL).
  • the request for the playback URL includes the content title in relation to content and heartbeat information.
  • the heartbeat information includes information such as a throughput trace, a current screen resolution associated with the electronic device, and a maximum screen resolution supported by the electronic device.
  • the digital platform server 506 forwards the request for the playback URL to a system such as the system 200 explained with reference to FIGS. 2 – 4. It is to be noted that the system 200 may be wholly or partially incorporated in the digital platform server 506, or even may be a separate entity communicably coupled to the digital platform server 506.
  • the system 200 extracts one or more parameters from the request for the playback URL. For example, parameters such as a throughput trace, a screen resolution of the electronic device 504, viewer’s location, a title of the content the viewer is wishing to watch, device type of device the viewer is using to watch the content may be extracted as the one or more parameters.
  • parameters such as a throughput trace, a screen resolution of the electronic device 504, viewer’s location, a title of the content the viewer is wishing to watch, device type of device the viewer is using to watch the content may be extracted as the one or more parameters.
  • optimized sets of encoding profiles and optimized ABR profiles are determined in relation to the content based on the one or more parameters. More specifically, a search for one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate (ABR) profiles are performed in a search space based on the extracted one or more parameters.
  • the search space is defined by a plurality of encoding profiles and a plurality of ABR profiles within the constraints of the viewer’s device profile and the subscription rules.
  • a machine learning model is trained to identify the one or more optimized sets of encoding profiles and the one or more optimized adaptive bitrate (ABR) profiles in the search space based on the one or more parameters.
  • the content is encoded based on the optimized sets of encoding profiles and optimized ABR profiles for generating a plurality of content streams. For example, when six sets of encoding profiles corresponding to combinations of encoding protocols H. 264 and H.265 and resolutions of 360p, 480p, and 720p are identified as the optimal sets of encoding profiles, the system 200 generates the plurality of content streams by encoding the content based on the encoding profiles.
  • the content is encoded using H.264 with a resolution of 360p, using H.264 with a resolution of 480p, using H.264 with a resolution of 720p, using H.265 with a resolution of 360p, using H.265 with a resolution of 480p and using H.265 with a resolution of 720p for generating the content streams that provide the most optimum content viewing experience to the viewer.
  • the plurality of content streams, and information related to the optimized sets of encoding profiles are sent to an optimal CDN PoP 508.
  • the optimal CDN PoP may be identified based on the location of the viewer, a content ID, and performance metrics associated with a plurality of CDNs/ CDN PoPs.
  • the CDN PoP 508 stores the plurality of content streams and the information related to the optimized sets of encoding profiles.
  • a manifest is provided to the electronic device 504 associated with the content viewer 502.
  • the manifest includes playback URLs of the plurality of content streams, optimized ABR profiles, and information related to optimized sets of encoding profiles.
  • the electronic device 504 performs content playback of content streams based on the manifest i.e., the optimized ABR profiles and the information related to optimized sets of encoding profiles. More specifically, the electronic device 504 makes use of the optimized ABR profiles to make adjustments to the bitrate and control the rate of adaptation for fetching content encoded as per optimal encoding profiles (i.e., the sets of encoding profiles) from the CDN PoP 508. Moreover, the information related to the sets of encoding profiles enables the electronic device 504 to select an optimal encoded stream for displaying requested content to the viewer 502, thereby enabling end-to-end optimization which provides a high quality of experience to content viewer 502.
  • the manifest i.e., the optimized ABR profiles and the information related to optimized sets of encoding profiles. More specifically, the electronic device 504 makes use of the optimized ABR profiles to make adjustments to the bitrate and control the rate of adaptation for fetching content encoded as per optimal encoding profiles (i.e., the sets of encoding profiles) from the CD
  • the system 200 tracks the content playback on the electronic device 504.
  • one or more events may be detected by the system 200.
  • the one or more events may be associated with playback of the content. More specifically, when the electronic device 504 switches from playback of the content from one encoding profile to another encoding profile or from one ABR profile to another ABR profile, then an event is detected. In one illustrative example, when the electronic device 504 switches from performing playback of content streams encoded using H.265 at 720p to content streams encoded using H.264 at 360p an event may be detected. In another illustrative example, if the electronic device 504 switches from streaming content based on one ABR profile to another ABR profile, an event is detected. Such events are collated to configure a log of events.
  • the system 200 predicts a need for re-optimizing the QoE for the content viewer 502. More specifically, the logged events may be analyzed by the system 200 to determine a likelihood of optimizing QoE to provide an improved quality of experience to the viewer 502. In other words, the system 200 analyzes the events to interpret if there are changes in parameters related to network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device 504) during playback of the content. Any change in parameters indicates a need for re-optimizing the ongoing content playback. Such tracking of the parameters from the content playback on the electronic device 504 by the system 200 constitutes the reverse loop of QoE optimization.
  • the system 200 extracts information from heartbeat packets.
  • the system 200 parses at least one heartbeat packet received from the electronic device 504 to extract heartbeat information related to parameters.
  • heartbeat information related to parameters In other words, parameters related to network and electronic device attributes are extracted from the heartbeat packet.
  • Such information related to parameters extracted from the heartbeat packet reflect any change in network conditions or electronic device attributes.
  • the system 200 is configured to re-optimize the QoE.
  • the system 200 receives one or more heartbeat packets in relation to the content playback from the electronic device.
  • a heartbeat packet includes information related to network and electronic device attributes and such heartbeat information is extracted from at least one heartbeat packet for re-optimizing the content playback.
  • the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are re-evaluated during playback of the content, and the parameters for fetching content are modified to re-optimize the ongoing content playback.
  • the system 200 identifies at least one set of encoding profiles from among the one or more optimized sets of encoding profiles and at least one ABR profile from among the one or more optimized ABR profiles for re-optimizing the QoE.
  • the set of encoding profiles and the ABR profile selected based on parameters (i.e., the network and electronic device attributes), facilitate re-optimization of content for improving QoE during content playback. For example, if the events indicate that the content playback switches between content streams encoded using H.264 with 360p and H.264 with 480p, such events indicate that the content streams encoded using H.265 are not utilized for content playback and provide room for re-optimization.
  • the system 200 provides at least one re-optimized ABR profile and at least one re-optimized sets of encoding profiles to the electronic device 504 associated with the content viewer 502.
  • the content may be encoded based on the at least one re-optimized ABR profile and the at least one re-optimized sets of encoding profiles.
  • the content streams generated are stored in the CDN PoP 508 (see, 542).
  • the electronic device 504 performs content playback of content streams based on re-optimization.
  • FIG. 600 shows a flow diagram of a method 600 for optimizing QoE for content viewers, in accordance with an embodiment of the invention.
  • the various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by a system such as the system 200 explained with reference to to 5 and/or by a different device associated with the execution of software that includes one or more computer program instructions.
  • the method 600 starts at operation 602.
  • a request for a playback Uniform Resource Locator is received from an electronic device associated with a content viewer by a system, such as the system 200 explained with reference to FIGS. 1 to 5.
  • the request for the playback URL includes content title in relation to a content and heartbeat information.
  • the heartbeat information may include information such as a throughput trace, a current screen resolution associated with the electronic device, and a maximum screen resolution supported by the electronic device.
  • one or more parameters are extracted from the request for the playback URL. More specifically, information related to the underlying conditions associated with a network related to the viewer and one or more attributes related to the electronic device associated with the viewer may be extracted as the one or more parameters.
  • the one or more parameters include at least one of: a throughput trace and a screen resolution of the electronic device. Further, the viewer’s location, the content the viewer is wishing to watch, kind of device the viewer is using to watch the content may also be extracted as parameters.
  • one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles are determined based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles. More specifically, a search for the one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate (ABR) profiles are performed in a search space based on the extracted one or more parameters.
  • the search space is defined by a plurality of encoding profiles and a plurality of ABR profiles within the constraints of the viewer device profile and the subscription rules. For example, ‘m’ encoding profiles and ‘n’ ABR profiles together configure an ‘m x n’ search space of QoE profiles.
  • the ABR profile includes a set of scalar values corresponding to ABR parameters, which are used as part of ABR streaming to control an adaption rate on the electronic device given the fluctuations in the network throughput.
  • ABR parameters include a bandwidth downgrade target, a bandwidth upgrade target, a maximum duration for quality decrease, a bandwidth fraction, an abandon multiplier, a maximum switching limit, and the like.
  • a machine learning model is trained to identify the one or more optimized sets of encoding profiles and the one or more optimized adaptive bitrate (ABR) profiles in the search space based on the one or more parameters. More specifically, the machine learning model is trained to optimize an objective function, which in turn is a function of a rebuffering rate of the electronic device, a quality metric of playback and a throughput trace. In other words, the objective function aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the viewer’s network. Accordingly, the machine learning model is configured to search in the search space of m x n QoE profiles to identify the sets of encoding profiles and ABR profiles that optimize the aforementioned objective function.
  • QoE Quality of Experience optimization of content playback associated with playback URL is facilitated based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
  • the system 200 facilitates a digital platform server such as, the digital platform server 506 to encode the content based on the one or more optimized sets of encoding profiles for providing the most optimum content viewing experience to the user.
  • the system 200 identifies only the most optimal sets of encoding profiles for the given network/device attributes associated with the viewer and provides those sets of encoding profiles for encoding to the digital platform server.
  • CDN PoP nearest to the location of the viewer to facilitate fetching of the content stream by the electronic device of the viewer.
  • the CDN PoP stores only a few content streams, which are encoded as per optimized sets of encoded profiles instead of encoding the content as per all available encoding profiles to cater to every change in network/device attribute.
  • FIG. 700 shows a flow diagram of a method 700 for optimizing QoE for content viewers, in accordance with another embodiment of the invention.
  • the various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram may be implemented by, for example, hardware, firmware, a processor, circuitry, and/or by a system such as the system 200 explained with reference to to 5 and/or by a different device associated with the execution of software that includes one or more computer program instructions.
  • the method 700 starts at operation 702.
  • a request for a playback Uniform Resource Locator is received from an electronic device associated with a content viewer by a system, such as the system 200 explained with reference to FIGS. 2 to 5.
  • the request for the playback URL includes the content title in relation to content and heartbeat information.
  • one or more parameters are extracted from the request for the playback URL.
  • the one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. Further parameters such as, a maximum screen resolution supported by the electronic device, viewer’s location, the content the viewer is wishing to watch, kind of device the viewer is using to watch the content may also be extracted as parameters.
  • the one or more parameters include information related to the underlying conditions associated with a network related to the viewer and one or more attributes related to the electronic device associated with the viewer.
  • one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate parameters are determined based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of Adaptive Bit Rate (ABR) profiles.
  • a machine learning model is configured to search in a search space of m x n QoE profiles to identify the sets of encoding profiles and ABR profiles that optimize an objective function.
  • the m x n QoE profiles configure the search space which includes ‘m’ encoding profiles and ‘n’ ABR profiles.
  • the objective function is a function of a rebuffering rate of the electronic device, a quality metric of playback, and a throughput trace which aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the viewer’s network
  • QoE optimization of content playback associated with the playback URL is facilitated based on the one or more optimized sets of encoding profiles and the one or more optimized ABR parameters. More specifically, the system 200 facilitates a digital platform server such as, the digital platform server 506 to encode the content based on the one or more optimized sets of encoding profiles for providing the most optimum content viewing experience to the viewer.
  • a digital platform server such as, the digital platform server 506 to encode the content based on the one or more optimized sets of encoding profiles for providing the most optimum content viewing experience to the viewer.
  • a manifest including playback URLs of the plurality of content streams, the one or more optimized ABR parameters, and information related to the one or more optimized set of encoding profiles are provided to the electronic device in response to the request for the playback URL.
  • the manifest is configured to facilitate the display of the content associated with the content title on the electronic device based on the one or more optimized set of encoding profiles and the one or more optimized ABR parameters.
  • the network and electronic device attributes (such as throughput trace, screen resolution and maximum screen resolution supported by the electronic device) are determined before the start of playback of the content, and the content playback is modified for providing optimized QoE for the content viewer.
  • the ABR parameters that are provided to the electronic device for content playback are optimized based on historical data, thereby significantly improving playback quality experienced by the viewer as the rate of adapting to network changes is now controlled.
  • the embodiments disclosed herein provide numerous advantages. More specifically, the embodiments disclosed herein suggest techniques for optimizing QoE for content viewers.
  • the QoE optimization is performed from end-to-end and in substantially real-time, to provide an enjoyable and seamless content viewing experience to the users.
  • the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoded profiles.
  • the selection of ABR parameters to cater to changes in network conditions is now dynamic in nature, i.e. the ABR parameters are not manipulated as per predefined settings for each change in network conditions but optimized based on historical data, leading to less or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is now controlled.
  • CMOS complementary metal-oxide-semiconductor
  • firmware software
  • software any combination of hardware, firmware, and/or software (for example, embodied in a machine-readable medium).
  • the apparatuses and methods may be embodied using transistors, logic gates, and electrical circuits (for example, application-specific integrated circuit (ASIC) circuitry and/or in Digital Signal Processor (DSP) circuitry).
  • ASIC application-specific integrated circuit
  • DSP Digital Signal Processor
  • the system 200 and its various components such as the processing module 202, the memory module 204, the I/O module 206, and the communication module 208 may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry).
  • Various embodiments of the present invention may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or the computer to perform one or more operations (for example, operations explained herein with reference to FIGS. 6 and 7).
  • a computer-readable medium storing, embodying, or encoded with a computer program, or similar language may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations. Such operations may be, for example, any of the steps or operations described herein.
  • the computer programs may be stored and provided to a computer using any type of non-transitory computer-readable media.
  • Non-transitory computer-readable media include any type of tangible storage media.
  • non-transitory computer-readable media examples include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g., magneto-optical disks), CD-ROM (compact disc read-only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.).
  • magnetic storage media such as floppy disks, magnetic tapes, hard disk drives, etc.
  • optical magnetic storage media e.g., magneto-optical disks
  • CD-ROM compact disc read-only memory
  • CD-R compact disc recordable
  • CD-R/W compact disc rewritable
  • DVD Digital Versatile Disc
  • BD Blu-ray (registered
  • a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices.
  • the computer programs may be provided to a computer using any type of transitory computer-readable media. Examples of transitory computer-readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer-readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.

Abstract

Methods and systems for optimizing Quality of Experience (QoE) for content viewers are disclosed. A request for a playback Uniform Resource Locator (URL) is received from an electronic device associated with a content viewer. The request for the playback URL includes content title in relation to a content and heartbeat information. Further, parameters are extracted from the request for the playback URL. The parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. Furthermore, optimized sets of encoding profiles and optimized Adaptive Bitrate (ABR) profiles are determined based on the extracted parameters, a plurality of encoding profiles and a plurality of ABR profiles. Content playback associated with the playback URL is optimized based on the optimized sets of encoding profiles and the optimized ABR profiles for the content viewer.

Description

METHODS AND SYSTEMS FOR OPTIMIZING QUALITY OF EXPERIENCE FOR CONTENT VIEWERS Cross-reference to related applications
This application claims priority from Indian provisional patent application 202121010865, filed on March 15, 2021, which is incorporated herein in its entirety by this reference thereto.
The present technology generally relates to the delivery of content, such as streaming content to end-users and, more particularly, to systems and methods for optimizing Quality of Experience (QoE) for content viewers.
Background
Most content providers, nowadays, focus on generating and/or curating the most appropriate content for their viewers. The content providers make use of several machine learning models to learn user behavior and predict the type of content that each user will be most interested in. Curated content options are then offered to each viewer with an expectation that the viewer will continue to watch the content provided by the content provider. In many cases, even though the content is of the viewer’s choice, the quality of experience (QoE) provided to the viewer influences a viewer’s decision on whether to continue watching the content provided by the content provider.
The QoE associated with the playback of the content streamed to the viewer’s device may depend upon several factors. For example, factors like underlying network conditions and/or attributes associated with the viewer’s device, such as a video resolution used by the viewer’s device for content playback may influence the QoE provided to the viewer. If the playback of the content frequently stalls or if the picture resolution is extremely poor, the QoE may be severely degraded and the viewer may choose to stop watching the content, even though the content is of the viewer’s choice.
In light of the foregoing, there is a need for technical solutions to optimize the QoE provided to the user. Further, it would be advantageous to provide end-to-end QoE optimization in real-time to efficiently adapt the content display to the dynamic network environments and provide an enjoyable and seamless content viewing experience to the content viewers.
In an embodiment of the invention, a computer-implemented method for optimizing Quality of Experience (QoE) for content viewers is disclosed. The method includes receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer. The request for the playback URL includes a content title related to content and heartbeat information. The method extracts, by the system, one or more parameters from the request for the playback URL. The one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. The method determines, by the system, one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles. The method facilitates, by the system, optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
In an embodiment of the invention, a system for optimizing Quality of Experience (QoE) for content viewers is disclosed. The system includes a memory and a processor. The memory stores instructions, that when executed by the processor, cause the system to receive a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer. The request for the playback URL includes a content title related to content and heartbeat information. The system extracts one or more parameters from the request for the playback URL. The one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. The system determines one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles, and a plurality of ABR profiles. The system facilitates optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
In another embodiment of the invention, a computer-implemented method for optimizing Quality of Experience (QoE) for content viewers is disclosed. The method receives, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer. The request for the playback URL includes a content title in relation to content and heartbeat information. The method extracts, by the system, one or more parameters from the request for the playback URL. The one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. The method determines, by the system, one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate parameters based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of Adaptive Bit Rate (ABR) profiles. The method facilitates, by the system, optimization of QoE of content playback associated with playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR parameters. The method provides, by the system, a manifest including playback URLs of a plurality of content streams, the one or more optimized ABR parameters, and information related to the one or more optimized set of encoding profiles to the electronic device in response to the request for the playback URL. The manifest is configured to facilitate the display of the content associated with the content title on the electronic device based on the one or more optimized set of encoding profiles and the one or more optimized ABR parameters.
The advantages and features of the invention will become better understood with reference to the detailed description taken in conjunction with the accompanying drawings, wherein like elements are identified with like symbols, and in which:
Fig.1
is a schematic representation for illustrating delivery of content from a streaming content provider to a viewer, in accordance with an example scenario;
Fig.2
is a block diagram of a system for optimizing QoE for content viewers, in accordance with an embodiment of the invention;
Fig.3A
is a block diagram representation for illustrating processing of the request for the playback URL by a QoE optimizer, in accordance with an embodiment of the invention;
Fig.3B
is a block diagram representation illustrating an example encoding profile and an example ABR profile, in accordance with an embodiment of the invention;
Fig.4
is a block diagram representation for illustrating end-to-end optimization facilitated by the QoE optimizer, in accordance with an embodiment of the invention;
Fig.5A and Fig.5B
and , collectively, illustrate a sequence flow diagram for illustrating a process flow for optimizing QoE for content viewers, in accordance with an embodiment of the invention;
Fig.6
shows a flow diagram of a method for optimizing QoE for content viewers, in accordance with an embodiment of the invention; and
Fig.7
shows a flow diagram of a method for optimizing QoE for content viewers, in accordance with another embodiment of the invention.
The drawings referred to in this description are not to be understood as being drawn to scale except if specifically noted, and such drawings are only exemplary in nature.
Detailed Description
The best and other modes for carrying out the present invention are presented in terms of the embodiments, herein depicted in FIGS. 1 to 7. The embodiments are described herein for illustrative purposes and are subject to many variations. It is understood that various omissions and substitutions of equivalents are contemplated as circumstances may suggest or render expedient but are intended to cover the application or implementation without departing from the spirit or scope of the invention. Further, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. Any heading utilized within this description is for convenience only and has no legal or limiting effect.
The terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced items.
is a representation 100 for illustrating delivery of content from a streaming content provider to a viewer 102, in accordance with an example scenario.
The term ‘streaming content provider’ as used herein refers to an enterprise owner of digital video content libraries, which offers the video content on a subscription or on-demand basis by using a digital platform and over-the-top (OTT) media services, i.e. the video content is streamed over the Internet to the electronic devices of the subscribers. A streaming content provider is hereinafter referred to as a ‘content provider’ for ease of description. Though a content provider is not shown in , a digital platform server and a content library associated with a content provider are shown in the representation 100.
The content offered by the content provider may be streaming video content such as live streaming content or on-demand video streaming content. Individuals who intend to view/access the content may subscribe to at least one type of subscription offered by the content provider. Accordingly, the term ‘subscriber’, ‘user’, ‘content viewer’ or ‘viewer’ as interchangeably used herein may refer to a viewer of subscribed content, which is offered by the content provider.
The representation 100 depicts the viewer 102 controlling an electronic device 104 for viewing/accessing content offered by the content provider. The electronic device 104 is depicted to be a Television (TV) for illustration purposes. It is noted that the viewer 102 may use one or more electronic devices, such as a smartphone, a laptop, a desktop, a personal computer, or any spatial computing device to view the content provided by the content provider. In an example, the viewer 102 may have downloaded a software application 106 (hereinafter referred to as an ‘application 106’ or an ‘app 106’) corresponding to at least one content provider on the electronic device 104. In another example, the viewer 102 may access a Web interface associated with the application 106 of the content provider on the electronic device 104. It is understood that the electronic device 104 may be in operative communication with a communication network 110, such as the Internet, enabled by a network provider, also known as an Internet Service Provider (ISP). The electronic device 104 may connect to the communication network 110 using a wired network, a wireless network, or a combination of wired and wireless networks. Some non-limiting examples of wired networks may include the Ethernet, the Local Area Network (LAN), a fiber-optic network, and the like. Some non-limiting examples of wireless networks may include the Wireless LAN (WLAN), cellular networks, Bluetooth or ZigBee networks, and the like.
The electronic device 104 may fetch the Web interface associated with the application 106 over the communication network 110 and cause display of the Web interface on a display screen (not shown) of the electronic device 104. In an illustrative example, the Web interface may display a plurality of content titles corresponding to the content offered by the content provider to its consumers.
In an illustrative example, the viewer 102 may select a content title from among the plurality of content titles displayed on the display screen of the electronic device 104. The selection of the content title may trigger a request for a playback Uniform Resource Locator (URL). The request for the playback URL is sent from the electronic device 104 via the communication network 110 to a digital platform server 120 associated with the content provider. In at least some embodiments, the digital platform server 120 may include at least one of a Content Management System (CMS) and a User Management System (UMS) for facilitating streaming of digital content from a content library 130 associated with the content provider to a plurality of users, such as the viewer 102. The digital platform server 120 is configured to authenticate the viewer 102 and determine if the viewer 102 is entitled to view the requested content. To this effect, the digital platform server 120 may be in operative communication with one or more remote servers, such as an authentication server and an entitlement server. The authentication server and the entitlement server are not shown in . The authentication server may facilitate authentication of viewer account credentials using standard authentication mechanisms such as password matching, device ID matching, location matching, etc. The entitlement server may facilitate the determination of the viewer’s subscription type (i.e. whether the viewer has subscribed to regular or premium content) and status (i.e. whether the subscription is still active or expired). Based on the subscription type and status of the viewer, the entitlement server determines whether the viewer 102 is entitled to view/access the requested content or not.
Further, the digital platform server 120 extracts an Autonomous System Number (ASN) and an IP address from the playback URL request, and identifies at least one Content Delivery Network (CDN) Point of Presence (PoP), which is in the proximity of the location of the viewer 102. As an illustrative example, three CDN PoPs, shown as a CDN PoP 108a, a CDN PoP 108b, and a CDN PoP 108c in , are depicted as identified CDN PoPs in the proximity of the location of the viewer 102. The CDN PoP 108a, 108b, and 108c are hereinafter collectively referred to as CDN Points of Presence (PoPs) 108. The digital platform server 120 performs a check to determine if the content associated with the requested content title is cached in at least one CDN PoP from among the CDN PoPs 108. It is noted that the requested content may have been cached from the content library 130 of the content provider to one or more CDN PoPs from among the CDN PoPs 108. If the content is not cached in the CDN PoPs, the digital platform server 120 checks whether any other CDN or CDN PoP in the vicinity of the CDN PoPs 108 is caching the content requested with content title or not. If the content is cached in one or more CDN PoPs from among the CDN PoPs 108 and/or in any other CDN/CDN PoP, the digital platform server 120 identifies an optimal CDN PoP taking into account, the location of the viewer 102, a content ID and performance metrics associated with the plurality of CDNs/ CDN PoPs.
In the event that the content associated with the requested content title is not cached with any of the CDNs/ CDN PoPs, the digital platform server 120 may be configured to cache the content from the content library 130 to a CDN PoP nearest to a location of the viewer 102. The digital platform server 120 is configured to encode the content as per multiple encoding profiles and cause storage of the plurality of encoded versions of the content in the CDN PoP nearest to the location of the viewer 102. It is noted that the content, especially high-resolution video content, needs to be compressed for optimizing bandwidth usage and, therefore, the content is encoded (or compressed) before storing in the CDN PoP. As the digital platform server 120 is not aware of the underlying network conditions or the playback quality currently being experienced by the viewer 102, the digital platform server 120 may encode the content using codecs associated with multiple encoding standards such as, but not limited to, H.264, H.265, VP8, VP9, AOMedia Video 1 (AVI), Versatile Video Coding (VVC), and the like. Further, for each encoding standard, the content may be encoded at multiple resolutions such as, but not limited to, 360p, 480p, 720p, 1080p, and 4K/Ultra-high Definition (UHD) resolution to configure multiple sets of encoding profiles (also known as ‘encoding ladders’). The term ‘encoding profile’ as used herein corresponds to a set of content streams corresponding to a content, where each content stream is characterized by an encoding bitrate (r), a spatial resolution (s), a frame rate (fps), and a Video Multimethod Assessment Function (VMAF) value (v). For example, video content may be encoded using H.264 standard at a bitrate of 400 KBps, a spatial resolution of 360p, a frame rate of 30 fps, and a VMAF of 75 to configure a content stream (CS1). Similarly, video content may be encoded using H.264 standard at a bitrate of 500 KBps, a spatial resolution of 480p, a frame rate of 30 fps, and a VMAF of 80 to configure another content stream (CS2). Multiple such content streams of content encoded as per H.264 standard configure one ‘encoding profile’. Similarly, video content may be encoded using H.265 standard at one or more resolutions, frame rates, and VMAF scores to generate multiple encoded content streams of video content, thereby configuring another encoding profile.
As mentioned above, the digital platform server 120 may encode the content as per multiple encoding profiles and cache the content in the CDN PoP. The digital platform server 120 provides a playback URL identifying the network/IP address of the CDN PoP in which the content is cached, to the electronic device 104 of the viewer 102. In an example, the electronic device 104 is configured to generate a Hypertext Transfer Protocol (HTTP) request using the playback URL and provide the HTTP request over the communication network 110 to the CDN PoP to fetch the requested content and display the content to the viewer 102 on a display screen of the electronic device 104.
In an example, the electronic device 104 may employ adaptive bitrate (ABR) streaming to fetch the content from the CDN PoP. More specifically, the electronic device 104 may first identify an encoding profile from among the multiple encoding profiles based on the current network condition. For example, if the network condition associated with the electronic device 104 is poor, the electronic device 104 may fetch a content stream encoded at a lower resolution (e.g. less than a threshold network speed), such as 360p or 480p. Further, the electronic device 104 may fetch a content stream encoded at a higher resolution such as 1080p, if the network quality is excellent (e.g. more than a threshold network speed) and if the screen size and a resolution associated with the electronic device 104 support such a resolution of the content stream. The encoding profile may be fetched at a bitrate that minimizes or avoids buffering or stalling of the playback, or severe degradation in the quality metric of playback. For example, a bitrate for fetching a slice of a content stream may be reduced from 1400 Kbps to 500 Kbps if the network quality is poor. Moreover, the bitrate may be dynamically adapted as per fluctuations in the network throughput.
The aforementioned process (which is not following an example embodiment of the present disclosure) of delivering content, though useful, is suboptimal and is associated with several drawbacks. For example, a CDN POP caches a large number of encoded content streams corresponding to each content irrespective of the fact that the electronic device 104 may request content as per only a few encoding profiles. For example, if a viewer stays in a location that has excellent network connectivity in general, then caching of encoded streams as per all available encoding profiles is sub-optimal. Similarly, if a viewer is known to always use a Wi-Fi connection instead of a cellular network connection for watching content, then caching content as per all available encoding profiles may be sub-optimal. Further, the selection of ABR parameters to cater to changes in the network conditions is currently static in nature. More specifically, the ABR parameters are not specifically optimized for each viewer such as the viewer 102, and are manipulated as per predefined settings for each change in network conditions, leading to fluctuations in quality experienced by the viewer 102 as the rate of adapting to network changes is not controlled.
In the aforementioned process (which is not following an example embodiment of the present disclosure), if playback of the content frequently stalls or if the picture quality is extremely poor, the Quality of Experience (QoE) may be severely degraded and the viewer 102 may choose to not watch the content, even though the content is of viewer choice. Accordingly, there is a need to optimize the QoE provided to the viewer. Further, it would be advantageous to provide end-to-end QoE optimization in real-time to provide a customized, enjoyable, and seamless content viewing experience to the content viewers.
To obviate the disadvantages of the existing example scenario described with reference to and to provide additional benefits, various embodiments of the present invention provide systems and methods for optimizing QoE for content viewers, described with references to FIGS. 2 to 7. An example system for optimizing QoE for content viewers is explained next with reference to .
is a block diagram of a system 200 for optimizing QoE for content viewers, in accordance with an embodiment of the invention. The system 200 may be implemented as part of a digital platform server. In some embodiments, the system 200 may be deployed within the digital platform server. Alternatively, the system 200 may be placed external to, and in operative communication with, the digital platform server. The system 200 optimizes QoE for content viewers based on heartbeat information. The heartbeat information includes information related to electronic device attributes and/or current network attributes that can also be transmitted from the electronic device to the digital platform server. Such information is hereinafter referred to as ‘heartbeat information’, ‘heartbeat packet’ or simply as ‘heartbeat’. In one illustrative example, the heartbeat information may include information such as a throughput trace, a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, a type of network access (for example, cellular or Wi-Fi), network provider, IP address, geo-location information, browser information (e.g., cookie data, MAID), active background applications, and other electronic device attributes (e.g., device identifier, processing capability, type of Operating System, etc.), and the like.
In the illustrated embodiment, the system 200 includes a processing module 202, a memory module 204, an input/output (I/O) module 206, a communication module 208, and a storage module 210. The processing module 202 is further configured to include a QoE optimizer 212, which further includes a parameter extractor 214, a search space analyzer 216, an event logger 218, and an encoding implementer 220. Although the system 200 is depicted to include the processing module 202, the memory module 204, the input/output (I/O) module 206, the communication module 208, and the storage module 210, in some embodiments, the system 200 may include more or fewer components than those depicted in . The various components of the system 200 may be implemented using hardware, software, firmware, or any combination thereof. Further, the various components of the system 200 may be in operative communication with each other using standard interface protocols and communication channel media (such as a communication bus, for example). The interfaces and communication channel media are not shown in .
In one embodiment, the processing module 202 may be embodied as a multi-core processor, a single-core processor, or a combination of one or more multi-core processors and one or more single-core processors. For example, the processing module 202 may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a graphical processing unit (GPU), a special-purpose computer chip, or the like. In one embodiment, the memory module 204 is capable of storing machine-executable instructions, referred to herein as platform instructions 205. The processing module 202 is configured to execute the platform instructions 205. In an embodiment, the processing module 202 may be configured to execute hard-coded functionality. In an embodiment, the processing module 202 is embodied as an executor of software instructions, wherein the instructions may specifically configure the processing module 202 to perform the algorithms and/or operations described herein when the instructions are executed. For example, in at least some embodiments, each component of the processing module 202 may be configured to execute instructions stored in the memory module 204 for realizing respective functionalities, as will be explained in further detail later.
The memory module 204 may be embodied as one or more non-volatile memory devices, one or more volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. For example, the memory module 204 may be embodied as semiconductor memories, such as flash memory, mask ROM, PROM (programmable ROM), EPROM (erasable PROM), RAM (random access memory), and the like. In at least some embodiments, the memory module 204 may store a machine learning model (not shown in ). The machine learning model is configured to facilitate the selection of optimal sets of encoding profiles and ABR profiles as will be explained in further detail later. In some embodiments, additionally or alternatively of the machine learning model, the memory module 204 may store one or more heuristic algorithms to facilitate the selection of optimal sets of encoding profiles and ABR profiles.
In at least some embodiments, the memory module 204 stores logic and/or instructions that may be used by the processing module 202. For example, the memory module 204 includes instructions for (1) extracting one or more parameters from the request for the playback URL, (2) determining one or more optimized sets of encoding profiles, and one or more optimized Adaptive Bitrate (ABR) profiles based on the extracted one or more parameters, (3) facilitating optimization of QoE of content playback associated with the playback URL, (4) tracking playback of the content related to the content title on the electronic device, (5) detecting one or more events associated with the playback of the content, (6) predicting a need for optimizing QoE based on the one or more events, and (7) re-optimizing QoE based on the prediction and information in the heartbeat packets.
In an embodiment, the I/O module 206 may include mechanisms configured to receive inputs from and provide outputs to an operator of the system 200. The term ‘operator of the system 200’ as used herein may refer to one or more individuals, whether directly or indirectly associated with managing the digital OTT platform on behalf of the content provider. To enable reception of inputs and provide outputs to the system 200, the I/O module 206 may include at least one input interface and/or at least one output interface. Examples of the input interface may include but are not limited to, a keyboard, a mouse, a joystick, a keypad, a touch screen, soft keys, a microphone, and the like. Examples of the output interface may include, but are not limited to, a display such as a light-emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, a microphone, a speaker, a ringer, and the like.
In an example embodiment, at least one module of the system 200 may include an I/O circuitry (not shown in ) configured to control at least some functions of one or more elements of the I/O module 206, such as, for example, a speaker, a microphone, a display, and/or the like. The processing module 202 of the system 200 and/or the I/O circuitry may be configured to control one or more functions of the elements of the I/O module 206 through computer program instructions, for example, software and/or firmware, stored on a memory, for example, the memory module 204, and/or the like, accessible to the processing module 202 of the system 200.
In at least some embodiments, the operator of the system 200 may use the I/O module 206 to provide inputs to train the machine learning model stored in the memory module 204. For example, the operator of the system 200 may provide inputs related to encoding profiles and ABR parameters used by various viewers for viewing content, to the machine learning model. The inputs provided to the machine learning model may also include information related to a playback quality experienced by a viewer after a selection of a particular encoding profile and/or an ABR profile. The machine learning module is trained using such inputs to accurately determine/predict the optimal sets of encoding profiles and ABR profiles for a given set of viewer/network attributes. The operator of the system 200 may also use the I/O module 206 to tune weights of parameters of the machine learning model to further optimize the machine learning model. Some examples of the parameters of the machine learning model may include, but are not limited to, a type of network offered by a network provider (for example, a 4G/5G cellular network or a Wi-Fi network), a type of electronic device used by the viewer for watching the content (mobile/ television or any other computing device), a resolution selected for watching the content, network bandwidth traces, statistics related to variance and such other metrics to indicate past and current network performance and the like.
The communication module 208 is configured to facilitate communication between the system 200 and other components of the digital platform server (not shown in ). In some embodiments, the communication module 208 may be configured to facilitate communication between the system 200 and one or more remote entities over a communication network such as the network 110 shown in . For example, the communication module 208 is capable of facilitating communication with electronic devices of content viewers, with ISPs, with edge servers associated with CDNs, with content ingestion servers, and the like.
The storage module 210 is any computer-operated hardware or a database suitable for storing and/or retrieving data. In one embodiment, the storage module 210 is configured to store CDN registration data, CDN-content map, routing policies, real-time metrics of CDNs, heartbeat information received from viewer devices (e.g., electronic device 104), hostnames for CDNs, playback event logs for a plurality of viewers, and the like. The storage module 210 may include multiple storage units such as hard drives and/or solid-state drives in a redundant array of inexpensive disks (RAID) configuration. In some embodiments, the storage module 210 may include a storage area network (SAN) and/or a network-attached storage (NAS) system. In one embodiment, the storage module 210 may correspond to a distributed storage system, wherein individual databases are configured to store custom information, such as user playback event logs.
In some embodiments, the processing module 202 and/or other components of the QoE optimizer 212 may access the storage module 210 using a storage interface (not shown in ). The storage interface may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing the processing module 202 and/or the QoE optimizer 212 with access to the storage module 210.
In one example scenario, a viewer may wish to watch content associated with a content title on an electronic device associated with the viewer. To watch the content, the viewer may access an application, such as the application 106 shown in , on the viewer’s electronic device. The UI of the accessed application may display the content title associated with the content. The viewer may provide a selection of the content title to trigger fetching of the content associated with the content title. In at least one embodiment, the viewer’s selection of the content title may cause a request for playback URL to be transmitted from the electronic device to a digital platform server associated with the content provider. The request for playback URL may include the content title (for which the content is requested), and information related to the viewer’s account, such as the viewer’s name, the type of account of the viewer (i.e. whether the viewer is a regular user or a premium user), and the like. Further, the request for the playback URL includes the heartbeat information. As already explained, the heartbeat information includes information related to the electronic device’s attributes and/or current network attributes that can also be transmitted from the electronic device to the digital platform server. After the receipt of the request for playback URL, the digital platform server may perform an authentication check and an entitlement check as explained with reference to . On successful completion of the authentication and entitlement checks, the digital platform server is further configured to forward the request for playback URL to the system 200. The communication module 208 of the system 200 is configured to receive the request for the playback URL and forwards the request for the playback URL to the processing module 202, or more specifically to the QoE optimizer 212. The processing of the request for the playback URL by the QoE optimizer 212 is explained next with reference to FIGS. 3A-3B and 4.
is a block diagram representation 300 for illustrating processing of the request for the playback URL by a QoE optimizer 212 (shown in ), in accordance with an embodiment of the invention. More specifically, the block diagram representation 300 shows the processing of the request for the playback URL by the parameter extractor 214 and the search space analyzer 216 of the QoE optimizer 212 for facilitating QoE optimization.
As explained with reference to , the system 200 is configured to receive the request for the playback URL, sent by the electronic device of the viewer. The QoE optimizer 212 within the processing module 202 may be configured to process the request for playback URL to facilitate QoE optimization. Accordingly, in , the parameter extractor 214 of the QoE optimizer 212 is shown to receive a request for playback URL 304. The parameter extractor 214 is configured to parse the information related to the request for playback URL 304 to generate parameters 306. As explained earlier, the request for playback URL 304 includes the content title related to the content and heartbeat information. For example, information related to underlying network conditions related to the user and one or more attributes related to the electronic device associated with the user may be extracted as the parameters 306. In one illustrative example, the heartbeat information may include a throughput trace and information related to a screen resolution associated with the electronic device of the user (e.g., a maximum screen resolution supported by the electronic device). It is noted that the term ‘throughput trace’ as used herein refers to a sampling of the playback quality, where the sampling is configured to capture the fluctuations in network bandwidth. The parameter extractor 214 is configured to extract the throughput trace, the screen resolution, and the maximum screen resolution from the heartbeat information as the parameters 306. Similarly, the user’s location, the content the user is intending to watch, the kind of device the user is using to watch content may be extracted from the request for playback URL 304 by the parameter extractor 214. The parameters 306 extracted by the parameter extractor 214 may then be provided to a search space analyzer 216.
In addition to the input related to the parameters 306, the search space analyzer 216 may also receive an input related to available ‘m’ encoding profiles shown as encoding profiles 308 and an input related to available ‘n’ ABR profiles shown as ABR profiles 310, from the storage module 210. The ‘m’ encoding profiles and the ‘n’ ABR profiles together configure an ‘m x n’ search space of QoE profiles. The term ‘ABR profile’ as used herein includes a set of scalar values corresponding to ABR hyper-parameters, which are used as part of ABR streaming to control an adaption rate on the electronic device given the fluctuations in the network throughput. The ABR hyper-parameters are also interchangeably referred to as ABR parameters throughout the description. Some non-limiting examples of the ABR parameters include a bandwidth downgrade target, a bandwidth upgrade target, a maximum duration for quality decrease, a bandwidth fraction, abandon multiplier, a maximum switching limit, and the like. The abandon multiplier is a constant defined based on probable ABR profiles. The maximum switching limit defines an upper threshold on the number of times an electronic device can switch between different encoding profiles in specified time duration, for example, a maximum switching limit of 5 in a time duration of 30 seconds. A set of scalar values corresponding to one or more such ABR parameters configure an ‘ABR profile’ as used herein in the description.
The search space analyzer 216 is configured to retrieve code/instructions related to a machine learning model stored in the memory module 204 (shown in ). The machine learning model is trained to optimize an objective function, which in turn is a function of a rebuffering rate of the electronic device, a quality metric of playback, and a throughput trace. In other words, the objective function aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the user’s network. The search space analyzer 216 is configured to provide the parameters 306 as input to the machine learning model and cause the machine learning model to search in the search space of m x n QoE profiles to identify sets of encoding profiles and ABR profiles based on an optimized objective function. For instance, those sets of encoding profiles and ABR profiles are identified that optimize the aforementioned objective function. The search space analyzer 216 is configured to provide two outputs, namely optimized sets of encoding profiles 312 and optimized ABR profiles 314.
As explained with reference to , in conventional mechanisms (not in accordance with the embodiments of the present disclosure), the digital platform server encodes the content as per all the available encoding profiles. More specifically, the digital platform server encodes the content using all possible combinations of encoding standards and resolutions to configure a large number of encoded content streams. A large number of encoded content streams are then cached in a CDN PoP nearest to the location of the viewer to facilitate fetching of the content stream by the electronic device of the viewer. However, as per embodiments disclosed in the present invention, only the most optimal sets of encoding profiles are identified for the given network/device attributes associated with the viewer. In one example scenario, only four sets of encoding profiles corresponding to combinations of encoding protocols H. 264 and H.265 and resolutions of 360p and 720p are identified as the optimal sets of encoding profiles for providing the most optimum content viewing experience to the user. Similarly, the machine learning model may also identify optimum ABR profiles related to bitrate for fetching content streams, which are encoded using the four encoding profiles, from the CDN PoP. An example encoding profile and an example ABR profile including optimized ABR parameters are shown in . Hence a technical effect offered by the present disclosure is to provide end-to-end QoE optimization and in substantially real-time, to provide an enjoyable and seamless content viewing experience to the users. Instead of encoding content as per all available encoding profiles to cater to every change in network/device attribute, the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoding profiles. Further, the selection of ABR parameters to cater to changes in network conditions is dynamic and optimized based on historical data, leading to fewer or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is controlled. It shall be noted that although various embodiments of the invention describe caching the content in the CDN PoP, the content after encoding may be stored in a centralized server associated with the content provider such as, the digital platform server 120. In general, a plurality of content streams generated after encoding the content may be cached in many such digital platform servers distributed across geographical locations to provide requested content with optimized QoE to the viewers such as, the viewer 102.
Referring now to , a block diagram representation 350 illustrating an example encoding profile 352 and an example ABR profile 354 is shown, in accordance with an embodiment of the invention. The encoding profile 352 is depicted to include four sets of values, such as those depicted in blocks 356, 358, 360, and 362 for encoding content. Each set of value is depicted to exemplarily include a ‘bitrate’ parameter, a ‘height’ parameter, and a ‘VMAF’ parameter corresponding to an encoding data rate, a screen resolution, and a video quality, respectively. Content requested by a user may be encoded as per each set of value to configure an encoded stream of content (i.e., a content stream). As the encoding profile 352 is depicted to be associated with four sets of values, four content streams of the content may be generated corresponding to the encoding profile 352.
Further, the ABR profile 354 is depicted to include three scalar values corresponding to three ABR parameters, namely, bandwidth downgrade target, exponential weighted moving average, and the maximum duration for quality decrease. As explained with reference to , the scalar values of the ABR parameters facilitate in controlling the rate of adaptation given the fluctuations in network throughput.
In at least one embodiment, one encoding profile (i.e. one set of content streams) such as the encoding profile 352, and one ABR profile such as the ABR profile 354, may be identified for each slice of playback for optimizing the QoE. Further, as explained with reference to , one or more optimized sets of encoding profiles and one or more optimized ABR profiles are identified in relation to various slices of playback of the content requested by the viewer.
Referring back to , in at least one embodiment, the search space analyzer 216 is configured to provide the optimum sets of encoding profiles to the encoding implementer 220 (shown in ). The encoding implementer 220 is configured to cause an encoding service associated with the digital platform server to encode the requested content as per the optimized sets of encoding profiles and cache the encoded content streams in the CDN PoP nearest to the location of the viewer.
In at least one embodiment, the QoE optimizer 212 is configured to cause provisioning of the optimized ABR profiles 314 along with the information related to the optimized sets of encoding profiles 312 to the electronic device of the viewer via the communication module 208 (shown in ). The optimized ABR profiles 314 and the information related to the optimized sets of encoding profiles 312 may be sent as part of the response to the request for playback URL. More specifically, in addition to the playback URL identifying the CDN PoP caching the content, the communication module 208 is further configured to cause provisioning of the optimized ABR profiles 314 and the information related to the optimized sets of encoding profiles 312 to the electronic device.
The optimized ABR profiles 314, the information related to the optimized sets of encoding profiles 312, and playback URLs related to the plurality of content streams configure a manifest. More specifically, the manifest is a log or record of information related to the transfer of the content to the electronic device of the viewer and includes information related to the content such as, but not limited to, available bitrates, available resolutions, a number of segments of the content, a size of the plurality of segments, Uniform Resource Locators (URLs) associated with each of the segments, advertisement related information, and the like. Accordingly, in an embodiment, the manifest is provided to the electronic device in response to the request for the playback URL.
The electronic device can make use of the optimized ABR profiles 314 from the manifest to make adjustments to the bitrate and control the rate of adaptation for fetching content encoded as per the optimal encoding profile from the CDN PoP. Moreover, the information related to the optimized sets of encoding profiles 312, enables the electronic device to select an optimal encoded stream for displaying requested content to the viewer. Such an end-to-end optimization, i.e. from the encoder, the streaming system, the CDN PoP to the viewer’s device, provides a high quality of experience to content viewers in substantially real-time. Moreover, the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoding profiles. Further, the ABR parameters are selected to cater to dynamic changes in network conditions and optimized based on historical data, leading to less or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is now controlled. In at least some embodiments, the system 200 is further configured to facilitate end-to-end QoE optimization in real-time as will be explained with reference to .
Referring now to , a block diagram representation 400 is shown for illustrating end-to-end optimization facilitated by the QoE optimizer 212 (shown in ), in accordance with an embodiment of the invention. More specifically, the block diagram representation 400 shows the event logger 218 and the encoding implementer 220 of the QoE optimizer 212 for facilitating QoE optimization. The other components of the QoE optimizer 212, such as the parameter extractor 214 and the search space analyzer 216 are not shown and explained again in for sake of brevity.
As explained with reference to , the QoE optimizer 212 or, more specifically, the search space analyzer 216 of the QoE optimizer 212 is configured to generate an output related to the optimized sets of encoding profiles and an output related to the optimized ABR profiles. The optimized sets of encoding profiles may be used to encode content streams and such encoded content streams are provided to a CDN PoP 402 along with the information related to the optimized sets of encoding profiles. Further, a manifest including the optimized ABR profiles 314 and information related to the optimized sets of encoding profiles are provided to an electronic device 404 used by the viewer for watching the content. Although the QoE optimizer 212 is depicted (In the representation 400 shown in ) to provide the output related to the optimized sets of encoding profiles 312 to the CDN PoP 402 and the output related to the optimized ABR profiles 314 to the electronic device 404, it is noted that the system 200 (shown in ) or the digital platform server associated with the system 200 may provide the respective outputs to the CDN PoP 402 and the electronic device 404. Moreover, it is noted that the system 200 encodes the content and provides the encoded content streams corresponding to the optimized sets of encoding profiles 312 as output to the CDN PoP 402 in addition to the information related to the optimized sets of encoding profiles 312.
In at least one embodiment, the provisioning a manifest 410 including the optimized sets of encoding profiles 312 and the optimized ABR profiles 314 is performed in response to a request for a playback URL. As such, the provisioning of the manifest 410 configures a forward loop of QoE optimization. More specifically, in the forward loop of QoE optimization, the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are determined before the start of playback of the content, and the parameters for fetching content are modified to optimize the content playback. In at least some embodiments, the playback of the content is tracked at the electronic device side and any events associated with the switching of the encoding profile or the ABR parameters during content playback are transmitted to the QoE optimizer 212. The event logger 218 is configured to log the events. The logged events may be analyzed by the processing module 202 to determine if there is a need for optimizing QoE to provide an improved quality of experience to the viewer. If there is a need for improved QoE, the parameter extractor 214 and the search space analyzer 216 may extract information from heartbeat packets and identify optimized sets of encoding profiles and optimized ABR profiles for re-optimizing the QoE. Such a flow from the electronic device to the QoE optimizer constitutes the reverse loop of QoE optimization for purposes of the invention as is exemplarily depicted using an arrow 406. More specifically, in the reverse loop of QoE optimization, the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are re-evaluated during playback of the content, and the parameters for fetching content are modified to re-optimize the ongoing content playback.
In at least some embodiments, an encoding profile may not be available among the ‘m’ encoding profiles retrieved from the storage module 210 (shown in ). In such a scenario, the encoding implementer 220 may be configured to use a cloud-based encoding service, such as the cloud-based encoding service 408 to acquire the missing encoding profile and complete the set of encoding profiles for facilitating QoE optimization.
Further, in at least some embodiments, the encoding implementer 220 may include a simulator 222 to simulate playback using the optimized sets of encoding profiles 312 and the optimized ABR profiles 314 to determine whether the QoE is optimized i.e. whether the buffering is minimized while displaying content with the highest possible quality given the throughput constraints of the user’s network. Such simulation adds necessary checks and balances to the QoE optimization process and ensures that the encoding profiles and ABR parameters selected for QoE optimization are tried and tested in a controlled non-user environment before being applied in real-life scenarios.
FIGS. 5A and 5B collectively show a sequence flow diagram for illustrating a process flow 500 for optimizing QoE for content viewers, in accordance with an embodiment of the invention. The process flow 500 starts at 510.
At 510, a request for playback URL is sent from an electronic device 504 associated with the content viewer 502 to a digital platform server 506 associated with the content provider via a communication network such as the communication network 110. For example, the viewer 502 may select a content title from among a plurality of content titles displayed on a display screen of the electronic device 504. The selection of the content title may trigger the request for a playback Uniform Resource Locator (URL). The request for the playback URL includes the content title in relation to content and heartbeat information. In a non-limiting example, the heartbeat information includes information such as a throughput trace, a current screen resolution associated with the electronic device, and a maximum screen resolution supported by the electronic device.
At 512, the digital platform server 506 forwards the request for the playback URL to a system such as the system 200 explained with reference to FIGS. 2 – 4. It is to be noted that the system 200 may be wholly or partially incorporated in the digital platform server 506, or even may be a separate entity communicably coupled to the digital platform server 506.
At 514, the system 200 extracts one or more parameters from the request for the playback URL. For example, parameters such as a throughput trace, a screen resolution of the electronic device 504, viewer’s location, a title of the content the viewer is wishing to watch, device type of device the viewer is using to watch the content may be extracted as the one or more parameters.
At 516, optimized sets of encoding profiles and optimized ABR profiles are determined in relation to the content based on the one or more parameters. More specifically, a search for one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate (ABR) profiles are performed in a search space based on the extracted one or more parameters. The search space is defined by a plurality of encoding profiles and a plurality of ABR profiles within the constraints of the viewer’s device profile and the subscription rules. In an embodiment, a machine learning model is trained to identify the one or more optimized sets of encoding profiles and the one or more optimized adaptive bitrate (ABR) profiles in the search space based on the one or more parameters.
At 518, the content is encoded based on the optimized sets of encoding profiles and optimized ABR profiles for generating a plurality of content streams. For example, when six sets of encoding profiles corresponding to combinations of encoding protocols H. 264 and H.265 and resolutions of 360p, 480p, and 720p are identified as the optimal sets of encoding profiles, the system 200 generates the plurality of content streams by encoding the content based on the encoding profiles. For example, the content is encoded using H.264 with a resolution of 360p, using H.264 with a resolution of 480p, using H.264 with a resolution of 720p, using H.265 with a resolution of 360p, using H.265 with a resolution of 480p and using H.265 with a resolution of 720p for generating the content streams that provide the most optimum content viewing experience to the viewer.
At 520, the plurality of content streams, and information related to the optimized sets of encoding profiles are sent to an optimal CDN PoP 508. The optimal CDN PoP may be identified based on the location of the viewer, a content ID, and performance metrics associated with a plurality of CDNs/ CDN PoPs.
At 522, the CDN PoP 508 stores the plurality of content streams and the information related to the optimized sets of encoding profiles.
At 524, a manifest is provided to the electronic device 504 associated with the content viewer 502. The manifest includes playback URLs of the plurality of content streams, optimized ABR profiles, and information related to optimized sets of encoding profiles.
At 526, the electronic device 504 performs content playback of content streams based on the manifest i.e., the optimized ABR profiles and the information related to optimized sets of encoding profiles. More specifically, the electronic device 504 makes use of the optimized ABR profiles to make adjustments to the bitrate and control the rate of adaptation for fetching content encoded as per optimal encoding profiles (i.e., the sets of encoding profiles) from the CDN PoP 508. Moreover, the information related to the sets of encoding profiles enables the electronic device 504 to select an optimal encoded stream for displaying requested content to the viewer 502, thereby enabling end-to-end optimization which provides a high quality of experience to content viewer 502.
At 528, the system 200 tracks the content playback on the electronic device 504.
At 530, one or more events may be detected by the system 200. The one or more events may be associated with playback of the content. More specifically, when the electronic device 504 switches from playback of the content from one encoding profile to another encoding profile or from one ABR profile to another ABR profile, then an event is detected. In one illustrative example, when the electronic device 504 switches from performing playback of content streams encoded using H.265 at 720p to content streams encoded using H.264 at 360p an event may be detected. In another illustrative example, if the electronic device 504 switches from streaming content based on one ABR profile to another ABR profile, an event is detected. Such events are collated to configure a log of events.
At 532, the system 200 predicts a need for re-optimizing the QoE for the content viewer 502. More specifically, the logged events may be analyzed by the system 200 to determine a likelihood of optimizing QoE to provide an improved quality of experience to the viewer 502. In other words, the system 200 analyzes the events to interpret if there are changes in parameters related to network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device 504) during playback of the content. Any change in parameters indicates a need for re-optimizing the ongoing content playback. Such tracking of the parameters from the content playback on the electronic device 504 by the system 200 constitutes the reverse loop of QoE optimization.
At 534, the system 200 extracts information from heartbeat packets. When a need for optimizing QoE is determined i.e., a high likelihood of optimizing QoE to provide an improved quality of experience to the viewer 502, the system 200 parses at least one heartbeat packet received from the electronic device 504 to extract heartbeat information related to parameters. In other words, parameters related to network and electronic device attributes are extracted from the heartbeat packet. Such information related to parameters extracted from the heartbeat packet reflect any change in network conditions or electronic device attributes.
At 536, the system 200 is configured to re-optimize the QoE. In general, the system 200 receives one or more heartbeat packets in relation to the content playback from the electronic device. Typically, a heartbeat packet includes information related to network and electronic device attributes and such heartbeat information is extracted from at least one heartbeat packet for re-optimizing the content playback. More specifically, in the reverse loop of QoE optimization, the network and electronic device attributes (such as throughput trace, screen resolution, and maximum screen resolution supported by the electronic device) are re-evaluated during playback of the content, and the parameters for fetching content are modified to re-optimize the ongoing content playback. The system 200 identifies at least one set of encoding profiles from among the one or more optimized sets of encoding profiles and at least one ABR profile from among the one or more optimized ABR profiles for re-optimizing the QoE. The set of encoding profiles and the ABR profile selected based on parameters (i.e., the network and electronic device attributes), facilitate re-optimization of content for improving QoE during content playback. For example, if the events indicate that the content playback switches between content streams encoded using H.264 with 360p and H.264 with 480p, such events indicate that the content streams encoded using H.265 are not utilized for content playback and provide room for re-optimization.
At 538, the system 200 provides at least one re-optimized ABR profile and at least one re-optimized sets of encoding profiles to the electronic device 504 associated with the content viewer 502.
At 540, the content may be encoded based on the at least one re-optimized ABR profile and the at least one re-optimized sets of encoding profiles. The content streams generated are stored in the CDN PoP 508 (see, 542).
At 544, the electronic device 504 performs content playback of content streams based on re-optimization.
An example of a flow diagram illustrating optimization of QoE in real-time for providing an enjoyable and seamless content viewing experience to the content viewers is explained next with reference to .
shows a flow diagram of a method 600 for optimizing QoE for content viewers, in accordance with an embodiment of the invention. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by a system such as the system 200 explained with reference to to 5 and/or by a different device associated with the execution of software that includes one or more computer program instructions. The method 600 starts at operation 602.
At operation 602 of the method 600, a request for a playback Uniform Resource Locator (URL) is received from an electronic device associated with a content viewer by a system, such as the system 200 explained with reference to FIGS. 1 to 5. The request for the playback URL includes content title in relation to a content and heartbeat information. In one illustrative example, the heartbeat information may include information such as a throughput trace, a current screen resolution associated with the electronic device, and a maximum screen resolution supported by the electronic device.
At operation 604 of the method 600, one or more parameters are extracted from the request for the playback URL. More specifically, information related to the underlying conditions associated with a network related to the viewer and one or more attributes related to the electronic device associated with the viewer may be extracted as the one or more parameters. In an embodiment, the one or more parameters include at least one of: a throughput trace and a screen resolution of the electronic device. Further, the viewer’s location, the content the viewer is wishing to watch, kind of device the viewer is using to watch the content may also be extracted as parameters.
At operation 606 of the method 600, one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles are determined based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles. More specifically, a search for the one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate (ABR) profiles are performed in a search space based on the extracted one or more parameters. The search space is defined by a plurality of encoding profiles and a plurality of ABR profiles within the constraints of the viewer device profile and the subscription rules. For example, ‘m’ encoding profiles and ‘n’ ABR profiles together configure an ‘m x n’ search space of QoE profiles. The ABR profile includes a set of scalar values corresponding to ABR parameters, which are used as part of ABR streaming to control an adaption rate on the electronic device given the fluctuations in the network throughput. Some non-limiting examples of the ABR parameters include a bandwidth downgrade target, a bandwidth upgrade target, a maximum duration for quality decrease, a bandwidth fraction, an abandon multiplier, a maximum switching limit, and the like.
In an embodiment, a machine learning model is trained to identify the one or more optimized sets of encoding profiles and the one or more optimized adaptive bitrate (ABR) profiles in the search space based on the one or more parameters. More specifically, the machine learning model is trained to optimize an objective function, which in turn is a function of a rebuffering rate of the electronic device, a quality metric of playback and a throughput trace. In other words, the objective function aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the viewer’s network. Accordingly, the machine learning model is configured to search in the search space of m x n QoE profiles to identify the sets of encoding profiles and ABR profiles that optimize the aforementioned objective function.
At operation 608 of the method 600, Quality of Experience (QoE) optimization of content playback associated with playback URL is facilitated based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer. More specifically, the system 200 facilitates a digital platform server such as, the digital platform server 506 to encode the content based on the one or more optimized sets of encoding profiles for providing the most optimum content viewing experience to the user. In other words, the system 200 identifies only the most optimal sets of encoding profiles for the given network/device attributes associated with the viewer and provides those sets of encoding profiles for encoding to the digital platform server. These encoded streams are then cached in a CDN PoP nearest to the location of the viewer to facilitate fetching of the content stream by the electronic device of the viewer. As such, the CDN PoP stores only a few content streams, which are encoded as per optimized sets of encoded profiles instead of encoding the content as per all available encoding profiles to cater to every change in network/device attribute.
An example of facilitating content playback at an electronic device for optimizing QoE is explained next with reference to .
shows a flow diagram of a method 700 for optimizing QoE for content viewers, in accordance with another embodiment of the invention. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry, and/or by a system such as the system 200 explained with reference to to 5 and/or by a different device associated with the execution of software that includes one or more computer program instructions. The method 700 starts at operation 702.
At operation 702 of the method 700, a request for a playback Uniform Resource Locator (URL) is received from an electronic device associated with a content viewer by a system, such as the system 200 explained with reference to FIGS. 2 to 5. The request for the playback URL includes the content title in relation to content and heartbeat information.
At operation 704 of the method 700, one or more parameters are extracted from the request for the playback URL. The one or more parameters include at least one of: a throughput trace, and a screen resolution of the electronic device. Further parameters such as, a maximum screen resolution supported by the electronic device, viewer’s location, the content the viewer is wishing to watch, kind of device the viewer is using to watch the content may also be extracted as parameters. In general, the one or more parameters include information related to the underlying conditions associated with a network related to the viewer and one or more attributes related to the electronic device associated with the viewer.
At operation 706 of the method 700, one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate parameters are determined based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of Adaptive Bit Rate (ABR) profiles. In an embodiment, a machine learning model is configured to search in a search space of m x n QoE profiles to identify the sets of encoding profiles and ABR profiles that optimize an objective function. The m x n QoE profiles configure the search space which includes ‘m’ encoding profiles and ‘n’ ABR profiles. The objective function is a function of a rebuffering rate of the electronic device, a quality metric of playback, and a throughput trace which aims to balance the conflicting objectives of minimizing rebuffering while providing the highest possible quality given the throughput constraints associated with the viewer’s network
At operation 708 of the method 700, QoE optimization of content playback associated with the playback URL is facilitated based on the one or more optimized sets of encoding profiles and the one or more optimized ABR parameters. More specifically, the system 200 facilitates a digital platform server such as, the digital platform server 506 to encode the content based on the one or more optimized sets of encoding profiles for providing the most optimum content viewing experience to the viewer.
At operation 710 of the method 700, a manifest including playback URLs of the plurality of content streams, the one or more optimized ABR parameters, and information related to the one or more optimized set of encoding profiles are provided to the electronic device in response to the request for the playback URL. The manifest is configured to facilitate the display of the content associated with the content title on the electronic device based on the one or more optimized set of encoding profiles and the one or more optimized ABR parameters. As such, the provisioning of the optimized sets of encoding profiles and the optimized ABR profiles configures a forward loop of QoE optimization. More specifically, the network and electronic device attributes (such as throughput trace, screen resolution and maximum screen resolution supported by the electronic device) are determined before the start of playback of the content, and the content playback is modified for providing optimized QoE for the content viewer. Moreover, the ABR parameters that are provided to the electronic device for content playback are optimized based on historical data, thereby significantly improving playback quality experienced by the viewer as the rate of adapting to network changes is now controlled.
Various embodiments disclosed herein provide numerous advantages. More specifically, the embodiments disclosed herein suggest techniques for optimizing QoE for content viewers. The QoE optimization is performed from end-to-end and in substantially real-time, to provide an enjoyable and seamless content viewing experience to the users. Instead of encoding content as per all available encoding profiles to cater to every change in network/device attribute, the CDN POP now stores only a few content streams, which are encoded as per optimized sets of encoded profiles. Further, the selection of ABR parameters to cater to changes in network conditions is now dynamic in nature, i.e. the ABR parameters are not manipulated as per predefined settings for each change in network conditions but optimized based on historical data, leading to less or no fluctuations in playback quality experienced by the user as the rate of adapting to network changes is now controlled.
Although the present invention has been described with reference to specific exemplary embodiments, it is noted that various modifications and changes may be made to these embodiments without departing from the broad spirit and scope of the present invention. For example, the various operations, blocks, etc., described herein may be enabled and operated using hardware circuitry (for example, complementary metal-oxide-semiconductor (CMOS) based logic circuitry), firmware, software, and/or any combination of hardware, firmware, and/or software (for example, embodied in a machine-readable medium). For example, the apparatuses and methods may be embodied using transistors, logic gates, and electrical circuits (for example, application-specific integrated circuit (ASIC) circuitry and/or in Digital Signal Processor (DSP) circuitry).
Particularly, the system 200 and its various components such as the processing module 202, the memory module 204, the I/O module 206, and the communication module 208 may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry). Various embodiments of the present invention may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or the computer to perform one or more operations (for example, operations explained herein with reference to FIGS. 6 and 7). A computer-readable medium storing, embodying, or encoded with a computer program, or similar language may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations. Such operations may be, for example, any of the steps or operations described herein. In some embodiments, the computer programs may be stored and provided to a computer using any type of non-transitory computer-readable media. Non-transitory computer-readable media include any type of tangible storage media. Examples of non-transitory computer-readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g., magneto-optical disks), CD-ROM (compact disc read-only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.). Additionally, a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. In some embodiments, the computer programs may be provided to a computer using any type of transitory computer-readable media. Examples of transitory computer-readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer-readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.
Various embodiments of the present invention, as discussed above, may be practiced with steps and/or operations in a different order, and/or with hardware elements in configurations, which are different than those which are disclosed. Therefore, although the invention has been described based upon these exemplary embodiments, it is noted that certain modifications, variations, and alternative constructions may be apparent and well within the scope of the invention.
Although various exemplary embodiments of the present invention are described herein in a language specific to structural features and/or methodological acts, the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as exemplary forms of implementing the claims.

Claims (35)

  1. A computer-implemented method for optimizing Quality of Experience (QoE) for content viewers, the method comprising:
    receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer, the request for the playback URL comprising content title related to a content and heartbeat information;
    extracting, by the system, one or more parameters from the request for the playback URL, wherein the one or more parameters comprise at least one of: a throughput trace; and a screen resolution supported by the electronic device;
    determining, by the system, one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles; and
    facilitating, by the system, optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
  2. The method as Claimed in Claim 1, wherein determining the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles comprises executing a machine learning model to determine the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in a search space comprising a plurality of encoding profiles and a plurality of ABR profiles.
  3. The method as Claimed in Claim 2, further comprising:
    training, by the system, the machine learning model to optimize an objective function, wherein the objective function is a function of a rebuffering rate of the electronic device, a quality metric of playback, and the throughput trace.
  4. The method as Claimed in Claim 3, further comprising identifying the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in the search space based at least on an optimized objective function.
  5. The method as Claimed in Claim 1, wherein facilitating the optimization of QoE of content playback comprises:
    generating, by the system, a plurality of content streams by encoding the content based on the one or more optimized sets of encoding profiles, wherein the plurality of content streams and information related to the one or more optimized sets of encoding profiles are provided to at least one Content Delivery Network (CDN) Point of Presence (PoP).
  6. The method as Claimed in Claim 5, further comprising:
    providing, by the system, a manifest comprising at least playback URLs of the plurality of content streams, the one or more optimized ABR profiles and the information related to the one or more optimized set of encoding profiles to the electronic device in response to the request for the playback URL,
    wherein the electronic device utilizes the one or more optimized ABR profiles for adapting a bitrate and controlling a rate of adaptation for fetching the content from the CDN PoP, and
    wherein the information related to the one or more optimized sets of encoding profiles enables the electronic device to select an optimal encoded stream for displaying the content to the content viewer.
  7. The method as Claimed in Claim 1, further comprising:
    tracking, by the system, playback of the content related to the content title on the electronic device;
    detecting, by the system, one or more events associated with the playback of the content, wherein each event of the one or more events corresponds to switching of at least one of: an encoding profile of the content or an ABR profile of the content during the playback of the content; and
    predicting, by the system, a need for optimizing QoE based, at least in part, on the one or more events for providing an improved quality of experience for the content viewer.
  8. The method as Claimed in Claim 1, wherein one or more heartbeat packets comprising the heartbeat information are received from the electronic device in relation to the content playback, and wherein each heartbeat packet comprises one or more of: the throughput trace, a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, type of network access, network provider, IP address, geo-location information, browser information, active background applications, and electronic device attributes.
  9. The method as Claimed in Claim 8, further comprising:
    extracting, by the system, the heartbeat information from at least one heartbeat packet of the one or more heartbeat packets for identifying at least one optimized set of encoding profile from among the one or more optimized sets of encoding profiles and at least one optimized ABR profile from among the one or more ABR profiles for re-optimizing the QoE.
  10. The method as Claimed in Claim 1, further comprising:
    identifying, by the system, one or more encoding profiles among the plurality of encoding profiles not available in a storage module, wherein a cloud-based encoding service is utilized to generate the one or more encoding profiles for facilitating QoE optimization.
  11. The method as Claimed in Claim 1, further comprising:
    simulating, by the system, a playback of the content based, at least in part, on the one or more optimized set of encoding profiles and the one or more optimized ABR profiles to determine whether the QoE is optimized.
  12. The method as Claimed in Claim 1, wherein each ABR profile of the plurality of ABR profiles comprises a set of scalar values corresponding to one or more ABR parameters, and wherein the one or more ABR parameters comprise at least one of: a bandwidth downgrade target; a bandwidth upgrade target; a maximum duration for quality decrease; a bandwidth fraction; an abandon multiplier; and a maximum switching limit.
  13. A system for optimizing Quality of Experience (QoE) for content viewers, the system comprising:
    a memory module for storing instructions; and
    a processing module configured to execute the instructions and thereby cause the system to at least:
    receive a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer, the request for the playback URL comprising content title related to a content and heartbeat information;
    extract one or more parameters from the request for the playback URL, wherein the one or more parameters comprise at least one of: a throughput trace; and a screen resolution of the electronic device;
    determine one or more optimized sets of encoding profiles and one or more optimized Adaptive Bitrate (ABR) profiles based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of ABR profiles; and
    facilitate optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles for the content viewer.
  14. The system as Claimed in Claim 13, wherein for determining the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles, the system is further caused to at least:
    execute a machine learning model to determine the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in a search space comprising the plurality of encoding profiles and the plurality of ABR profiles.
  15. The system as Claimed in Claim 14, wherein the system is further caused to at least:
    train the machine learning model to optimize an objective function, wherein the objective function is a function of a rebuffering rate of the electronic device, a quality metric of playback and the throughput trace.
  16. The system as Claimed in Claim 15, wherein the system is further caused to at least:
    identify the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in the search space based at least on an optimized objective function.
  17. The system as Claimed in Claim 13, wherein for facilitating the optimization of QoE of content playback, the system is further caused to at least:
    generate a plurality of content streams by encoding the content based on the one or more optimized sets of encoding profiles, wherein the plurality of content streams and information related to the optimized sets of encoding profiles are provided to a Content Delivery Network (CDN) Point of Presence (PoP).
  18. The system as Claimed in Claim 17, wherein the system is further caused to at least:
    provide a manifest comprising at least playback URLs of the plurality of content streams, the one or more optimized ABR profiles and the information related to the one or more optimized set of encoding profiles to the electronic device in response to the request for the playback URL,
    wherein the electronic device utilizes the one or more optimized ABR profiles for adapting a bitrate and controlling a rate of adaptation for fetching the content from the CDN PoP, and
    wherein the information related to the one or more optimized sets of encoding profiles enables the electronic device to select an optimal encoded stream for displaying the content to the content viewer.
  19. The system as Claimed in Claim 13, wherein the system is further caused to at least:
    track playback of the content related to the content title on the electronic device;
    detect one or more events associated with the playback of the content, wherein each event of the one or more events corresponds to switching of at least one of: an encoding profile of the content or an ABR profile of the content during the playback of the content; and
    predict a need for optimizing QoE based, at least in part, on the one or more events for providing an improved quality of experience for the content viewer.
  20. The method as Claimed in Claim 13, wherein one or more heartbeat packets comprising heartbeat information are received from the electronic device in relation to the content playback, and wherein each heartbeat packet comprises one or more of: the throughput trace, a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, a type of network access, network provider, IP address, geo-location information, browser information, active background applications, and electronic device attributes.
  21. The system as Claimed in Claim 20, wherein the system is further caused to:
    extract the heartbeat information from at least one heartbeat packet of the one or more heartbeat packets for identifying at least one optimized set of encoding profile from among the one or more optimized sets of encoding profiles and at least one optimized ABR profile from among the one or more ABR profiles for re-optimizing the QoE.
  22. The system as Claimed in Claim 13, wherein the system is further caused to:
    identify one or more encoding profiles among the plurality of encoding profiles not available in a storage module, wherein a cloud-based encoding service is utilized to generate the one or more encoding profiles for facilitating QoE optimization.
  23. The system as Claimed in Claim 13, wherein the system is further caused to:
    simulate a playback of the content based, at least in part, on the one or more optimized set of encoding profiles and the one or more optimized ABR profiles to determine whether the QoE is optimized.
  24. The system as Claimed in Claim 13, wherein each ABR profile of the plurality of ABR profiles comprises a set of scalar values corresponding to one or more ABR parameters, and wherein the one or more ABR parameters comprise at least one of: a bandwidth downgrade target; a bandwidth upgrade target; a maximum duration for quality decrease; a bandwidth fraction; an abandon multiplier; and a maximum switching limit.
  25. A computer-implemented method for optimizing Quality of Experience (QoE) for content viewers, the method comprising:
    receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a content viewer, the request for the playback URL comprising content title related to a content and heartbeat information;
    extracting, by the system, one or more parameters from the request for the playback URL, wherein the one or more parameters comprise at least one of: a throughput trace; and screen resolution of the electronic device;
    determining, by the system, one or more optimized sets of encoding profiles and one or more optimized adaptive bitrate parameters based, at least in part, on the extracted one or more parameters, a plurality of encoding profiles and a plurality of Adaptive Bit Rate (ABR) profiles;
    facilitating, by the system, optimization of QoE of content playback associated with the playback URL based on the one or more optimized sets of encoding profiles and the one or more optimized ABR parameters; and
    providing, by the system, a manifest comprising playback URLs of a plurality of content streams, the one or more optimized ABR parameters and information related to the one or more optimized set of encoding profiles to the electronic device in response to the request for the playback URL, wherein the manifest is configured to facilitate display of the content associated with the content title on the electronic device based on the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles.
  26. The method as Claimed in Claim 25, wherein determining the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles comprises executing a machine learning model to determine the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in a search space comprising the plurality of encoding profiles and the plurality of ABR profiles.
  27. The method as Claimed in Claim 26, further comprising:
    training, by the system, the machine learning model to optimize an objective function, wherein the objective function is a function of a rebuffering rate of the electronic device, a quality metric of playback and the throughput trace.
  28. The method as Claimed in Claim 27, further comprising identifying the one or more optimized sets of encoding profiles and the one or more optimized ABR profiles in the search space based at least on an optimized objective function.
  29. The method as Claimed in Claim 25, wherein facilitating optimization of QoE of content playback comprises:
    generating, by the system, the plurality of content streams by encoding the content based on the one or more optimized sets of encoding profiles, wherein the plurality of content streams and information related to the optimized sets of encoding profiles are provided to a Content Delivery Network (CDN) Point of Presence (PoP).
  30. The method as Claimed in Claim 25, further comprising:
    tracking, by the system, playback of the content related to the content title on the electronic device;
    detecting, by the system, one or more events associated with the playback of the content, wherein each event of the one or more events correspond to switching of at least one of: an encoding profile of the content or an ABR profile of the content during the playback of the content; and
    predicting, by the system, a need for optimizing QoE based, at least in part, on the one or more events for providing an improved quality of experience for the content viewer.
  31. The method as Claimed in Claim 25, wherein one or more heartbeat packets comprising heartbeat information are received from the electronic device in relation to the content playback, and wherein each heartbeat packet comprises one or more of: the throughput trace, a current screen resolution associated with the electronic device, a maximum screen resolution supported by the electronic device, a type of network access, network provider, IP address, geo-location information, browser information, active background applications, and electronic device attributes.
  32. The method as Claimed in Claim 31, further comprising:
    extracting, by the system, the heartbeat information from at least one heartbeat packet of the one or more heartbeat packets for identifying at least one optimized set of encoding profile from among the one or more optimized sets of encoding profiles and at least one optimized ABR profile from among the one or more optimized ABR profiles for re-optimizing the QoE.
  33. The method as Claimed in Claim 25, further comprising:
    identifying, by the system, one or more encoding profiles among the plurality of encoding profiles not available in a storage module, wherein a cloud-based encoding service is utilized to generate the one or more encoding profiles for facilitating QoE optimization.
  34. The method as Claimed in Claim 25, further comprising:
    simulating, by the system, a playback of the content based, at least in part, on the one or more optimized set of encoding profiles and the one or more optimized ABR profiles to determine whether the QoE is optimized.
  35. The method as Claimed in Claim 25, wherein each ABR profile of the plurality of ABR profiles comprises a set of scalar values corresponding to one or more ABR parameters, and wherein the one or more ABR parameters comprise at least one of: a bandwidth downgrade target; a bandwidth upgrade target; a maximum duration for quality decrease; a bandwidth fraction; an abandon multiplier; and a maximum switching limit.
PCT/IN2022/050243 2021-03-15 2022-03-15 Methods and systems for optimizing quality of experience for content viewers WO2022195616A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202121010865 2021-03-15
IN202121010865 2021-03-15

Publications (1)

Publication Number Publication Date
WO2022195616A1 true WO2022195616A1 (en) 2022-09-22

Family

ID=83319917

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IN2022/050243 WO2022195616A1 (en) 2021-03-15 2022-03-15 Methods and systems for optimizing quality of experience for content viewers

Country Status (1)

Country Link
WO (1) WO2022195616A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130064527A1 (en) * 2006-12-13 2013-03-14 Quickplay Media Inc. Mobile Media Pause and Resume
US20130159498A1 (en) * 2011-12-16 2013-06-20 NETFLIX Inc. Measuring user quality of experience for a streaming media service
WO2013163077A1 (en) * 2012-04-27 2013-10-31 Intel Corporation QoE-AWARE RADIO ACCESS NETWORK ARCHITECTURE FOR HTTP-BASED VIDEO STREAMING
WO2020194092A1 (en) * 2019-03-26 2020-10-01 Ssimwave Inc. Unified end-to-end quality and latency measurement, optimization and management in multimedia communications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130064527A1 (en) * 2006-12-13 2013-03-14 Quickplay Media Inc. Mobile Media Pause and Resume
US20130159498A1 (en) * 2011-12-16 2013-06-20 NETFLIX Inc. Measuring user quality of experience for a streaming media service
WO2013163077A1 (en) * 2012-04-27 2013-10-31 Intel Corporation QoE-AWARE RADIO ACCESS NETWORK ARCHITECTURE FOR HTTP-BASED VIDEO STREAMING
WO2020194092A1 (en) * 2019-03-26 2020-10-01 Ssimwave Inc. Unified end-to-end quality and latency measurement, optimization and management in multimedia communications

Similar Documents

Publication Publication Date Title
US10826807B2 (en) Media player analytics
US9967161B2 (en) Coordinating analytics between media player and server
US10581707B2 (en) Method and apparatus for selective segment replacement in HAS video streaming adaptation
US10827183B2 (en) System and method for optimal variable bit rate packing
US10735742B2 (en) Adaptive bitrate video testing
US11128916B2 (en) Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
US11606584B2 (en) Method for intelligent buffering for over the top (OTT) video delivery
US11025987B2 (en) Prediction-based representation selection in video playback
US11575958B2 (en) Progressive increase in multimedia streaming quality
US20160100221A1 (en) System and method for preventing abandonment of web-based video content
Li et al. Dashlet: Taming swipe uncertainty for robust short video streaming
CA3010007C (en) Systems and methods for bandwidth estimation in oscillating networks
US11082741B2 (en) Dynamic multi-content delivery network selection during video playback
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
WO2022195616A1 (en) Methods and systems for optimizing quality of experience for content viewers
RU2658860C2 (en) Proxy-server device, information processing method, program, terminal device and content provision system
US9537707B2 (en) System for self organization of an internet protocol television grid
US20220232275A1 (en) Adaptive bitrate video testing from screen recording
US11902599B2 (en) Multiple protocol prediction and in-session adaptation in video streaming
Shen et al. QoE-optimal rate adaptation for HTTP adaptive streaming
US20230370683A1 (en) Method and system for providing encoded streaming content to content viewers
US11956293B1 (en) Selection of CDN and access network on the user device from among multiple access networks and CDNs
Zhu Short Video Characterization: Design, Implementation, and Evaluation
US20230247244A1 (en) Estimating video resolution delivered by an encrypted video stream
JP2023063238A (en) Dynamic parameter adjustment for adaptive bitrate algorithm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22770782

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22770782

Country of ref document: EP

Kind code of ref document: A1