Method and device for coding picture block, storage medium and computer program product

By using texture-based segmentation prediction set and rate distortion optimization in video encoding, and adjusting the segmentation mode, the balance problem of encoding complexity and compression efficiency in the prior art is solved, and efficient video encoding is achieved.

CN119402645APending Publication Date: 2025-02-07INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411395834.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2018-03-30
Filing Date
2018-11-07
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

While existing video encoding technologies reduce encoding complexity, it is difficult to maintain high compression efficiency, and some encoding optimization methods may conflict.

Method used

Texture-based segmentation prediction sets are adopted, combined with rate distortion optimization, segmentation modes are adjusted to determine appropriate segmentation modes, and the video blocks are encoded using these modes. Specific methods include adjusting the segmented prediction set according to non-redundant constraints of the binary or trifurcated segmented mode or based on heuristic segmented mode set pruning.

Benefits of technology

While maintaining high compression efficiency, the complexity of the encoder is reduced, conflicts between coding optimization methods are avoided, and the efficiency of the coding process is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119402645A_ABST
    Figure CN119402645A_ABST
Patent Text Reader

Abstract

The invention relates to a method, an apparatus, a storage medium and a computer program product for encoding a picture block. Disclosed is an encoding method comprising, for a block to be encoded, determining a segmentation mode based on a texture-based segmentation prediction set obtained for the block, the texture-based segmentation prediction set providing, for each of a plurality of segmentation modes, information on a likelihood of selecting the segmentation mode for encoding the block, wherein determining the segmentation mode comprises adjusting the texture-based segmentation prediction set according to binary or ternary segmentation mode non-redundancy constraints, where the segmentation mode non-redundancy constraints do not allow segmentation modes for a block such that at most a series of spatial segmentation of the block provides a given boundary set within the block; and encoding the block using the determined partition mode.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese invention patent application with the application date of November 7, 2018, application number 201880080806.2, and invention name “Method and device for encoding picture blocks”. Technical Field

[0002] The present embodiments generally relate to methods and apparatus for picture encoding, and more particularly, to methods and apparatus for picture encoding and decoding using a partition-based coding tree. Background Art

[0003] In order to achieve high compression efficiency, image and video coding schemes usually use prediction and transformation to exploit spatial and temporal redundancy in video content. Typically, intra-frame or inter-frame prediction is used to exploit intra-frame or inter-frame correlation, and then the difference between the original image block and the predicted image block (usually expressed as a prediction error or prediction residual) is transformed, quantized, and entropy encoded. During encoding, it is usually possible to divide / split the original image block into sub-blocks using quadtree partitioning. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to prediction, transformation, quantization, and entropy coding.

[0004] To achieve good compression efficiency, image and video schemes usually divide the image to be encoded into blocks and sub-blocks in a binary or quadtree manner. The complexity of the encoding process increases with the number of possible partitioning configurations for encoding the block. There are some coding optimization methods that are used to reduce the number of partitioning configurations to be evaluated when encoding a block, thereby reducing the coding complexity while avoiding a reduction in compression efficiency.

[0005] However, some coding optimization methods may conflict when used in the same coding scheme. Summary of the invention

[0006] In one embodiment, a method for video encoding is disclosed. The method for video encoding includes: using a texture-based segmentation prediction set obtained for a block, based on rate-distortion optimization, determining a segmentation mode for a block to be encoded, wherein determining the segmentation mode includes adapting the texture-based segmentation prediction set according to at least one of a binary or triple segmentation mode non-redundant constraint or a heuristic-based segmentation mode set pruning, and encoding the block using the determined segmentation mode.

[0007] Advantageously, compression efficiency is maintained while methods for reducing encoding complexity at the encoder can be used without creating conflicts.

[0008] In accordance with at least one embodiment, the texture-based partition prediction set includes an indicator for each partition mode possible for a block, indicating whether the partition mode is likely to be selected for the block during rate-distortion optimization.

[0009] According to another embodiment, adjusting the texture-based segmentation prediction set according to the heuristic-based segmentation mode set pruning includes forcing evaluation of the quadtree segmentation mode of the block in rate-distortion optimization if the heuristic-based segmentation mode set pruning only allows quadtree segmentation modes.

[0010] According to another embodiment, adjusting the texture-based segmentation prediction set according to the heuristic-based segmentation mode set pruning further comprises forcing evaluation of the quadtree segmentation mode of the block in rate-distortion optimization if binary or ternary tree segmentation modes are not allowed for the current quadtree depth level.

[0011] According to another embodiment, adjusting the texture-based segmentation prediction set according to a binary or trifurcated segmentation pattern non-redundant constraint includes:

[0012] - for each segmentation mode from the set of texture-based segmentation predictions that may be selected for a block during rate-distortion optimization, check whether the segmentation mode is allowed by the binary or trifurcated segmentation mode non-redundancy constraint,

[0013] If none of the segmentation modes from the set of texture-based segmentation predictions that may be selected for a block during rate-distortion optimization is allowed by the binary or ternary segmentation mode non-redundancy constraint, then at least one segmentation mode allowed by the binary or ternary segmentation mode non-redundancy constraint is forced to be evaluated in the rate-distortion optimization.

[0014] According to another embodiment, in the rate-distortion optimization, it is enforced that all the partitioning modes allowed by the binary partitioning mode non-redundancy constraint are evaluated.

[0015] According to another embodiment, in the rate-distortion optimization, only the binary or trifurcated segmentation patterns that are first encountered in the texture-based segmentation prediction set are forced to be evaluated.

[0016] According to another embodiment, in the rate-distortion optimization, it is forced to evaluate at least the horizontal binary or trifurcated segmentation pattern and the vertical binary or trifurcated segmentation pattern that are first encountered in the texture-based segmentation prediction set.

[0017] According to another embodiment, binary or ternary partitioning pattern non-redundant constraints or heuristic-based partitioning pattern set pruning depends on the binary or ternary tree depth of the block.

[0018] In another embodiment, an encoding apparatus is disclosed. The apparatus includes: means for determining a partitioning mode for a block to be encoded based on rate-distortion optimization using a texture-based partitioning prediction set obtained for the block, wherein the means for determining the partitioning mode includes means for adjusting the texture-based partitioning prediction set according to at least one of a binary or trifurcated partitioning mode non-redundant constraint or a heuristic-based partitioning mode set pruning; and means for encoding the block using the determined partitioning mode.

[0019] In one variation, an encoding apparatus is disclosed, comprising a communication interface configured to access a picture block and at least one processor, the processor being configured to:

[0020] - determining a segmentation mode based on rate-distortion optimization using a texture-based segmentation prediction set obtained for the accessed block, wherein determining the segmentation mode comprises adjusting the texture-based segmentation prediction set according to at least one of a binary or trifurcated segmentation mode non-redundancy constraint or a heuristic-based segmentation mode set pruning, and

[0021] - Encode the accessed block using the determined partitioning mode.

[0022] One or more embodiments of the present invention also provide a computer-readable storage medium having stored thereon instructions for encoding video data according to any of the above encoding methods. Embodiments of the present invention also provide a computer program product including instructions for executing any of the described methods. A bitstream is disclosed, the bitstream being formatted to include encoded data representing a picture block, the encoded data being encoded according to any of the above encoding methods. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 An example of the coding tree unit and coding tree concept is shown to represent a compressed picture.

[0024] Figure 2 An example of dividing a coding tree unit into coding units, prediction units, and transform units is shown.

[0025] Figure 3 An example of dividing a coding unit into prediction units according to HEVC (High Efficiency Video Coding) is shown.

[0026] Figure 4 An example of a quadtree plus binary tree coding tree unit representation is shown.

