Session code rate determination method, apparatus, device, storage medium and program product

CN117714431BActive Publication Date: 2026-10-30GUANGZHOU BAIGUOYUAN NETWORK TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202311727595.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-12-14
Publication Date
2026-10-30
Estimated Expiration
2043-12-14

AI Technical Summary

Technical Problem

[0004]本申请实施例提供了一种会话码率确定方法、装置、设备、存储介质及程序产品,解决了最大配置码率无法精准适应于不同地区的网络建设情况进行配置的问题,实现了通过记录会话端之间的历史会话码率分布,学习基于会话端之间的多次历史会话数据所产生的码率概率分布,从而合理设置最大配置码率,将码率探测控制在历史稳定的码率范围内,有效降低用户会话过程中的拥塞次数和丢包数,提高会话质量,优化用户体验

Benefits of technology

[0018]第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的多链路数据传输方法。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117714431B_ABST
    Figure CN117714431B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a session code rate determination method and device, equipment, storage medium and program product. The method comprises: in the case of establishing a session communication with a peer device, obtaining an associated historical session code rate distribution and a currently configured maximum configured code rate; in the case that the historical session code rate distribution meets a centralized distribution condition, determining a target session code rate based on the historical session code rate distribution and the maximum configured code rate; and determining the target session code rate as the maximum configured code rate to control the code rate of the current session. In the above scheme, by recording the historical session code rate distribution between the session ends, learning the code rate probability distribution generated based on the multiple historical session data between the session ends, the code rate detection is controlled within the historically stable code rate range, the number of congestion and the number of packet loss in the user session process are effectively reduced, the session quality is improved, and the user experience is optimized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus, device, storage medium, and program product for determining session bitrate. Background Technology

[0002] With the development of network technologies such as 4G and 5G, real-time communication applications have received better technical support. Faced with the high demands of real-time communication applications on latency, throughput, and packet loss, and to ensure user experience quality, industry and academia have proposed a series of congestion control algorithms suitable for real-time communication scenarios, such as Google's BBR algorithm. The BBR algorithm incorporates a periodic bandwidth prediction mechanism to improve throughput. However, due to limitations in user terminal performance, regional network infrastructure, and data tariffs, frequent periodic probing or excessively high bandwidth probes can negatively impact user call quality. Therefore, during the bandwidth probing process of the congestion control algorithm, it is necessary to limit the predicted bandwidth results by setting a maximum configurable bitrate.

[0003] However, in related technologies, the maximum configuration bitrate is usually set uniformly according to region or network type, which cannot be accurately adapted to the network construction situation in different regions. It is easy to cause the congestion control algorithm to over-probe due to excessive configuration, affecting the user's call quality, or the user cannot experience better call quality due to insufficient configuration. Summary of the Invention

[0004] This application provides a method, apparatus, device, storage medium, and program product for determining session bitrate. It solves the problem that the maximum configured bitrate cannot be accurately adapted to the network construction conditions in different regions. It achieves the ability to record the historical session bitrate distribution between session endpoints, learn the bitrate probability distribution generated by multiple historical session data between session endpoints, and thus reasonably set the maximum configured bitrate. This keeps the bitrate detection within a historically stable bitrate range, effectively reducing the number of congestion and packet loss during user sessions, improving session quality, and optimizing user experience.

[0005] In a first aspect, embodiments of this application provide a method for determining session bitrate, the method comprising:

[0006] When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate.

[0007] If the historical session bitrate distribution meets the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate.

[0008] The target session bitrate is set as the maximum configured bitrate to control the bitrate of the current session.

[0009] Secondly, embodiments of this application also provide a session bitrate determination apparatus, the apparatus comprising:

[0010] The acquisition module is configured to acquire the associated historical session bitrate distribution and the currently configured maximum bitrate when a session communication is established with the peer device.

[0011] The target bitrate determination module is configured to determine the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate, provided that the historical session bitrate distribution meets the centralized distribution condition.

[0012] The session bitrate control module is configured to determine the target session bitrate as the maximum configured bitrate in order to control the bitrate of the current session.

[0013] Thirdly, embodiments of this application also provide a session bitrate determination device, the device comprising:

[0014] One or more processors;

[0015] Storage device, configured to store one or more programs,

[0016] When the one or more programs are executed by the one or more processors, the one or more processors implement the session bitrate determination method described in the embodiments of this application.

[0017] Fourthly, embodiments of this application also provide a non-volatile storage medium for storing computer-executable instructions, which, when executed by a computer processor, are configured to perform the session bitrate determination method described in embodiments of this application.

[0018] Fifthly, embodiments of this application also provide a computer program product, which includes a computer program stored in a computer-readable storage medium. At least one processor of the device reads from the computer-readable storage medium and executes the computer program, causing the device to perform the multi-link data transmission method described in embodiments of this application.

[0019] In this embodiment, when establishing a session with the peer device, the associated historical session bitrate distribution and the currently configured maximum bitrate are obtained. If the historical session bitrate distribution meets the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate, and this target session bitrate is set as the maximum configured bitrate to control the bitrate of the current session. In the above scheme, by recording the historical session bitrate distribution between session endpoints, the probability distribution of bitrate generated based on multiple historical session data between session endpoints is learned. Through the set centralized bitrate distribution judgment conditions, the bitrate concentration area suitable for the regional network construction is accurately determined. Therefore, the maximum configured bitrate is reasonably updated based on the currently configured maximum bitrate, keeping the bitrate detection within a historically stable bitrate range, effectively reducing the number of congestion and packet loss events during user sessions, improving session quality, and optimizing user experience. Attached Figure Description

[0020] Figure 1 A flowchart illustrating a session bitrate determination method provided in this application embodiment;

[0021] Figure 2 A flowchart of a session bitrate determination method provided for embodiments of this application, including a process for adjusting the maximum configured bitrate based on bitrate concentration distribution conditions;

