Restrictions on binary tree coding units to apply QUAD tree structure
By restricting BT splits to mimic a QT-like structure and using a new CABAC context, the computational complexity of the ECM encoder is reduced with minimal impact on compression efficiency, addressing the high complexity challenge in the ECM encoder.
Patent Information
- Application Number
- PCT/SE2025/050328
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-09
- Filing Date
- 2025-04-09
- Publication Date
- 2025-10-16
AI Technical Summary
The high computational complexity of the Enhanced Coding Model (ECM) encoder is a challenge due to the evaluation of multiple intra and inter coding tools for each Coding Unit (CU), which increases encoding complexity without a proportional gain in compression efficiency.
Implementing a method to restrict Binary Tree (BT) splitting to mimic a Quad Tree (QT)-like structure by disabling certain split types for coding units, specifically by preventing a QT-like structure when a Quad Tree split is allowed, and using a new Context-Based Adaptive Binary Arithmetic Coding (CABAC) context to signal these restrictions.
This approach reduces the computational complexity of the ECM encoder by approximately 1.0% on average with minimal loss in compression efficiency, specifically in luma and chroma channels.
Smart Images

Figure SE2025050328_16102025_PF_FP_ABST
Abstract
Description
RESTRICTIONS ON BINARY TREE CODING UNITSTO APPLY QUAD TREE STRUCTURETECHNICAL FIELD
[0001] This disclosure related to encoding and decoding of video.BACKGROUND
[0002] Versatile Video Coding (VVC) is a block-based video codec standardized by The International Telecommunication Union Telecommunication Standardization Sector (ITU-T) and Moving Picture Experts Group (MPEG). With the aim to demonstrate and provide evidence of video coding capabilities beyond VVC, the exploratory codec referred to as Enhanced Coding Model (ECM) is currently under development. The current ECM version (when this disclosure was written) is ECM- 12.0. In ECM, spatial prediction is achieved using intra (I) prediction from within a current picture, while temporal prediction is achieved using uni-directional (P) or bi-directional inter (B) prediction on a block level from previously decoded reference pictures. In the encoder, the difference between the original sample data and the predicted sample data, referred to as the residual, is transformed into the frequency domain, quantized, and then entropy coded before being transmitted together with necessary prediction parameters such as prediction mode and motion vectors, which are also entropy coded. The decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual and then adds the residual to intra or inter predicted data to reconstruct a picture.
[0003] Video, Picture, and Picture Resolution
[0004] A video (a.k.a., “video sequence”) comprises of a series of pictures. In VVC, each picture is identified with a picture order count (POC) value. The POC value also represents the display order of the picture. A picture with a smaller POC value is displayed before another picture with a larger POC value. Each picture may consist of one or more components. It is common that a picture consists of three components; one luma component Y where the sample values are luma values and two chroma components Cb and Cr, where the sample values are chroma values. Each component can be described as a two-dimensional rectangular array of sample values.
[0005] Coding Unit and Coding Block
[0006] A block is a two-dimensional (2D) matrix of sample values (or “samples” for short). In video coding, each component of a picture is split into blocks and the coded videobitstream consists of a series of coded blocks. It is common in video coding that pictures are split into units that cover a specific area of the picture.
[0007] Each unit consists of all blocks from all components that make up that specific area of the picture and each block belongs fully to one unit. The Coding Unit (CU) in VVC is an example of a unit. In VVC, the CUs may be split recursively to smaller CUs. The CU at the top level is referred to as the coding tree unit (CTU). A CU usually contains three coding blocks, i.e., one coding block for luma and two coding blocks for chroma. The size of the luma coding block is same as the size of the coding unit. In VVC, the CUs can have size of 4x4 up to 128x128. In current ECM, the CUs can have size of 4x4 up to 256x256. In this disclosure, a coding unit (CU) may refer to a CU itself or may refer to a block (e.g., a luma channel CU, a chroma channel CU, etc.) included in the CU.
[0008] Parameter Sets, Slice Headers and Picture Headers
[0009] VVC specifies three types of parameter sets: the picture parameter set (PPS), the sequence parameter set (SPS), and the video parameter set (VPS). The PPS contains data that is common for a whole picture, the SPS contains data that is common for a coded layer video sequence (CLVS), and the VPS contains data that is common for multiple CLVSs, e.g., data for multiple layers in the bitstream.
[0010] The concept of slices divides the picture into independently coded slices, where decoding of one slice in a picture is independent of other slices of the same picture. Each slice has a slice header comprising syntax elements. Decoded slice header values from these syntax elements are used when decoding the slice. In VVC, a coded picture contains a picture header. The picture header contains parameters that are common for all slices of the coded picture.
[0011] Partitioning of the CTUs Using a Tree Structure
[0012] In VVC and ECM, a CTU is either treated as one CU (non-split) or split into multiple CUs using quad-tree (QT), binary tree (BT) or ternary tree (TT) structures. The BT and TT split modes are also referred to as a multi-type tree (MTT) structure. The partitioning scheme in VVC and ECM provides support for rectangular CUs together with square CUs, which allows a better fit to local picture content characteristics. VVC and ECM shares the same block partitioning modes as presented in FIG. 1. In QT split mode, the CU is partitioned into four equally sized square blocks. In multi -type tree (MTT) structure, four splitting types are defined, i.e., vertical binary splitting (BTV), horizontal binary splitting (BTH), vertical ternary splitting (TTV) and horizontal ternary splitting (TTH). The BTH or BTV split modes partition the CU horizontally or vertically into two equally size blocks. The TTH or TTV split modes partition the CU horizontally or vertically into three sub blocks with 1:2:1 ratio. The centralsub block covers twice the area of the parent CU compared to the two side blocks. Each side block covers one quarter of the parent CU area.
[0013] FIG. 1 illustrates block partitioning modes in VVC and ECM.
[0014] Each CTU is first partitioned by a QT structure and the quaternary tree leaf nodes can choose not to split or can be further partitioned by a BT, TT or QT structure. Once a CU is partitioned by BT or TT structure, QT structure is restricted for subsequent CUs.
[0015] An example of CTU partitioned using QT and MTT split modes is shown in FIG. 2.
[0016] The block partitioning in ECM is controlled by using following parameters.• CTU size: the root node size of a quaternary tree• MinQTSize: the minimum allowed quaternary tree leaf node size• MaxBtSize: the maximum allowed binary tree root node size• MaxTtSize: the maximum allowed ternary tree root node size• MaxMttDepth: the maximum allowed hierarchy depth of multi-type tree splitting from a quadtree leaf• MinCbSize: the minimum allowed coding block node size
[0017] These parameters are defined in SPS syntax elements and can be further updated in picture header syntax elements. The QT or multi-type tree leaf nodes also referred to as CUs are used in prediction and transform processing provided that the CU size remains within the maximum transform size. The decision whether to code a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the CU level.
[0018] FIG. 2 illustrates an example of a quadtree with a nested multi-type tree coding block structure.
[0019] Signaling and Context Coding of Partitioning Parameters
[0020] The VVC and ECM encoders signal the partitioning information to the decoder side using four syntax elements, i.e., split_cu_flag, split qt flag, mtt_split_cu_vertical_flag and mtt split cu binary flag. The split cu flag is signaled or inferred at each coding tree node. If this flag is 0, a coding tree leaf is reached, and this coding tree node is treated as a CU; otherwise, a syntax element, split qt flag, is signaled or inferred to select between the QT split and the MTT split. If split qt flag is equal to 1, then the QT split is applied; otherwise, a syntax element, mtt_split_cu_vertical_flag, is signaled or inferred to select between the horizontal split direction and the vertical split direction; and a syntax element, mtt split cu binary flag, is signaled or inferred to choose between the BT split and the TT split.
[0021] The abovementioned four syntax elements are all context coded by the contextbased adaptive binary arithmetic coding (CABAC). The contexts are defined to exploit the correlation between the partitioning structures of the current and neighboring coding tree nodes. In VVC and ECM, 9, 6, 5, and 4 context variables are assigned respectively for entropy coding split cu flag, split_qt_flag, mtt split cu vertical flag, and mtt split cu binary flag.
[0022] Intra Prediction
[0023] In intra prediction, also known as spatial prediction, a current block is predicted using previously decoded blocks within the same picture. The samples from the previously decoded blocks within the same picture are used to predict the samples inside the current block. A picture consisting of only intra-predicted blocks is referred to as an intra picture.
[0024] Inter prediction and motion compensation
[0025] In inter prediction, also known as temporal prediction, a current block of the current picture is predicted using blocks from previously decoded pictures (these blocks are referred to as reference blocks). The samples from the reference blocks in the previously decoded pictures are used to predict the samples inside the current block. A picture that comprises one or more inter-predicted blocks is referred to as an inter picture. The previous decoded pictures used for inter prediction are referred to as reference pictures.
[0026] Hierarchical B Picture Coding Structure
[0027] In “random access configuration,” intra coded pictures are positioned with a fixed interval like every second. Pictures between the intra coded pictures are typically coded with a hierarchical B picture structure.
[0028] One example of a hierarchy of 8 pictures is shown in FIG. 3. Picture 0 is coded first and then picture 8 is coded using picture 0 as its reference picture. Then picture 8 and picture 0 are used as reference pictures to code picture 4. Then similarly, picture 2 and picture 6 are coded. And finally, picture 1, 3, 5 and 7 pictures are coded. We refer to pictures 1, 3, 5 and 7 to be on the highest hierarchical level, pictures 2 and 6 to be on the next highest hierarchical level, and picture 4 to be on next lowest level and picture 8 to be on the lowest level. Typically picture 1, 3, 5 and 7 are not used for reference of any other pictures. They are called nonreference pictures. In video coding, a hierarchy of 16 or 32 pictures are also commonly used.SUMMARY
[0029] There currently exist certain challenge(s). In ECM, for each CU the encoder tries several intra and inter coding tools which improves the coding gain at the cost of additionalcomputational complexity. Because of the high computational complexity, it is important to find ways for the encoder to limit the number of modes it has to evaluate.
[0030] Certain aspects of the disclosure and their embodiments may provide solutions to these or other challenges. The encoder starts coding a block, as usual, by computing the cost of various non-split and split modes to encode the entire block. QT split partitions the CU in four equally sized square blocks where each block can further apply MTT and QT split modes. BTH split on a square CU followed by BTV splits on its both parts apply a QT-like structure. Similarly, BTV split on a square CU followed by BTH splits on its both parts apply a QT-like structure. In an embodiment, the encoder may avoid evaluating a QT-like structure using BT splitting for a CU when a QT split is allowed for that CU. Embodiments may restrict BT splitting to mimic, or apply, a QT-like structure for a CU which is allowed to evaluate a QT split.
[0031] According to a first aspect of the present disclosure, there is provided a method for reducing encoding complexity. The method comprises providing a video. The method comprises encoding the video, wherein encoding the video comprises splitting a coding tree unit into one or more coding units; wherein when splitting the coding tree unit into one or more coding units and when quad tree splitting is allowed for the coding units: (i) if horizontal binary splitting, BTH, is applied to a first coding unit creating a first subblock and a second subblock, followed by vertical binary splitting, BTV, on the first subblock, disabling a BTV split type for the second subblock; and (ii) if vertical binary splitting, BTV, is applied to a first coding unit creating a first subblock and a second subblock, followed by horizontal binary splitting, BTH, on the first subblock, disabling a BTH split type for the second subblock.
[0032] According to a second aspect of the present disclosure, there is provided a method for decoding. The method comprises parsing one or more coding units of a coding tree unit. The method further comprises decoding a syntax element based on a context-based adaptive binary arithmetic coding, CABAC, context when the BTH split is applied on a coding unit and its first subblock selects the BTV split or when the BTV split is applied on a coding unit and its first subblock selects the BTH split.
[0033] According to a third aspect of the present disclosure, there is provided an encoder configured to perform the method according to the first aspect.
[0034] According to a fourth aspect of the present disclosure, there is provided a decoder configured to perform the method according to the second aspect.
[0035] Certain embodiments may provide one or more of the following technical advantage(s). The approach can reduce computational complexity of the ECM encoder, forexample, by about 1.0% on average at a cost of less than 0.01% compression efficiency in luma and chroma channels respectively in certain embodiments.
[0036] Other advantages may be readily apparent to one having skill in the art. Certain embodiments may have none, some, or all of the recited advantages.BRIEF DESCRIPTION OF THE DRAWINGS
[0037] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
[0038] FIG. 1 illustrates block partitioning modes in VVC and ECM.
[0039] FIG. 2 illustrates an example of a quadtree with a nested multi-type tree coding block structure.
[0040] FIG. 3 illustrates an example of a hierarchical structure in random access profile.
[0041] FIG. 4(a)-(c) shows the proposed restriction on BT splitting to apply a QT-like structure.
[0042] FIG. 5 is a block diagram of apparatus (an encoder or a decoder), according to some embodiments, for performing the methods disclosed herein.DETAILED DESCRIPTION
[0043] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
[0044] In block-based video codecs such as ECM, the encoder recursively partitions each block also referred to as CTU and evaluates a set of coding tools for blocks at each partitioning level. The combination of block sizes and coding tools providing the best rate-distortion cost is selected by the encoder which improves the coding gain at the expense of increase in coding complexity. In certain embodiments, a novel restriction / condition is presented in an ECM encoder which disallow BT splits to apply a QT-like structure on a CU when QT split is allowed for such CU. A new CABAC context is also added to facilitate the proposed condition. FIG. 4(a)-(c) shows the proposed restriction on BT splitting to apply a QT-like structure. FIG. 4(b) shows BTH split applied on a block followed by BTV splitting on each subblock which produces a QT-like structure as shown in FIG. 4(a). Similarly, FIG. 4(c) shows BTV split applied on a block followed by BTH splitting on each subblock produces a QT-like structure.
[0045] Embodiment 1
[0046] When the binary split is applied on a luma channel coding unit (CU) belonging to an intra or inter slice having size m x n, it partitions the parent CU into two equal-sized subblocks. The m and n can have same or different value. Depending on the applied BT split, either BTH or BTV, the partitioning of parent CU results in two subblocks of sizes either m x n / 2 or m / 2 x n.
[0047] When BTH is applied on the CU and the first subblock selects the BTV split, then for the second subblock the BTV split is disallowed to avoid a QT-split-like structure. Similarly, when BTV is applied on a CU and the first subblock selects the BTH split, then for the second subblock the BTH split is disallowed to avoid a QT-split-like structure.
[0048] In some embodiments, for the CU having size 64x64, if the BTH split is applied and for the first subblock having size 64x32, the encoder selects the BTV split, then for the second subblock having size 64x32, the BTV split is disallowed.
[0049] In some other embodiments, for the CU having size 64x64, if the BTV split is applied and for the first subblock having size 32x64, the encoder selects the BTH split, then for the second subblock having size 32x64, the BTH split is disallowed.
[0050] The proposed criterion can be applied to any, all, or a combination of CU sizes from 8x8 to 256x256, provided the QT split is allowed to evaluate for such CUs.
[0051] The proposed criterion, for example, can be applied based on the maximum CTU size. In one example, when the maximum CTU size is 256, the proposed scheme is applied to 256x256, 128x128 and 64x64 CUs. In another example, when the maximum CTU size is 128, the proposed scheme is applied to 128x128, 64x64 and 32x32 CUs.
[0052] An example of a code snippet implemented in ECM 12.0 for luma channel 64x64 CU is now provided.
[0053] This implementation is added in function EncModeCtrlMTnoRQT::initCULevel () function. bool disableBTV = false; / / Variable which is set to disable BTV split for the second part of the BT CU bool disableBTH = false; / / Variable which is set to disable BTH split for the second part of the BT CU / / detecting if the first part of BTH has selected BTV split than disable BTV for the second partif ((partitioner.currQtDepth == (cs.sps->getCTUSize() == 256 ? 2 : 1)) && (partitioner.currAreaQ.lwidthQ == 64 && partitioner.currAreaQ.lheightQ * 2 == partitioner. currArea().lwidth())) if ((partitioner. currP artLev el (). split == CU HORZ SPLIT) &&(parti ti oner. currPartldxQ == 1) && (cs.BTfirstPartDecs_64 == ETM SPLIT BT V)) disableBTV = true; / / detecting if the first part of BTV has selected BTH split than disable BTH for the second part if ((partitioner.currQtDepth == (cs.sps->getCTUSize() == 256 ? 2 : 1)) && (partitioner.currArea().lwidth() * 2 == partitioner. currArea().lheight() && partitioner. currArea().lheight() == 64)) if ((partitioner. currPartLevelQ. split == CU VERT SPLIT) &&(partitioner. currPartldxQ == 1) && (cs.BTfirstPartDecs_64 == ETM SPLIT BT H)) disableBTH = true;
[0054] This implementation is added in QTBTPartitioner::cansplit() function, this function receives the flags disableBTV and disableBTH as an input and decides about evaluating Binary vertical and Binary horizontal split. This function is available to both encoder and decoder. / / not allowing QT like structure for BT CUs if (disableBTV && (chType == CHANNEL TYPE LUMA)) / / if first BT part has chosen vertical Split so avoid it for the second part canBv = false; if (disableBTH && (chType == CHANNEL TYPE LUMA)) / / if first BT part has chosen Horizontal Split so avoid it for the second partcanBh = false;
[0055] Embodiment 2
[0056] The application of embodiment 1, where a new CAB AC context is added to signal the syntax element split cu flag (encode by CABAC) , which is used to indicate whether the current CU is partitioned or not. The new CABAC context is used when the binary split is applied on a luma channel coding unit (CU) and the first block chooses a different binary split compared to its parent binary split. In particular, the context is used when the BTH split is applied on a CU and its first subblock selects the BTV split or when the BTV split is applied on a CU and its first subblock selects the BTH split.
[0057] This implementation is added in CABACWriter::split_cu_mode() function const bool canl4 = isVer ? canTv : canTh; const bool canl2 = isVer ? canBv : canBh; const bool is 12 = isVer ? ( split == CU_VERT SPLIT ) : ( split == CU_HORZ SPLIT ); if( canl2 && canl4 ) m_BinEncoder.encodeBin( isl2, Ctx::Splitl2Flag( isVer ? ctxBttV12 : ctxBttH12 ) );
[0058] The CAB ACWriter: : split_cu_mode() is the function that CABAC encode the syntax element split cu flag by the proposed new CABAC context. This implementation is added in CABACReader::split_cu_mode() const bool canl4 = isVer ? canTv : canTh; bool is 12 = isVer ? canBv : canBh; if( is 12 && canl4 ) isl2 = m_BinDecoder.decodeBin( Ctx::Splitl2Flag( isVer ? ctxBttV12 : ctxBttH12 ) );The CABACReader::split_cu_mode() is the function that CABAC decode the syntax element split cu flag by the proposed new CABAC context.
[0059] Embodiment 3
[0060] The application of any of embodiments 1 and 2, where the binary horizontal split is applied on a luma channel coding unit (CU) belonging to an intra or inter slice having size m x n. If the first subblock has selected BTV split, then for the second subblock BTV and TTV splits are disallowed.
[0061] Similarly, when the BTV split is applied on a CU and its first subblock selects the BTH split then for the second subblock BTH and TTH splits are disallowed.
[0062] Embodiment 4
[0063] The application of any of embodiments 1 to 3, where the restriction on BT CUs to apply a QT-like structure is only applied when a QT split is evaluated prior to MTT splits.
[0064] Embodiment 5
[0065] The application of any of embodiments 1 to 4 as part of encoding for chroma channels.
[0066] Embodiment 6
[0067] The application of any of embodiments 1 to 5 as part of encoding in ECM in the context of reference picture resampling (RPR).
[0068] Embodiment 7
[0069] The application of any of embodiments 1 to 6 as part of encoding in ECM in the context of scalable coding.
[0070] In any of the previous embodiments the proposed restriction is applicable for those CUs which are allowed to apply QT split.
[0071] Results
[0072] The results presented below correspond to Embodiment 1 and Embodiment 2. For Class Al and Class A2, the proposed condition is applied to a luma channel of 128x128 and 64x64 CUs. For rest of the classes, the proposed condition is applied to a luma channel of 128x128, 64x64, and 32x32 CUs.
[0074] FIG. 5 is a block diagram of apparatus 500 (e.g., an encoder or decoder), according to some embodiments, for performing the methods disclosed herein. As shown in FIG. 5, apparatus 500 may comprise: processing circuitry (PC) 502, which may include one or more processors (P) 555 (e.g., a general purpose microprocessor and / or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 500 may be a distributed computing apparatus); at least one network interface 548 comprising a transmitter (Tx) 545 and a receiver (Rx) 547 for enabling apparatus 500 to transmit data to and receive data from other nodes connected to a network 510 (e.g., an Internet Protocol (IP) network) to which network interface 548 is connected (directly or indirectly) (e.g., network interface 548 may be wirelessly connected to the network 510, in which case network interface 548 is connected to an antenna arrangement); and a storage unit (a.k.a., “data storage system”) 508, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. Interface 560 may connect PC 502 and storage unit 508, interface 562 may connect PC 502 and network interface 548, and interface 564 may connect network interface 548 and network 510. In embodiments where PC 502 includes a programmable processor, a computer program product (CPP) 541 may be provided. CPP 541 includes a computer readable medium (CRM) 542 storing a computer program (CP) 543 comprising computer readable instructions (CRI) 544. CRM 542 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 544 of computer program 543 is configured such that when executed by PC 502, the CRI causes apparatus 500 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, apparatus 500 may be configured to perform steps described herein without the need for code. That is, for example, PC 502 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and / or software.
[0075] Although the computing devices described herein (e.g., encoders and decoders) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0076] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer- readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer- readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.EMBODIMENTSGroup A EmbodimentsAla. A method for reducing encoding complexity, the method comprising: providing a video; and encoding the video, wherein encoding the video comprises splitting a coding tree unit into one or more coding units; wherein when splitting the coding tree unit into one or more coding units and when quad tree splitting is allowed for the coding units:(i) if horizontal binary splitting (BTH) is applied to a first coding unit creating a first subblock and a second subblock, followed by vertical binary splitting (BTV) on the first subblock, selecting a split type for the second subblock from a set of split types not including a BTV split type; and(i) if vertical binary splitting (BTV) is applied to a first coding unit creating a first subblock and a second subblock, followed by horizontal binary splitting (BTH) on the first subblock, selecting a split type for the second subblock from a set of split types not including a BTH split type.Alb. A method for reducing encoding complexity, the method comprising: providing a video; and encoding the video, wherein encoding the video comprises splitting a coding tree unit into one or more coding units; wherein when splitting the coding tree unit into one or more coding units and when quad tree splitting is allowed for the coding units:(i) if horizontal binary splitting (BTH) is applied to a first coding unit creating a first subblock and a second subblock, followed by vertical binary splitting (BTV) on the first subblock, disabling a BTV split type for the second subblock; and(i) if vertical binary splitting (BTV) is applied to a first coding unit creating a first subblock and a second subblock, followed by horizontal binary splitting (BTH) on the first subblock, disabling a BTH split type for the second subblock.A2. The method of any one of embodiments Ala and Alb, wherein splitting the coding tree unit into one or more coding units comprises applying to the first coding unit a BTH creating the first subblock and the second subblock, followed by applying to the first subblock a BTV.A3. The method of any one of embodiments Ala and Alb, wherein splitting the coding tree unit into one or more coding units comprises applying to the first coding unit a BTV creating the first subblock and the second subblock, followed by applying to the first subblock a BTH.A4. The method of any one of embodiments Ala, Alb, and A2-A3, wherein, encoding the video further comprises including a context-based adaptive binary arithmetic coding (CAB AC) context when the BTH split is applied on a coding unit and its first subblock selects the BTV split or when the BTV split is applied on a coding unit and its first subblock selects the BTH split.A4a. The method of embodiment A4, wherein including the CABAC context is independent of whether quad tree splitting has been evaluated.A4b. The method of embodiment A4, wherein including the CABAC context signals a syntax element split_cu_flag, which is used to signal whether the current CU is partitioned or not.A5. The method of any one of embodiments Ala, Alb, and A2-A4b, wherein (i) horizontal binary splitting (BTH) is applied to a first coding unit, followed by vertical binary splitting (BTV) on the first subblock, the coding unit is on a luma channel, and then for the second subblock disabling both BTV and vertical ternary split (TTV).A6. The method of any one of embodiments Ala, Alb, and A2-A4a, wherein (ii) vertical binary splitting (BTV) is applied to a first coding unit, followed by horizontal binary splitting (BTH) on the first subblock the coding unit is on a luma channel, and then for the second subblock disabling both BTH and horizontal ternary split (TTH).A7. The method of any one of embodiments Ala, Alb, A5 and A6, wherein the restriction on the second subblock is applied only when QT split has been evaluated for the first coding unit.A8. The method of any one of embodiments Ala, Alb, A5, A6 and A7, wherein therestriction on the second subblock is applied based on maximum CTU size.A9. The method of any one of embodiments Ala, Alb, and A2-A8, wherein the first coding unit is for a chroma channel.A10. The method of any one of embodiments Ala, Alb, and A2-A9, wherein encoding the video occurs in context of reference picture resampling.All. The method of any one of embodiments Ala, Alb, and A2-A10, wherein encoding the video occurs in context of scalable coding.Group B EmbodimentsBl . A method for decoding, the method comprising: providing a video; and decoding the video, wherein decoding the video comprises parsing one or more coding units of a coding tree unit and further comprises decoding a context-based adaptive binary arithmetic coding (CAB AC) context when the BTH split is applied on a coding unit and its first subblock selects the BTV split or when the BTV split is applied on a coding unit and its first subblock selects the BTH split.B2. The method of embodiment Bl, wherein including the CAB AC context is dependent on a maximum CTU size.B3. The method of any one of embodiments B1-B2, wherein including the CAB AC context signals the syntax element split_cu_flag, which is used to signal whether the current CU is partitioned or not.B4. A method for decoding, the method comprising: providing a video; and decoding the video, wherein decoding the video comprises parsing one or more coding units of a coding tree unit and when horizontal binary splitting (BTH) is applied to a first coding unit creating a first subblock and a second subblock, followed by disabling a vertical binary splitting (BTV) on the first subblock and disabling a BTV split type for the second subblock; and when vertical binary splitting (BTV) is applied to a first coding unitcreating a first subblock and a second subblock, followed by disabling a horizontal binary splitting (BTH) on the first subblock and disabling a BTH split type for the second subblock.C EmbodimentsCl . An encoder (500) for reducing encoding complexity, the encoder comprising: processing circuitry configured to perform any of the steps of any of the Group A embodiments; and power supply circuitry configured to supply power to the processing circuitry.Group D EmbodimentsDI. A decoder (500) for decoding, the decoder comprising: processing circuitry configured to perform any of the steps of any of the Group B embodiments; and power supply circuitry configured to supply power to the processing circuitry.
Claims
CLAIMS1. A method for reducing encoding complexity, the method comprising: providing a video; and encoding the video, wherein encoding the video comprises splitting a coding tree unit into one or more coding units; wherein when splitting the coding tree unit into one or more coding units and when quad tree splitting is allowed for the coding units:(i) if horizontal binary splitting, BTH, is applied to a first coding unit creating a first subblock and a second subblock, followed by vertical binary splitting, BTV, on the first subblock, disabling a BTV split type for the second subblock; and(ii) if vertical binary splitting, BTV, is applied to a first coding unit creating a first subblock and a second subblock, followed by horizontal binary splitting, BTH, on the first subblock, disabling a BTH split type for the second subblock.
2. The method of claim 1, wherein splitting the coding tree unit into one or more coding units comprises applying to the first coding unit a BTH creating the first subblock and the second subblock, followed by applying to the first subblock a BTV.
3. The method of any one of claims 1-2, wherein splitting the coding tree unit into one or more coding units comprises applying to the first coding unit a BTV creating the first subblock and the second subblock, followed by applying to the first subblock a BTH.
4. The method of any one of claims 1-3, wherein, encoding the video further comprises including a context-based adaptive binary arithmetic coding, CAB AC, context when the BTH split is applied on a coding unit and its first subblock selects the BTV split or when the BTV split is applied on a coding unit and its first subblock selects the BTH split, to encode a syntax element.
5. The method of claim 4, wherein including the CAB AC context is independent of whether quad tree splitting has been evaluated.
6. The method of claim 4, wherein including the CAB AC context to encode a syntax element split_cu_flag, which is used to indicate whether the current CU is partitioned or not.
7. The method of any one of claims 1-6, wherein (i) horizontal binary splitting, BTH, is applied to a first coding unit, followed by vertical binary splitting, BTV, on the first subblock, the coding unit is on a luma channel, and then for the second subblock disabling both BTV and vertical ternary split, TTV.
8. The method of any one of claims 1-5, wherein (ii) vertical binary splitting, BTV, is applied to a first coding unit, followed by horizontal binary splitting, BTH, on the first subblock the coding unit is on a luma channel, and then for the second subblock disabling both BTH and horizontal ternary split, TTH.
9. The method of any one of claims 1, 7 and 8, wherein the restriction on the second subblock is applied only when QT split has been evaluated for the first coding unit.
10. The method of any one of claims 1 and 7-9, wherein the restriction on the second subblock is applied based on maximum CTU size.
11. The method of any one of claims 1-10, wherein the first coding unit is for a chroma channel.
12. The method of any one of claims 1-11, wherein encoding the video occurs in context of reference picture resampling.
13. The method of any one of claims 1-12, wherein encoding the video occurs in context of scalable coding.
14. A method for decoding, the method comprising: parsing one or more coding units of a coding tree unit and further comprises decoding a syntax element based on a context-based adaptive binary arithmetic coding, CABAC, context when the BTH split is applied on a coding unit and its first subblock selects the BTV split or when the BTV split is applied on a coding unit and its first subblock selects the BTH split.
15. The method of claim 14, wherein including the CABAC context is dependent on a maximum CTU size.
16. The method of any one of claims 14-15, wherein including the CABAC context when decoding the syntax element split cu flag, which is used to indicate whether the current CU is partitioned or not.
17. An encoder, the encoder configured to perform the method according to any of claims 1-13.
18. A decoder, the decoder configured to perform the method according to any of claims 14-16.
Citation Information
Patent Citations
Image encoding device, image encoding method and image encoding program, image decoding device, image decoding method and image decoding program, storage method, and transmission method
JP2024038211A
Multi-type tree coding
US20200304788A1
Encoder, decoder, encoding method, and decoding method
US20210006825A1
Image decoding method
US20230319274A1
Video encoding method and encoding device, and video decoding method and decoding device considering hardware design
US20230319277A1