Video coding partitioning method, apparatus and device based on quadtree sub-blocks and medium

By using a quadtree-based sub-block partitioning method in video encoding, and utilizing a target depth mapping table and a threshold table to determine whether to skip fine-grained partitioning, the problem of high encoding complexity is solved, and encoding efficiency is improved.

CN122160526APending Publication Date: 2026-06-05MALANSHAN AUDIO & VIDEO LABORATORY
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
MALANSHAN AUDIO & VIDEO LABORATORY
Filing Date
2026-04-23
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

Existing video coding technologies suffer from high coding complexity and low coding efficiency, especially the excessive computational cost of rate-distortion optimization search caused by blindly attempting binary, extended quadtree, and ternary tree partitions after quadtree partitioning.

Method used

By dividing the current encoded frame into quadtrees, the target position and image division depth of the quadtree sub-blocks in the encoded reference frame are determined. The target depth mapping table and threshold table are used to determine whether to skip binary tree, expand quadtree and ternary tree division, thereby reducing encoding complexity.

Benefits of technology

It reduces coding complexity, improves coding efficiency, reduces unnecessary partitioning pattern attempts, and saves coding time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122160526A_ABST
    Figure CN122160526A_ABST
Patent Text Reader

Abstract

The application discloses a video coding division method and device based on a quadtree subblock, equipment and a medium, relates to the technical field of video coding, and comprises the following steps: performing quadtree division on a current coding unit to obtain corresponding quadtree subblocks, and determining target positions of the quadtree subblocks in a coded reference frame; determining target image division depths corresponding to the quadtree subblocks based on the target positions; analyzing the quadtree subblocks according to the target image division depths to determine a first subblock quantity and a second subblock quantity; generating a decision result for indicating a target division step of skipping the current coding unit by a video encoder according to a first comparison result and a second comparison result corresponding to the two subblock quantities, and performing video coding division according to the decision result. By generating the decision result for skipping the target division step based on the image block coding depth, the coding complexity is reduced, and the coding efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of video coding technology, and in particular to a video coding partitioning method, apparatus, device, and medium based on quadtree sub-blocks. Background Technology

[0002] In modern video coding standards, the Coding Tree Unit (CTU) adopts a Multi-Type Tree (MTT) partitioning structure, recursively dividing the CTU into multiple Coding Units (CUs). The MTT structure supports various partitioning modes, including: quadtree partitioning, binary tree partitioning, extended quadtree partitioning, and ternary tree partitioning.

[0003] In existing technologies, after a CU completes a quadtree partition, the encoder still needs to try more granular partitioning modes such as binary tree partitioning and ternary tree partitioning. This method has the problems of high encoding complexity and low encoding efficiency. Summary of the Invention

[0004] In view of this, the purpose of this invention is to provide a video coding partitioning method, apparatus, device, and medium based on quadtree sub-blocks, which can generate decision results that skip the target partitioning step based on image block coding depth, thereby reducing coding complexity and improving coding efficiency. The specific solution is as follows: Firstly, this application provides a video coding partitioning method based on quadtree sub-blocks, including: The current coding unit corresponding to the current coding frame is divided into quadtrees to obtain the corresponding quadtree sub-blocks, and the target positions of each quadtree sub-block in the corresponding encoded reference frame are determined. The target image segmentation depth is determined based on the target location; the target image segmentation depth represents the segmentation complexity of the corresponding target location in the encoded reference frame. The quadtree sub-blocks are analyzed based on the target image segmentation depth to determine the number of first sub-blocks and the number of second sub-blocks; wherein, the number of first sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a first preset depth threshold, and the number of second sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold. A decision result is generated based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, and the current coding unit is partitioned into video codes based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and the first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning and ternary tree partitioning.

[0005] Optionally, before performing quadtree partitioning on the current coding unit corresponding to the current coding frame, the method further includes: An initial depth mapping table is established, and after the encoding of the encoded reference frame is completed, the target image segmentation depth corresponding to each smallest coding unit of the encoded frame is stored in the initial depth mapping table to obtain the corresponding target depth mapping table, so as to perform video coding segmentation based on the target depth mapping table.

