Self-adaptive code rate adjustment method based on congestion data and related equipment

By using fine-grained congestion control strategies in video streaming, dynamically adjusting the video stream transmission rate, the problem of inaccurate response delay and rate adjustment of network fluctuations in the prior art is solved, and the bandwidth utilization and user experience of video streaming are improved.

CN120017883APending Publication Date: 2025-05-16BEIJING UNIV OF POSTS & TELECOMM
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510003150.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-02
Publication Date
2025-05-16

AI Technical Summary

Technical Problem

The adaptive bit rate algorithm for existing video streaming uses coarse-grained feedback signals, resulting in delay response to network fluctuations and inaccurate rate adjustments, resulting in reduced bandwidth utilization, repeated buffering and waste of resources, thereby reducing video quality and user experience.

Method used

By capturing the congestion control information in the transport layer of the server, identifying the server kernel information, matching congestion event, determining the congestion variables and congestion adjustment strategies, including the congestion state function and the congestion window adjustment function, dynamically adjusting the video stream transmission rate, and transmitting the information to the client, assisting the client's ABR algorithm to determine the download time of the video stream.

Benefits of technology

It realizes fine-grained feedback on the network environment, timely perceives the network situation, dynamically adjusts the video stream transmission rate, avoids poor buffer quality and repeated buffering problems caused by congestion, and improves video quality and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120017883A_ABST
    Figure CN120017883A_ABST
Patent Text Reader

Abstract

The invention provides a congestion data-based adaptive code rate adjustment method and related equipment. The method comprises the following steps: acquiring congestion control information in a transmission layer of a server by using a capture function; kernel information and congestion control information of the server are identified, congestion event matching is carried out on the congestion control information, a congestion variable and a congestion adjustment strategy of a congestion event are determined, and the congestion adjustment strategy comprises a congestion state function and a congestion window adjustment function; determining a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determining a video stream sending rate corresponding to the congestion event of the server according to the calling function; and receiving the congestion event by using the client, and determining the time of downloading the video stream corresponding to the congestion event according to the sending rate. Fine-grained congestion events of a network environment are fed back by using a congestion state function and a call function in a server to assist a decision of a preset bit rate empty nose disease algorithm of a client, and the performance and efficiency of video stream transmission corresponding to the congestion events are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to an adaptive code rate adjustment method based on congestion data and related equipment. Background Art

[0002] With the rapid development of mobile Internet, video streaming services have been widely used in various fields, such as online education, e-commerce, games, entertainment, etc. The characteristics of video streaming services are high real-time requirements and users are sensitive to video quality and playback smoothness. In order to support high-quality playback under various dynamic network conditions, service providers have applied adaptive streaming protocols injected into HLS and DASH. The video client is not inferior to ABR (adaptive bitrate algorithm). The adaptive bitrate algorithm generated by the video stream is one of the key technologies of live streaming services. It needs to dynamically adjust the bit rate of the sender according to the network conditions to achieve the best video quality and user experience.

[0003] However, adaptive bitrate algorithms for video streaming face many challenges, one of which is that most existing algorithms inject application-layer statistics such as download time, buffer occupancy, and latency, as well as transmission statistics such as congestion window and round-trip time as input signals. Such coarse-grained feedback signals can lead to delayed responses to sudden network fluctuations, inaccurate rate adjustments to different network conditions, and thus reduced bandwidth utilization, repeated buffering, and waste of resources, which degrades video quality and user experience. Summary of the invention

[0004] In view of this, the purpose of the present application is to propose an adaptive code rate adjustment method based on congestion data and related devices that overcome the above problems or at least partially solve the above problems.

[0005] Based on the above purpose, the first aspect of the present application provides an adaptive bit rate adjustment method based on congestion data, including:

[0006] Use the capture function to obtain the congestion control information in the server's transport layer;

[0007] Identify the kernel information of the server and the congestion control information, perform congestion event matching on the congestion control information, and determine the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function;