[0027] Figure 5 An example of an additional coding unit binary asymmetric partitioning pattern is shown.

[0028] Figure 6 A three-pronged pattern partitioning of the block is shown.

[0029] Figure 7 Shown is the set of all coding unit partitioning modes supported in the video coding scheme described herein.

[0030] Figure 8 A video picture divided into coding units selected by an encoder is shown.

[0031] Fig. 9 An exemplary video encoder according to an embodiment is shown.

[0032] Fig.10 An exemplary method for rate-distortion optimization for a given CU compression is shown.

[0033] Fig.11 An exemplary method for rate-distortion optimization for compression of a given CU is shown, where a texture-based segmentation prediction set is used.

[0034] Fig.12 is rendered on a separate page Fig. 12A and Fig. 12B Overview, Fig.12 The upper part (above the dotted line) is Fig. 12A On the public, Fig.12 The lower part (below the dotted line) is Fig. 12B On public.

[0035] Fig. 12A and Fig. 12B An exemplary rate-distortion process is shown, where a texture-based segmentation prediction set is used in conjunction with other methods for combined segmentation pattern reduction.

[0036] Fig.13 The quadtree depth of a coding unit according to the partition configuration of a CTU (Coding Tree Unit) is shown.

[0037] Fig.14 An exemplary method of heuristic-based combinatorial reduction is shown.

[0038] Fig.15 Exemplary canonical redundancy constraints using binary and trifurcated splitting patterns are shown.

[0039] Fig.16 An exemplary canonical redundancy constraint using an asymmetric binary partitioning pattern is shown.

[0040] Fig.17 An exemplary method for encoding a picture block according to an embodiment is shown.

[0041] Fig.18 An exemplary method for adapting a texture-based segmentation prediction set to heuristic and normative constraints is shown in accordance with an embodiment.

[0042] Fig.19 yes Fig.19A and Fig.19B overview, which are presented on separate pages. Fig.19 The upper part (above the dotted line) is Fig.19 On the public, Fig.19 The lower part (below the dotted line) is Fig.19B On public.

[0043] Fig.19A and Fig.19B An exemplary method for rate-distortion optimization for a given CU compression according to one embodiment is shown.

[0044] Fig. 20 A block diagram is shown of an example apparatus in which various aspects of the embodiments may be implemented. DETAILED DESCRIPTION

[0045] In the HEVC video compression standard (International Telecommunication Union, ITU-T H.265 High Efficiency Video Coding), pictures are split into so-called Coding Tree Units (CTUs), which typically have a size of 64×64, 128×128 or 256×256 pixels.

[0046] Each CTU is represented by a coding tree in the compressed domain. This is a quadtree partition of the CTU, where each leaf is called a coding unit (CU). Figure 1 shown.

[0047] Then each CU is given some intra-frame or inter-frame prediction parameters (prediction information). For this purpose, it is spatially divided into one or more prediction units (PUs), each of which is assigned some prediction information. To assign intra-frame or inter-frame coding modes at the CU level, see Figure 2 .

[0048] The division of the coding unit into prediction units is done according to the division type signaled in the bitstream. For intra coding units, only the prediction units are used. Figure 3 The partition types shown are 2N×2N and N×N. This means that only square prediction units are used in intra coding units. In contrast, inter coding units can use Figure 3 All partition types shown.

[0049] According to the HEVC standard, coding units are also split into so-called transform units in a recursive manner following a "transform tree". Thus, the transform tree is a quadtree split of coding units, and transform units are the leaves of the transform tree. A transform unit encapsulates a square transform block for each picture component corresponding to the square spatial region considered. A transform block is a square block of samples in a single component, where the same transform is applied.

[0050] Emerging video compression tools are proposed, including a coding tree unit representation in the compressed domain, to represent picture data in a more flexible way in the compressed domain. The advantage of this flexible representation of the coding tree is that it provides higher compression efficiency compared to the CU / PU / TU (Transform Unit) arrangement of the HEVC standard. Specifically, the CU is not further divided into PU / TU as in HEVC, that is, the CU consists of a single PU and a single TU.

[0051] The Quad-Tree plus Binary-Tree (QTBT) coding tool provides this increased flexibility. It consists in a coding tree where the coding unit can be split in a quadtree and binary tree manner. This coding tree representation of the coding tree unit is Figure 4 As shown in the figure, the divided blocks are Figure 4 The left side indicates that the corresponding QTBT coding tree is Figure 4 The right side of .

[0052] The partitioning of coding units is decided at the encoder side through a rate-distortion optimization process, which involves determining the QTBT representation of the CTU with the minimum rate-distortion cost.

[0053] In QTBT technology, a CU can have a square or rectangular shape. The size of a coding unit is always a power of 2, usually from 4 to 128.

[0054] In addition to the various rectangular shapes of coding units, this new CTU representation has the following different characteristics compared to HEVC:

[0055] The QTBT decomposition of a CTU consists of two stages: first, the CTU is split in a quadtree manner, and then each quadtree leaf can be further split in a binary manner. Figure 4 , where the solid line represents the quadtree decomposition stage and the dotted line represents the binary decomposition of the space embedded in the quadtree leaves.

[0056] In an intra-frame slice, the luma and chroma block partitioning structures are separated and determined independently.

[0057] CUs that are split into prediction units or transform units are no longer utilized. In other words, each coding unit is systematically composed of a single prediction unit (previously a 2N×2N prediction unit partition type) and a single transform unit (not split into transform trees).

[0058] Finally, coding units with new rectangular shapes have been proposed, which are generated by a new binary partitioning pattern called asymmetric partitioning pattern, e.g. Figure 5 shown.

[0059] This means that new rectangular CU shapes are added. The dimensions of these new shapes are equal to 3 2 in width and / or height. n In addition, a CU having a size that is a multiple of 3 in width or height can be further split horizontally or vertically in a binary manner.

[0060] Therefore, a square coding unit with size (w,h) (width and height) that will be partitioned by one of the proposed asymmetric binary partitioning modes, such as HOR_UP (horizontally up), will result in a corresponding rectangular coding unit with size and 2 sub-coding units.

[0061] Therefore, the encoder can choose a width or height equal to 3·2 n In this case, intra prediction and inter processing of some rectangular blocks having a size that is a multiple of 3 are performed. In addition, n The 2D transform of the transform coefficients and the subsequent entropy coding process of the transform coefficients are not present in HEVC or QTBT.

[0062] The last coding unit partitioning mode, called horizontal or vertical ternary tree partitioning mode, consists in splitting the coding unit (CU) into three sub-coding units (sub-CUs), each with a size equal to 1 / 4, 1 / 2 and 1 / 4 of the parent CU size in the considered spatial partitioning direction. Figure 6 Shown. Figure 7 The complete set of CU partitioning modes in such codecs is shown.

[0063] In the video encoding / decoding scheme disclosed in this article, Figure 7 All CU partitioning modes are activated, which means that the encoder can choose any of these partitioning modes and signal them to the decoder.

[0064] Figure 8The coding units selected by the encoder on an exemplary sequence are shown. One can see that all coding unit segmentation types are frequently used in this exemplary picture. One also notices that this rich set of coding unit topologies helps to spatially match the coding structure to the structure and discontinuities contained in the original signal.

[0065] A counterpart to the coding gain provided by the flexible coding representation of multiple CU partition types is the increased combinatoriality in the rate-distortion optimization occurring at the encoder side.

[0066] Several improvements have been proposed for accelerating encoder rate-distortion optimization while limiting the degradation of the coding gain provided by the flexible coding representation through multiple CU partition types.

[0067] For example, two types of approaches already exist in the considered video encoders:

[0068] - For a given CU, some heuristic-based criteria are used to bypass the evaluation of some partitioning modes. These criteria usually take into account the coding modes, CU depth, etc. associated with the already coded CUs around the current CU. They only happen at the encoder side; and

[0069] - A canonical partitioning mode discarding process, aimed at avoiding any redundancy between different CU partitions. More precisely, it limits the number of partitioning modes allowed for a given CU.

[0070] The amount, that is, it does not allow certain partitioning modes, in this way, at most a series of consecutive CU space partitions can be used to achieve a given topology (i.e., a set of block boundaries in a given picture area). This approach not only limits the RD search space on the encoder side, but also improves the coding efficiency of the codec by enabling the decoder to infer the allowed (prohibited) partitioning modes during the partitioning mode parsing process. Below, the second type of combinatorial reduction method is called a topological redundancy reduction method.

[0071] Another method for increasing the speed of the rate-distortion optimization performed at the encoder for finding the best partitioning coding mode for a block is to predict the way the block will be partitioned. This partitioning prediction can be based on, for example, a texture analysis of the block to be encoded. This texture analysis can use any method based on, for example, texture variance, morphological gradients, or activity levels calculated for the current block to be encoded.

[0072] This texture analysis can be used to analyze a picture block to be encoded and provide a prediction of a possible partitioning mode that can be used to compress the block using a video codec that will support many block partitioning modes as previously described.

[0073] Basically, the output of such a framework (which is also the input determined by the encoding parameters of the considered video encoder) takes the following form:

[0074] splitPred[s]∈{false,true},s∈{NO_SPLIT,QT_SPLIT,HOR,VER,HOR_TRIPLE,…,VER_RIGHT}

[0075] Hereinafter, the whole process of generating the above splitPred array of flags is referred to as texture-based segmentation prediction. In case splitPred[s] = true, segmentation mode s may be used, while in case splitPred[s] = false, mode s may not be used.

[0076] Given this array of Boolean values, a straightforward adaptation of the encoder's rate-distortion optimized segmentation mode selection consists of evaluating only the segmentation modes whose corresponding splitPred value is equal to true.

[0077] However, this straightforward approach is not suitable when used in existing video encoder block partitioning RD search processes, which already contain some non-normative and normative encoding / decoding methods that limit the combinatoriality of the coding tree RD search of a CTU as described above.

[0078] In one embodiment, the segmentation subset selection (splitPred) provided by the texture-based segmentation prediction method is used together with an already existing acceleration method that restricts the combinatoriality of the coding tree RD search.

[0079] In one embodiment, texture based partition prediction is utilized while ensuring that existing heuristic based and normative constraints available for the partition mode of each CU are used without any modifications.

[0080] The advantage is that by using a given texture-based segmentation prediction, the resulting encoder segmentation mode decision process is significantly accelerated. At the same time, the heuristic-based and topological redundancy reduction methods are used without modification. Thus, the encoding time is reduced in a cumulative manner by the texture-based, heuristic-based and redundancy reduction-based accelerations, respectively. This acceleration can be obtained with a limited loss in coding efficiency, making the speed / compression tradeoff attractive.

[0081] In the video encoder considered here, the coding tree search consists of a recursive depth-first search process along an N-ary tree, where N represents the number of candidate partition types considered in each node of the tree. This recursive search is combined with a multi-loop process to determine the best combination of parameters for encoding each candidate CU in the tree.

[0082] In fact, in the encoder considered here, multiple parameters are taken into account to compress each CU, and multiple embedding cycles are performed on these parameters in order to determine the best combination of parameters to encode the CU.

[0083] The basic approach using texture based segmentation prediction provided by external components consists in considering, at each node of the candidate coding tree, only the segmentation modes indicated as possible for the segmentation prediction module.

[0084] In this way, the total number of split patterns to be evaluated in the RD search optimized for a given CU subtree is reduced.

[0085] However, this basic approach cannot coexist with some other acceleration methods that may also exist in the considered video encoders. For example, a heuristic-based approach may include not evaluating the NO_SPLIT mode if the minimum CU depth among the surrounding already coded CUs is higher than the depth of the current CU. If texture-based segmentation prediction only selects NO_SPLIT for the current CU, then the two RD search pruning methods are contradictory and therefore cannot be used together.

[0086] A simple way to solve this problem is to deactivate all heuristic-based acceleration methods included in the encoder and rely only on texture-based segmentation prediction to determine which candidate segmentation modes to evaluate for a given CU. The disadvantage of this approach is that, in terms of the combinatorial restriction, one only benefits from the texture-based block analysis module. Deactivating all other heuristic-based accelerations brings some encoding time increase but poor compression performance improvement. Therefore, it is not optimal in terms of the tradeoff between encoding time and compression performance.

[0087] Therefore, there is a need to define a coding scheme in which texture-based segmentation prediction methods and other acceleration methods are used jointly in order to reduce the encoding time while maintaining compression efficiency.

[0088] According to one embodiment, the set of partitioning modes evaluated for the current CU based on texture-based partitioning prediction is pruned in a way that effectively coexists with some acceleration methods present in the considered video encoder. Effective means a good trade-off between encoding time and compression performance.

[0089] To this end, the proposed solution consists in detecting the case where zero split mode can be evaluated for the current CU if both outer split prediction and the encoder's heuristic-based approach are applied simultaneously.

[0090] In this case, since the partitioning modes are not evaluated for the CU, the encoder needs to force the use of at least one partitioning mode, otherwise the considered CU is not compressed and encoded.

[0091] In this case, according to one embodiment, even if the texture-based segmentation prediction module does not select a segmentation mode, the segmentation mode allowed by the heuristic-based method is allowed to be used.

[0092] By prioritizing the heuristic-based encoder approach over the choices given by the texture-based segmentation prediction module, a good speed / compression efficiency tradeoff can be obtained.

[0093] According to another embodiment, the partitioning mode selected by the texture-based partitioning prediction module is consistent with a canonical strategy to avoid redundancy between different consecutive CU partitions.

[0094] In fact, the strategy prohibits the use of certain partitioning modes, taking into account the set of consecutive spatial block partitions that result in the CU under consideration. If the partitioning mode selected by the texture-based partitioning predictor is not allowed, the encoder must force the use of a non-selected partitioning mode to ensure that the current CU will be encoded. In this case, the present invention proposes to force the evaluation of all partitioning modes in the part of the partitioning mode allowed according to the non-redundant specification strategy.

[0095] Therefore, the non-redundant segmentation mode strategy takes precedence over the segmentation mode selection given by the texture-based segmentation predictor.

[0096] Fig. 9 An exemplary video encoder 100 is shown, in which the encoding method according to any disclosed embodiment can be implemented. For example, the exemplary video encoder 100 is a high-efficiency video coding (HEVC) encoder. HEVC is a compression standard developed by the Joint Collaborative Team on Video Coding (JCT-VC) (e.g., see "ITU-T H.265ITU Telecommunication Standardization Sector (10 / 2014), Series H: Audiovisual and Multimedia Systems, Audiovisual Services Infrastructure - Motion Video Coding, High Efficiency Video Coding, Recommendation ITU-T H.265").

[0097] The video encoder 100 encodes a video sequence having one or more pictures, which are divided into one or more slices, each of which may include one or more slice segments. The slice segments are organized into coding units, prediction units, and transform units.

[0098] In this application, the terms "reconstructed" and "decoded" are used interchangeably, the terms "encoded" or "coded" are used interchangeably, and the terms "picture" and "frame" are used interchangeably. Usually, but not necessarily, the term "reconstructed" is used on the encoder side, while "decoded" is used on the decoder side.