[0022] Figure 3 A flowchart of another session bitrate determination method provided for embodiments of this application, including a process for adjusting the maximum configured bitrate based on bitrate concentration distribution conditions;

[0023] Figure 4 A flowchart illustrating another session bitrate determination method provided in this application embodiment;

[0024] Figure 5 A flowchart illustrating a session bitrate determination method that includes a historical session bitrate distribution update process, provided for an embodiment of this application;

[0025] Figure 6 A flowchart illustrating a method for updating historical session bitrate distribution based on current session bitrate distribution, provided in an embodiment of this application;

[0026] Figure 7 A flowchart illustrating a session bitrate determination method that includes a historical session bitrate distribution update process, provided for an embodiment of this application;

[0027] Figure 8 A structural block diagram of a session bitrate determination device provided in an embodiment of this application;

[0028] Figure 9This is a schematic diagram of a session bitrate determination device provided in an embodiment of this application. Detailed Implementation

[0029] The embodiments of this application will be further described in detail below with reference to the accompanying drawings and examples. It should be understood that the specific embodiments described herein are merely illustrative of the embodiments of this application and are not intended to limit the scope of the embodiments. Furthermore, it should be noted that, for ease of description, only the parts relevant to the embodiments of this application are shown in the accompanying drawings, not the entire structure.

[0030] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and the number of objects is not limited; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0031] The session bitrate determination method provided in this application can be applied to real-time communication scenarios involving multiple terminals. Relevant application scenarios include online video conferencing, instant messaging, and audio / video calls. Taking instant messaging as an example, after establishing real-time communication, either terminal can apply this session bitrate determination method to reasonably adjust the maximum configured bitrate controlling the current transmission bitrate, thereby optimizing the user's communication experience. The aforementioned application scenarios are merely exemplary and illustrative. In practical applications, this session bitrate determination method can also be used in real-time communication in other scenarios, which this application does not limit.

[0032] Real-time communication applications have higher requirements for latency, throughput, and packet loss. To ensure user experience quality, congestion control algorithms suitable for real-time communication scenarios have emerged, such as Google's BBR algorithm. The BBR algorithm incorporates a periodic bandwidth estimation mechanism. Based on link latency and packet loss information, it judges the current network state and determines whether to continue increasing the bit rate to improve throughput. The timing and magnitude of this bit rate increase significantly impact the user's subsequent call experience. A large portion of real-time communication users experience poor network quality and low link bottlenecks. Frequent periodic probing can easily cause the bit rate to exceed the link's processing capacity, leading to network congestion and even packet loss and retransmission, thus affecting the user's call experience quality. Conversely, excessively high bandwidth probing can cause user terminals to overheat due to prolonged high load, or it can overload the link, further degrading network quality and causing mobile network users to consume excessive data in a short period. Due to limitations in equipment performance, regional network infrastructure, and traffic pricing, congestion control algorithms need to pre-set a maximum configured bitrate to limit the predicted bandwidth during bandwidth probing. Traditional methods for configuring the maximum configured bitrate are standardized based on region or network type, failing to achieve precise configuration. Setting it too high can lead to over-probing by the congestion control algorithm, while setting it too low can result in a subpar user experience. Furthermore, fixed configurations cannot keep pace with improvements in network infrastructure over time. Adjusting the maximum configured bitrate individually requires significant manpower and resources, while uniformly increasing the maximum configured bitrate can negatively impact areas with less developed network infrastructure. Therefore, the maximum configured bitrate needs to be customizable to adapt to different regional network conditions. This application aims to provide a session bitrate determination method that addresses the problem of the maximum configured bitrate failing to accurately adapt to varying regional network infrastructure.

[0033] The session bitrate determination method provided in this application embodiment can be executed by a computer device. The computer device refers to any electronic device with data computing, processing and storage capabilities, such as mobile phones, PCs (Personal Computers), tablet computers and other terminal devices, or servers and other devices. This application embodiment does not limit the scope of the method.

[0034] Figure 1 This application provides a flowchart of a session bitrate determination method, which can be applied to devices performing real-time communication, allowing devices to transmit session data to each other. Figure 1 As shown, it includes the following steps:

[0035] Step S101: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the current maximum configured bitrate.

[0036] In this embodiment, one of the devices conducting the session communication is described as the execution subject. Similarly, the peer device can perform similar steps to set the maximum configuration bitrate and control the real-time transmission bitrate. Optionally, the session bitrate determination method described above can be run separately for both the local device and the peer device to achieve real-time adjustment of the transmission bitrate of each device. That is, the session bitrate determination method of this application can be executed for either end.

[0037] In one embodiment, due to time and space limitations during continuous calls between two users, the data transmission links between them will be similar over a long period. Therefore, by continuously learning the bitrate distribution generated from historical sessions between users, and after learning from multiple historical sessions, a stable bitrate probability distribution between users can be obtained. Thus, the historical session bitrate distribution can be a bitrate probability density distribution obtained by learning from historical session bitrates. The historical session bitrate distribution can integrate multiple historical session bitrates using different processing methods. For example, multiple consecutive historical session bitrates can be unified into the same coordinate system, where the bitrate is on the horizontal axis and the frequency is on the vertical axis, thereby obtaining a continuous bitrate distribution within the historical bitrate range. For example, the historical session bitrate distribution can be configured to consist of multiple probability density buckets. Each bucket's size corresponds to a bitrate interval range, and each bucket records statistical values ​​of historical session bitrates falling within its corresponding bitrate range. For instance, the bitrate range corresponding to the historical session bitrate distribution could be 0-1 Mbps, and each bucket's size could be 50 Kbps. The probability density buckets can then be arranged in ascending order of their corresponding bitrate ranges. The first bucket might correspond to a bitrate range of 0-50 Kbps, the second bucket to 51 Kbps-100 Kbps, and so on. By using probability density buckets, continuous historical bitrate data can be converted into spatially finite, discrete bitrate distribution data. Of course, other implementations for generating corresponding bitrate probability density distributions based on historical session bitrates are possible, and this application does not impose any limitations on these methods.