[0008] Determine a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine a video stream sending rate corresponding to the congestion event of the server according to the calling function;

[0009] The congestion event is received by a client, and a time for downloading a video stream corresponding to the congestion event is determined according to the sending rate.

[0010] Optionally, identifying the congestion control information, performing congestion event matching on the congestion control information, and determining a congestion variable and a congestion adjustment strategy of the congestion event include:

[0011] Filtering the congestion state function, congestion window reduction function, algorithm update function and congestion avoidance function preset in the server kernel as the congestion adjustment strategy;

[0012] Filtering the current congestion window value, the previous maximum congestion window, the congestion threshold and the congestion event round trip time in the server kernel as the congestion variable;

[0013] Determining the number of congestion events in the congestion control information, and dynamically creating a buffer according to the number of congestion events;

[0014] Extract the flow ID from the struct sock*sk in the capture function, match the congestion event using the flow ID, and store the flow ID, congestion time, congestion variable and congestion adjustment strategy in the same buffer.

[0015] Optionally, before determining the calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, the method includes:

[0016] The congestion state transition is monitored by the kernel of the server, and the calling function is started in response to the congestion state transition.

[0017] Optionally, the calling function includes a first calling function and a second calling function;

[0018] Determining the calling function of the congestion window according to the variables used and the congestion adjustment strategy, and determining the data packet sending rate of the server according to the calling function, comprises:

[0019] The first calling function is started, and the current congestion state is determined according to the congestion state function and a preset congestion control algorithm;

[0020] Determining, according to the current congestion state, execution of a congestion window reduction function or a congestion avoidance function;

[0021] In response to the execution of the congestion avoidance function, the congestion window is increased, and the second calling function is started to update the congestion avoidance function according to the increased congestion window and the algorithm update function;

[0022] The sending rate of the congestion event is determined according to the updated congestion avoidance function.

[0023] Optionally, the method further includes:

[0024] In response to the execution of the congestion window reduction function, the congestion window reduction function is canceled, and the sending rate of the congestion event is determined using the current congestion window number.

[0025] Optionally, in response to the execution of the congestion avoidance function, the congestion window is increased, and the second calling function is started, and the congestion control algorithm is updated according to the increased congestion window and the algorithm update function, and further includes:

[0026] In response to the increase of the congestion window, the corresponding congestion event is marked, and the marked congestion event is sent to the client.

[0027] Optionally, the using a client to receive the congestion event and determining a time to download the data packet according to the sending rate includes:

[0028] Using the congestion event marked by the client, determine the rate at which the client receives the congestion event according to the increased number of congestion windows and the round trip time of the congestion event;

[0029] Determining a download time of the congestion event according to the rate;

[0030] According to the download time, the bit rate within the download time is determined using an adaptive bit rate algorithm preset by the client, and the downloaded congestion event is stored in a target format.

[0031] In a second aspect of the present application, there is provided an adaptive bit rate adjustment device based on congestion data, comprising:

[0032] An acquisition module, used for acquiring congestion control information in the transport layer of the server by using a capture function;

[0033] A congestion event module, used for identifying the kernel information of the server and the congestion control information, performing congestion event matching on the congestion control information, and determining the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function;

[0034] A congestion processing module, used to determine a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine a video stream sending rate corresponding to the congestion event of the server according to the calling function;

[0035] The download module is used to receive the congestion event by using the client, and determine the time to download the video stream corresponding to the congestion event according to the sending rate.

[0036] According to a third aspect of the present application, an electronic device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the method described in the first aspect is implemented.

[0037] According to a fourth aspect of the present application, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores computer instructions, wherein the computer instructions are used to enable a computer to execute the method described in the first aspect.