[0099] The HEVC standard distinguishes between "blocks" and "units", where a "block" addresses a specific area in the sample array (e.g., luma, Y), and a "unit" includes a collocated block of all coded color components (Y, Cb, Cr, or monochrome), syntax elements, and prediction data associated with the block (e.g., motion vectors).

[0100] For encoding, the picture is divided into square coding tree blocks (CTB) with a configurable size, and a set of consecutive coding tree blocks is grouped into a slice. The coding tree unit (CTU) contains the CTB of the coded color component. The CTB is the root of a quadtree divided into coding blocks (CB), and the coding block can be divided into one or more prediction blocks (PB) and forms the root of a quadtree divided into transform blocks (TB). Corresponding to the coding block, prediction block and transform block, the coding unit (CU) includes a set of prediction units (PU) and tree-structured transform units (TU), the PU includes prediction information for all color components, and the TU includes a residual coding syntax structure for each color component. The sizes of the CB, PB and TB of the luminance component apply to the corresponding CU, PU and TU. In the present application, the term "block" may be used to refer to any of, for example, CTU, CU, PU, ​​TU, CB, PB and TB. In addition, "block" may also be used to refer to macroblocks and partitions specified in 264 / AVC or other video coding standards, or more generally, to data arrays of various sizes.

[0101] In the exemplary encoder 100, a picture is encoded by the encoder elements as described below. The picture to be encoded is processed in units of CUs. Each CU is encoded using intra or inter mode. When encoding a CU in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (115) which of intra mode or inter mode to use to encode the CU and indicates the intra / inter decision through a prediction mode flag. The prediction residual is calculated by subtracting (110) the predicted block from the original image block.

[0102] A CU in intra mode is predicted from reconstructed neighboring samples within the same slice. For an inter CU, the corresponding coding block is further divided into one or more prediction blocks. Inter prediction is performed at the PB level, and the corresponding PU contains information about how to perform inter prediction. The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients as well as the motion vectors and other syntax elements are entropy encoded (145) to output a bitstream. The encoder can also skip the transform and apply quantization directly to the untransformed residual signal on a 4×4TU basis. The encoder can also bypass the transform and quantization, i.e., encode the residual directly without applying the transform or quantization process. In direct PCM coding, prediction is not applied and the coding unit samples are encoded directly into the bitstream.