[0038] In one embodiment, after establishing a session communication between the local device and the peer device, in order to reasonably configure the maximum configured bitrate, the local device can obtain the associated historical session bitrate distribution. This associated historical session bitrate distribution can be recorded during communication with the same peer device, or during communication with other devices within the same geographical area as the peer device, or it can be the average bitrate distribution corresponding to a pre-divided geographical area where the peer device is located. The specific geographical area setting and session count recording are not limited; any bitrate distribution learning that can adapt to the geographical network construction of both the local device and the peer device can be used as the historical session bitrate distribution in this embodiment.

[0039] In one embodiment, the currently configured maximum configuration code rate can be a uniformly configured up-limit code rate for the congestion control algorithm based on region or network type. Optionally, the size of the currently configured maximum configuration code rate can be adaptively set by the developers based on different congestion control algorithms and application environments. The local device can limit the up-limit code rate of the congestion control algorithm through the currently configured maximum configuration code rate.

[0040] Step S102: If the historical session bitrate distribution meets the centralized distribution condition, determine the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate.

[0041] The region where the historical session bitrate distribution is concentrated represents the optimization direction for the maximum configured bitrate. In scenarios where the maximum configured bitrate is higher than the network congestion point, the bitrate distribution will be more dispersed due to frequent attempts to exceed the network congestion point, or it may concentrate in a certain area due to performance constraints or limited backoff capability. Conversely, in scenarios where the maximum configured bitrate is lower than the network congestion point, the bitrate distribution will be concentrated near the maximum configured bitrate due to limitations. Therefore, bitrate concentration analysis can be performed on the learned historical session bitrate distribution to obtain the historical stable bitrate region that triggers the least network congestion. This concentration distribution condition can be used to determine whether a bitrate concentration region exists in the historical session bitrate distribution. This concentration distribution condition can be set differently based on different bitrate concentration situations in the historical session bitrate distribution. Taking a historical session bitrate distribution composed of multiple probability density buckets as an example, for determining whether there is a bitrate concentration range within the historical session bitrate distribution itself, this concentration distribution condition can be to determine whether there is a group of buckets in the historical session bitrate distribution that meets the set probability value condition. This group of buckets consists of multiple consecutive probability density buckets. For example, regarding determining whether the historical session bitrate distribution is concentrated close to or far from the currently configured maximum bitrate, this concentration condition can be the result of comparing a preset proportion of the currently configured maximum bitrate with the bitrate quantile of the historical session bitrate distribution. The specific numerical settings for this determination can be adaptively adjusted by developers according to different application scenarios, and this application does not impose any restrictions.

[0042] In one embodiment, the target session bitrate can be a target value of the maximum configured bitrate adapted to the conditions of concentrated bitrate distribution. This target session bitrate can be obtained by adjusting the currently configured maximum bitrate according to the satisfied concentrated distribution pattern to achieve a reasonable limit on the upward bitrate. Optionally, if a concentrated bitrate range is determined in the historical session bitrate distribution, it can be determined whether the currently configured maximum bitrate falls within this range. If the currently configured maximum bitrate falls within this range, it can be determined that the currently configured maximum bitrate is the target session bitrate. If the currently configured maximum bitrate does not fall within this range, a suitable bitrate can be selected from this range as the target session bitrate. For example, the bitrate value closest to the currently configured maximum bitrate can be selected, or a bitrate value at a specific proportional position can be selected; this application does not impose any limitations on this. Optionally, if it is determined that the historical session bitrate distribution contains a concentrated range close to the currently configured maximum bitrate, it can be considered that the current configured bitrate has room for improvement. The maximum configured bitrate can be increased by an appropriate proportion based on the current configured value to obtain a higher session bitrate and better session quality. Optionally, if it is determined that the historical session bitrate distribution is concentrated far from the current maximum configured bitrate, it can be considered that there is a risk of overprobing at the current configured bitrate. The maximum configured bitrate can be reduced by an appropriate proportion based on the current configured value to reduce unnecessary network congestion caused by overprobing and ensure session quality.

[0043] Step S103: Set the target session bitrate to the maximum configured bitrate to control the bitrate of the current session.

[0044] Specifically, the maximum configured bitrate can be updated based on the target session bitrate obtained from the historical session bitrate distribution and the currently configured maximum configured bitrate. Depending on the different congestion control algorithms set, the updated maximum configured bitrate is used as the limit value for the upward bitrate, and the sending bitrate of the current session is controlled in real time to make it conform to the network construction of the area, so as to provide users with stable and reliable session communication.

[0045] As described above, by establishing a session with the peer device, the associated historical session bitrate distribution and the currently configured maximum bitrate are obtained. If the historical session bitrate distribution meets the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate. This target session bitrate is then set as the maximum configured bitrate to control the bitrate of the current session. In this scheme, by recording the historical session bitrate distribution between session endpoints, the probability distribution of bitrate generated from multiple historical session data between session endpoints is learned. By setting centralized bitrate distribution judgment conditions, the bitrate concentration area suitable for the regional network construction is accurately determined. Therefore, the maximum configured bitrate is updated reasonably based on the currently configured maximum bitrate, keeping the bitrate detection within a historically stable bitrate range. This effectively reduces the number of congestion events and packet losses during user sessions, improves session quality, and optimizes user experience.

[0046] Figure 2 A flowchart of a session bitrate determination method provided in this application embodiment, including a process for adjusting the maximum configured bitrate based on a concentrated bitrate distribution condition, wherein the historical session bitrate distribution is constructed based on probability density buckets, such as... Figure 2 As shown, it includes the following steps:

[0047] Step S201: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate.

[0048] Step S202: If there is a group of buckets consisting of multiple consecutive probability density buckets in the historical session bitrate distribution, and the group of buckets meets the set probability value conditions, determine the target session bitrate within the bitrate range corresponding to the group of buckets.

