Coding unit division method based on double texture complexity

Through the coding unit division method based on dual texture complexity, the coding unit type is judged according to the texture complexity and the appropriate division strategy is selected, which solves the problems of low division accuracy and long time consumption in high-definition video encoding and achieves more efficient video encoding.

CN120769042AActive Publication Date: 2025-10-10JIAYUAN SCI & TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202511212500.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-28
Publication Date
2025-10-10
Estimated Expiration
2045-08-28

AI Technical Summary

Technical Problem

Existing video coding technologies have problems with low division accuracy, long time consumption and low efficiency when dividing coding units. Especially in high-definition video coding, the quadtree combined with multi-type tree division mechanism has high computational complexity, resulting in poor video coding efficiency.

Method used

A coding unit partitioning method based on dual texture complexity is adopted. By detecting the texture complexity of the coding unit, the unit type is determined to be a significant texture coding unit or a non-significant texture coding unit. According to the unit type, the corresponding partitioning process and strategy are selected, such as the reverse partitioning strategy, the quadtree combined with multi-type tree partitioning strategy or the standard partitioning strategy, to optimize the coding unit partitioning process.

Benefits of technology

The video coding efficiency and the division accuracy of the coding unit are improved, the division time of the coding unit is reduced, and the overall performance of the video coding is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120769042A_ABST
    Figure CN120769042A_ABST
Patent Text Reader

Abstract

The invention provides a coding unit division method based on double texture complexity, and belongs to the technical field of video coding. Wherein the texture complexity of the target coding unit is detected, the unit type of the target coding unit is determined according to the texture complexity, a first preset threshold value and a second preset threshold value, and the unit type comprises an obvious texture coding unit or a non-obvious texture coding unit; according to the unit type of the target coding unit, a target division process of the target coding unit is determined, and the target division process comprises an obvious texture division process or a non-obvious texture coding division process; according to the target division process and the texture complexity, a target division strategy is determined, division operation is conducted on the target coding unit according to the target division strategy, and the target division strategy comprises a reverse division strategy, a quadtree combined multi-type tree division strategy or a standard division strategy. According to the invention, the effects of improving the video coding efficiency and improving the division efficiency and the division precision of the coding units can be achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of video coding technology, and in particular to a coding unit division method based on dual texture complexity. Background Art

[0002] With the increasing maturity of chip and video acquisition technologies, user demands for video quality continue to rise. High-definition and ultra-high-definition video are becoming increasingly popular, leading to an explosive growth in raw video data. This has placed high demands on video data storage and transmission. To meet this demand, the new video coding technology (Versatile Video Coding (VCC)) uses a quad-tree plus multi-type tree (QTMT) partitioning structure to optimize the precision and flexibility of coding unit partitioning, improving video compression efficiency and overcoming bandwidth bottlenecks in video data storage and transmission. However, this video coding technology also comes with high computational complexity. QTMT supports multiple partitioning mechanisms, including quad-tree (QT), horizontal binary tree (HBT), vertical binary tree (VBT), horizontal ternary tree (HTT), and vertical ternary tree (VTT).

[0003] At present, the partitioning efficiency of QTMT is often improved through early termination of fast partitioning decisions. Among them, early termination of fast partitioning decisions is often performed quickly through artificial features such as texture complexity analysis, rate-distortion cost threshold method and adjacent coding unit correlation. Texture complexity analysis is used to evaluate whether the coding unit needs to be partitioned. The rate-distortion cost threshold method is used to evaluate whether the current coding unit needs to terminate the subsequent partitioning operation in advance. The adjacent coding unit correlation is to mask some impossible modes through the partitioning depth and partitioning mode of the encoded adjacent coding units.

[0004] However, when dividing the coding units based on the fast division decision of early termination, a large amount of manual feature extraction is required, and the actual encoding process only supports QT division operations and non-division operations, which leads to low division accuracy of the coding units, long division time and low video coding efficiency. Summary of the Invention

[0005] The application aims to provide a coding unit division method based on double texture complexity, which can improve video coding efficiency and coding unit division efficiency and precision.

[0006] Embodiments of the application are implemented as follows: In a first aspect, the application provides a coding unit division method based on double texture complexity, applied to an encoder, which comprises: Detecting texture complexity in a target coding unit of the encoder, and determining a unit type of the target coding unit according to the texture complexity, a first preset threshold and a second preset threshold, wherein the texture complexity comprises horizontal total gradient value, vertical total gradient value and gradient difference value, and the unit type comprises obvious texture coding unit or non-obvious texture coding unit; According to the unit type of the target coding unit, determining a target division flow of the target coding unit, wherein the target division flow comprises obvious texture division flow or non-obvious texture coding division flow; According to the target division flow and the texture complexity, determining a target division strategy, and performing division operation on the target coding unit according to the target division strategy, wherein the target division strategy comprises reverse division strategy, quad-tree joint multi-type tree division strategy or standard division strategy, and the quad-tree joint multi-type tree division strategy comprises at least one of quad-tree division, horizontal binary tree division, vertical binary tree division, horizontal ternary tree division and vertical ternary tree division.

[0007] As a possible implementation, detecting the texture complexity in the target coding unit comprises: Calculating horizontal gradient value and vertical gradient value between each pixel point and adjacent pixel point in the target coding unit, wherein the adjacent pixel point comprises horizontally right-shifted adjacent pixel point and vertically down-shifted adjacent pixel point; According to all pixel points contained in the target coding unit, determining the number of rows and columns of the target coding unit; According to the number of rows, the number of columns and the horizontal gradient value between each pixel point and adjacent pixel point, determining the horizontal total gradient value of the target coding unit; According to the number of rows, the number of columns and the vertical gradient value between each pixel point and adjacent pixel point, determining the vertical total gradient value of the target coding unit; According to the horizontal total gradient value and the vertical total gradient value, determining the gradient difference value of the target coding unit.

[0008] As a possible implementation, according to the horizontal total gradient value and the vertical total gradient value, determining the gradient difference value of the target coding unit comprises: Calculating a first ratio between the horizontal total gradient value and the vertical total gradient value; calculating a second ratio between the vertical total gradient value and the horizontal total gradient value; taking a maximum value between the first ratio and the second ratio as a gradient difference value of the target coding unit.

[0009] As a possible implementation, according to the texture complexity, the first preset threshold and the second preset threshold, determining the unit type of the target coding unit comprises: judging whether the gradient difference value is greater than the first preset threshold; if yes, determining that the unit type of the target coding unit is the obvious texture coding unit; if no, judging whether the horizontal total gradient value and the vertical total gradient value are both greater than the second preset threshold, if yes, determining that the unit type of the target coding unit is the obvious texture coding unit; if no, determining that the unit type of the target coding unit is the non-obvious texture coding unit.

[0010] As a possible implementation, the target partition process is the obvious texture partition process, and according to the target partition process and the texture complexity, determining the target partition strategy comprises: if the gradient difference value is greater than the first preset threshold and the gradient difference value is greater than a preset gradient difference threshold, determining that the target partition strategy is a reverse partition strategy, and the reverse partition strategy comprises horizontal partition and vertical partition; if the gradient difference value is less than or equal to the preset gradient difference threshold and the horizontal total gradient value and the vertical total gradient value are both greater than a preset total gradient threshold, determining that the target partition strategy is a quad-tree joint multi-type tree partition strategy.