[0103] The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking / SAO (Sample Adaptive Offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

[0104] According to one embodiment, the encoding method with rate-distortion optimization disclosed herein can be integrated in a video encoder, such as Fig. 9 The encoder.

[0105] Fig.10 A process of rate-distortion optimization for compression of a given CU is shown which may be used in the encoder 100. Note that a CU may correspond to a CTU here (a CU has a maximum allowed size, typically 128x128 or 256x256).

[0106] As can be seen, the process contains a global loop for all possible partition types allowed for the current CU (TreeTypeSet in 1001). Note that depending on the type of CU (INTRA, INTER, etc.), size and depth, only a subset of the partition modes of the set TreeTypeSet may be allowed. Also note that some of the partition modes in the set TreeTypeSet may also be disabled depending on the encoder configuration used. For example, the HOR_TRIPLE and VER_TRIPLE partition modes may be turned off. Or the HOR_TOP, HOR_DOWN, VER_LEFT and VER_RIGHT partition modes may be turned off.

[0107] For the current CU, the bestRdCost value is first initialized to an infinite value (step 1002). Then the first split mode is evaluated (step 1003). In step 1004, it is checked whether the split mode evaluated for the current CU is mode NO_SPLIT. If the split mode is NO_SPLIT, the RD optimal encoding parameters for the current CU are determined in step 1005. This results in the rate-distortion cost tempRDCost, which is compared with the current bestRdCost value in step 1006. If the rate-distortion cost tempRDCost is lower than the current value bestRdCost value, then in step 1007, the evaluated split mode becomes the best split mode found so far, and tempRdCost is stored as the lowest RD cost found so far.

[0108] In step 1004, if the current candidate partition mode is different from mode NO_SPLIT, this means that the current CU is being considered to be split into at least 2 sub-CUs. In step 1008, this spatial partitioning of currCU is performed and a loop is performed on each sub-CU labeled currSubCU. For each sub-CU, in step 1009, recursively call Fig.10 The whole process takes the sub-CU as input. In step 1010, it is checked whether the loop on the sub-CU is completed. If the loop on the sub-CU is not completed, then in step 1011, the process goes to the next sub-CU of the current CU and recursively calls in step 1009 Fig.10 the whole process.

[0109] Once the loop over the sub-CUs is complete, the RD cost associated with the current partitioning mode currTreeType of the current CU may be calculated, at step 1012, as the sum of the best RD cost per sub-CU plus the cost associated with the signaling of the current partitioning mode currTreeType. The resulting RD cost is recorded as tempRdCost and compared to the lowest RD cost bestRdCost found so far at step 1006. If it is lower, then at step 1007, the current partitioning mode is stored as the best partitioning mode found so far, and bestRdCost takes the value of tempRdCost.

[0110] At step 1013, a check is made to see if the loop over all candidate partitioning modes for the current CU is complete. If not, at step 1014, the process proceeds to the next candidate partitioning mode to be evaluated in the TreeTypeSet. Once the loop over all candidate partitioning modes is complete, Fig.10 The process is finished (step 1015).

[0111] As a result, in order to perform RD-optimal compression for a given CTU, Fig.10 The procedure is called with the considered CTU as input.

[0112] One can see that the RD optimization process of CTU involves a recursive depth-first tree search process, whose overall combinatoriality highly depends on the number of candidate segmentation patterns evaluated at each stage (node) of the coding tree search process.

[0113] Furthermore, in case of splitting mode NO_SPLIT, the rate-distortion process determines a set of optimal coding parameters for compression of the considered coding unit.

[0114] This CU-level rate-distortion optimization process involves a large number of embedding loops over all candidate coding parameters to determine the best tuple of multiple coding parameters for a particular partition of the block. Fig.10 The overall decision process of is highly combinatorial not only for the tree search process but also at the block coding level, and is therefore very complex.

[0115] Fig.11 Shows Fig.10 The rate-distortion optimization process of is modified to take into account the segmentation mode(s) selected by the texture-based segmentation prediction module described above. Step 1016 is added to Fig.10 Step 1016 comprises, for each candidate partition mode of the current CU, testing whether the texture-based partition prediction process indicates that the considered partition mode should be used for the current CU, ie, whether splitPred[s] is equal to true.

[0116] If not, the rate-distortion evaluation of the candidate segmentation mode is bypassed (bypassing steps 1004-1012), and the algorithm directly iterates on the next segmentation mode candidate in the set TreeTypeSet (step 1013). Fig.10 The unchanged rate-distortion cost associated with the candidate segmentation mode is performed in the same way as in .

[0117] Fig. 12A and Fig. 12B An exemplary rate-distortion optimization process is shown in which a texture-based segmentation prediction set is used in conjunction with other methods for combinatorial downscaling.

[0118] exist Fig. 12A and Fig. 12B In step 1017, a heuristic-based method is called to prune the set of partition modes to be evaluated for a given CU. This pruning occurs before looping over all candidate partition modes. Fig.13 and Fig.14 An exemplary heuristic-based pruning mechanism is shown.

[0119] In addition, Fig. 12A and Fig. 12B In the Fig.11 Another type of combinatorial reduction mechanism that interacts with the segmentation prediction choices in the process of . This combinatorial reduction mechanism corresponds to the normative constraints imposed on the use of various segmentation modes to encode and decode coding units. These normative constraints will be described in the following Fig.16 and Fig.17 Further discussion in Fig.11 These constraints are taken into account at all stages of the rate-distortion optimized coding tree search.

[0120] In practice, before processing a given sub-CU during a loop on the sub-CUs of the current CU occurring according to the current partitioning mode currTreeType being evaluated, a normative redundancy constraint is calculated for the current sub-CU to be evaluated at step 1019, and when the next sub-CU is to be evaluated, a normative redundancy constraint is calculated at step 1020. Such normative redundancy constraints are calculated in order to prohibit the use of certain partitioning modes in the next sub-CU to be processed.

[0121] This inhibition process ensures that the block partitions that may be produced by the RDO process can be obtained through a unique series of consecutive partitioning operations.

[0122] At step 1018 , in the process of evaluating the partitioning mode for the current CU or sub-CU, it is verified whether the currTreeType to be evaluated for the current CU or sub-CU is allowed with respect to the canonical redundancy constraint.

[0123] In step 1018, if the current partition mode is not allowed, the evaluation of the current partition mode for the current CU or sub-CU is bypassed, and the process proceeds directly to step 1013 and goes to the evaluation of the next partition mode for the current CU or sub-CU.

[0124] Canonical redundancy constraints allow to speed up the RD search on the encoder side and improve the overall coding efficiency. In fact, these constraints are imposed in a canonical way, which means that both the encoder and the decoder compute the allowed and forbidden partitioning patterns at any stage of the recursive spatial block segmentation process. In this way, the decoder can infer part of the partitioning configuration, which reduces the amount of signaling that needs to be transmitted in the bitstream.

[0125] We now discuss a method for pruning the set of partition patterns based on heuristics. The basic principle of these heuristics is that the quadtree depth of the current CU to be encoded (called QT depth) may be related to the quadtree depth of the neighboring CUs that have already been encoded. The quadtree depth of the current CU is defined as representing the number of consecutive quadtree partitions used to obtain the CU. The quadtree depth can be different from the total depth representing the number of total consecutive partitions used to obtain the CU. This is in Fig.13 As shown in FIG, the QT depth of the surrounding CUs is equal to 2, and the QT depth of the current CU being processed is 1. The heuristic-based segmentation pattern set pruning method is Fig.14 Shown in.

[0126] In step 1401, the minimum QT depth among the neighboring CUs above, to the upper right, to the left, and to the lower left of the current CU is calculated. In step 1402, it is checked whether the minimum QT depth of the neighboring CUs above and to the left of the current CU is less than or equal to the QT depth of the current CU. If the minimum QT depth of the neighboring CUs above and to the left of the current CU is less than or equal to the QT depth of the current CU, then in step 1403, by setting the Boolean value CheckCurr to true, the NO_SPLIT split mode is allowed for the current CU. Otherwise, by setting the Boolean value CheckCurr to false in step 1404, the split mode is not considered.

[0127] In step 1405, it is checked whether the minimum QT depth of the neighboring CUs above and to the left of the current CU is strictly higher than the QT depth of the current CU. If the minimum QT depth of the neighboring CUs above and to the left of the current CU is strictly higher than the QT depth of the current CU, the three-pronged and two-pronged splitting modes are not allowed for the current CU by setting the Boolean value SkipBinarySplit to true in step 1406.

[0128] According to one embodiment, the minimum QT depth used in the above process is the minimum region tree depth of the upper, upper right, left and lower left neighboring CUs, which decreases by a fixed value, such as 1.

[0129] Furthermore, another heuristic aims to limit the testing of binary and ternary split modes according to the binary tree depth of the current CU and the best encoding found so far for the current CU.

[0130] In practice, the maximum binary search depth (maxSearchBTDepth) is fixed for each quadtree depth to keep the overall combinatoriality not too high. Typically, this maximum binary search depth is equal to 3 for QT depth levels higher than or equal to 2, and equal to 0 for quadtree depths 0 and 1. This is consistent with Figure 4The QTBT architecture shown is consistent with the fact that good coding efficiency is obtained by using QT_SPLIT mode for large blocks (128 or 64).

[0131] Therefore, in step 1407, it is checked whether the BT depth of the current CU is higher than or equal to the maximum BT depth allowed for the current CU QT depth, and the current CU is not a CU at a picture boundary. If the BT depth of the current CU is higher than or equal to the maximum BT depth allowed for the current CU QT depth, the three-pronged or two-pronged split mode is not evaluated for the current CU by setting the Boolean value skipBinarySplit to true in step 1408.

[0132] In step 1407, it is also checked whether the best mode found so far for the current CU by the RDO process is in skip mode and whether the BT depth of the current CU is at least equal to a fixed threshold. In this case, the evaluation of the three-pronged and two-pronged split modes for the current CU is disabled by setting the Boolean value skipBinarySplit to true in step 1408.

[0133] Then, at step 1409, the Boolean value checkCurr is checked. If the Boolean value checkCurr is not true, then at step 1410, the NO_SPLIT mode is removed from the treeTypeSet.

[0134] At step 1411, the Boolean value skipBinarySplit is checked. If the Boolean value skipBinarySplit is true, then at step 1412, all split modes are removed from treeTypeSet except the modes NO_SPLIT and QT_SPLIT.

[0135] In step 1413, the pruned treeTypeSet is stored in the prunedTreeTypeSet table, and the process ends (step 1414).

[0136] The problem with using these heuristics in conjunction with texture-based segmentation prediction is that this can result in zero segmentation modes being allowed for a given CU. This is unacceptable because this can ultimately lead to a situation where no mode is evaluated for a portion of the picture to be encoded.

[0137] In some other cases, these heuristics interact poorly with texture segmentation pattern predictions even when all blocks are encoded.

[0138] On the other hand, the heuristic-based approach explained here is very effective in reducing the encoder complexity while maintaining good coding efficiency.

[0139] Therefore, a strategy to effectively use texture-based segmentation prediction is needed.

[0140] The specification of redundant constraints will be in the following Fig.15 and Fig.16 These canonical constraints are used to restrict the set of ternary and binary splitting patterns allowed for a given CU introduced previously. These constraints are used to avoid the possibility of reaching a given block split of a spatial region via two different paths through the candidate coding trees.

[0141] Therefore, if Fig.15 and Fig.16 As shown, some continuous splitting patterns are forbidden. For example, it is forbidden to simulate topologies that can only be used with binary trees by using continuous trichotomous or asymmetric splits. Fig.15 The prohibited partitions (indicated by crossed lines) in the case of consecutive vertical partitions of the sub-CU are shown. There are also corresponding prohibited partitions in the case of consecutive horizontal partitions. Fig.16 An example is shown in which splitting is prohibited in a case where vertical splitting is followed by horizontal splitting.

[0142] For example, Fig.15 As shown, a CU is split into three vertical CUs of width 8-16 and 8, also known as three-pronged splitting, which can be obtained by the following method:

[0143] - (a) a first vertical left partition of a square CU, followed by a vertical right partition of a right sub-CU, or

[0144] - (b) first vertical right partition of a square CU, followed by a vertical left partition of the left sub-CU,

[0145] - (c) Vertical trifurcated partitioning of square CU.

[0146] According to the specification constraints, only configuration (c) is allowed in this case. Configurations (a) and (b) are prohibited. That is, in the case of (a), when evaluating the partition mode of the right sub-CU resulting from the vertical left partition of the square CU, the binary vertical right partition mode is not allowed. In the case of (b), when evaluating the partition mode of the left sub-CU resulting from the vertical right partition of the square CU, the binary vertical left partition mode is not allowed.

[0147] This constraint imposed on the use of ternary and binary partitioning modes may lead to invalid situations when combined with texture-based partitioning prediction. In fact, if texture-based partitioning prediction selects some partitioning modes for a given CU, but those partitioning modes are prohibited by the canonical non-emulation policy, the encoder reaches a state where the considered CU cannot be encoded.

[0148] Ultimately, this may lead to a situation where parts of the picture are not encoded at all, which is unacceptable.

[0149] Therefore, a strategy is needed to effectively jointly use the canonical non-simulation strategy and texture-based segmentation prediction and avoid any invalid cases.

[0150] According to one embodiment, reference Fig.17 A method for encoding a block is disclosed.

[0151] At step 1701, a partitioning mode is determined for a current block to be encoded. For example, the partitioning mode is determined based on a rate-distortion optimization performed in a recursive manner as previously described.

[0152] According to the embodiments disclosed herein, at step 1702, a texture-based segmentation prediction is obtained for a current block. The current block may be a coding unit to be encoded, or a sub-coding unit generated by segmentation of a previous coding unit or sub-coding unit in rate-distortion optimization. Therefore, a texture-based segmentation prediction is obtained for a block according to the depth of the block in the coding tree.

[0153] As mentioned above, texture-based segmentation prediction can be obtained by analyzing the texture of the block. Such texture analysis can be performed by calculating the variance, activity level, morphological gradient, or any other texture analysis method of the texture at each point of the coding unit. Texture analysis and texture-based segmentation prediction are performed by an external module.

[0154] The external module outputs a texture-based partition prediction set for a given coding unit or sub-coding unit. This texture-based partition prediction set associated with a given coding unit or sub-coding unit is an array storing a Boolean value for each partition mode, which indicates whether the partition mode may be selected to encode the given coding unit or sub-coding unit.

[0155] If the Boolean value of the split mode is set to true, the split mode is allowed to encode the given coding unit or sub-coding unit. A texture-based split prediction set is provided for the coding unit and each sub-coding unit of the coding tree for encoding the current CU. Therefore, when performing rate-distortion optimization in a recursive manner, a texture-based split prediction set must be obtained for each sub-coding unit to be evaluated.

[0156] At step 1703, the texture-based segmentation prediction set is adjusted according to the canonical non-redundant constraint discussed above or the heuristic-based segmentation pattern set pruning discussed above or both. Fig.18 This adjustment is discussed further.

[0157] At step 1704, the current block is encoded using the previously determined partitioning mode. For example, Fig. 9 Discussed encoder.

[0158] Fig.18 An exemplary method for adapting the results of texture-based segmentation prediction to the above-mentioned heuristic and normative constraints is shown.

[0159] The input to this process is as follows:

[0160] - A split selection provided by the texture-based split prediction step. For example, such split selections are stored in the array splitPred[s], where s=NO_SPLIT, QT_SPLIT, ..., VER_RIGHT. For a given split mode s, if the Boolean value splitPred[s] is equal to true, then the split mode s must be evaluated for the current CU according to the split prediction step.

[0161] - Normative constraints imposed on the use of binary and trifurcated split modes. For example, such constraints are stored in the array noSplit[s], where s=HOR, VER, ..., VER_RIGHT. For a given split mode s, if the Boolean value noSplit[s] is equal to true, then the split mode s cannot be used for the current CU.

[0162] -Depend on Fig.14 The process discussed computes the result of the heuristic. Such a result is given by Fig.14 The boolean values ​​set in the process are provided: skipBinarySplit, checkCurr.

[0163] -The current CU binary tree depth is recorded as BT depth .

[0164] At step 1801, it is tested whether skipBinarySplit is equal to true and whether the checkCurr flag is equal to false. If so, at step 1802, the flag splitPred[QT_SPLIT] is set to true, even if the texture-based split prediction indicates that QT_SPLIT does not apply to the current CU. In other words, the QT_SPLIT mode is forced to be evaluated for the current CU.

[0165] At step 1803, it is tested whether the RD search configuration is such that the binary split mode will not be tested for the current CU. depth is equal to zero, and for some (low) quadtree depth levels the maximum BT search depth is typically equal to zero, and this is the case if the current CU is not at the boundary of the picture.

[0166] If the test at step 1803 is positive, then at step 1804, the flag splitPred[QT_SPLIT] is set to true to ensure that at least one split mode will be tested for the current CU. In other words, at step 1804, the QT_SPLIT mode is forced to be evaluated for the current CU.

[0167] In practice, this often happens for large CUs, so to ensure good coding efficiency, enable at least the QT_SPLIT required for such block sizes.

[0168] If the test of step 1803 is negative, the process goes to step 1805. At step 1805, the canonical binary and ternary split mode constraints are obtained for the current CU and stored in array noSplit.

[0169] At step 1806 , it is tested whether the Boolean skipBinarySplit is equal to true, which means that the binary and ternary split modes are to be evaluated for the current CU. If the Boolean value skipBinarySplit is false, the process ends at step 1817 .

[0170] Otherwise, the process continues by verifying that the decisions of the splitPred[.] array comply with the specification constraints on the binary and ternary split modes for the current CU.

[0171] At step 1807, the Boolean value validSplitPred is set to false.

[0172] The process loops over all binary and trifurcated split patterns (step 1808) to verify whether at least one binary or trifurcated split pattern will be evaluated based on the splitPred[.] and noSplit[.] arrays.

[0173] At step 1809, it is tested whether at least one segmentation mode split split is such that splitPred[split] is true and noSplit[split] is false, and then the Boolean value validSplitPred is set to true at step 1810. In other words, at least one binary or trifurcated segmentation mode allowed by the texture-based segmentation prediction is valid for the canonical binary and trifurcated segmentation mode constraints.

[0174] If the test in step 1809 is positive, then nothing more needs to be done since the contents of splitPred[.] will not conflict with the noSplit[.] array.

[0175] If the test of step 1809 is negative, the loop iterates on the next split pattern among the binary and trifurcated split patterns (step 1811).

[0176] Once all binary and trifurcated splitting patterns have been checked, it is verified whether the Boolean validSplitPred is false at step 1812. In other words, it is verified that at least one binary or trifurcated splitting pattern allowed by the texture based splitting prediction is valid with respect to the canonical binary and trifurcated splitting pattern constraints.

[0177] If the test at 1812 is negative, ie, at least one of the binary or trifurcated segmentation patterns allowed by the texture-based segmentation prediction is valid for the canonical binary and trifurcated segmentation pattern constraints, the process ends (step 1817).

[0178] If the test at 1812 is positive, this means that no binary and ternary splits will be evaluated for the current CU. This may lead to an invalid state in the encoder, i.e., spatial parts of the picture are not encoded at all.

[0179] Therefore, if the test at 1812 is affirmative, that is, for the canonical binary and ternary segmentation mode constraints, there is no valid binary or ternary segmentation mode allowed by texture-based segmentation prediction, then the process loops over all binary and ternary segmentation modes (1813, 1816) and checks (step 1814) whether the canonical binary and ternary segmentation mode constraints allow the segmentation mode, that is, whether the value of the array noSplit for the current segmentation mode is false.

[0180] If the partition mode is allowed, the value in the texture-based partition prediction set of the partition mode is set to true (step 1815). In other words, according to this embodiment, all binary and ternary partition modes allowed by the specification constraints for the current CU are forced to be evaluated during the rate-distortion optimization process.

[0181] According to another embodiment, only the binary or trifurcated segmentation mode that is first encountered in the texture-based segmentation prediction table of binary and trifurcated segmentation modes is forced to be evaluated in the rate-distortion optimization. This is only the Boolean value splitPred of the binary or trifurcated segmentation mode that is first encountered in the texture-based segmentation prediction table, which is allowed by the specification constraints.

[0182] According to another embodiment, at least the horizontal binary or trifurcated segmentation pattern and the vertical binary or trifurcated segmentation pattern that are first encountered in the texture-based segmentation prediction set are forced to be evaluated in the rate-distortion optimization. That is, the Boolean value splitPred of the horizontal binary or trifurcated segmentation pattern and the vertical binary or trifurcated segmentation pattern that are first encountered in the texture-based segmentation prediction set is set to true, which is allowed by the specification constraint.

[0183] According to one embodiment, Fig.18 The process disclosed in Fig. 12A and Fig. 12B in the process.

[0184] Fig.19A and Fig.19B Shows the use of Fig.18 Exemplary method of the disclosed method. In this embodiment, steps 1901 and 1902 are added to the entire RD optimized coding tree search process.

[0185] Step 1901 Fig.14 The disclosed heuristic-based pruning method is then performed. Step 1901 allows adjusting the texture-based segmentation prediction set according to the heuristic-based pruning set. For example, step 1901 includes Fig.18 Steps 1801 to 1804 disclosed in .

[0186] Step 1902 is performed before rate-distortion optimization for the current CU or sub-CU. Step 1902 allows the texture-based segmentation prediction set to be adjusted according to the canonical constraints of the binary and trifurcated segmentation modes. For example, step 1902 includes Fig.18 Steps 1805 to 1816 disclosed in .

[0187] These two steps aim to exploit the efficient coexistence of texture-based partition prediction with a heuristic-based coding tree pruning process and a canonical constraint for limiting the number of binary and ternary partition patterns allowed for a CU.

[0188] Our goal is to benefit as much as possible from texture-based segmentation prediction in terms of RD search speedup, while maintaining the advantages of existing combinatorially restricted methods.

[0189] Indeed, an alternative solution could consist in, for example, deactivating some of the heuristic-based speedups, but it has been observed that by deactivating the previously described heuristics, a not very interesting compromise between speed and performance is obtained: encoding time increases while encoding efficiency improves very little.

[0190] Furthermore, modifying the normative constraints on the use of BT partitioning modes is not desirable, as this would also result in a loss of coding efficiency. In practice, on the decoder side, partitioning configurations are possible that would result in the transmission of more syntax elements in the coded bitstream.

[0191] According to another embodiment, only step 1901 or step 1902 may be performed. In this case, only steps 1801-1804 or steps 1805-1816 may be performed.

[0192] According to another embodiment, some encoder selection cache mechanisms can be used for rate-distortion optimization process. An example of such an encoder selection cache process is described in the international application PCT / EP2017 / 071844 filed on August 31, 2017.

[0193] If the current block size, position and causal environment have been Fig.19 The process involves reusing the encoder selection determined by the rate-distortion optimization process. Figure 7 This happens when the asymmetric HOR_UP split mode is used. Generally, when testing this split mode, a recursive coding tree search has been performed, including the HOR symmetric split mode for the current CU, and then recursively splitting the upper sub-CU horizontally.

[0194] Therefore, the first sub-CU of the current CU obtained with the HOR_UP partitioning mode is usually already processed. In this case, the encoder selection of the upper sub-CU is loaded from the cache, and no other encoding decisions are searched for the sub-CU under consideration. Therefore, only one partitioning mode is envisioned for this sub-CU, namely the cached mode.

[0195] However, in this case, it may happen that the external texture-based partition prediction chooses not to use the partition mode cached for the sub-CU under consideration. This may result in testing Fig.19A The collection TreeTypeSet is in NO_SPLIT mode.

[0196] In this case, according to one embodiment, the cached partitioning mode is forced to be used for the considered sub-CU even though the external texture-based partitioning mode prediction provides contradictory predictions.

[0197] According to another embodiment, the M best partitioning modes already stored in the cache selected by the encoder are evaluated for the size and position of the sub-CU under consideration. M is typically equal to 3. In practice, the encoder cache process can store all partitioning modes evaluated for the position, size and causal environment of each CU (for example, surrounding reconstructed pixel values ​​and motion vectors as in PCT / EP2017 / 071844), as well as the rate-distortion cost associated with each evaluated partitioning mode. Thus, the encoder can retrieve the M best partitioning modes that have been found in the past for the size and position of the sub-CU under consideration, regardless of the causal environment of the sub-CU. In a first variant, among the M best modes cached, only the mode selected by the external texture-based partitioning prediction is evaluated. In another variant, all M best modes are evaluated.

[0198] Another embodiment handles the case where the M best partitioning modes already stored in the encoder's cache for the size and spatial position of the current CU are used for the partitioning mode search for the current CU. In practice, in a preferred mode, only modes among these M best modes selected by external texture-based partitioning prediction are evaluated. However, it may happen that none of these M best modes is selected by external texture-based partitioning prediction. In this case, in order to avoid testing zero partitioning mode for the current CU, all these M best partitioning modes must be evaluated.

[0199] Finally, the last embodiment includes, in Fig.19 After looping over the partition modes in the algorithm of , it is detected that at least one partition mode has been evaluated for the current coding unit. In the case where zero partition mode is evaluated by the rate-distortion optimization procedure, the NO_SPLIT mode is evaluated for the current CU.

[0200] Therefore, it is ensured that the rate-distortion optimization process selects some (multiple) coding modes for encoding for each spatial region in the picture.

[0201] Fig. 20 A block diagram of an exemplary system 2000 is shown in which various aspects of the exemplary embodiments may be implemented. The system 2000 may be implemented as a device including the various components described below and configured to perform the processes described above. Examples of such devices include, but are not limited to, personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The system 2000 may be communicatively coupled to other similar systems and communicated with via, for example, Fig. 20 The communication channels shown are coupled to the display and are known to those skilled in the art to implement all or part of the exemplary video system described above.

[0202] Various embodiments of the system 200 include at least one processor 2010, which is configured to execute instructions loaded therein for implementing various processes as described above. The processor 2010 may include embedded memory, input and output interfaces, and various other circuits known in the art. The system 2000 may also include at least one memory 2020 (e.g., a volatile memory device, a non-volatile memory device). The system 2000 may additionally include a storage device 2040, which may include a non-volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, a disk drive, and / or an optical drive. As a non-limiting example, the storage device 2040 may include an internal storage device, an additional storage device, and / or a network accessible storage device. The system 2000 may also include an encoder module 2030, which is configured to process data to provide encoded video, and the encoder module 2030 may include its own processor and memory.

[0203] The encoder module 2030 represents a module (or modules) that may be included in a device to perform encoding functions. As is well known, such a device may include one or two encoding modules. In addition, the encoder module 2030 may be implemented as an independent element of the system 2000, or may be incorporated into one or more processors 2010 as a combination of hardware and software known to those skilled in the art.

[0204] Program code to be loaded onto one or more processors 2010 to perform the various processes described above may be stored in the storage device 2040 and subsequently loaded onto the memory 2020 to be executed by the processor 2010. According to an exemplary embodiment, one or more of the processor 2010, the memory 2020, the storage device 2040, and the encoder module 2030 may store one or more of the various items during the execution of the processes discussed above, including but not limited to input video, decoded video, bitstreams, equations, formulas, matrices, variables, operations, and operation logic.

[0205] The system 2000 may also include a communication interface 2050 that is capable of communicating with other devices via a communication channel 2060. The communication interface 2050 may include, but is not limited to, a transceiver configured to send and receive data to and from the communication channel 2060. The communication interface 2050 may include, but is not limited to, a modem or a network card, and the communication channel 2050 may be implemented in a wired and / or wireless medium. The various components of the system 2000 may be connected or communicatively coupled together using various suitable connections (not shown), including, but not limited to, internal buses, wires, and printed circuit boards.

[0206] The exemplary embodiments may be implemented by computer software implemented by the processor 2010 or by hardware or by a combination of hardware and software. As a non-limiting example, the exemplary embodiments may be implemented by one or more integrated circuits. As a non-limiting example, the memory 2020 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as optical storage devices, magnetic storage devices, semiconductor-based storage devices, fixed memory, and removable memory. As a non-limiting example, the processor 2010 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0207] The implementation described herein can be implemented in, for example, a method or process, a device, a software program, a data stream or a signal. Even if only discussed in the context of a single implementation form (e.g., discussed only as a method), the implementation of the discussed features can also be implemented in other forms (e.g., a device or program). The device can be implemented with, for example, appropriate hardware, software and firmware. These methods can be implemented in, for example, a device, such as a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit or a programmable logic device. The processor also includes a communication device, such as a computer, a cellular phone, a portable / personal digital assistant ("PDA") and other devices that facilitate information communication between end users.

