Abstract: Disclosed is a system (130) and a method (300) for identifying an optimal video resolution supported by a network (120). The method comprising determining a first resolution achieved during an adaptive streaming of a video for a first predetermined period, streaming the video at the first resolution for a second predetermined period, and determining whether a buffering event occurs during the streaming of the video. The method further comprises adjusting the video resolution to a higher level if no buffering occurs and reiteratively switching the streaming of the video at multiple resolution levels to identify a highest stable resolution without the buffering. Thus, the method ensures a seamless viewing experience and benefits both end users and service operators by enabling an optimal video playback without manual configuration, making it suitable for diverse streaming environments. FIG. 3
DESC:FORM 2
THE PATENTS ACT, 1970 (39 OF 1970)
&
THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
SYSTEM AND METHOD FOR IDENTIFYING OPTIMAL VIDEO RESOLUTION SUPPORTED BY A NETWORK
Jio Platforms Limited, an Indian company, having registered address at Office -101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India
The following specification particularly describes the invention and the manner in which it is to be performed.
TECHNICAL FIELD
[0001] The embodiments of the present disclosure generally relate to a field of adaptive streaming in communication networks. More particularly, the present disclosure relates to a system and a method for identifying an optimal video resolution supported by a communication network.
BACKGROUND OF THE INVENTION
[0002] 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.
[0003] With advancement in digital connectivity, demand for media content and online video streaming has increased. To this end, there is an increased demand of high-quality video content for entertainment and other purposes. Users expect the high-quality video content to be downloaded or viewed online, seamlessly on their devices, including smartphones and tablets. This demand has been supplemented by advancements in broadband internet speeds, enhanced mobile network capabilities, and a development of advanced video compression technologies.
[0004] Despite these advancements, buffering remains a persistent issue that significantly effects a user experience. The buffering occurs when a video playback is interrupted to allow video data to load. The interruption can be caused by a variety of factors including fluctuating network speeds, high latency, and bandwidth limitations. The buffering disrupts the viewing experience, often driving the users to abandon download or online viewing of the media content altogether due to unsatisfactory streaming performance.
[0005] Heretofore, in conventional media content streaming methods, various techniques have been developed to mitigate an occurrence of the buffering during the video playback. These techniques dynamically adjust a video quality based on real-time network conditions to ensure a smooth playback. However, these techniques often lead to frequent changes in resolution of the video content due to which the users experience abrupt shifts in the video quality, which is distracting and diminishes an overall experience of the video content for the users.
[0006] Therefore, to overcome the aforementioned challenges associated with the conventional methods, there lies a need for a mechanism that can enable the users to switch to an optimal resolution that ensures a buffer-less video experience while maintaining an acceptable level of the video quality during the video playback.
SUMMARY OF THE INVENTION
[0007] 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.
[0008] According to an aspect of the present disclosure, a method for identifying an optimal video resolution supported by a network is described. The method comprising receiving, by a receiving module from a user device, an input for performing one or more video tests. The method further comprises initiating, by a video processing module in response to the input, streaming of a video utilizing an adaptive streaming for a first predetermined period. The method further comprises determining, by a determination module, a first resolution achieved during the adaptive streaming of the video for the first predetermined period. The method further comprises streaming, by the video processing module, the video at the first resolution for a second predetermined period and determining, by the determination module, whether a buffering event occurs during the streaming of the video at the first resolution for the second predetermined period. The method further comprises adjusting, by the video processing module, the streaming of the video to a second resolution higher than the first resolution based on a determination of an absence of an occurrence of the buffering event during the streaming of the video for the second predetermined period. The method further comprises reiteratively switching, by the video processing module, the streaming of the video to multiple resolution levels higher than the second resolution until the occurrence of at least one buffering event is determined during the streaming of the video, and identifying, by an identification module, as the optimal video resolution supported by the network, an immediate resolution lower than a resolution level where the at least one buffering event is occurred.
[0009] In one or more implementations, the determining the first resolution of the video achieved during the adaptive streaming of the video is based on the determination of the absence of the occurrence of the buffering event during the streaming of the video.
[0010] In one or more implementations, for switching the streaming of the video to multiple resolution levels, the method comprises increasing, by the video processing module, the resolution in a predetermined sequential order of video resolution levels.
[0011] In one or more implementations, the predetermined sequential order of the video resolution levels corresponds to an increasing order of the video resolution levels supported by the user device.
[0012] In one or more implementations, the method further comprises controlling, by the video processing module, a User Interface (UI) of the user device, to display the optimal video resolution supported by the network.
[0013] According to another aspect of the present disclosure, disclosed is a system for identifying optimal video resolution supported by a network. The system comprises a receiving module, a video processing module, a determination module, and an identification module. The receiving module is configured to receive, from a user device, an input for performing one or more video tests. The video processing module is configured to initiate, in response to the input, streaming of a video utilizing an adaptive streaming for a first predetermined period. The determination module is configured to determine a first resolution achieved during the adaptive streaming of the video for the first predetermined period. The video processing module is further configured to stream the video at the first resolution for a second predetermined period and the determination module is further configured to determine whether a buffering event occurs during the streaming of the video at the first resolution for the second predetermined period. The video processing module is further configured to adjust the streaming of the video to a second resolution higher than the first resolution based on a determination of an absence of an occurrence of the buffering event during the streaming of the video for the second predetermined period. The video processing module is further configured to reiteratively switch the streaming of the video to multiple resolution levels higher than the second resolution until the occurrence of at least one buffering event is determined during the streaming of the video. The identification module is configured to identify, as the optimal video resolution supported by the network, an immediate resolution lower than a resolution level where the at least one buffering event is occurred.
BRIEF DESCRIPTION OF DRAWINGS
[0014] 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 consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.
[0015] FIG. 1 illustrates a block diagram depicting a network environment for identifying an optimal video resolution supported by a network, in accordance with an embodiment of the present disclosure.
[0016] FIG. 2 illustrates a block diagram depicting a system architecture of a server, in accordance with an exemplary embodiment of the present disclosure.
[0017] FIG. 3 illustrates a flowchart depicting a method for identifying the optimal video resolution supported by the network, in accordance with an embodiment of the present disclosure.
[0018] FIG. 4 illustrates a schematic block diagram depicting a computing system for identifying the optimal video resolution supported by the network, in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION OF THE INVENTION
[0019] 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.
[0020] 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.
[0021] The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in some embodiments” or “some implementations” which may each refer to one or more or all of the same or different embodiments or implementations. 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” or “in an implementation” refers to one embodiment or one implementation and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments.” Further, the term, for example, “in one or more implementations” refers to “at least one implementation, or more than one implementation, or all implementations.
[0022] 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”.
[0023] 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.
[0024] 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.
[0025] The terminology used herein is for the purpose of describing 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 invention indicates otherwise.
[0026] 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.
[0027] An object of the present disclosure is to provide a system and a method for identifying an optimal video resolution supported by a network at any given point to ensures a buffer-less video experience during video playback.
[0028] Another object of the present disclosure is to provide a system and a method for dynamically adjusting the video resolution based on real-time network conditions to ensures the buffer-less video experience while maintaining an acceptable level of the video quality during the video playback.
[0029] Yet another object of the present disclosure is to provide a system and a method for seamless transitions between different video quality levels to ensure uninterrupted viewing experiences.
[0030] The present disclosure relates to the system and the method for determining the optimal video resolution supported by the network at any given moment through an automated video testing. An adaptive streaming is used to dynamically adjust the video quality based on the real-time network conditions to ensure the seamless transitions between different video resolutions. During an initial adaptive streaming phase, a video is played for a predefined duration to identify a highest resolution the network may support without buffering. Once the highest resolution is determined, a targeted quality verification is performed by the system by streaming the video at the identified resolution for a short duration and progressively switching to higher video resolutions until the buffering occurs.
[0031] Several key terms used in the description play pivotal roles in facilitating the system functionality. In order to facilitate an understanding of the description, the key terms are defined below.
[0032] The term “adaptive streaming” in the entire disclosure may refer to a video delivery technique that dynamically adjusts the quality of a video stream in real-time based on an available network bandwidth and device capabilities. The adaptive streaming is used to ensure a smooth transition between different quality levels by continuously monitoring network conditions and selecting the most suitable resolution.
[0033] The term “video resolution” in the entire disclosure may refer to a number of pixels displayed in each frame of the video, which determines clarity of the video. The higher resolutions, such as 1080p or 4K, provide better visual quality but require more bandwidth.
[0034] The term “optimal video resolution” in the entire disclosure may refer to a highest video resolution that may be sustained without the buffering, ensuring an uninterrupted viewing experience based on available network conditions at any given time. The optimal video resolution is determined through an adaptive streaming process that dynamically evaluates and selects the best possible quality level within a short time frame. In a non-limiting example, when a user initiates a video test, the system performs the adaptive streaming for an initial duration of 4 seconds to identify the highest video resolution that the network may support under current network conditions. If the highest video resolution achieved during this phase is say, 1080p, the system then streams the video at the 1080p for 2 seconds. If no buffering occurs, the system upgrades to 1440p and streams for another 2 seconds. If the buffering is observed at the 1440p, the system determines that the best optimal resolution is the last successfully streamed resolution without the buffering, which is the 1080p. This optimal video resolution is then suggested to the user for a buffer-free experience.
[0035] Embodiments of the present disclosure will be described below in detail with reference to the accompanying drawings. FIG. 1-FIG. 4, discussed below, and the one or more embodiments used to describe the principles of the present disclosure are by way of illustration only and should not be construed in any way to limit the scope of the present disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.
[0036] FIG. 1 illustrates a block diagram depicting a network environment 100 for identifying the optimal video resolution supported by the network, in accordance with an embodiment of the present disclosure.
[0037] The embodiments of the network environment 100 shown in FIG. 1 is for illustration only. Other embodiments of the network environment 100 may be used without departing from the scope of this disclosure. The network environment 100 determines the optimal video resolution supported by the network at any given time through adaptive streaming and user interaction.
[0038] As shown in FIG. 1, the network environment 100 may include a user device 110, a network 120, a server 130, and a database 150. The server 130 communicates with each of the user device 110, and the database 150 via the network 120.
[0039] The user device 110 may include a User Interface (UI) 110-1 and a communication unit 110-2. The user may initiate a video testing process via the UI 110-1. The communication unit 110-2 within the user device 110 may enable communication of the user device 110 with the server 130 for data exchange. In one or more embodiments, one or more applications may be installed on the user device 110 to communicate with the server 130. The user device 110 may include smartphones, tablets, laptops, desktop computers, Personal Digital Assistants (PDAs), smartwatches, and the like.
[0040] The network 120 enables communication between components of the network environment 100. The network 120 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 network environment 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 120 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 network environment 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. 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 120. 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.
[0041] The server 130 (hereinafter also referred to as the “system 130”) functions as a central entity responsible for storing, processing, and delivering video content to the user device 110 over the network 120. The server 130 utilizes adaptive streaming techniques to dynamically adjust the video quality based on the network conditions. The server 130 responds to requests from the user device 110, processes bandwidth availability, and ensures seamless data transmission. The server 130 facilitates communication between the user device 110 and the network 120, ensuring efficient content delivery while minimizing the buffering.
[0042] The server 130 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 130 may include, but are not limited to, personal computers, laptops, mini-computers, mainframe computers, any non-transient and tangible machine that can execute a machine-readable code, cloud-based servers, distributed server networks, or a network of computer systems. The server 130 may be realized through various web-based technologies such as, but not limited to, a Java web-framework, a .NET framework, a Personal Home Page (PHP) framework, or any web-application framework.
[0043] The server 130 may include processing circuitry 140, a communication interface 142, and a memory 144. The processing circuitry 140 may include processor(s) (such as data processing engines) configured with suitable logic, instructions, circuitry, interfaces, and/or codes for executing one or more operations of various operations performed by the server 130 for computations and processing. Examples of the processing circuitry 140 may include, but are not limited to, an Application Specific Integrated Circuit (ASIC) processor, a Reduced Instruction Set Architecture (RISC) processor, a Complex Instruction Set Architecture (CISC) processor, a Field Programmable Gate Array (FPGA), and the like.
[0044] The communication interface 142 may be configured to enable the server 130 to communicate with various entities of the network environment 100 via the network 120. Examples of the communication interface 142 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 tuner, one or more oscillators, a digital signal processor, 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 142 may include any device and/or apparatus capable of providing wireless or wired communications between the server 130 and various other entities of the network environment 100.
[0045] The memory 144 may be configured to store the logic, instructions, circuitry, interfaces, and/or codes of the processing circuitry 140 for executing various operations. Examples of the memory 144 may include but are not limited to, a Read-Only Memory (ROM), a Random-Access Memory (RAM), a flash memory, a removable storage drive, a Hard Disc Drive (HDD), a solid-state memory, a magnetic storage drive, a Programmable Read-Only Memory (PROM), an Erasable Programmable Read-Only Memory (EPROM), and/or an Electrically Erasable Programmable Read-Only Memory EEPROM.
[0046] The database 150 may store information related to network quality metrics, video resolution preferences, and historical data of conducted video resolution tests. The information may be accessed and updated by both the user device 110 and the server 130 as part of the video testing and recommendation process. The database 150 may correspond to, but not limited to a relational database, a non-relational database or an in-memory database depending on implementation requirements.
[0047] Although FIG. 1 illustrates one example of the network environment 100, various changes may be made to FIG. 1. For example, the network environment 100 may include any number of user devices and servers in any suitable arrangement. Further, in another example, the network environment 100 may include any number of components in addition to the components shown in FIG. 1. Further, various components in FIG. 1 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
[0048] FIG. 2 illustrates a block diagram depicting a system architecture of the server 130, in accordance with an exemplary embodiment of the present disclosure.
[0049] The server 130 may include the processing circuitry 140, the communication interface 142, the memory 144, and an Input-Output (I/O) interface 204. Each of the components of the server 130 is communicatively coupled to each other via a first communication bus 206.
[0050] The I/O interface 204 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 server 130. For example, the I/O interface 204 may have an input interface (not shown) and an output interface (not shown). The input interface may be configured to enable the user to provide input(s) to trigger (or configure) the server 130 for performing data processing operation(s) for identifying the optimal video resolution. 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 be configured to display (or present) output(s) generated (or provided) by the server 130 such as, but not limited to, the optimal video resolution supported by the network. In some aspects of the present disclosure, the output interface may provide the output(s) based on an instruction provided by the user of the server 130, by way of the input interface. Examples of the output interface 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. Aspects of the present disclosure are intended to include or otherwise cover any type of the input interface and output interface in the I/O interface 204, including known, related art, and/or later developed technologies without deviating from the scope of the present disclosure.
[0051] The processing circuitry 140 may include processor(s) (e.g., processing modules) as presented in FIG. 2. According to an example embodiment, the processing circuitry 140 may include a receiving module 202-1, a video processing module 202-2, a determination module 202-3, and an identification module 202-4. Various modules of the processing circuitry 140 may be communicatively coupled to each other by way of a second communication bus 208.
[0052] Referring to FIG. 2, the receiving module 202-1 is configured to receive the input for performing video tests from the user device 110. The video processing module 202-2 is configured to initiate streaming of the video utilizing the adaptive streaming for a first predetermined period in response to the received input. The determination module 202-3 is configured to determine a first resolution achieved during the adaptive streaming of the video for the first predetermined period. The video processing module 202-2 is further configured to stream the video at the first resolution for a second predetermined period and the determination module 202-3 is further configured to determine whether a buffering event occurs during the streaming of the video at the first resolution for the second predetermined period. The video processing module 202-2 is further configured to adjust the streaming of the video to a second resolution higher than the first resolution based on a determination of an absence of an occurrence of the buffering event during the streaming of the video for the second predetermined period. The video processing module 202-2 is further configured to reiteratively switch the streaming of the video to multiple resolution levels higher than the second resolution until the occurrence of at least one buffering event is determined during the streaming of the video. The identification module 202-4 is further configured to identify an immediate resolution lower than a resolution level where the at least one buffering event is occurred as the optimal video resolution supported by the network.
[0053] Although FIG. 2 illustrates one example of the server 130, various changes may be made to FIG. 2. Further, the server 130 may include any number of components in addition to those shown in FIG. 2, without deviating from the scope of the present disclosure. Further, various components in FIG. 2 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
[0054] FIG. 3 illustrates a flowchart depicting a method 300 for identifying the optimal video resolution supported by the network, in accordance with an embodiment of the present disclosure. The method 300 comprises a series of operation steps indicated by blocks 302 through 316. The method 300 starts at block 302. The method 300 begins with the user initiating the video test through the UI 110-1 on the user device 110.
[0055] At block 302, the receiving module 202-1 may receive from the user device 110, an input request for performing the video tests. For instance, when the user initiates the video test by selecting an option via the UI 110-1 on the user device 110, this action triggers or sends the input request to the receiving module 202-1 of the server 130 to perform the video test. In a non-limiting example, the user selects an option, such as “perform the video test”, from the UI 110-1 on the user device 110. The selection acts as a command to start the video test. The action of selecting the option “perform the video test” sends the input request from the user device 110 to the receiving module 202-1 of the server 130. In an embodiment, the input request may contain relevant parameters such as a device type, the network conditions, and other technical details necessary for an adaptive streaming analysis. The receiving module 202-1 may acknowledge the input request and triggers the video processing module 202-2 to begin the video test. In one embodiment, the trigger may be an automated trigger in which the system may be designed to automatically run periodic video tests based on the network conditions. In this case, the input request may be an automated request sent by the system.
[0056] At block 304, the video processing module 202-2 may initiate streaming of the video utilizing the adaptive streaming for the first predetermined period in response to the received input. The first predetermined period refers to a short, fixed duration during which the video is streamed to determine the highest quality the network may support without the buffering. The first predetermined period may be used for an initial video test phase. Once the video test is initiated, the video stream is played using the adaptive streaming, which automatically adjusts the video quality based on the available network bandwidth. The video processing module 202-2 starts at a base resolution and dynamically increases or decreases the resolution as per the network conditions. For instance, let say the video starts at 480p resolution and, depending on the bandwidth availability, may automatically switch to 720p or 1080p resolution levels within 4 seconds.
[0057] At block 306, the determination module 202-3 may determine the first resolution achieved during the adaptive streaming of the video for the first predetermined period. For instance, if the network allows 1080p playback without the buffering, this resolution is recorded as the first resolution for further assessment.
[0058] At block 308, the video processing module 202-2 is further configured to stream the video at the first resolution for the second predetermined period. The second predetermined period may refer to the fixed duration, for example 2 seconds, during which the video is continuously played at the first resolution to check for buffering issues. This helps confirm whether the network may sustain the first determined resolution without interruptions. Further, in a non-limiting example, if the first resolution determined at block 306 is 1080p, the video processing module 202-2 streams the video at 1080p for 2 seconds to assess its stability before deciding whether to switch to a higher resolution.
[0059] At block 310, the determination module 202-3 may determine whether the buffering event occurs during the streaming of the video at the first resolution for the second predetermined period. The determination module 202-3 actively monitors for the buffering events. If no buffering is detected, the process moves to the next step of testing the higher resolution. However, if the buffering occurs, the determination module 202-3 may determine that the network cannot support this resolution consistently. In a non-limiting example, if the 1080p resolution plays smoothly and no buffering occurs over the 2 seconds, the determination module 202-3 attempts streaming of the video at 1440p resolution that is higher than the previous resolution (i.e., 1080p).
[0060] At block 312, the video processing module 202-2 may adjust the streaming of the video to the second resolution higher than the first resolution based on the determination of the absence of the occurrence of the buffering event during the streaming of the video for the second predetermined period. For instance, if no buffering was observed at the first resolution, the video processing module 202-2 may increase the resolution to the next higher available level and streams the video for a short period (e.g., 2 seconds) to evaluate its stability. For example, after successfully playing the 1080p resolution, the video processing module 202-2 switches to 1440p resolution and plays the video for another 2 seconds.
[0061] At block 314, the video processing module 202-2 may reiteratively switch the streaming of the video to multiple resolution levels higher than the second resolution, following a predetermined sequential order of increasing video resolutions until the occurrence of at least one buffering event is determined during the streaming of the video. The term multiple resolution levels may refer to a sequence of progressively higher video resolutions that the system tests to determine the highest stable resolution supported by the network. The predetermined sequential order of the multiple resolution levels typically follows standard video resolution formats supported by the user device 110, and may include, but not limited to, 480p, 720p, 1080p, 1440p, and 2160p (4K). The system uses this increasing resolution sequence to ensure a structured and efficient method for identifying the optimal video resolution supported by the network without causing the buffering. In an embodiment, quality checks may be conducted to assess smoothness of the video playback and identify the highest resolution achievable without the buffering. For instance, if the 1440p resolution plays smoothly without the buffering, the video processing module 202-2 attempts a 2160p resolution(4K). If the video playback at the 2160p resolution results in the buffering, the system recognizes that the network cannot sustain the 2160p resolution. As a result, the last successfully tested resolution (1440p) is considered the highest stable resolution.
[0062] At bock 316, the identification module 202-4 may identify the immediate resolution lower than the resolution level where the at least one buffering event is occurred as the optimal video resolution supported by the network. For instance, if the buffering occurs at the 2160p resolution, the identification module 202-4 identifies the 1440p resolution as the optimal video resolution.
[0063] In an implementation, the video processing module 202-2 may control the UI 110-1 of the user device 110 to display the optimal video resolution supported by the network.
[0064] FIG. 4 illustrates a schematic block diagram of a computing system 400 for identifying the optimal video resolution supported by the network, in accordance with an embodiment of the present disclosure.
[0065] The computing system 400 includes a network 402, a network interface 404, a processor 406 (similar in functionality to the processing circuitry 140 of FIG. 2), an Input/Output (I/O) interface 408 and a non-transitory computer readable storage medium 410 (hereinafter may also be referred to as the “storage medium 410” or the “storage media 410”).
[0066] The network interface 404 includes wireless network interfaces such as Bluetooth, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), General Packet Radio Service (GPRS), or Wideband Code Division Multiple Access (WCDMA) or wired network interfaces such as Ethernet, Universal Serial Bus (USB), or Institute of Electrical and Electronics Engineers-864 (IEEE-864).
[0067] The processor 406 may include various processing circuitry and communicate with the storage medium 410 and the I/O interface 408. The processor 406 is configured to execute instructions stored in the storage medium 410 and to perform various processes. The processor 406 may include an intelligent hardware device including a general-purpose processor, such as, for example, and without limitation, the CPU, the AP, the dedicated processor, or the like, the graphics-only processing unit such as the GPU, the microcontroller, the FPGA, the programmable logic device, the discrete hardware component, or any combination thereof. The processor 406 may be configured to execute computer-readable instructions 410-1 stored in the storage medium 410 to cause the server 130 to perform various functions.
[0068] The storage medium 410 stores a set of instructions i.e., computer program instructions 410-1 (hereinafter may also be referred to as instructions 410-1) required by the processor 406 for controlling its overall operations.
[0069] The storage media 410 may include an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, or the like. For example, the storage media 410 may include, but are not limited to, hard drives, floppy diskettes, optical disks, ROMs, RAMs, EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of physical media suitable for storing electronic instructions. In one or more embodiments, the storage media 410 includes a Compact Disk-Read Only Memory (CD-ROM), a Compact Disk-Read/Write (CD-R/W), and/or a Digital Video Disc (DVD).
[0070] In one or more implementations, the storage medium 410 stores computer program code configured to cause the computing system 400 to perform at least a portion of the processes and/or methods. Accordingly, in at least one implementation, the computing system 400 performs the method for identifying the optimal video resolution supported by the network.
[0071] Embodiments of the present disclosure have been described above with reference to flowchart illustrations of methods and systems according to embodiments of the disclosure, 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 method.
[0072] 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 memory 144 or the storage medium 410) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions 410-1 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).
[0073] 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 processing circuitry 140 or the processor 406) to perform one or more functions as described herein. The instructions 410-1 may also be stored remotely such as on a server, or all or a portion of the instructions can be stored locally and remotely.
[0074] Now, referring to the technical abilities and advantageous effect of the present disclosure, the one or more embodiments provides various operational advantages described below. The system and the method disclosed herein describes methodology for identifying the optimal video resolution supported by the network by reiteratively switching the streaming of the video to multiple resolution levels until the occurrence of the buffering event during the streaming of the video, which ensures that the users may enjoy optimal video streaming experiences without the buffering specific to their network capabilities. As a result, overall user satisfaction and engagement during the video playback or consuming any media content can be enhanced.
[0075] The system and the method disclosed herein provides suggestion to the users on the optimal video quality so that the users may switch to a video resolution supported by their network. Thus, a consistent video quality across different devices and the network conditions can be ensured.
[0076] Further, the system employs an iterative resolution testing approach, starting from the highest achievable quality, and progressively increasing the resolution until the buffering occurs. This intelligent mechanism ensures the most efficient use of available bandwidth, optimizing video playback without user intervention. Furthermore, the system helps in ensuring that the bandwidth is neither underutilized nor overutilized. Instead of streaming at a fixed resolution that may be too low (wasting potential quality) or too high (causing the buffering), the system finds the optimal resolution dynamically, leading to efficient data consumption.
[0077] 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 invention. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.
[0078] 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.
[0079] 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
[0080] 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 - Network environment
110 - User device
110-1 - User Interface (UI)
110-2 - Communication unit
120 - Network
130 - Server
140 - Processing circuitry
142 - Communication interface
144 - Memory
150 - Database
202-1 - Receiving module
202-2 -Video processing module
202-3 - Determination module
202-4 - Identification module
204 - I/O Interface
206 - First communication bus
208 - Second communication bus
300 - Method for identifying optimal video resolution
302-316 - Operation steps to perform the method 300
400 - Computing system
402 - Network
404 - Network Interface
406 - Processor
408 - I/O Interface 408
410 - Non-transitory computer readable storage medium
410-1 – Instructions
,CLAIMS:We Claim:
1. A method (300) for identifying an optimal video resolution supported by a network, the method comprising:
receiving, by a receiving module (202-1), from a user device (110), an input for performing one or more video tests;
initiating, by a video processing module (202-2), in response to the input, streaming of a video utilizing an adaptive streaming for a first predetermined period;
determining, by a determination module (202-3), a first resolution achieved during the adaptive streaming of the video for the first predetermined period;
streaming, by the video processing module (202-2), the video at the first resolution for a second predetermined period;
determining, by the determination module (202-3), whether a buffering event occurs during the streaming of the video at the first resolution for the second predetermined period;
adjusting, by the video processing module (202-2), the streaming of the video to a second resolution higher than the first resolution based on a determination of an absence of an occurrence of the buffering event during the streaming of the video for the second predetermined period;
reiteratively switching, by the video processing module (202-2), the streaming of the video to multiple resolution levels higher than the second resolution until the occurrence of at least one buffering event is determined during the streaming of the video; and
identifying, by an identification module (202-4), as the optimal video resolution supported by the network, an immediate resolution lower than a resolution level where the at least one buffering event is occurred.
2. The method (300) as claimed in claim 1, wherein the determining the first resolution of the video achieved during the adaptive streaming of the video is based on the determination of the absence of the occurrence of the buffering event during the streaming of the video.
3. The method (300) as claimed in claim 1, wherein switching the streaming of the video to multiple resolution levels comprises increasing, by the video processing module (202-2), the resolution in a predetermined sequential order of video resolution levels.
4. The method (300) as claimed in claim 3, wherein the predetermined sequential order of the video resolution levels corresponds to an increasing order of the video resolution levels supported by the user device (110).
5. The method (300) as claimed in claim 1, further comprising controlling, by the video processing module (202-2), a User Interface (UI) (110-1) of the user device (110), to display the optimal video resolution supported by the network.
6. A system (130) for identifying an optimal video resolution supported by a network, the system (130) comprising:
a receiving module (202-1) configured to receive, from a user device (110), an input for performing one or more video tests;
a video processing module (202-2) configured to initiate, in response to the input, streaming of a video utilizing an adaptive streaming for a first predetermined period;
a determination module (202-3) configured to determine a first resolution achieved during the adaptive streaming of the video for the first predetermined period, wherein:
the video processing module (202-2) is further configured to stream the video at the first resolution for a second predetermined period,
the determination module (202-3) is further configured to determine whether a buffering event occurs during the streaming of the video at the first resolution for the second predetermined period, and
the video processing module (202-2) is further configured to:
adjust the streaming of the video to a second resolution higher than the first resolution based on a determination of an absence of an occurrence of the buffering event during the streaming of the video for the second predetermined period; and
reiteratively switch the streaming of the video to multiple resolution levels higher than the second resolution until the occurrence of at least one buffering event is determined during the streaming of the video; and
an identification module (202-4) configured to identify, as the optimal video resolution supported by the network, an immediate resolution lower than a resolution level where the at least one buffering event is occurred.
7. The system (130) as claimed in claim 6, wherein the determination module (202-3) is configured to determine the first resolution of the video achieved during the adaptive streaming of the video based on the determination of the absence of the occurrence of the buffering event during the streaming of the video.
8. The system (130) as claimed in claim 6, wherein, to switch the streaming of the video to multiple resolution levels, the video processing module (202-2) is configured to increase the resolution in a predetermined sequential order of video resolution levels.
9. The system (130) as claimed in claim 8, wherein the predetermined sequential order of the video resolution levels corresponds to an increasing order of the video resolution levels supported by the user device.
10. The system (130) as claimed in claim 6, wherein the video processing module (202-2) is further configured to control, a User Interface (UI) (110-1) of the user device (110), to display the optimal video resolution supported by the network.
| # | Name | Date |
|---|---|---|
| 1 | 202421026221-STATEMENT OF UNDERTAKING (FORM 3) [29-03-2024(online)].pdf | 2024-03-29 |
| 2 | 202421026221-PROVISIONAL SPECIFICATION [29-03-2024(online)].pdf | 2024-03-29 |
| 3 | 202421026221-POWER OF AUTHORITY [29-03-2024(online)].pdf | 2024-03-29 |
| 4 | 202421026221-FORM 1 [29-03-2024(online)].pdf | 2024-03-29 |
| 5 | 202421026221-DRAWINGS [29-03-2024(online)].pdf | 2024-03-29 |
| 6 | 202421026221-DECLARATION OF INVENTORSHIP (FORM 5) [29-03-2024(online)].pdf | 2024-03-29 |
| 7 | 202421026221-FORM-26 [17-04-2024(online)].pdf | 2024-04-17 |
| 8 | 202421026221-Proof of Right [09-08-2024(online)].pdf | 2024-08-09 |
| 9 | 202421026221-FORM 18 [18-02-2025(online)].pdf | 2025-02-18 |
| 10 | 202421026221-DRAWING [18-02-2025(online)].pdf | 2025-02-18 |
| 11 | 202421026221-CORRESPONDENCE-OTHERS [18-02-2025(online)].pdf | 2025-02-18 |
| 12 | 202421026221-COMPLETE SPECIFICATION [18-02-2025(online)].pdf | 2025-02-18 |
| 13 | 202421026221-Request Letter-Correspondence [26-02-2025(online)].pdf | 2025-02-26 |
| 14 | 202421026221-Power of Attorney [26-02-2025(online)].pdf | 2025-02-26 |
| 15 | 202421026221-Form 1 (Submitted on date of filing) [26-02-2025(online)].pdf | 2025-02-26 |
| 16 | 202421026221-Covering Letter [26-02-2025(online)].pdf | 2025-02-26 |
| 17 | Abstract.jpg | 2025-04-02 |