Coding acceleration method and system based on precoding information splitting

Through the precoding information splitting technology of HEVC video encoder, encoding small-sized encoding blocks is accelerated, which solves the problem of high encoding complexity in mobile applications, and improves encoding efficiency and quality assurance.

WO2024255561A1PCT designated stage expired Publication Date: 2024-12-19PENINSULA INFORMATION TECH INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/095075
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-16
Filing Date
2024-05-24
Publication Date
2024-12-19

AI Technical Summary

Technical Problem

During the formal encoding process of HEVC video encoder, the encoding blocks (such as 8x8-size encoding blocks) cannot borrow precoding information for encoding acceleration, resulting in high encoding operation complexity, which hinders its power consumption and computing power. Low mobile application.

Method used

By splitting the encoding cost information of larger-sized coded blocks, the encoding cost information of corresponding number of smaller-sized coded blocks is generated, which is used to assist in encoding analysis and pattern decision-making of small-sized coded blocks to achieve encoding acceleration.

Benefits of technology

While ensuring encoding quality, it improves video encoding efficiency, reduces encoding complexity, and significantly improves the encoding speed of mobile applications. The encoding FPS acceleration is 1.7%, and the bdrate loss of encoder quality evaluation is only 0.12%.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024095075_19122024_PF_FP_ABST
    Figure CN2024095075_19122024_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a coding acceleration method and system based on precoding information splitting. In the technical solution provided by the embodiments of the present application, the method comprises: acquiring first coding cost information of a first fixed-size coding block obtained by precoding a current frame, and splitting the first coding cost information to obtain second coding cost information for a corresponding number of second fixed-size coding blocks; and determining the frame type of the current frame, on the basis of the frame type and the block size of the current coding block, selecting corresponding second coding cost information for coding analysis, and according to a result of the coding analysis, performing coding of the current coding block, the coding analysis comprising intra-frame coding analysis and / or inter-frame coding analysis. By using the described technical means, the split coding cost information is used to perform coding analysis of a coding block of a small size, so as to assist in making a coding mode decision for the corresponding coding block. Coding efficiency is improved while coding quality is ensured, achieving coding acceleration for the coding block of a small size.
Need to check novelty before this filing date? Find Prior Art

Description

Coding acceleration method and system based on precoding information splitting

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on June 16, 2023, with application number 202310721353.X. The entire contents of this application are incorporated by reference into this application. Technical Field

[0002] The embodiments of the present application relate to the field of video coding technology, and in particular to a coding acceleration method and system based on pre-coding information splitting. Background Art

[0003] To reduce encoder computational complexity, HEVC video encoders currently perform pre-encoding before formal encoding. This provides pre-coding information for operations such as frame type decisions during formal encoding, improving coding efficiency. During pre-encoding, the source resolution video is downsampled by 1 / 2 to a lower-resolution video. The intra-frame and inter-frame coding costs are then calculated for each 8x8 coding block in the lower-resolution video. This is used to assist in mode decisions and other processes during the formal encoding process, thereby reducing encoder computational complexity.

[0004] However, since the 8x8 coding blocks processed in the pre-coding process are mapped to 16x16 coding blocks corresponding to the source resolution during the actual coding process, using the intra-frame and inter-frame coding costs of the pre-coded 8x8 coding blocks to accelerate the formal coding process is only applicable to the mode decision process for coding blocks of 16x16 or larger. For coding blocks that may be divided into smaller sizes (such as 8x8 coding blocks) during the formal coding process, it is impossible to use pre-coding information for coding acceleration, and the coding operation complexity remains high.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a coding acceleration method and system based on precoding information splitting, which can accelerate the coding of smaller-sized coding blocks, improve video coding efficiency, and solve the technical problem that small-sized coding blocks cannot be accelerated by means of precoding information.

[0007] In a first aspect, an embodiment of the present application provides a coding acceleration method based on precoding information splitting, including:

[0008] Obtaining first coding cost information of a first fixed-size coding block obtained by precoding the current frame, and splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks;

[0009] Determine the frame type of the current frame, select corresponding second coding cost information for coding analysis based on the frame type and the block size of the current coding block, and encode the current coding block according to the coding analysis result, where the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

[0010] In a second aspect, an embodiment of the present application provides a coding acceleration system based on precoding information splitting, including:

[0011] a splitting module configured to obtain first coding cost information of a first fixed-size coding block obtained by pre-coding the current frame, and split the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks;

[0012] An analysis module is configured to determine the frame type of the current frame, select corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis, and encode the current coding block according to the coding analysis result, where the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

[0013] In a third aspect, an embodiment of the present application provides a coding acceleration device based on precoding information splitting, including:

[0014] memory and one or more processors;

[0015] The memory is configured to store one or more programs;

[0016] When the one or more programs are executed by the one or more processors, the one or more processors implement the encoding acceleration method based on precoding information splitting as described in the first aspect.