[0049] Specifically, determining the existence of bucket clusters can help determine whether the historical session bitrate distribution is concentrated. A bucket cluster can consist of multiple consecutive probability density buckets. The bucket cluster must satisfy a set probability value condition, which is used to determine whether the combination of multiple consecutive probability density buckets conforms to the probability concentration of the bucket cluster. This probability value condition can be set based on the probability difference between adjacent buckets, the total probability value of the multiple consecutive probability density buckets, or a combination of both. Of course, other probability value condition settings reflecting the probability concentration of the bucket cluster are also possible, and this application does not impose any restrictions on them. Taking the probability difference between adjacent probability densities and the total probability value of multiple consecutive probability density buckets as an example, the probability condition that the bucket group needs to meet can be that the difference in statistical values ​​of adjacent probability density buckets of multiple consecutive probability density buckets is less than or equal to a preset difference, and the sum of the probability values ​​corresponding to the bucket group is greater than a preset probability value. By comparing the difference in statistical values ​​of each pair of probability density buckets with the preset difference, a combination of multiple consecutive probability density buckets with similar probability values ​​can be determined. At the same time, the percentage of the sum of the statistical values ​​corresponding to the combination of consecutive probability density buckets to the sum of the statistical values ​​of all probability density buckets can be compared with the preset probability value to determine the bucket group of the corresponding bit rate concentration area.

[0050] Optionally, after determining that a bucket group satisfying the centralized distribution condition exists, the target session bitrate can be determined within the bitrate range corresponding to the bucket group. The determination of the target session bitrate can be based on the currently configured maximum bitrate. For example, if the currently configured maximum bitrate is within the bitrate range corresponding to the bucket group, no adjustment to the maximum configured bitrate is necessary, or the target session bitrate can be set to a preset percentage point within that bitrate range, such as 3 / 4 or 2 / 3. Alternatively, if the currently configured maximum bitrate is not within the bitrate range corresponding to the bucket group, a bitrate close to the currently configured maximum bitrate can be selected from the bitrate range corresponding to the bucket group as the target session bitrate, or the target session bitrate can be set to a preset percentage point within that bitrate range. Of course, there are no specific restrictions on the selection of the target session bitrate; any selection method that satisfies the requirement of being within the bitrate range corresponding to the bucket group is within the scope of protection of this application.

[0051] Step S203: Set the target session bitrate to the maximum configured bitrate to control the bitrate of the current session.

[0052] Of course, the above-described construction of historical session bitrates and the corresponding bitrate value settings are illustrative examples. Replacements to other construction methods and adaptive changes to the corresponding bitrate value settings are all within the scope of this application. As described above, the target session bitrate can adjust the maximum configured bitrate to a region within a bitrate concentration set. This region can be the maximum bitrate region that ensures minimal network congestion. When a user is in a weak network environment, the bandwidth detected by the congestion control algorithm does not exceed the historically stable bitrate, effectively reducing the number of congestion events and packet losses during the user's call, ensuring the quality of the user's call experience, and improving the user experience.

[0053] Figure 3 A flowchart of another session bitrate determination method provided for embodiments of this application, including a process for adjusting the maximum configured bitrate based on bitrate concentration distribution conditions, is shown below. Figure 3 As shown, it includes the following steps:

[0054] Step S301: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate.

[0055] Step S302: If the first bitrate quantile of the historical session bitrate distribution is greater than or equal to the first preset proportion of the maximum configured bitrate, the maximum configured bitrate is increased to obtain the target session bitrate.

[0056] The settings for the first bitrate quantile and the first preset ratio can be used to determine whether the overall bitrate range of the historical session bitrate distribution is concentrated close to the currently configured maximum bitrate. The first bitrate quantile can be the first session bitrate corresponding to the first quantile of the statistical value in the probability density bucket. The first quantile can be 20%, 30%, or 40%, etc., and the corresponding first preset ratio can be 80%, 70%, 60%, etc. Taking a first quantile of 30% and a first preset ratio of 70% as an example, the bitrate value corresponding to the position where the statistical value of the first probability density bucket is accumulated to account for 30% of the total statistical value can be determined as the first bitrate quantile. When the 30% bitrate quantile is greater than or equal to 70% of the maximum configured bitrate, it can be regarded as the overall bitrate range of the historical session bitrate distribution being concentrated near the currently configured maximum bitrate, indicating that there is room for upward adjustment of the maximum configured bitrate, and the maximum configured bitrate can be increased to obtain the target session bitrate.

[0057] Furthermore, different amplification strategies can be adopted for increasing the maximum configured bitrate. Optionally, increasing the maximum configured bitrate can be achieved by multiplying the maximum configured bitrate by a set growth factor to obtain the target session bitrate. This growth factor is set to be greater than 1. By controlling the size of this growth factor, the amplification of the maximum configured bitrate can be controlled, adapting to different degrees where historical bitrate concentrations are close to the current configured maximum configured bitrate. Optionally, increasing the maximum configured bitrate can also be achieved by multiplying the current configured maximum configured bitrate by a set first proportional value to obtain the target amplification value; the target session bitrate is obtained by amplifying the smaller of the target amplification value and a set first amplitude limit. The first proportional value determines the amplification of the maximum configured bitrate, while the first amplitude limit determines the upper limit of the amplification of the maximum configured bitrate to prevent excessive increases in the maximum configured bitrate, which could lead to over-probing and unnecessary network congestion, affecting user call quality. Of course, the above-described amplification strategies for the maximum configured bitrate are illustrative and can be adaptively adjusted and set based on different application scenarios. This application does not impose any limitations on these adjustments.

[0058] Step S303: If the second bitrate quantile of the historical session bitrate distribution is less than or equal to the second preset proportion of the maximum configured bitrate, the maximum configured bitrate is reduced to obtain the target session bitrate.