[0011] As a possible implementation, if the gradient difference value is less than or equal to the preset gradient difference threshold and the horizontal total gradient value and the vertical total gradient value are both greater than the preset total gradient threshold, determining that the target partition strategy is the quad-tree joint multi-type tree partition strategy, which comprises: if the gradient difference value is greater than the first preset threshold and the vertical total gradient value is greater than the horizontal total gradient value, determining that the horizontal binary tree partition and the horizontal ternary tree partition are the target partition strategies; if the gradient difference value is greater than the first preset threshold and the vertical total gradient value is less than the horizontal total gradient value, determining that the vertical binary tree partition and the vertical ternary tree partition are the target partition strategies; if the gradient difference value is less than the first preset threshold and a maximum value between the vertical total gradient value and the horizontal total gradient value is greater than the second preset threshold, determining that the quad-tree partition is the target partition strategy.

[0012] As a possible implementation, before determining the target partition strategy according to the target partition process and the texture complexity, the method comprises: The target coding unit is divided into a plurality of sub-coding blocks, and a plurality of sub-block search boxes are set up. Each sub-block search box and an adjacent sub-block search box overlap a preset area.

[0013] As a possible implementation method, the target segmentation strategy is determined according to the target segmentation process and texture complexity, including: Determine the texture change intensity of each pixel point according to each pixel point in the target coding unit and the associated pixel points corresponding to each pixel point; Determine the texture complexity of each sub-block search box according to the number of rows and columns of the target coding unit and the texture change intensity of each pixel, and determine the maximum texture complexity from the texture complexities of each sub-block search box; A target partitioning strategy is determined according to the maximum texture complexity, the third preset threshold, and the fourth preset threshold.

[0014] As a possible implementation, determining a target partitioning strategy based on the maximum texture complexity, the third preset threshold, and the fourth preset threshold includes: If the maximum texture complexity is less than or equal to a third preset threshold, determining that the target coding unit does not need to be divided; If the maximum texture complexity is greater than the third preset threshold and the maximum texture complexity is less than the fourth preset threshold, determining the target partitioning strategy to be the standard partitioning strategy; If the maximum texture complexity is greater than or equal to a fourth preset threshold, the target partitioning strategy is determined to be a quadtree combined with multi-type tree partitioning strategy.

[0015] As a possible implementation method, the target partitioning strategy is determined to be a quadtree combined with multi-type tree partitioning strategy, including: If the sub-block search box corresponding to the maximum texture complexity is at the vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, then horizontal binary tree partitioning and quadtree partitioning are determined as the target partitioning strategies; If the sub-block search box corresponding to the maximum texture complexity is at the vertex position of the target coding unit, and the row texture complexity of the target coding unit is less than the column texture complexity, then vertical binary tree partitioning and quadtree partitioning are determined as the target partitioning strategies; If the sub-block search box corresponding to the maximum texture complexity is at a non-vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, then horizontal ternary tree partitioning and quadtree partitioning are determined as the target partitioning strategies; If the sub-block search box corresponding to the maximum texture complexity is at a non-vertex position of the target coding unit and the row texture complexity of the target coding unit is less than the column texture complexity, vertical ternary tree partitioning and quadtree partitioning are determined as the target partitioning strategies.

[0016] In a second aspect, an encoder is provided, which comprises a control unit and a plurality of encoding units. The control unit performs partitioning operation on each of the encoding units based on the encoding unit partitioning method of the first aspect.

[0017] In a third aspect, a computer readable storage medium is provided, which stores a computer program. When the computer program is executed by a processor, the encoding unit partitioning method of the first aspect is implemented.

[0018] The embodiments of the present application have the following beneficial effects: The encoding unit partitioning method based on dual texture complexity provided by the embodiments of the present application converts the received image frame into corresponding pixel data by an encoder. The encoder determines the texture complexity of a target encoding unit based on the pixel data of the image block in the target encoding unit, and determines whether the target encoding unit is an obvious texture encoding unit or a non-obvious texture encoding unit according to the texture complexity of the target encoding unit. If the target encoding unit is an obvious texture encoding unit, the target partitioning process corresponding to the target encoding unit is determined as an obvious texture partitioning process. If the target encoding unit is a non-obvious encoding unit, the target partitioning process corresponding to the target encoding unit is determined as a non-obvious encoding partitioning process. The target encoding strategy corresponding to the target encoding unit is determined as one of a reverse partitioning strategy, a quad-tree joint multi-type tree partitioning strategy and a standard partitioning strategy based on the target partitioning process corresponding to the target encoding unit and the texture complexity of the target encoding unit, and the target encoding unit is partitioned based on the target partitioning strategy. The plurality of encoding units in the encoder are divided into two categories, i.e., obvious texture encoding units and non-obvious texture encoding units, and the obvious texture partitioning process and the non-obvious texture partitioning process are executed in parallel, which can save partitioning time. In addition, the optimal partitioning strategy is selected according to the texture complexity of the target encoding unit in the subsequent partitioning process, which can reduce the partitioning difficulty of the encoding unit and improve the partitioning accuracy of the encoding unit. In this way, the video encoding efficiency, the partitioning efficiency and the partitioning accuracy of the encoding unit can be improved. BRIEF DESCRIPTION OF DRAWINGS

[0019] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments. It should be understood that the following drawings only show some of the embodiments of the present application, and therefore should not be considered as a limitation to the scope. For those skilled in the art, other related drawings can also be obtained without creative labor.

[0020] Figure 1 The flowchart of the first encoding unit partitioning method based on dual texture complexity provided by the embodiments of the present application; Figure 2 A flowchart of a second coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 3 A flowchart of a third coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 4 A flowchart of a fourth coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 5 A flowchart of a fifth coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 6 A schematic diagram of the structure of a segmented sub-coding block of a coding unit provided in an embodiment of the present application; Figure 7 A schematic diagram of the structure of a search box provided in an embodiment of the present application; Figure 8 A flowchart of a sixth coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 9 A flowchart of a seventh coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 10 A texture complexity distribution diagram of a search box provided in an embodiment of the present application; Figure 11 A flowchart of an eighth coding unit division method based on dual texture complexity provided in an embodiment of the present application; Figure 12 A division rate curve diagram of a coding unit provided in an embodiment of the present application; Figure 13 A schematic diagram of the structure of an encoder provided in an embodiment of the present application.

[0021] Reference numerals: 10: encoder; 101: control unit; 102: encoding unit. DETAILED DESCRIPTION

[0022] To make the objectives, technical solutions, and advantages of the embodiments of the present application more clear, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings of the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Generally, the components of the embodiments of the present application described and shown in the drawings herein can be arranged and designed in various different configurations.

[0023] Therefore, the following detailed description of the embodiments of the present application provided in the accompanying drawings is not intended to limit the scope of the present application for protection, but merely represents selected embodiments of the present application. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments in the present application without creative work are within the scope of protection of the present application.

[0024] It should be noted that similar reference numerals and letters denote similar items in the following drawings, and therefore, once an item is defined in one drawing, it does not need to be further defined or explained in subsequent drawings.