[0038] From the above, it can be seen that the adaptive bit rate adjustment method based on congestion data and related equipment provided by the present application use the congestion status function and call function in the server to realize fine-grained feedback on the network environment, that is, by perceiving the congestion control process inside the server, obtaining and processing the congestion control information of the transport layer on the server side, and instantly perceiving the network situation, adjusting the number of congestion windows through the congestion status function and the call function, thereby determining the sending rate of the video stream corresponding to the congestion event, and transmitting this information to the client in a timely manner, assisting the client's ABR (adaptive bit rate algorithm) to determine the download time of the video stream corresponding to the congestion event. Avoid the problem that the client cannot effectively buffer the video stream corresponding to the congestion event due to congestion, or the video stream buffering quality corresponding to the congestion event is poor and repeated buffering.

[0039] The above description is only an overview of the technical solution of the present invention. In order to more clearly understand the technical means of the present invention, it can be implemented according to the contents of the specification. In order to make the above and other purposes, features and advantages of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] In order to more clearly illustrate the technical solutions in the present application or related technologies, the drawings required for use in the embodiments or related technical descriptions are briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0041] Figure 1 Flow chart of an adaptive bit rate adjustment method 100 based on congestion data according to an embodiment of the present application;

[0042] Figure 2 A logic diagram of a calling function according to an embodiment of the present application;

[0043] Figure 3 A schematic diagram of an application scenario of the method for adaptive bit rate adjustment based on congested data according to an embodiment of the present application;

[0044] Figure 4 A schematic diagram of an adaptive bit rate adjustment device based on congestion data according to an embodiment of the present application;

[0045] Figure 5 A schematic diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0046] In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.

[0047] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the embodiments of the present application should be the usual meanings understood by people with ordinary skills in the field to which the present application belongs. The "first", "second" and similar words used in the embodiments of the present application do not represent any order, quantity or importance, but are only used to distinguish different components. "Including" or "comprising" and similar words mean that the elements or objects appearing in front of the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0048] As described in the above background technology, congestion control algorithms in related technologies such as Cubic and Reno are blind in bandwidth detection. Coarse-grained feedback signals will lead to delayed response to sudden network fluctuations. Inaccurate transmission rate adjustment for different network conditions will lead to reduced bandwidth utilization, repeated buffering and waste of resources, which will reduce video quality and user experience.

[0049] In order to solve the limitations of congestion control algorithms in related technologies in live video streaming transmission in mobile network environments and improve the quality of live video and user viewing experience, it is necessary to perceive network changes from more fine-grained feedback signals and achieve better data transmission performance by perceiving the congestion control process.

[0050] Based on this, an adaptive bit rate adjustment method 100 based on congestion data is proposed in an embodiment of the present application. The method uses a capture function to obtain congestion control information in the transport layer of a server; identifies the kernel information of the server and the congestion control information, matches the congestion control information with a congestion event, and determines the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function; determines a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determines a video stream sending rate corresponding to the congestion event of the server according to the calling function; receives the congestion event by a client, and determines a time to download the video stream corresponding to the congestion event according to the sending rate. The fine-grained feedback of the network environment is realized by using the congestion status function and calling function in the server, that is, by perceiving the congestion control process inside the server, obtaining and processing the congestion control information of the transport layer on the server side, and instantly perceiving the network situation. The number of congestion windows is adjusted through the congestion status function and calling function, thereby determining the sending rate of the video stream corresponding to the congestion event, and transmitting this information to the client in a timely manner. The client's ABR (adaptive bit rate algorithm) determines the download time of the video stream corresponding to the congestion event based on the information. This avoids the problem that the client cannot effectively buffer the video stream corresponding to the congestion event due to congestion, or the video stream buffering quality corresponding to the congestion event is poor and repeated buffering.

[0051] refer to Figure 1 As shown, an adaptive bitrate adjustment method 100 based on data provided by an embodiment of the present application begins at step S100, and uses a capture function to obtain congestion control information in the transport layer of the server. In this step, by accepting the Http live broadcast request of the client, the HttpRequest congestion control information transmitted in the transport layer of the server is captured to determine the current congestion statistics. Here, congestion control information is a general term for all transmitted data.