[0017] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores computer-executable instructions. When the computer-executable instructions are executed by a computer processor, the encoding acceleration method based on precoding information splitting as described in the first aspect is configured to be executed.

[0018] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes instructions. When the instructions are executed on a computer or a processor, the computer or the processor executes the encoding acceleration method based on precoding information splitting as described in the first aspect.

[0019] The embodiment of the present application obtains the first coding cost information of the first fixed-size coding block obtained by pre-coding the current frame, splits the first coding cost information to obtain the second coding cost information of the corresponding number of second fixed-size coding blocks; determines the frame type of the current frame, selects the corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis, and encodes the current coding block according to the coding analysis result, and the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis. The above-mentioned technical means are adopted to split the coding cost information of the larger-sized coding block, and use the split coding cost information to perform coding analysis of the smaller-sized coding block to assist in making coding mode decisions for the corresponding coding block, save computing processes, improve coding efficiency while ensuring coding quality, and achieve coding acceleration effect for small-sized coding blocks. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] FIG1 is a flowchart of a coding acceleration method based on precoding information splitting provided by an embodiment of the present application;

[0021] FIG2 is a flow chart of video encoding in an embodiment of the present application;

[0022] FIG3 is a schematic diagram of a data storage structure in an embodiment of the present application;

[0023] FIG4 is a flowchart of intra-frame coding acceleration in an embodiment of the present application;

[0024] FIG5 is a flowchart of accelerated document encoding in an embodiment of the present application;

[0025] FIG6 is a schematic structural diagram of a coding acceleration system based on precoding information splitting according to an embodiment of the present application;

[0026] FIG7 is a schematic structural diagram of a coding acceleration device based on precoding information splitting provided in an embodiment of the present application. DETAILED DESCRIPTION

[0027] In order to make the purpose, technical solutions and advantages of the present application clearer, the specific embodiments of the present application are further described in detail below in conjunction with the accompanying drawings. It is understood that the specific embodiments described herein are only used to explain the present application and are not intended to limit the present application. It should also be noted that, for ease of description, only parts related to the present application, not all of the contents, are shown in the accompanying drawings. Before discussing the exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flow charts. Although the flow charts describe each operation (or step) as a sequential process, many of the operations therein can be implemented in parallel, concurrently or simultaneously. In addition, the order of the operations can be rearranged. The process can be terminated when its operation is completed, but can also have additional steps not included in the accompanying drawings. The process can correspond to a method, function, procedure, subroutine, subprogram, etc.

[0028] The coding acceleration method based on precoding information splitting provided in this application aims to split the coding cost information of larger-sized coding blocks, use the split coding cost information to perform coding analysis on smaller-sized coding blocks, so as to assist in making coding mode decisions for the corresponding coding blocks, and achieve coding acceleration effects for small-sized coding blocks.

[0029] In relevant video coding scenarios, taking the HEVC encoder as an example, HEVC has added more intra-frame and inter-frame coding modes compared to previous video coding standards, while allowing for coding blocks of larger sizes and using quadtree partitioning technology to traverse the RDO process to obtain the optimal block size. The introduction of these coding tools enables HEVC to achieve a higher compression ratio than AVC, but its computational complexity undoubtedly limits its practical application on mobile platforms with limited computing power and power consumption. Therefore, reducing HEVC's computational complexity while ensuring controllable quality loss is imperative and of great significance for mobile applications.

[0030] The HEVC encoder includes a pre-coding module, which is used to obtain spatial and temporal adaptive QP offset values ​​and intra-frame and inter-frame coding costs for rate control. It also calculates the intra-frame and inter-frame coding costs for 8x8 coding blocks to accelerate mode decisions and coding block partitioning during the main encoding process. However, the minimum coding unit of the HEVC encoder is 8x8, and the block size on the 1 / 2 downsampled pixel plane analyzed and processed by the pre-coding module is also 8x8. However, when the 8x8 coding blocks analyzed and processed by the pre-coding module are mapped to 16x16 coding blocks at the source resolution during the actual encoding process, they should correspond to 16x16 coding blocks at the source resolution. Therefore, using the intra-frame and inter-frame coding costs of the 8x8 coding blocks in the pre-coding module to accelerate the main encoding process is only applicable to mode decisions or partitioning for coding blocks larger than 16x16. However, statistics on coding block sizes in HEVC coded streams reveal that a large number of 8x8 coding blocks are still present. Especially for content with complex textures, smaller coding blocks are more likely to appear in I and P frames, and these smaller coding blocks cannot be accelerated by using pre-coding information.

[0031] Therefore, while the HEVC encoder significantly improves encoding quality, it also significantly increases encoding complexity and reduces encoding speed, hindering its practical application on mobile devices with low power consumption and computing power. The optimal intra-frame and inter-frame coding cost information for 8x8 blocks calculated with the help of the pre-coding module in the encoder can only solve the coding analysis acceleration for coding blocks larger than 16x16 when accelerating the coding block mode decision and coding block division in the formal coding process. For coding blocks of 8x8 size, since the pre-coding information for the corresponding position cannot be obtained, it can only follow the original coding analysis logic to traverse various modes to find the optimal mode, and its coding operation complexity is still relatively high.