[0025] Currently, early termination is often used to improve QTMT partitioning efficiency. This fast partitioning strategy is based on artificial features such as texture complexity analysis, rate-distortion cost thresholding, and correlation between adjacent coding units. Texture complexity analysis uses methods such as the sum of absolute transformed differences (SATD) after transformation and residual Hadamard transform (Sum of Absolute Transformed Differences), gradient information, variance information, and the Sobel operator to separate image blocks into smooth blocks and texture blocks. Smooth blocks skip deep partitioning, while texture blocks undergo subsequent partitioning. The rate-distortion cost threshold is used to assess whether to prematurely terminate the subsequent partitioning of the current coding unit. If the rate-distortion threshold (RD Cost) of the current coding unit falls below an adaptive threshold, the subsequent partitioning of the current coding unit is prematurely terminated. Correlation between adjacent coding units refers to building a spatiotemporal prediction model based on the partitioning depths of already encoded adjacent coding units. This model uses the partitioning depths and partitioning patterns of the surrounding encoded adjacent coding units to mask out some impossible patterns for the current coding unit. However, this approach requires extensive manual feature extraction, which makes the partitioning strategy time-consuming and leads to low video coding efficiency. In addition, this approach only supports two mechanisms during the actual encoding process: QT partitioning and non-partitioning, which results in low coding unit partitioning accuracy.

[0026] It is worth noting that the quadtree combined with the multi-type tree QTMT is one of the most time-consuming coding techniques in VVC coding technology. QTMT supports multiple partitioning mechanisms such as quadtree QT, horizontal binary tree HBT, vertical binary tree VBT, horizontal ternary tree HTT, and vertical ternary tree VTT. Among them, HBT, VBT, HTT, and VTT are collectively referred to as multi-type trees (MTT). The leaf nodes of QT can be further split by QTMT, while the leaf nodes of MTT can only be further split by MTT.

[0027] In addition, in the actual encoding process of the VCC, the coding unit with the size of 64 bits x 64 bits can only be selected in the two mechanisms of QT division or no division, that is, the division strategy of the coding unit with the size of 64 bits x 64 bits is a binary strategy, and the acceleration gain generated by the division strategy cannot greatly affect the entire division and encoding process of the QTMT, and the division process of the QTMT still has the problem of long time consumption.

[0028] Further, the maximum allowed data size of the binary tree root node and the ternary tree root node is 32 bits, which leads to the fact that the coding unit with the size of 32 bits x 32 bits can have six division mechanisms for selection, such as no division, QT, HBT, VBT, HTT and VTT, which greatly increases the difficulty of the division process of the coding unit, and further reduces the video encoding efficiency.

[0029] Therefore, an embodiment of the present application provides a coding unit division method based on double texture complexity, which detects the texture complexity inside a target coding unit to determine whether the unit type of the target coding unit is an obvious texture coding unit or a non-obvious texture coding unit, calls a corresponding target division process according to the unit type of the target coding unit, determines which one of a reverse division strategy, a quad-tree joint multi-type tree division strategy and a standard division strategy is the target division strategy based on the target division process and the texture complexity of the target coding unit, and finally divides the picture blocks in the coding unit based on the target division strategy to compress video data and save video encoding time. In this way, the video encoding efficiency, the division efficiency and the division precision of the coding unit can be improved.

[0030] It should be noted that the coding unit division method based on double texture complexity provided by the embodiment of the present application is mainly used for dividing the coding unit with the size of 32 bits x 32 bits, but it does not mean that the coding division method provided by the embodiment of the present application can only be used for dividing the coding unit with this size, which is not limited by the present application.

[0031] The coding unit division method based on double texture complexity provided by the embodiment of the present application will be explained and described in detail below in combination with the drawings.

[0032] Figure 1 A flowchart of the coding unit division method based on double texture complexity provided by the present application is shown in FIG. 1, which is applied to an encoder, and the encoder can be deployed in a computer device, which is not limited by the present application. Referring to FIG. 1, Figure 1 The coding unit division method based on double texture complexity provided by the embodiment of the present application includes the following steps. The encoder is specifically a video encoder, which is a software and hardware tool for converting original video data into a specific format coded stream, and the main purpose is to greatly compress the volume of the video file under the premise of maintaining the video quality, so as to make the video data more convenient for storage and transmission.

[0033] It is worth noting that there are multiple encoding units in the video encoder. The encoding unit is the core processing device of the video encoder, which is used to divide the image frames received by the video encoder into logical blocks. The video encoder selects an appropriate compression strategy to compress the image blocks in each encoding unit. The division of the encoding unit is the core of the compression of the image blocks in the encoding unit, and an optimal division strategy can ensure a low distortion rate of the image blocks in the encoding unit.

[0034] It is also worth noting that after receiving a certain image frame in the video stream, the encoder will perform data conversion on the current image frame to obtain the pixel data corresponding to the current image frame. The encoder evaluates the internal texture complexity of each encoding unit based on the pixel data of the image blocks in each encoding unit.

[0035] S101, detecting the texture complexity in the target encoding unit of the encoder, and determining the unit type of the target encoding unit according to the texture complexity, a first preset threshold and a second preset threshold. The texture complexity includes a horizontal total gradient value, a vertical total gradient value and a gradient difference value. The unit type includes an obvious texture encoding unit or a non-obvious texture encoding unit.

[0036] Optionally, the encoder includes multiple encoding units. The encoder divides the received current image frame through the multiple encoding units to obtain multiple image blocks. The target encoding unit refers to any one of the encoding units in the encoder, which is not limited in the present application.

[0037] Optionally, the texture complexity is mainly used to reflect the pixel value change intensity and direction diversity of the image blocks in the encoding unit. The pixel value changes gently, such as a pure color background, and the pixel value changes sharply, such as flowers, trees, animal hair, etc. The video encoder often evaluates the texture complexity of the image blocks in the encoding unit through key features such as statistical features, frequency domain features and structural features. The statistical features are often calculated by algorithms such as variance and gradient amplitude. The frequency domain features are obtained by calculating the energy proportion of high frequency coefficients through discrete cosine transform of the image blocks. The structural features are obtained by edge density and direction consistency detection, which are not limited in the present application.

[0038] Among them, texture complexity includes: horizontal total gradient value, vertical total gradient value and gradient difference. The horizontal total gradient value is used to characterize the total gradient value of each pixel in the target coding unit in the horizontal direction, the vertical total gradient value is used to characterize the total gradient value of each pixel in the target coding unit in the vertical direction, and the gradient difference is used to characterize the degree of pixel change between the horizontal total gradient value and the vertical total gradient value in the target coding unit.

[0039] It is worth noting that the horizontal gradient value is used to describe the intensity of pixel value change between two adjacent pixels (pixels in the same row) in the horizontal direction, and the vertical gradient value is used to describe the intensity of pixel value change between two adjacent pixels (pixels in the same column) in the vertical direction. The higher the gradient value, the richer the image details in the area, and more detailed division is required. The lower the gradient value, the less detailed the image details in the area, and only rough division is required.

[0040] Optionally, the first preset threshold and the second preset threshold are both gradient thresholds preset by a user, and the texture complexity of the target coding unit is compared with the first preset threshold and the second preset threshold to determine whether the target coding unit is a coding unit with noticeable texture or a coding unit with no noticeable texture. A coding unit with noticeable texture refers to an image block in the target coding unit containing rich image content, and a coding unit with no noticeable texture refers to an image block in the target coding unit containing dull image content.