[0052] It should be noted that when a client sends a request to a server, one server generally corresponds to multiple clients. Therefore, all requests responded to by the server are transmitted through the transport layer, that is, transmitted in the same congestion event pipeline. Therefore, it is necessary to capture the congestion control information caused by all responses in the transport layer.

[0053] Then in step S200, the kernel information and congestion control information of the server are identified, the congestion control information is matched with the congestion event, and the congestion variable and congestion adjustment strategy of the congestion event are determined.

[0054] For requests from different clients, all data are transmitted at the transport layer. Accordingly, it is necessary to match congestion events with data sent from different clients, that is, congestion control information, so that the congestion event corresponds to the client that issued the response request. At the same time, the server kernel, that is, the hardware parameters, are filtered to determine the congestion variables and congestion adjustment strategies of the server kernel, and determine the congestion situation of the corresponding congestion event.

[0055] Specifically, in step 200, the congestion state function, congestion window reduction function, algorithm update function and congestion avoidance function preset in the kernel of the filtering server are the congestion adjustment strategy wnd_set.

[0056] In this step, the congestion state function is determined by the preset set_ca_state function, and the congestion window reduction function, algorithm update function and congestion avoidance function are determined by cwnd_reduction, bic_update and cong_avoid_ai respectively. By determining the congestion state function and the congestion adjustment strategy, the current congestion state and window change trend can be understood. The congestion state function determines whether the current state is congested, and increases the congestion window to transmit the congestion event after determining whether the congestion is congested, or reduces the congestion window if no congestion occurs.

[0057] Next, the current congestion window value, the previous maximum congestion window, the congestion threshold, and the congestion event round trip time in the kernel of the filtering server are used as the congestion variable cc_var.

[0058] In this step, the congestion variable is determined. The congestion variable, as a variable that affects the congestion window, needs to be determined here, and also provides a basis for calculating the subsequent transmission rate.

[0059] Then, the number of congestion events in the congestion control information is determined, and a corresponding buffer is dynamically created according to the number of congestion events.

[0060] For a congestion event, it corresponds to a corresponding client request. Different congestion events correspond to different clients. A buffer corresponding to the congestion event is dynamically created to facilitate the storage of the congestion event and avoid the loss of the event due to congestion, thereby failing to transmit the corresponding content to the client.

[0061] Finally, the flow ID is extracted from the struct sock*sk in the capture function, the congestion event is matched using the flow ID, and the flow ID, congestion time, congestion variable and congestion adjustment strategy are stored in the same buffer.

[0062] By matching the flow ID with the congestion event, the corresponding congestion event is matched with the data flow, and accordingly, the congestion event is matched with the associated client to avoid the congestion event being unable to be associated with the corresponding client, thereby causing data flow transmission errors. The congestion variables and congestion adjustment strategies are stored in the same buffer as the congestion events, which facilitates the subsequent control of the congestion window, thereby achieving control of the transmission rate.

[0063] Then in step 300, a calling function of the congestion event is determined according to the congestion variable and the congestion adjustment strategy, and a video stream sending rate corresponding to the congestion event is determined according to the calling function.

[0064] Before step 300, the server's kernel monitors the state transition, and the calling function is started according to the switch.

[0065] In the tcp_input.c file, the ACK state machine is used to control the transition of the congestion state. Therefore, it is necessary to use the server's kernel to monitor ACK. Once the kernel receives ACK, it enters the calling function.

[0066] In some embodiments, the calling function includes a first calling function and a second calling function. For different congestion events, the first calling function or the second calling function is called to implement congestion control.

[0067] Specifically, refer to Figure 2 As shown, step S300 includes starting the first calling function and determining the current congestion state according to the congestion state function and a preset congestion control algorithm.

[0068] The first calling function is the tcp_input.c function, which uses the congestion state function set_ca_state and the preset congestion control algorithm self / cong_control to analyze the congestion event of tcp_cong_control to confirm the current congestion state, that is, whether the congestion event causes congestion.