[0006] Optionally, determining the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location includes: Based on the target location, determine the target minimum coding unit corresponding to the current quadtree sub-block in the encoded reference frame, find the image segmentation depth corresponding to each target minimum coding unit from the target depth mapping table, and determine the maximum image segmentation depth among the image segmentation depths as the target image segmentation depth corresponding to the current quadtree sub-block.

[0007] Optionally, before generating the decision result for instructing the video encoder to skip the target partitioning step of the current coding unit based on the first comparison result and the second comparison result, the method further includes: A first threshold table and a second threshold table are dynamically constructed based on the video encoding performance requirements corresponding to the current encoded frame; wherein, the first threshold table includes several preset quantity thresholds corresponding to the number of the first sub-blocks, and the second threshold table includes several preset quantity thresholds corresponding to the number of the second sub-blocks; The first preset quantity threshold is obtained from the first threshold table, and the second preset quantity threshold is obtained from the second threshold table.

[0008] Optionally, obtaining the first preset quantity threshold from the first threshold table and the second preset quantity threshold from the second threshold table includes: Based on the first preset depth threshold, a first target index and a second target index are determined. The first target index is used to obtain the first preset quantity threshold from the first threshold table, and the second target index is used to obtain the second preset quantity threshold from the second threshold table.

[0009] Optionally, generating a decision result based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit includes: If the first comparison result indicates that the number of the first sub-blocks is not less than the first preset number threshold, or the second comparison result indicates that the number of the second sub-blocks is not less than the second preset number threshold, then the decision result for instructing the video encoder to skip the target partitioning step of the current coding unit is generated.

[0010] Optionally, the video coding partitioning method based on quadtree sub-blocks further includes: If the first comparison result indicates that the number of the first sub-blocks is less than the first preset number threshold and the second comparison result indicates that the number of the second sub-blocks is less than the second preset number threshold, then each of the quadtree sub-blocks is divided according to the target division steps.

[0011] Secondly, this application provides a video coding partitioning apparatus based on quadtree sub-blocks, comprising: The target location determination module is used to perform quadtree partitioning on the current coding unit corresponding to the current coding frame to obtain the corresponding quadtree sub-blocks, and to determine the target location of each quadtree sub-block in the corresponding encoded reference frame. The image segmentation depth determination module is used to determine the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location; the target image segmentation depth characterizes the segmentation complexity of the corresponding target location in the encoded reference frame. The sub-block number determination module is used to analyze each of the quadtree sub-blocks according to the target image division depth to determine the first sub-block number and the second sub-block number; wherein, the first sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a first preset depth threshold, and the second sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold. The decision result generation module is used to generate a decision result based on a first comparison result and a second comparison result, which instructs the video encoder to skip the target partitioning step of the current coding unit, and to perform video coding partitioning on the current coding unit based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and a first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning, and ternary tree partitioning.

[0012] Thirdly, this application provides an electronic device, comprising: Memory, used to store computer programs; A processor is used to execute the computer program to implement the aforementioned video coding partitioning method based on quadtree sub-blocks.

[0013] Fourthly, this application provides a computer-readable storage medium for storing a computer program that, when executed by a processor, implements the aforementioned video coding partitioning method based on quadtree sub-blocks.

[0014] This application first performs quadtree partitioning on the current coding unit corresponding to the current coding frame to obtain corresponding quadtree sub-blocks, and determines the target position corresponding to each quadtree sub-block in the corresponding encoded reference frame. Then, based on the target position, it determines the target image partitioning depth corresponding to each quadtree sub-block. The target image partitioning depth characterizes the partitioning complexity of the corresponding target position in the encoded reference frame. Afterwards, it analyzes each quadtree sub-block according to the target image partitioning depth to determine the number of first sub-blocks and the number of second sub-blocks. The number of first sub-blocks characterizes the number of quadtree sub-blocks with a target image partitioning depth not less than a first preset depth threshold, and the number of second sub-blocks... The number of sub-blocks represents the number of quadtree sub-blocks in the target image with a partitioning depth not less than a second preset depth threshold. The first preset depth threshold is greater than the second preset depth threshold. Finally, a decision result is generated based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, and the current coding unit is partitioned into video codes based on the decision result. The first comparison result is the comparison result between the first number of sub-blocks and the first preset number threshold, and the second comparison result is the comparison result between the second number of sub-blocks and the second preset number threshold. The target partitioning step includes binary tree partitioning, extended quadtree partitioning, and ternary tree partitioning. Therefore, this application uses the target image segmentation depth at the corresponding position in the encoded reference frame to characterize the segmentation complexity of each quadtree sub-block, solving the problem of lacking temporal historical information to guide the current frame segmentation decision in the prior art; by comparing the number of the first sub-block and the number of the second sub-block with the first preset number threshold and the second preset number threshold respectively, and generating decision results of skipping binary tree segmentation, expanding quadtree segmentation and ternary tree segmentation based on the comparison results, it solves the problem of excessive rate-distortion optimization search computation caused by blindly trying all fine-grained segmentation modes after quadtree segmentation, thereby reducing encoding complexity and improving encoding efficiency. Attached Figure Description