[0059] The setting of the second bitrate quantile and the second preset ratio can be used to determine whether the overall bitrate range of the historical session bitrate distribution is concentrated far away from the currently configured maximum bitrate. The second bitrate quantile can be the second session bitrate corresponding to the second quantile of the statistical value in the probability density bucket. The second quantile can be 70%, 80%, or 90%, etc., and the corresponding second preset ratio can be 30%, 20%, 10%, etc. Taking the second quantile as 70% and the second preset ratio as 30% as an example, the bitrate value corresponding to the position of 70% of the total statistical value accumulated from the statistical value of the second probability density bucket can be determined as the second bitrate quantile. When the 70% bitrate quantile is less than or equal to 30% of the maximum configured bitrate, it can be regarded as the overall bitrate range of the historical session bitrate distribution being far away from the currently configured maximum configured bitrate, indicating that there is room for downward adjustment of the maximum configured bitrate, and the maximum configured bitrate can be reduced to obtain the target session bitrate.

[0060] Furthermore, different reduction strategies can be employed to decrease the maximum configured bitrate. Optionally, the maximum configured bitrate can be reduced by multiplying it by a set reduction coefficient to obtain the target session bitrate. This reduction coefficient is set to be less than 1. By controlling the magnitude of this reduction coefficient, the reduction in the maximum configured bitrate can be controlled, adapting to different degrees to which historical bitrate concentrations deviate from the currently configured maximum configured bitrate. Optionally, the maximum configured bitrate can also be reduced by multiplying the currently configured maximum configured bitrate by a set second proportional value to obtain the target reduction value; the target session bitrate is then obtained by reducing the smaller of the target reduction value and a set second amplitude limit. The second proportional value determines the reduction in the maximum configured bitrate, while the second amplitude limit determines the upper limit of the reduction in the maximum configured bitrate to prevent excessive reduction of the maximum configured bitrate, which could lead to a decrease in user call quality. Of course, the above reduction strategies for the maximum configured bitrate are illustrative examples and can be adaptively adjusted and set based on different application scenarios. This application does not impose any limitations on these adjustments.

[0061] Step S304: Set the target session bitrate to the maximum configured bitrate to control the bitrate of the current session.

[0062] Of course, the above comparison of the concentration of historical session bitrates with the currently configured maximum bitrate is an illustrative example. Replacements to other statistical methods and adaptive changes to the corresponding judgment conditions are all within the scope of this application. As mentioned above, when the historical session bitrate distribution is concentrated close to the currently configured maximum bitrate, the maximum bitrate can be appropriately increased to enhance call quality. Conversely, when the historical session bitrate distribution is concentrated far from the currently configured maximum bitrate, the maximum bitrate can be appropriately decreased to avoid over-probing, reduce network congestion and packet loss, and better ensure call quality. By analyzing the concentration of historical bitrate distribution relative to the currently configured maximum bitrate, changes in network conditions in the region where the session endpoint is located can be determined, and the maximum bitrate can be adjusted reasonably to adapt to these trends, thereby improving the user experience.

[0063] In one embodiment, if the historical session bitrate distribution does not meet the centralized distribution condition, it can be assumed that the historical bitrate does not have a significant clustering effect. The corresponding call scenario exhibits a relatively large bitrate variation range, resembling a uniform distribution. This can cause frequent bitrate spikes, easily exceeding network capacity and leading to network congestion. Subsequently, the bitrate retreats from a lower point to recover, resulting in significant fluctuations in user call quality and impacting the user's call experience. Therefore, the target session bitrate can be obtained by reducing the currently configured maximum bitrate by a fixed proportion, making the bitrate distribution more concentrated, reducing the number of congestion spikes, and ensuring user call quality.

[0064] Figure 4 A flowchart of another session bitrate determination method provided in the embodiments of this application is shown below. Figure 4 As shown, it includes the following steps:

[0065] Step S401: During the session communication with peer devices with different attribute conditions, the session bitrate is recorded. The attribute conditions include geographical location.

[0066] Step S402: Generate historical session bitrate distributions corresponding to different attribute conditions based on the recorded session bitrates.

[0067] The attribute conditions can be specific conditions associated with the network status of the peer device, such as geographical locations where network construction may differ, or network types where bandwidth may differ. Taking geographical location as an example, each geographical location can correspond to a specific geographical area. For different peer devices in the same geographical location, the session bitrate can be recorded in the same historical session bitrate distribution. For different peer devices in different geographical locations, the session bitrate can be recorded in different historical session bitrate distributions. Therefore, by recording historical session bitrate distributions based on geographical location, the differences in network construction in different regions can be accurately reflected, while establishing network correlations between different peer devices in the same geographical location.

[0068] Step S403: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the current maximum configured bitrate.

[0069] Step S404: If the historical session bitrate distribution meets the centralized distribution condition, determine the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate.

[0070] Step S405: Set the target session bitrate to the maximum configured bitrate to control the bitrate of the current session.

[0071] As can be seen from the above, it can generate corresponding historical session bitrate distributions for different geographical locations, accurately adjust the maximum configured bitrate based on the differences in network construction in different regions, effectively adapt to the promotion and coverage of new network infrastructure equipment, and realize personalized adjustment of the maximum configured bitrate.

[0072] Figure 5 A flowchart of a session bitrate determination method including a historical session bitrate distribution update process is provided for embodiments of this application, as shown below. Figure 5 As shown, it includes the following steps:

[0073] Step S501: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate.

[0074] Step S502: If the historical session bitrate distribution meets the centralized distribution condition, determine the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate.

[0075] Step S503: Determine the target session bitrate as the maximum configured bitrate.

[0076] Step S504: Perform bitrate detection based on the maximum configured bitrate to control the sending bitrate in real time, and generate the current session bitrate distribution based on the sending bitrate.