[0032] Based on this, an encoding acceleration method based on precoding information splitting is provided in an embodiment of the present application to solve the technical problem that small-sized encoding blocks cannot be encoded accelerated with the help of precoding information.

[0033] Example:

[0034] FIG1 shows a flow chart of a coding acceleration method based on precoding information splitting provided in an embodiment of the present application. The coding acceleration method based on precoding information splitting provided in this embodiment can be executed by a coding acceleration device based on precoding information splitting. The coding acceleration device based on precoding information splitting can be implemented in software and / or hardware. The coding acceleration device based on precoding information splitting can be composed of two or more physical entities, or can be composed of one physical entity. Generally speaking, the coding acceleration device based on precoding information splitting can be an encoder device, a computer, a mobile phone, a tablet, or other computing device with video coding capabilities.

[0035] The following description will be made by taking the coding acceleration device based on precoding information splitting as an example to perform the coding acceleration method based on precoding information splitting. Referring to FIG1 , the coding acceleration method based on precoding information splitting specifically includes:

[0036] S110, obtaining first coding cost information of a first fixed-size coding block obtained by precoding the current frame, and splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks;

[0037] S120. Determine the frame type of the current frame, select corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis, and encode the current coding block according to the coding analysis result, where the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

[0038] In the embodiment of the present application, when performing encoding acceleration by splitting pre-coding information, the pre-coding information of each fixed-size coding block is obtained during the pre-coding process of the video frame. The coding information of these fixed-size coding blocks is split and used in the subsequent formal encoding process. The split pre-coding information is used to analyze the coding of the smaller coding blocks of the video frame, thereby achieving an encoding acceleration effect.

[0039] Taking the HEVC video encoder as an example, the pre-coding module primarily performs optimal frame structure determination, spatially adaptive QP offset analysis, and temporally adaptive QP offset analysis. The optimal intra-frame and inter-frame coding costs at the 8x8 block level obtained during the pre-coding process are also used by the rate control module to calculate frame-level and macroblock row-level QPs. The pre-coding process involves downsampling the original frame by 1 / 2, resulting in a 1 / 2 downsampled frame corresponding to the original frame. This 1 / 2 downsampled frame is then used for the pre-coding analysis described above. The 1 / 2 downsampled frame is divided into 8x8 coding blocks and the block-level characteristics are analyzed in sequence. Therefore, for coding blocks larger than 16x16 in the original frame, precoding information can be found at the corresponding position. For example, a 16x16 coding block in the original frame corresponds one-to-one with an 8x8 coding block in the 1 / 2 downsampled frame. A 32x32 coding block in the original frame corresponds to four 8x8 coding blocks in the 1 / 2 downsampled frame. However, for an 8x8 coding block in the original frame, there is no corresponding 4x4 precoding information in the 1 / 2 downsampled frame.

[0040] Therefore, the present application splits the precoding information of the coding block precoded for the current frame, defines the precoded coding block as a first fixed-size coding block, and defines its precoding information as the first coding cost information. The split coding block is defined as a second fixed-size coding block, and its corresponding precoding information is the second coding cost information. For example, the precoding information of the 8x8 coding block is split so that the precoding analysis process generates precoding information in units of 4x4 block size. This provides a decision basis for the mode decision of the 8x8 size coding block in the formal coding process, so as to skip some unnecessary mode decisions. At the same time, it can provide a judgment basis for the division of the 16x16 size coding block, thereby accelerating its coding analysis process.

[0041] Exemplarily, with reference to FIG2 , a video encoding flow chart of an embodiment of the present application is provided. For a video frame input to the encoder, it is first converted into a YUV video sequence. The YUV video sequence needs to be analyzed through pre-coding to generate the intra-frame and inter-frame coding costs of the 8x8 coding block with 1 / 2 downsampling, that is, the first coding cost information. Prior to this, a data storage structure is allocated for the pre-coding information generated by the pre-coding analysis through the lowres initialization module to store the corresponding pre-coding information. Since the embodiment of the present application needs to generate four 4x4 intra-frame and inter-frame coding costs based on the 8x8 coding block, it is necessary to additionally allocate space in the lowres initialization module to store the intra-frame and inter-frame coding costs of all 4x4 blocks.

