An adaptive video transmission rate control method and related equipment
By calculating the number of bytes and jitter coefficient of the video frame and adaptively adjusting the video transmission rate, the high delay problem caused by jitter of video encoding data in real-time video communication systems is solved, and more stable data transmission is achieved.
Patent Information
- Application Number
- CN202410311385.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-19
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2044-03-19
AI Technical Summary
In existing real-time video communication systems, the bit rate jitter of video encoding data leads to high transmission delay. Traditional methods fail to effectively solve the delay difference and reduced transmittance problems caused by the jitter of video frame encoding bit rate.
By calculating the average number of video frame bytes, determining the jittered video frames, calculating the bit rate jitter coefficient, and adjusting the video sending rate according to the sending bit rate gain coefficient, the sending rate can be adaptively adjusted to reduce the impact of video jitter on data transmission.
It effectively reduces the transmission delay of video data, improves the stability and efficiency of data transmission, and reduces the negative impact of video jitter on transmission.
Smart Images

Figure CN118075471B_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of communication technology, and in particular relates to an adaptive video transmission rate control method and related equipment. Background Art
[0002] Real-time video communication (RTC) systems typically utilize data packet transport layer protocols, such as the User Datagram Protocol (UDP), to meet the requirements of high video data throughput and low latency. Point-to-point video transmission typically requires passing through multiple nodes, and data transmission at different nodes presents bottlenecks. Therefore, RTC transmission requires bandwidth estimation of the transmission link and real-time adjustment of the data transmission rate based on the bandwidth estimation results.
[0003] After the maximum capacity of the current point-to-point data link is evaluated through relevant methods, RTC will adjust the transmission of video data based on the maximum capacity of the link, so that the data rate it sends is as close to the link capacity as possible and remains stable.
[0004] The video data sent by RTC is usually encoded with characteristics such as large data volume, large jitter, and high dependency. Therefore, controlling the bit rate of video data is the key to the bit rate of RTC data transmission.
[0005] Currently, traditional methods rely primarily on sending buffers to smooth video data transmission and control the bitrate. For example, the "A Control Method and System for Adaptive Adjustment of Video Data Transmission" (CN105430532A) proposed by Nanjing Skyworth Information Technology Research Institute Co., Ltd. designs a method for estimating the delay of video data packets from the receiving end and calculating the target bitrate. This method can adjust the bitrate based on the delay incurred during video data transmission, but does not consider the difference between actual video delay and transmission delay caused by jitter in the encoding bitrate of video frames.
[0006] Douyin Vision Co., Ltd. proposed a "Data Transmission Method, Device, Equipment and Storage Medium" (CN117201418A) that adjusts the transmission bit rate by calculating the transmittance through the historical transmission bit rate and reception bit rate. This method eliminates the current actual video encoding bit rate jitter information when calculating the bit rate in the statistical window, and thus cannot observe the situation where the transmittance is reduced due to bit rate jitter.
[0007] In the "Method and Device for Dynamically Adjusting the Transmission Code Rate" (CN113206846A) proposed by Hangzhou Danghong Technology Co., Ltd., the transmission code rate is controlled by fixed buffer and period at the sending end, thereby eliminating the data jitter problem.
[0008] However, the bit rate of video encoding output will fluctuate due to factors such as video content and video frame type. Due to the existence of the sending buffer mechanism, when the video encoding bit rate jitter is small, the overall video encoding bit rate is relatively stable. The sending delay caused by occasional data fluctuations requires a long time to eliminate the delay in the subsequent sending process, thereby increasing the overall sending delay. Summary of the Invention
[0009] The present application provides an adaptive video transmission rate control method and related equipment, which can reduce video transmission delay.
[0010] In a first aspect, the present application provides an adaptive video transmission rate control method, comprising:
[0011] Obtain multiple encoded video frames corresponding to the target video and count the number of bytes of each encoded video frame;
[0012] According to the number of bytes, calculate the average video frame bytes of the target video;
[0013] According to the average number of video frame bytes, jittery video frames are determined from multiple encoded video frames, and the bit rate jitter coefficient is calculated based on the number of jittery video frames. The bit rate jitter coefficient is used to measure the degree of bit rate jitter of video data.
[0014] Calculate the target video's sending rate gain coefficient based on the bit rate jitter coefficient, and determine the target video's sending rate based on the sending rate gain coefficient; the sending rate gain coefficient is used to correct the sending rate;
[0015] The target video is transmitted according to the sending rate.
[0016] Optionally, calculate the average video frame byte count of the target video based on the byte count, including:
[0017] By calculating the formula
[0018]
[0019] Get the average video frame byte number B a ; Where k = 1, 2, ..., N, N represents the total number of coded video frames, k represents the kth coded video frame, B k Indicates the number of bytes in the k-th encoded video frame.
[0020] Optionally, determining a jittered video frame from a plurality of encoded video frames based on an average number of video frame bytes includes:
[0021] For each coded video frame n, calculate the byte difference BD between the coded video frame and the previous coded video frame nIf the byte number difference is greater than or equal to the preset difference threshold, the encoded video frame is regarded as a jittered video frame; the difference threshold is expressed as follows: n represents the nth encoded video frame, n≠k, n=1,2,...,N.
[0022] Optionally, calculate the bitrate jitter coefficient based on the number of jittered video frames, including:
[0023] By calculating the formula Get the bit rate jitter coefficient F h ; Among them, N h Indicates the number of jittery video frames.
[0024] Optional, bit rate jitter coefficient, calculates the target video's sending bit rate gain coefficient, including:
[0025] By calculating the formula
[0026]
[0027] The transmission rate gain coefficient FR is obtained.
[0028] Optionally, the target video transmission rate is determined according to the transmission rate gain coefficient, including:
[0029] By calculating the formula R T =FR×R E , get the sending rate R T ; Among them, R E Indicates the preset target bit rate for the target video encoding.
[0030] In a second aspect, the present application provides an adaptive video transmission rate control device, comprising:
[0031] The video frame acquisition module is used to obtain multiple encoded video frames corresponding to the target video and count the number of bytes of each encoded video frame;
[0032] The average byte number calculation module is used to calculate the average video frame byte number of the target video according to the byte number;
[0033] A jitter video frame determination module is used to determine jitter video frames from multiple encoded video frames based on the average number of video frame bytes, and calculate a bit rate jitter coefficient based on the number of jitter video frames; the bit rate jitter coefficient is used to measure the bit rate jitter degree of video data;
[0034] A sending rate control module is used to calculate a sending rate gain coefficient of the target video according to the bit rate jitter coefficient, and determine the sending rate of the target video according to the sending rate gain coefficient; the sending rate gain coefficient is used to correct the sending rate;
[0035] The transmission module is used to transmit the target video according to the sending rate.
[0036] In a third aspect, the present application provides a terminal device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned adaptive video transmission rate control method when executing the computer program.
[0037] In a fourth aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the above-mentioned adaptive video transmission rate control method.
[0038] The above solution of the present application has the following beneficial effects:
[0039] The adaptive video sending rate control method provided in the present application determines the jittered video frames by calculating the average number of video frame bytes, and then calculates the bit rate jitter coefficient based on the number of jittered video frames. Then, the sending bit rate gain coefficient of the target video is calculated based on the bit rate jitter coefficient, and the sending rate of the target video is determined based on the sending bit rate gain coefficient. The sending rate can be adaptively adjusted according to the degree of video jitter, thereby reducing the impact of video jitter on video data transmission and effectively reducing the video data transmission delay.
[0040] Other beneficial effects of the present application will be described in detail in the subsequent specific implementation section. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0042] Figure 1 A flowchart of an adaptive video transmission rate control method provided in one embodiment of the present application;
[0043] Figure 2 A schematic diagram of the relationship between the transmission rate gain coefficient and the rate jitter coefficient provided in an embodiment of the present application;
[0044] Figure 3 A schematic diagram of the structure of an adaptive video transmission rate control device provided in one embodiment of the present application;
[0045] Figure 4 A schematic diagram of the structure of a terminal device provided in one embodiment of the present application. DETAILED DESCRIPTION
[0046] In the following description, specific details such as specific system structures and techniques are provided for purposes of illustration rather than limitation to facilitate a thorough understanding of the embodiments of the present application. However, it will be apparent to those skilled in the art that the present application may be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid obscuring the description of the present application with unnecessary detail.
[0047] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, integers, steps, operations, elements and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or collections thereof.
[0048] It will also be understood that the term "and / or" used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.
[0049] As used in this specification and the appended claims, the term "if" can be interpreted as "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "upon determination" or "in response to determining" or "upon detection of [described condition or event]" or "in response to detecting [described condition or event]," depending on the context.
[0050] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.
[0051] References to "one embodiment" or "some embodiments" in this specification mean that a particular feature, structure, or characteristic described in conjunction with that embodiment is included in one or more embodiments of the present application. Thus, phrases such as "in one embodiment," "in some embodiments," "in other embodiments," and "in other embodiments" appearing in various places in this specification do not necessarily refer to the same embodiment, but rather mean "one or more but not all embodiments," unless otherwise specifically emphasized. The terms "including," "comprising," "having," and variations thereof all mean "including but not limited to," unless otherwise specifically emphasized.
[0052] In response to the problem of high transmission delay in traditional video transmission methods, the present application provides an adaptive video transmission rate control method and related equipment. The method calculates the average number of video frame bytes to determine the jittered video frames, and then calculates the bit rate jitter coefficient based on the number of jittered video frames. Then, the transmission bit rate gain coefficient of the target video is calculated based on the bit rate jitter coefficient, and the transmission rate of the target video is determined based on the transmission bit rate gain coefficient. The transmission rate can be adaptively adjusted according to the degree of video jitter, thereby reducing the impact of video jitter on video data transmission and effectively reducing the video data transmission delay.
[0053] The adaptive video transmission rate control method provided in this application is described in detail below.
[0054] like Figure 1 As shown, the adaptive video transmission rate control method specifically includes the following steps:
[0055] Step 11: Obtain multiple encoded video frames corresponding to the target video, and count the number of bytes of each encoded video frame.
[0056] Exemplarily, the target video is first encoded, which specifically includes:
[0057] In step 11.1, a video image sequence is captured using a camera or other device.
[0058] Step 11.2: Preprocess the collected original video, such as denoising, color correction, etc.
[0059] Step 11.3, decompose the continuous video image sequence into individual image frames, usually in time order.
[0060] In step 11.4, for each video frame, use a motion estimation algorithm to infer the motion information by comparing it with the previous or next frame.
[0061] Step 11.5: Based on the result of inter-frame prediction, motion compensation is performed on the current frame, that is, the best motion vector is found to represent the difference in motion.
[0062] Step 11.6, convert the motion compensated frame into frequency domain representation, usually using discrete cosine transform (DCT) to convert the spatial domain image into frequency domain coefficients.
[0063] Step 11.7, quantize the frequency domain coefficients after transform coding to reduce the number of bits required for coding.
[0064] In step 11.8, the quantized coefficients are encoded using a compression coding technique (such as Huffman coding) to reduce data redundancy.
[0065] Step 11.9: Decode the compressed data received by the receiver and perform the inverse process to restore it to frequency domain coefficients.
[0066] In step 11.10, the frequency domain coefficients are inversely transformed to convert the frequency domain back to the spatial domain image.
[0067] In step 11.11, the inverse transformed image is operated with the motion vector to repair the error introduced by motion compensation.
[0068] Step 11.12: synthesize the restored current frame with the previous or next frame to obtain a reconstructed video frame, that is, the multiple encoded video frames mentioned above.
[0069] In some embodiments of the present application, after executing step 11, in order to avoid the impact of abnormal video frames on transmission efficiency, the encoded video frames are further screened, and the process is as follows:
[0070] The encoding duration of each encoded video frame is counted, and the duration differences between the encoded video frames are compared. The encoded video frames with a duration difference greater than 10 seconds are identified as abnormal video frames and deleted.
[0071] Step 12: Calculate the average video frame byte count of the target video based on the byte count.
[0072] Specifically, by calculating the formula
[0073]
[0074] Get the average video frame byte number B a ; Where k = 1, 2, ..., N, N represents the total number of coded video frames, k represents the kth coded video frame, B k Indicates the number of bytes in the k-th encoded video frame.
[0075] Step 13: determining jittery video frames from the plurality of encoded video frames according to the average number of video frame bytes, and calculating a bit rate jitter coefficient according to the number of jittery video frames.
[0076] The bit rate jitter coefficient is used to measure the bit rate jitter of video data.
[0077] Specifically, the above step 13 includes the following steps:
[0078] Step 13.1: For each encoded video frame n, calculate the byte difference BD between the encoded video frame and the previous encoded video frame. n If the byte number difference is greater than or equal to a preset difference threshold, the encoded video frame is regarded as a jittery video frame.
[0079] The expression of the difference threshold is as follows: n represents the nth encoded video frame, n≠k, n=1,2,...,N.
[0080] Step 13.2, calculate the formula Get the bit rate jitter coefficient F h .
[0081] Among them, N h Indicates the number of jittery video frames.
[0082] Step 14: Calculate the sending rate gain coefficient of the target video according to the rate jitter coefficient, and determine the sending rate of the target video according to the sending rate gain coefficient.
[0083] Specifically, in step 14.1, by calculating the formula
[0084]
[0085] The transmission rate gain coefficient FR is obtained. In the embodiment of the present application, the transmission rate gain coefficient is used to correct the transmission rate. In the embodiment of the present application, the relationship between the transmission rate gain coefficient and the rate jitter coefficient is as follows: Figure 2 shown. Figure 2 The horizontal axis represents the bit rate jitter coefficient, and the vertical axis represents the transmission bit rate gain coefficient.
[0086] Step 14.2, calculate the formula R T =FR×R E , get the sending rate R T .
[0087] Among them, R E Indicates the preset target bit rate for the target video encoding.
[0088] Step 15: Transmit the target video according to the sending rate.
[0089] For example, in one embodiment of the present application, the sending rate R T The transmission rate is 6Mbps (6000kps). According to the sending rate and network bandwidth, select the appropriate transmission protocol (such as UDP or TCP), configure the data transmission parameters, and start transmitting the target video to the target device.
[0090] It can be seen from the above steps that the adaptive video sending rate control method provided by the present application determines the jittered video frames by calculating the average number of video frame bytes, and then calculates the bit rate jitter coefficient based on the number of jittered video frames. Then, the sending bit rate gain coefficient of the target video is calculated based on the bit rate jitter coefficient, and the sending rate of the target video is determined based on the sending bit rate gain coefficient. The sending rate can be adaptively adjusted according to the degree of video jitter, thereby reducing the impact of video jitter on video data transmission and effectively reducing the video data transmission delay.
[0091] The following is an exemplary description of the adaptive video transmission rate control device provided in this application.
[0092] like Figure 3 As shown, the adaptive video transmission rate control device 300 includes:
[0093] The video frame acquisition module 301 is used to acquire multiple encoded video frames corresponding to the target video and count the number of bytes of each encoded video frame;
[0094] The average byte number calculation module 302 is used to calculate the average video frame byte number of the target video according to the byte number;
[0095] The jitter video frame determination module 303 is configured to determine jitter video frames from a plurality of encoded video frames according to an average number of video frame bytes, and calculate a bit rate jitter coefficient according to the number of jitter video frames; the bit rate jitter coefficient is used to;
[0096] The sending rate control module 304 is used to calculate the sending rate gain coefficient of the target video according to the bit rate jitter coefficient, and determine the sending rate of the target video according to the sending rate gain coefficient; the sending rate gain coefficient is used to;
[0097] The transmission module 305 is configured to transmit the target video according to a transmission rate.
[0098] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of this application. Their specific functions and technical effects can be found in the method embodiment section and will not be repeated here.
[0099] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.
[0100] like Figure 4 As shown, an embodiment of the present application provides a terminal device, such as Figure 4 As shown, the terminal device D10 of this embodiment includes: at least one processor D100 ( Figure 4 Only one processor is shown in the figure), a memory D101, and a computer program D102 stored in the memory D101 and executable on the at least one processor D100, wherein the processor D100 implements the steps of any of the above method embodiments when executing the computer program D102.
[0101] Specifically, when the processor D100 executes the computer program D102, it obtains multiple encoded video frames corresponding to the target video and counts the number of bytes of each encoded video frame; calculates the average number of video frame bytes based on the number of bytes; determines the jittered video frames from the multiple encoded video frames based on the average number of video frame bytes, and calculates the bit rate jitter coefficient based on the number of jittered video frames; calculates the sending bit rate gain coefficient of the target video based on the bit rate jitter coefficient, and determines the sending rate of the target video based on the sending bit rate gain coefficient; transmits the target video based on the sending rate. Among them, by calculating the average number of video frame bytes to determine the jittered video frames, and then calculating the bit rate jitter coefficient based on the number of jittered video frames, and then calculating the sending bit rate gain coefficient of the target video based on the bit rate jitter coefficient, and determining the sending rate of the target video based on the sending bit rate gain coefficient, the sending rate can be adaptively adjusted according to the degree of video jitter, thereby reducing the impact of video jitter on video data transmission and effectively reducing the delay in video data transmission.
[0102] The processor D100 may be a central processing unit (CPU), or may be another general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. A general-purpose processor may be a microprocessor or any conventional processor.
[0103] In some embodiments, the memory D101 may be an internal storage unit of the terminal device D10, such as a hard disk or memory of the terminal device D10. In other embodiments, the memory D101 may also be an external storage device of the terminal device D10, such as a plug-in hard disk, a smart memory card (SMC, SmartMedia Card), a secure digital (SD, Secure Digital) card, a flash card, etc. equipped on the terminal device D10. Furthermore, the memory D101 may also include both an internal storage unit of the terminal device D10 and an external storage device. The memory D101 is used to store an operating system, an application program, a boot loader (BootLoader), data, and other programs, such as the program code of the computer program. The memory D101 may also be used to temporarily store data that has been output or is to be output.
[0104] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in the above-mentioned various method embodiments can be implemented.
[0105] An embodiment of the present application provides a computer program product. When the computer program product is run on a terminal device, the terminal device can implement the steps in the above-mentioned method embodiments when executing the computer program product.
[0106] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, it can implement the steps of the above-mentioned various method embodiments. The computer program includes computer program code, which can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium can at least include: any entity or device capable of carrying the computer program code to the adaptive video transmission rate control device / terminal device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electric carrier signal, a telecommunication signal and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk. In some jurisdictions, according to legislation and patent practice, a computer-readable medium cannot be an electric carrier signal or a telecommunication signal.
[0107] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant description of other embodiments.
[0108] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0109] In the embodiments provided in this application, it should be understood that the disclosed devices / network equipment and methods can be implemented in other ways. For example, the device / network equipment embodiments described above are merely illustrative. For example, the division of the modules or units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0110] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0111] The adaptive video transmission rate control method provided by this application has the following advantages:
[0112] The maximum export bitrate when sending video data is adjusted based on the degree of video data bitrate jitter within the historical window. When the video encoding bitrate jitter is small, increase the target bitrate gain factor to increase the actual target bitrate sent and improve tolerance for video data fluctuations. When video data occasionally experiences bitrate jitter, a brief period of over-transmission can be achieved to minimize transmission delays. When the video encoding bitrate jitter is large, the data volume between different video frames varies greatly. When sending video frames with a small number of bytes, the data volume is less than the export bitrate. The spare bitrate budget can quickly eliminate historical transmission delays. However, due to the large overall jitter, it is still necessary to gradually reduce the target bitrate gain factor and reduce the tolerance for video data volume jitter to avoid excessive impact on the network and increase the frequency of transmission network congestion.
[0113] The above is a preferred embodiment of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles described in the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.
Claims
1. An adaptive video transmission rate control method, characterized in that: include: Obtain multiple encoded video frames corresponding to the target video, and count the number of bytes of each encoded video frame; Calculating the average video frame byte number of the target video according to the byte number; Determining jittered video frames from the plurality of encoded video frames according to the average number of video frame bytes, and calculating a bit rate jitter coefficient based on the number of the jittered video frames; the bit rate jitter coefficient is used to measure the degree of bit rate jitter of the video data; Calculating a sending rate gain coefficient of the target video according to the rate jitter coefficient, and determining a sending rate of the target video according to the sending rate gain coefficient; The sending code rate gain coefficient is used to correct the sending rate; The target video is transmitted according to the sending rate.
2. The adaptive video transmission rate control method according to claim 1, wherein: Calculating the average video frame byte count of the target video according to the byte count includes: By calculating the formula Get the average video frame byte number B a ; Where k = 1, 2, ..., N, N represents the total number of coded video frames, k represents the kth coded video frame, B k Indicates the number of bytes in the k-th encoded video frame.
3. The adaptive video transmission rate control method according to claim 2, wherein: Determining the jittered video frame from the plurality of encoded video frames according to the average number of video frame bytes includes: For each encoded video frame n, calculate the byte difference BD between the encoded video frame and the previous encoded video frame n If the byte number difference is greater than or equal to a preset difference threshold, the encoded video frame is treated as a jittered video frame; the expression of the difference threshold is as follows: n represents the nth encoded video frame, n≠k, n=1,2,...,N.
4. The adaptive video transmission rate control method according to claim 3, wherein: Calculating a bit rate jitter coefficient according to the number of jittered video frames includes: By calculating the formula Get the bit rate jitter coefficient F h ; Among them, N h Indicates the number of jittered video frames.
5. The adaptive video transmission rate control method according to claim 4, wherein: The bit rate jitter coefficient is used to calculate the transmission bit rate gain coefficient of the target video, including: By calculating the formula The sending code rate gain coefficient FR is obtained.
6. The adaptive video transmission rate control method according to claim 5, characterized in that: The determining the sending rate of the target video according to the sending rate gain coefficient includes: By calculating the formula R T =FR×R E , get the sending rate R T ; Among them, R E Indicates the preset target bit rate for the target video encoding.
7. An adaptive video transmission rate control device, characterized in that: include: A video frame acquisition module is used to acquire multiple encoded video frames corresponding to the target video and count the number of bytes of each encoded video frame; An average byte number calculation module, configured to calculate an average video frame byte number of the target video based on the byte number; a jittered video frame determination module, configured to determine jittered video frames from the plurality of encoded video frames according to the average number of video frame bytes, and calculate a bit rate jitter coefficient based on the number of the jittered video frames; the bit rate jitter coefficient is used to measure the degree of bit rate jitter of the video data; a sending rate control module, configured to calculate a sending rate gain coefficient of the target video according to the bit rate jitter coefficient, and determine a sending rate of the target video according to the sending rate gain coefficient; The sending rate gain coefficient is used to correct the sending rate; A transmission module is used to transmit the target video according to the sending rate.
8. A terminal device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the adaptive video transmission rate control method according to any one of claims 1 to 6 is implemented.
9. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the adaptive video transmission rate control method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Control method and system for adaptive adjustment of video data transmission
CN105430532A
Method and device for dynamically adjusting sending code rate
CN113206846A
Data sending method and device, equipment and storage medium
CN117201418A
Method for controlling code rate of secondary AVS encoding of video signal
CN101547349A
Video frame coding method and device, intelligent terminal and computer readable storage medium
CN114513664A