Adaptive coded image and video data
Through local separating constraints and adaptive splitting strategies, the encoding tree structure of the video encoder is optimized, which solves the problem of insufficient split operation flexibility in the prior art, and improves coding efficiency and performance.
Patent Information
- Application Number
- CN202380045237.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-06
- Filing Date
- 2023-05-24
- Publication Date
- 2025-01-17
AI Technical Summary
When processing complex video images, existing video encoding and decoding technologies are difficult to effectively utilize local feature information, resulting in low encoding efficiency. Especially under the maximum depth limitation of multi-type tree structures, the flexibility of splitting operations is insufficient, which affects encoding performance. .
The local separating constraint method is adopted to adaptively adjust the split type and depth of the coding tree unit, limit the split operation of each local control unit, prohibit splitting exceeding the maximum depth, and use quad-tree, multi-type, and tri-tree. Split types such as binary trees and skip unsubscribed split syntax elements when reaching maximum depth, saving bit costs.
The encoding efficiency of video encoder is improved, the encoding tree structure is optimized through adaptive splitting strategy, the number of encoding bits is reduced, and the encoding performance is improved, especially when processing complex image areas.
Smart Images

Figure CN119325709A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This article claims priority to U.S. Provisional Application No. 63 / 349,177, filed on June 6, 2022, the subject matter of which is incorporated herein by reference. Technical Field
[0003] The present invention relates to video coding and decoding, and in particular to a method for splitting video pictures used for coding and decoding. Background Art
[0004] Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims listed below and are not admitted to be prior art by inclusion in this section.
[0005] High-Efficiency Video Coding (HEVC) is an international video codec standard developed by the Joint Collaborative Team on Video Coding (JCT-VC). HEVC is based on a hybrid block-based motion-compensated discrete cosine transform (DCT) transform codec architecture. The basic unit for compression is called a coding unit (CU), which is a square block of 2Nx2N pixels. Each CU can be recursively split into four smaller CUs until a predefined minimum size is reached. Each CU contains one or more prediction units (PUs).
[0006] Versatile video coding (VVC) is the latest international video codec standard developed by the Joint Video Expert Team (JVET) of ITU-T SG16WP3 and ISO / IEC JTC1 / SC29 / WG11. The input video signal is predicted from a reconstructed signal derived from the coded picture region. The prediction residual signal is processed by block transform. The transform coefficients are quantized and entropy coded and decoded together with other auxiliary information in the bitstream. The reconstructed signal is generated from the prediction signal and the reconstructed residual signal after inverse transforming the dequantized transform coefficients. The reconstructed signal is further processed by an inner loop filter to remove coding artifacts. The decoded picture is stored in a frame buffer and used to predict future pictures in the input video signal.
[0007] In VVC, a coded picture is divided into non-overlapping square block areas represented by associated coding tree units (CTUs). The leaf nodes of the coding tree correspond to coding units (CUs). A coded picture can be composed of multiple slices, each slice containing an integer number of CTUs. Each CTU in a slice is processed in raster scan order. The decoding of a bi-predictive (B) slice can use intra prediction or inter prediction of up to two motion vectors and reference indexes to predict the sample values of each block. A predictive (P) slice can use intra prediction or inter prediction of up to one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded only using intra prediction.
[0008] CTU can be split into one or more non-overlapping codec units (CU) using quadtree (QT) and nested multi-type-tree (MTT) structures to accommodate various local motion and texture features. CU can be further split into smaller CUs using one of five split types: quadtree split, vertical binary tree split, horizontal binary tree split, vertical center-side ternary tree split, and horizontal center-side ternary tree split.
[0009] Each CU contains one or more prediction units (PUs). The prediction unit, together with the associated CU syntax, serves as the basic unit for signaling predictor information. A specified prediction process is used to predict the values of the associated pixel samples within the PU. Each CU may contain one or more transform units (TUs) for representing prediction residual blocks. A transform unit (TU) consists of one transform block (TB) of luma samples and two corresponding transform blocks of chroma samples, each TB corresponding to a sample residual block from one color component. Integer transforms are applied to the transform blocks. The potential values of the quantized coefficients are entropy encoded and decoded in the bitstream along with other auxiliary information. The terms: coding tree block (CTB), coding block (CB), prediction block (PB) and transform block (TB) are defined as 2-D sample arrays specifying one color component associated with a CTU, CU, PU and TU respectively. Therefore, a CTU consists of one luma CTB, two chroma CTBs and related syntax elements. CU, PU and TU also have similar relationships.
[0010] For each inter-predicted CU, motion parameters consisting of motion vector, reference picture index and reference picture list usage index and additional information are used for inter-prediction sampling generation. Motion parameters can be signaled explicitly or implicitly. When a CU is coded in skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector increments or reference picture indexes. In merge mode, the motion parameters of the specified current CU are obtained from neighboring CUs (including spatial and temporal candidates) and the additional schedule introduced in VVC. Merge mode can be applied to any inter-predicted CU. An alternative to merge mode is the explicit transmission of motion parameters, where motion vectors, reference picture indexes corresponding to each reference picture list and reference picture list usage flags and other required information are explicitly signaled per CU. Summary of the invention
[0011] The following description is a preferred implementation of the invention, and its purpose is to describe the basic spirit of the invention, but it is not intended to limit the invention. The actual content of the invention must refer to the scope of the subsequent patent application.
[0012] Certain embodiments disclosed herein provide a method for applying local segmentation constraints when encoding a video picture. A video codec receives data of a current block among a plurality of blocks in a current picture to be encoded or decoded as a video. The current block may be a codec tree unit (CTU) or a local control unit (LCU). A set of constraints is adaptive to different LCUs in the current picture. The specific split type is one of a quadtree (QT) split, a multi-type tree (MTT) split, a ternary tree (TT) split, and a binary tree (BT) split. The video codec signals or receives a maximum depth of a specific split type limited to the current block. The video codec constrains the segmentation operation of any plurality of blocks within the current block according to the maximum depth of the specific split type signaled or received. The segmentation operation may be a segmentation operation of a specific split type, so that when the maximum depth of the specific split type is reached, the segmentation operation is prohibited.
[0013] In some embodiments, when the current split partition of the current block reaches the maximum depth of a specific split type, further splitting by the specific split type is inferred to be disabled for the current split partition, and the syntax element for selecting the specific split type is skipped for the current split partition. For example, when the specific split type is a QT split and the current split partition reaches the maximum depth of the QT split, the syntax element for splitting the current split partition into QT splits is skipped and it is inferred that the split is not allowed.
[0014] In some embodiments, when the maximum depth of the MTT split is zero, the syntax element (e.g., split_qt_flag) for splitting the current split partition of the current block into QT partitions is skipped and it is inferred that QT splitting is initiated when determining to further split the current split partition. In some embodiments, when the specific split type is an MTT split and the current split partition reaches the maximum depth of the MTT split, the syntax element for splitting the current split partition into multiple parts is skipped and it is inferred that splitting is not allowed. In some embodiments, when the specific split type is an MTT split and the current split partition reaches the maximum depth of the MTT split, the syntax element for splitting the current split partition into multiple partitions is skipped and it is inferred that splitting is not allowed. In some embodiments, when the current depth of the MTT split in the current block is greater than zero, the syntax element for indicating the maximum BT or TT depth of the current block is signaled. In some embodiments, when the current split partition of the current block reaches the maximum depth of BT or TT, the flag for selecting BT or TT split (e.g., mtt_split_cu_binary_flag) is skipped.
[0015] In some embodiments, when the current depth of the MTT split in the current block is greater than zero, a syntax element (e.g., mtt_split_cu_vertical_flag) is signaled to indicate whether vertical or horizontal splitting is allowed. In some embodiments, when vertical or horizontal splitting of the current split is not allowed for the current block, the syntax element used to indicate MTT vertical or horizontal splitting is skipped.
[0016] In some embodiments, after encountering or performing MTT splitting for a current block, the encoder signals a syntax element (e.g., ctu_used_tt_flag) to indicate whether ternary tree (TT) splitting is used or allowed in the current block. In some embodiments, when the syntax element (e.g., ctu_used_tt_flag) indicates that TT splitting is not used for the current block, a flag (e.g., mtt_split_cu_binary_flag) for indicating whether binary tree (BT) splitting is performed is skipped. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The following drawings are included to provide a further understanding of the present invention and are incorporated into and constitute a part of the present invention. The drawings illustrate embodiments of the present invention and are used together with the description thereof to explain the principles of the present invention. It should be noted that the drawings are not necessarily drawn to scale, as some components may be represented as not proportional to the size in actual implementation in order to clearly illustrate the concepts of the present invention.
[0018] Figure 1An example of a codec tree unit (CTU) is provided, which is recursively partitioned by a quadtree QT with nested multi-type trees (MTT).
[0019] Figure 2 Five types of splits of a codec unit (CU) are depicted, including QT split and MTT split.
[0020] Figure 3 Describes the signaling mechanism of segmentation and splitting information, especially for QT with nested MTT codec tree structure.
[0021] Figure 4 A syntax element with parameter values applicable to a plurality of different local control units (LCUs) of a video picture is conceptually depicted.
[0022] Figure 5 An example of an example video encoder that can implement block partitioning is described.
[0023] Figure 6 Depicts portions of a video encoder that implements block segmentation based on local segmentation constraints.
[0024] Figure 7 A process for performing block segmentation based on local segmentation constraints is conceptually depicted.
[0025] Figure 8 An example of a video decoder that can implement block partitioning is described.
[0026] Fig. 9 Depicts portions of a video decoder that implements block segmentation based on local segmentation constraints.
[0027] Fig.10 The process of performing block segmentation based on local segmentation constraints is conceptually depicted.
[0028] Fig.11 An electronic system is conceptually depicted that implements certain embodiments of the present invention. DETAILED DESCRIPTION
[0029] The following drawings are included to provide a further understanding of the present invention and are incorporated into and constitute a part of the present invention. The drawings illustrate embodiments of the present invention and are used together with the description thereof to explain the principles of the present invention. It should be noted that the drawings are not necessarily drawn to scale, as some components may be represented as not proportional to the size in actual implementation in order to clearly illustrate the concepts of the present invention.
[0030] The following drawings are included to provide a further understanding of the present invention and are incorporated into and constitute a part of the present invention. The drawings illustrate embodiments of the present invention and are used together with the description thereof to explain the principles of the present invention. It should be noted that the drawings are not necessarily drawn to scale, as some components may be represented as not proportional to the size in actual implementation in order to clearly illustrate the concepts of the present invention.
[0031] Figure 2 Five types of CU splits are depicted, including QT splits and MTT splits. As shown, a CU can be further split into smaller CUs by using QT splits (SPLIT_QT) or using one of the four MTT split types: vertical binary split (SPLIT_BT_VER), horizontal binary split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR).
[0032] The following are the parameters defined for the quadtree with nested multi-type tree coding tree scheme. These parameters are specified by sequence parameter set (SPS) syntax elements and can be further refined by picture header syntax elements.
[0033] ●CTUsize: The root node size of the quadtree.
[0034] ●MinQTSize: The minimum allowed quadtree leaf node size.
[0035] ●MaxBtSize: The maximum allowed binary tree root node size.
[0036] ●MaxTtSize: The maximum allowed ternary tree root node size.
[0037] ●MaxMttDepth: The maximum allowed hierarchical depth of a multi-type tree split from the leaves of a quadtree.
[0038] ●MinCbSize: The minimum allowed encoding and decoding block node size.
[0039] The codec tree unit (CTU) is considered as the root of a quadtree (quaternary tree, also referred to as quadtree) and is first split by the quadtree structure. Then each quadtree leaf node (when large enough) is further split by the multi-type tree structure. Figure 3Depicts the signaling mechanism for partition split information, specifically for a quadtree with a nested multi-type tree codec tree structure. The figure depicts the split flags used to represent the partition tree structure of a block. Specifically, the first flag (split_cu_flag) is signaled to indicate whether the node is further split; when a node is further split, the second flag (mtt_split_cu_vertical_flag) is signaled to indicate the split direction, and then the third flag (mtt_split_cu_binary_flag) is signaled to indicate whether the split is a binary split or a ternary split. Based on the values of the flags mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree split mode (MttSplitMode) of a CU is derived as follows:
[0040] Mtt Split Mode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag SPLIT_TT_HOR 0 0 SPLIT_BT_HOR 0 1 SPLIT_TT_VER 1 0 SPLIT_BT_VER 1 1
[0041] 2. Segmentation for Adaptive Coding and Decoding
[0042] A. Local Control Unit
[0043] The sequence parameter set (SPS) and the picture parameter set (PPS) contain high-level syntax elements that apply to the entire encoded video sequence and picture, respectively. The picture header (PH) and the slice header (SH) contain high-level syntax elements that apply to the current encoded picture and slice, respectively. Certain embodiments of the present invention provide a video codec that can divide an encoded picture into non-overlapping local control units (LCUs). The video codec can encode or decode multiple syntax sets for the coding tools used to encode or decode the picture area corresponding to the current LCU. Therefore, the parameter values of the coding tools used in the encoded picture can be adaptively adjusted from one LCU to another.
[0044] Figure 4Conceptually depicted are syntax elements with parameter values applicable to a plurality of different local control units (LCUs) of a video picture 400. As shown, the video picture 400 includes several LCUs, including LCU 411 (LCU 1) and LCU 419 (LCU N). LCUs 411, 419 both have syntax elements for constraining split operations, such as maximum depths for QT splits (MaxQtDepth), MTT splits (MaxMttDepth), BT splits (MaxBtDepth), and TT splits (MaxTtDepth). The values of the syntax elements MaxQtDepth, MaxMttDepth, MaxBtDepth, and MaxTtDepth are localized and adapted to each LCU, and instances of these syntax elements for these different LCUs have their own specified values. For example, the MaxQtDepth value of the LCU 411 is 0, while the MaxQtDepth value of the LCU 419 is 3; the MaxMttDepth value of the LCU 411 is 2, while the MaxMttDepth value of the LCU 419 is 1, and so on.
[0045] In some embodiments, each coded picture is partitioned into LCUs aligned with a CTU grid in each coded picture. In some embodiments, each LCU corresponds to one or more consecutive CTUs according to a specified scanning order. In some embodiments, each LCU corresponds to a set of MxN CTUs, where M and N are integers. In some embodiments, each LCU corresponds to one CTU. In some embodiments, each LCU corresponds to one or more CTU rows.
[0046] In some embodiments, the plurality of syntax sets of the LCU may include syntax information related to one or more inter prediction tools. In some of these embodiments, the plurality of syntax sets may include syntax information related to affine or local illumination compensation (LIC) tools. In some embodiments, the plurality of syntax sets may include syntax information for representing CU partition constraints enforced for encoding or decoding a picture area corresponding to the current LCU.
[0047] In some embodiments, each LCU corresponds to only one CTU, and the video codec may signal one or more syntax elements of the current CTU to indicate the maximum allowed QT depth, maximum allowed BT depth, maximum allowed TT depth and / or maximum allowed MTT depth of the current CTU. When the QT depth of the current codec tree node is equal to the maximum allowed QT depth of the current CTU derived from the plurality of syntax elements, further splitting of the current codec tree by QT splitting is not allowed. The video codec may skip signaling syntax information (e.g., split_qt_flag) for indicating whether QT splitting is selected in the current CTU to further split the current codec tree node in the current CTU. Similarly, when the MTT, BT, or TT depth of the current codec tree node is equal to the maximum allowed MTT, BT, or TT depth of the current CTU, the video codec may skip signaling syntax information for indicating whether MTT, BT, or TT splitting is selected in the current CTU to further split the current codec tree node.
[0048] In some embodiments, based on a quadtree with nested multi-type tree codec tree syntax, the video codec may further signal a syntax element ctu_max_qt_depth in the current CTU to indicate the maximum allowed QT depth of the current CTU. When the QT depth of the current codec tree node is equal to the maximum allowed QT depth of the current CTU and the current codec tree node is to be further split (flag split_cu_flag=1), the video codec may skip signaling the flag split_qt_flag (with an inferred value equal to 0) and infer that the current codec tree node is further split by MTT. The video codec may further signal a syntax element ctu_max_mtt_depth in the current CTU to indicate the maximum allowed MTT depth of the current CTU. When the maximum allowed MTT depth of the current CTU is equal to 0 and the current codec tree node is to be further split (flag split_cu_flag=1), the video codec may skip signaling the flag split_qt_flag (with an inferred value equal to 1) and infer that the current codec tree node is further split by QT. When the QT depth of the current codec tree node is equal to the maximum allowed QT depth of the current CTU and the current codec tree node disables MTT splitting, the current codec tree cannot be further split and the video codec may skip signaling the flag split_cu_flag (with an inferred value equal to 0) for the current codec tree node. Similarly, when the MTT depth of the current codec tree node is equal to the maximum allowed MTT depth of the current CTU and the current codec tree node disables QT splitting, the video codec may skip signaling the flag split_cu_flag (with an inferred value equal to 0) for the current codec tree node.
[0049] In some embodiments, the video codec may signal one or more syntax elements to indicate whether one or more CU partitioning modes are enabled or used for the current CTU. In one embodiment, the video codec may signal a CTU-level syntax element ctu_used_TT_flag in the current CTU to indicate whether TT splitting is used in the current CTU. When the CTU-level syntax element indicates that TT splitting is not used in the current CTU, the video codec may skip signaling syntax information (e.g., mtt_split_cu_binary_flag) to indicate whether TT is used to further split the current codec tree node in the current CTU. In another embodiment, ctu_used_TT_flag is only signaled after the first MTT split is encountered in the current CTU (e.g., split_qt_flag is equal to 0). If MTT splitting is not used in the current CTU, ctu_used_TT_flag is not signaled, and it is inferred that TT splitting is not used in the current CTU. In this way, when MTT splitting is not used in CTU, the bit cost of encoding ctu_used_TT_flag in CTU can be saved.
[0050] B. QP Adaptive MTT / QT Depth
[0051] In some embodiments, the video codec may determine the maximum allowed MTT and / or QT depth based on a quantization parameter (QP) specified for a corresponding picture area. The video codec may assign different maximum allowed MTT and / or QT depths for different QP ranges. A method for deriving a specified maximum allowed MTT and / or QT depth for a specified QP may be predefined in the video codec system. Alternatively, syntax information for deriving the maximum allowed MTT and / or QT depth assigned for a specified QP may be further signaled in the bitstream. In some embodiments, the syntax information for deriving the maximum allowed MTT and / or QT depth may be encoded in one or more high-level syntax sets, such as SPS, PPS, PH, and SH. In some embodiments, QP adaptive determination of the maximum allowed MTT and / or QT depth may be turned on or off for different pictures / slices / tiles / CTU rows / CTUs / VPDUs by providing a corresponding enable / disable control flag for each picture / slice / tile / CTU row / CTU / VPDU.
[0052] C. Adaptive CTU size
[0053] In VVC, the CTU size is encoded in the SPS and applied throughout the video sequence with reference to the SPS. Certain embodiments of the present invention provide a method in which the CTU size can be allowed to be adaptive based on QP, temporal index (TID) and picture area. Syntax information for deriving the CTU size of the current picture area can be encoded in one or more high-level syntax sets such as SPS, PPS, PH and SH. In certain embodiments, adaptive CTU size can be turned on or off for different pictures / slices / tiles / CTU rows / CTUs / VPDUs by providing corresponding enable / disable control flags for each picture / slice / tile / CTU row / CTU / VPDU.
[0054] D. Partial Split Mode
[0055] In some embodiments, the video codec can adaptively disable one or more split modes used to further split the codec tree nodes in the coded picture. The video codec can further skip signaling syntax information related to the disabled one or more split modes. In this way, the video codec can disable rarely used split modes based on the video content and save bit costs associated with the disabled modes. In some embodiments, the video codec can signal one or more syntax elements in PH or SH to indicate that one or more split modes in the current picture or slice are disabled.
[0056] Any of the aforementioned methods may be implemented in an encoder and / or a decoder. For example, any of the methods may be implemented in a CU segmentation module of an encoder and / or a CU segmentation module of a decoder. Alternatively, any of the methods may be implemented as a circuit integrated into a CU segmentation module of an encoder and / or a CU segmentation module of a decoder. The proposed principles, methods, and related embodiments may be implemented independently or jointly in image and video coding and decoding systems.
[0057] [An example of a video encoder]
[0058] Figure 5An example of a video encoder 500 that can implement block splitting is depicted. As shown, the video encoder 500 receives an input video signal from a video source 505 and encodes the signal into a bitstream 595. The video encoder 500 has several components or modules for encoding the signal from the video source 505, including at least some components selected from the following: a transform module 510, a quantization module 511, an inverse quantization module 514, an inverse transform module 515, an intra-picture estimation module 520, an intra-picture prediction module 525, a motion compensation module 530, a motion estimation module 535, a loop filter 545, a reconstructed picture buffer 550, a motion vector (MV) buffer 565, an MV prediction module 575, and an entropy encoder 590. The motion compensation module 530 and the motion estimation module 535 are part of the inter-frame prediction module 540.
[0059] In some embodiments, modules 510-590 are software instruction modules executed by one or more processing units (e.g., processors) of a computer device or electronic device. In some embodiments, modules 510-590 are hardware circuit modules implemented by one or more integrated circuits (ICs) of an electronic device. Although modules 510-590 are illustrated as separate modules, some modules may be combined into a single module.
[0060] The video source 505 provides a raw video signal that presents uncompressed pixel data for each video frame. The subtractor 508 calculates the difference between the raw video pixel data of the video source 505 and the predicted pixel data 513 from the motion compensation module 530 or the intra-frame prediction module 525 as a prediction residual 509. The transform module 510 converts the difference (or residual pixel data or residual signal 508) into transform coefficients 516 (e.g., by performing a discrete cosine transform or DCT). The quantization module 511 quantizes the transform coefficients into quantized data (or quantized coefficients) 512, which are encoded into a bitstream 595 by the entropy encoder 590.
[0061] The inverse quantization module 514 inversely quantizes the quantized data (or quantized coefficients) 512 to obtain transform coefficients, and the inverse transform module 515 inversely transforms the transform coefficients to generate a reconstructed residual 519. The reconstructed residual 519 is added to the predicted pixel data 513 to generate reconstructed pixel data 517. In some embodiments, the reconstructed pixel data 517 is temporarily stored in a line buffer (not shown) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by the loop filter 545 and stored in a reconstructed picture buffer 550. In some embodiments, the reconstructed picture buffer 550 is a memory external to the video encoder 500. In some embodiments, the reconstructed picture buffer 550 is a memory internal to the video encoder 500.
[0062] The intra-picture estimation module 520 performs intra-prediction based on the reconstructed pixel data 517 to generate intra-prediction data. The intra-prediction data is provided to the entropy encoder 590 to be encoded into a bitstream 595. The intra-prediction data is also used by the intra-prediction module 525 to generate the predicted pixel data 513.
[0063] The motion estimation module 535 performs inter-frame prediction by generating MVs with reference to pixel data of previously decoded frames stored in the reconstructed picture buffer 550. These MVs are provided to the motion compensation module 530 to generate predicted pixel data.
[0064] Instead of encoding the complete actual MV in the bitstream, the video encoder 500 uses MV prediction to generate a predicted MV, and the difference between the MV used for motion compensation and the predicted MV is encoded as residual motion data and stored in the bitstream 595.
[0065] The MV prediction module 575 generates a predicted MV based on a reference MV generated for encoding a previous video frame, i.e., a motion compensated MV for performing motion compensation. The MV prediction module 575 retrieves the reference MV from the previous video frame from the MV buffer 565. The video encoder 500 stores the MV generated for the current video frame in the MV buffer 565 as a reference MV for generating the predicted MV.
[0066] The MV prediction module 575 uses the reference MV to create a predicted MV. The predicted MV can be calculated by spatial MV prediction or temporal MV prediction. The entropy encoder 590 encodes the difference (residual motion data) between the predicted MV and the motion compensated MV (MC MV) of the current frame into a bitstream 595.
[0067] The entropy encoder 590 encodes various parameters and data into a bitstream 595 by using an entropy coding technique such as context-adaptive binary arithmetic coding (CABAC) or Huffman coding. The entropy encoder 590 encodes various header elements, flags, along with the quantized transform coefficients 512 and residual motion data as syntax elements into the bitstream 595. The bitstream 595 is stored in a storage device or transmitted to a decoder via a communication medium such as a network.
[0068] The loop filter 545 performs filtering or smoothing operations on the reconstructed pixel data 517 to reduce encoding artifacts, particularly at the boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the loop filter 545 include a deblocking filter (DBF), a sample adaptive offset (SAO), and / or an adaptive loop filter (ALF).
[0069] Figure 6 A portion of a video encoder 500 that implements block segmentation based on local segmentation constraints is depicted. A segmentation engine 610 generates a set of segmentation information 620 for an entropy encoder 590. The entropy encoder 590 encodes or signals the set of segmentation information 620 as syntax elements to different levels of the video hierarchy (e.g., sequence, picture, slice, block) of a bitstream 595. The segmentation engine 610 also provides a segmentation structure 630 to a transform module 510 so that the transform module can perform a transform operation on the prediction residual 509 according to the segmentation structure 630 to generate quantized coefficients 512.
[0070] The segmentation engine 610 may apply various segmentation constraints, such as maximum depth of MTT, TT, BT, QT, etc. The segmentation operations performed by the segmentation engine 610 are subject to these segmentation constraints. The segmentation constraints 655 are localized or applied to each LCU of the current picture. The local segmentation constraints may be provided by the local feature detector 615, which uses various information, such as: neighboring reconstructed pixels provided by the reconstructed picture buffer 550, inter-frame or intra-frame prediction modes provided by the motion estimation module 535 or the intra-picture estimation module 520, or the input video signal from the video source 505. The local segmentation constraints may be included in the segmentation information 620 to be signaled in the bitstream 595 by the entropy encoder 590.
[0071] Figure 7 A process 700 for performing block segmentation based on local segmentation constraints is conceptually depicted. In some embodiments, one or more processing units (e.g., processors) of a computer device implementing encoder 500 perform process 700 by executing instructions stored in a computer readable medium. In some embodiments, an electronic device implementing encoder 500 performs process 700.
[0072] The encoder receives (at step 710) data for a current block of a plurality of blocks in a current picture of a video to be encoded. The current block may be a codec tree unit (CTU). The current block may also be a local Control Unit (LCU).
[0073] The encoder signals (at block 720) a maximum depth constrained to a particular split type for the current block. The particular split type is one of a quadtree (QT) split, a multi-type tree (MTT) split, a ternary tree (TT) split, and a binary tree (BT) split. In some embodiments, the maximum depth of the particular split type is one of a set of constraints that are applicable to different LCUs in the current picture.
[0074] The encoder constrains (at step block 730) a split operation for any of the plurality of blocks within the current block according to the signaled maximum depth for a particular split type. The split operation is a split operation of the particular split type such that the split operation is not allowed when the maximum depth of the particular split type is reached.
[0075] In some embodiments, when the current split partition at the current block (e.g., QT node or MTT node) reaches the maximum depth of a specific split type, further splitting by the specific split type is inferred to be disabled for the current split partition, and the syntax element for selecting the specific split type is skipped for the current split partition. For example, when the specific split type is a QT split and the current split partition reaches the maximum depth of the QT split, the syntax element for splitting the current split partition into a QT split is skipped and it is inferred that the split is not allowed.
[0076] In some embodiments, when the maximum depth of the MTT split is zero, the syntax element (e.g., split_qt_flag) for splitting the current split partition of the current block into QT partitions is skipped and is inferred to enable QT splitting. In some embodiments, when the specific split type is an MTT split and the maximum depth of the MTT split is reached for the current split partition, the syntax element for splitting the current split partition into multiple partitions is skipped and is inferred to not allow splitting. In some embodiments, when the current MTT split depth in the current block is greater than zero, the syntax element for indicating the maximum BT or TT depth of the current block is signaled. In some embodiments, when the maximum depth of BT or TT is reached for the current split partition of the current block, the flag (e.g., mtt_split_cu_binary_flag) for selecting between BT or TT splits is skipped.
[0077] In some embodiments, when the current MTT split depth in the current block is greater than zero, a syntax element (e.g., mtt_split_cu_vertical_flag) is used to signal whether vertical or horizontal splitting is allowed. In some embodiments, when vertical or horizontal splitting of the current split partition is not allowed for the current block, the syntax element used to signal MTT vertical or horizontal splitting is skipped.
[0078] In some embodiments, after encountering or performing MTT splitting for a current block, the encoder signals a syntax element (e.g., ctu_used_tt_flag) to indicate whether ternary tree (TT) splitting is used or allowed in the current block. In some embodiments, when the syntax element (e.g., ctu_used_tt_flag) indicates that TT splitting is not used for the current block, a flag (e.g., mtt_split_cu_binary_flag) used to indicate whether binary tree (BT) splitting is performed is skipped.
[0079] The encoder encodes (at step block 740) the current block based on the constrained partitioning operation.
[0080] 3. An example of a video decoder
[0081] In some embodiments, an encoder may signal (or generate) one or more syntax elements in a bitstream so that a decoder may parse the one or more syntax elements from the bitstream.
[0082] Figure 8 An example of a video decoder 800 that can implement block segmentation is depicted. As shown, the video decoder 800 is an image decoding or video decoding circuit that receives a bitstream 895 and decodes the contents of the bitstream into pixel data of a video frame for display. The video decoder 800 has several components or modules for decoding the bitstream 895, including some components selected from the following: an inverse quantization module 811, an inverse transform module 810, an intra-frame prediction module 825, a motion compensation module 830, a loop filter 845, a decoded picture buffer 850, an MV buffer 865, an MV prediction module 875, and a parser 890. The motion compensation module 830 is part of the inter-frame prediction module 840.
[0083] In some embodiments, modules 810-890 are software instruction modules executed by one or more processing units (e.g., processors) of a computer device. In some embodiments, modules 810-890 are hardware circuit modules implemented by one or more ICs of an electronic device. Although modules 810-890 are shown as independent modules, some modules can be combined into a single module.
[0084] The parser 890 (or entropy decoder) receives the bitstream 895 and performs initial parsing according to the syntax defined by the video codec or image codec standard. The parsed syntax elements include various header elements, flags, and quantization data (or quantization coefficients) 812. The parser 890 parses out the various syntax elements by using entropy coding techniques such as context adaptive binary arithmetic coding (CABAC) or Huffman coding.
[0085] The inverse quantization module 811 inversely quantizes the quantized data (or quantized coefficients) 812 to obtain transform coefficients, and the inverse transform module 810 inversely transforms the transform coefficients 816 to obtain a reconstructed residual signal 819. The reconstructed residual signal 819 is added to the predicted pixel data 813 from the intra prediction module 825 or the motion compensation module 830 to generate decoded pixel data 817. The decoded pixel data is filtered by the loop filter 845 and stored in the decoded picture buffer 850. In some embodiments, the decoded picture buffer 850 is a memory outside the video decoder 800. In some embodiments, the decoded picture buffer 850 is a memory inside the video decoder 800.
[0086] The intra prediction module 825 receives intra prediction data from the bitstream 895 and generates predicted pixel data 813 from decoded pixel data 817 stored in the decoded picture buffer 850. In some embodiments, the decoded pixel data 817 is also stored in a line buffer (not shown) for intra picture prediction and spatial MV prediction.
[0087] In some embodiments, the contents of the decoded picture buffer 850 are used for display. The display device 855 retrieves the contents of the decoded picture buffer 850 for direct display, or retrieves the contents of the decoded picture buffer to a display buffer. In some embodiments, the display device receives pixel values from the decoded picture buffer 850 via pixel transfer.
[0088] The motion compensation module 830 generates predicted pixel data 813 from the decoded pixel data 817 stored in the decoded picture buffer 850 according to the motion compensated MV (MC MV). These motion compensated MVs are decoded by adding the residual motion data received from the bitstream 895 to the predicted MV received from the MV prediction module 875.
[0089] The MV prediction module 875 generates a predicted MV based on a reference MV generated for decoding a previous video frame, such as a motion compensated MV for performing motion compensation. The MV prediction module 875 retrieves the reference MV of the previous video frame from the MV buffer 865. The video decoder 800 stores the motion compensated MV generated for decoding the current video frame in the MV buffer 865 as a reference MV for generating the predicted MV.
[0090] The loop filter 845 performs filtering or smoothing operations on the decoded pixel data 817 to reduce coding artifacts, particularly at the boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the loop filter 845 include a deblocking filter (DBF), a sample adaptive offset (SAO), and / or an adaptive loop filter (ALF).
[0091] Fig. 9A portion of a video decoder 800 that implements block segmentation based on local segmentation constraints is depicted. A segmentation engine 910 receives a set of segmentation information 920 from an entropy decoder 890. The entropy decoder 890 receives the segmentation information 920 as syntax elements from different levels of the video hierarchy (e.g., sequence, picture, slice, block) of a bitstream 895. The segmentation engine 910 also provides a segmentation structure 930 to an inverse transform module 810 so that the inverse transform module can perform an inverse transform operation on the quantized coefficients 812 according to the segmentation structure 930 to generate a reconstructed residual 819.
[0092] The segmentation engine 910 may apply various segmentation constraints, such as maximum depth of MTT, TT, BT, QT, etc. The segmentation operation performed by the segmentation engine 910 is subject to these segmentation constraints. The segmentation constraints are localized or applied to each LCU of the current picture. The local segmentation constraints are provided as part of the segmentation information 920, which is based on the syntax elements parsed from the bitstream 895 by the entropy decoder 890.
[0093] Fig.10 A process 1000 for performing block segmentation based on local segmentation constraints is conceptually depicted. In some embodiments, one or more processing units (e.g., processors) of a computer device implementing decoder 500 perform process 1000 by executing instructions stored in a computer readable medium. In some embodiments, an electronic device implementing decoder 500 performs process 1000.
[0094] The decoder receives (at step 1010) data of a current block of a plurality of blocks in a current picture to be decoded as a video. The current block may be a codec tree unit (CTU). The current block may also be a local Control Unit (LCU).
[0095] The decoder receives (at step block 1020) a maximum depth constrained to a particular split type for the current block. The particular split type is one of a quadtree (QT) split, a multi-type tree (MTT) split, a ternary tree (TT) split, and a binary tree (BT) split. In some embodiments, the maximum depth of the particular split type is one of a set of constraints that are applicable to different LCUs in the current picture.
[0096] The decoder constrains (at step block 1030) a split operation for any of the plurality of blocks within the current block according to the received maximum depth for a particular split type. The split operation is a split operation of a particular split type such that the split operation is not allowed when the maximum depth of the particular split type is reached.
[0097] In some embodiments, when the current split partition at the current block (e.g., QT node or MTT node) reaches the maximum depth of a specific split type, further splitting by the specific split type is inferred to be disabled for the current split partition, and the syntax element for selecting the specific split type is skipped for the current split partition. For example, when the specific split type is a QT split and the current split partition reaches the maximum depth of the QT split, the syntax element for splitting the current split partition into a QT split is skipped and it is inferred that the split is not allowed.
[0098] In some embodiments, when the maximum depth of the MTT split is zero, a syntax element (e.g., split_qt_flag) for splitting the current split partition of the current block into a QT split is skipped and it is inferred that a QT split is initiated when it is determined that the current split partition requires further splitting. In some embodiments, when the specific split type is an MTT split and the maximum depth of the MTT split is reached for the current split partition, a syntax element for splitting the current split partition into a plurality of partitions is skipped and it is inferred that the split is not allowed. In some embodiments, when the current MTT split depth in the current block is greater than zero, a syntax element for indicating the maximum BT or TT depth of the current block is received. In some embodiments, when the current split partition of the current block reaches the maximum depth of BT or TT, a flag (e.g., mtt_split_cu_binary_flag) for selecting between BT or TT splits is skipped.
[0099] In some embodiments, when the current MTT split depth in the current block is greater than zero, a syntax element (e.g., mtt_split_cu_vertical_flag) is received to indicate whether vertical or horizontal splitting is allowed. In some embodiments, when vertical or horizontal splitting of the current split partition is not allowed for the current block, the syntax element for indicating MTT vertical or horizontal splitting is skipped.
[0100] In some embodiments, after encountering or performing MTT splitting for a current block, the decoder receives a syntax element (e.g., ctu_used_tt_flag) to indicate whether ternary tree (TT) splitting is used or allowed in the current block. In some embodiments, when the syntax element (e.g., ctu_used_tt_flag) indicates that TT splitting is not used for the current block, a flag (e.g., mtt_split_cu_binary_flag) for indicating whether binary tree (BT) splitting is performed is skipped.
[0101] The decoder reconstructs the current block based on the constrained partitioning operation (at step block 1040). The decoder may then provide the reconstructed current block for display as part of a reconstructed current picture.
[0102] 4. An example of an electronic system
[0103] Many of the above features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer-readable storage medium (also referred to as computer-readable media). When these instructions are executed by one or more computing or processing units (e.g., one or more processors, processor cores, or other processing units), they cause the processing units to perform the actions represented by the instructions. An example of a computer-readable medium includes, but is not limited to, CD-ROMs, flash disks, random-access memory (RAM) chips, hard disks, erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc. Computer-readable media does not include carrier waves and electronic signals transmitted wirelessly or via wired connections.
[0104] In this specification, the term "software" is meant to include firmware residing in a read-only memory or an application stored in a magnetic storage device, which can be read into memory for processing by a processor. In addition, in some embodiments, a plurality of software inventions can be implemented as sub-parts of a larger program while retaining different software inventions. In some embodiments, a plurality of software inventions can also be implemented as independent programs. Finally, any combination of independent programs that implement the software inventions described herein together is within the scope of the present invention. In some embodiments, when the software program is installed to run on one or more electronic systems, one or more specific machine implementations are defined, which implement and execute the operations of the software program.
[0105] Fig.11 An electronic system 1100 is conceptually depicted to implement certain embodiments of the present invention. The electronic system 1100 may be a computer (e.g., a desktop computer, a personal computer, a tablet computer, etc.), a phone, a PDA, or any other kind of electronic device. Such an electronic system includes various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 1100 includes a bus 1105, a processing unit 1110, a graphics-processing unit (GPU) 1115, a system memory 1120, a network 1125, a read-only memory (ROM) 1130, a permanent storage device 1135, an input device 1140, and an output device 1145.
[0106] The bus 1105 collectively represents all system, peripheral, and chipset buses that communicatively couple the various internal components of the electronic system 1100. For example, the bus 1105 communicatively couples: the processing unit 1110, the GPU 1115, the read-only memory 1130, the system memory 1120, and the permanent storage device 1135.
[0107] From these various memory units, the processing unit 1110 retrieves instructions to be executed and data to be processed in order to perform the processes of the present invention. In different embodiments, the processing unit may be a single processor or a multi-core processor. Some instructions are passed to and executed by the GPU 1115. The GPU 1115 may offload various calculations or supplement the image processing provided by the processing unit 1110.
[0108] The read-only memory 1130 stores static data and instructions used by the processing unit 1110 and other modules of the electronic system. On the other hand, the permanent storage device 1135 is an erasable memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 1100 is turned off. Some embodiments of the present invention use a large-capacity storage device (such as a magnetic disk or optical disk and its corresponding magnetic disk drive) as the permanent storage device 1135.
[0109] Other embodiments use removable storage devices (e.g., floppy disks, flash memory devices, etc. and their corresponding disk drives) as permanent storage devices. Like permanent storage device 1135, system memory 1120 is an erasable memory device. However, unlike storage device 1135, system memory 1120 is a volatile read-write memory, such as random access memory. System memory 1120 stores some instructions and data used by the processor at run time. In certain embodiments, processes according to the present invention are stored in system memory 1120, permanent storage device 1135 and / or read-only memory 1130. For example, in certain embodiments, various memory units include instructions for processing multimedia clips. From these various memory units, processing unit 1110 retrieves instructions to be executed and data to be processed in order to execute the processes of certain embodiments.
[0110] The bus 1105 is also connected to an input device 1140 and an output device 1145. The input device 1140 enables a user to transmit information and select commands to the electronic system. The input device 1140 includes an alphanumeric keyboard and a pointing device (also called a "cursor control device"), a camera (e.g., a webcam), a microphone, or a similar device for receiving voice commands, etc. The output device 1145 displays images or output data generated by the electronic system. The output device 1145 includes a copier and a display device, such as a cathode ray tube (CRT) display or a liquid crystal display (LCD), and a speaker or similar audio output device. Certain embodiments include devices that are used as both input and output devices, such as a touch screen.
[0111] Finally, if Fig.11 As shown, bus 1105 also couples electronic system 1100 to network 1125 via a network adapter (not shown). In this manner, the computer may be part of a network of computers (e.g., a local area network (LAN), a wide area network (WAN), or an intranet), or a network of multiple networks such as the Internet. Any or all components of electronic system 1100 may be used in conjunction with the present invention.
[0112] Certain embodiments include electronic components, such as microprocessors, storage and memory, which store computer program instructions in machine-readable or computer-readable media (or computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROMs), recordable compact discs (CD-Rs), rewritable compact discs (CD-RWs), read-only digital versatile discs (e.g., DVD-ROMs, dual-layer DVD-ROMs), various recordable / rewritable DVDs (e.g., DVD-RAMs, DVD-RWs, DVD+RWs, etc.), flash memory (e.g., SD cards, mini-SD cards, micro SD cards, etc.), magnetic and / or solid-state hard drives, read-only and recordable CD-ROMs, ultra-density CD-ROMs, any other optical or magnetic media, and floppy disks. Computer readable media may store computer programs that are executable by at least one processing unit and include sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as that produced by a compiler, and archives including high-level code that is executed by a computer, electronic component, or microprocessor using an interpreter.
[0113] Although the above discussion primarily involves microprocessors or multi-core processors executing software, many of the above functions and applications are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuits themselves. In addition, some embodiments execute software stored in programmable logic devices (PLDs), ROM, or RAM devices.
[0114] The terms "computer", "server", "processor" and "memory" as used in this specification and any claims herein refer to electronic or other technical devices. These terms do not include people or groups of people. For the purpose of this specification, the term "display" means display on an electronic device. The terms "computer readable medium", "computer readable medium" and "machine readable medium" as used in this specification and any claims herein are entirely limited to tangible physical objects that store information in a readable form. A computer. These terms do not include any wireless signals, wired download signals and any other temporary signals.
[0115] Although the present invention has been described with reference to many specific details, it will be appreciated by those skilled in the art that the present invention may be implemented in other specific forms without departing from the spirit of the present invention. Figure 7 and Fig.10 ) conceptually illustrates the process. The specific operations of these processes may not be performed in the exact order shown and described. Specific operations may not be performed in a continuous series of operations, and different specific operations may be performed in different embodiments. In addition, the process can be implemented using multiple sub-processes or as part of a larger macro process. Therefore, it will be understood by those skilled in the art that the present invention is not limited by the foregoing illustrative details, but is limited by the scope of the attached claims.
[0116] The subject matter described herein sometimes depicts different components contained in or connected to different other components. It should be understood that the architecture depicted in this way is only an example, and in fact, many other architectures that realize the same function can be implemented. Conceptually, any arrangement of components that realize the same function is effectively "associated", thereby realizing the desired function. Therefore, any two components combined here to realize a specific function can be regarded as "associated" with each other so that the desired function is realized, regardless of how the architecture or intermediate components are. Similarly, any two components so associated can also be regarded as "operably connected" or "operably coupled" to each other to realize the desired function, and any two components that can be so associated can also be regarded as "operably coupled" to realize the desired function. The specific examples of operably coupled include but are not limited to physically matched and / or physically interactive components and / or wirelessly interactive and / or wirelessly interactive components and / or logically interactive and / or logically interactive components.
[0117] In addition, with respect to the use of substantially any plural and / or singular terms herein, those skilled in the art may translate from the plural to the singular and / or from the singular to the plural, depending on the context and / or application. For clarity, various singular / plural arrangements may be explicitly set forth herein.
[0118] In addition, those skilled in the art will understand that, in general, the terms used herein, and particularly the terms used in the appended claims, such as the body of the appended claims, are generally intended as "open" terms, for example, the term "including" should be interpreted as "including but not limited to", "having" should be interpreted as "at least", "comprising" should be interpreted as "including but not limited to", etc. Those skilled in the art will further understand that if a specific number is intended to be introduced in the claims, such intent will be explicitly stated in the claims, and in the absence of such a statement, such intent is not present. For example, to aid understanding, the following appended claims may contain narrations that use the introductory phrases "at least one" and "one or more" to introduce the claims. However, the use of such phrases should not be construed as implying that a claim introduced by the indefinite article "a" will limit any particular claim that includes such an introduced claim to implementations that include only one such statement, even when the same claim includes the introductory phrases "one or more" or "at least one" and an indefinite article, such as "a" or "an", for example, "a" and / or "an" should be construed as "at least one" or "one or more;" the same applies to the use of definite articles to introduce claim statements. Furthermore, even if a specific number of an introduced claim recitation is explicitly cited, a person skilled in the art will recognize that such recitation should be It is interpreted as referring to at least the number of citations, for example, the record of "repeated citations twice" without other modifiers means at least two repetitions, or two or more repetitions. In addition, in those cases where the definition is similar to "at least one of A, B, C, etc. is used", generally speaking, such a structure is intended to make those skilled in the art understand the specific meaning. For example, "a system having at least one of A, B and C" will include but is not limited to such systems: A independently, B independently, C independently, A and B at the same time, A and C at the same time, B and C at the same time, and / or A, B, C at the same time, etc. In these cases, the use of similar to "at least one of A, B or C, etc. ", generally speaking, such a structure is intended to enable those skilled in the art to understand the specific meaning, for example, "a system having at least one of A, B or C" will include but is not limited to such a system having: only A, only B, only C, both A and B, both A and C, both B and C, and / or both A, B, C, etc. Those skilled in the art will further understand that in fact, whether in the specification, the scope of the patent application or the drawings, any disjunctive words and / or phrases appearing with two or more alternative terms should be understood to consider the possibility of including one of the terms, any term or both terms. For example, the phrase "A or B" will be understood to include the possibility of "A" or "B" or "A and B".
[0119] As can be understood from the above, various embodiments of the present invention have been described herein for illustrative purposes, and various modifications may be made without departing from the scope and spirit of the present invention. Therefore, the various embodiments disclosed herein are not intended to be limiting, and the true scope and spirit are represented by the appended patent claims.
Claims
1. A video encoding and decoding method, comprising: Receiving data to be encoded or decoded as a current block of a plurality of blocks in a current picture of a video; Signaling or receiving a maximum depth limited to a particular split type for the current block; constraining split operations in any one or more blocks within the current block based on the signaled or received maximum depth for the particular split type; as well as The current block is encoded or decoded based on the partitioning operation of the constraint.
2. The video encoding and decoding method as claimed in claim 1, wherein: The current block is a codec tree unit.
3. The video encoding and decoding method as claimed in claim 1, wherein: The current block is a local control unit, wherein the maximum depth of the particular split type is one of a set of constraints that are adaptive to different local control units in the current picture.
4. The video encoding and decoding method as claimed in claim 1, wherein: The specific split type is one of a quadtree split, a multi-type tree split, a ternary tree split, and a binary tree split.
5. The video encoding and decoding method as claimed in claim 1, wherein: The split operation includes a split operation of the particular split type, wherein the split operation is not allowed when a maximum depth of the particular split type is reached.
6. The video encoding and decoding method as claimed in claim 1, wherein: When a current split partition at the current block reaches the maximum depth of the particular split type, further splitting by the particular split type is inferred to be disabled for the current split partition, and a syntax element for selecting the particular split type is skipped for the current split partition.
7. The video encoding and decoding method as claimed in claim 1, wherein: When the particular split type is a quadtree split and when a current split reaches the maximum depth of the quadtree split, a syntax element for splitting the current split into a quadtree split is skipped and it is inferred that the split is not allowed.
8. The video encoding and decoding method as claimed in claim 1, wherein: When the maximum depth for multi-type tree splitting is zero, syntax elements for splitting a current split partition of the current block into quadtree partitions are skipped, and when the current split partition is determined to be further split, the quadtree split is inferred to be initiated.
9. The video encoding and decoding method as claimed in claim 1, wherein: When the particular split type is a multi-type tree split and the maximum depth of the multi-type tree split is reached for a current split, syntax elements for splitting the current split into more than one split are skipped and it is inferred that the split is not allowed.
10. The video encoding and decoding method as claimed in claim 1, wherein: When a depth of a multi-type tree split is greater than zero, a syntax element indicating a maximum binary or ternary tree depth for the current block is signaled.
11. The video encoding and decoding method as claimed in claim 1, wherein: When a current split partition at the current block reaches the maximum depth of the binary tree or ternary tree, a flag for selecting between binary tree or ternary tree split is skipped.
12. The video encoding and decoding method of claim 1, wherein: When a depth of a multi-type tree split in the current block is greater than zero, a syntax element indicating whether vertical or horizontal splits are allowed in the current block is signaled.
13. The video encoding and decoding method as claimed in claim 12, wherein: When a vertical split or a horizontal split of a current split partition is not allowed for the current block, the syntax element for indicating a multi-type tree vertical split or horizontal split is skipped.
14. The video encoding and decoding method of claim 1, further comprising: After encountering multiple types of tree splits for the current block, a syntax element is signaled or received to indicate whether ternary tree splits are used or allowed in the current block.
15. The video encoding and decoding method as claimed in claim 14, wherein: When the syntax element indicates that ternary tree splitting is not used for the current block, a flag for indicating whether to perform binary tree splitting is skipped.
16. An electronic device comprising: The video codec circuit is configured to perform operations including: Receiving data to be encoded or decoded as a current block of a plurality of blocks in a current picture of a video; Signaling or receiving a maximum depth limited to a particular split type for the current block; constraining split operations in any one or more blocks within the current block according to a signaled or received maximum depth for the particular split type; as well as The current block is encoded or decoded based on the constrained partitioning operation.
17. A video decoding method, comprising: Receiving data to be decoded as a current block of a plurality of blocks in a current frame of a video; receiving a maximum depth limited to a particular split type for the current block; constraining split operations in any one or more blocks within the current block based on the signaled or received maximum depth for the particular split type; as well as The current block is reconstructed based on the constrained segmentation operation.
18. A video encoding and decoding method, comprising: Receiving data to be encoded as a current block of a plurality of blocks in a current picture of a video; Signaling is limited to the maximum depth of a particular split type for the current block; constraining a split operation of any one of a plurality of blocks within a current block according to the signaled or received maximum depth for the particular split type; as well as The current block is encoded based on the constraint-based partitioning operation.