[0069] According to the current congestion state, it is determined whether a congestion window reduction function or a congestion avoidance function is executed.

[0070] according to Figure 2 As shown, the congestion window reduction function cwnd_reduction or the congestion avoidance function cong_avoid is executed. Accordingly, the congestion window reduction function reduces the congestion window, namely Reduce CWND, and the congestion avoidance function increases the congestion window, namely Increase DWND. When the current congestion event is in a congested state, more congestion windows increase the data stream or video stream corresponding to the congestion event for transmission.

[0071] In response to the execution of the congestion avoidance function, the congestion window is increased, and the second calling function is started to update the congestion avoidance function according to the increased congestion window and the algorithm updating function.

[0072] When the congestion window increases, the algorithm update function bic_update is used to update the congestion algorithm, and the new congestion avoidance function cong_acoid_ai is modified accordingly to adapt to the congestion event.

[0073] The sending rate of the congestion event is determined according to the updated congestion avoidance function.

[0074] Finally, according to the updated congestion avoidance function, the sending rate of the corresponding congestion event to the associated client at the transport layer is determined, that is, update_pacing_rate.

[0075] In this embodiment, the congestion event is confirmed as a congestion state, and a transmission channel is provided by increasing the congestion window. Then, the second calling function is started to update the congestion avoidance function, that is, the number of congestion windows corresponding to the congestion event is the state after increasing the congestion window. Finally, the updated congestion avoidance function is used to determine the sending rate of the video stream or data stream corresponding to the congestion event.

[0076] It is understandable that the updated congestion avoidance function will transmit with a new congestion window when the congestion event occurs again, and when the function is called again, it is decided whether to increase the congestion window based on the updated congestion avoidance function.

[0077] In some embodiments, in response to the congestion window reduction function being executed, the congestion window reduction function is canceled, and the sending rate of the congestion event is determined using the current congestion window number.

[0078] refer to Figure 2 As shown in the figure, when the congestion window reduction function is executed, the congestion window needs to be reduced, which means that the congestion state of the current congestion event is normal and does not cause congestion. The more congestion windows there are, the higher the transmission efficiency and the faster the sending rate. Cancel the reduction is used to cancel the congestion window reduction function.

[0079] Furthermore, the congestion window reduction function can also further reduce the misjudgment of the congestion status of congestion events.

[0080] In some embodiments, in response to the congestion window increasing, the corresponding congestion event is marked, and the marked congestion event is sent to the client.

[0081] By marking the congestion event, after receiving the congestion event, the client's congestion event listener can identify the mark, thereby facilitating the client to download according to the sending rate of the congestion event on the server side. In other words, the download time of the video stream or video stream segment of the congestion event is determined according to the change of the congestion state of the congestion event on the server side.

[0082] For unmarked congestion events, the congestion state on the server side is considered to be non-congested, and the video stream of the congestion event is downloaded at a normal download speed.

[0083] Then, the process proceeds to step S400, where a congestion event is received by the client, and a time for downloading a video stream corresponding to the congestion event is determined according to the sending rate.

[0084] Specifically, the congestion event marked by the client is received, and the rate at which the client receives the congestion event is determined according to the increased number of congestion windows and the round trip time of the congestion event.

[0085] The throughput of the video stream or video stream fragment transmitting the congestion event is determined according to the increased number of congestion windows, and the time from the client to the server to send the request is determined according to the round-trip time of the congestion event (i.e., the congestion variable). The ratio of the two can be used to determine the acceptance rate of the video stream or video stream fragment of the congestion event.

[0086] Determining the download duration of the congestion event according to the rate;

[0087] According to the download time, the bit rate within the download time is determined using an adaptive bit rate algorithm preset by the client, and the downloaded congestion event is stored in a target format.

[0088] When the download rate and download time are determined, the bit rate within the corresponding download time is calculated through an adaptive bit rate algorithm, thereby determining the corresponding download time and ensuring the quality of the video stream.

