Video call processing method and apparatus, storage medium, and electronic device
Patent Information
- Application Number
- CN202310084131.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-13
- Publication Date
- 2026-10-13
- Estimated Expiration
- 2043-01-13
AI Technical Summary
[0002]在视频通话过程中,通常存在由于网络环境异常,网络发送过来的原始视频通话数据包是完整的,但是终端接收到的原始视频通话数据包是乱序的,如果终端不对接收到的原始视频通话数据包进行适当的处理,将导致很多原始视频通话数据包因为乱序被丢弃,进而引起视频画面卡顿、不清晰等问题
Smart Images

Figure CN117411990B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, specifically to a video call processing method, apparatus, storage medium, and electronic device. Background Technology
[0002] During video calls, due to network anomalies, the original video call data packets sent from the network may be complete, but the original video call data packets received by the terminal may be out of order. If the terminal does not process the received original video call data packets properly, many original video call data packets will be discarded due to out-of-order delivery, leading to problems such as video stuttering and unclear images.
[0003] Currently, the usual approach is to process the received raw video call data packets appropriately according to predetermined fixed data packet processing parameters. However, with these predetermined fixed data packet processing parameters, it is difficult to effectively cope with data packet anomalies caused by different network environments, resulting in poor reliability of video call data packet processing and poor video call quality. Summary of the Invention
[0004] This application provides a solution that can effectively improve the reliability of video call data packet processing and enhance the video call effect.
[0005] The embodiments of this application provide the following technical solutions: According to one embodiment of this application, a video call processing method includes: during a video call, classifying the network environment of the network sending the original video call data packets to obtain a network environment level; obtaining data packet processing parameters and a preset video quality threshold corresponding to the network environment level; processing the received original video call data packets according to the data packet processing parameters to obtain processed data packets, and calculating the actual video quality value corresponding to the processed data packets; adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters, wherein the adjusted data packet processing parameters are used to process subsequently received original video call data packets.
[0006] In some embodiments of this application, the step of classifying the network environment of the network that sends the original video call data packets to obtain the network environment level of the network includes: monitoring at least one of jitter and delay in the original video call data packets sent by the network, and obtaining the network environment level of the network based on at least one of jitter and delay.
[0007] In some embodiments of this application, obtaining the network environment level of the network based on at least one of jitter and latency includes: obtaining a predetermined range corresponding to the jitter and latency; and determining the environment level corresponding to the predetermined range as the network environment level corresponding to the network.
[0008] In some embodiments of this application, obtaining the data packet processing parameters and preset video quality threshold corresponding to the network environment level includes: obtaining at least one of a time window and a sequence number interval corresponding to the network environment level as the data packet processing parameters, wherein the time window is the duration for reordering and processing received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of discarded original video call data packets within the time window; and obtaining at least one of a preset packet loss rate and a preset stuttering rate corresponding to the network environment level as the preset video quality threshold.
[0009] In some embodiments of this application, after adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjustment parameters, the method further includes: adjusting the data packet processing parameters according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than a predetermined threshold or a predetermined number of adjustments is reached. Each adjustment of the data packet processing parameters includes: processing the received original video call data packets according to the data packet processing parameters obtained in the previous adjustment to obtain the processed data packets for the current time, and calculating the actual video quality value corresponding to the processed data packets for the current time; adjusting the data packet processing parameters obtained in the previous adjustment according to the actual video quality value for the current time and the preset video quality threshold to obtain the adjusted data packet processing parameters for the current time.
[0010] In some embodiments of this application, the data packet processing parameters include a time window and a sequence number interval; the step of processing the received original video call data packets according to the data packet processing parameters to obtain processed data packets includes: sorting the received original video call data packets according to their sequence numbers within the time window, and discarding original video call data packets whose sequence numbers differ from the sequence number interval by more than the sequence number interval, thereby obtaining processed data packets.
[0011] In some embodiments of this application, the preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate, the actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate, and the data packet processing parameters include at least one of a time window and a sequence number interval; the step of adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters includes: if at least one of an abnormal packet loss rate or an abnormal stuttering rate occurs, then at least one of the time window and the sequence number interval is increased to obtain at least one of the increased time window and the increased sequence number interval, wherein the abnormal packet loss rate is when the actual packet loss rate is greater than the preset packet loss rate, and the abnormal stuttering rate is when the actual stuttering rate is greater than the preset stuttering rate.
[0012] According to one embodiment of this application, a video call processing apparatus includes: a classification unit, configured to classify the network sending the original video call data packets during a video call to obtain a network environment level; an acquisition unit, configured to acquire data packet processing parameters and a preset video quality threshold corresponding to the network environment level; a processing unit, configured to process the received original video call data packets according to the data packet processing parameters to obtain processed data packets and to calculate the actual video quality value corresponding to the processed data packets; and an adjustment unit, configured to adjust the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters, wherein the adjusted data packet processing parameters are used to process subsequently received original video call data packets.
[0013] In some embodiments of this application, the grading unit is used to: monitor at least one of jitter and delay in the raw video call data packets sent from the network, and obtain the network environment level of the network based on at least one of the jitter and delay.
[0014] In some embodiments of this application, the grading unit is used to: obtain a predetermined range corresponding to the jitter and the delay; and determine the environmental level corresponding to the predetermined range as the network environmental level corresponding to the network.
[0015] In some embodiments of this application, the acquisition unit is configured to: acquire at least one of a time window and a sequence number interval corresponding to the network environment level as the data packet processing parameter, wherein the time window is the duration for reordering the received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of the original video call data packets discarded within the time window; and acquire at least one of a preset packet loss rate and a preset stuttering rate corresponding to the network environment level as the preset video quality threshold.
[0016] In some embodiments of this application, the device further includes a cyclic adjustment unit, which adjusts the data packet processing parameters according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than the predetermined threshold or a predetermined number of adjustments is reached. Each adjustment of the data packet processing parameters includes: processing the received original video call data packets according to the data packet processing parameters obtained in the previous adjustment to obtain the processed data packets for the current time, and calculating the actual video quality value corresponding to the processed data packets for the current time; adjusting the data packet processing parameters obtained in the previous adjustment according to the actual video quality value for the current time and the preset video quality threshold to obtain the adjusted data packet processing parameters for the current time.
[0017] In some embodiments of this application, the data packet processing parameters include a time window and a sequence number interval; the processing unit is configured to: sort the received original video call data packets according to their sequence numbers within the time window, and discard the original video call data packets whose sequence numbers differ by an interval greater than the sequence number interval, thereby obtaining processed data packets.
[0018] In some embodiments of this application, the preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate, the actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate, and the data packet processing parameters include at least one of a time window and a sequence number interval; the adjustment unit is configured to: if at least one of an abnormal packet loss rate or an abnormal stuttering rate occurs, increase at least one of the time window and the sequence number interval to obtain at least one of the increased time window and the increased sequence number interval, wherein the abnormal packet loss rate is when the actual packet loss rate is greater than the preset packet loss rate, and the abnormal stuttering rate is when the actual stuttering rate is greater than the preset stuttering rate.
[0019] According to another embodiment of this application, a storage medium stores a computer program thereon, which, when executed by a computer's processor, causes the computer to perform the methods described in the embodiments of this application.
[0020] According to another embodiment of this application, an electronic device may include: a memory storing a computer program; and a processor reading the computer program stored in the memory to execute the methods described in the embodiments of this application.
[0021] According to another embodiment of this application, a computer program product or computer program includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various optional implementations described in the embodiments of this application.
[0022] In this embodiment of the application, during a video call, the network sending the original video call data packets is classified into network environment levels to obtain the network environment level; the data packet processing parameters and a preset video quality threshold corresponding to the network environment level are obtained; the received original video call data packets are processed according to the data packet processing parameters to obtain processed data packets, and the actual video quality value corresponding to the processed data packets is calculated; the data packet processing parameters are adjusted according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters, which are used to process subsequently received original video call data packets.
[0023] In this way, during video calls, by classifying the network environment, the data packet processing parameters are dynamically adjusted according to the corresponding preset video quality threshold and the actual video quality value under different network environment levels. This can effectively cope with data packet anomalies caused by different network environments, improve the reliability of video call data packet processing, and enhance the video call effect. Attached Figure Description
[0024] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0025] Figure 1 A flowchart of a video call processing method according to an embodiment of this application is shown.
[0026] Figure 2 A flowchart of a video call according to an embodiment of this application is shown.
[0027] Figure 3 A block diagram of a video call processing apparatus according to an embodiment of this application is shown.
[0028] Figure 4 A block diagram of an electronic device according to an embodiment of this application is shown. Implementation
[0029] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0030] Figure 1 A flowchart illustrating a video call processing method according to an embodiment of this application is shown. The device executing this video call processing method can be any device with communication capabilities, such as a television, computer, mobile phone, smartwatch, and home appliances.
[0031] like Figure 1 As shown, the video call processing method may include steps S110 to S140.
[0032] Step S110: During the video call, the network sending the original video call data packets is classified into network environments to obtain the network environment level; Step S120: The data packet processing parameters and preset video quality threshold corresponding to the network environment level are obtained; Step S130: The received original video call data packets are processed according to the data packet processing parameters to obtain processed data packets, and the actual video quality value corresponding to the processed data packets is calculated; Step S140: The data packet processing parameters are adjusted according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters, which are used to process subsequently received original video call data packets.
[0033] Raw video call data packets are the call data packets sent by the other party over the network. These packets are typically raw video RTP (Real-time Transport Protocol) data packets. Due to network limitations, the raw video call data packets sent from the network may experience significant jitter and latency, resulting in out-of-order received data packets. Therefore, the device needs to process the received raw video call data packets appropriately.
[0034] In this application, during a video call, the network sending the original video call data packets is classified into network environment levels to obtain the network environment grade. Different network environment grades have corresponding preset data packet processing parameters and preset video quality thresholds. The data packet processing parameters are the parameters of the received original video call data packets, and the preset video quality thresholds are preset thresholds that can reflect the quality of the video image.
[0035] Obtain the data packet processing parameters and preset video quality thresholds corresponding to the network environment level. Process the received raw video call data packets according to the data packet processing parameters to obtain processed data packets. Calculate the actual video quality value corresponding to the processed data packets. The actual video quality value is the actual value that can reflect the quality of the video picture.
[0036] By comparing the actual video quality value with the preset video quality threshold, the data packet processing parameters can be adjusted based on the comparison results to obtain the adjusted data packet processing parameters. The adjusted data packet processing parameters can be used to process the subsequently received raw video call data packets, realizing dynamic adjustment during the video call process.
[0037] In this way, based on steps S110 to S140, during a video call, by classifying the network environment, the data packet processing parameters are dynamically adjusted according to the corresponding preset video quality threshold and the actual video quality value under different network environment levels. This can effectively cope with data packet anomalies caused by different network environments, improve the reliability of video call data packet processing, and enhance the video call effect.
[0038] The following description Figure 1 Further optional specific embodiments are provided for each step performed during video call processing in the example implementation.
[0039] In one embodiment, step S110, which involves classifying the network environment of the network sending the original video call data packets to obtain the network environment level of the network, includes: monitoring at least one of jitter and delay in the original video call data packets sent by the network, and obtaining the network environment level of the network based on at least one of the jitter and delay.
[0040] Even when using the same path, raw video call data packets transmitted continuously over a network will have different delays. This inconsistency in delay between each raw video call data packet is called jitter. The time required for a raw video call data packet to move from one endpoint (the other party in the call) to another endpoint (the local device) is the delay.
[0041] The jitter and latency of raw video call data packets can effectively reflect the network environment. Therefore, based on at least one of the jitter and latency of raw video call data packets, the network environment level can be reliably analyzed.
[0042] In one embodiment, obtaining the network environment level of the network based on at least one of jitter and latency includes: acquiring a predetermined range corresponding to the jitter and latency; and determining the environment level corresponding to the predetermined range as the network environment level corresponding to the network.
[0043] In this embodiment, the network environment level is analyzed based on both jitter and latency information. Referring to the table below, in one example, the network environment is divided into three levels. It can be understood that more network environment levels can be defined in practical applications to achieve a better video call experience. As shown in the table below, in this example, jitter is specifically the maximum detected jitter J (ms), and latency is the maximum detected latency D (ms). The three network environment levels are good, medium, and poor, respectively. For example, taking a predetermined range J < 30 and D < 250, the network environment level corresponding to this predetermined range is good.
[0044] good J<30, D<250 medium 30≤J<70,250≤D<300 Difference J≧70, D≧300 In one embodiment, obtaining the network environment level of the network based on at least one of jitter and latency includes: determining the environment level corresponding to a predetermined range of jitter as the network environment level of the network; or determining the environment level corresponding to a predetermined range of latency as the network environment level of the network; or determining the environment level corresponding to a weighted environment score as the network environment level of the network, wherein the weighted environment score can be obtained by weighted summation of jitter and latency.
[0045] In one embodiment, step S120, obtaining the data packet processing parameters and preset video quality threshold corresponding to the network environment level, includes: At least one of the time window and sequence number interval corresponding to the network environment level is obtained as the data packet processing parameter. The time window is the duration for reordering the received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of the original video call data packets discarded within the time window. At least one of the preset packet loss rate and preset stuttering rate corresponding to the network environment level is obtained as the preset video quality threshold.
[0046] Packet loss rate refers to the percentage of lost data (discarded data packets) out of the total transmitted data (total data packets); stuttering rate = stuttering duration / total duration. Preset packet loss rate and preset stuttering rate are the default packet loss rates and stuttering rates, respectively. Different network environment levels have corresponding preset packet loss rates and preset stuttering rates. At least one of the preset packet loss rate and preset stuttering rate corresponding to the current network environment level can be obtained as a preset video quality threshold. In other words, the preset video quality threshold can include at least one of the preset packet loss rate and preset stuttering rate.
[0047] The time window is the duration for reordering received raw video call data packets. Within each time window, received raw video call data packets can be reordered according to their sequence numbers. The sequence number interval is the minimum interval between the sequence numbers of raw video call data packets to be discarded within the time window. That is, if the interval between sequence numbers exceeds this interval, the raw video call data packet corresponding to the last received sequence number exceeding this interval is discarded. The data packet processing parameters include at least one of the time window and the sequence number interval.
[0048] As shown in the table below, in this example, the three network environment levels are good, medium and poor. Taking the network environment level of good as an example, the time window T (ms) corresponding to this network environment level is 40, the sequence number interval is 20, the preset packet loss rate L is 10%, and the preset lag rate F is 13%.
[0049] good T=40, G=20 L=10%, F=13% medium T=80, G=30 L=12%, F=14% Difference T=120, G=50 L=14%, F=15% In one embodiment, the data packet processing parameters include a time window and a sequence number interval; step S130, processing the received original video call data packets according to the data packet processing parameters to obtain processed data packets, includes: sorting the received original video call data packets according to the sequence number within the time window, and discarding the original video call data packets whose sequence number difference interval is greater than the sequence number interval, to obtain processed data packets.
[0050] Within a time window, the received raw video call data packets are reordered according to their sequence numbers. If the interval between sequence numbers exceeds the specified interval, the raw video call data packet corresponding to the last received sequence number exceeding that interval is discarded. Once the time window expires, the processed data packet corresponding to that time window is generated. It can be understood that the time windows are continuously distributed over time, and each time window yields a corresponding processed data packet.
[0051] In one embodiment, step S130, which involves statistically analyzing the actual video quality value corresponding to the processed data packets, specifically includes: statistically analyzing the packet loss rate corresponding to the processed data packets to obtain the actual packet loss rate; and statistically analyzing the stuttering rate of the video frame corresponding to the processed data packets to obtain the actual stuttering rate.
[0052] In one embodiment, the preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate, the actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate, and the data packet processing parameters include at least one of a time window and a sequence number interval. The step of adjusting the data packet processing parameters based on the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters includes: if at least one of an abnormal packet loss rate or an abnormal stuttering rate occurs, then at least one of the time window and the sequence number interval is increased to obtain at least one of the increased time window and the increased sequence number interval, wherein the abnormal packet loss rate is defined as the actual packet loss rate being greater than the preset packet loss rate, and the abnormal stuttering rate is defined as the actual stuttering rate being greater than the preset stuttering rate.
[0053] The values for increasing the time window T and sequence number interval G can be set according to the actual situation. Taking a medium network environment level as an example, if the data packet processing parameters corresponding to a medium network environment level are time window T=80ms and sequence number interval G=30, the original video call data packets are processed using these parameters to obtain processed data packets. Then, the actual frame loss rate L0 and the actual stuttering rate F0 corresponding to the processed data packets are calculated. If L0 or F0 is greater than the preset frame loss rate L or the preset stuttering rate F, a dynamic adjustment mechanism will be triggered, that is, the data packet processing parameters T will be increased to 90ms and / or G will be increased to 40. In this example, the values for increasing the time window T and sequence number interval G are 10.
[0054] In one embodiment, after adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjustment parameters, the method further includes: adjusting the data packet processing parameters according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than a predetermined threshold or a predetermined number of adjustments is reached. Each adjustment of the data packet processing parameters includes: processing the received original video call data packets according to the data packet processing parameters obtained in the previous adjustment to obtain the processed data packets for the current time, and calculating the actual video quality value corresponding to the processed data packets for the current time; adjusting the data packet processing parameters obtained in the previous adjustment according to the actual video quality value for the current time and the preset video quality threshold to obtain the adjusted data packet processing parameters for the current time.
[0055] In this embodiment, the data packet processing parameters are further adjusted cyclically according to a predetermined step size to further improve the video call quality. The predetermined step size can be set according to the actual situation. The predetermined step size can be the time step size t (ms) or the interval step size g for each dynamic adjustment. In one example, the time step size t (ms) = 10 and the interval step size g = 10.
[0056] Each time the data packet processing parameters are adjusted, taking a medium network environment level as an example, if the data packet processing parameters corresponding to a medium network environment level are a time window T=80ms and a sequence number interval G=30, the original video call data packets are processed using these data packet processing parameters to obtain processed data packets. Then, the actual frame loss rate L0 and the actual stuttering rate F0 corresponding to the processed data packets are calculated. If L0 or F0 is greater than the preset frame loss rate L or the preset stuttering rate F, a dynamic adjustment mechanism will be triggered, that is, the data packet processing parameters T will be increased to 90ms and / or G will be increased to 40, resulting in the adjusted data packet processing parameters.
[0057] Then, the actual frame drop rate L1 or actual stuttering rate F1 corresponding to the processed data packet after using the adjusted data packet processing parameters is recalculated and compared with the preset frame drop rate L or preset stuttering rate F. If it is less than the preset frame drop rate L or preset stuttering rate F, the data packet processing parameters obtained from the previous adjustment are not adjusted again. Conversely, if it is still the preset frame drop rate L or preset stuttering rate F, the dynamic adjustment mechanism is triggered again to obtain the adjusted data packet processing parameters for the current time. This cycle continues until the actual frame drop rate or actual stuttering rate is greater than the preset frame drop rate L or preset stuttering rate F, or the predetermined number of adjustments M is reached. The actual video quality value for the current time includes the actual frame drop rate or actual stuttering rate for that time.
[0058] For further details, please refer to [link / reference]. Figure 2 Taking video call processing in a mobile phone as an example, the mobile phone modem module receives the raw video call data packets sent by the network (i.e., Figure 2 After the original video RTP data packet shown, it is sent to the RTP (Real-time Transport Protocol) module of the mobile phone. The RTP (Real-time Transport Protocol) module can perform video call processing using any of the aforementioned embodiments. The RTP module will reorder, discard, or perform other processing on the original video call data packet before sending it to the video codec module for decoding. After the video is decoded, it is then displayed on the mobile phone interface.
[0059] To facilitate better implementation of the video call processing method provided in the embodiments of this application, the embodiments of this application also provide a video call processing apparatus based on the above-described video call processing method. The meanings of the terms used are the same as in the above-described video call processing method, and specific implementation details can be found in the descriptions in the method embodiments. Figure 3 A block diagram of a video call processing apparatus according to an embodiment of this application is shown. In some application scenarios, the video call processing apparatus 200 can be applied to... Figure 2In the RTP (Real-time Transport Protocol) module shown.
[0060] like Figure 3 As shown, the video call processing device 200 may include: a classification unit 210, which can be used to classify the network environment of the network sending the original video call data packets during a video call to obtain the network environment level; an acquisition unit 220, which can be used to acquire the data packet processing parameters and preset video quality threshold corresponding to the network environment level; a processing unit 230, which can be used to process the received original video call data packets according to the data packet processing parameters to obtain processed data packets and to count the actual video quality value corresponding to the processed data packets; and an adjustment unit 240, which can be used to adjust the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters, which are used to process subsequently received original video call data packets.
[0061] In some embodiments of this application, the grading unit is used to: monitor at least one of jitter and delay in the raw video call data packets sent from the network, and obtain the network environment level of the network based on at least one of the jitter and delay.
[0062] In some embodiments of this application, the grading unit is used to: obtain a predetermined range corresponding to the jitter and the delay; and determine the environmental level corresponding to the predetermined range as the network environmental level corresponding to the network.
[0063] In some embodiments of this application, the acquisition unit is configured to: acquire at least one of a time window and a sequence number interval corresponding to the network environment level as the data packet processing parameter, wherein the time window is the duration for reordering the received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of the original video call data packets discarded within the time window; and acquire at least one of a preset packet loss rate and a preset stuttering rate corresponding to the network environment level as the preset video quality threshold.
[0064] In some embodiments of this application, the device further includes a cyclic adjustment unit, which adjusts the data packet processing parameters according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than the predetermined threshold or a predetermined number of adjustments is reached. Each adjustment of the data packet processing parameters includes: processing the received original video call data packets according to the data packet processing parameters obtained in the previous adjustment to obtain the processed data packets for the current time, and calculating the actual video quality value corresponding to the processed data packets for the current time; adjusting the data packet processing parameters obtained in the previous adjustment according to the actual video quality value for the current time and the preset video quality threshold to obtain the adjusted data packet processing parameters for the current time.
[0065] In some embodiments of this application, the data packet processing parameters include a time window and a sequence number interval; the processing unit is configured to: sort the received original video call data packets according to their sequence numbers within the time window, and discard the original video call data packets whose sequence numbers differ by an interval greater than the sequence number interval, thereby obtaining processed data packets.
[0066] In some embodiments of this application, the preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate, the actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate, and the data packet processing parameters include at least one of a time window and a sequence number interval; the adjustment unit is configured to: if at least one of an abnormal packet loss rate or an abnormal stuttering rate occurs, increase at least one of the time window and the sequence number interval to obtain at least one of the increased time window and the increased sequence number interval, wherein the abnormal packet loss rate is when the actual packet loss rate is greater than the preset packet loss rate, and the abnormal stuttering rate is when the actual stuttering rate is greater than the preset stuttering rate.
[0067] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to the embodiments of this application, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0068] Furthermore, embodiments of this application also provide an electronic device, which can be a terminal or a server, such as... Figure 4 As shown, it illustrates a structural schematic diagram of the electronic device involved in the embodiments of this application, specifically: The electronic device may include components such as a processor 301 with one or more processing cores, a memory 302 with one or more computer-readable storage media, a power supply 303, and an input unit 304. Those skilled in the art will understand that... Figure 4 The electronic device structure shown does not constitute a limitation on the electronic device and may include more or fewer components than shown, or combine certain components, or have different component arrangements. Wherein: The processor 301 is the control center of the electronic device. It connects to various parts of the computer device via various interfaces and lines. By running or executing software programs and / or modules stored in the memory 302, and by calling data stored in the memory 302, it performs various functions of the computer device and processes data, thereby providing overall monitoring of the electronic device. Optionally, the processor 301 may include one or more processing cores; preferably, the processor 301 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user page, and applications, and the modem processor mainly handles wireless communication. It is understood that the modem processor may not be integrated into the processor 301.
[0069] The memory 302 can be used to store software programs and modules. The processor 301 executes various functional applications and data processing by running the software programs and modules stored in the memory 302. The memory 302 may mainly include a program storage area and a data storage area. The program storage area may store the operating system, application programs required for at least one function (such as sound playback function, image playback function, etc.), etc.; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 302 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device. Accordingly, the memory 302 may also include a memory controller to provide the processor 301 with access to the memory 302.
[0070] The electronic device also includes a power supply 303 that supplies power to various components. Preferably, the power supply 303 can be logically connected to the processor 301 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system. The power supply 303 may also include one or more DC or AC power supplies, recharging systems, power fault detection circuits, power converters or inverters, power status indicators, and other arbitrary components.
[0071] The electronic device may also include an input unit 304, which can be used to receive input digital or character information and generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function control.
[0072] Although not shown, the electronic device may also include a display unit, etc., which will not be described in detail here. Specifically, in this embodiment, the processor 301 in the electronic device loads the executable files corresponding to the processes of one or more computer programs into the memory 302 according to the following instructions, and the processor 301 runs the computer programs stored in the memory 302, thereby realizing the various functions in the foregoing embodiments of this application. For example, the processor 301 can perform the following steps: During a video call, the network sending the original video call data packets is classified into network environment levels to obtain the network environment level; the data packet processing parameters and preset video quality thresholds corresponding to the network environment level are obtained; the received original video call data packets are processed according to the data packet processing parameters to obtain processed data packets, and the actual video quality value corresponding to the processed data packets is calculated; the data packet processing parameters are adjusted according to the actual video quality value and the preset video quality thresholds to obtain adjusted data packet processing parameters, which are used to process subsequently received original video call data packets.
[0073] In some embodiments of this application, the step of classifying the network environment of the network that sends the original video call data packets to obtain the network environment level of the network includes: monitoring at least one of jitter and delay in the original video call data packets sent by the network, and obtaining the network environment level of the network based on at least one of jitter and delay.
[0074] In some embodiments of this application, obtaining the network environment level of the network based on at least one of jitter and latency includes: obtaining a predetermined range corresponding to the jitter and latency; and determining the environment level corresponding to the predetermined range as the network environment level corresponding to the network.
[0075] In some embodiments of this application, obtaining the data packet processing parameters and preset video quality threshold corresponding to the network environment level includes: obtaining at least one of a time window and a sequence number interval corresponding to the network environment level as the data packet processing parameters, wherein the time window is the duration for reordering and processing received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of discarded original video call data packets within the time window; and obtaining at least one of a preset packet loss rate and a preset stuttering rate corresponding to the network environment level as the preset video quality threshold.
[0076] In some embodiments of this application, after adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain the adjustment parameters, the method further includes: adjusting the data packet processing parameters according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than a predetermined threshold or a predetermined number of adjustments is reached. Each adjustment of the data packet processing parameters includes: processing the received original video call data packets according to the data packet processing parameters obtained in the previous adjustment to obtain the processed data packets for the current time, and calculating the actual video quality value corresponding to the processed data packets for the current time; adjusting the data packet processing parameters obtained in the previous adjustment according to the actual video quality value for the current time and the preset video quality threshold to obtain the adjusted data packet processing parameters for the current time.
[0077] In some embodiments of this application, the data packet processing parameters include a time window and a sequence number interval; the step of processing the received original video call data packets according to the data packet processing parameters to obtain processed data packets includes: sorting the received original video call data packets according to their sequence numbers within the time window, and discarding original video call data packets whose sequence numbers differ from the sequence number interval by more than the sequence number interval, thereby obtaining processed data packets.
[0078] In some embodiments of this application, the preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate, the actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate, and the data packet processing parameters include at least one of a time window and a sequence number interval; the step of adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters includes: if at least one of an abnormal packet loss rate or an abnormal stuttering rate occurs, then at least one of the time window and the sequence number interval is increased to obtain at least one of the increased time window and the increased sequence number interval, wherein the abnormal packet loss rate is when the actual packet loss rate is greater than the preset packet loss rate, and the abnormal stuttering rate is when the actual stuttering rate is greater than the preset stuttering rate.
[0079] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be performed by a computer program, or by a computer program controlling related hardware. The computer program can be stored in a computer-readable storage medium and loaded and executed by a processor.
[0080] Therefore, embodiments of this application also provide a storage medium storing a computer program that can be loaded by a processor to execute the steps in any of the methods provided in embodiments of this application.
[0081] The storage medium may include: read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.
[0082] Since the computer program stored in the storage medium can execute the steps of any of the methods provided in the embodiments of this application, the beneficial effects that the methods provided in the embodiments of this application can achieve can be realized. For details, please refer to the previous embodiments, which will not be repeated here.
[0083] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the embodiments disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein.
[0084] It should be understood that this application is not limited to the embodiments described above and shown in the accompanying drawings, but various modifications and changes can be made without departing from its scope.
Claims
1. A video call processing method, characterized in that, include: During a video call, the network environment level is obtained based on at least one of the jitter and latency of the raw video call data packets sent from the network. Obtain the data packet processing parameters and preset video quality threshold corresponding to the network environment level. The data packet processing parameters include a time window and a sequence number interval. The time window is the duration for reordering and processing the received original video call data packets. The sequence number interval is the minimum interval between the sequence numbers of the original video call data packets discarded within the time window. Within the time window, the received raw video call data packets are sorted according to their sequence numbers, and raw video call data packets whose sequence numbers differ from each other by a greater than the sequence number interval are discarded to obtain processed data packets. The actual video quality values corresponding to the processed data packets are then calculated. Based on the actual video quality value and the preset video quality threshold, the data packet processing parameters are adjusted to obtain the adjusted data packet processing parameters. The adjusted data packet processing parameters are used to process the subsequently received raw video call data packets. The preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate. The actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate.
2. The method according to claim 1, characterized in that, The step of obtaining the network environment level based on at least one of jitter and latency in the raw video call data packets sent from the network includes: Obtain the predetermined range corresponding to the jitter and the delay; The environmental level corresponding to the predetermined range is determined as the network environmental level corresponding to the network.
3. The method according to claim 1, characterized in that, The step of obtaining the data packet processing parameters and preset video quality threshold corresponding to the network environment level includes: Obtain the time window and sequence number interval corresponding to the network environment level as the data packet processing parameters; At least one of the preset packet loss rate and preset stuttering rate corresponding to the network environment level is obtained as the preset video quality threshold.
4. The method according to claim 1, characterized in that, After adjusting the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain the adjusted data packet processing parameters, the method further includes: The data packet processing parameters are adjusted according to a predetermined step size until the difference between the actual video quality value and the preset video quality threshold is less than the predetermined threshold or the predetermined number of adjustments is reached. Each adjustment to the packet processing parameters includes: The received raw video call data packets are processed according to the data packet processing parameters obtained from the previous adjustment to obtain the processed data packets for the current time, and the actual video quality value corresponding to the processed data packets for the current time is calculated. Based on the actual video quality value and the preset video quality threshold, the data packet processing parameters obtained in the previous adjustment are adjusted to obtain the adjusted data packet processing parameters for the current time.
5. The method according to claim 1, characterized in that, The step of adjusting the data packet processing parameters based on the actual video quality value and the preset video quality threshold to obtain the adjusted data packet processing parameters includes: If at least one of the packet loss rate abnormality or the stuttering rate abnormality occurs, then at least one of the time window and the sequence number interval is increased to obtain at least one of the increased time window and the increased sequence number interval, wherein the packet loss rate abnormality is that the actual packet loss rate is greater than the preset packet loss rate, and the stuttering rate abnormality is that the actual stuttering rate is greater than the preset stuttering rate.
6. A video call processing device, characterized in that, include: The hierarchical unit is used to determine the network environment level of the network during a video call based on at least one of jitter and latency in the raw video call data packets sent from the network. The acquisition unit is used to acquire the data packet processing parameters and preset video quality threshold corresponding to the network environment level. The data packet processing parameters include a time window and a sequence number interval. The time window is the duration for reordering the received original video call data packets, and the sequence number interval is the minimum interval between the sequence numbers of the original video call data packets discarded within the time window. The processing unit is used to sort the received raw video call data packets according to their sequence numbers within the time window, discard raw video call data packets whose sequence numbers differ from each other by a greater than the sequence number interval, obtain processed data packets, and calculate the actual video quality value corresponding to the processed data packets. An adjustment unit is used to adjust the data packet processing parameters according to the actual video quality value and the preset video quality threshold to obtain adjusted data packet processing parameters. The adjusted data packet processing parameters are used to process subsequently received raw video call data packets. The preset video quality threshold includes at least one of a preset packet loss rate and a preset stuttering rate. The actual video quality value includes at least one of an actual packet loss rate and an actual stuttering rate.
7. A storage medium, characterized in that, It stores a computer program that, when executed by the computer's processor, causes the computer to perform the method described in any one of claims 1 to 5.
8. An electronic device, characterized in that, include: Memory, which stores computer programs; A processor reads a computer program stored in memory to perform the method described in any one of claims 1 to 5.
Citation Information
Patent Citations
A packet resorting method and system
CN101146029A
Method and device for adjusting duration of reordering timer
CN113595929A