[0077] The maximum configurable bitrate can be used as a limiting bitrate for bitrate probing in congestion control algorithms, thereby controlling the concentrated area of ​​transmitted bitrate. This congestion control algorithm can be configured by developers according to different application scenarios, and this application does not impose any restrictions. Furthermore, the current session bitrate distribution can record the bitrate change distribution between the local and remote devices during the current session. This current session bitrate distribution can record continuously changing data of the transmitted bitrate, or it can use probability density buckets to convert continuous transmitted bitrates into discrete transmitted bitrates for recording, reducing data volume. Of course, there are no limitations on other methods of generating the current session bitrate distribution; any recording format that reflects the transmission bitrate distribution pattern of the current session can be applied to this embodiment.

[0078] Step S505: If the session with the peer device ends, update the historical session bitrate distribution based on the current session bitrate distribution.

[0079] The use of session bitrate distribution data allows for updates to historical session bitrate distributions in various ways. For example, the current session bitrate distribution data can be directly added to the corresponding record position in the historical session bitrate distribution, enabling fast and efficient iteration of the session bitrate distribution data. Alternatively, the current session bitrate distribution data can be fused with the corresponding data from the historical session bitrate distribution, using methods such as moving averages or sliding averages, to reduce the impact of abnormal fluctuations in individual session bitrate data on the stability of the historical session bitrate distribution and improve data reliability. Of course, other update methods are also possible, and this application does not impose any limitations on them.

[0080] In one embodiment, Figure 6This application provides a flowchart of a method for updating historical session bitrate distributions based on current session bitrate distributions. The current session bitrate distribution has multiple probability density buckets, the same number as the historical session bitrate distributions, arranged sequentially. The probability density buckets with the same index in the current and historical session bitrate distributions correspond to the same bitrate range. Figure 6 As shown, it includes the following steps:

[0081] Step S5051: Read the first and second statistical values ​​of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution and the current session bitrate distribution.

[0082] Since both the current and historical session bitrate distributions use probability density buckets for recording, with each bucket corresponding to a different sequence number and bitrate range, the bitrate ranges corresponding to the same current processing sequence number in both the historical and current session bitrate distributions are identical. Therefore, the first statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution can be updated based on the second statistical value of the bucket corresponding to the current processing sequence number in the current session bitrate distribution. Furthermore, the first statistical value can be the number of records in the historical session bitrate distribution where the session bitrate falls within the current processing bitrate range, and the second statistical value can be the number of records in the current session bitrate distribution where the session bitrate falls within the current processing bitrate range.

[0083] Step S5052: Calculate the target statistical value by performing a moving average based on the first statistical value and the second statistical value.

[0084] The moving average calculation can be a moving average of the first and second statistical values. Different weights can be applied to the first and second statistical values ​​to obtain the target statistical value. Alternatively, different ratio coefficients can be set in combination with the historical session duration and the current session duration to reduce the impact of fluctuations in a single session and make the overall trend more obvious. This application does not limit other forms of moving average calculation and coefficient settings.

[0085] The formula for calculating the target statistical value using the moving average is as follows:

[0086] history′[i]=wcall time ×history[i]+(1–wcall time )×now[i],

[0087] wcall time =T history / (T history +T now );

[0088] Where i is the current processing sequence number, history′[i] is the target statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution, history[i] is the first statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution, now[i] is the second statistical value of the probability density bucket corresponding to the current processing sequence number in the current session bitrate distribution, and wcall time T is the moving average coefficient. history For the duration of historical sessions, T now This represents the current session duration. By combining the historical session duration with the current session duration, the impact of the current session bitrate distribution can be effectively determined, thereby determining the update weight for the historical session bitrate distribution and improving data stability and reliability.

[0089] Step S5053: Update the target statistical value to the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution.

[0090] Optionally, the probability density buckets of the updated historical session bitrate distribution may contain a large number of statistical values ​​of 0, which can lead to significant waste of storage space. Therefore, multiple consecutive probability density buckets with statistical values ​​of 0 in the historical session bitrate distribution can be compressed and converted into a counting representation of (-1, number). For example, the original historical session bitrate distribution is a sequence of [10,20,0,0,0,0,0,30], which can be compressed into the form [10,20,-1,5,30]. Based on this, a compressed historical session bitrate distribution can be obtained, which can be persistently saved locally, greatly improving storage space utilization.

[0091] Of course, the above statistical methods and corresponding update calculation methods are illustrative examples. Replacements to other statistical methods and adaptive changes to the corresponding calculation methods are all within the scope of this application. As described above, by repeatedly recording the current session bitrate distribution and updating the historical session bitrate distribution in a timely manner, the timeliness of the data can be improved, effectively adapting to changes in regional network construction conditions. Simultaneously, by increasing the amount of historical session bitrate distribution data, the impact of occasional fluctuations in session bitrate is reduced, improving the accuracy of analyzing and determining concentrated bitrate areas and enhancing the optimization quality of the maximum configured bitrate.

[0092] Figure 7 A flowchart of a session bitrate determination method including a historical session bitrate distribution update process is provided for embodiments of this application, as shown below. Figure 7 As shown, it includes the following steps:

[0093] Step S601: Determine whether there is a historical session bitrate distribution. If there is no historical session bitrate distribution, proceed to step S602. If there is a historical session bitrate distribution, proceed to step S603.

[0094] Step S602: Initialize the historical session bitrate distribution.

[0095] Step S603: Optimize the maximum configured bitrate based on the historical session bitrate distribution.

[0096] Step S604: Determine whether the current call has ended. If the current call has not ended, proceed to step S605. If the current call has ended, proceed to step S606.

[0097] Step S605: Control the transmission rate in real time based on the maximum configured bit rate.

[0098] Step S606: Export the current session bitrate distribution.

[0099] Step S607: Update the historical session bitrate distribution based on the current session bitrate distribution.

[0100] Step S608: Persistently store the updated historical session bitrate distribution.

