A low-delay video transmission method and system

Through adaptive encoding and decoding methods, combined with complexity analysis and parallel processing technology, the encoding parameters are dynamically adjusted and hardware acceleration is used to solve the problems of video transmission delay and low efficiency in the existing technology, and low latency and high efficiency are achieved. Video transmission.

CN118945364BActive Publication Date: 2024-12-10BROAD VISION (XIAMEN) TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411421811.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-12
Publication Date
2024-12-10
Estimated Expiration
2044-10-12

AI Technical Summary

Technical Problem

The existing low-latency video transmission technology has problems such as long delay, low efficiency, hardware dependence and insufficient resource utilization in encoding and decoding, resulting in unstable video transmission and high power consumption.

Method used

Adaptive encoding and decoding methods are adopted, and the encoding parameters are dynamically adjusted and segmented video frames are divided for parallel processing through complexity analysis algorithms, and the encoding and decoding process is optimized using hardware acceleration modules.

Benefits of technology

The video transmission delay and efficiency are significantly optimized, the system stability and energy efficiency ratio are improved, and the video transmission needs of high-efficiency and low-latency are met.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118945364B_ABST
    Figure CN118945364B_ABST
Patent Text Reader

Abstract

The present application provides a low-latency video transmission method and system, and relates to the field of video coding and decoding technology. The method includes: an adaptive coding step, obtaining video frames in real time, and performing complexity analysis on the video frames to obtain complexity index values; dynamically adjusting coding parameters according to the complexity index values; dividing the video frames into multiple independently processable blocks, each block is assigned to a different coding processing unit, each coding processing unit performs coding processing on the assigned blocks according to the adjusted coding parameters, and all coding results are merged into a complete coding frame; an adaptive decoding step, dividing the coded frame into multiple independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoding frame. The present application optimizes the video coding and decoding process, ensures the efficiency and stability of the entire video processing link, and meets the requirements of efficient and low-latency video transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of video encoding and decoding technology, and specifically to a low-latency video transmission method and system. Background Art

[0002] Existing low-latency video transmission technologies have many problems in encoding and decoding, including: long encoding delay, low encoding efficiency, decoding processing bottleneck, hardware dependency of decoders, low hardware acceleration energy efficiency, etc. These affect the delay and stability of video transmission, making the transmission time and image jitter unstable. When processing highly complex video content, existing technologies exhibit long encoding delays, which seriously affects the overall transmission efficiency.

[0003] Traditional encoding algorithms take too long to process highly dynamic and detailed video frames due to high computational complexity. Low encoding efficiency requires the use of higher bit rates, which not only takes up more network bandwidth but also increases transmission delays. The lack of flexibility in encoding algorithms means that parameters cannot be dynamically adjusted according to video content, resulting in low efficiency.

[0004] Under high load conditions, the decoding process becomes a bottleneck for system performance, affecting the smooth playback of video streams. The decoding algorithm has not been effectively optimized, especially when multi-channel videos are decoded simultaneously, resources are unevenly allocated and processing capabilities are limited. Existing decoding technologies rely too much on hardware performance and do not have good cross-platform performance. The decoding algorithm is not fully optimized, and hardware resources are not fully utilized, resulting in a sharp drop in performance in an environment with insufficient hardware support. Existing systems do not fully utilize the hardware acceleration function of the graphics processor GPU or dedicated decoding chip, resulting in long decoding and display processing time. The system design does not integrate efficient hardware acceleration modules, or the algorithm is not optimized for hardware, and the performance of the hardware is not fully utilized. Due to the lack of hardware acceleration, the system's energy efficiency ratio is low, resulting in increased power consumption and heat. Relying on a general-purpose processor CPU for video decoding is inefficient, resulting in high power consumption and heat problems.

[0005] The accumulation of encoding delay, buffer delay and decoding delay significantly increases the overall video transmission delay. Due to problems such as buffer overflow and network congestion, video data loss and unstable transmission often occur, seriously affecting video quality.

[0006] The specific problems existing in the above existing video transmission technologies in encoding, decoding, hardware acceleration and buffer management are urgently needed to be solved in this field to meet the needs of efficient and low-latency video transmission. Summary of the invention

[0007] The purpose of this application is to provide a low-latency video transmission method and system.

[0008] In a first aspect, an embodiment of the present application provides a low-latency video transmission method, including:

[0009] An adaptive coding step, including a complexity analysis step, a coding parameter adjustment step and a parallel coding step;

[0010] The complexity analysis step acquires video frames in real time, and uses a preset complexity index algorithm to perform complexity analysis on the video frames to obtain complexity index values ​​corresponding to the video frames; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm;

[0011] The coding parameter adjustment step dynamically adjusts the coding parameters according to the complexity index value, the coding parameters including bit rate, frame rate and compression level;

[0012] The parallel encoding step divides the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoded frame;

[0013] The adaptive decoding step divides the coded frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame.

[0014] In a possible implementation, the complexity analysis step includes an edge detection step, a motion estimation step, and a texture analysis step.

[0015] In a possible implementation, the edge detection step uses an edge detection algorithm to identify edges and contours in the video frame, obtains the number of edge pixels and the total number of pixels in the video frame, and calculates the edge density of the video frame using the following formula:

[0016] ;

[0017] in, represents edge density, a represents the total number of pixels, and b represents the number of edge pixels.

[0018] In a possible implementation, the motion estimation step uses a motion estimation algorithm to calculate pixel changes between adjacent frames, and calculates the motion amplitude of the video frame by the following formula:

[0019] ;

[0020] Where M represents the range of motion, Indicates Pixels in a video frame The value of a represents the total number of pixels.

[0021] In a possible implementation, the texture analysis step uses a texture analysis algorithm to evaluate the texture complexity of the video frame, and the texture complexity of the video frame is calculated by the following formula:

[0022] ;

[0023] in, represents texture complexity, K represents the number of texture filters in different directions and scales, c represents texture response, and a represents the total number of pixels.