[0015] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0016] Figure 1 This is a schematic diagram of a video coding partitioning method based on quadtree sub-blocks disclosed in this application; Figure 2 This application discloses a flowchart of a video coding partitioning process based on quadtree sub-blocks. Figure 3 This application discloses a flowchart of an image segmentation depth query process. Figure 4 This application discloses a flowchart of a multi-level threshold judgment process; Figure 5 This is a schematic diagram of a video coding partitioning device based on quadtree sub-blocks disclosed in this application; Figure 6 This is a structural diagram of an electronic device disclosed in this application. Detailed Implementation

[0017] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0018] See Figure 1 As shown, this embodiment of the invention discloses a video coding partitioning method based on quadtree sub-blocks, including: Step S11: Perform quadtree partitioning on the current coding unit corresponding to the current coding frame to obtain the corresponding quadtree sub-blocks, and determine the target position of each quadtree sub-block in the corresponding encoded reference frame.

[0019] This implementation is applied to the recursive partitioning process of the CU in a video encoder. After a CU completes its quadtree partitioning, the MTT partitioning depth information of the four QT sub-block regions corresponding to that CU in the encoded frame is queried. Multi-level threshold statistical judgment is then performed to determine whether to skip all BT and EQT / TT partitioning of the current CU. The overall process is as follows: Figure 2As shown, the process includes: completing the quadtree partitioning, calculating the position coordinates of the four quadtree sub-blocks, determining the maximum MTT depth of each sub-block at the corresponding position in the encoded frame, and then determining the number of sub-blocks to decide on the subsequent encoding partitioning process.

[0020] This method is triggered when the current CU completes the quadtree (QT) partition during the recursive partitioning process of the CU.

[0021] Calculate the position coordinates of the four sub-blocks (i.e., quadtree sub-blocks) generated by the QT partition. Let the top-left corner of the current CU be (x0, y0), its width be W, and its height be H. Then the coordinates of the four sub-blocks are as follows: Sub-block (0,0): (x0, y0), with dimensions W / 2 × H / 2; Sub-block (1,0): (x0 + W / 2, y0), with dimensions W / 2 × H / 2; Sub-block (0,1): (x0, y0 + H / 2), with dimensions W / 2 × H / 2; Sub-block (1,1): (x0 + W / 2, y0 + H / 2), with dimensions W / 2 × H / 2; In addition, in this embodiment, before performing quadtree partitioning on the current coding unit corresponding to the current coding frame, the following steps are also included: establishing an initial depth mapping table, and after completing the encoding of the encoded reference frame, storing the target image partitioning depth corresponding to each smallest coding unit of the encoded frame into the initial depth mapping table to obtain the corresponding target depth mapping table, so as to perform video coding partitioning based on the target depth mapping table.

[0022] Step S12: Determine the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location; the target image segmentation depth represents the segmentation complexity of the corresponding target location in the encoded reference frame.

[0023] In this embodiment, determining the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location includes: determining each target minimum coding unit corresponding to the current quadtree sub-block in the encoded reference frame based on the target location, searching for the image segmentation depth corresponding to each target minimum coding unit from the target depth mapping table, and determining the maximum image segmentation depth among the image segmentation depths as the target image segmentation depth corresponding to the current quadtree sub-block.