[0208] In addition, those skilled in the art can easily understand that Fig. 9 The illustrated exemplary encoder 100 may be modified according to the above teachings to implement the disclosed improvements to existing video coding standards to achieve better compression / decompression. For example, the image segmentation 105 may be modified according to the disclosed teachings.

Claims

1. A coding method, comprising, for a block to be coded: - determining a partitioning mode based on a texture-based partitioning prediction set obtained for a block, the texture-based partitioning prediction set providing, for each of a plurality of partitioning modes, information about the likelihood of selecting a partitioning mode for encoding the block, wherein determining the partitioning mode comprises adjusting the texture-based partitioning prediction set according to a binary or trifurcated partitioning mode non-redundancy constraint, wherein the partitioning mode non-redundancy constraint does not allow a partitioning mode for the block such that at most a series of spatial partitionings of the block provides a given set of boundaries within the block; and - encoding the block using the determined partitioning mode.

2. The encoding method according to claim 1, wherein: The segmentation mode is determined based on rate-distortion optimization using a set of texture-based segmentation predictions obtained for the block.

3. The encoding method according to claim 2, wherein: Adjusting the texture-based segmentation prediction set according to a binary or trifurcated segmentation mode non-redundant constraint comprises: - for each partitioning mode from the set of texture-based partitioning predictions that may be selected for a block during said rate-distortion optimization, checking whether said partitioning mode is allowed by said binary or trifurcated partitioning mode non-redundancy constraint, -If none of the segmentation modes from the texture-based segmentation prediction set that may be selected for a block during the rate-distortion optimization is allowed by the binary or trifurcated segmentation mode non-redundancy constraint, then forcing the evaluation of at least one segmentation mode allowed by the binary or trifurcated segmentation mode non-redundancy constraint in the rate-distortion optimization.