[0024] In a possible implementation, the coding parameter adjustment step includes a threshold determination step and a coding parameter determination step.

[0025] In a possible implementation, the threshold determination step determines the edge density threshold, the motion amplitude threshold and the texture complexity threshold respectively based on the correspondence between the range of the complexity index value and the preset threshold.

[0026] In a possible implementation, in the encoding parameter determination step, if the edge density of the video frame is less than an edge density threshold, it is determined to be encoded at a first bit rate, otherwise it is determined to be encoded at a second bit rate, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than a motion amplitude threshold, it is determined to be encoded at a first frame rate, otherwise it is determined to be encoded at a second frame rate, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than a texture complexity threshold, it is determined to be encoded at a first compression level, otherwise it is determined to be encoded at a second compression level, and the first compression level is higher than the second compression level.

[0027] In a second aspect, an embodiment of the present application provides a low-latency video transmission system, including:

[0028] An adaptive coding module, comprising a complexity analysis unit, a coding parameter adjustment unit and a parallel coding unit;

[0029] The complexity analysis unit is used to acquire video frames in real time, and perform complexity analysis on the video frames using a preset complexity index algorithm to obtain a complexity index value corresponding to the video frames; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm;

[0030] The encoding parameter adjustment unit is used to dynamically adjust the encoding parameters according to the complexity index value, and the encoding parameters include bit rate, frame rate and compression level;

[0031] The parallel encoding unit is used to divide the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoding frame;

[0032] The adaptive decoding module is used to divide the coded frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame.

[0033] Compared with the prior art, the low-delay video transmission method provided by the present application includes: an adaptive encoding step, obtaining video frames in real time, and using a preset complexity index algorithm to perform complexity analysis on the video frames to obtain the complexity index value corresponding to the video frames; dynamically adjusting the encoding parameters according to the complexity index value, and the encoding parameters include bit rate, frame rate and compression level; dividing the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoding frame; an adaptive decoding step, dividing the encoding frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoding frame. Compared with the prior art, the present application not only optimizes the video encoding process, but also significantly optimizes the decoding process, ensuring the efficiency and stability of the entire video processing link, and meeting the requirements of efficient and low-delay video transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be considered as limiting the present application. Also, the same reference symbols are used throughout the accompanying drawings to represent the same components. In the accompanying drawings:

[0035] Figure 1 A flowchart of a low-latency video transmission method provided by an embodiment of the present application is shown;

[0036] Figure 2 A schematic diagram of the entire process of end-to-end low-latency video transmission from video acquisition to display of a video surveillance system provided by an embodiment of the present application is shown;

[0037] Figure 3 A flowchart of an adaptive coding algorithm provided in an embodiment of the present application is shown;

[0038] Figure 4 A flowchart of parallel processing of encoding tasks provided by an embodiment of the present application is shown;

[0039] Figure 5 A flowchart of parallel processing of decoding tasks provided by an embodiment of the present application is shown;

[0040] Figure 6 A structural schematic diagram of a low-latency video transmission system provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0041] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments described herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.

[0042] It should be noted that, unless otherwise specified, other technical terms or scientific terms used in this application should have the common meanings understood by technicians in the field to which this application belongs.

[0043] In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units that are not listed, or may optionally include other steps or units that are inherent to these processes, methods, products or devices.

[0044] The present application provides a low-latency video transmission method and system, which aims to provide high-quality, low-latency video services by optimizing video processing and transmission technology, and is described in detail below with reference to the accompanying drawings.

[0045] Please refer to Figure 1 , Figure 1 : is a flowchart of a low-latency video transmission method provided in an embodiment of the present application, including:

[0046] Adaptive encoding step 10 and adaptive decoding step 20 , the adaptive encoding step 10 includes a complexity analysis step 101 , an encoding parameter adjustment step 102 and a parallel encoding step 103 .

[0047] In the complexity analysis step 101, a video frame is acquired in real time, and a complexity analysis is performed on the video frame using a preset complexity index algorithm to obtain a complexity index value corresponding to the video frame; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm;

[0048] Specifically, the complexity analysis step 101 includes an edge detection step, a motion estimation step and a texture analysis step.

[0049] In the edge detection step, an edge detection algorithm is used to identify edges and contours in the video frame, the number of edge pixels and the total number of pixels in the video frame are obtained, and the edge density of the video frame is calculated by the following formula;

[0050] ;

[0051] in, represents edge density, a represents the total number of pixels, and b represents the number of edge pixels.

[0052] In the motion estimation step, a motion estimation algorithm is used to calculate pixel changes between adjacent frames, and the motion amplitude of the video frame is calculated by the following formula;

[0053] ;

[0054] Where M represents the range of motion, Indicates Pixels in a video frame The value of a represents the total number of pixels.

[0055] In the texture analysis step, a texture analysis algorithm is used to evaluate the texture complexity of the video frame, and the texture complexity of the video frame is calculated by the following formula;

[0056] ;

[0057] in, represents texture complexity, K represents the number of texture filters in different directions and scales, c represents texture response, and a represents the total number of pixels. The texture filter may be a Gabor filter or other types of texture filters, which are not limited in this application.

[0058] In the coding parameter adjustment step 102, the coding parameters are dynamically adjusted according to the complexity index value, the coding parameters including bit rate, frame rate and compression level;

[0059] Specifically, the coding parameter adjustment step 102 includes a threshold determination step and a coding parameter determination step.

[0060] In the threshold determination step, the edge density threshold, the motion amplitude threshold and the texture complexity threshold are determined based on the correspondence between the range of the complexity index value and the preset threshold. The specific process of determining the threshold is as follows.

