WO2025215660A1 - System and method for identifying an optimal resolution for media in a communication network - Google Patents
System and method for identifying an optimal resolution for media in a communication networkInfo
- Publication number
- WO2025215660A1 WO2025215660A1 PCT/IN2025/050551 IN2025050551W WO2025215660A1 WO 2025215660 A1 WO2025215660 A1 WO 2025215660A1 IN 2025050551 W IN2025050551 W IN 2025050551W WO 2025215660 A1 WO2025215660 A1 WO 2025215660A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- media
- data consumption
- byte samples
- samples
- consumption byte
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6583—Acknowledgement
Definitions
- the embodiments of the present disclosure generally relate to the field of communication networks. More particularly, the present disclosure relates to a system and a method for identifying an optimal resolution for a media in a communication network.
- media streaming has become increasingly popular for providing varied media contents such as video, audio, and games to users.
- the media streaming massively experiences data loss, delivery time distortion and many other factors that may impact a quality of the media streaming.
- the quality of the media streaming impacts overall quality of service of communication networks.
- the inferior quality of the media streaming increases a delay or freeze-frame during consumption of the media results in user dissatisfaction.
- the media streaming over a communication network includes a network service provider incorporating one or more remote media servers, a core network (e.g., Internet), and a local hub/edge switch.
- the network is coupled to user premises equipment such as a Set Top Box (STB) and a television via a Network Interface Device (NID).
- STB Set Top Box
- NID Network Interface Device
- the users control the streaming media through the STB, enabling features such as channel changes, fast forward, pause, and rewind.
- streaming the media through the network for seamless streaming experience lies a complex web of challenges that impacts the media quality.
- quality of the media stream may be degraded as the media stream travels over the network before arriving at the user equipment.
- Network service providers may monitor the communication networks to measure the quality of the media stream using various metrics.
- the user needs to raise multiple complaints manually to get the problem resolved.
- tracking the quality of media on the user equipment has become more complex.
- tracking the media quality on the user equipment poses various challenges such as variability in network conditions, varying quality requirements and sensitivity to network conditions, and dynamic content delivery.
- the variability in network conditions depends on multiple factors including fluctuations in signal strength, bandwidth availability, and network congestion. These factors can directly impact the media quality being delivered to the user equipment, making it difficult to consistently track and measure the media quality solely based on data consumption.
- a method for identifying an optimal resolution for a media in a communication network includes receiving, by a reception module from a User Equipment (UE), a plurality of data consumption byte samples of the media periodically at a predefined time period.
- the method further includes determining, by a determination module, a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media.
- the method includes determining, by the determination module, total data consumption byte samples of the media received in the time delta.
- the method includes identifying, by a processing module based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media.
- the method further includes identifying, by the processing module, the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples.
- the method includes generating, by a generation module, a recommendation to switch to the identified optimal resolution for the media.
- the method further includes determining, by the determination module, current received bytes based on the plurality of data consumption byte samples captured by the UE till the current time instant. Further, the method includes determining, by the determination module, last total received bytes based on the plurality of data consumption byte samples captured by the UE till the previous time instant. Furthermore, the method includes determining, by the determination module, the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
- the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples, a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
- the method further includes analyzing, by the processing module, a pattern of chunk values in the data consumption pattern. Further, the method includes identifying, by the processing module based on the pattern of chunk values, buffering issues in streaming of the media. Furthermore, the method includes generating, by the generation module upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media.
- a system for identifying an optimal resolution for a media in a communication network includes a reception module configured to receive, from a User Equipment (UE), a plurality of data consumption byte samples of the media periodically at a predefined time period.
- the system further includes a determination module configured to determine a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media.
- the determination module is further configured to determine total data consumption byte samples of the media received in the time delta.
- the system includes a processing module configured to identify, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media.
- the processing module is further configured to identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples.
- the system includes a generation module configured to generate a recommendation to switch to the identified optimal resolution for the media.
- FIG. 1 illustrates a diagram depicting an environment of a communication network, in accordance with an embodiment of the present disclosure.
- FIG. 2 illustrates a block diagram of a system for identifying an optimal resolution for a media in the communication network, in accordance with an embodiment of the present disclosure.
- FIG. 3 illustrates a block diagram depicting communication between one or more databases, one or more servers, and a User Equipment (UE) for capturing a plurality of data consumption byte samples, in accordance with an embodiment of the present disclosure.
- FIG. 4 illustrates a block diagram depicting communication between the one or more databases, the one or more servers, and one or more UEs for recommending the optimal resolution for the media, in accordance with an embodiment of the present disclosure.
- UE User Equipment
- FIG. 5 illustrates a process flow diagram depicting a method for identifying the optimal resolution for the media in the communication network, in accordance with an embodiment of the present disclosure.
- the system and the method capture a plurality of data consumption byte samples of a media and identify total data consumption byte samples for the media.
- the system and the method identify a data consumption pattern based on the total data consumption byte samples for the media.
- the system and the method identify the optimal resolution for the media based on the data consumption pattern.
- the term “Software Development Kit (SDK)” in the present disclosure may be a set of software-building tools for a specific platform.
- the SDK may be a collection of tools, libraries, and instructions that help developers in developing software applications.
- resolution in the present disclosure may be a level of detail contained in a media.
- the resolution may be a number of pixels that exist within the image.
- data consumption byte sample in the present disclosure may represent amount of data consumed by a user device for streaming the media.
- total data consumption in the present disclosure may be an overall amount of data consumed by the user device over a specific period.
- data consumption pattern in the present disclosure may represent a data usage pattern of the user device at different time periods.
- chunk in the present disclosure may refer to a small, discrete portion of the media that is transmitted and played back sequentially during the streaming process of the media.
- the chunks are smaller segments or fragments of the media content that allow for efficient delivery, buffering, and playback in streaming applications.
- FIG. 1 illustrates a diagram depicting an environment of a communication network 100, in accordance with an embodiment of the present disclosure.
- the embodiment of the communication network 100 shown in FIG. 1 is for illustration only. Other embodiments of the communication network 100 may be used without departing from the scope of this disclosure.
- the communication network 100 may include various components such as a network 102, a User Equipment (UE) 104 (hereinafter may also be referred to as the “UE 104”), an application server 106 (hereinafter may also be referred to as the “server 106”), other devices 108, client devices 110, a processing module 112, and a database 114.
- the processing module 112 may comprise a central processing unit (CPU) and a graphics processing unit (GPU) for performing computations and handling data processing tasks.
- the procession module 112 may be present inside the UE 104 and the server 106.
- the database 114 may store and manage structured data.
- the communication network 100 may include UE 104 on which one or more applications are installed to communicate with the server 106.
- the UE 104 may include Set Top Box (STB), smartphones, tablets, laptops, or desktop computers.
- the server 106 may handle requests from the UE 104 and may perform a plurality of tasks such as processing, storage, and data retrieval.
- the server 106 may be a physical machine or a virtual machine in a cloud environment.
- the server 106 is configured to execute data processing and data storing operations to perform the monitoring of the media quality in the communication network 100.
- the communication network 100 may include other devices 108 such as Internet of Things (loT) devices or any other connected devices to transmit signals to nearby user devices.
- the communication network 100 may include one or more client devices 110 to represent the software applications or interfaces that run on the UE 104 to communicate with the server 106.
- the client devices 110 may be web browsers or a program requesting data from the software applications running on the UE 104.
- the communication network 100 may include the network 102 for enabling data transmission and communication between the various components of the communication network 100.
- the network 102 may be a local area network (LAN), a wide area network (WAN), or the internet.
- the UE 104 may be, at least one DU, at least one Mobile Termination (MT) unit, and at least one relay.
- MT Mobile Termination
- the term “Set Top Box (STB)”, “user equipment” or “UE” can refer to any component such as “mobile station”, “subscriber station”, “remote terminal”, “wireless terminal”, “receive point”, or “end user device”.
- the network 102 may include suitable logic, circuitry, and interfaces that may be configured to provide several network ports and several communication channels for transmission and reception of data related to operations of various entities of the communication network 100.
- Each network port may correspond to a virtual address (or a physical machine address) for transmission and reception of the communication data.
- the virtual address may be an Internet Protocol Version 4 (IPV4) (or an IPV6 address) and the physical address may be a Media Access Control (MAC) address.
- IPV4 Internet Protocol Version 4
- MAC Media Access Control
- the network 102 may be associated with an application layer for implementation of communication protocols based on one or more communication requests from the various entities of the communication network 100.
- the communication data may be transmitted or received via the communication protocols.
- Examples of the communication protocols may include, but are not limited to, Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Domain Network System (DNS) protocol, Common Management Interface Protocol (CMIP), Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Long Term Evolution (LTE) communication protocols, or any combination thereof.
- the communication data may be transmitted or received via at least one communication channel of several communication channels in the network 102.
- the communication channels may include, but are not limited to, a wireless channel, a wired channel, a combination of wireless and wired channel thereof.
- the wireless or wired channel may be associated with a data standard which may be defined by one of a Local Area Network (LAN), a Personal Area Network (PAN), a Wireless Local Area Network (WLAN), a Wireless Sensor Network (WSN), Wireless Area Network (WAN), Wireless Wide Area Network (WWAN), a metropolitan area network (MAN), a satellite network, the Internet, an optical fiber network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, and a combination thereof.
- LAN Local Area Network
- PAN Personal Area Network
- WLAN Wireless Local Area Network
- WSN Wireless Sensor Network
- WAN Wireless Wide Area Network
- MAN metropolitan area network
- satellite network the Internet
- an optical fiber network a coaxial cable network
- IR infrared
- RF radio frequency
- the server 106 may be a network of computers, a software framework, or a combination thereof, that may provide a generalized approach to create a server implementation. Examples of the server 106 may include, but are not limited to, personal computers, laptops, mini-computers, mainframe computers, any nontransient and tangible machine that can execute a machine-readable code, cloudbased servers, distributed server networks, or a network of computer systems. The server 106 may be realized through various web-based technologies any webapplication framework. In other aspects of the present disclosure, the server 106 may be configured to execute one or more data processing and/or storage operations to perform the monitoring of media quality and identifying resolution of media in the communication network 100.
- FIG. 2 illustrates a block diagram of a system 200 for identifying the optimal resolution for the media in the communication network 100, in accordance with an embodiment of the present disclosure.
- the system 200 may include the network 102, a group of UEs 104-1 to 104-N (collectively referred to as UE 104) connected to the network 102, the server 106, an external database 228 (hereinafter referred to as the database 228), and a Network Management System (NMS) 230.
- FIG. 2 shows the UE 104 to simplify the illustration as each UE among the UEs 104-1 to 104-N have same or similar configuration.
- the server 106 includes a communication interface 202, a processor 204, a memory 206 coupled to the processor 204, and a database 208.
- the processor 204 may control the operation of the server 106.
- the processor 204 may also be referred to as a Central Processing Unit (CPU).
- the memory 206 may provide instructions and data to the processor 204 for performing functions of the server 106.
- the memory 206 may include a Random Access Memory (RAM), a Read-Only Memory (ROM) and a portion of the memory 206 may also include Non-Volatile Random Access Memory (NVRAM).
- the processor 204 may perform logical and arithmetic operations based on instructions stored within the memory 206.
- the communication interface 202 may allow transmission and reception of data between the server 106 and the network 102.
- the communication interface 202 may include a transmitter, a receiver, and a single or multiple transmit antennas coupled to the transmitter and the receiver of the communication interface 202.
- the communication interface 202 may be configured to enable the server 106 to communicate with various entities of the system 200 via the network 102.
- Examples of the communication interface 202 may include, but are not limited to, a modem, a network interface such as an Ethernet card, a communication port, and/or a Personal Computer Memory Card International Association (PCMCIA) slot and card, an antenna, a radio frequency (RF) transceiver, one or more amplifiers, a coder-decoder (CODEC) chipset, a subscriber identity module (SIM) card, and a local buffer circuit.
- RF radio frequency
- CODEC coder-decoder
- SIM subscriber identity module
- the communication interface 202 may include any device and/or apparatus capable of providing wireless or wired communications between the server 106 and various other entities of the system 200.
- the server 106 may be coupled to the database 228 that provides data storage space to the server 106.
- the database 228 may store information related to configuration parameters, details related to the network 102 and other relevant information needed for the operation of the server 106.
- the database 228 may correspond to a centralized database system configured to store and manage structured data, such as network-related data and configurations.
- the database 228 may be a relational database organizing related data such as in a table, or a non-relational database organizing graphical and time series data.
- the UE 104 may include a user interface 210, a processor 212, a communication interface 214, and a memory 216 coupled to the processor 212.
- the processor 212 may control the operation of the UE 104.
- the processor 212 may also be referred to as the CPU.
- the memory 216 may provide instructions and data to the processor 212 for performing several functions.
- the processor 212 may perform logical and arithmetic operations based on instructions stored within the memory 216.
- the memory 216 may include a Random Access Memory (RAM) 218, a Read-Only Memory (ROM) 220, and a portion of the memory 216 may also include non-volatile random-access memory (NVRAM).
- RAM Random Access Memory
- ROM Read-Only Memory
- the memory 216 may include an Operating System (OS) 222 for serving as an interface between the hardware components and the UE 104.
- the memory 216 may comprise one or more applications 224 (may also be referred to as “application 224”) and a database 226 to store data based on the one or more applications 224.
- the OS 222 may provide functions to and support communication standards for the UE 104.
- the OS 222 may also provide a common programming platform or executing environment for the one or more applications 224.
- the communication interface 214 may allow transmission and reception of data between the UE 104 and the network 102.
- the communication interface 214 may include a transmitter, a receiver, and a single or multiple transmit antennas electrically coupled to the transmitter and the receiver of the communication interface 214.
- the one or more computer executable applications may be stored on the UE 104.
- the user interface 210 may include suitable logic, circuitry, interfaces, and/or codes that may be configured to receive input(s) and present (or display) output(s) on the UE 104.
- the user interface 210 may have an input interface and an output interface.
- the input interface may be configured to enable a user to provide input(s) to trigger (or configure) the UE 104 to perform various operations. Examples of the input interface may include, but are not limited to, a touch interface, a mouse, a keyboard, a motion recognition unit, a gesture recognition unit, a voice recognition unit, or the like.
- the output interface may provide the output(s) based on an instruction provided via the user interface 210.
- Examples of the output interface of the user interface 210 may include, but are not limited to, a digital display, an analog display, a touch screen display, an appearance of a desktop, and/or illuminated characters.
- the processors 204 and 212 may include one or more general purpose processors and/or one or more special purpose processors, a microprocessor, a digital signal processor, an application specific integrated circuit, a microcontroller, a state machine, or ay any type of programmable logic array.
- the processors 204 and 212 may include may include an intelligent hardware device including a general-purpose processor, such as, for example, and without limitation, a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, or the like, a graphics-only processing unit such as a Graphics Processing Unit (GPU), a microcontroller, a Field-Programmable Gate Array (FPGA), a programmable logic device, a discrete hardware component, or any combination thereof.
- the processors 204 and 212 may be configured to execute computer-readable instructions stored in the memories 206 and 216 to cause the server 106 to perform various functions.
- the memories 206 and 216 may further include, but not limited to, non- transitory machine-readable storage devices such as hard drives, magnetic tape, floppy diskettes, optical disks, compact disc read-Only Memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, RAMS, programmable read-only memories PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions.
- non- transitory machine-readable storage devices such as hard drives, magnetic tape, floppy diskettes, optical disks, compact disc read-Only Memories (CD-ROMs), and magneto-optical disks
- semiconductor memories such as ROMs, RAMS, programmable read-only memories PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other
- the memory may, in some examples, be considered a non- transitory storage medium.
- the "non -transitory" storage medium is not embodied in a carrier wave or a propagated signal. However, the term “non -transitory” should not be interpreted as the memory is non-movable.
- the memory may be configured to store larger amounts of information.
- a non-transitory storage medium may store data that can, over time, change (e.g., in Random Access Memory (RAM) or cache).
- the memory may be an internal storage unit or an external storage unit of the server, cloud storage, or any other type of external storage.
- Embodiments of the present technology may be described herein with reference to flowchart illustrations of methods and systems according to embodiments of the technology, and/or procedures, algorithms, steps, operations, formulae, or other computational depictions, which may also be implemented as computer program products.
- each block or step of the flowchart, and combinations of blocks (and/or steps) in the flowchart, as well as any procedure, algorithm, step, operation, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions embodied in computer-readable program code.
- any such computer program instructions may be executed by one or more computer processors, including without limitation a general -purpose computer or special purpose computer, or other programmable processing apparatus to perform a group of operations comprising the operations or blocks described in connection with the disclosed methods.
- these computer program instructions may also be stored in one or more computer- readable memory or memory devices (for example, the memories 206 and 216) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions stored in the computer- readable memory or memory devices produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s).
- FIG. 1 and FIG. 2 illustrate one example of the environment of the communication network 100 and the system 200, various changes may be made to FIG. 1 and FIG. 2.
- the system 200 may include any number of user devices in any suitable arrangement.
- the server 106 may include any number of components in addition to the components shown in FIG. 2.
- various components in FIG. 1 and FIG. 2 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
- a Software Development Kit for capturing the plurality of data consumption byte samples of the media may be developed and integrated into the application 224 installed in the UE 104.
- the UE 104 may be the STB.
- the application 224 may be a user experience application developed using the SDK.
- the application 224 may be installed in the UE 104 to monitor the quality of the media by capturing the plurality of data consumption byte samples of the media.
- the application 224 may capture the plurality of data consumption byte samples from a backend of the media playing on the UE 104 and transmit the captured samples to the server 106.
- the server 106 may identify the optimal resolution of the media streamed in the UE 104 by analyzing a pattern of the data consumption byte samples over a connected network bandwidth. The server 106 may identify the optimal resolution and recommend the UE 104 to switch to the resolution, thereby enhancing user experience for the media being streamed.
- the server 106 may identify a quality being provided to the UE 104 over the connected network 102. Based on the identified quality, the server 106 may suggest the UE 104 to switch over to other resolution to enhance the media experience over provided network bandwidth.
- the server 106 may identify the resolution of the media based on the captured data consumption byte samples from the application 224 installed on the UE 104.
- the application 224 may capture the data consumption byte samples in Megabits per second (Mbps) from the backend of the UE 104.
- the server 106 may identify the resolution of the media being streamed on the foreground by observing a pattern of each consumption byte in the captured samples.
- the server 106 may identify the pattern to identify whether an end user has a smooth media experience or the end user has any buffering issues in the media being streamed over the communication network 100.
- the server 106 may send recommendations on the optimal resolution for the media to the UE 104, based on which the UE 104 may switch to better resolution, thereby enhancing user experience for the media being streamed.
- the processor 204 of the server 106 may comprise one or modules such as, a reception module 232, a determination module 234, a processing module 236, a generation module 238, and a transmission module 238.
- the reception module 232 may be configured to receive, from the UE 104, the plurality of data consumption byte samples of the media periodically at a predefined time period.
- the determination module 234 may be configured to determine a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant may correspond to a time instant of starting the reception of the plurality of data consumption byte samples of the media.
- the determination module 234 may be further configured to determine the total data consumption byte samples of the media received in the time delta.
- the processing module 236 may be configured to identify, based on one or more parameters associated with the total data consumption byte samples of the media, the data consumption pattern of the plurality of data consumption bytes of the media.
- the processing module 236 may be further configured to identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples.
- the generation module 238 may be configured to generate a recommendation to switch to the identified optimal resolution for the media.
- the transmission module 240 may be configured to transmit the recommendation to the UE 104. [0066] In some aspects of the present disclosure, the transmission module 240 may be configured to transmit the recommendation to the NMS 230 for taking remedial actions to improve the overall quality of the media across the network 102.
- the processor 212 of the UE 104 may comprise one or more modules such as, a reception module 242 and a transmission module 244.
- the transmission module 244 may transmit the plurality of data consumption byte samples to the server 106.
- the reception module 242 may receive recommendations on the optimal resolution for the media from the server 106.
- FIG. 3 illustrates a block diagram 300 depicting communication between one or more databases 228-1 to 228-N, one or more servers 106-1 to 106-N, and the UE 104 for capturing the plurality of data consumption byte samples, in accordance with an embodiment of the present disclosure.
- the application 224 installed in the UE 104 may capture the plurality of data consumption byte samples of the media per second.
- a router 302 may forward the plurality of data consumption byte samples from the UE 104 to the one or more servers 106-1 to 106-N.
- the one or more servers 106-1 to 106-N may receive the plurality data consumption byte samples forwarded by the router 302 and store in the one or more databases 228-1 to 228-N.
- the one or more servers 106-1 to 106-N may identify the data consumption pattern based on the received data consumption byte samples of the media from the UE 104 and identify the resolution of the media.
- FIG. 4 illustrates a block diagram 400 depicting communication between the one or more databases 228-1 to 228-N, the one or more servers 106-1 to 106-N, and one or more UEs 104-1 to 104-N for recommending the optimal resolution for the media, in accordance with an embodiment of the present disclosure.
- the server 106 may receive the plurality of data consumption byte samples from the application installed in the UE 104-1 to 104-N.
- the server 106 may store the plurality of data consumption byte samples in the one or more databases 228-1 to 228-N.
- the server 106 may pre-load segments of data in a plurality of buffers 402-1 to 402-N when streaming media to the UE.
- the plurality of buffers 402-1 to 402-N may enable video, audio, gaming, or other media files to be played smoothly and without jitter or stuttering.
- the server 106 may download a certain amount of data before starting to stream the media on the UE 104-1 o 104-N.
- the server 106 may receive the data consumption byte samples from the application 224 installed on the UE 104-1 to 104-N.
- the server 106 identify consumption byte pattern based on the received samples from the UE 104-1 to 104- N and identify the resolution of the media content.
- the server 106 may identify issues arising while buffering the media while streaming.
- the issues may be due to poor network connectivity, limited network bandwidth, high-definition content, fluctuations in internet speed, network congestion, or latency.
- the server 106 may identify solutions for the buffering issues upon identifying the buffering issues.
- FIG. 5 illustrates a process flow diagram depicting a method 500 for identifying the optimal resolution for the media in the communication network 100, in accordance with an embodiment of the present disclosure.
- the method 500 comprises a series of operation steps indicated by blocks 502 through 512.
- the processor 204 may receive, from the UE 104, the plurality of data consumption byte samples of the media periodically at the predefined time period.
- the plurality of data consumption byte samples may be received daily, hourly, after a certain number of minutes such as every fifteen minutes, after a certain number of seconds such as at each second, or any combination thereof.
- the processor 204 may receive the plurality of data consumption byte samples of the media from the UE 104 through the application 224 developed using the SDK.
- the application 224 may be the user experience application for monitoring the quality of media streamed on the UE 104.
- the application 224 may be integrated in the OS 222 of the UE 104.
- the application 224 may be configured to run in the background provided the operations of the UE 104 may not be impacted.
- the OS 222 may store data consumption of each application as data usage statistics using built-in tools.
- the application 224 may obtain the data consumption byte samples of the media streamed in the UE 104 from the data usage statistics stored in the OS 222.
- the application 224 may be configured to capture data consumption byte samples of the media played in the UE 104.
- the media may be at least one of a video, an audio, and a game.
- the media may be streamed using the UE 104.
- the UE 104 may be connected to a display device such as a television or a monitor for streaming the media.
- the application 224 installed on the UE 104 may passively capture the data consumption bytes of the media.
- the processor 204 may determine the time delta of the plurality of data consumption byte samples based on a difference between the current time instant (currentTimeMillis) and the previous time instant (lastTimeMillis).
- the currentTimeMillis may be an instruction to receive information of the current time instant and the lastTimeMillis may be an instruction to receive information of the previous time instant.
- the previous time instant corresponds to the time instant of starting the reception of the plurality of data consumption byte samples of the media.
- the processor 204 may determine the total data consumption byte samples of the media received in the time delta.
- the processor 204 may determine current received bytes based on the plurality of data consumption byte samples captured by the UE 104 till the current time instant. Further, the processor 204 may determine last total received bytes based on the plurality of data consumption byte samples captured by the UE 104 till the previous time instant. Furthermore, the processor 204 may determine the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
- the application 224 may be configured capture the data consumption byte samples for the media streamed for every fifteen minutes for a period of one hour.
- the data consumption byte samples captured for the last fifteen minutes of the one hour may be the current time instant and the rest may be the data consumption byte samples for the previous time instant.
- the processor 204 may calculate the total data consumption byte samples of the media based on data usage.
- the data usage may be a difference between a currently received data consumption byte (CurrentRxByte) till the current time instant and a total of previously received data consumption bytes (TrafficStats.getTotalRxBytes()) till the previous time instant.
- the CurrentRxByte may be an instruction to receive the data consumption bytes and the TrafficStats.getTotalRxBytes()) may be an instruction to receive previously received data consumption bytes for the predefined time period.
- the processor 204 may convert the total data consumption byte samples in megabits for further processing and interpretation.
- the application 224 may capture the data consumption byte samples in bytes per second.
- the processor 204 may convert the total data consumption byte samples in megabits.
- the data usage in bytes may also be multiplied by a specific value.
- the server 106 may process the samples to identify the data consumption pattern based on the data usage.
- the processor 204 may identify, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media.
- the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples, a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
- the data consumption byte pattern may be identified based on the size of a sample greater than a predetermined value, for example 5MB.
- the data consumption byte pattern may be identified based on values of the chunks.
- values of the total consumption byte samples may be stored in the database 228.
- the values of the total consumption byte samples may be 12.1634023 bytes, 12.4170796 bytes, 15.1431767 bytes, 17.4736586 bytes, and 19.8133635 bytes.
- the values may represent a series of high chunk values.
- the values of the total consumption byte samples may be 2.1634023 bytes, 3.4170796 bytes, 1.1431767 bytes, 1.4736586 bytes, and 2.8133635 bytes. The values may represent a series of low chunk values.
- the values of the total consumption byte samples may be 2.1634023 bytes, 0 bytes, 0 bytes, 0 bytes, and 2.8133635 bytes. The values may represent a series of the zero consumption byte samples.
- the processor 204 may identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples.
- the processor 204 may utilize the bitrate of the chunks to determine the optimal resolution for the media. Higher bitrates may allow higher resolutions and better quality. As the bitrate increases, the media may be streamed in a better resolution.
- the processor 204 may measure the bitrate based on the data consumption byte pattern and decide the resolution of the media streamed on the UE 104. For the low chunk values, the bitrate may be less, hence, a higher resolution of the media may not be suitable for streaming the media.
- the processor 204 may generate a recommendation to switch to the identified optimal resolution for the media.
- the resolution for the media refers to a total number of pixels in a video frame, measured by the number of horizontal and vertical pixels. For example, if the number of horizontal and vertical pixels is 1280x720 pixels, the resolution may be 720 pixels or High-Definition (HD). If the number of horizontal and vertical pixels is 1920x1080 pixels, the resolution may be 1080 pixels of Full HD. If the number of horizontal and vertical pixels is 3840x2160 pixels, the resolution may be 4000 pixels of 4K Ultra HD. If the number of horizontal and vertical pixels is 7680x4320 pixels, the resolution may be 8000 pixels of 8K Ultra HD.
- HD High-Definition
- the processor 204 may analyze a pattern of chunk values in the data consumption pattern.
- a pattern of chunk values in the data consumption pattern In a non-limiting example of different consumption byte patterns, in non-buffer cases, when the resolution of the media is 2160 pixels, high value chunks and a lot of zero samples in between may be observed.
- the chunk values may be determined based on the bitrate and data format.
- the bit rate may be 1 to 4 Mbps for standard and high-definition data format.
- the bitrate refers to the amount of data (bits per second) used to encode a media stream, directly influencing the resolution.
- the resolution of the media may be directly proportional to the bitrate. As the bitrate increase, the resolution increases. For example, if the bitrate of the media ranges between 1 to 4 Mbps, the resolution for the media may be 720 pixels. If the bitrate of the media ranges between 4 to 8 Mbps, the resolution for the media may be 1080 pixels.
- the bitrate may determine the resolution of each chunk.
- Each chunk may be encoded at a different bitrate.
- the processor 204 may analyze the pattern of chunk values in the data consumption pattern based on the total data consumption byte samples. As the bitrate increase, the total data consumption byte samples may increase. If the total data consumption byte samples are higher, the chunk values of the media may be higher. The higher chunk values may require higher bitrate to provide better resolution depending on the network conditions of the UE 104.
- a video may have chunks encoded at 1 Mbps, 2 Mbps, and 4 Mbps. If the UE 104 experience a strong network connection, the UE 104 may choose the 4 Mbps chunk for the best quality. If the UE 104 experience a weaker network connection, the UE 104 may choose the 1 Mbps chunk to avoid buffering.
- the present disclosure provides adaptive bitrate streaming, allowing the UE 104 to select the most appropriate resolution based on the available bandwidth and network conditions.
- the processor 204 may identify, based on the pattern of chunk values, buffering issues in streaming of the media. In a non-limiting example of different consumption byte patterns, in cases of buffer, when the resolution of the media is 2160 and 1440 pixels, constant low chunks values may be observed and intermittent zero samples may be less observed.
- the processor 204 may identify solutions for the buffering issues upon identification of the buffering issues. For instance, the processor 204 may dynamically change the bitrate and resolution for the media to be streamed on the UE 104 segment by segment, based on varying network conditions, such as available bandwidth and resources. When the network 102 may be experiencing temporary network congestion, the processor 204 may provide instructions to the UE 104 to switch to a lower quality version of the media to avoid buffer underflow. When the connection speed recovers, the processor 204 may provide instructions to the UE 104 to switch back to a higher quality.
- the processor 204 may generate, upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media. Based on the identification of the buffering issues, the processor 204 may forward the issue to the NMS 230 for taking corrective actions to improve the quality of service of the communication network 100. Further, the processor 204 may transmit the recommendation to the UE 104 to switch to the optimal resolution.
- the processor 204 may identify buffering issues based on the data consumption byte pattern in the plurality of data consumption byte samples. For example, the buffering issues may arise when the network 102 may be experiencing a buffer overflow due to packet delay or experiencing a specified amount of packet loss. The buffer overflow may indicate packet delay or jitter contributing to degradation of media quality below a predetermined threshold.
- the processor 204 may include a media quality identification system.
- the processor 204 may develop a media quality model based 1 on the received consumption byte samples.
- the processor 204 may utilize one or machine learning models to develop the media quality model.
- the processor 204 may receive data consumption byte samples of the media from the UE 104 at the various time intervals.
- the processor 204 may train the media quality model using the data consumption byte samples of the media.
- the processor 204 may apply the model to identify a quality of media received at the UE 104.
- the model may identify the data consumption pattern and may predict the optimal resolution for the media.
- the processor 204 may monitor the data consumption byte samples of the media for precise quantification of the amount of data being used.
- the quantification of the data consumption byte samples may be utilized for prediction of data consumption pattern and prediction of resolution of the media.
- the processor 204 may predict data consumption pattern based on the total data consumption bytes of the media.
- the processor 204 may identify optimal resolution of the media based on the data consumption pattern.
- the processor 204 may generate a suggestion to the UE 104 to select the optimal resolution for the media.
- the processor 204 may monitor the data consumption to identify excessive resource utilization and excessive data usage.
- the processor 204 may receive an alert from the NMS 230 when the UE 104 may exceed the data usage above a predetermined threshold.
- the processor 204 may forward the alert to the UE 104 to reduce the data consumption.
- the processor 204 may also identify bottlenecks, latency issues, or other performance concerns arising due to the excessive data usage.
- the processor 204 may monitor the data consumption to aid the data service providers and the consumers for managing costs effectively.
- the data service providers may increasingly alter a mechanism for charging the consumers from a connection-time-based cost to usage-based cost.
- the data service providers may charge the consumers for data consumed in each time instant.
- the data service providers may price data plans based on a volume of data consumed by the consumers and hence accurate measurement may be crucial for budgeting and cost control.
- operational advantages may include identifying the resolution for the media being provided to the UE over the connected network by capturing the data consumption of the media and suggesting the UE to switch over to other resolution to enhance the media experience over provided network bandwidth.
- Another potential advantage of the one or more embodiments may include identifying data consumption pattern to predict whether an end user has a smooth media experience or the end user has any issues in the media being streamed, thereby enriching the end user experience by improving the media quality in the communication network.
- Another potential advantage of the one or more embodiments may include measuring the data consumption of the media in bytes to allow a granularity of precise quantification of the data consumption and to identify the data consumption pattern to facilitate organizations and individuals to identify data usage trends.
- the data consumption pattern may enable the organizations and the individuals to optimize the data usage by reducing unnecessary downloads or streamlining data- heavy processes.
- the data consumption in bytes may provide a quantitative metric for assessing performance of digital systems and applications. Monitoring the data consumption of the media may be useful in identifying bottlenecks, latency issues, or other performance concerns arising due to excessive data usage. The monitoring may detect anomalies or suspicious activity for indicating security breaches or unauthorized access to data. By analyzing byte-level data traffic, the organizations may implement more effective security measures to protect digital assets.
- UE User Equipment
- RAM Random Access Memory
- ROM Read-Only Memory
- OS Operating System
- NMS Network Management System
- 302 - Router 400 Block diagram depicting communication between the one or more databases 228-1 to 228-N, the one or more servers 106-1 to 106-N, and one or more UEs 104-1 to 104-N 402-1 to 402-N - Buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Disclosed is a method (500) a method for identifying an optimal resolution for a 5 media in a communication network. The method includes receiving (502), from a User Equipment (UE), a plurality of data consumption byte samples of the media periodically at a predefined time period and determining (504) a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. Further, the method includes determining 10 (506) total data consumption byte samples of the media in the time delta and identifying (508), based on one or more parameters associated with the total data consumption byte samples, data consumption pattern of the plurality of data consumption byte samples of the media. The method further includes identifying (510) the optimal resolution for the media based on the data consumption pattern of 15 the plurality of data consumption byte samples.
Description
SYSTEM AND METHOD FOR IDENTIFYING AN OPTIMAL
RESOLUTION FOR MEDIA IN A COMMUNICATION NETWORK
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of Indian patent application No. 202421029286, titled “System and Method for Monitoring Media Quality” filed on April 10, 2024 and Indian patent application No. 202421029287, titled “System and Method for Monitoring Data Consumption of Media in a Communication Network” filed on April 10, 2024. The disclosure of the prior application is considered part of and is incorporated by reference into this patent application.
TECHNICAL FIELD
[0002] The embodiments of the present disclosure generally relate to the field of communication networks. More particularly, the present disclosure relates to a system and a method for identifying an optimal resolution for a media in a communication network.
BACKGROUND OF THE INVENTION
[0003] The subject matter disclosed in the background section should not be assumed or construed to be prior art merely due to its mention in the background section. Similarly, any problem statement mentioned in the background section or its association with the subject matter of the background section should not be assumed or construed to have been previously recognized in the prior art.
[0004] With recent advancements in telecommunication systems, media streaming has become increasingly popular for providing varied media contents such as video, audio, and games to users. However, with increase in number of the users, the media streaming massively experiences data loss, delivery time distortion and many other factors that may impact a quality of the media streaming. The quality of the media streaming impacts overall quality of service of communication networks. Also, the
inferior quality of the media streaming increases a delay or freeze-frame during consumption of the media results in user dissatisfaction.
[0005] Further, the media streaming over a communication network includes a network service provider incorporating one or more remote media servers, a core network (e.g., Internet), and a local hub/edge switch. The network is coupled to user premises equipment such as a Set Top Box (STB) and a television via a Network Interface Device (NID). The users control the streaming media through the STB, enabling features such as channel changes, fast forward, pause, and rewind. However, streaming the media through the network for seamless streaming experience lies a complex web of challenges that impacts the media quality.
[0006] In conventional systems, quality of the media stream may be degraded as the media stream travels over the network before arriving at the user equipment. Network service providers may monitor the communication networks to measure the quality of the media stream using various metrics. However, if there is a problem in the user premises equipment, the user needs to raise multiple complaints manually to get the problem resolved. As increasing amounts of media content are distributed over-the-air to user equipment using cellular networks, tracking the quality of media on the user equipment has become more complex.
[0007] Further, tracking the media quality on the user equipment poses various challenges such as variability in network conditions, varying quality requirements and sensitivity to network conditions, and dynamic content delivery. The variability in network conditions depends on multiple factors including fluctuations in signal strength, bandwidth availability, and network congestion. These factors can directly impact the media quality being delivered to the user equipment, making it difficult to consistently track and measure the media quality solely based on data consumption.
[0008] In light of the aforementioned challenges and considerations, there is a need for an improved system and method for identifying an optimal resolution for a media in the communication network, thereby enriching user experience.
SUMMARY
[0009] The following embodiments present a simplified summary in order to provide a basic understanding of some aspects of the disclosed invention. This summary is not an extensive overview, and it is not intended to identify key/critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0010] In an embodiment, a method for identifying an optimal resolution for a media in a communication network is disclosed. The method includes receiving, by a reception module from a User Equipment (UE), a plurality of data consumption byte samples of the media periodically at a predefined time period. The method further includes determining, by a determination module, a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media. Further, the method includes determining, by the determination module, total data consumption byte samples of the media received in the time delta. Furthermore, the method includes identifying, by a processing module based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media. The method further includes identifying, by the processing module, the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples. Thereafter, the method includes generating, by a generation module, a recommendation to switch to the identified optimal resolution for the media.
[0011] In some aspects of the present disclosure, for determining the total data consumption byte samples of the media, the method further includes determining, by the determination module, current received bytes based on the plurality of data consumption byte samples captured by the UE till the current time instant. Further,
the method includes determining, by the determination module, last total received bytes based on the plurality of data consumption byte samples captured by the UE till the previous time instant. Furthermore, the method includes determining, by the determination module, the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
[0012] In some aspects of the present disclosure, the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples, a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
[0013] In some aspects of the present disclosure, the method further includes analyzing, by the processing module, a pattern of chunk values in the data consumption pattern. Further, the method includes identifying, by the processing module based on the pattern of chunk values, buffering issues in streaming of the media. Furthermore, the method includes generating, by the generation module upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media.
[0014] In another embodiment, disclosed is a system for identifying an optimal resolution for a media in a communication network. The system includes a reception module configured to receive, from a User Equipment (UE), a plurality of data consumption byte samples of the media periodically at a predefined time period. The system further includes a determination module configured to determine a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media. The determination module is further configured to determine total data consumption byte samples of the media received
in the time delta. Further, the system includes a processing module configured to identify, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media. The processing module is further configured to identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples. Furthermore, the system includes a generation module configured to generate a recommendation to switch to the identified optimal resolution for the media.
BRIEF DESCRIPTION OF DRAWINGS
[0015] Various embodiments disclosed herein will become better understood from the following detailed description when read with the accompanying drawings. The accompanying drawings constitute a part of the present disclosure and illustrate certain non-limiting embodiments of inventive concepts disclosed herein. Further, components and elements shown in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. For the purpose of consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.
[0016] FIG. 1 illustrates a diagram depicting an environment of a communication network, in accordance with an embodiment of the present disclosure.
[0017] FIG. 2 illustrates a block diagram of a system for identifying an optimal resolution for a media in the communication network, in accordance with an embodiment of the present disclosure.
[0018] FIG. 3 illustrates a block diagram depicting communication between one or more databases, one or more servers, and a User Equipment (UE) for capturing a plurality of data consumption byte samples, in accordance with an embodiment of the present disclosure.
[0019] FIG. 4 illustrates a block diagram depicting communication between the one or more databases, the one or more servers, and one or more UEs for recommending the optimal resolution for the media, in accordance with an embodiment of the present disclosure.
[0020] FIG. 5 illustrates a process flow diagram depicting a method for identifying the optimal resolution for the media in the communication network, in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION OF THE INVENTION
[0021] Inventive concepts of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of one or more embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Further, the one or more embodiments disclosed herein are provided to describe the inventive concept thoroughly and completely, and to fully convey the scope of each of the present inventive concepts to those skilled in the art. Furthermore, it should be noted that the embodiments disclosed herein are not mutually exclusive concepts. Accordingly, one or more components from one embodiment may be tacitly assumed to be present or used in any other embodiment.
[0022] The following description presents various embodiments of the present disclosure. The embodiments disclosed herein are presented as teaching examples and are not to be construed as limiting the scope of the present disclosure. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified, omitted, or expanded upon without departing from the scope of the present disclosure.
[0023] The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in
some embodiments” which may each refer to one or more or all of the same or different embodiments. The term “some” as used herein is defined as “one, or more than one, or all.” Accordingly, the terms “one,” “more than one,” “more than one, but not all” or “all” would all fall under the definition of “some.” In view of the same, the terms, for example, “in an embodiment” refers to one embodiment and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments.”
[0024] The term “comprising,” when utilized, means “including, but not necessarily limited to;” it specifically indicates open-ended inclusion in the so-described one or more listed features, elements in a combination, unless otherwise stated with limiting language. Furthermore, to the extent that the terms “includes,” “has,” “have,” “contains,” and other similar words are used in either the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”
[0025] In the following description, for the purposes of explanation, various specific details are set forth to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features.
[0026] The description provided herein discloses exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the foregoing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing any of the exemplary embodiments. Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it may be understood by one of the ordinary skilled in the art that the embodiments disclosed herein may be practiced without these specific details.
[0027] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein the description, the singular forms "a", "an", and "the" include plural forms unless the context of the disclosure indicates otherwise.
[0028] The terminology and structure employed herein are for describing, teaching, and illuminating some embodiments and their specific features and elements and do not limit, restrict, or reduce the scope of the present disclosure. Accordingly, unless otherwise defined, all terms, and especially any technical and/or scientific terms, used herein may be taken to have the same meaning as commonly understood by one having ordinary skill in the art.
[0029] The various aspects including the example aspects are now described more fully with reference to the accompanying drawings, in which the various aspects of the disclosure are shown. The disclosure may, however, be embodied in different forms and should not be construed as limited to the aspects set forth herein. Rather, these aspects are provided so that this disclosure is thorough and complete, and fully conveys the scope of the disclosure to those skilled in the art. In the drawings, the sizes of components may be exaggerated for clarity.
[0030] Various aspects of the present disclosure to provide a system and a method for identifying an optimal resolution for a media in a communication network.
[0031] In another aspect of the present disclosure, the system and the method capture a plurality of data consumption byte samples of a media and identify total data consumption byte samples for the media.
[0032] In another aspect of the present disclosure, the system and the method identify a data consumption pattern based on the total data consumption byte samples for the media.
[0033] In another aspect of the present disclosure, the system and the method identify the optimal resolution for the media based on the data consumption pattern.
[0034] The term “Software Development Kit (SDK)” in the present disclosure may be a set of software-building tools for a specific platform. The SDK may be a collection of tools, libraries, and instructions that help developers in developing software applications.
[0035] The term “resolution” in the present disclosure may be a level of detail contained in a media. The resolution may be a number of pixels that exist within the image.
[0036] The term “data consumption byte sample” in the present disclosure may represent amount of data consumed by a user device for streaming the media.
[0037] The term “total data consumption” in the present disclosure may be an overall amount of data consumed by the user device over a specific period.
[0038] The term “data consumption pattern” in the present disclosure may represent a data usage pattern of the user device at different time periods.
[0039] The term “chunk” in the present disclosure may refer to a small, discrete portion of the media that is transmitted and played back sequentially during the streaming process of the media. The chunks are smaller segments or fragments of the media content that allow for efficient delivery, buffering, and playback in streaming applications.
[0040] FIG. 1 illustrates a diagram depicting an environment of a communication network 100, in accordance with an embodiment of the present disclosure. The embodiment of the communication network 100 shown in FIG. 1 is for illustration only. Other embodiments of the communication network 100 may be used without departing from the scope of this disclosure.
[0041] The communication network 100 may include various components such as a network 102, a User Equipment (UE) 104 (hereinafter may also be referred to as the “UE 104”), an application server 106 (hereinafter may also be referred to as the “server 106”), other devices 108, client devices 110, a processing module 112, and
a database 114. The processing module 112 may comprise a central processing unit (CPU) and a graphics processing unit (GPU) for performing computations and handling data processing tasks. The procession module 112 may be present inside the UE 104 and the server 106. The database 114 may store and manage structured data. The communication network 100 may include UE 104 on which one or more applications are installed to communicate with the server 106. The UE 104 may include Set Top Box (STB), smartphones, tablets, laptops, or desktop computers. The server 106 may handle requests from the UE 104 and may perform a plurality of tasks such as processing, storage, and data retrieval. The server 106 may be a physical machine or a virtual machine in a cloud environment. The server 106 is configured to execute data processing and data storing operations to perform the monitoring of the media quality in the communication network 100.
[0042] The communication network 100 may include other devices 108 such as Internet of Things (loT) devices or any other connected devices to transmit signals to nearby user devices. The communication network 100 may include one or more client devices 110 to represent the software applications or interfaces that run on the UE 104 to communicate with the server 106. The client devices 110 may be web browsers or a program requesting data from the software applications running on the UE 104. The communication network 100 may include the network 102 for enabling data transmission and communication between the various components of the communication network 100. The network 102 may be a local area network (LAN), a wide area network (WAN), or the internet.
[0043] The UE 104 may be, at least one DU, at least one Mobile Termination (MT) unit, and at least one relay. Typically, the term “Set Top Box (STB)”, “user equipment” or “UE” can refer to any component such as “mobile station”, “subscriber station”, “remote terminal”, “wireless terminal”, “receive point”, or “end user device”.
[0044] The network 102 may include suitable logic, circuitry, and interfaces that may be configured to provide several network ports and several communication
channels for transmission and reception of data related to operations of various entities of the communication network 100. Each network port may correspond to a virtual address (or a physical machine address) for transmission and reception of the communication data. For example, the virtual address may be an Internet Protocol Version 4 (IPV4) (or an IPV6 address) and the physical address may be a Media Access Control (MAC) address. The network 102 may be associated with an application layer for implementation of communication protocols based on one or more communication requests from the various entities of the communication network 100.
[0045] The communication data may be transmitted or received via the communication protocols. Examples of the communication protocols may include, but are not limited to, Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Domain Network System (DNS) protocol, Common Management Interface Protocol (CMIP), Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Long Term Evolution (LTE) communication protocols, or any combination thereof. In some aspects of the present disclosure, the communication data may be transmitted or received via at least one communication channel of several communication channels in the network 102. The communication channels may include, but are not limited to, a wireless channel, a wired channel, a combination of wireless and wired channel thereof. The wireless or wired channel may be associated with a data standard which may be defined by one of a Local Area Network (LAN), a Personal Area Network (PAN), a Wireless Local Area Network (WLAN), a Wireless Sensor Network (WSN), Wireless Area Network (WAN), Wireless Wide Area Network (WWAN), a metropolitan area network (MAN), a satellite network, the Internet, an optical fiber network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, and a combination thereof. Aspects of the present disclosure are intended to include or otherwise cover any type of communication channel, including known, related art, and/or later developed technologies.
[0046] The server 106 may be a network of computers, a software framework, or a combination thereof, that may provide a generalized approach to create a server implementation. Examples of the server 106 may include, but are not limited to, personal computers, laptops, mini-computers, mainframe computers, any nontransient and tangible machine that can execute a machine-readable code, cloudbased servers, distributed server networks, or a network of computer systems. The server 106 may be realized through various web-based technologies any webapplication framework. In other aspects of the present disclosure, the server 106 may be configured to execute one or more data processing and/or storage operations to perform the monitoring of media quality and identifying resolution of media in the communication network 100.
[0047] FIG. 2 illustrates a block diagram of a system 200 for identifying the optimal resolution for the media in the communication network 100, in accordance with an embodiment of the present disclosure. The system 200 may include the network 102, a group of UEs 104-1 to 104-N (collectively referred to as UE 104) connected to the network 102, the server 106, an external database 228 (hereinafter referred to as the database 228), and a Network Management System (NMS) 230. FIG. 2 shows the UE 104 to simplify the illustration as each UE among the UEs 104-1 to 104-N have same or similar configuration.
[0048] The server 106 includes a communication interface 202, a processor 204, a memory 206 coupled to the processor 204, and a database 208. The processor 204 may control the operation of the server 106. The processor 204 may also be referred to as a Central Processing Unit (CPU). The memory 206 may provide instructions and data to the processor 204 for performing functions of the server 106. The memory 206 may include a Random Access Memory (RAM), a Read-Only Memory (ROM) and a portion of the memory 206 may also include Non-Volatile Random Access Memory (NVRAM). The processor 204 may perform logical and arithmetic operations based on instructions stored within the memory 206. The communication interface 202 may allow transmission and reception of data between the server 106 and the network 102. The communication interface 202 may include a transmitter,
a receiver, and a single or multiple transmit antennas coupled to the transmitter and the receiver of the communication interface 202.
[0049] The communication interface 202 may be configured to enable the server 106 to communicate with various entities of the system 200 via the network 102. Examples of the communication interface 202 may include, but are not limited to, a modem, a network interface such as an Ethernet card, a communication port, and/or a Personal Computer Memory Card International Association (PCMCIA) slot and card, an antenna, a radio frequency (RF) transceiver, one or more amplifiers, a coder-decoder (CODEC) chipset, a subscriber identity module (SIM) card, and a local buffer circuit. It will be apparent to a person of ordinary skill in the art that the communication interface 202 may include any device and/or apparatus capable of providing wireless or wired communications between the server 106 and various other entities of the system 200.
[0050] In some aspects of the present disclosure, the server 106 may be coupled to the database 228 that provides data storage space to the server 106. The database 228 may store information related to configuration parameters, details related to the network 102 and other relevant information needed for the operation of the server 106. The database 228 may correspond to a centralized database system configured to store and manage structured data, such as network-related data and configurations. The database 228 may be a relational database organizing related data such as in a table, or a non-relational database organizing graphical and time series data.
[0051] The UE 104 may include a user interface 210, a processor 212, a communication interface 214, and a memory 216 coupled to the processor 212. The processor 212 may control the operation of the UE 104. The processor 212 may also be referred to as the CPU. The memory 216 may provide instructions and data to the processor 212 for performing several functions. The processor 212 may perform logical and arithmetic operations based on instructions stored within the memory 216.
[0052] The memory 216 may include a Random Access Memory (RAM) 218, a Read-Only Memory (ROM) 220, and a portion of the memory 216 may also include non-volatile random-access memory (NVRAM). The memory 216 may include an Operating System (OS) 222 for serving as an interface between the hardware components and the UE 104. The memory 216 may comprise one or more applications 224 (may also be referred to as “application 224”) and a database 226 to store data based on the one or more applications 224. The OS 222 may provide functions to and support communication standards for the UE 104. The OS 222 may also provide a common programming platform or executing environment for the one or more applications 224.
[0053] The communication interface 214 may allow transmission and reception of data between the UE 104 and the network 102. The communication interface 214 may include a transmitter, a receiver, and a single or multiple transmit antennas electrically coupled to the transmitter and the receiver of the communication interface 214. The one or more computer executable applications may be stored on the UE 104.
[0054] The user interface 210 may include suitable logic, circuitry, interfaces, and/or codes that may be configured to receive input(s) and present (or display) output(s) on the UE 104. For example, the user interface 210 may have an input interface and an output interface. The input interface may be configured to enable a user to provide input(s) to trigger (or configure) the UE 104 to perform various operations. Examples of the input interface may include, but are not limited to, a touch interface, a mouse, a keyboard, a motion recognition unit, a gesture recognition unit, a voice recognition unit, or the like. Aspects of the present disclosure are intended to include or otherwise cover any type of the input interface including known, related art, and/or later developed technologies without deviating from the scope of the present disclosure. The output interface may provide the output(s) based on an instruction provided via the user interface 210. Examples of the output interface of the user interface 210 may include, but are not limited to, a
digital display, an analog display, a touch screen display, an appearance of a desktop, and/or illuminated characters.
[0055] The processors 204 and 212 may include one or more general purpose processors and/or one or more special purpose processors, a microprocessor, a digital signal processor, an application specific integrated circuit, a microcontroller, a state machine, or ay any type of programmable logic array. The processors 204 and 212 may include may include an intelligent hardware device including a general-purpose processor, such as, for example, and without limitation, a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, or the like, a graphics-only processing unit such as a Graphics Processing Unit (GPU), a microcontroller, a Field-Programmable Gate Array (FPGA), a programmable logic device, a discrete hardware component, or any combination thereof. The processors 204 and 212 may be configured to execute computer-readable instructions stored in the memories 206 and 216 to cause the server 106 to perform various functions.
[0056] The memories 206 and 216 may further include, but not limited to, non- transitory machine-readable storage devices such as hard drives, magnetic tape, floppy diskettes, optical disks, compact disc read-Only Memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, RAMS, programmable read-only memories PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions.
[0057] In addition, the memory may, in some examples, be considered a non- transitory storage medium. The "non -transitory" storage medium is not embodied in a carrier wave or a propagated signal. However, the term "non -transitory" should not be interpreted as the memory is non-movable. In some examples, the memory may be configured to store larger amounts of information. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in Random Access Memory (RAM) or cache). The memory may be an internal storage
unit or an external storage unit of the server, cloud storage, or any other type of external storage.
[0058] Embodiments of the present technology may be described herein with reference to flowchart illustrations of methods and systems according to embodiments of the technology, and/or procedures, algorithms, steps, operations, formulae, or other computational depictions, which may also be implemented as computer program products. In this regard, each block or step of the flowchart, and combinations of blocks (and/or steps) in the flowchart, as well as any procedure, algorithm, step, operation, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions embodied in computer-readable program code. As will be appreciated, any such computer program instructions may be executed by one or more computer processors, including without limitation a general -purpose computer or special purpose computer, or other programmable processing apparatus to perform a group of operations comprising the operations or blocks described in connection with the disclosed methods.
[0059] Further, these computer program instructions, such as embodied in computer-readable program code, may also be stored in one or more computer- readable memory or memory devices (for example, the memories 206 and 216) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions stored in the computer- readable memory or memory devices produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s).
[0060] It will further be appreciated that the term “computer program instructions” as used herein refer to one or more instructions that can be executed by the one or more processors (for example, the processors 204 and 212) to perform one or more functions as described herein. The instructions may also be stored remotely such as on a server, or all or a portion of the instructions can be stored locally and remotely.
[0061] Although FIG. 1 and FIG. 2 illustrate one example of the environment of the communication network 100 and the system 200, various changes may be made to FIG. 1 and FIG. 2. For example, the system 200 may include any number of user devices in any suitable arrangement. Further, in another example, the server 106 may include any number of components in addition to the components shown in FIG. 2. Further, various components in FIG. 1 and FIG. 2 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
[0062] In one embodiment of the present disclosure, a Software Development Kit (SDK) for capturing the plurality of data consumption byte samples of the media may be developed and integrated into the application 224 installed in the UE 104. In a non-limiting example, the UE 104 may be the STB. The application 224 may be a user experience application developed using the SDK. The application 224 may be installed in the UE 104 to monitor the quality of the media by capturing the plurality of data consumption byte samples of the media. The application 224 may capture the plurality of data consumption byte samples from a backend of the media playing on the UE 104 and transmit the captured samples to the server 106. The server 106 may identify the optimal resolution of the media streamed in the UE 104 by analyzing a pattern of the data consumption byte samples over a connected network bandwidth. The server 106 may identify the optimal resolution and recommend the UE 104 to switch to the resolution, thereby enhancing user experience for the media being streamed.
[0063] In one or more embodiments, the server 106 may identify a quality being provided to the UE 104 over the connected network 102. Based on the identified quality, the server 106 may suggest the UE 104 to switch over to other resolution to enhance the media experience over provided network bandwidth. The server 106 may identify the resolution of the media based on the captured data consumption byte samples from the application 224 installed on the UE 104. The application 224 may capture the data consumption byte samples in Megabits per second (Mbps) from the backend of the UE 104. The server 106 may identify the resolution of the
media being streamed on the foreground by observing a pattern of each consumption byte in the captured samples. The server 106 may identify the pattern to identify whether an end user has a smooth media experience or the end user has any buffering issues in the media being streamed over the communication network 100. The server 106 may send recommendations on the optimal resolution for the media to the UE 104, based on which the UE 104 may switch to better resolution, thereby enhancing user experience for the media being streamed.
[0064] In some aspects of the present disclosure, the processor 204 of the server 106 may comprise one or modules such as, a reception module 232, a determination module 234, a processing module 236, a generation module 238, and a transmission module 238.
[0065] The reception module 232 may be configured to receive, from the UE 104, the plurality of data consumption byte samples of the media periodically at a predefined time period. The determination module 234 may be configured to determine a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant. The previous time instant may correspond to a time instant of starting the reception of the plurality of data consumption byte samples of the media. The determination module 234 may be further configured to determine the total data consumption byte samples of the media received in the time delta. The processing module 236 may be configured to identify, based on one or more parameters associated with the total data consumption byte samples of the media, the data consumption pattern of the plurality of data consumption bytes of the media. The processing module 236 may be further configured to identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples. The generation module 238 may be configured to generate a recommendation to switch to the identified optimal resolution for the media. The transmission module 240 may be configured to transmit the recommendation to the UE 104.
[0066] In some aspects of the present disclosure, the transmission module 240 may be configured to transmit the recommendation to the NMS 230 for taking remedial actions to improve the overall quality of the media across the network 102.
[0067] In some aspects of the present disclosure, the processor 212 of the UE 104 may comprise one or more modules such as, a reception module 242 and a transmission module 244. The transmission module 244 may transmit the plurality of data consumption byte samples to the server 106. The reception module 242 may receive recommendations on the optimal resolution for the media from the server 106.
[0068] FIG. 3 illustrates a block diagram 300 depicting communication between one or more databases 228-1 to 228-N, one or more servers 106-1 to 106-N, and the UE 104 for capturing the plurality of data consumption byte samples, in accordance with an embodiment of the present disclosure.
[0069] In one embodiment, the application 224 installed in the UE 104 may capture the plurality of data consumption byte samples of the media per second. A router 302 may forward the plurality of data consumption byte samples from the UE 104 to the one or more servers 106-1 to 106-N. The one or more servers 106-1 to 106-N may receive the plurality data consumption byte samples forwarded by the router 302 and store in the one or more databases 228-1 to 228-N. The one or more servers 106-1 to 106-N may identify the data consumption pattern based on the received data consumption byte samples of the media from the UE 104 and identify the resolution of the media.
[0070] FIG. 4 illustrates a block diagram 400 depicting communication between the one or more databases 228-1 to 228-N, the one or more servers 106-1 to 106-N, and one or more UEs 104-1 to 104-N for recommending the optimal resolution for the media, in accordance with an embodiment of the present disclosure.
[0071] In one embodiment, the server 106 may receive the plurality of data consumption byte samples from the application installed in the UE 104-1 to 104-N.
The server 106 may store the plurality of data consumption byte samples in the one or more databases 228-1 to 228-N. The server 106 may pre-load segments of data in a plurality of buffers 402-1 to 402-N when streaming media to the UE. The plurality of buffers 402-1 to 402-N may enable video, audio, gaming, or other media files to be played smoothly and without jitter or stuttering. The server 106 may download a certain amount of data before starting to stream the media on the UE 104-1 o 104-N. The server 106 may receive the data consumption byte samples from the application 224 installed on the UE 104-1 to 104-N. The server 106 identify consumption byte pattern based on the received samples from the UE 104-1 to 104- N and identify the resolution of the media content.
[0072] In some embodiments, the server 106 may identify issues arising while buffering the media while streaming. The issues may be due to poor network connectivity, limited network bandwidth, high-definition content, fluctuations in internet speed, network congestion, or latency. The server 106 may identify solutions for the buffering issues upon identifying the buffering issues.
[0073] FIG. 5 illustrates a process flow diagram depicting a method 500 for identifying the optimal resolution for the media in the communication network 100, in accordance with an embodiment of the present disclosure. The method 500 comprises a series of operation steps indicated by blocks 502 through 512.
[0074] At block 502, the processor 204 may receive, from the UE 104, the plurality of data consumption byte samples of the media periodically at the predefined time period. For example, the plurality of data consumption byte samples may be received daily, hourly, after a certain number of minutes such as every fifteen minutes, after a certain number of seconds such as at each second, or any combination thereof.
[0075] In one or more embodiments, the processor 204 may receive the plurality of data consumption byte samples of the media from the UE 104 through the application 224 developed using the SDK. The application 224 may be the user experience application for monitoring the quality of media streamed on the UE 104.
The application 224 may be integrated in the OS 222 of the UE 104. The application 224 may be configured to run in the background provided the operations of the UE 104 may not be impacted. The OS 222 may store data consumption of each application as data usage statistics using built-in tools. The application 224 may obtain the data consumption byte samples of the media streamed in the UE 104 from the data usage statistics stored in the OS 222. The application 224 may be configured to capture data consumption byte samples of the media played in the UE 104. The media may be at least one of a video, an audio, and a game. The media may be streamed using the UE 104. The UE 104 may be connected to a display device such as a television or a monitor for streaming the media.
[0076] In some aspects of the present disclosure, the application 224 installed on the UE 104 may passively capture the data consumption bytes of the media.
[0077] At block 504, the processor 204 may determine the time delta of the plurality of data consumption byte samples based on a difference between the current time instant (currentTimeMillis) and the previous time instant (lastTimeMillis). The currentTimeMillis may be an instruction to receive information of the current time instant and the lastTimeMillis may be an instruction to receive information of the previous time instant. The time delta may be determined using following formula given in Equation (1): timeDelta = currentTimeMillis ~ lastTimeMillis (1)
[0078] The previous time instant corresponds to the time instant of starting the reception of the plurality of data consumption byte samples of the media.
[0079] At block 506, the processor 204 may determine the total data consumption byte samples of the media received in the time delta.
[0080] In some aspects of the present disclosure, to determine the total data consumption byte samples of the media, the processor 204 may determine current received bytes based on the plurality of data consumption byte samples captured by
the UE 104 till the current time instant. Further, the processor 204 may determine last total received bytes based on the plurality of data consumption byte samples captured by the UE 104 till the previous time instant. Furthermore, the processor 204 may determine the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
[0081] In a non-limiting example, the application 224 may be configured capture the data consumption byte samples for the media streamed for every fifteen minutes for a period of one hour. The data consumption byte samples captured for the last fifteen minutes of the one hour may be the current time instant and the rest may be the data consumption byte samples for the previous time instant.
[0082] The processor 204 may calculate the total data consumption byte samples of the media based on data usage. The data usage may be a difference between a currently received data consumption byte (CurrentRxByte) till the current time instant and a total of previously received data consumption bytes (TrafficStats.getTotalRxBytes()) till the previous time instant. The CurrentRxByte may be an instruction to receive the data consumption bytes and the TrafficStats.getTotalRxBytes()) may be an instruction to receive previously received data consumption bytes for the predefined time period. The processor 204 may determine the data usage using following formula given in Equation (2): data usage = CurrentRxByte ~ TrafficStats. getTotalRxBytes() (2)
[0083] The processor 204 may convert the total data consumption byte samples in megabits for further processing and interpretation. The application 224 may capture the data consumption byte samples in bytes per second. The processor 204 may convert the total data consumption byte samples in megabits. The data usage in bytes may also be multiplied by a specific value.
[0084] In some embodiments, the server 106 may process the samples to identify the data consumption pattern based on the data usage.
[0085] At block 508, the processor 204 may identify, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media.
[0086] In some aspects of the present disclosure, the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples, a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
[0087] In a non-limiting example, the data consumption byte pattern may be identified based on the size of a sample greater than a predetermined value, for example 5MB.
[0088] In some aspects of the present disclosure, the data consumption byte pattern may be identified based on values of the chunks. When the total consumption byte samples of the media may be measured for the predefined time period, for example, for every ten minutes for the period of one hour, values of the total consumption byte samples may be stored in the database 228.
[0089] In a non-limiting example, the values of the total consumption byte samples may be 12.1634023 bytes, 12.4170796 bytes, 15.1431767 bytes, 17.4736586 bytes, and 19.8133635 bytes. The values may represent a series of high chunk values.
[0090] In another non-limiting example, the values of the total consumption byte samples may be 2.1634023 bytes, 3.4170796 bytes, 1.1431767 bytes, 1.4736586 bytes, and 2.8133635 bytes. The values may represent a series of low chunk values.
[0091] In another non-limiting example, the values of the total consumption byte samples may be 2.1634023 bytes, 0 bytes, 0 bytes, 0 bytes, and 2.8133635 bytes. The values may represent a series of the zero consumption byte samples.
[0092] The processor 204 may analyze the measured values and identify the data consumption byte pattern based on at least one of the high chunk values, the low chunk values, and the zero consumption byte samples. Based on the values of the chunks, the processor 204 may determine bitrate of the chunks. The bitrate may be determined by a ratio of number of bytes in a chunk to a duration of a chunk. In a non-limiting example, for a 1 OOO-bit chunk of duration 2 seconds, the bitrate is 1000 bits / 2 seconds = 500 bits per second.
[0093] At block 510, the processor 204 may identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples. The processor 204 may utilize the bitrate of the chunks to determine the optimal resolution for the media. Higher bitrates may allow higher resolutions and better quality. As the bitrate increases, the media may be streamed in a better resolution. The processor 204 may measure the bitrate based on the data consumption byte pattern and decide the resolution of the media streamed on the UE 104. For the low chunk values, the bitrate may be less, hence, a higher resolution of the media may not be suitable for streaming the media.
[0094] At block 512, the processor 204 may generate a recommendation to switch to the identified optimal resolution for the media. The resolution for the media refers to a total number of pixels in a video frame, measured by the number of horizontal and vertical pixels. For example, if the number of horizontal and vertical pixels is 1280x720 pixels, the resolution may be 720 pixels or High-Definition (HD). If the number of horizontal and vertical pixels is 1920x1080 pixels, the resolution may be 1080 pixels of Full HD. If the number of horizontal and vertical pixels is 3840x2160 pixels, the resolution may be 4000 pixels of 4K Ultra HD. If the number of horizontal and vertical pixels is 7680x4320 pixels, the resolution may be 8000 pixels of 8K Ultra HD.
[0095] In some aspects of the present disclosure, the processor 204 may analyze a pattern of chunk values in the data consumption pattern. In a non-limiting example of different consumption byte patterns, in non-buffer cases, when the resolution of the media is 2160 pixels, high value chunks and a lot of zero samples in between may be observed.
[0096] The chunk values may be determined based on the bitrate and data format. For example, the bit rate may be 1 to 4 Mbps for standard and high-definition data format. The bitrate refers to the amount of data (bits per second) used to encode a media stream, directly influencing the resolution.
[0097] In some embodiments, the resolution of the media may be directly proportional to the bitrate. As the bitrate increase, the resolution increases. For example, if the bitrate of the media ranges between 1 to 4 Mbps, the resolution for the media may be 720 pixels. If the bitrate of the media ranges between 4 to 8 Mbps, the resolution for the media may be 1080 pixels.
[0098] In some aspects of the present disclosure, the bitrate may determine the resolution of each chunk. Each chunk may be encoded at a different bitrate. The processor 204 may analyze the pattern of chunk values in the data consumption pattern based on the total data consumption byte samples. As the bitrate increase, the total data consumption byte samples may increase. If the total data consumption byte samples are higher, the chunk values of the media may be higher. The higher chunk values may require higher bitrate to provide better resolution depending on the network conditions of the UE 104.
[0099] In a non-limiting example, a video may have chunks encoded at 1 Mbps, 2 Mbps, and 4 Mbps. If the UE 104 experience a strong network connection, the UE 104 may choose the 4 Mbps chunk for the best quality. If the UE 104 experience a weaker network connection, the UE 104 may choose the 1 Mbps chunk to avoid buffering. Hence, the present disclosure provides adaptive bitrate streaming, allowing the UE 104 to select the most appropriate resolution based on the available bandwidth and network conditions.
[0100] In some aspects of the present disclosure, the processor 204 may identify, based on the pattern of chunk values, buffering issues in streaming of the media. In a non-limiting example of different consumption byte patterns, in cases of buffer, when the resolution of the media is 2160 and 1440 pixels, constant low chunks values may be observed and intermittent zero samples may be less observed.
[0101] In one or more embodiments, the processor 204 may identify solutions for the buffering issues upon identification of the buffering issues. For instance, the processor 204 may dynamically change the bitrate and resolution for the media to be streamed on the UE 104 segment by segment, based on varying network conditions, such as available bandwidth and resources. When the network 102 may be experiencing temporary network congestion, the processor 204 may provide instructions to the UE 104 to switch to a lower quality version of the media to avoid buffer underflow. When the connection speed recovers, the processor 204 may provide instructions to the UE 104 to switch back to a higher quality.
[0102] Further, the processor 204 may generate, upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media. Based on the identification of the buffering issues, the processor 204 may forward the issue to the NMS 230 for taking corrective actions to improve the quality of service of the communication network 100. Further, the processor 204 may transmit the recommendation to the UE 104 to switch to the optimal resolution.
[0103] In one or more embodiments, the processor 204 may identify buffering issues based on the data consumption byte pattern in the plurality of data consumption byte samples. For example, the buffering issues may arise when the network 102 may be experiencing a buffer overflow due to packet delay or experiencing a specified amount of packet loss. The buffer overflow may indicate packet delay or jitter contributing to degradation of media quality below a predetermined threshold.
[0104] In one or more embodiments, the processor 204 may include a media quality identification system. The processor 204 may develop a media quality model based
1 on the received consumption byte samples. The processor 204 may utilize one or machine learning models to develop the media quality model. The processor 204 may receive data consumption byte samples of the media from the UE 104 at the various time intervals. The processor 204 may train the media quality model using the data consumption byte samples of the media. The processor 204 may apply the model to identify a quality of media received at the UE 104. The model may identify the data consumption pattern and may predict the optimal resolution for the media.
[0105] In some aspects of the present disclosure, the processor 204 may monitor the data consumption byte samples of the media for precise quantification of the amount of data being used. The quantification of the data consumption byte samples may be utilized for prediction of data consumption pattern and prediction of resolution of the media. The processor 204 may predict data consumption pattern based on the total data consumption bytes of the media. The processor 204 may identify optimal resolution of the media based on the data consumption pattern. The processor 204 may generate a suggestion to the UE 104 to select the optimal resolution for the media.
[0106] In some aspects of the present disclosure, the processor 204 may monitor the data consumption to identify excessive resource utilization and excessive data usage. The processor 204 may receive an alert from the NMS 230 when the UE 104 may exceed the data usage above a predetermined threshold. The processor 204 may forward the alert to the UE 104 to reduce the data consumption. The processor 204 may also identify bottlenecks, latency issues, or other performance concerns arising due to the excessive data usage.
[0107] In some aspects of the present disclosure, the processor 204 may monitor the data consumption to aid the data service providers and the consumers for managing costs effectively. The data service providers may increasingly alter a mechanism for charging the consumers from a connection-time-based cost to usage-based cost. In such instances, the data service providers may charge the consumers for data consumed in each time instant. The data service providers may price data
plans based on a volume of data consumed by the consumers and hence accurate measurement may be crucial for budgeting and cost control.
[0108] Referring to the technical abilities and advantageous effect of the present disclosure, operational advantages that may be provided by above disclosed system and method may include identifying the resolution for the media being provided to the UE over the connected network by capturing the data consumption of the media and suggesting the UE to switch over to other resolution to enhance the media experience over provided network bandwidth. Another potential advantage of the one or more embodiments may include identifying data consumption pattern to predict whether an end user has a smooth media experience or the end user has any issues in the media being streamed, thereby enriching the end user experience by improving the media quality in the communication network.
[0109] Another potential advantage of the one or more embodiments may include measuring the data consumption of the media in bytes to allow a granularity of precise quantification of the data consumption and to identify the data consumption pattern to facilitate organizations and individuals to identify data usage trends. The data consumption pattern may enable the organizations and the individuals to optimize the data usage by reducing unnecessary downloads or streamlining data- heavy processes.
[0110] The data consumption in bytes may provide a quantitative metric for assessing performance of digital systems and applications. Monitoring the data consumption of the media may be useful in identifying bottlenecks, latency issues, or other performance concerns arising due to excessive data usage. The monitoring may detect anomalies or suspicious activity for indicating security breaches or unauthorized access to data. By analyzing byte-level data traffic, the organizations may implement more effective security measures to protect digital assets.
[0111] Those skilled in the art will appreciate that the methodology described herein in the present disclosure may be carried out in other specific ways than those set forth herein in the above disclosed embodiments without departing from essential
characteristics and features of the present disclosure. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.
[0112] The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein. Any combination of the above features and functionalities may be used in accordance with one or more embodiments.
[0113] In the present disclosure, each of the embodiments has been described with reference to numerous specific details which may vary from embodiment to embodiment. The foregoing description of the specific embodiments disclosed herein may reveal the general nature of the embodiments herein that others may, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications are intended to be comprehended within the meaning of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and is not limited in scope.
LIST OF REFERENCE NUMERALS
[0114] The following list is provided for convenience and in support of the drawing figures and as part of the text of the specification, which describe innovations by reference to multiple items. Items not listed here may nonetheless be part of a given embodiment. For better legibility of the text, a given reference number is recited near some, but not all, recitations of the referenced item in the text. The same reference number may be used with reference to different examples or different instances of a given item. The list of reference numerals is:
100 - Communication network
102 - Network
104 - User Equipment (UE)
106 - Application server (or server) 106
108 - Other devices
110 - Client devices
112 - Processing module
114 - Database
200 - System for identifying an optimal resolution for a media
202 - Communication interface of the server 106
204 - Processor of the server 106
206 - Memory of the server 106
208 - Server database of the server 106
210 - User Interface (UI) of the UE 104
212 - Processor of the UE 104
214 - Communication interface of the UE 104
216 - Memory of the UE 104
218 - Random Access Memory (RAM) in the memory 216
220 - Read-Only Memory (ROM) in the memory 216
222 - Operating System (OS) in the memory 216
224 - Applications in the memory 216
226 - Database in the memory 216
228 - External database
230 - Network Management System (NMS)
232 - Reception module of the server 106
234 - Determination module of the server 106
236 - Processing module of the server 106
238 - Generation module of the server 106
240 - Transmission module of the server 106
242 - Reception module of the UE 104
244 - Transmission module of the UE 104
300 - Block diagram depicting communication between one or more databases 228-1 to 228-N, one or more servers 106-1 to 106-N, and the UE 104
302 - Router 400 - Block diagram depicting communication between the one or more databases 228-1 to 228-N, the one or more servers 106-1 to 106-N, and one or more UEs 104-1 to 104-N 402-1 to 402-N - Buffer
500 - Method for identifying the optimal resolution for the media 502-512 - Operation steps of the method 500
Claims
1. A method (500) for identifying an optimal resolution for a media in a communication network, the method comprising: receiving (502), by a reception module (232) from a User Equipment (UE) (104), a plurality of data consumption byte samples of the media periodically at a predefined time period; determining (504), by a determination module (234), a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant, wherein the previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media; determining (506), by the determination module (234), total data consumption byte samples of the media received in the time delta; identifying (508), by a processing module (236) based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media; identifying (510), by the processing module (236), the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples; and generating (512), by a generation module (238), a recommendation to switch to the identified optimal resolution for the media.
2. The method (500) as claimed in claim 1, wherein for determining the total data consumption byte samples of the media, the method (500) comprises: determining, by the determination module (234), current received bytes based on the plurality of data consumption byte samples captured by the UE (104) till the current time instant;
determining, by the determination module (234), last total received bytes based on the plurality of data consumption byte samples captured by the UE (104) till the previous time instant; and determining, by the determination module (234), the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
3. The method (500) as claimed in claim 1 , wherein the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples, a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
4. The method (500) as claimed in claim 1, further comprising: analyzing, by the processing module (236), a pattern of chunk values in the data consumption pattern; identifying, by the processing module (236) based on the pattern of chunk values, buffering issues in streaming of the media; and generating, by the generation module (238) upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media.
5. A system (200) for identifying an optimal resolution for a media in a communication network, the system comprising: a reception module (232) configured to receive, from a User Equipment (UE) (104), a plurality of data consumption byte samples of the media periodically at a predefined time period; a determination module (234) configured to:
determine a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant, wherein the previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media; and determine total data consumption byte samples of the media received in the time delta; a processing module (236) configured to: identify, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media; and identify the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples; and a generation module (238) configured to generate a recommendation to switch to the identified optimal resolution for the media.
6. The system (200) as claimed in claim 5, wherein to determine the total data consumption byte samples of the media, the determination module (234) is configured to: determine current received bytes based on the plurality of data consumption byte samples captured by the UE (104) till the current time instant; determine last total received bytes based on the plurality of data consumption byte samples captured by the UE (104) till the previous time instant; and determine the total data consumption byte samples of the media based on a difference between the current received bytes and the last total received bytes.
7. The system (200) as claimed in claim 5, wherein the one or more parameters includes at least one of a size of a sample in the plurality of data consumption byte samples, a peak value of the sample in the plurality of data consumption byte samples, an average of the sample in the plurality of data consumption byte samples,
a number of zero consumption byte sample in the plurality of data consumption byte samples, and a consistency of the zero consumption byte sample in the plurality of data consumption byte samples.
8. The system (200) as claimed in claim 5, wherein: the processing module (236) is further configured to: analyze a pattern of chunk values in the data consumption pattern; and identify, based on the pattern of chunk values, buffering issues in streaming of the media; and the generation module (238) is further configured to generate, upon identification of the buffering issues, a recommendation to switch to the identified optimal resolution for the media.
9. A computer program product comprising computer-executable instructions that are stored on a non-transitory computer-readable medium and that, when executed by at least one processor performs operations comprising: receiving, from a User Equipment (UE) (104), a plurality of data consumption byte samples of a media periodically at a predefined time period; determining a time delta of the plurality of data consumption byte samples based on a difference between a current time instant and a previous time instant, wherein the previous time instant corresponds to a time instant of starting the reception of the plurality of data consumption byte samples of the media; determining total data consumption byte samples of the media received in the time delta; identifying, based on one or more parameters associated with the total data consumption byte samples of the media, data consumption pattern of the plurality of data consumption byte samples of the media; identifying the optimal resolution for the media based on the data consumption pattern of the plurality of data consumption byte samples; and
generating a recommendation to switch to the identified optimal resolution for the media.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN202421029286 | 2024-04-10 | ||
| IN202421029287 | 2024-04-10 | ||
| IN202421029287 | 2024-04-10 | ||
| IN202421029286 | 2024-04-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025215660A1 true WO2025215660A1 (en) | 2025-10-16 |
Family
ID=97349584
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IN2025/050551 Pending WO2025215660A1 (en) | 2024-04-10 | 2025-04-07 | System and method for identifying an optimal resolution for media in a communication network |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025215660A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180027039A1 (en) * | 2016-07-20 | 2018-01-25 | Arris Enterprises Llc | Client Feedback Enhanced Methods and Devices for Efficient Adaptive Bitrate Streaming |
| WO2019016561A1 (en) * | 2017-07-21 | 2019-01-24 | Pinney, Matthew | A method, device and system for streaming media data |
| US20190327510A1 (en) * | 2015-05-11 | 2019-10-24 | Mediamelon, Inc. | Systems and Methods for Performing Quality Based Streaming |
-
2025
- 2025-04-07 WO PCT/IN2025/050551 patent/WO2025215660A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190327510A1 (en) * | 2015-05-11 | 2019-10-24 | Mediamelon, Inc. | Systems and Methods for Performing Quality Based Streaming |
| US20180027039A1 (en) * | 2016-07-20 | 2018-01-25 | Arris Enterprises Llc | Client Feedback Enhanced Methods and Devices for Efficient Adaptive Bitrate Streaming |
| WO2019016561A1 (en) * | 2017-07-21 | 2019-01-24 | Pinney, Matthew | A method, device and system for streaming media data |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11228794B2 (en) | Method, computer device, and storage medium for media code rate self-adaptation | |
| EP2700267B1 (en) | Full-reference computation of mobile content quality of experience in real-time | |
| US11153154B1 (en) | Techniques to dynamically configure target bitrate for streaming network connections | |
| US10555040B2 (en) | Machine learning based packet service classification methods for experience-centric cellular scheduling | |
| US11350150B2 (en) | Method for estimation of quality of experience (QoE) metrics for video streaming using passive measurements | |
| US11032590B2 (en) | Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server | |
| US20160295429A1 (en) | System, method and service product for content delivery | |
| EP3304844B1 (en) | Methods, radio communication device and base station device for managing a media stream | |
| US10728180B2 (en) | Apparatus, storage medium and method for adaptive bitrate streaming adaptation of variable bitrate encodings | |
| Schwind et al. | Dissecting the performance of YouTube video streaming in mobile networks | |
| CN105264907B (en) | Quality of Experience Prediction Method and Base Station for Mobile Video Service | |
| US11431780B2 (en) | Method and apparatus for estimating quality of experience from network data | |
| US20150026334A1 (en) | Method for distinguishing type of communication network and method for providing content using same | |
| US10887641B2 (en) | Techniques to dynamically configure a sender bitrate for streaming media connections | |
| Lv et al. | Accurate throughput prediction for improving QoE in mobile adaptive streaming | |
| US11490149B2 (en) | Cap-based client-network interaction for improved streaming experience | |
| WO2025215660A1 (en) | System and method for identifying an optimal resolution for media in a communication network | |
| Hossain et al. | Quality of experience for video streaming: A contemporary survey | |
| CN116744337A (en) | Network acceleration method, electronic device and storage medium | |
| Jia et al. | Measuring and predicting quality of experience of DASH-based video streaming over LTE | |
| US20250287288A1 (en) | Systems and methods for cloud-based spectrum survey and network management based therefrom | |
| KR20140062954A (en) | Method and apparatus for providing contents according to network type by using internet protocol address | |
| US20250016050A1 (en) | Computerized systems and methods for application-based qoe network configuration and implementation | |
| Gokhale et al. | iBtryMntr: experimental study of power consumption characteristics for wireless multimedia communication apps in iOS devices | |
| KR102526963B1 (en) | Method and Apparatus for Changing VMI Service Image Quality |
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: 25786174 Country of ref document: EP Kind code of ref document: A1 |