[0024] Specifically, for each sub-block, all Small Coding Units (SCUs) within the coverage area of ​​the sub-block in the encoded frame are traversed. The MTT depth value (i.e., BT / EQT partitioning depth, excluding QT depth) of each SCU position is read from the MTT depth map table (i.e., target depth map table). The maximum value is taken and recorded as the maximum MTT depth D_mtt(i,j) of the sub-block (i.e., target image partitioning depth), where i and j are the horizontal and vertical indices of the sub-block, respectively.

[0025] Step S13: Analyze each quadtree sub-block according to the target image segmentation depth to determine the number of first sub-blocks and the number of second sub-blocks; wherein, the number of first sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a first preset depth threshold, and the number of second sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold.

[0026] In this embodiment, it is necessary to determine the number of quadtree sub-blocks with a target image partitioning depth not less than a first preset depth threshold and the number of quadtree sub-blocks with a target image partitioning depth not less than a second preset depth threshold.

[0027] The above process for counting the number of sub-blocks is as follows: Figure 3 As shown, this includes: setting the maximum MTT depth limit parameter T_max (i.e., the first preset depth threshold) (e.g., T_max = 3), and performing two-level statistics: First-level statistics: Count the number of sub-blocks in the four sub-blocks where D_mtt(i,j) >= T_max, denoted as N1 (i.e. the number of the first sub-blocks); Second-level statistics: Count the number of sub-blocks in the four sub-blocks where D_mtt(i,j) >= T_max – 1 (i.e., the second preset depth threshold), and denote it as N2 (i.e. the number of the second sub-blocks).

[0028] By simultaneously considering two statistics, "reaching maximum MTT depth" (N1) and "approaching maximum MTT depth" (N2), and in conjunction with an adjustable threshold table, it can adapt to video scenarios with different content complexities and achieve a better balance between skip rate and encoding performance.

[0029] Step S14: Generate a decision result based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, and perform video coding partitioning on the current coding unit based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and the first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning and ternary tree partitioning.

[0030] Before generating a decision result based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, the method further includes: A first threshold table and a second threshold table are dynamically constructed based on the video encoding performance requirements corresponding to the current encoded frame. The first threshold table includes several preset quantity thresholds corresponding to the number of first sub-blocks, and the second threshold table includes several preset quantity thresholds corresponding to the number of second sub-blocks. The first preset quantity threshold is obtained from the first threshold table, and the second preset quantity threshold is obtained from the second threshold table.

[0031] The above-mentioned method of obtaining the first preset quantity threshold from the first threshold table and the second preset quantity threshold from the second threshold table may specifically include: determining a first target index and a second target index based on a first preset depth threshold, obtaining the first preset quantity threshold from the first threshold table using the first target index, and obtaining the preset quantity threshold from the second threshold table using the second target index.

[0032] Specifically, two skip threshold tables are set up, each indexed based on the value of T_max: The first threshold table Th1[], with an index range of [0, T_max-1], is used to determine N1; The second threshold table Th2[], with an index range of [0, T_max-2], is used to determine N2; In this embodiment, the index values ​​of the threshold table have been pruned to ensure that they do not exceed the array range.

[0033] In addition, a decision result is generated based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, including: If the first comparison result indicates that the number of the first sub-blocks is not less than the first preset number threshold, or the second comparison result indicates that the number of the second sub-blocks is not less than the second preset number threshold, then a decision result is generated to instruct the video encoder to skip the target partitioning step of the current coding unit.

[0034] Furthermore, if the first comparison result indicates that the number of the first sub-blocks is less than the first preset number threshold and the second comparison result indicates that the number of the second sub-blocks is less than the second preset number threshold, then each quadtree sub-block is divided according to the target division steps.

[0035] The process of multi-level threshold determination described above is as follows: Figure 4 As shown, this includes: Skip conditions: If any of the following conditions are met, then all four partitioning modes of the current CU—BT horizontal, BT vertical, EQT / TT horizontal, and EQT / TT vertical—will be disabled: Condition A: Th1[idx1] > 0 and N1 >= Th1[idx1]; Condition B: Th2[idx2] > 0 and N2 >= Th2[idx2]; Where idx1 (i.e., the first target index) and idx2 (i.e., the second target index) are the pruned index values ​​of the first threshold table and the second threshold table, respectively.