[0041] S102: Determine a target division process of the target coding unit according to the unit type of the target coding unit, where the target division process includes: an obvious texture division process or a non-obvious texture coding division process.

[0042] Optionally, if the texture complexity of the target coding unit is low complexity, the target coding unit is a non-significant texture coding unit, and the non-significant texture coding division process is called to perform coarse division on the target coding unit.

[0043] Optionally, if the texture complexity of the target coding unit is high complexity, the target coding unit is an obvious texture coding unit, and the obvious texture coding division process is called on the target coding unit to perform fine division.

[0044] S103. Determine the target partitioning strategy according to the target partitioning process and texture complexity, and perform partitioning operations on the target coding unit according to the target partitioning strategy. The target partitioning strategy includes: reverse partitioning strategy, quadtree combined with multi-type tree partitioning strategy or standard partitioning strategy. The quadtree combined with multi-type tree partitioning strategy includes at least one of the following: quadtree partitioning, horizontal binary tree partitioning, vertical binary tree partitioning, horizontal ternary tree partitioning and vertical ternary tree partitioning.

[0045] Optionally, the video encoder selects a target partitioning strategy for the target coding unit according to the internal texture complexity of the target coding unit and a target partitioning process matched by the target coding unit, and divides the target coding unit based on the target partitioning strategy.

[0046] Among them, the target partitioning strategy refers to a partitioning strategy that matches the target coding unit. The target partitioning strategy includes: a reverse partitioning strategy, a quadtree combined with multiple-type tree partitioning strategy, and a standard partitioning strategy. The reverse partitioning strategy refers to a partitioning strategy that is opposite to the horizontal gradient change trend or vertical gradient change trend of the target coding unit. The quadtree combined with multiple-type tree partitioning strategy refers to a partitioning strategy that combines quadtree and multiple-type trees. The quadtree combined with multiple-type tree partitioning strategy specifically refers to a partitioning strategy obtained by combining at least one of quadtree partitioning, horizontal / vertical binary tree partitioning, and horizontal / vertical ternary tree partitioning. For example, the quadtree combined with multiple-type partitioning strategy can be just quadtree partitioning, or it can be a partitioning strategy that combines horizontal binary tree partitioning and horizontal ternary tree partitioning. This application does not make specific restrictions on this.

[0047] It is worth noting that the quadtree partitioning is suitable for the partitioning of complex texture areas. The quadtree can be divided horizontally and vertically, and one coding unit can be divided into four sub-blocks; the binary tree is suitable for the partitioning of slender areas, and one coding unit can be divided into two sub-blocks; the ternary tree is suitable for the partitioning of gradient edge areas, and one coding unit can be divided into three sub-blocks; at the same time, there is no need to perform a partitioning operation on the coding units in flat areas.

[0048] Optionally, the standard division strategy may specifically be a Versatile Test Model (VTM), which is not specifically limited in this application.

[0049] In the embodiments of the present application, the received image frame is converted into corresponding pixel data by an encoder. The encoder determines the texture complexity of a target coding unit based on the pixel data of the image block in the target coding unit, and determines whether the target coding unit is an obvious texture coding unit or a non-obvious texture coding unit according to the texture complexity of the target coding unit. If the target coding unit is an obvious texture coding unit, it is determined that the target coding unit corresponds to an obvious texture division process. If the target coding unit is a non-obvious coding unit, it is determined that the target coding unit corresponds to a non-obvious coding division process. Based on the target coding strategy corresponding to the target coding unit and the texture complexity of the target coding unit, it is determined that the target coding strategy corresponding to the target coding unit is one of a reverse division strategy, a quad-tree joint multi-type tree division strategy and a standard division strategy, and the target coding unit is divided based on the target division strategy. In the encoder, the plurality of coding units are divided into two categories of obvious texture coding units and non-obvious texture coding units, and the obvious texture division process and the non-obvious texture division process are executed in parallel, which can save the division time. In addition, the optimal division strategy is selected according to the texture complexity of the target coding unit in the subsequent division process, which can reduce the division difficulty of the coding unit and improve the division accuracy of the coding unit. In this way, the video coding efficiency, the division efficiency and the division accuracy of the coding unit can be improved.

[0050] In an alternative embodiment, referring to Figure 2 The operation of "detecting the texture complexity in the target coding unit" in the step S101 can be specifically as follows: S201, calculating the horizontal gradient value and the vertical gradient value between each pixel point and the adjacent pixel point in the target coding unit, the adjacent pixel point including the adjacent pixel point moving right in the horizontal direction and the adjacent pixel point moving down in the vertical direction.

[0051] Optionally, after the image block in the target coding unit is converted by data conversion, a plurality of pixel points corresponding to the image block are obtained, and the adjacent pixel point refers to the pixel point adjacent in the horizontal direction and the vertical direction.

[0052] Optionally, the horizontal gradient value refers to the pixel intensity change value between the pixel point and the adjacent pixel point moving right in the horizontal direction, and the vertical gradient value refers to the pixel intensity change value between the pixel point and the adjacent pixel point moving down in the vertical direction.

[0053] Optionally, the horizontal gradient value between each pixel point and the adjacent pixel point in the target coding unit is calculated according to the following formula (1), and the formula (1) is as follows: (1) In the formula (1), I(x, y) represents the pixel point, I(x, y+1) represents the adjacent pixel point moving down in the vertical direction, and I(x+1, y) represents the adjacent pixel point moving right in the horizontal direction. ​a horizontal gradient value between a pixel point and a neighboring pixel point, is a horizontal gradient value between a pixel point and a neighboring pixel point, is a horizontal gradient value between a pixel point and a neighboring pixel point, is a horizontal gradient value between a pixel point and a neighboring pixel point.

[0054] Optionally, a vertical gradient value between each pixel point and a neighboring pixel point in the target coding unit is calculated according to the following formula (2), and the formula (2) is as follows: (2) wherein, is a vertical gradient value between a pixel point and a neighboring pixel point, is a vertical gradient value between a pixel point and a neighboring pixel point, is a vertical gradient value between a pixel point and a neighboring pixel point, is a vertical gradient value between a pixel point and a neighboring pixel point, is a vertical gradient value between a pixel point and a neighboring pixel point.

[0055] S202, determining the number of rows and the number of columns of the target coding unit according to all the pixel points contained in the target coding unit.

[0056] Optionally, all the pixel points contained in the target coding unit are traversed to determine the number of rows and the number of columns corresponding to the target coding unit, wherein the number of rows is used to describe the distribution state of the pixel points in the target coding unit from the horizontal direction, and the number of columns is used to describe the distribution state of the pixel points in the target coding unit from the vertical direction.

[0057] S203, determining a horizontal total gradient value of the target coding unit according to the number of rows, the number of columns, and the horizontal gradient value between each pixel point and a neighboring pixel point.