4. The encoding method according to claim 3, wherein: All partitioning patterns allowed by the binary partitioning pattern non-redundancy constraint are enforced to be evaluated in the rate-distortion optimization.

5. The encoding method according to claim 3, wherein: Only the first binary or trinomial segmentation pattern of the texture-based segmentation prediction set is forced to be evaluated in the rate-distortion optimization.

6. The encoding method according to claim 3, wherein: It is mandatory to evaluate at least the first horizontal binary or trifurcated segmentation pattern and the first vertical binary or trifurcated segmentation pattern of the texture-based segmentation prediction set in the rate-distortion optimization.

7. The encoding method according to claim 1, wherein: The binary or ternary partitioning mode non-redundant constraint depends on the binary or ternary tree depth of the block.

8. The encoding method according to claim 1, wherein the texture-based segmentation prediction set is also adjusted according to a heuristic-based segmentation pattern set pruning, and the heuristic-based segmentation pattern set pruning is based at least on the block segmentation depth representing the number of consecutive segmentations used to obtain the block, and the segmentation mode for the block is not allowed.

9. An encoding device comprising an electronic circuit adapted to perform the following operations: - determining a partitioning mode based on a texture-based partitioning prediction set obtained for a block, the texture-based partitioning prediction set providing, for each of a plurality of partitioning modes, information about the likelihood of selecting a partitioning mode for encoding the block, wherein determining the partitioning mode comprises adjusting the texture-based partitioning prediction set according to a binary or trifurcated partitioning mode non-redundancy constraint, wherein the partitioning mode non-redundancy constraint does not allow a partitioning mode for the block such that at most a series of spatial partitionings of the block provides a given set of boundaries within the block; and - encoding the block using the determined partitioning mode.