[0036] If the skip condition is not met, the original partitioning permission state remains unchanged, and the encoder continues to try various partitioning modes according to the normal process.

[0037] By quickly determining whether to attempt BT / EQT after QT partitioning, a large number of unnecessary BT / EQT recursive RDO searches are avoided, resulting in a measured reduction of approximately 46% in encoding time.

[0038] In one specific implementation, this method is implemented during the recursive partitioning of the encoder's CU, based on the AVS3 video coding standard: 1. Data preparation: The encoder maintains a frame-level MTT depth map (map_bed), stored at the granularity of the smallest coding unit (SCU, typically 4×4 pixels). Each SCU location records the multi-type tree partition depth (i.e., the cumulative number of BT and EQT partitions, excluding QT depth) of the CU to which that location belongs in the encoded frame. This map is updated immediately after each CU is encoded.

[0039] 2. Pseudocode for method implementation: The function `qt_bypass_beqt_by_mtt_depth(encoding kernel context, partition allowed array, CU width W, CU height H, top-left corner coordinates x0, y0)` is defined as follows: / / Parameter configuration; T_max = 3 / / Maximum MTT depth limit; Th1 = {2, 2, 3} / / First threshold table, index range [0, 2]; Th2 = {3, 4} / / Second threshold table, index range [0, 1]; / / Calculate the threshold table index (with clipping); idx1 = max(0, min(2, T_max - 1)) / / The upper limit of the index is min(threshold table length - 1, T_max - 1); idx2 = max(0, min(1, T_max - 2)) / / The upper limit of the index is min(threshold table length - 1, T_max - 2); / / Check if the threshold table is active; If Th1[idx1] == 0 and Th2[idx2] == 0: Return values ​​of 0 indicate that skipping is not enabled; / / Initialize the statistics counter; N1 = 0 / / Number of sub-blocks that reach T_max; N2 = 0 / / Number of sub-blocks that reach T_max-1; / / Calculate the size of the QT sub-block; sub_W = W / 2; sub_H = H / 2; / / Traverse the 4 QT sub-blocks; For j = 0, 1: / / Vertical direction; For i = 0, 1: / / Horizontal direction; sub_x = x0 + i × sub_W; sub_y = y0 + j × sub_H; / / Query the maximum MTT depth within this sub-block region; D_mtt = -1; For each SCU location (xx, yy) within the sub-block region: addr = SCU address(sub_x + xx, sub_y + yy); D_mtt = max(D_mtt, map_bed[addr]); / / First-level statistics; If D_mtt >= T_max: N1 = N1 + 1; / / Second-level statistics; If T_max >= 2 and D_mtt >= T_max - 1: N2 = N2 + 1; / / Multi-level threshold judgment; Skip = False; If Th1[idx1] > 0 and N1 >= Th1[idx1]: Skip = True; If Th2[idx2] > 0 and N2 >= Th2[idx2]: Skip = True; If skipped: The partitioning allowed array [BT-H] = 0; The partitioning allowed array [BT-V] = 0; The partitioning allowed array [EQT-H] = 0; The partitioning allowed array [EQT-V] = 0; 3. Integration location: This method is called in the partition mask update function during the CU recursive partitioning process. When the completed partitioning mode is QT partitioning, this method is called to update the partition allow array after evaluating the RDO cost of QT partitioning and before attempting BT and EQT partitioning.

[0040] 4. Threshold table design specifications: The specific values ​​of the first threshold table Th1 and the second threshold table Th2 can be adjusted according to the coding performance requirements: Smaller thresholds (e.g., Th1={1,1,2}, Th2={2,3}): more aggressive skipping, resulting in greater coding time savings, but with a slightly larger loss in coding performance; Larger thresholds (e.g., Th1={3,3,4}, Th2={4,4}): more conservative skipping, less loss of coding performance, but reduced coding time savings; Set to 0: Disable the corresponding level of judgment.

[0041] The current preferred configuration is Th1={2,2,3}, Th2={3,4}, which achieves approximately 46% coding time savings and an increase in BD-rate of approximately 12.5% ​​when T_max=3.