[0042] During the normal precoding analysis process, the intra-frame and inter-frame costs are first calculated using the 8x8 block as the basic unit, and the optimal intra-frame mode and the optimal inter-frame matching block are searched. The SATD (Sum of Absolute Transform Differences) of the optimal intra-frame mode is calculated as the optimal intra-frame coding cost, and the SATD of the optimal inter-frame matching block is calculated as the optimal inter-frame coding cost, thereby obtaining the coding cost information for an 8x8 block. During the precoding optimal intra-frame mode selection process and the optimal inter-frame matching block search process, the 8x8 block is still used as the basic unit. However, when calculating the SATD, the 8x8 block needs to be split into four 4x4 blocks and the SATD is calculated separately. The four 4x4 blocks share the same intra-frame mode and inter-frame motion vector, but the distribution of their residuals can still reflect the spatiotemporal complexity of different regions in the 8x8 block. Therefore, the SATD is calculated in units of 4x4 blocks to reflect this complexity. In this way, by splitting the precoding information of the precoding process, the second coding cost information (coding cost information of four 4x4 blocks) is obtained after the first coding cost information (coding cost information of 8x8 blocks) is split.

[0043] After obtaining the intra and inter coding costs for the 4x4 blocks on the 1 / 2 downsampled plane of the current frame, auxiliary decisions can be made regarding the mode selection for dividing the current frame into 8x8 blocks and the 16x16 blocks during the actual encoding process. For example, if the optimal intra coding costs of the four 4x4 blocks are relatively balanced, this indicates that the texture complexity of the current block is relatively uniform. In this case, if the optimal intra coding costs are low, the actual encoding process will tend to encode the 16x16 block corresponding to the 8x8 block as a whole and not further divide it into 8x8 blocks. Conversely, if the optimal intra coding costs of the four 4x4 blocks are extremely uneven, with a large difference between the maximum and minimum values, this indicates that the 16x16 block corresponding to the 8x8 block has strong edge information. In this case, the actual encoding process will tend to divide the 16x16 block into smaller 8x8 blocks, hoping that each 8x8 block can find its own optimal intra coding mode, thereby reducing residual error and distortion. Inter-frame coding has the same tendency, so the pre-coded 4x4 block optimal intra-frame coding cost and inter-frame optimal coding cost can be used as the basis for accelerating the intra-frame and inter-frame coding process. Therefore, by allocating additional storage space, 4x4 block intra-frame and inter-frame coding costs are generated during pre-coding. Combined with the frame type and block size of the current frame, the pre-coded 4x4 block intra-frame coding cost is used to accelerate the division of 16x16 coding blocks for intra-frame coding and the mode selection of 8x8 coding blocks for inter-frame coding, achieving coding acceleration.

[0044] It should be noted that in actual applications, for different video coding standards, the coding block sizes for pre-coding and formal coding may be different. That is, the coding block for pre-coding analysis can be an 8x8 coding block obtained by downsampling the corresponding 16x16 coding block by 1 / 2, or it can be a coding block of other different sizes. According to the coding acceleration requirements of coding blocks of different sizes during the formal coding process, the first fixed-size coding block and the second fixed-size coding block can be adaptively set. The embodiments of the present application do not impose fixed restrictions on the specific coding block size, and they are not detailed here.

[0045] Specifically, the following describes an embodiment of the present application using the splitting of precoding information for 8x8 blocks as an example. Before splitting the first coding cost information to obtain second coding cost information for a corresponding number of second fixed-size coding blocks, the method further includes: determining the number of splits of the first fixed-size coding block corresponding to the second fixed-size coding blocks, and allocating a data storage structure to store the second coding cost information based on the total number of first fixed-size coding blocks and the number of splits.

[0046] Assuming that the number of 8x8 blocks divided by the 1 / 2 downsampled pixel plane is cuCount, it is necessary to allocate an additional 4*cuCount data structures for the second coding cost information of the split 4x4 blocks to store the optimal intra-frame coding cost and the optimal inter-frame coding cost, that is, the second coding cost information. A three-dimensional array is used to store the optimal intra-frame coding cost and the optimal inter-frame coding cost information of all 4x4 blocks. The three-dimensional array is represented as: lowresCost4x4[BFRAME_MAX+2][BFRAME_MAX+2][4*cuCount]. The first two dimensions of lowresCost4x4 represent the distance between the current frame and the forward reference frame and the distance between the current frame and the backward reference frame. If the forward and backward distances are 0, lowresCost4x4 actually stores the intra-frame cost, and the rest of the cases are inter-frame costs. The third dimension represents the position of the 4x4 block. For example, lowresCost4x4[1][1][0] of the current frame refers to the bidirectional prediction cost between the first 4x4 block of the current frame and the previous and next frames. lowresCost4x4[0][0][0] represents the intra-frame coding cost of the first 4x4 block of the current frame. The specific data type of lowresCost4x4 is uint16_t. Its first two dimensions are related to the reference distance. The maximum reference distance is the maximum number of b-frames allowed + 2 (i.e., BFRAME_MAX+2). Here, BFRAME_MAX can be adjusted more reasonably according to the actual coding requirements. When extracting the corresponding information from this data structure, lowresCost4x4 needs to solve the optimal intra-frame coding cost 4x4[i] and the optimal inter-frame coding cost 4x4[i]. The solution formula is as follows:

[0047] Intra-frame optimal coding cost 4x4[i] = lowresCost4x4[0][0][i]

[0048] Inter-frame optimal coding cost 4x4[i] = lowresCost4x4[dist0][dist1][i]

[0049] Here, dist0 represents the distance between the current frame and the forward reference frame, and dist1 represents the distance between the current frame and the backward reference frame. These values ​​are provided during the formal encoding analysis process, and i represents the position of all 4x4 blocks that are looped over. Based on this pre-built data storage structure, the first encoding cost information for the current frame can be split and stored during the pre-encoding process.

[0050] Furthermore, after splitting the first coding cost information to obtain the second coding cost information of the corresponding number of second fixed-size coding blocks, it also includes: storing each second coding cost information in the data storage structure allocated to the corresponding first fixed-size coding block according to the row scanning order of the second fixed-size coding block.

[0051] During the precoding analysis process, the coding cost and other data structures of the 8x8 block are stored in row scan order. Since the 8x8 block is split into four 4x4 blocks in the embodiment of the present application, when storing the lowresCost4x4 data structure, the four 4x4 blocks of each 8x8 block are also stored in row scan order. As shown in Figure 3, 1, 2, 3, and 4 belong to the first 8x8 block, and 5, 6, 7, and 8 belong to the second 8x8 block. The coding cost information of each 4x4 block is stored according to the sequence number in Figure 2. After storing one 8x8 block row, the next row will be stored. The calculation of the 4x4 block coding cost is to replace the original 8x8 block satd calculation with four 4x4 satd calculations. For the 8x8 block satd that needs to be stored in the original data structure, the sum of the four 4x4 block satds is taken. Because the 8x8 satd itself is calculated by traversing and summing the 4x4 blocks, it does not increase the amount of calculation too much, and can ensure the coding efficiency of the subsequent adaptive split pre-coding information auxiliary coding.

[0052] Afterwards, for the second coding cost information stored in the encoding process, the corresponding second coding cost information can be selected based on the frame type and the block size of the current coding block for coding analysis. Referring to FIG4 , the intra-frame coding analysis process includes:

[0053] S1201: When the frame type is an I frame and the block size of the current coding block corresponds to the block size of the first fixed-size coding block before downsampling, extract intra-frame coding cost information included in each second coding cost information corresponding to the current coding block, and calculate a maximum intra-frame coding cost and an average intra-frame coding cost based on the extracted intra-frame coding cost information.

[0054] S1202 : Based on the maximum intra-frame coding cost and the average intra-frame coding cost, a skipping judgment of the intra-frame mode check process of the block size level corresponding to the current coding block is performed.

[0055] When the current frame is an I frame, in the recursive analysis of the coding of the I frame, if the current coding block size is 16x16, the corresponding 8x8 block position on the 1 / 2 downsampled pixel plane of the corresponding position is obtained, thereby taking out the optimal intra-frame coding cost of the four 4x4 blocks (i.e., the intra-frame coding cost information). Refer to the above data structure solution formula to solve the optimal intra-frame coding cost from the lowresCost4x4 data structure. Then, based on the solved optimal intra-frame coding cost, the maximum intra-frame coding cost intraCostMax and the average intra-frame coding cost intraCostAvg of the four 4x4 blocks are calculated, and then the intra-frame mode check process of the block size level corresponding to the current coding block is skipped. Among them, the intra-frame mode check process of the block size level corresponding to the current coding block is skipped based on the maximum intra-frame coding cost and the average intra-frame coding cost, including:

[0056] When the maximum intra-frame coding cost is greater than the set multiple of the average intra-frame coding cost, and the coding depth of the current coding block is less than the coding depth of the associated coding block, the intra-frame mode check process of the block size level corresponding to the current coding block is skipped and the intra-frame mode check process of the next block size level is entered.

[0057] If intraCostMax is greater than intraCostAvg*2, and the coding depths of the associated coding blocks (left and upper coding blocks) of the current 16x16 size coding block are greater than the current layer depth, the current layer mode check is skipped and the 8x8 size mode check is directly entered. In this way, the acceleration of intra-frame coding is achieved by skipping the mode check. In practical applications, different comparison conditions can also be set according to the maximum intra-frame coding cost and the average intra-frame coding cost, and the intra-frame mode check process of the block size level corresponding to the current coding block is skipped according to the comparison results. The embodiment of the present application does not impose fixed restrictions on the specific comparison conditions, which will not be elaborated here.

[0058] On the other hand, referring to FIG5 , the inter-frame coding analysis process includes:

[0059] S1203: When the frame type is a P frame or a B frame, and the block size of the current coding block corresponds to the block size of the first fixed-size coding block, extracting intra-frame coding cost information and inter-frame coding cost information included in the second coding cost information corresponding to the current coding block;

[0060] S1204: If the inter-frame coding cost information is greater than the product of the intra-frame coding cost information and the intra-frame influence coefficient, and the associated coding block adopts intra-frame mode check, skip the inter-frame mode check process of the current coding block;