10. The encoding device according to claim 9, wherein: The segmentation mode is determined based on rate-distortion optimization using a set of texture-based segmentation predictions obtained for the block.

11. The encoding device according to claim 10, wherein: Adjusting the texture-based segmentation prediction set according to a binary or trifurcated segmentation mode non-redundant constraint comprises: - for each partitioning mode from the set of texture-based partitioning predictions that may be selected for a block during said rate-distortion optimization, checking whether said partitioning mode is allowed by said binary or trifurcated partitioning mode non-redundancy constraint, -If none of the segmentation modes from the texture-based segmentation prediction set that may be selected for a block during the rate-distortion optimization is allowed by the binary or trifurcated segmentation mode non-redundancy constraint, then forcing the evaluation of at least one segmentation mode allowed by the binary or trifurcated segmentation mode non-redundancy constraint in the rate-distortion optimization.

12. The encoding device according to claim 11, wherein: All partitioning patterns allowed by the binary partitioning pattern non-redundancy constraint are enforced to be evaluated in the rate-distortion optimization.

13. The encoding device according to claim 11, wherein: Only the first binary or trinomial segmentation pattern of the texture-based segmentation prediction set is forced to be evaluated in the rate-distortion optimization.

14. The encoding device according to claim 11, wherein: It is mandatory to evaluate at least the first horizontal binary or trifurcated segmentation pattern and the first vertical binary or trifurcated segmentation pattern of the texture-based segmentation prediction set in the rate-distortion optimization.

15. The encoding device according to claim 11, wherein: The binary or ternary partitioning mode non-redundant constraint depends on the binary or ternary tree depth of the block.

16. The encoding device according to claim 9, wherein the texture-based segmentation prediction set is also adjusted according to a heuristic-based segmentation pattern set pruning, and the heuristic-based segmentation pattern set pruning does not allow a segmentation mode for the block at least based on a block segmentation depth representing the number of consecutive partitions used to obtain the block.

17. A non-transitory information storage medium storing program code instructions for performing a method comprising the following operations when the program code instructions are executed by a processor: - determining a partitioning mode based on a texture-based partitioning prediction set obtained for the block, the texture-based partitioning prediction set providing, for each of a plurality of partitioning modes, information about the likelihood of selecting the partitioning mode for encoding the block, wherein determining the partitioning mode comprises adjusting the texture-based partitioning prediction set according to a binary or trifurcated partitioning mode non-redundancy constraint, wherein the partitioning mode non-redundancy constraint does not allow a partitioning mode for the block such that at most a series of spatial partitionings of the block provides a given set of boundaries within the block, and - encoding the block using the determined partitioning mode.

18. A computer program product comprising software code instructions for performing, when the software code instructions are executed by a processor: - determining a partitioning mode based on a texture-based partitioning prediction set obtained for a block, the texture-based partitioning prediction set providing, for each of a plurality of partitioning modes, information about the likelihood of selecting a partitioning mode for encoding the block, wherein determining the partitioning mode comprises adjusting the texture-based partitioning prediction set according to a binary or trifurcated partitioning mode non-redundancy constraint, wherein the partitioning mode non-redundancy constraint does not allow a partitioning mode for the block such that at most a series of spatial partitionings of the block provides a given set of boundaries within the block; and - encoding the block using the determined partitioning mode.