[0058] Optionally, the horizontal total gradient value of the target coding unit in the horizontal direction is calculated according to the following formula (3), and the formula (3) is as follows: (3) wherein, is a horizontal total gradient value of the target coding unit, W is used to represent the number of rows of the target coding unit, and H is used to represent the number of columns of the target coding unit, is a horizontal gradient value between a pixel point and a neighboring pixel point, is a horizontal gradient value between a pixel point and a neighboring pixel point, is a horizontal gradient value between a pixel point and a neighboring pixel point.

[0059] S204 : Determine a total vertical gradient value of the target coding unit according to the number of rows, the number of columns, and the vertical gradient value between each pixel and its adjacent pixel.

[0060] Optionally, the vertical total gradient value of the target coding unit in the vertical direction is calculated according to the following formula (4), which is as follows: (4) in, The total vertical gradient value of the target coding unit, W is used to represent the number of rows of the target coding unit, and H is used to represent the number of columns of the target coding unit. To represent pixel points With adjacent pixels The vertical gradient between .

[0061] S205 : Determine a gradient difference value of the target coding unit according to the horizontal total gradient value and the vertical total gradient value.

[0062] In an optional implementation manner, the operation of step S205 may specifically be: Calculating a first ratio between the horizontal total gradient value and the vertical total gradient value; Calculating a second ratio between the vertical total gradient value and the horizontal total gradient value; The maximum value between the first ratio and the second ratio is used as the gradient difference of the target coding unit.

[0063] Optionally, the gradient difference of the target coding unit is calculated according to the following formula (5), which is as follows: (5) in, Used to represent the gradient difference of the target coding unit, The horizontal total gradient value for the target coding unit, The total vertical gradient value for the target coding unit.

[0064] Optionally, when the gradient difference of the target coding unit When , it means that the pixel value change intensity of the image block in the target coding unit in the horizontal direction is greater than the pixel value change intensity in the vertical direction, that is, the image content of the image block in the target coding unit changes dramatically in the horizontal direction; when the gradient difference of the target coding unit , it indicates that the pixel value change intensity of the image block in the target coding unit in the vertical direction is greater than the pixel value change intensity in the horizontal direction, that is, the image content of the image block in the target coding unit changes dramatically in the vertical direction.

[0065] In an optional embodiment, see Figure 3The operation of "determining the unit type of the target coding unit according to the texture complexity, the first preset threshold and the second preset threshold" in the step S101 can be specifically: S301, judging whether the gradient difference value is greater than the first preset threshold.

[0066] Optionally, the first preset threshold Thtend is a gradient threshold preset by a user, and the first preset threshold is used to measure the gradient difference change between the horizontal direction and the vertical direction of the coding unit. The first preset threshold Thtend can be 1.5, 2.0, etc., and is preferably Thtend=1.5. The present application does not make a specific limitation in this regard.

[0067] S302, if yes, determining that the unit type of the target coding unit is an obvious texture coding unit.

[0068] Optionally, when the gradient difference value between the horizontal direction and the vertical direction of the image block in the target coding unit is greater than the first preset threshold, it is determined that the image content of the image block in the target coding unit is rich, and the target coding unit is an obvious texture coding unit. The obvious texture division process is performed on the target coding unit.

[0069] S303, if no, judging whether the horizontal total gradient value and the vertical total gradient value are both greater than the second preset threshold.

[0070] Optionally, the second preset threshold TH is a gradient threshold preset by a user, and the second preset threshold is used to measure the gradient change of the target coding unit in the horizontal direction and the gradient change of the target coding unit in the vertical direction. The second preset threshold can be 10000, 11000, etc., and is preferably TH=10000. The present application does not make a specific limitation in this regard.

[0071] Optionally, when the gradient difference value between the horizontal direction and the vertical direction of the image block in the target coding unit is less than or equal to the first preset threshold, it is further judged whether the horizontal total gradient value of the target coding unit is greater than the second preset threshold and whether the vertical total gradient value of the target coding unit is greater than the second preset threshold, so as to further determine whether the target coding unit is an obvious texture coding unit or a non-obvious texture coding unit.

[0072] S304, if yes, determining that the unit type of the target coding unit is an obvious texture coding unit.

[0073] Optionally, when the gradient difference between the horizontal direction and the vertical direction of the image block in the target coding unit is less than or equal to the first preset threshold, but the horizontal total gradient value and the vertical total gradient value of the target coding unit are greater than the second preset threshold, it is determined that the image content of the image block in the target coding unit is rich, the target coding unit is an obvious texture coding unit, and an obvious texture partition process is performed on the target coding unit.

[0074] S305, if not, determining that the unit type of the target coding unit is a non-obvious texture coding unit.

[0075] Optionally, when the gradient difference between the horizontal direction and the vertical direction of the image block in the target coding unit is less than or equal to the first preset threshold, and the horizontal total gradient value and the vertical total gradient value of the target coding unit are less than or equal to the second preset threshold, it is determined that the image content of the image block in the target coding unit is flat, the target coding unit is a non-obvious texture coding unit, and a non-obvious texture partition process is performed on the target coding unit.

[0076] Further, the video sequences BasketballDrive, BQTerrace, Johnny, RaceHorses, BQMall and BQSquare are encoded by using the VTM.10 standard algorithm, and the horizontal total gradient value , the vertical total gradient value and the gradient difference of the coding unit under the partition operation and the non-partition operation are counted during the encoding process, and finally it is determined that the first preset threshold Thtend=1.5 and the second preset threshold TH=10000 are the optimal solutions.

[0077] In an optional implementation, referring to Figure 4 , the target partition process is an obvious texture partition process, and the operation of the step S103 can be specifically as follows: S401, if the gradient difference is greater than the first preset threshold, and the gradient difference is greater than the preset gradient difference threshold, it is determined that the target partition strategy is a reverse partition strategy, and the reverse partition strategy includes horizontal partition and vertical partition.

[0078] Optionally, the preset gradient difference threshold is a gradient threshold preset by a user, and the preset gradient difference threshold is used to measure whether the gradient difference of the coding unit is large enough. The preset gradient difference threshold can be 3.0, 5.0, etc., which is not limited in the present application.

[0079] Optionally, when the gradient difference of the target coding unit is greater than the first preset threshold, and the gradient difference of the target coding unit also exceeds the preset gradient difference threshold, that is, the gradient difference of the target coding unit is large, and the image content of the target coding unit changes sharply in a certain direction, it is determined that the target partition strategy of the target coding unit is a reverse partition strategy.

[0080] When the gradient difference value of the target coding unit is greater than a preset gradient difference threshold value, it indicates that the image content of the image block in the target coding unit changes sharply in the horizontal direction, and the target coding unit needs to be divided vertically. When the gradient difference value of the target coding unit is less than or equal to the preset gradient difference threshold value, it indicates that the image content of the image block in the target coding unit changes sharply in the vertical direction, and the target coding unit needs to be divided horizontally.

[0081] S402, if the gradient difference value is less than or equal to the preset gradient difference threshold value, and the horizontal total gradient value and the vertical total gradient value are greater than the preset total gradient threshold value, the target division strategy is determined as the quad-tree joint multi-type tree division strategy.

[0082] Optionally, the preset total gradient threshold value is a total gradient threshold value preset by a user, and is used to measure whether the horizontal total gradient value and the vertical total gradient value of the coding unit are large enough. The preset total gradient threshold value can be 15000, 20000, etc., which is not limited in the present application.