[0061] S1205 : If the inter-frame mode check process of the current coding block is not skipped and the inter-frame coding cost information is greater than the intra-frame coding cost information, filter out candidate motion vectors for motion estimation of the current coding block.

[0062] When the current frame is a P-frame or B-frame, during the inter-frame coding recursive analysis, if the current coding block size is 8x8, first obtain the 4x4 block position coordinates on the 1 / 2 downsampled pixel plane corresponding to the current coding block, and extract the intra-frame coding cost intraCost4x4 and inter-frame coding cost interCost4x4 of the 4x4 block. If interCost4x4 is greater than intraCost4x4*ratioIntra4x4 (ratioIntra4x4 is the intra-frame influence coefficient, here taken as 1.25), and at the same time, the associated coding blocks of this 8x8 size coding block all use intra-frame mode checking, that is, the left coding block and the upper coding block mode are both intra-frame mode, then the inter-frame mode checking is skipped. If the inter-frame mode check is not skipped, a further judgment is made before the inter-frame mode check. If interCost4x4 is greater than intraCost4x4, the number of candidate motion vectors that need to be checked for motion estimation of the current 8x8 size coding block is reduced. Usually, the parent block motion vector of the current coding block and the corresponding 8x8 block motion vector in the corresponding 1 / 2 down-sampling plane are removed from the candidate motion vector mvs to simplify the motion estimation process.

[0063] In addition, after extracting the intra-frame coding cost information and the inter-frame coding cost information included in the second coding cost information corresponding to the current coding block, the method further includes:

[0064] When the intra-frame coding cost information is greater than the product of the inter-frame coding cost information and the inter-frame influence coefficient, and the associated coding block does not adopt the intra-frame mode check, the intra-frame mode check process of the current coding block is skipped.

[0065] When performing intra-frame mode check on an 8x8 block, if intraCost4x4 is greater than interCost4x4*ratioInter4x4 (ratioInter4x4 is the inter-frame influence coefficient, which is 1.5 here), and the associated coding blocks of this 8x8 size coding block (i.e., the left coding block and the upper coding block) are not intra-frame modes, the intra-frame mode check is skipped to save calculations.

[0066] From the above strategies for intra-frame coding acceleration and inter-frame coding acceleration, it can be seen that since the intra-frame and inter-frame coding costs of the 4x4 blocks used in this application are not the true satd values ​​obtained by the actual 4x4 coding blocks through intra-frame mode selection and inter-frame motion estimation, further constraints are made in conjunction with the mode information or depth information of some surrounding blocks or upper-level parent blocks during use, thereby reducing the quality loss caused by some misjudgments.

[0067] By splitting the pre-encoded 8x8 block coding costs, the pre-encoding analysis process generates intra-frame and inter-frame coding costs in 4x4 block units. This provides a basis for decision-making on the 8x8 coding block mode during the actual encoding process, allowing unnecessary mode decisions to be skipped. It can also be used to accelerate the partitioning of 16x16 coding blocks. Based on actual testing, the final algorithm achieved a 1.7% increase in encoding fps on mobile devices, while only losing 0.12% in encoder quality assessment bdratio.

[0068] In the above, the first coding cost information of the first fixed-size coding block obtained by pre-coding the current frame is obtained, and the first coding cost information is split to obtain the second coding cost information of the corresponding number of second fixed-size coding blocks; the frame type of the current frame is determined, and the corresponding second coding cost information is selected based on the frame type and the block size of the current coding block for coding analysis, and the current coding block is encoded according to the coding analysis result, and the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis. The above technical means are adopted to split the coding cost information of the larger-size coding block, and use the split coding cost information to perform coding analysis of the smaller-size coding block to assist in making coding mode decisions for the corresponding coding block, save computing processes, improve coding efficiency while ensuring coding quality, and achieve coding acceleration effect for small-size coding blocks.

[0069] Based on the above embodiment, FIG6 is a schematic diagram of the structure of a coding acceleration system based on precoding information splitting provided by this application. Referring to FIG6 , the coding acceleration system based on precoding information splitting provided by this embodiment specifically includes: a splitting module 21 and an analysis module 22.

[0070] The splitting module 21 is configured to obtain first coding cost information of a first fixed-size coding block obtained by pre-coding the current frame, and split the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks;

[0071] The analysis module 22 is configured to determine the frame type of the current frame, select the corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis, and encode the current coding block according to the coding analysis result. The coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

[0072] Specifically, before splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks, the method further includes:

[0073] The number of splits of the first fixed-size coding block corresponding to the second fixed-size coding block is determined, and a data storage structure is allocated to store the second coding cost information according to the total number and the number of splits of the first fixed-size coding block.

[0074] After splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks, the method further includes:

[0075] The second encoding cost information is stored in the data storage structure allocated to the corresponding first fixed-size encoding block according to the row scanning order of the second fixed-size encoding block.