[0042] In another specific implementation, the scheme based on the VVC / H.266 encoder is as follows: In the VVC encoder, QT partitioning corresponds to CU_QUAD_SPLIT, BT horizontal / vertical partitioning corresponds to CU_HORZ_SPLIT / CU_VERT_SPLIT, and TT horizontal / vertical partitioning (equivalent to AVS3's EQT) corresponds to CU_TRIH_SPLIT / CU_TRIV_SPLIT.

[0043] Implementation requires: 1. Add a frame-level MTT depth mapping table to the picture structure, with SCU as the granularity. After each CU is encoded, fill the mtDepth value of that CU into all the corresponding SCU positions in the mapping table. 2. In the CU partitioning decision control function (such as EncModeCtrl::trySplit), after determining that the QT partitioning is complete, this method is called to query the MTT depth mapping table of the reference frame and return prohibition for BT and TT partitioning.

[0044] Adaptive expansion of the threshold table: The threshold table in this embodiment can be further extended to an adaptive configuration related to the encoding speed level. For example, as shown in Table 1: Table 1

[0045] By adjusting T_max and the threshold table, it is possible to operate flexibly at different speed-mass trade-off points.

[0046] Therefore, this application uses the target image segmentation depth at the corresponding position in the encoded reference frame to characterize the segmentation complexity of each quadtree sub-block, solving the problem of lacking temporal historical information to guide the current frame segmentation decision in the prior art; by comparing the number of the first sub-block and the number of the second sub-block with the first preset number threshold and the second preset number threshold respectively, and generating decision results of skipping binary tree segmentation, expanding quadtree segmentation and ternary tree segmentation based on the comparison results, it solves the problem of excessive rate-distortion optimization search computation caused by blindly trying all fine-grained segmentation modes after quadtree segmentation, thereby reducing encoding complexity and improving encoding efficiency.

[0047] See Figure 5 As shown, this embodiment of the invention discloses a video coding partitioning device based on quadtree sub-blocks, comprising: The target location determination module 11 is used to perform quadtree partitioning on the current coding unit corresponding to the current coding frame to obtain the corresponding quadtree sub-blocks, and to determine the target location of each quadtree sub-block in the corresponding encoded reference frame. The image segmentation depth determination module 12 is used to determine the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target position; the target image segmentation depth characterizes the segmentation complexity of the corresponding target position in the encoded reference frame. The sub-block number determination module 13 is used to analyze each of the quadtree sub-blocks according to the target image division depth to determine the first sub-block number and the second sub-block number; wherein, the first sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a first preset depth threshold, and the second sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold. The decision result generation module 14 is used to generate a decision result based on a first comparison result and a second comparison result, which instructs the video encoder to skip the target partitioning step of the current coding unit, and to perform video coding partitioning on the current coding unit based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and a first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning, and ternary tree partitioning.

[0048] In some specific embodiments, the target location determination module 11 further includes: The mapping table establishment unit is used to establish an initial depth mapping table, and after completing the encoding of the encoded reference frame, to store the target image division depth corresponding to each smallest coding unit of the encoded frame into the initial depth mapping table to obtain the corresponding target depth mapping table, so as to perform video coding division based on the target depth mapping table.

[0049] In some specific embodiments, the image segmentation depth determination module 12 may specifically include: The image segmentation depth determination unit is used to determine each target minimum coding unit corresponding to the current quadtree sub-block in the encoded reference frame based on the target position, search for the image segmentation depth corresponding to each target minimum coding unit from the target depth mapping table, and determine the maximum image segmentation depth among the image segmentation depths as the target image segmentation depth corresponding to the current quadtree sub-block.

[0050] In some specific embodiments, the decision result generation module 14 further includes: The threshold table construction module is used to dynamically construct a first threshold table and a second threshold table according to the video encoding performance requirements corresponding to the current encoded frame; wherein, the first threshold table includes several preset quantity thresholds corresponding to the number of the first sub-blocks, and the second threshold table includes several preset quantity thresholds corresponding to the number of the second sub-blocks. The threshold acquisition submodule is used to obtain the first preset quantity threshold from the first threshold table and the second preset quantity threshold from the second threshold table.

[0051] In some specific embodiments, the threshold acquisition submodule may specifically include: The threshold acquisition unit is used to determine a first target index and a second target index based on the first preset depth threshold, obtain the first preset quantity threshold from the first threshold table using the first target index, and obtain the second preset quantity threshold from the second threshold table using the second target index.

[0052] In some specific embodiments, the decision result generation module 14 may specifically include: The decision result generation unit is configured to generate a decision result that instructs the video encoder to skip the target partitioning step of the current encoding unit if the first comparison result indicates that the number of the first sub-blocks is not less than the first preset number threshold or the second comparison result indicates that the number of the second sub-blocks is not less than the second preset number threshold.

[0053] In some specific embodiments, the video coding partitioning device based on quadtree sub-blocks further includes: The quadtree sub-block partitioning module is used to partition each quadtree sub-block according to the target partitioning step if the first comparison result indicates that the number of the first sub-blocks is less than the first preset number threshold and the second comparison result indicates that the number of the second sub-blocks is less than the second preset number threshold.

[0054] Furthermore, embodiments of this application also disclose an electronic device, Figure 6 This is a structural diagram of an electronic device 20 according to an exemplary embodiment. The content of the diagram should not be construed as limiting the scope of this application.

[0055] Figure 6This is a schematic diagram of the structure of an electronic device 20 provided in an embodiment of this application. Specifically, the electronic device 20 may include: at least one processor 21, at least one memory 22, a power supply 23, a communication interface 24, an input / output interface 25, and a communication bus 26. The memory 22 stores a computer program, which is loaded and executed by the processor 21 to implement the relevant steps in the video coding partitioning method based on quadtree sub-blocks disclosed in any of the foregoing embodiments. Alternatively, the electronic device 20 in this embodiment may specifically be a computer.

[0056] In this embodiment, the power supply 23 is used to provide operating voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and external devices, and the communication protocol it follows can be any communication protocol applicable to the technical solution of this application, and is not specifically limited here; the input / output interface 25 is used to acquire external input data or output data to the outside world, and its specific interface type can be selected according to specific application needs, and is not specifically limited here.

[0057] In addition, the memory 22, as a carrier for resource storage, can be a read-only memory, random access memory, disk or optical disk, etc. The resources stored thereon can include operating system 221, computer program 222, etc., and the storage method can be temporary storage or permanent storage.

[0058] The operating system 221 is used to manage and control the various hardware devices on the electronic device 20 and the computer program 222, which may be Windows Server, Netware, Unix, Linux, etc. In addition to including a computer program capable of performing the quadtree sub-block-based video coding partitioning method executed by the electronic device 20 as disclosed in any of the foregoing embodiments, the computer program 222 may further include computer programs capable of performing other specific tasks.

[0059] Furthermore, this application also discloses a computer-readable storage medium for storing a computer program; wherein, when the computer program is executed by a processor, it implements the aforementioned video coding partitioning method based on quadtree sub-blocks. Specific steps of this method can be found in the corresponding content disclosed in the foregoing embodiments, and will not be repeated here.

[0060] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to in the method section.

[0061] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0062] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein can be implemented directly by hardware, a software module executed by a processor, or a combination of both. The software module can be located in random access memory (RAM), main memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known in the art.