[0089] In some optional embodiments, the downloaded congestion events are stored in the form of a JSON table. When the congestion event corresponds to a video stream segment, multiple video stream segments are downloaded in sequence to form a video stream and stored in the form of a JSON table to facilitate calling and avoid sequence errors.

[0090] It should be noted that the method of the embodiment of the present application can be performed by a single device, such as a computer or server. The method of this embodiment can also be applied to a distributed scenario and completed by multiple devices cooperating with each other. In the case of such a distributed scenario, one of the multiple devices can only perform one or more steps in the method of the embodiment of the present application, and the multiple devices will interact with each other to complete the described method.

[0091] It should be noted that the above describes some embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the above embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0092] Based on the same technical concept, corresponding to any of the above-mentioned embodiments and methods, the present application also provides an adaptive bit rate adjustment device based on congestion data,

[0093] refer to Figure 4 , the adaptive bit rate adjustment device based on congestion data comprises:

[0094] An acquisition module 401 is used to acquire congestion control information in a server network card using a capture function;

[0095] A congestion event module 402 is used to identify the kernel information of the server and the congestion control information, perform congestion event matching on the congestion control information, and determine the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function;

[0096] The congestion processing module 403 is used to determine the calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine the video stream sending rate corresponding to the congestion event of the server according to the calling function;

[0097] The download module 404 is configured to receive the congestion event by using a client, and determine a time to download the video stream corresponding to the congestion event according to the sending rate.

[0098] For the convenience of description, the above device is described in terms of functions divided into various modules. Of course, when implementing the present application, the functions of each module can be implemented in the same or multiple software and / or hardware.

[0099] The device of the above embodiment is used to implement the corresponding adaptive code rate adjustment method based on congestion data in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be repeated here.

[0100] In some optional embodiments, based on the same technical concept, corresponding to any of the above-mentioned embodiments, the present application also provides an adaptive bit rate adjustment system based on congestion data. Figure 3 , Figure 3 ] A schematic diagram of an application scenario of the adaptive bit rate adjustment method based on congestion data in an embodiment of the present application is shown, wherein the adaptive bit rate adjustment method based on congestion data is applied to the adaptive bit rate adjustment system based on congestion data.

[0101] The adaptive bit rate adjustment system based on congestion data includes:

[0102] A server and a client, wherein the server comprises an acquisition module 401, a congestion event module 402 and a congestion processing module 403;

[0103] The acquisition module 401 is used to acquire the congestion control information in the server network card by using a capture function.

[0104] Specifically, refer to Figure 3 As shown, the acquisition module receives the Http live broadcast request from the client, captures the HttpRequest congestion control information transmitted in the transport layer of the server, and determines the current congestion statistics.

[0105] The congestion event module 402 is used to identify the kernel information of the server and the congestion control information, match the congestion control information with the congestion event, and determine the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function.

[0106] Specifically, refer to Figure 3 As shown, the congestion event module dynamically creates a buffer according to the number of congestion events in the transport layer of the server, that is, the number of congestion events in the congestion time pipe, and stores the same congestion event in the buffer to ensure that the video stream or video stream segment of the congestion event is consistent with the associated client. In addition, the congestion variables and congestion adjustment strategies of the kernel of the filtering server are also implemented.

[0107] The congestion processing module 403 is used to determine the calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine the video stream sending rate corresponding to the congestion event of the server according to the calling function.

[0108] Specifically, refer to Figure 3As shown, the congestion processing module adjusts the congestion window of the congestion event by calling a function according to the congestion variable, the congestion adjustment strategy and the congestion event, thereby realizing congestion control.

[0109] The client comprises a downloading module 404, which is used to receive the congestion event by using the client, and determine the time to download the video stream corresponding to the congestion event according to the sending rate.

[0110] Specifically, the client receives a congestion event, and according to the corresponding sending rate, uses a preset ABR to determine the download time of the video stream corresponding to the congestion event and adjusts its bit rate to ensure the quality of the video stream.