[0076] Specifically, selecting corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis includes:

[0077] S1201: When the frame type is an I frame and the block size of the current coding block corresponds to the block size of the first fixed-size coding block before downsampling, extract intra-frame coding cost information included in each second coding cost information corresponding to the current coding block, and calculate a maximum intra-frame coding cost and an average intra-frame coding cost based on the extracted intra-frame coding cost information.

[0078] S1202 : Based on the maximum intra-frame coding cost and the average intra-frame coding cost, a skipping judgment of the intra-frame mode check process of the block size level corresponding to the current coding block is performed.

[0079] The skipping judgment of the intra mode check process for the block size level corresponding to the current coding block is performed based on the maximum intra coding cost and the average intra coding cost, including:

[0080] When the maximum intra-frame coding cost is greater than the set multiple of the average intra-frame coding cost, and the coding depth of the current coding block is less than the coding depth of the associated coding block, the intra-frame mode check process of the block size level corresponding to the current coding block is skipped and the intra-frame mode check process of the next block size level is entered.

[0081] On the other hand, selecting corresponding second coding cost information based on the frame type and the block size of the current coding block for coding analysis includes:

[0082] S1203: When the frame type is a P frame or a B frame, and the block size of the current coding block corresponds to the block size of the first fixed-size coding block, extracting intra-frame coding cost information and inter-frame coding cost information included in the second coding cost information corresponding to the current coding block;

[0083] S1204: If the inter-frame coding cost information is greater than the product of the intra-frame coding cost information and the intra-frame influence coefficient, and the associated coding block adopts intra-frame mode check, skip the inter-frame mode check process of the current coding block;

[0084] S1205 : If the inter-frame mode check process of the current coding block is not skipped and the inter-frame coding cost information is greater than the intra-frame coding cost information, filter out candidate motion vectors for motion estimation of the current coding block.

[0085] After extracting the intra-frame coding cost information and the inter-frame coding cost information included in the second coding cost information corresponding to the current coding block, the method further includes:

[0086] When the intra-frame coding cost information is greater than the product of the inter-frame coding cost information and the inter-frame influence coefficient, and the associated coding block does not adopt the intra-frame mode check, the intra-frame mode check process of the current coding block is skipped.

[0087] In the above, the first coding cost information of the first fixed-size coding block obtained by pre-coding the current frame is obtained, and the first coding cost information is split to obtain the second coding cost information of the corresponding number of second fixed-size coding blocks; the frame type of the current frame is determined, and the corresponding second coding cost information is selected based on the frame type and the block size of the current coding block for coding analysis, and the current coding block is encoded according to the coding analysis result, and the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis. The above technical means are adopted to split the coding cost information of the larger-size coding block, and use the split coding cost information to perform coding analysis of the smaller-size coding block to assist in making coding mode decisions for the corresponding coding block, save computing processes, improve coding efficiency while ensuring coding quality, and achieve coding acceleration effect for small-size coding blocks.

[0088] The coding acceleration system based on precoding information splitting provided in the embodiment of the present application can be configured to execute the coding acceleration method based on precoding information splitting provided in the above embodiment, and has corresponding functions and beneficial effects.

[0089] Based on the above practical example, the embodiment of the present application also provides a coding acceleration device based on precoding information splitting. Referring to Figure 7, the coding acceleration device based on precoding information splitting includes: a processor 31, a memory 32, a communication module 33, an input device 34 and an output device 35. The memory, as a computer-readable storage medium, can be configured to store software programs, computer executable programs and modules, such as the program instructions / modules corresponding to the coding acceleration method based on precoding information splitting described in any embodiment of the present application (for example, the splitting module and analysis module in the coding acceleration system based on precoding information splitting). The communication module is configured to perform data transmission. The processor executes various functional applications and data processing of the device by running the software programs, instructions and modules stored in the memory, that is, realizing the above-mentioned coding acceleration method based on precoding information splitting. The input device can be configured to receive input digital or character information and generate key signal input related to user settings and function control of the device. The output device can include a display device such as a display screen. The coding acceleration device based on precoding information splitting provided above can be configured to execute the coding acceleration method based on precoding information splitting provided in the above embodiment, with corresponding functions and beneficial effects.

[0090] Based on the above embodiments, embodiments of the present application further provide a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions. When executed by a computer processor, the computer-executable instructions are configured to execute a coding acceleration method based on precoding information splitting. The storage medium can be any of various types of memory devices or storage devices. Of course, the computer-executable instructions of the computer-readable storage medium provided in embodiments of the present application are not limited to the coding acceleration method based on precoding information splitting described above, and can also execute related operations in the coding acceleration method based on precoding information splitting provided in any embodiment of the present application.

[0091] Based on the above embodiments, the embodiments of the present application also provide a computer program product. The technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. The computer program product is stored in a storage medium and includes a number of instructions for enabling a computer device, a mobile terminal or a processor therein to execute all or part of the steps of the coding acceleration method based on precoding information splitting described in each embodiment of the present application.