[0101] As described above, by recording the historical session bitrate distribution between endpoints, the system learns the bitrate probability distribution generated by multiple historical session data between endpoints. Through setting bitrate concentration distribution judgment conditions, it accurately identifies bitrate concentration areas suitable for the local network construction. This allows for the reasonable updating of the maximum configured bitrate based on the currently configured maximum bitrate, keeping bitrate detection within a historically stable bitrate range. This effectively reduces congestion and packet loss during user sessions, improves session quality, and optimizes user experience. Furthermore, updating the historical session bitrate based on the current session bitrate distribution after each call helps ensure the timeliness of historical bitrate data and adapts to changes in local network construction.

[0102] Figure 8 This is a structural block diagram of a session bitrate determination device provided in an embodiment of this application. The device is configured to execute the session bitrate determination method provided in the above embodiment, and has corresponding functional modules and beneficial effects for executing the method. For example... Figure 8 As shown, the device specifically includes:

[0103] The acquisition module 101 is configured to acquire the associated historical session bitrate distribution and the currently configured maximum bitrate when a session communication is established with the peer device.

[0104] The target bitrate determination module 102 is configured to determine the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate, provided that the historical session bitrate distribution meets the centralized distribution condition.

[0105] The session bitrate control module 103 is configured to set the target session bitrate as the maximum configured bitrate in order to control the bitrate of the current session.

[0106] As described above, by establishing a session with the peer device, the associated historical session bitrate distribution and the currently configured maximum bitrate are obtained. If the historical session bitrate distribution meets the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate. This target session bitrate is then set as the maximum configured bitrate to control the bitrate of the current session. In this scheme, by recording the historical session bitrate distribution between session endpoints, the probability distribution of bitrate generated from multiple historical session data between session endpoints is learned. By setting centralized bitrate distribution judgment conditions, the bitrate concentration area suitable for the regional network construction is accurately determined. Therefore, the maximum configured bitrate is updated reasonably based on the currently configured maximum bitrate, keeping the bitrate detection within a historically stable bitrate range. This effectively reduces the number of congestion events and packet losses during user sessions, improves session quality, and optimizes user experience.

[0107] In one possible embodiment, the historical session bitrate distribution is constructed based on probability density buckets, and the target bitrate determination module 102 is further configured as follows:

[0108] If there is a bucket group consisting of multiple consecutive probability density buckets in the historical session bitrate distribution, and the bucket group meets the set probability value conditions, the target session bitrate is determined within the bitrate range corresponding to the bucket group.

[0109] In one possible embodiment, the target bit rate determination module 102 is further configured to:

[0110] If the first quantile of the historical session bitrate distribution is greater than or equal to the first preset proportion of the maximum configured bitrate, the maximum configured bitrate is increased to obtain the target session bitrate.

[0111] If the second quantile of the historical session bitrate distribution is less than or equal to the second preset proportion of the maximum configured bitrate, the maximum configured bitrate is reduced to obtain the target session bitrate.

[0112] In one possible embodiment, the system further includes a configuration bitrate determination module, configured to reduce the currently configured maximum configuration bitrate by a fixed ratio to obtain the target session bitrate when the historical session bitrate distribution does not meet the centralized distribution condition.

[0113] In one possible embodiment, a historical distribution generation module is also included, configured as follows:

[0114] During session communication with peer devices with different attribute conditions, the session bitrate is recorded. The attribute conditions include geographical location.

[0115] Based on the recorded session bitrate, generate historical session bitrate distributions corresponding to different attribute conditions.

[0116] In one possible embodiment, a historical distribution update module is also included, configured as follows:

[0117] Bitrate detection is performed based on the maximum configured bitrate to control the sending bitrate in real time, and the current session bitrate distribution is generated based on the sending bitrate.

[0118] When a session with the peer device ends, the historical session bitrate distribution is updated based on the current session bitrate distribution.

[0119] In one possible embodiment, the current session bitrate distribution is configured with the same number of probability density buckets as the historical session bitrate distributions, and the probability density buckets with the same index in the current session bitrate distribution and the historical session bitrate distribution correspond to the same bitrate range. The historical distribution update module is further configured to:

[0120] Read the first and second statistical values ​​of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution and the current session bitrate distribution;

[0121] The target statistical value is obtained by performing a moving average of the first and second statistical values.

[0122] Update the target statistics to the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution.

[0123] In one possible embodiment, the formula for calculating the target statistical value by performing a moving average of the first and second statistical values ​​is as follows:

[0124] history′[i]=wcall time ×history[i]+(1–wcall time )×now[i],

[0125] wcall time =T history / (T history +T now );

[0126] Where i is the current processing sequence number, history′[i] is the target statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution, history[i] is the first statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution, now[i] is the second statistical value of the probability density bucket corresponding to the current processing sequence number in the current session bitrate distribution, and wcall time T is the moving average coefficient. history For the duration of historical sessions, T now This represents the duration of the current session.

[0127] As can be seen from the above scheme, by acquiring the network indicators determined when receiving data based on the main link, then determining the data transmission type of the secondary link based on the network indicators, and finally notifying the second link end to send data of the corresponding data transmission type through the secondary link, it is possible to determine the data transmission type of the secondary link according to different network conditions by combining the network indicators that characterize the network status of the main link. This enables efficient management of link switching and traffic allocation between the main link and the secondary link, flexibly adapting to changes in network conditions and reducing user traffic and device power consumption.

[0128] Figure 9 A schematic diagram of a session bitrate determination device provided in an embodiment of this application is shown below. Figure 9 As shown, the device includes a processor 201, a memory 202, an input device 203, and an output device 204; the number of processors 201 in the device can be one or more. Figure 9 Taking a processor 201 as an example; the processor 201, memory 202, input device 203, and output device 204 in the device can be connected via a bus or other means. Figure 9 Taking a bus connection as an example, the memory 202, as a computer-readable storage medium, can be configured to store software programs, computer-executable programs, and modules, such as the program instructions / modules corresponding to the session bitrate determination method in this embodiment. The processor 201 executes various functional applications and data processing of the device by running the software programs, instructions, and modules stored in the memory 202, thereby implementing the aforementioned session bitrate determination method. The input device 203 can be configured to receive input digital or character information and generate key signal inputs related to user settings and function control of the device. The output device 204 may include a display screen or other display device.