[0111] Based on the same technical concept, corresponding to any of the above-mentioned embodiments and methods, the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the adaptive bit rate adjustment method based on congestion data described in any of the above embodiments is implemented.

[0112] Figure 5 A more specific schematic diagram of the hardware structure of an electronic device provided in this embodiment is shown, and the device may include: a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. The processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040 are connected to each other through the bus 1050 in the device.

[0113] The processor 1010 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.

[0114] The memory 1020 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 1020 may store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program codes are stored in the memory 1020 and are called and executed by the processor 1010.

[0115] The input / output interface 1030 is used to connect the input / output module to realize information input and output. The input / output module can be configured in the device as a component (not shown in the figure), or it can be externally connected to the device to provide corresponding functions. The input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and the output device may include a display, a speaker, a vibrator, an indicator light, etc.

[0116] The communication interface 1040 is used to connect a communication module (not shown) to realize communication interaction between the device and other devices. The communication module can realize communication through a wired mode (such as USB, network cable, etc.) or a wireless mode (such as mobile network, WIFI, Bluetooth, etc.).

[0117] The bus 1050 includes a path that transmits information between the various components of the device (eg, the processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040).

[0118] It should be noted that, although the above device only shows the processor 1010, the memory 1020, the input / output interface 1030, the communication interface 1040 and the bus 1050, in the specific implementation process, the device may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the above device may also only include the components necessary for implementing the embodiments of the present specification, and does not necessarily include all the components shown in the figure.

[0119] The electronic device of the above embodiment is used to implement the corresponding adaptive bit rate adjustment method based on congestion data in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be repeated here.

[0120] Based on the same technical concept, corresponding to any of the above-mentioned embodiment methods, the present application also provides a non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores computer instructions, and the computer instructions are used to enable the computer to execute the adaptive bit rate adjustment method based on congestion data as described in any of the above embodiments.

[0121] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.

[0122] The computer instructions stored in the storage medium of the above embodiment are used to enable the computer to execute the adaptive bit rate adjustment method based on congestion data as described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0123] Based on the same inventive concept, corresponding to the adaptive bit rate adjustment method based on congestion data described in any of the above embodiments, the present disclosure also provides a computer program product, which includes computer program instructions. In some embodiments, the computer program instructions can be executed by one or more processors of a computer so that the computer and / or the processor execute the adaptive bit rate adjustment method based on congestion data. Corresponding to the execution subject corresponding to each step in each embodiment of the adaptive bit rate adjustment method based on congestion data, the processor that executes the corresponding step may belong to the corresponding execution subject.

[0124] The computer program product of the above embodiment is used to enable the computer and / or the processor to execute the adaptive bit rate adjustment method based on congestion data as described in any of the above embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0125] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present application (including the claims) is limited to these examples. In line with the concept of the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the embodiments of the present application as described above, which are not provided in detail for the sake of simplicity.

[0126] In addition, to simplify the description and discussion, and in order not to make the embodiments of the present application difficult to understand, the known power supply / ground connection with the integrated circuit (IC) chip and other components may or may not be shown in the provided drawings. In addition, the device can be shown in the form of a block diagram to avoid making the embodiments of the present application difficult to understand, and this also takes into account the fact that the details of the implementation of these block diagram devices are highly dependent on the platform to be implemented in the embodiments of the present application (that is, these details should be fully within the scope of understanding of those skilled in the art). In the case of elaborating specific details (e.g., circuits) to describe exemplary embodiments of the present application, it is obvious to those skilled in the art that the embodiments of the present application can be implemented without these specific details or when these specific details are changed. Therefore, these descriptions should be considered to be illustrative rather than restrictive.

[0127] Although the present application has been described in conjunction with specific embodiments of the present application, many replacements, modifications and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may use the embodiments discussed.

[0128] The embodiments of the present application are intended to cover all such substitutions, modifications and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present application should be included in the scope of protection of the present application.

Claims