Claims

1. A coding acceleration method based on precoding information splitting, wherein: include: Acquire first coding cost information of a first fixed-size coding block obtained by precoding the current frame, and split the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks; Determine the frame type of the current frame, select the corresponding second coding cost information for coding analysis based on the frame type and the block size of the current coding block, and encode the current coding block according to the coding analysis result, wherein the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

2. The coding acceleration method based on precoding information splitting according to claim 1, wherein: Before splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks, the method further includes: The number of splits of the first fixed-size coding block corresponding to the second fixed-size coding block is determined, and a data storage structure is allocated to store the second coding cost information according to the total number of the first fixed-size coding blocks and the number of splits.

3. The coding acceleration method based on precoding information splitting according to claim 2, wherein: After splitting the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks, the method further includes: Store each piece of the second encoding cost information into the data storage structure allocated to the corresponding first fixed-size encoding block according to the row scanning order of the second fixed-size encoding block.

4. The coding acceleration method based on precoding information splitting according to claim 1, wherein: The selecting the corresponding second coding cost information for coding analysis based on the frame type and the block size of the current coding block includes: When the frame type is an I frame and the block size of the current coding block corresponds to the block size before downsampling of the first fixed-size coding block, extracting intra-frame coding cost information included in each of the second coding cost information corresponding to the current coding block, and calculating a maximum intra-frame coding cost and an average intra-frame coding cost based on the extracted intra-frame coding cost information; A skipping judgment of the intra-frame mode check process of the block size level corresponding to the current coding block is performed based on the maximum intra-frame coding cost and the average intra-frame coding cost.

5. The coding acceleration method based on precoding information splitting according to claim 4, wherein: The skipping judgment of the intra-frame mode check process of the block size level corresponding to the current coding block based on the maximum intra-frame coding cost and the average intra-frame coding cost includes: When the maximum intra-frame coding cost is greater than the average intra-frame coding cost of the set multiple, and the current When the coding depth of a coding block is less than the coding depth of an associated coding block, the intra-mode check process of the block size level corresponding to the current coding block is skipped, and the intra-mode check process of the next block size level is entered.

6. The coding acceleration method based on precoding information splitting according to claim 1, wherein: The selecting the corresponding second coding cost information for coding analysis based on the frame type and the block size of the current coding block includes: When the frame type is a P frame or a B frame and the block size of the current coding block corresponds to the block size of the first fixed-size coding block, extracting intra-frame coding cost information and inter-frame coding cost information included in the second coding cost information corresponding to the current coding block; When the inter-frame coding cost information is greater than the product of the intra-frame coding cost information and the intra-frame influence coefficient, and the associated coding block adopts the intra-frame mode check, skipping the inter-frame mode check process of the current coding block; When the inter-frame mode check process of the current coding block is not skipped and the inter-frame coding cost information is greater than the intra-frame coding cost information, the candidate motion vectors for motion estimation of the current coding block are screened out.

7. The coding acceleration method based on precoding information splitting according to claim 6, wherein: After extracting the intra-frame coding cost information and the inter-frame coding cost information included in the second coding cost information corresponding to the current coding block, the method further includes: When the intra-frame coding cost information is greater than the product of the inter-frame coding cost information and the inter-frame influence coefficient, and the associated coding block does not adopt the intra-frame mode check, the intra-frame mode check process of the current coding block is skipped.

8. A coding acceleration system based on precoding information splitting, wherein: include: A splitting module is configured to obtain first coding cost information of a first fixed-size coding block obtained by precoding the current frame, and split the first coding cost information to obtain second coding cost information of a corresponding number of second fixed-size coding blocks; The analysis module is configured to determine the frame type of the current frame, select the corresponding second coding cost information for coding analysis based on the frame type and the block size of the current coding block, and encode the current coding block according to the coding analysis result, wherein the coding analysis includes intra-frame coding analysis and / or inter-frame coding analysis.

9. A coding acceleration device based on precoding information splitting, wherein: include: memory and one or more processors; The memory is configured to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more A processor implements the encoding acceleration method based on precoding information splitting as described in any one of claims 1-7.

10. A computer-readable storage medium, wherein: The computer-readable storage medium stores computer-executable instructions, which, when executed by a computer processor, are configured to execute the encoding acceleration method based on precoding information splitting as described in any one of claims 1-7.

11. A computer program product, wherein: The computer program product includes instructions, and when the instructions are executed on a computer or a processor, the computer or the processor executes the coding acceleration method based on precoding information splitting as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Image encoding method

    CN109561304A

  • Inter-frame CU depth estimation method and device based on HEVC

    CN113645465A

  • Coding acceleration method and system based on precoding information splitting

    CN116996679A

  • Limited error raster compression

    US20160127746A1

  • Content adaptive quantization strength and bitrate modeling

    US20200137389A1