[0083] Optionally, when the gradient difference value of the target coding unit is less than the preset gradient difference threshold value, and the horizontal total gradient value and the vertical total gradient value of the target coding unit are greater than the preset total gradient threshold value, that is, the horizontal total gradient value and the vertical total gradient value of the target coding unit are large, and the image block with complex image content exists in the target coding unit, the target division strategy of the target coding unit is determined as the quad-tree joint multi-type tree division strategy.

[0084] In an optional implementation, referring to Figure 5 , the operation of the step S402 can be specifically: S501, if the gradient difference value is greater than a first preset threshold value, and the vertical total gradient value is greater than the horizontal total gradient value, the horizontal binary tree division and the horizontal ternary tree division are determined as the target division strategy.

[0085] Optionally, when the gradient difference value of the target coding unit is greater than a first preset threshold value , and the vertical total gradient value of the target coding unit is greater than the horizontal total gradient value of the target coding unit , the horizontal binary tree HBT division and the horizontal ternary tree HTT division are determined as the target division strategy of the target coding unit. S502, if the gradient difference value is greater than the first preset threshold value, and the vertical total gradient value is less than the horizontal total gradient value, the vertical binary tree division and the vertical ternary tree division are determined as the target division strategy.

[0086] S502, if the gradient difference value is greater than the first preset threshold value, and the vertical total gradient value is less than the horizontal total gradient value, the vertical binary tree division and the vertical ternary tree division are determined as the target division strategy.

[0087] ​​Optionally, when the gradient difference of the target coding unit Greater than the first preset threshold , and the vertical total gradient value of the target coding unit Less than the total horizontal gradient value of the target coding unit When , vertical binary tree VBT partitioning and vertical ternary tree VTT partitioning are used as the target partitioning strategies for the target coding unit.

[0088] S503: If the gradient difference is less than the first preset threshold, and the maximum value between the vertical total gradient value and the horizontal total gradient value is greater than the second preset threshold, determine quadtree partitioning as the target partitioning strategy.

[0089] Optionally, when the gradient difference of the target coding unit Less than the first preset threshold , and the vertical total gradient value of the target coding unit and the horizontal total gradient value of the target coding unit When the maximum value in is greater than the second preset threshold TH, the quadtree QT partitioning is used as the target partitioning strategy for the target coding unit.

[0090] In an optional implementation, the target segmentation process is a non-obvious texture segmentation process. According to the target segmentation process and texture complexity, before determining the target segmentation strategy, the process includes: The target coding unit is divided into a plurality of sub-coding blocks, and a plurality of sub-block search boxes are set up. Each sub-block search box and an adjacent sub-block search box overlap a preset area.

[0091] It's worth noting that when the image content texture of an image block within a target coding unit is excessively steep, and the target coding unit is considered as a whole to determine whether it needs to be subsequently divided, the overall image content of the target coding unit will show a flat trend, which can easily overlook local texture variations within the target coding unit, leading to low target coding unit division accuracy. This is because when the strip texture within a coding unit is excessively steep, only certain areas within the target coding unit will experience texture fluctuations, while the texture variations in other areas will be almost zero. This results in a low overall texture complexity within the target coding unit, potentially causing the target coding unit to be determined as a coding unit with no apparent texture. Therefore, to avoid ignoring local texture complexity due to the overall texture complexity of the target coding unit, the texture complexity of the entire target coding unit is no longer used as the basis for judgment when executing the no apparent texture division process.

[0092] Further, when the target coding unit is a non-texture coding unit, the non-texture partitioning process is performed on the target coding unit, the target coding unit is divided into a plurality of sub-coding blocks, and whether each sub-coding block needs to be partitioned is determined based on a logical relationship between the target coding unit and the plurality of sub-coding blocks. If a sub-coding block in the target coding unit needs to be partitioned, the target coding unit in which the sub-coding block is located also needs to be partitioned.

[0093] Optionally, the sub-coding block refers to a coding block in the target coding unit, and the size of the sub-coding block is smaller than the size of the target coding unit. For example, the size of the target coding unit is 32 pixels by 32 pixels, and the size of the sub-coding block is 8 pixels by 8 pixels. Referring to FIG. 1, a target coding unit 100 is divided into 16 sub-coding blocks 101. Figure 6 The target coding unit 100 is divided into 16 sub-coding blocks 101.

[0094] Optionally, the sub-block search frame refers to a detection frame for searching the texture complexity of each sub-coding block in the target coding unit, and the adjacent sub-block search frame refers to the sub-block search frames adjacent to each other in the spatial position. Referring to FIG. 2, nine sub-block search frames 201 are set, and each sub-block search frame 201 and the adjacent sub-block search frame 201 overlap each other by 1 / 2 of the area. Specifically, each sub-block search frame 201 covers four sub-coding blocks 101, and the adjacent sub-block search frames 201 overlap each other by two sub-coding blocks 101. Figure 7

[0095] Optionally, the preset area refers to the area overlapping each other between the sub-block search frame and the adjacent sub-block search frame. The preset area can be 1 / 2 of the area, which is not limited in the present application.

[0096] In an optional implementation, referring to FIG. 3, the step S103 can be specifically implemented as follows. Figure 8 S801, determining the texture change intensity of each pixel point in the target coding unit according to each pixel point in the target coding unit and the associated pixel point corresponding to each pixel point.

[0097] Optionally, the texture change intensity of each pixel point in the non-texture coding unit is calculated by the following formula (6). (6) In the formula (6), I(x, y) represents the texture change intensity of the pixel point (x, y), and |G(x, y)| represents the gradient amplitude of the pixel point (x, y) in the non-texture coding unit. ​​​​​​Indicates the associated pixel point that is shifted 1 bit horizontally to the left. Indicates the associated pixel point that is shifted 1 bit horizontally to the left and 1 bit vertically downward. Indicates the associated pixel point that is shifted vertically upward by 1 bit. Indicates the associated pixel point that is shifted vertically downward by 1 bit. Indicates the associated pixel point that is shifted 1 bit horizontally to the right and 1 bit vertically upward. Indicates the associated pixel point that is shifted 1 bit horizontally to the right. Indicates the associated pixel point that is shifted 1 bit horizontally to the right and 1 bit vertically downward.

[0098] S802 : Determine the texture complexity of each sub-block search box according to the number of rows and columns of the target coding unit and the texture change intensity of each pixel, and determine the maximum texture complexity from the texture complexities of each sub-block search box.

[0099] Optionally, the texture complexity of each sub-block search box is calculated by the following formula (7), which is as follows: (7) in, It is used to represent the texture complexity of the sub-block search box numbered (m, n), (m, n) is used to represent the number of the sub-block search box, To represent pixel points The intensity of texture variation.

[0100] Optionally, the maximum texture complexity without obvious coding units is calculated by the following formula (8), which is as follows: (8) in, Used to indicate the maximum texture complexity, Used to represent the texture complexity of the sub-block search box numbered (m, n).

[0101] S803: Determine a target partitioning strategy according to the maximum texture complexity, the third preset threshold, and the fourth preset threshold.

[0102] Optionally, the third preset threshold and the fourth preset threshold are complex texture thresholds pre-set by the user. The user can set the values ​​of the third preset threshold and the fourth preset threshold according to the division accuracy of the non-obvious texture coding unit. This application does not make any specific restrictions on this.