1. An adaptive bit rate adjustment method based on congestion data, characterized in that: include: Use the capture function to obtain the congestion control information in the server's transport layer; Identify the kernel information of the server and the congestion control information, perform congestion event matching on the congestion control information, and determine the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function; Determine a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine a video stream sending rate corresponding to the congestion event of the server according to the calling function; The congestion event is received by a client, and a time for downloading a video stream corresponding to the congestion event is determined according to the sending rate.

2. The method according to claim 1, characterized in that Identifying the congestion control information, performing congestion event matching on the congestion control information, and determining a congestion variable and a congestion adjustment strategy of the congestion event, including: Filtering the congestion state function, congestion window reduction function, algorithm update function and congestion avoidance function preset in the server kernel as the congestion adjustment strategy; Filtering the current congestion window value, the previous maximum congestion window, the congestion threshold and the congestion event round trip time in the server kernel as the congestion variable; Determining the number of congestion events in the congestion control information, and dynamically creating a buffer according to the number of congestion events; Extract the flow ID from the struct sock*sk in the capture function, match the congestion event using the flow ID, and store the flow ID, congestion time, congestion variable and congestion adjustment strategy in the same buffer.

3. The method according to claim 2, characterized in that Determining a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, before that, comprising: The congestion state transition is monitored by the kernel of the server, and the calling function is started in response to the congestion state transition.

4. The method according to claim 2, characterized in that: The calling function includes a first calling function and a second calling function; Determining the calling function of the congestion window according to the variables used and the congestion adjustment strategy, and determining the data packet sending rate of the server according to the calling function, comprises: The first calling function is started, and the current congestion state is determined according to the congestion state function and a preset congestion control algorithm; Determining, according to the current congestion state, execution of a congestion window reduction function or a congestion avoidance function; In response to the execution of the congestion avoidance function, the congestion window is increased, and the second calling function is started to update the congestion avoidance function according to the increased congestion window and the algorithm update function; The sending rate of the congestion event is determined according to the updated congestion avoidance function.

5. The method according to claim 4, characterized in that The method further comprises: In response to the execution of the congestion window reduction function, the congestion window reduction function is canceled, and the sending rate of the congestion event is determined using the current congestion window number.

6. The method according to claim 4, characterized in that In response to the execution of the congestion avoidance function, the congestion window is increased, and the second calling function is started, and the congestion control algorithm is updated according to the increased congestion window and the algorithm update function, and further includes: In response to the increase of the congestion window, the corresponding congestion event is marked, and the marked congestion event is sent to the client.

7. The method according to claim 6, characterized in that The utilizing a client to receive the congestion event and determining a time to download the data packet according to the sending rate includes: Using the congestion event marked by the client, determine the rate at which the client receives the congestion event according to the increased number of congestion windows and the round trip time of the congestion event; Determining a download time of the congestion event according to the rate; According to the download time, the bit rate within the download time is determined using an adaptive bit rate algorithm preset by the client, and the downloaded congestion event is stored in a target format.

8. An adaptive bit rate adjustment device based on congestion data, characterized in that: include: An acquisition module, used for acquiring congestion control information in the transport layer of the server by using a capture function; A congestion event module, used for identifying the kernel information of the server and the congestion control information, performing congestion event matching on the congestion control information, and determining the congestion variable and congestion adjustment strategy of the congestion event, wherein the congestion adjustment strategy includes a congestion state function and a congestion window adjustment function; A congestion processing module, used to determine a calling function of the congestion event according to the congestion variable and the congestion adjustment strategy, and determine a video stream sending rate corresponding to the congestion event of the server according to the calling function; The download module is used to receive the congestion event by using the client, and determine the time to download the video stream corresponding to the congestion event according to the sending rate.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the method according to any one of claims 1 to 7 is implemented.

10. A non-transitory computer-readable storage medium storing computer instructions, characterized in that: The computer instructions are used to enable a computer to execute the method according to any one of claims 1 to 7.