[0061] In the coding parameter determination step, if the edge density of the video frame is less than the edge density threshold, it is determined to be encoded at the first bit rate, otherwise it is determined to be encoded at the second bit rate, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than the motion amplitude threshold, it is determined to be encoded at the first frame rate, otherwise it is determined to be encoded at the second frame rate, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than the texture complexity threshold, it is determined to be encoded at the first compression level, otherwise it is determined to be encoded at the second compression level, and the first compression level is higher than the second compression level. The specific process of determining the coding parameters is shown below.

[0062] In the parallel encoding step 103, the video frame is divided into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoded frame;

[0063] In the adaptive decoding step 20, the coded frame is divided into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame.

[0064] The above method of the present application can be applied to a video surveillance system, where the entire end-to-end low-latency video transmission process from video acquisition to display is as follows: Figure 2 As shown, including:

[0065] 1. Video acquisition: The camera acquires the required video in real time according to the preset image resolution and frame rate. The resolution can be preset to 720p, 1080p, 4K, etc., depending on the application requirements. The frame rate is preset to 30fps and 60fps to ensure the smoothness of the video.

[0066] 2. Parallel adaptive encoding: Encode the input video stream through adaptive encoding algorithm, dynamic buffer adjustment strategy and hardware acceleration technology.

[0067] 3. Parallel adaptive decoding: Decode the encoded video stream through five steps: task allocation, task scheduling, data synchronization, parallel processing and result merging.

[0068] 4. The decoded video stream displays smooth and stable video at the set resolution and frame rate.

[0069] like Figure 3 The figure shows the flowchart of the adaptive coding algorithm used in the above parallel adaptive coding step. The adaptive coding algorithm optimizes the video coding efficiency and quality by dynamically adjusting the coding parameters, and makes adjustments based on the content complexity of each frame of video. Its core is to analyze the edge, motion and texture features of the video content in real time, generate complexity indicators, and adjust the coding parameters according to these indicators. The specific steps are as follows:

[0070] (1) Video input: The starting point of the entire process is the input video stream.

[0071] (2) Adaptive coding complexity analysis is performed on the video stream. The complexity analysis steps specifically include edge detection step, motion estimation step and texture analysis step:

[0072] Edge detection: perform edge detection on the input video and extract edge information. Motion estimation: estimate the motion information in the video. Texture analysis: analyze the texture information in the video.

[0073] Video content complexity analysis is the basis of adaptive coding algorithms. By analyzing the content complexity of each frame of video, the coding parameters are dynamically adjusted to optimize the coding efficiency. The following are specific methods and technologies for implementing video content complexity analysis:

[0074] 1. Edge detection:

[0075] Method: Use edge detection algorithms (such as the Canny algorithm) to identify edges and contours in video frames, calculate the number and distribution of edge pixels in each frame, and obtain the number of edge pixels b and the total number of pixels a in the video frame.

[0076] Purpose: The more edges there are, the more complex the video content is, requiring more encoding resources.

[0077] Formula: Same as edge density above The calculation formula for .

[0078] 2. Motion Estimation:

[0079] Method: Based on the motion estimation algorithm, the pixel changes between adjacent frames are calculated through the inter-frame difference technology to evaluate the amplitude and area of ​​the motion.

[0080] Purpose: The larger the motion amplitude and the wider the area, the more significant the change in video content, and the encoding strategy needs to be adjusted to maintain video quality.

[0081] Formula: Same as the range of motion above The calculation formula for .

[0082] 3. Texture analysis:

[0083] Method: Use texture analysis algorithms such as Gabor filters to assess the texture complexity of video frames.

[0084] Purpose: The higher the texture complexity, the richer the video details and the higher the encoding quality required.

[0085] Formula: Same as the texture complexity above The calculation formula for .

[0086] (3) Adaptive coding parameter adjustment, including: generating a complexity index based on the results of edge detection, motion estimation and texture analysis; setting an initial complexity threshold based on the complexity index; dynamically adjusting the complexity threshold in real time to adapt to changes in the video stream; adjusting the video coding parameters based on the set complexity threshold. Finally, the coding scheme is processed and the video coding scheme and parameters are output.

[0087] The complexity index is the core of the adaptive coding algorithm and is used to quantify the complexity of each frame of video. The following are the specific steps for setting and adjusting the complexity index:

[0088] 1. Set complexity index:

[0089] Edge density: The ratio of edge pixels in each frame, reflecting the contour complexity of the image.

[0090] Motion amplitude: The average value of pixel changes between adjacent frames, reflecting the dynamic changes of video content.

[0091] Texture complexity: The statistical value of texture features in a video frame, reflecting the richness of image details.

[0092] 2. Adjust the complexity threshold:

[0093] Dynamic threshold setting: dynamically adjust the threshold of the complexity index according to the changes in the actual video content. For example, in scenes with large motion amplitudes, increase the threshold of the motion amplitude index. Specifically, the edge density threshold, motion amplitude threshold, and texture complexity threshold can be determined based on the correspondence between the range of the complexity index value and the preset threshold. It can be seen that the present application sets the correspondence between the indicator value range and the indicator threshold for the edge density index, motion amplitude index, and texture complexity index, and the indicator threshold can be determined according to the indicator value of the current video frame.

[0094] Adaptive adjustment strategy: Use historical data and real-time analysis results to continuously optimize the threshold setting of complexity indicators to ensure the accuracy of encoding parameter adjustment.

[0095] 3. Adjustment strategy of adaptive coding parameters:

[0096] The adaptive coding parameter adjustment strategy dynamically adjusts the coding parameters according to the complexity of the video content to achieve the best coding efficiency and video quality. Specifically, if the edge density of the video frame is less than the edge density threshold, it is determined to be encoded at the first bit rate, otherwise it is determined to be encoded at the second bit rate, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than the motion amplitude threshold, it is determined to be encoded at the first frame rate, otherwise it is determined to be encoded at the second frame rate, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than the texture complexity threshold, it is determined to be encoded at the first compression level, otherwise it is determined to be encoded at the second compression level, and the first compression level is higher than the second compression level.

[0097] Exemplarily, an adjustment strategy of adaptive coding parameters is as follows:

[0098] 3.1. Bit rate adjustment:

[0099] ; where the threshold is the edge density threshold.

[0100] Low-complexity scenario: When the video content is less complex, lower the bit rate to reduce the use of encoding resources and increase the encoding speed.

[0101] High-complexity scenarios: When the video content is complex, increase the bit rate to ensure video quality.

[0102] 3.2, Frame rate adjustment:

[0103] ; Among them, the threshold is the motion amplitude threshold.

[0104] Static scenes: In static scenes where the video content changes little, lower the frame rate to reduce the encoding workload.

[0105] Dynamic scenes: In dynamic scenes where the video content changes greatly, increase the frame rate to maintain the smoothness of the video.

[0106] 3.3. Compression level adjustment:

[0107] ; Where the threshold is the texture complexity.

[0108] Simple scenes: In scenes with simple content and less details, use higher compression levels to reduce the amount of data.

[0109] Complex Scenes: In scenes with complex content and rich details, the compression level is reduced to maintain video details.

[0110] For ease of understanding, the present application also provides the following methods and bases for determining the first bit rate, the second bit rate, the first frame rate, the second frame rate, the first compression level, the second compression level, and the thresholds of each complexity index:

[0111] For each complexity indicator, the maximum entropy method combined with the exponential moving average can be used to obtain a stable and adaptive threshold. Adaptive thresholds can greatly reduce the need for manual parameter adjustment, thereby reducing maintenance costs: reducing the number of times technicians need to adjust parameters regularly, and reducing system performance fluctuations caused by human errors, thereby improving system stability.

[0112] Surveillance cameras are usually installed in fixed locations, but scene complexity can vary depending on a number of factors:

[0113] Diurnal variation: Light conditions vary greatly between day and night;

[0114] Seasonal variation: Light conditions and environmental characteristics can vary greatly between seasons;

[0115] Weather changes: Sunny, cloudy, rainy and snowy weather will affect the complexity of the image;

[0116] Environmental changes: Changes in surrounding buildings or vegetation can affect scene complexity;

[0117] Changes in crowd flow: The crowd flow at different times will affect the complexity of the scene.

[0118] The maximum entropy method can automatically find the best threshold and divide the scenes into two categories: low complexity and high complexity. This method does not require manual setting of fixed thresholds, but determines the thresholds based on the statistical characteristics of the actual scene, so it has strong adaptability. The following are the specific steps:

[0119] a) Constructing complexity histogram:

[0120] First, we need to collect complexity data over a certain period of time. Assume that we use edge density As a measure of complexity, The range (usually 0 to 1) is divided into intervals of equal width to construct a histogram.

[0121] b) Calculate the maximum entropy threshold:

[0122] Use the maximum entropy method to find the optimal threshold. The goal of the maximum entropy method is to find a threshold such that the sum of the entropies on both sides of the threshold is maximized.

[0123] set up For the The probability of an interval, is the threshold, the entropy can be expressed as:

[0124] ;

[0125] Need to find The largest value.

[0126] c) Update the optimal parameters using exponential moving average smoothing:

[0127] To avoid drastic changes in the threshold, an exponential moving average (EMA) can be used to smooth the update of the threshold.

[0128] ;

[0129] in, is the threshold calculated at the current time point, is the smoothing factor (usually a value between 0.1 and 0.3).

[0130] Using an exponential moving average (EMA) to smooth threshold changes has the following benefits:

[0131] Reduce frequent switching: Avoid frequent bit rate switching caused by short-term scene changes and improve encoding stability.

[0132] Adapt to gradual changing scenes: In gradual changing scenes such as sunrise and sunset, EMA can achieve smooth transition of thresholds.

[0133] Resistant to noise influence: Sudden changes in a single frame will not cause drastic fluctuations in the threshold.

[0134] The above are the methods and basis for selecting the threshold values ​​of each complexity indicator. The following are the methods and basis for selecting the first bit rate (low bit rate), the second bit rate (high bit rate), the first frame rate (low frame rate), the second frame rate (high frame rate), the first compression level (high compression level), and the second compression level (low compression level).

[0135] 1. Bit rate adjustment scheme:

[0136] For 1080p surveillance camera RTSP video stream, the appropriate low bit rate and high bit rate can be determined based on the following factors:

[0137] a) Low bit rate:

[0138] The recommended setting is 2-3 Mbps.

[0139] The basis for the above specific range of low bit rate is:

[0140] The minimum acceptable bitrate for 1080p video is usually around 2 Mbps.

[0141] Surveillance cameras usually capture static scenes with little change, so lower bit rates can be used.

[0142] The RTSP protocol has high requirements for network bandwidth, and low bit rate can reduce the network burden.

[0143] b) High bit rate:

[0144] The recommended setting is 6-8 Mbps.

[0145] in accordance with:

[0146] High quality bitrates for 1080p video are typically in the 6-8 Mbps range.

[0147] High bit rate can ensure video quality in complex scenes (such as lighting changes, object movement, etc.).

[0148] Considering the purpose of surveillance cameras, sufficient details need to be guaranteed at critical moments.

[0149] The bit rate adjustment strategy can be specifically expressed as:

[0150]

[0151] in, It is a dynamic threshold calculated using the maximum entropy method and exponential moving average. In the initial case, the bit rate uses a high bit rate.

[0152] The advantages of this approach are:

[0153] It has strong adaptability and can dynamically adjust the threshold according to changes in video content.

[0154] By using the maximum entropy method, the optimal segmentation point can be found so that low-complexity and high-complexity scenes can be reasonably distinguished.

[0155] Using exponential moving average can smooth the changes in thresholds, avoid frequent bit rate switching, and improve encoding stability.

[0156] The bitrate range was chosen taking into account the quality requirements of 1080p video and the special purpose of surveillance cameras, achieving a balance between bandwidth efficiency and video quality.

[0157] 2. Frame rate adjustment plan:

[0158] Low frame rate: 15 fps; High frame rate: 30 fps.

[0159] The two frame rates were chosen based on the following:

[0160] a) Low frame rate (15 fps):

[0161] For most static scenes, 15 fps can provide enough visual information. The lowest smooth frame rate that the human eye can perceive is about 12-15 fps, so 15 fps can ensure basic visual smoothness. Compared with 30 fps, 15 fps can significantly reduce the amount of data by 50%, thereby reducing the burden of encoding and transmission.

[0162] b) High frame rate (30 fps):

[0163] 30 fps is the standard frame rate for most surveillance systems, which can capture most details of fast movements. For the human eye, 30 fps can already provide a very smooth visual experience. In dynamic scenes, 30 fps can better capture motion details, which is conducive to subsequent video analysis and processing.

[0164] Specific implementation plan

[0165] When the calculated motion amplitude M is less than the threshold, the frame rate is set to 15 fps;

[0166] When the calculated motion amplitude M is greater than or equal to the threshold, the frame rate is set to 30 fps;

[0167] To avoid frequent frame rate switching, a short delay (e.g. 1-2 seconds) can be introduced. The frame rate is switched only when the motion amplitude exceeds or falls below the threshold for a period of time.

[0168] This adaptive thresholding and frame rate adjustment scheme is feasible because:

[0169] It can be automatically adjusted according to the specific scenario without manual intervention;

[0170] The calculation method of the threshold is simple and will not bring too much computational burden to the system;

[0171] The selection of the frame rate takes into account both video quality and bandwidth savings, and is suitable for most monitoring scenarios;

[0172] The dynamic adjustment mechanism can adapt to long-term environmental changes and ensure the continuous effectiveness of the system.

[0173] 3. Adjustment scheme for compression level:

[0174] The T_threshold threshold for the compression level still uses the maximum entropy method combined with exponential moving average to obtain a stable and adaptive threshold.

[0175] For encodings such as H.264 / H.265, the compression level can be controlled by adjusting the quantization parameter (QP). The lower the QP value, the lower the compression level, the higher the image quality, but the larger the file size.

[0176] Suggested compression level settings:

[0177] Low compression level (high quality): QP = 23; High compression level (low quality): QP = 35.

[0178] Basis for the selection of the above two high and low compression levels:

[0179] QP = 23: This value is generally considered to be a good balance between visual quality and compression efficiency. At this level, most people can hardly perceive the quality loss caused by compression.

[0180] QP = 35: This value provides a significant compression ratio while still maintaining acceptable image quality. In simple scenarios of surveillance videos, compression at this level usually does not seriously affect the recognition of key details.

[0181] To further optimize the encoding effect, avoid frequent switching of the compression level caused by slight fluctuations near the threshold, and provide more stable video quality and bit rate. A transition area can be set between low compression and high compression, and linear interpolation is used to smoothly adjust the QP value:

[0182] If T < T_threshold - T_margin: QP = 35 (high compression level);

[0183] If T > T_threshold + T_margin: QP = 23 (low compression level);

[0184] If T_threshold - T_margin<= T<= T_threshold + T_margin:

[0185] QP = 35 - (T - (T_threshold - T_margin)) (35 - 23) / (2 T_margin);

[0186] Among them, T_margin is a small buffer value, which can be set to about 10% of the above threshold T_threshold.

[0187] This dynamic threshold and smooth transition compression level adjustment method combines adaptability and stability, and can effectively adjust the encoding parameters according to the complexity of the monitoring scene, optimizing bandwidth usage while ensuring video quality. This method can adapt to different monitoring environments and specific needs.

[0188] By describing in detail the methods and techniques for analyzing the complexity of video content, setting and adjusting the thresholds of complexity indicators, and the specific adjustment strategies for adaptive coding parameters, we can significantly improve coding efficiency, reduce video transmission delay, improve video quality, and meet the needs of efficient and low-latency video transmission.

[0189] (4) Parallel processing of encoding tasks and output of encoded video stream.

[0190] The application of parallel processing technology in video coding can significantly improve processing efficiency and reduce coding delay. Its basic principle is to decompose the video coding task into multiple subtasks, which can be executed on multiple coding processing units at the same time. Through reasonable task allocation and coordination mechanism, the consistency and integrity of the coding results can be ensured.

[0191] Parallel processing of encoding tasks:

[0192] 1. Formula and model:

[0193] 1.1 Task segmentation model:

[0194] Assume that a frame of video can be divided into N independent blocks, and the encoding processing time of each block is , then the total encoding time It can be expressed as: .

[0195] By parallelizing the processing, the total encoding time can ideally be close to the encoding time of the largest single block.

[0196] 1.2. Load balancing model:

[0197] Let P be the number of processing units, For the The goal is to balance the load of all processing units, that is: .

[0198] Through dynamic task allocation strategy, the load balance of each encoding processing unit is ensured, thereby improving the overall processing efficiency.

[0199] 2. The detailed steps of parallel encoding are as follows:

[0200] 2.1. Video frame segmentation:

[0201] Steps: Split each frame of video into multiple independent blocks (macroblocks), each of which can be encoded independently.

[0202] Method: Divide the frame into fixed-size regions, such as 16x16 or 32x32 blocks, depending on the frame resolution and content.

[0203] Result: Multiple independently processable blocks are generated, each assigned to a different encoding processing unit.

[0204] 2.2 Task allocation strategy:

[0205] Static allocation: A fixed allocation rule is defined in advance to allocate each block to a specific encoding processing unit. This method is suitable for systems with a relatively fixed number and distribution of processing units.

[0206] Dynamic allocation: Dynamically allocate tasks based on the real-time load of the encoding processing unit to ensure load balancing of each encoding processing unit. This method is suitable for systems with large variations in the number and performance of processing units.

[0207] 2.3 Task Scheduling

[0208] Scheduler design: Design a task scheduler to allocate the partitioned blocks to different processing units and monitor the status of each processing unit.