[0129] This application also provides a non-volatile storage medium containing computer-executable instructions, which, when executed by a computer processor, are configured to perform a session bitrate determination method described in the above embodiments, comprising:

[0130] When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate.

[0131] If the historical session bitrate distribution meets the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate.

[0132] Set the target session bitrate to the maximum configured bitrate to control the bitrate of the current session.

[0133] It is worth noting that in the embodiments of the above-mentioned session bitrate determination device, the various units and modules included are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of each functional unit are only for easy differentiation and are not configured to limit the protection scope of the embodiments of this application.

[0134] In some possible implementations, various aspects of the methods provided in this application can also be implemented as a program product comprising program code that, when run on a computer device, is configured to cause the computer device to perform the steps of the methods according to the various exemplary embodiments of this application described above. For example, the computer device may perform the session bitrate determination method described in the embodiments of this application. The program product may be implemented using any combination of one or more readable media.

Claims

1. A method for determining session bitrate, characterized in that, include: When a session communication is established with the peer device, obtain the associated historical session bitrate distribution and the currently configured maximum bitrate. If the historical session bitrate distribution satisfies the centralized distribution condition, the target session bitrate is determined based on the historical session bitrate distribution and the maximum configured bitrate, wherein: If the first quantile of the historical session bitrate distribution is greater than or equal to the first preset proportion of the maximum configured bitrate, the maximum configured bitrate is increased to obtain the target session bitrate; if the second quantile of the historical session bitrate distribution is less than or equal to the second preset proportion of the maximum configured bitrate, the maximum configured bitrate is decreased to obtain the target session bitrate. The target session bitrate is set as the maximum configured bitrate to control the bitrate of the current session.

2. The session bitrate determination method according to claim 1, characterized in that, The historical session bitrate distribution is constructed based on probability density buckets, and the historical session bitrate distribution satisfies the following centralized distribution conditions: In the historical session bitrate distribution, there exists a bucket group consisting of multiple consecutive probability density buckets, and the bucket group satisfies the set probability value conditions. Accordingly, determining the target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate includes: The target session bitrate is determined within the bitrate range corresponding to the bucket group.

3. The session bitrate determination method according to any one of claims 1-2, characterized in that, If the historical session bitrate distribution does not meet the centralized distribution condition, the target session bitrate is obtained by reducing the currently configured maximum bitrate by a fixed proportion.

4. The session bitrate determination method according to any one of claims 1-2, characterized in that, Before obtaining the associated historical session bitrate distribution, the following steps are also included: During session communication with peer devices under different attribute conditions, the session bitrate is recorded, and the attribute conditions include geographical location; Based on the recorded session bitrate, generate historical session bitrate distributions corresponding to different attribute conditions.

5. The session bitrate determination method according to any one of claims 1-2, characterized in that, After determining the target session bitrate as the maximum configured bitrate, the method further includes: Bitrate detection is performed based on the maximum configured bitrate to control the sending bitrate in real time, and the current session bitrate distribution is generated based on the sending bitrate. When a session with the peer device ends, the historical session bitrate distribution is updated based on the current session bitrate distribution.

6. The session bitrate determination method according to claim 5, characterized in that, The current session bitrate distribution has multiple probability density buckets with the same number of elements as the historical session bitrate distributions, and the probability density buckets with the same index in the current session bitrate distribution and the historical session bitrate distribution correspond to the same bitrate range. Updating the historical session bitrate distribution based on the current session bitrate distribution includes: Read the first and second statistical values ​​of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution and the current session bitrate distribution; The target statistical value is obtained by performing a moving average of the first statistical value and the second statistical value. Update the target statistical value to the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution.

7. The session bitrate determination method according to claim 6, characterized in that, The formula for calculating the target statistical value by performing a moving average of the first statistical value and the second statistical value is as follows: in, This is the current processing sequence number. The target statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution. This is the first statistical value of the probability density bucket corresponding to the current processing sequence number in the historical session bitrate distribution. This is the second statistical value of the probability density bucket corresponding to the current processing sequence number in the current session bitrate distribution. The moving average coefficient, For the duration of historical sessions, This represents the duration of the current session.

8. A session bitrate determination device, characterized in that, include: The acquisition module is configured to acquire the associated historical session bitrate distribution and the currently configured maximum bitrate when a session communication is established with the peer device. A target bitrate determination module is configured to determine a target session bitrate based on the historical session bitrate distribution and the maximum configured bitrate, provided that the historical session bitrate distribution meets a centralized distribution condition. This includes: If the first quantile of the historical session bitrate distribution is greater than or equal to the first preset proportion of the maximum configured bitrate, the maximum configured bitrate is increased to obtain the target session bitrate; if the second quantile of the historical session bitrate distribution is less than or equal to the second preset proportion of the maximum configured bitrate, the maximum configured bitrate is decreased to obtain the target session bitrate. The session bitrate control module is configured to determine the target session bitrate as the maximum configured bitrate in order to control the bitrate of the current session.

9. A session bitrate determination device, the device comprising: One or more processors; A storage device configured to store one or more programs, which, when executed by one or more processors, cause the one or more processors to implement the session bitrate determination method according to any one of claims 1-7.

10. A non-volatile storage medium storing computer-executable instructions, which, when executed by a computer processor, are configured to perform the session bitrate determination method according to any one of claims 1-7.

11. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the session bitrate determination method according to any one of claims 1-7.

Citation Information

Patent Citations

  • Streaming media transmission dynamic code rate regulation method and device, and streaming media transmission system

    CN107483990A