[0063] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0064] The technical solutions provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the methods and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A video coding partitioning method based on quadtree sub-blocks, characterized in that, include: The current coding unit corresponding to the current coding frame is divided into quadtrees to obtain the corresponding quadtree sub-blocks, and the target positions of each quadtree sub-block in the corresponding encoded reference frame are determined. The target image segmentation depth is determined based on the target location; the target image segmentation depth represents the segmentation complexity of the corresponding target location in the encoded reference frame. The quadtree sub-blocks are analyzed based on the target image segmentation depth to determine the number of first sub-blocks and the number of second sub-blocks; wherein, the number of first sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a first preset depth threshold, and the number of second sub-blocks represents the number of quadtree sub-blocks with a target image segmentation depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold. A decision result is generated based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit, and the current coding unit is partitioned into video codes based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and the first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning and ternary tree partitioning.

2. The video coding partitioning method based on quadtree sub-blocks according to claim 1, characterized in that, Before performing quadtree partitioning on the current coding unit corresponding to the current coding frame, the method further includes: An initial depth mapping table is established, and after the encoding of the encoded reference frame is completed, the target image segmentation depth corresponding to each smallest coding unit of the encoded frame is stored in the initial depth mapping table to obtain the corresponding target depth mapping table, so as to perform video coding segmentation based on the target depth mapping table.