[0209] Scheduling strategy: Use polling, random allocation or load balancing-based scheduling strategies to improve the efficiency and fairness of task allocation.

[0210] 2.4 Data Synchronization:

[0211] Steps: Before each processing unit starts processing tasks, ensure that the data of all processing units are synchronized.

[0212] Method: Use a global clock or synchronization signal to ensure that all processing units start processing tasks at the same time.

[0213] Result: Avoid coding errors caused by data desynchronization.

[0214] 2.5. Boundary processing:

[0215] Problem: Since each processing unit processes different blocks independently, there may be processing discontinuities in the boundary areas between blocks.

[0216] Solution: When encoding blocks, the encoding processing unit needs to consider the boundary information of adjacent blocks and use boundary smoothing technology or share boundary data.

[0217] Result: The continuity of the boundaries between blocks is guaranteed and the encoding quality is improved.

[0218] 2.6. Result merging:

[0219] Steps: After each processing unit completes encoding, the results are merged into a complete encoded frame.

[0220] Method: A result merging module is designed to receive the encoding results of each encoding processing unit and merge them into a complete frame in the order of blocks.

[0221] Result: Consistent encoding frames are generated, ensuring the integrity of the encoding results.

[0222] For ease of understanding, this application provides Figure 4 The flowchart of parallel processing of encoding tasks is shown. Figure 4 The specific steps of task allocation, data synchronization, parallel processing and result merging are shown:

[0223] (1) Video input to video frame segmentation: The initial stage is to process the input video file.

[0224] (2) Task scheduling and data synchronization: parallel processing to ensure data synchronization and task distribution.

[0225] (3) Processing units 1 to N: Parallel encoding processing units that process different parts of the data. Ellipses indicate other scalable processing units.

[0226] (4) Boundary processing and encoding processing: Each unit performs boundary processing and encoding processing on the data. The ellipsis also indicates the processing of other units.

[0227] (5) Result merging and encoding output: Finally, all processing results are merged and the encoded video is output.

[0228] This application also applies parallel processing technology to video decoding, which can significantly improve processing efficiency and reduce decoding delay. The basic principle is to decompose the video decoding task into multiple subtasks, which can be executed on multiple decoding processing units at the same time. Through reasonable task allocation and coordination mechanism, the consistency and integrity of the decoding results are ensured.

[0229] 1. Task segmentation model:

[0230] Assume that a frame of encoded video can be divided into Independent blocks, the decoding processing time for each block is , then the total decoding time It can be expressed as: .

[0231] By parallelizing the decoding, the total decoding time can ideally be close to the decoding time of the largest single block.

[0232] 2. Load balancing model:

[0233] set up is the number of processing units, For the The goal is to balance the load of all processing units, that is:

[0234] Through dynamic task allocation strategy, the load balance of each processing unit is ensured, thereby improving the overall processing efficiency.

[0235] 3. The detailed steps of parallel decoding are as follows:

[0236] Encoded data segmentation: The encoded data of each frame is segmented into multiple independent blocks (macroblocks) according to the encoding information, and each block can be decoded independently. Multiple independently processable blocks are generated, and each block is assigned to a different encoding processing unit.

[0237] (1) Task allocation strategy:

[0238] AStatic allocation: pre-define fixed allocation rules to allocate each block to a specific processing unit. This method is suitable for systems with a relatively fixed number and distribution of processing units.

[0239] B Dynamic allocation: Dynamically allocate tasks based on the real-time load of the processing unit to ensure load balancing of each processing unit. This method is suitable for systems with large variations in the number and performance of processing units.

[0240] (2) Task Scheduling:

[0241] A Scheduler Design: Design a task scheduler that is responsible for assigning the segmented blocks to different processing units and monitoring the status of each processing unit.

[0242] B. Avoiding resource competition and conflicts: Mutual exclusion lock mechanism: When accessing shared resources, use a mutual exclusion lock to ensure that only one processing unit can access at the same time to avoid resource conflicts. Read-write lock mechanism: In a scenario where there are more reads than writes, use a read-write lock to allow multiple processing units to read data at the same time, but write operations are mutually exclusive to ensure data consistency.

[0243] C Load balancing: By real-time monitoring of the load of the processing unit, dynamically adjust the task allocation strategy to avoid overloading of the processing unit and improve the overall efficiency of the system.

[0244] D Scheduling strategy: Use polling, random allocation or load balancing-based scheduling strategies to improve the efficiency and fairness of task allocation.

[0245] (3) Data synchronization: Before each processing unit starts processing a task, ensure that the data of all processing units is synchronized. Use a global clock or synchronization signal to ensure that all processing units start processing tasks at the same time. Avoid decoding errors caused by data asynchrony.

[0246] (4) Parallel processing: During the parallel decoding process, each decoding processing unit processes different blocks independently, which may cause discontinuous processing of the boundaries between blocks. This is mainly because the various prediction techniques used in the encoding process may cause dependencies between adjacent blocks. To solve this problem, it is necessary to consider the boundary information of adjacent blocks when decoding each block. One possible method is to let the processing units share the boundary data of adjacent blocks during decoding, or use boundary smoothing technology to process the edges of blocks. This can ensure the continuity of the boundaries between blocks and further improve the decoding quality.

[0247] (5) Result merging: After each processing unit completes decoding, the results are merged into a complete decoded frame. A result merging module is designed to receive the decoding results of each processing unit and merge them into a complete frame in the order of blocks. A consistent decoded frame is generated to ensure the integrity of the decoding results.

[0248] For ease of understanding, this application provides Figure 5 The flowchart of parallel processing of decoding tasks is shown. Figure 5 The specific steps of task allocation, task scheduling, data synchronization, parallel processing and result merging are demonstrated. The specific steps are similar to the parallel processing process in the encoding stage and will not be described in detail in this application.

[0249] In summary, the innovation of this application in the field of low-latency video transmission technology is not limited to the encoding process, but also significantly optimizes the decoding process, ensuring the efficiency and stability of the entire video processing link. The following are the detailed innovations in encoding and decoding:

[0250] 1. Innovation in Coding

[0251] (1) Real-time content complexity assessment: Advanced image processing techniques such as edge detection, motion estimation, and texture analysis are used to assess the complexity of video frames in real time.

[0252] (2) Dynamic coding parameter adjustment: Dynamically adjust coding parameters including bit rate, frame rate and compression level according to complexity indicators (edge ​​density, motion amplitude, texture complexity) to optimize coding efficiency and video quality.

[0253] (3) Parallel processing architecture: By dividing the video frame into multiple blocks and enabling each processing unit to encode different blocks in parallel, the processing speed is greatly improved to support real-time video transmission requirements.

[0254] (4) Optimized application of hardware acceleration: The parallel computing capability of GPU can be used to significantly reduce the CPU burden and accelerate the encoding process, especially in the application of high-resolution video processing. Through effective hardware resource management and scheduling, the energy efficiency ratio can be optimized and the system power consumption and heat generation can be reduced.

[0255] 2. Innovation in decoding

[0256] (1) Parallel decoding: Similar to the encoding process, the decoding process also uses parallel processing technology. By dividing the encoded data stream into multiple blocks, each processing unit decodes independently, significantly improving the decoding speed.

[0257] (2) Intelligent decoding parameter adjustment: Dynamically adjust the decoding strategy based on the data load and hardware performance monitored in real time during the decoding process to ensure optimal decoding efficiency.

[0258] (3) Application of hardware acceleration in decoding: The decoding process can also be accelerated by hardware through GPU and dedicated decoding chips to improve decoding efficiency and reduce latency. Ensure that the decoder can run efficiently on different hardware platforms, adjust the decoding process through adaptive technology, and optimize performance and resource consumption.

[0259] This application also demonstrates the effect and operation process of this application in practical application through a specific port terminal scenario case. This case describes in detail how to use adaptive parallel encoding and decoding algorithms and hardware acceleration technology in a typical automated port project to achieve low latency and high-efficiency video transmission.

[0260] Application scenario: Automated port video surveillance system

[0261] Scenario description: In a modern automated port, a large number of container operations need to be monitored in real time to ensure the safety and efficiency of the operations. Due to the complex and changeable environment of the port, the video surveillance system needs to be able to efficiently process and transmit high-quality video signals.

[0262] Video acquisition: Use multiple high-definition cameras to cover the key operating areas of the port and collect video data of the operating site in real time.

[0263] Adaptive parallel encoding: Perform edge detection, motion estimation, and texture analysis on real-time captured videos to assess scene complexity. Based on the real-time evaluation results of scene complexity, dynamically adjust encoding parameters such as bit rate and frame rate to adapt to different video content and network conditions.

[0264] Parallel decoding: Video data is divided into multiple blocks, each of which is processed in parallel by an independent decoding unit, significantly improving processing speed and reducing transmission delay.

[0265] Video output: Use GPU and dedicated encoding chips to accelerate the video encoding and decoding process, ensure real-time performance, reduce system load, and output video end-to-end.

[0266] In the above embodiment, a low-latency video transmission method is provided. Correspondingly, the present application also provides a low-latency video transmission system. The low-latency video transmission system provided in the embodiment of the present application can implement the above low-latency video transmission method. The low-latency video transmission system can be implemented by software, hardware, or a combination of software and hardware. For example, the low-latency video transmission system may include integrated or separate functional modules or units to perform the corresponding steps in the above methods. Please refer to Figure 6 As shown, the low-latency video transmission system 100 includes:

[0267] The adaptive coding module 10 comprises a complexity analysis unit 101, a coding parameter adjustment unit 102 and a parallel coding unit 103;

[0268] The complexity analysis unit 101 is used to acquire video frames in real time, and perform complexity analysis on the video frames using a preset complexity index algorithm to obtain a complexity index value corresponding to the video frames; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm;

[0269] The encoding parameter adjustment unit 102 is used to dynamically adjust the encoding parameters according to the complexity index value, and the encoding parameters include bit rate, frame rate and compression level;

[0270] The parallel encoding unit 103 is used to divide the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoding frame;

[0271] The adaptive decoding module 20 is used to divide the coded frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame.

[0272] In a possible implementation, the complexity analysis unit 101 includes an edge detection subunit, a motion estimation subunit and a texture analysis subunit.

[0273] In a possible implementation, the edge detection subunit is used to identify edges and contours in the video frame using an edge detection algorithm, obtain the number of edge pixels and the total number of pixels in the video frame, and calculate the edge density of the video frame using the following formula;

[0274] ;

[0275] in, represents edge density, a represents the total number of pixels, and b represents the number of edge pixels.

[0276] In a possible implementation, the motion estimation subunit is used to calculate pixel changes between adjacent frames using a motion estimation algorithm, and calculate the motion amplitude of the video frame using the following formula;

[0277] ;

[0278] Where M represents the range of motion, Indicates Pixels in a video frame The value of a represents the total number of pixels.

[0279] In a possible implementation, the texture analysis subunit is used to evaluate the texture complexity of the video frame using a texture analysis algorithm, and calculate the texture complexity of the video frame using the following formula;

[0280] ;

[0281] in, represents texture complexity, K represents the number of texture filters in different directions and scales, c represents texture response, and a represents the total number of pixels.

[0282] In a possible implementation, the coding parameter adjustment unit 102 includes a threshold determination subunit and a coding parameter determination subunit.

[0283] In a possible implementation, the threshold determination subunit is used to determine the edge density threshold, the motion amplitude threshold and the texture complexity threshold respectively based on the correspondence between the range of the complexity index value and the preset threshold.