[0103] In an optional embodiment, see Figure 9 The operation of step S803 may specifically be: S901: If the maximum texture complexity is less than or equal to a third preset threshold, determine that the target coding unit does not need to be divided.

[0104] Optionally, when there is no explicit maximum texture complexity of the texture coding unit Less than or equal to the third preset threshold When there is no obvious texture coding unit, no subsequent division operation is required, that is, the target coding unit is video encoded in a 32-bit×32-bit manner.

[0105] S902: If the maximum texture complexity is greater than the third preset threshold and the maximum texture complexity is less than the fourth preset threshold, determine that the target partitioning strategy is the standard partitioning strategy.

[0106] Optionally, when there is no explicit maximum texture complexity of the texture coding unit Greater than the third preset threshold , and there is no obvious maximum texture complexity of the texture coding unit Less than the fourth preset threshold When there is no obvious texture coding unit, the VTM partitioning strategy is used for division.

[0107] S903: If the maximum texture complexity is greater than or equal to a fourth preset threshold, determine that the target partitioning strategy is a quadtree combined with multi-type tree partitioning strategy.

[0108] Optionally, when there is no explicit maximum texture complexity of the texture coding unit Greater than the fourth preset threshold When the image texture of the image block inside the no-obvious-texture coding unit is not complex, the quadtree combined with multi-type tree partitioning strategy is directly selected based on the maximum texture complexity of the no-obvious-texture coding unit.

[0109] Figure 10 For a texture complexity distribution diagram of a search box provided in this application, see Figure 10 , the texture complexity distribution of each sub-block search box in the target coding unit can be determined. Four 8-bit × 8-bit sub-coding blocks form a 16-bit × 16-bit sub-coding block, which is slid across rows and columns by 8 pixels to obtain nine sub-block search boxes. The texture complexity of these nine sub-block search boxes is then calculated.

[0110] In an optional embodiment, see Figure 11 The operation of step S903 may specifically be: S1101: If the sub-block search box corresponding to the maximum texture complexity is at the vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, horizontal binary tree partitioning and quadtree partitioning are determined as the target partitioning strategy.

[0111] Optionally, the row texture complexity refers to the sum of the texture complexity of each row of the sub-block search frame in the target coding unit, and the column texture complexity refers to the sum of the texture complexity of each column of the sub-block search frame in the target coding unit.

[0112] Optionally, when the maximum texture complexity The corresponding sub-block search frame is located at the vertex position of the target coding unit, that is, the maximum texture complexity The corresponding sub-block search frame is any one of the sub-block search frames in , , , , and the row texture complexity of the non-obvious texture coding unit is greater than the column texture complexity, then the quad-tree QT splitting and the horizontal binary tree HBT splitting are taken as the target splitting strategy of the target coding unit.

[0113] S1102, if the maximum texture complexity corresponds to the sub-block search frame at the vertex position of the target coding unit, and the row texture complexity of the target coding unit is less than the column texture complexity, then the vertical binary tree VBT splitting and the quad-tree QT splitting are determined as the target splitting strategy.

[0114] Optionally, when the maximum texture complexity The corresponding sub-block search frame is located at the vertex position of the target coding unit, that is, the maximum texture complexity The corresponding sub-block search frame is any one of the sub-block search frames in , , , , and the row texture complexity of the non-obvious texture coding unit is less than the column texture complexity, then the quad-tree QT splitting and the vertical binary tree VBT splitting are taken as the target splitting strategy of the target coding unit.

[0115] S1103, if the maximum texture complexity corresponds to the sub-block search frame at the non-vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, then the horizontal ternary tree HBT splitting and the quad-tree QT splitting are determined as the target splitting strategy.

[0116] Optionally, when the maximum texture complexity The corresponding sub-block search frame is located at the non-vertex position of the target coding unit, that is, the maximum texture complexity The corresponding sub-block search frame is any one of the sub-block search frames in , , , , If any sub-block search box is found in the target coding unit, and there is no obvious texture coding unit whose row texture complexity is greater than the column texture complexity, the quadtree QT partitioning and the horizontal ternary tree HTT partitioning are used as the target partitioning strategies for the target coding unit.

[0117] S1104: If the sub-block search box corresponding to the maximum texture complexity is at a non-vertex position of the target coding unit, and the row texture complexity of the target coding unit is less than the column texture complexity, vertical ternary tree partitioning and quadtree partitioning are determined as the target partitioning strategies.

[0118] Optionally, when the maximum texture complexity The corresponding sub-block search box is located at the non-vertex position of the target coding unit, that is, the maximum texture complexity The corresponding sub-block search box is 、 、 、 、 , and when there is no obvious texture coding unit whose row texture complexity is greater than the column texture complexity, the quadtree QT partitioning and the vertical ternary tree VTT partitioning are used as the target partitioning strategies for the target coding unit.

[0119] It is worth noting that the embodiment of the present application adopts a statistical method to determine the third preset threshold , and based on the maximum texture complexity of the undivided coding unit Sort the groups by QP value, discard the last 10% of each group of data, and determine the third preset threshold based on the average value of the remaining data , when encoding using different QP values, use the corresponding third preset threshold maximum texture complexity .

[0120] Figure 12 For a coding unit division rate curve provided in this application, see Figure 12 , when the QP value is larger, the fourth preset threshold at the same SR The larger the value, the larger the fourth preset threshold value must be used to achieve the same SR at a larger QP value. Among them, the fourth preset threshold The selection is directly related to the number of VTM algorithms executed by the coding unit. To ensure the coding speed and compression rate of the coding unit, the fourth preset threshold The preferred value is 0.85, which is not specifically limited in this application.

[0121] The following describes an encoder and a computer-readable storage medium for executing the coding unit division method based on dual texture complexity provided by the present application. The specific implementation process and technical effects are described above and will not be repeated below.

[0122] Figure 13 This is a schematic diagram of the structure of an encoder provided by this application, see Figure 13 The encoder 10 includes a control unit 101 and multiple coding units 102. The control unit 101 stores a computer program corresponding to the coding unit division method based on dual texture complexity. When the control unit 101 executes the computer program, a division decision for the multiple coding units 102 is implemented. The specific implementation process of the control unit 101 executing the computer program is the same as that of the embodiment of the aforementioned method, and is not further described in this application.

[0123] An embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.

[0124] Optionally, the present application also provides a program product, such as a computer-readable storage medium, comprising a program, which, when executed by a processor, is used to perform any of the above-mentioned embodiments of the coding unit division method based on dual texture complexity.

[0125] The aforementioned integrated unit implemented as a software functional unit can be stored in a computer-readable storage medium. The software functional unit, stored in a storage medium, includes instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute portions of the method steps of various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0126] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

[0127] The above description is merely a preferred embodiment of the present application and is not intended to limit the present application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present application shall be included within the scope of protection of the present application.

Claims