3. The video coding partitioning method based on quadtree sub-blocks according to claim 2, characterized in that, The step of determining the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location includes: Based on the target location, determine the target minimum coding unit corresponding to the current quadtree sub-block in the encoded reference frame, find the image segmentation depth corresponding to each target minimum coding unit from the target depth mapping table, and determine the maximum image segmentation depth among the image segmentation depths as the target image segmentation depth corresponding to the current quadtree sub-block.

4. The video coding partitioning method based on quadtree sub-blocks according to claim 1, characterized in that, Before generating the decision result for instructing the video encoder to skip the target partitioning step of the current coding unit based on the first comparison result and the second comparison result, the method further includes: A first threshold table and a second threshold table are dynamically constructed based on the video encoding performance requirements corresponding to the current encoded frame; wherein, the first threshold table includes several preset quantity thresholds corresponding to the number of the first sub-blocks, and the second threshold table includes several preset quantity thresholds corresponding to the number of the second sub-blocks; The first preset quantity threshold is obtained from the first threshold table, and the second preset quantity threshold is obtained from the second threshold table.

5. The video coding partitioning method based on quadtree sub-blocks according to claim 4, characterized in that, The step of obtaining the first preset quantity threshold from the first threshold table and obtaining the second preset quantity threshold from the second threshold table includes: Based on the first preset depth threshold, a first target index and a second target index are determined. The first target index is used to obtain the first preset quantity threshold from the first threshold table, and the second target index is used to obtain the second preset quantity threshold from the second threshold table.

6. The video coding partitioning method based on quadtree sub-blocks according to claim 1, characterized in that, The step of generating a decision result based on the first comparison result and the second comparison result to instruct the video encoder to skip the target partitioning step of the current coding unit includes: If the first comparison result indicates that the number of the first sub-blocks is not less than the first preset number threshold, or the second comparison result indicates that the number of the second sub-blocks is not less than the second preset number threshold, then the decision result for instructing the video encoder to skip the target partitioning step of the current coding unit is generated.

7. The video coding partitioning method based on quadtree sub-blocks according to claim 6, characterized in that, Also includes: If the first comparison result indicates that the number of the first sub-blocks is less than the first preset number threshold and the second comparison result indicates that the number of the second sub-blocks is less than the second preset number threshold, then each of the quadtree sub-blocks is divided according to the target division steps.

8. A video coding partitioning device based on quadtree sub-blocks, characterized in that, include: The target location determination module is used to perform quadtree partitioning on the current coding unit corresponding to the current coding frame to obtain the corresponding quadtree sub-blocks, and to determine the target location of each quadtree sub-block in the corresponding encoded reference frame. The image segmentation depth determination module is used to determine the target image segmentation depth corresponding to each of the quadtree sub-blocks based on the target location; the target image segmentation depth characterizes the segmentation complexity of the corresponding target location in the encoded reference frame. The sub-block number determination module is used to analyze each of the quadtree sub-blocks according to the target image division depth to determine the first sub-block number and the second sub-block number; wherein, the first sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a first preset depth threshold, and the second sub-block number represents the number of quadtree sub-blocks with a target image division depth not less than a second preset depth threshold, and the first preset depth threshold is greater than the second preset depth threshold. The decision result generation module is used to generate a decision result based on a first comparison result and a second comparison result, which instructs the video encoder to skip the target partitioning step of the current coding unit, and to perform video coding partitioning on the current coding unit based on the decision result; the first comparison result is the comparison result between the number of the first sub-blocks and a first preset number threshold, the second comparison result is the comparison result between the number of the second sub-blocks and the second preset number threshold, and the target partitioning step includes binary tree partitioning, extended quadtree partitioning, and ternary tree partitioning.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the video coding partitioning method based on quadtree sub-blocks as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, Used to store a computer program, which, when executed by a processor, implements the video coding partitioning method based on quadtree sub-blocks as described in any one of claims 1 to 7.