[0284] In one possible implementation, the encoding parameter determination subunit is used to determine whether to use a first bit rate for encoding if the edge density of the video frame is less than an edge density threshold, otherwise, to determine whether to use a second bit rate for encoding, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than a motion amplitude threshold, to determine whether to use a first frame rate for encoding, otherwise, to determine whether to use a second frame rate for encoding, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than a texture complexity threshold, to determine whether to use a first compression level for encoding, otherwise, to determine whether to use a second compression level for encoding, and the first compression level is higher than the second compression level.

[0285] The low-latency video transmission system provided in the embodiment of the present application and the low-latency video transmission method provided in the embodiment of the present application are based on the same inventive concept and have the same beneficial effects as the methods adopted, operated or implemented thereof.

[0286] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein by equivalents. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application, and they should all be included in the scope of the claims and specification of the present application.

Claims

1. A low-latency video transmission method, It is characterized in that include: An adaptive coding step, including a complexity analysis step, a coding parameter adjustment step and a parallel coding step; The complexity analysis step acquires video frames in real time, and uses a preset complexity index algorithm to perform complexity analysis on the video frames to obtain complexity index values ​​corresponding to the video frames; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm; The coding parameter adjustment step dynamically adjusts the coding parameters according to the complexity index value, the coding parameters including bit rate, frame rate and compression level; The parallel encoding step divides the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoded frame; Adaptive decoding step, dividing the coded frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame; The complexity analysis step includes an edge detection step, a motion estimation step and a texture analysis step; The edge detection step uses an edge detection algorithm to identify edges and contours in the video frame, obtains the number of edge pixels and the total number of pixels in the video frame, and calculates the edge density of the video frame using the following formula; ; in, represents edge density, a represents the total number of pixels, and b represents the number of edge pixels; The motion estimation step uses a motion estimation algorithm to calculate pixel changes between adjacent frames, and calculates the motion amplitude of the video frame using the following formula; ; Where M represents the range of motion, Indicates Pixels in a video frame The value of , a represents the total number of pixels; The texture analysis step uses a texture analysis algorithm to evaluate the texture complexity of the video frame, and calculates the texture complexity of the video frame using the following formula; ; in, represents texture complexity, K represents the number of texture filters in different directions and scales, c represents texture response, and a represents the total number of pixels; The coding parameter adjustment step includes a threshold determination step and a coding parameter determination step; The threshold determination step is to determine the edge density threshold, the motion amplitude threshold and the texture complexity threshold respectively based on the correspondence between the range of the complexity index value and the preset threshold; The encoding parameter determination step is as follows: if the edge density of the video frame is less than the edge density threshold, it is determined to be encoded at a first bit rate, otherwise it is determined to be encoded at a second bit rate, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than the motion amplitude threshold, it is determined to be encoded at a first frame rate, otherwise it is determined to be encoded at a second frame rate, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than the texture complexity threshold, it is determined to be encoded at a first compression level, otherwise it is determined to be encoded at a second compression level, and the first compression level is higher than the second compression level.

2. A low-latency video transmission system, It is characterized in that include: An adaptive coding module, comprising a complexity analysis unit, a coding parameter adjustment unit and a parallel coding unit; The complexity analysis unit is used to acquire video frames in real time, and perform complexity analysis on the video frames using a preset complexity index algorithm to obtain a complexity index value corresponding to the video frames; the complexity index algorithm includes an edge detection algorithm, a motion estimation algorithm, and a texture analysis algorithm; the complexity index value includes an edge density obtained based on the edge detection algorithm, a motion amplitude obtained based on the motion estimation algorithm, and a texture complexity obtained based on the texture analysis algorithm; The encoding parameter adjustment unit is used to dynamically adjust the encoding parameters according to the complexity index value, and the encoding parameters include bit rate, frame rate and compression level; The parallel encoding unit is used to divide the video frame into a plurality of independently processable blocks, each block is assigned to a different encoding processing unit, each encoding processing unit performs encoding processing on the assigned block according to the adjusted encoding parameters, and after each encoding processing unit completes encoding, all encoding results are merged into a complete encoding frame; An adaptive decoding module, used for dividing the coded frame into a plurality of independently processable blocks, each block is assigned to a different decoding processing unit, and after each decoding processing unit completes decoding, all decoding results are merged into a complete decoded frame; The complexity analysis unit includes an edge detection subunit, a motion estimation subunit and a texture analysis subunit; The edge detection subunit is used to identify edges and contours in the video frame using an edge detection algorithm, obtain the number of edge pixels and the total number of pixels in the video frame, and calculate the edge density of the video frame using the following formula; ; in, represents edge density, a represents the total number of pixels, and b represents the number of edge pixels; The motion estimation subunit is used to calculate the pixel changes between adjacent frames using a motion estimation algorithm, and calculate the motion amplitude of the video frame using the following formula; ; Where M represents the range of motion, Indicates Pixels in a video frame The value of , a represents the total number of pixels; The texture analysis subunit is used to evaluate the texture complexity of the video frame using a texture analysis algorithm, and calculate the texture complexity of the video frame using the following formula; ; in, represents texture complexity, K represents the number of texture filters in different directions and scales, c represents texture response, and a represents the total number of pixels; The coding parameter adjustment unit includes a threshold determination subunit and a coding parameter determination subunit; The threshold determination subunit is used to determine the edge density threshold, the motion amplitude threshold and the texture complexity threshold respectively based on the correspondence between the range of the complexity index value and the preset threshold; The encoding parameter determination subunit is used to determine whether to use a first bit rate for encoding if the edge density of the video frame is less than an edge density threshold, otherwise, to determine whether to use a second bit rate for encoding, and the first bit rate is lower than the second bit rate; if the motion amplitude of the video frame is less than a motion amplitude threshold, to determine whether to use a first frame rate for encoding, otherwise, to determine whether to use a second frame rate for encoding, and the first frame rate is lower than the second frame rate; if the texture complexity of the video frame is less than a texture complexity threshold, to determine whether to use a first compression level for encoding, otherwise, to determine whether to use a second compression level for encoding, and the first compression level is higher than the second compression level.