1. A coding unit division method based on dual texture complexity, characterized in that: Applied in an encoder, the coding unit division method includes: Detecting texture complexity in a target coding unit of the encoder, and determining a unit type of the target coding unit according to the texture complexity, a first preset threshold, and a second preset threshold, wherein the texture complexity includes: a horizontal total gradient value, a vertical total gradient value, and a gradient difference value, and the unit type includes: a coding unit with obvious texture or a coding unit with no obvious texture; Determining a target partitioning process of the target coding unit according to a unit type of the target coding unit, wherein the target partitioning process includes: an obvious texture partitioning process or a non-obvious texture coding partitioning process; According to the target partitioning process and the texture complexity, a target partitioning strategy is determined, and the target coding unit is partitioned according to the target partitioning strategy. The target partitioning strategy includes: a reverse partitioning strategy, a quadtree combined with multiple types of tree partitioning strategy or a standard partitioning strategy. The quadtree combined with multiple types of tree partitioning strategy includes at least one of the following: quadtree partitioning, horizontal binary tree partitioning, vertical binary tree partitioning, horizontal ternary tree partitioning and vertical ternary tree partitioning.

2. The coding unit division method according to claim 1, wherein: The detecting the texture complexity in the target coding unit includes: Calculating a horizontal gradient value and a vertical gradient value between each pixel point in the target coding unit and adjacent pixel points, wherein the adjacent pixel points include: adjacent pixel points shifted right in the horizontal direction and adjacent pixel points shifted downward in the vertical direction; Determining the number of rows and columns of the target coding unit according to all pixels included in the target coding unit; Determining a total horizontal gradient value of the target coding unit according to the number of rows, the number of columns, and a horizontal gradient value between each pixel and an adjacent pixel; Determining a total vertical gradient value of the target coding unit according to the number of rows, the number of columns, and the vertical gradient value between each pixel and an adjacent pixel; Determine a gradient difference value of the target coding unit according to the horizontal total gradient value and the vertical total gradient value.

3. The coding unit division method according to claim 2, wherein: The determining the gradient difference value of the target coding unit according to the horizontal total gradient value and the vertical total gradient value includes: Calculating a first ratio between the horizontal total gradient value and the vertical total gradient value; Calculating a second ratio between the vertical total gradient value and the horizontal total gradient value; The maximum value between the first ratio and the second ratio is used as the gradient difference of the target coding unit.

4. The coding unit division method according to claim 1, wherein: The determining the unit type of the target coding unit according to the texture complexity, the first preset threshold, and the second preset threshold includes: Determining whether the gradient difference is greater than the first preset threshold; If yes, determining that the unit type of the target coding unit is an obvious texture coding unit; If not, determining whether both the horizontal total gradient value and the vertical total gradient value are greater than the second preset threshold; if so, determining that the unit type of the target coding unit is a significant texture coding unit; If not, it is determined that the unit type of the target coding unit is a coding unit without obvious texture.

5. The coding unit division method according to claim 1, wherein: The target segmentation process is an obvious texture segmentation process. According to the target segmentation process and the texture complexity, a target segmentation strategy is determined, including: If the gradient difference is greater than the first preset threshold and the gradient difference is greater than the preset gradient difference threshold, determining that the target partitioning strategy is a reverse partitioning strategy, the reverse partitioning strategy includes: horizontal partitioning and vertical partitioning; If the gradient difference is less than or equal to the preset gradient difference threshold, and both the horizontal total gradient value and the vertical total gradient value are greater than the preset total gradient threshold, the target partitioning strategy is determined to be the quadtree combined multi-type tree partitioning strategy.

6. The coding unit division method according to claim 5, characterized in that: If the gradient difference is less than or equal to the preset gradient difference threshold, and both the horizontal total gradient value and the vertical total gradient value are greater than the preset total gradient threshold, then the target partitioning strategy is determined to be a quadtree combined with multi-type tree partitioning strategy, including: If the gradient difference is greater than the first preset threshold, and the vertical total gradient value is greater than the horizontal total gradient value, determining horizontal binary tree partitioning and horizontal ternary tree partitioning as the target partitioning strategy; If the gradient difference is greater than the first preset threshold, and the vertical total gradient value is less than the horizontal total gradient value, determining vertical binary tree partitioning and vertical ternary tree partitioning as the target partitioning strategy; If the gradient difference is less than the first preset threshold, and the maximum value between the vertical total gradient value and the horizontal total gradient value is greater than the second preset threshold, quadtree partitioning is determined as the target partitioning strategy.

7. The coding unit division method according to claim 1, wherein: The target segmentation process is a process without obvious texture segmentation. According to the target segmentation process and the texture complexity, before determining the target segmentation strategy, the process includes: The target coding unit is divided into a plurality of sub-coding blocks, and a plurality of sub-block search boxes are established, wherein each sub-block search box and an adjacent sub-block search box overlap a preset area.

8. The coding unit division method according to claim 7, characterized in that: Determining a target partitioning strategy according to the target partitioning process and the texture complexity includes: Determining a texture change intensity of each pixel point according to each pixel point in the target coding unit and an associated pixel point corresponding to each pixel point; determining a texture complexity of each of the sub-block search boxes according to the number of rows and columns of the target coding unit and the texture change intensity of each of the pixel points, and determining a maximum texture complexity from the texture complexities of the sub-block search boxes; A target partitioning strategy is determined according to the maximum texture complexity, a third preset threshold, and a fourth preset threshold.

9. The coding unit division method according to claim 8, characterized in that: The determining of the target partitioning strategy according to the maximum texture complexity, the third preset threshold, and the fourth preset threshold includes: If the maximum texture complexity is less than or equal to the third preset threshold, determining that the target coding unit does not need to perform a split operation; If the maximum texture complexity is greater than the third preset threshold and the maximum texture complexity is less than the fourth preset threshold, determining that the target partitioning strategy is a standard partitioning strategy; If the maximum texture complexity is greater than or equal to the fourth preset threshold, the target partitioning strategy is determined to be a quadtree combined with multi-type tree partitioning strategy.

10. The coding unit division method according to claim 9, characterized in that: The target partitioning strategy is determined to be a quadtree combined with multi-type tree partitioning strategy, including: If the sub-block search box corresponding to the maximum texture complexity is at a vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, horizontal binary tree partitioning and quadtree partitioning are determined as the target partitioning strategy; If the sub-block search box corresponding to the maximum texture complexity is at a vertex position of the target coding unit, and the row texture complexity of the target coding unit is less than the column texture complexity, vertical binary tree partitioning and quadtree partitioning are determined as the target partitioning strategy; If the sub-block search box corresponding to the maximum texture complexity is at a non-vertex position of the target coding unit, and the row texture complexity of the target coding unit is greater than the column texture complexity, horizontal ternary tree partitioning and quadtree partitioning are determined as the target partitioning strategy; If the sub-block search box corresponding to the maximum texture complexity is at a non-vertex position of the target coding unit, and the row texture complexity of the target coding unit is less than the column texture complexity, vertical ternary tree partitioning and quadtree partitioning are determined as the target partitioning strategies.

Citation Information

Patent Citations

  • Intra-frame division method and system based on textural features and storage medium

    CN111432212A

  • Fast algorithm suitable for intra-frame prediction division judgment of VVC standard

    CN111818332A

  • Texture-based general video coding intra-frame fast prediction method

    CN112188196A

  • Rapid CU division method for VVC of ERP panoramic video and storage medium

    CN117041736A

  • Block division method, block division device, equipment and storage medium

    CN117880516A