Method and apparatus for entropy coding partition partition decisions in video coding systems
By using context models for different partition tree structures for entropy encoding and entropy decoding in the video coding system, the problem of low efficiency of partition information entropy encoding in the existing technology is solved, especially when processing non-square blocks, achieving more efficiency Partition information recovery.
Patent Information
- Application Number
- CN202380045147.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-06
- Filing Date
- 2023-05-10
- Publication Date
- 2025-01-21
AI Technical Summary
Existing video encoding systems have problems with inefficiency in entropy encoding of partition information, especially when dealing with non-square blocks, lack of effective context modeling for different partition tree structures.
Adopt multiple context models to handle different types of partition tree structures, especially for non-square blocks, use horizontal binary tree (HBT) and vertical binary tree (VBT) different context models for entropy encoding and entropy decoding to better adapt to the blocks shape and size.
By using the context model of different partition tree structures, the entropy coding efficiency of partition information is improved. Especially when processing informal blocks, it can more accurately restore partition information to improve the overall performance of video codes.
Smart Images

Figure CN119343917A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] The present invention is a non-provisional application of and claims priority to U.S. Provisional Patent Application No. 63 / 349,181 filed on June 6, 2022. The entire contents of the U.S. Provisional Patent Application are incorporated herein by reference. Technical Field
[0003] The present invention relates to video coding systems. In particular, the present invention relates to partitioning blocks using one or more context models in video coding systems. Background Art
[0004] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). The standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology-Coded representation of immersive media-Part 3: Versatile video coding, released in February 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also handle various types of video sources including three-dimensional (3D) video signals.
[0005] Figure 1AAn exemplary adaptive inter / intra video coding system incorporating loop processing is illustrated. For intra prediction, prediction data is derived based on previously encoded video data in the current picture. For inter prediction 112, motion estimation (ME) is performed on the encoder side, and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other pictures and motion data. Switch 114 selects intra prediction 110 or inter prediction 112, and supplies the selected prediction data to adder 116 to form a prediction error (also known as a residual). The prediction error is then processed by transform (Transform, T) 118, followed by quantization (Quantization, Q) 120. The transformed and quantized residual is then encoded by entropy encoder 122, thereby being included in the video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged together with side information (such as motion and coding modes associated with intra-frame prediction and inter-frame prediction) and other information (such as parameters associated with the loop filter applied to the base image region). The side information associated with the intra-frame prediction 110, the inter-frame prediction 112, and the in-loop filter 130 is provided to the entropy encoder 122, as shown in FIG. Figure 1A As shown. When using inter-frame prediction mode, one or more reference pictures must also be reconstructed at the encoder end. Thus, the transformed and quantized residual is processed by inverse quantization (IQ) 124 and inverse transformation (IT) 126 to restore the residual. The residual is then added back to the prediction data 136 at reconstruction (REC) 128 to reconstruct the video data. The reconstructed video data can be stored in a reference picture buffer 134 and used for prediction of other frames.
[0006] like Figure 1AAs shown, the input video data undergoes a series of processes in the encoding system. The reconstructed video data from REC 128 may be subjected to various impairments caused by the series of processes. Therefore, before the reconstructed video data is stored in the reference picture buffer 134, an in-loop filter 130 is usually applied to the reconstructed video data in order to improve the video quality. For example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF) may be used. The loop filter information may need to be incorporated into the bitstream so that the decoder can properly recover the required information. Therefore, the loop filter information is also provided to the entropy encoder 122 for incorporation into the bitstream. In Figure 1A In , a loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in a reference picture buffer 134. Figure 1A The system in is intended to illustrate an exemplary structure of a typical video encoder. The system may correspond to a high efficiency video coding (HEVC) system VP8, VP9, H.264 or VVC.
[0007] like Figure 1B As shown, the decoder can use other similar functional blocks or parts of the same functional blocks of the encoder except transform 118 and quantization 120, because the decoder only needs inverse quantization 124 and inverse transform 126. Instead of entropy encoder 122, the decoder uses entropy decoder 140 to decode the video bitstream into quantized transform coefficients and required encoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information). The intra-frame prediction 150 on the decoder side does not need to perform a pattern search. Instead, the decoder only needs to generate an intra-frame prediction based on the intra-frame prediction information received from the entropy decoder 140. Moreover, for inter-frame prediction, the decoder only needs to perform motion compensation (MC 152) based on the inter-frame prediction information received from the entropy decoder 140, without motion estimation.
[0008] In the present invention, a method and apparatus for improving entropy coding of partition information are disclosed. Summary of the invention
[0009] A method for entropy encoding partition information is disclosed. According to one method, input data associated with a current picture region in a current picture is received, wherein the input data includes pixel data associated with the current picture region to be encoded. The current picture region is partitioned into one or more blocks according to a partition tree. Entropy encoding is applied to first information associated with the partition tree using context formation to generate one or more coded bits, wherein the context modeling includes one or more initial context model probability values derived according to a video content type of the current picture. The one or more coded bits are signaled in a bitstream.
[0010] A corresponding decoding method is also disclosed. Input data associated with a current picture region in a current picture is received, wherein the input data includes encoded data associated with the current picture region to be decoded. One or more high-level syntaxes are parsed from a bitstream. Entropy decoding is applied to the one or more encoded bits using context modeling to recover first information associated with a partition tree, wherein the context modeling includes one or more initial context model probability values as indicated by the one or more high-level syntaxes. Then, the current picture region is partitioned into one or more blocks according to the partition tree for decoding the one or more blocks.
[0011] In one embodiment, the first information includes one or more CU (coding unit) partition flags. In another embodiment, the first information includes a CU partition decision in addition to the one or more CU partition flags.
[0012] In one embodiment, the one or more initial context model probability values are derived based on the video content type. In one embodiment, the video content type belongs to a group including screen video content, activity level of input video, or a combination thereof. Moreover, the one or more high-level grammars may be signaled or parsed from an SPS (sequence parameter set), a PPS (picture parameter set), a PH (picture header), a SH (slice header), or a combination thereof.
[0013] In one embodiment, whether the one or more initial context model probability values are allowed is controlled by one or more high-level syntaxes signaled or parsed from the bitstream. For example, the one or more high-level syntaxes may be signaled or parsed from the bitstream at a picture level, a slice level, a tile level, a CTU row level, a CTU level, a VPDU level, or a combination thereof.
[0014] According to another method, at the encoder side, entropy coding is applied to first information related to a partition tree by using one or more context models to generate one or more coded bits, wherein the one or more context models are different for HBT (Horizontal Binary Tree) and VBT (Vertical Binary Tree) applied to non-square blocks. At the decoder side, entropy decoding is applied to the one or more coded bits by using one or more context models to recover the first information related to the partition tree, wherein the one or more context models are different for HBT (Horizontal Binary Tree) and VBT (Vertical Binary Tree) applied to non-square blocks.
[0015] In one embodiment, for a non-square block whose block height is greater than the block width, there is a higher probability that the non-square block is partitioned using HBT than using VBT. In another embodiment, for a non-square block whose block width is greater than the block height, there is a higher probability that the non-square block is partitioned using VBT than using HBT.
[0016] In one embodiment, the one or more context models further depend on the block shape of the non-square block. In another embodiment, the one or more context models further depend on partition information related to the parent node of the non-square block, block size, block shape, or a combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1A An exemplary adaptive inter / intra video coding system incorporating in-loop processing is illustrated.
[0018] Figure 1B Shown for Figure 1A The corresponding decoder of the encoder in .
[0019] Figure 2 An example of a picture divided into CTUs is shown.
[0020] Figure 3 An example of raster scan slice partitioning of a picture is shown, where the picture is divided into 12 tiles and 3 raster scan slices.
[0021] Figure 4 An example of a picture partitioned into tiles and rectangular slices is shown.
[0022] Figure 5 An example of a picture partitioned into 4 tiles and 4 rectangular slices is shown.
[0023] Figure 6An example of a picture partitioned into 28 sub-pictures is shown.
[0024] Figure 7 Examples of multi-type tree structures corresponding to vertical binary partitioning (SPLIT_BT_VER), horizontal binary partitioning (SPLIT_BT_HOR), vertical ternary partitioning (SPLIT_TT_VER), and horizontal ternary partitioning (SPLIT_TT_HOR) are illustrated.
[0025] Figure 8 An example of a signaling mechanism for partition division information in a quadtree with a nested multi-type tree coding tree structure is illustrated.
[0026] Fig. 9 An example of a CTU divided into multiple CUs with a quadtree and nested multi-type tree coding block structure is shown, where the thick block edges represent quadtree partitions and the remaining edges represent multi-type tree partitions.
[0027] Fig.10 An example of TT partitioning being prohibited when the width or height of the luma coding block is greater than 64 is shown.
[0028] Fig.11 An exemplary block diagram of a CABAC process is illustrated.
[0029] Fig.12 An example of partition information in the picture is shown.
[0030] Fig.13 A flowchart of an exemplary video decoding system for entropy decoding partition information using one or more initial context model probability values derived according to a video content type of a current picture according to an embodiment of the present invention is illustrated.
[0031] Fig.14 A flowchart of an exemplary video decoding system for entropy decoding partition information using one or more initial context model probability values derived according to a video content type of a current picture according to an embodiment of the present invention is illustrated.
[0032] Fig.15 A flow chart of an exemplary video decoding system for entropy decoding partition information using different context models for HBT and VBT according to an embodiment of the present invention is shown.
[0033] Fig.16 A flowchart of an exemplary video encoding system for entropy encoding partition information using different context models for HBT and VBT according to an embodiment of the present invention is shown. DETAILED DESCRIPTION
[0034] It should be readily understood that the components of the present invention as generally described herein and illustrated in the accompanying drawings may be arranged and designed in a variety of different configurations. Therefore, as represented in the accompanying drawings, the following more detailed description of the embodiments of the systems and methods of the present invention is not intended to limit the scope of the claimed invention, but is merely representative of selected embodiments of the present invention. References throughout this specification to "one embodiment," "an embodiment," or similar language are intended to mean that a particular feature, structure, or characteristic described in conjunction with the embodiment may be included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing throughout this specification do not necessarily all refer to the same embodiment.
[0035] Moreover, the described features, structures or characteristics may be combined in any suitable manner in one or more embodiments. However, those skilled in the relevant art will recognize that the present invention may be practiced without one or more of these specific details or using other methods, components, etc. In other cases, well-known structures or operations are not shown or described in detail to avoid blurring the various aspects of the present invention. The illustrated embodiments of the present invention will be best understood by reference to the accompanying drawings, in which the same parts are designated by the same numbers throughout. The following description is by way of example only, and simply illustrates certain selected embodiments of the apparatus and method consistent with the invention claimed herein.
[0036] The VVC standard incorporates various new coding tools to further improve coding efficiency over the HEVC standard. Among the various new coding tools, some coding tools relevant to the present invention are reviewed as follows.
[0037] Partition the image into CTUs
[0038] The picture is divided into a series of coding tree units (CTUs). The CTU concept is the same as the CTU concept of HEVC. For a picture with three sample arrays, a CTU consists of an N×N luma sample block and two corresponding chroma sample blocks. Figure 2 An example of a picture divided into CTUs is shown, wherein a thick-line frame 210 corresponds to a picture, and each small rectangle (eg, frame 220) corresponds to a CTU.
[0039] The maximum allowed size of a luma block in a CTU is specified as 128x128 (although the maximum size of a luma transform block is 64x64).
[0040] Partition images into sub-images, slices, and tiles
[0041] The picture is divided into one or more tile rows and one or more tile columns. A tile is a series of CTUs covering a rectangular area of the picture.
[0042] A slice consists of an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture.
[0043] Two slicing modes are supported, namely, raster scan slicing mode and rectangular slicing mode. In raster scan slicing mode, a slice contains a series of complete tiles in a tile raster scan of a picture. In rectangular slicing mode, a slice contains multiple complete tiles that together form a rectangular area of a picture or multiple consecutive complete CTU rows that together form a tile of a rectangular area of a picture. Tiles within a rectangular slice are scanned in tile raster scan order within the rectangular area corresponding to the slice.
[0044] A sub-picture consists of one or more slices that together cover a rectangular area of the picture.
[0045] Figure 3 An example of raster scan slice partitioning of a picture 310 is shown, where the picture is divided into 12 tiles 314 and 3 raster scan slices 316. Each small rectangle 312 corresponds to a CTU.
[0046] Figure 4 An example of a rectangular scan slice partitioning of a picture 410 is shown, where the picture is divided into 24 tiles 414 (6 tile columns and 4 tile rows) and 9 rectangular slices 416. Each small rectangle 412 corresponds to a CTU.
[0047] Figure 5 An example of a picture 510 partitioned into tiles and rectangular slices is shown, where the picture 510 is divided into 4 tiles 514 (2 tile columns and 2 tile rows) and 4 rectangular slices 516. Each small rectangle 512 corresponds to a CTU.
[0048] Figure 6 An example of sub-picture partitioning of a picture 610 is shown, where the picture 610 is partitioned into 18 tiles 614, 12 tiles on the left hand side each covering a slice of a 4×4 CTU, and 6 tiles on the right hand side each covering 2 vertically stacked 2×2 CTU slices, resulting in a total of 24 slices 616, and 24 sub-pictures 616 of varying sizes (each slice is also a sub-picture). Each small rectangle 612 corresponds to a CTU.
[0049] Partition CTU using tree structure
[0050] In HEVC, CTU is divided into CUs to adapt to various local characteristics by using a quadtree (QT) structure represented as a coding tree. The decision on whether to use inter-picture (temporal) prediction or intra-picture (spatial) prediction to encode a picture area is made at the leaf CU level. Each leaf CU can be further divided into one PU, two PUs, or four PUs according to the PU (prediction unit, PredictionUnit) partition type. Within a PU, the same prediction process is applied, and relevant information is sent to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU partition type, the leaf CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the coding tree of the CU. One of the key features of the HEVC structure is that the HEVC structure has the concept of multiple partitions including CU, PU, and TU.
[0051] In VVC, a quadtree with nested multi-type trees using a binary segmentation structure and a ternary segmentation structure replaces the concept of multiple partition unit types, that is, the quadtree removes the distinction between CU, PU, and TU concepts, except for CUs that are too large for the maximum transform length as needed, and supports more flexibility in the shape of CU partitions. In the coding tree structure, a CU can have a square or rectangular shape. The coding tree unit (CTU) is first partitioned by a quadtree (quaternary tree, also known as quadtree) structure. Then, the quadtree leaf nodes can be further divided by a multi-type tree structure. For example Figure 7 As shown, there are four types of partitions in the multi-type tree structure: vertical binary partition (SPLIT_BT_VER 710), horizontal binary partition (SPLIT_BT_HOR720), vertical ternary partition (SPLIT_TT_VER 730), and horizontal ternary partition (SPLIT_TT_HOR 740). The multi-type tree leaf node is called a coding unit (CU), and unless the CU is too large for the maximum transform length, the partition is used for prediction and transform processing without any further partitioning. This means that in most cases, CUs, PUs, and TUs have the same block size in a quadtree with a nested multi-type tree coding block structure. The exception occurs when the maximum supported transform length is less than the width or height of the color component of the CU.
[0052] Figure 8The signaling mechanism of partition division information in a quadtree with a nested multi-type tree coding tree structure is illustrated. The coding tree unit (CTU) is regarded as the root of the quadtree, and the coding tree unit is first partitioned by the quadtree structure. Then, each quadtree leaf node (when large enough to allow it) is further partitioned by the multi-type tree structure. In the multi-type tree structure, a first flag (mtt_split_cu_flag) is signaled to indicate whether the node is further partitioned; when the node is further partitioned, a second flag (mtt_split_cu_vertical_flag) is signaled to indicate the partition direction; then a third flag (mtt_split_cu_binary_flag) is signaled to indicate whether the partition is a binary partition or a ternary partition. Based on the value of mtt_split_cu_vertical_flag and the value of mtt_split_cu_binary_flag, the multi-type tree partition mode (MttSplitMode) of the CU is derived, as shown in Table 1.
[0053] Table 1 - Derivation results of MttSplitMode based on multi-type tree syntax elements
[0054] MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag SPLIT_TT_HOR 0 0 SPLIT_BT_HOR 0 1 SPLIT_TT_VER 1 0 SPLIT_BT_VER 1 1
[0055] Fig. 9 A CTU is shown divided into multiple CUs with a quadtree and nested multi-type tree coding block structure, where the thick block edges represent quadtree partitions and the remaining edges represent multi-type tree partitions. The quadtree with nested multi-type tree partitions provides a content-adaptive coding tree structure including CUs. The size of the CU can be as large as the CTU or as small as 4×4 (in units of luma samples). For the case of 4:2:0 chroma format, the maximum chroma CB size is 64×64 and the minimum size chroma CB consists of 16 chroma samples.
[0056] In VVC, the maximum supported luma transform size is 64 × 64, and the maximum supported chroma transform size is 32 × 32. When the width or height of a CB is larger than the maximum transform width or height, the CB is automatically split in the horizontal and / or vertical direction to meet the transform size limit in that direction.
[0057] The following parameters are defined and specified through SPS syntax elements for the quadtree with nested multi-type tree coding tree scheme.
[0058] -CTU size: the root node size of the quadtree
[0059] -MinQTSize: Minimum allowed quadtree leaf node size
[0060] -MaxBtSize: Maximum allowed binary tree root node size
[0061] -MaxTtSize: Maximum allowed ternary tree root node size
[0062] -MaxMttDepth: Maximum allowed level depth of multi-type trees partitioned from quadtree leaves
[0063] -MinBtSize: minimum allowed binary tree leaf node size
[0064] -MinTtSize: minimum allowed ternary tree leaf node size
[0065] In one example of a quadtree with a nested multi-type tree coding tree structure, the CTU size is set to 128×128 luma samples with two corresponding 64×64 blocks of 4:2:0 chroma samples, MinQTSize is set to 16×16, MaxBtSize is set to 128×128, and MaxTtSize is set to 64×64, MinBtSize and MinTtSize (for both width and height) are set to 4×4, and MaxMttDepth is set to 4. Quadtree partitioning is first applied to the CTU to generate a quadtree leaf node. The size of the quadtree leaf node can range from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size). If the leaf QT node is 128×128, it will not be further partitioned by the binary tree because the size exceeds MaxBtSize and MaxTtSize (i.e., 64×64). Otherwise, the leaf quadtree (qdtree) node can be further divided by the multi-type tree. Therefore, the leaf node of the quadtree is also the root node of the multi-type tree, and it has a multi-type tree depth (mttDepth) as 0. When the multi-type tree depth reaches MaxMttDepth (i.e., 4), no further division is considered. When the width of the multi-type tree node is equal to MinBtSize and is less than or equal to 2*MinTtSize, no further horizontal division is considered. Similarly, when the height of the multi-type tree node is equal to MinBtSize and is less than or equal to 2*MinTtSize, no further vertical division is considered.
[0066] In order to allow the design of 64×64 luma blocks and 32×32 chroma pipelines in the VVC hardware decoder, TT partitioning is prohibited when the width or height of the luma coding block is greater than 64, such as Fig.10As shown, block 1000 corresponds to a 128×128 luma CU. The CU can be partitioned using vertical binary partitioning (1010) or horizontal binary partitioning (1020). After the block is partitioned into 4 CUs (each CU is 64×64 in size), the CU can be further partitioned using partitions including TT. For example, the upper left 64×64 CU is partitioned using vertical ternary partitioning (1030) or horizontal ternary partitioning (1040). TT partitioning is also prohibited when the width or height of the chroma coding block is greater than 32.
[0067] In VVC, the coding tree scheme supports the ability for luma and chroma to have separate block tree structures. For P slices and B slices, the luma CTB and chroma CTB in one CTU must share the same coding tree structure. However, for I slices, luma and chroma can have separate block tree structures. When the separate block tree mode is applied, the luma CTB is partitioned into CUs through one coding tree structure, and the chroma CTB is partitioned into chroma CUs through another coding tree structure. This means that a CU in an I slice can consist of coding blocks of the luma component or coding blocks of two chroma components, and a CU in a P slice or B slice always consists of coding blocks of all three color components unless the video is monochrome.
[0068] In the following, techniques for improving coding performance related to coding trees are disclosed.
[0069] In order to achieve high compression efficiency, a context-based adaptive binary arithmetic coding (CABAC) mode (or known as a regular mode) is adopted to entropy encode the values of syntax elements in VVC. Fig.11 A block diagram of a CABAC process is illustrated. Since the arithmetic encoder in the CABAC engine can only encode binary symbol values, the CABAC process requires the use of a binarizer (1110) to convert the values of the syntax elements into binary strings. The conversion process is generally referred to as binarization. During the encoding process, a probability model is gradually established from the encoded symbols of different contexts. A context modeler (1120) is used for modeling purposes. During normal context-based encoding, a conventional encoding engine (1130) is used, which corresponds to a binary arithmetic encoder. The selection of the modeling context for encoding the next binary symbol can be determined by the encoded information. Symbols can also be encoded without a context modeling stage, and an equal probability distribution is assumed (generally referred to as bypass mode) to reduce complexity. For bypassed symbols, a bypass coding engine (1140) can be used. As Fig.11As shown, switches (S1, S2, and S3) are used to direct data flow between the conventional CABAC mode and the bypass mode. When the conventional CABAC mode is selected, the switch is flipped to the upper contact. When the bypass mode is selected, the switch is flipped to the lower contact, as shown in FIG. Fig.11 shown.
[0070] Proposed Method A: Considering Context Modeling of Reference Images
[0071] In the proposed method, the CU partition information in the reference picture can be used to entropy encode or entropy decode the CU partition information of the current picture in the video encoder. Fig.12 The illustrated CU partitioning is motivated by the fact that CUs are expected to be very similar between temporally adjacent frames. Fig.12 As shown, when partitioning results in a small CU, the neighboring CUs are generally small. On the other hand, when partitioning results in a large CU, the neighboring CUs are generally large. In one embodiment, the video encoder may entropy encode or decode syntax information related to the CU partition decision of the current coding tree node (e.g., split_cu_flag in VVC) by selecting one or more contexts based on CU partition information (such as CU width, height, and size) around the corresponding area of the current coding node in the reference frame. In another embodiment, the video encoder may entropy encode or decode syntax information related to the CU partition direction of the current coding tree node (e.g., mtt_split_cu_vertical_flag in VVC) by selecting one or more contexts based on CU partition information (such as CU shape, width, height, and size) around the corresponding area of the current coding node in the reference picture. The corresponding area of the current coding node in the reference picture may be a temporally co-located area with or without motion compensation.
[0072] This method is a content-dependent method. Therefore, it is proposed to turn on / off this method for different pictures / slices / tiles / CTU lines / CTUs / VPDUs. A control flag for turning on / off is provided for each picture / slice / tile / CTU line / CTU / VPDU.
[0073] Proposed Method B: Partition Prediction Based on Bilateral Matching
[0074] In the proposed method, the information about the MV field derived at the decoder side using bilateral matching (as in [VVC or JVET-Y2025 (M. Coban, F. Le Léannec, J. "Algorithm description of Enhanced Compression Model 4 (ECM 4)", Joint Video Expert Team (JVET) of ITU-TSG16WP 3and ISO / IEC JTC 1 / SC 29, Doc. JVET-Y2025, 25th Meeting, by teleconference, 12-21January 2022)] is used to entropy encode or decode CU partition information of the current picture in a video encoder. In one embodiment, the video encoder may use bilateral matching to derive the MV field, determine the MV diversity within the region of the current coding tree node or the region of the parent coding tree node of the current coding tree node, and determine the context probability. In another embodiment, the video encoder may use bilateral matching to derive the MV field, estimate whether the current coding tree node belongs to the background region or the foreground object, and give different context probabilities. This operation can be performed on multiple starting CTUs because this is beneficial for the initial context value. In an alternative embodiment, the video encoder may use bilateral matching to derive the MV field, estimate whether the current coding tree node belongs to the background region or the foreground object, and predict the CU partition decision. This operation may be performed on multiple starting CTUs, as this is beneficial for the initial context values.
[0075] This method is a content-dependent method. Therefore, it is proposed to turn on / off this method for different pictures / slices / tiles / CTU lines / CTUs / VPDUs. A control flag for turning on / off is provided for each picture / slice / tile / CTU line / CTU / VPDU.
[0076] Proposed Method C: Different Probability Models between HBT and VBT for Non-square Coding Tree Nodes
[0077] In the proposed method, different probability models can be assigned to entropy coding syntax information to indicate whether the partition direction of the current non-square coding tree node is horizontal or vertical (e.g., mtt_split_cu_vertical_flag in VVC). For example, in an 8×128 CU, a higher probability may be that it is partitioned into an 8×64 CU rather than a 4×128 CU. For context modeling, the video encoder may set the HBT probability to be higher than the VBT probability. On the other hand, for a 128×8 CU, a higher probability may be that it is partitioned into a 64×8 CU rather than a 128×4 CU. Alternatively, the video encoder may assign one or more separate contexts to a non-square coding tree node. In a video coding system according to an embodiment of the present invention, the encoder uses entropy coding on the partition information (e.g., mtt_split_cu_vertical_flag in VVC) to generate one or more encoded bits for the partition information. During the entropy coding process, the encoder may use the probabilities of the HBT and VBT for context modeling. The coded bits will be signaled in the bitstream so that the decoder can use the coded bits to recover the partition information. At the decoder side, the coded bits of the partition information (e.g., mtt_split_cu_vertical_flag in VVC) will be parsed from the bitstream and decoded using entropy decoding. The partition information is then used to partition the current picture area (e.g., CTU).
[0078] The context selection for entropy encoding the partition decision of the current non-square coding tree node may depend on the block shape of the current non-square coding tree node. The context selection may also depend on the partition information about the associated parent node, such as the partition direction, size and / or shape of the parent node.
[0079] Proposed Method D: Partition Context Initialization
[0080] In VVC, a fixed set of parameters is used to derive the initial context model probability value for entropy coding. In the method proposed in the present invention, the initial context model probability value for the CU partition mark and other grammatical information related to the CU partition decision can be adaptively derived according to the video content. In a video encoder according to an embodiment of the present invention, one or more context models are used to entropy encode some partition information to generate one or more coded bits. The coded bits are then transmitted by signal in the bitstream. For entropy coding according to the present invention, the initial context model probability value for the CU partition mark and other grammatical information related to the CU partition decision can be adaptively derived according to the video content. Similarly, during entropy decoding using a context model, the initial context model probability value for the CU partition mark and other grammatical information about the CU partition decision can be adaptively derived according to the video content. In one example, the video encoder can assign different initial context model probability values for screen video content. In another example, the video encoder can assign initial context model probability values considering the activity level of the input video content. Syntax information used to adaptively derive the initial context model may be signaled in one or more high-level syntax sets such as a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), and a slice header (SH).
[0081] This method is a content-dependent method. Therefore, it is proposed to turn on / off this method for different pictures / slices / tiles / CTU lines / CTUs / VPDUs. A control flag for turning on / off is provided for each picture / slice / tile / CTU line / CTU / VPDU.
[0082] Any of the above-mentioned adaptive entropy coding methods for partition tree decision can be implemented in the encoder and / or decoder. For example, it can be possible to perform the partition tree decision in the frame (e.g., Figure 1B Intra frame 150), motion compensation module (eg, Figure 1B MC 152 in), or an entropy coding module of a decoder (e.g., Figure 1B Any of the proposed methods can be implemented in the entropy decoder 140 in the frame. Figure 1A 110), an inter-frame coding module of an encoder (e.g., an inter-frame prediction 112), or an entropy coding module of an encoder (e.g., Figure 1A Any of the proposed methods can be implemented in the entropy encoder 122 in the encoder. Alternatively, any of the proposed methods can be implemented as one or more circuits or processors coupled to the inter-frame / intra-frame / prediction / entropy coding module of the encoder and / or the inter-frame / intra-frame / prediction / entropy coding module of the decoder to provide the information required by the inter-frame / intra-frame / prediction module.
[0083] Fig.13 A flowchart of an exemplary video decoding system for entropy decoding partition information using one or more initial context model probability values derived from a video content type of a current picture according to an embodiment of the present invention is illustrated. The steps shown in the flowchart can be implemented as program codes that can be executed on one or more processors (e.g., one or more CPUs) on the encoder side. The steps shown in the flowchart can also be implemented based on hardware, such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, in step 1310, input data associated with a current picture region in a current picture is received, wherein the input data includes encoded data associated with the current picture region to be decoded. In step 1320, one or more encoded bits are parsed from a bitstream, wherein the one or more encoded bits include encoded data of first information related to a partition tree of the current picture region. In step 1330, one or more high-level syntaxes are parsed from the bitstream. In step 1340, entropy decoding is applied to the one or more encoded bits by using context modeling to recover the first information related to the partition tree, wherein the context modeling includes one or more initial context model probability values as indicated by the one or more high-level syntaxes. In step 1350, the current picture region is partitioned into one or more blocks according to the partition tree for decoding the one or more blocks.
[0084] Fig.14 A flowchart of an exemplary video decoding system for entropy decoding partition information using one or more initial context model probability values derived from a video content type of a current picture according to an embodiment of the present invention is illustrated. According to the method, in step 1410, input data associated with a current picture area in a current picture is received, wherein the input data includes pixel data associated with the current picture area to be encoded. In step 1420, the current picture area is partitioned into one or more blocks according to a partition tree. In step 1430, entropy coding is applied to first information associated with the partition tree using context modeling to generate one or more coded bits, wherein the context modeling includes one or more initial context model probability values derived from a video content type of the current picture. In step 1440, the one or more coded bits are transmitted by signal in a bitstream.
[0085] Fig.15A flowchart of an exemplary video decoding system for entropy decoding partition information using different context models for HBT and VBT according to an embodiment of the present invention is shown. According to the method, in step 1510, input data associated with a current picture area in a current picture is received, wherein the input data includes encoded data associated with the current picture area to be decoded. In step 1520, one or more encoded bits are parsed from a bitstream, wherein the one or more encoded bits include encoded data of first information associated with a partition tree of the current picture area. In step 1530, entropy decoding is applied to the one or more encoded bits using one or more context models to recover the first information associated with the partition tree, wherein the one or more context models are different for HBT (horizontal binary tree) and VBT (vertical binary tree) applied to non-square blocks. In step 1540, the current picture area is partitioned into one or more blocks according to the partition tree for decoding the one or more blocks.
[0086] Fig.16 A flowchart of an exemplary video encoding system for entropy encoding partition information using different context models for HBT and VBT according to an embodiment of the present invention is shown. According to the method, in step 1610, input data associated with a current picture area in a current picture is received, wherein the input data includes pixel data associated with the current picture area to be encoded. In step 1620, the current picture area is partitioned into one or more blocks according to a partition tree. In step 1630, entropy encoding is applied to first information associated with the partition tree using one or more context models to generate one or more coded bits, wherein the one or more context models are different for HBT (horizontal binary tree) and VBT (vertical binary tree) applied to non-square blocks. In step 1640, the one or more coded bits are transmitted by signal in a bitstream.
[0087] The flowchart shown is intended to illustrate an example of video encoding according to the present invention. Without departing from the spirit of the present invention, those skilled in the art may modify the various steps, rearrange the steps, split the steps, or combine the steps to practice the present invention. In the present disclosure, specific syntax and semantics have been used to illustrate examples for implementing embodiments of the present invention. Without departing from the spirit of the present invention, a technician may practice the present invention by replacing the syntax and semantics with equivalent syntax and semantics.
[0088] The above description is presented to enable one of ordinary skill in the art to practice the present invention as provided in the context of a specific application and its requirements. Various modifications of the described embodiments are apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described, but to conform to the widest range consistent with the principles and novel features disclosed herein. In the above detailed description, various specific details are illustrated in order to provide a detailed understanding of the present invention. Nevertheless, it will also be understood by those skilled in the art that the present invention may be put into practice.
[0089] The embodiments of the present invention as described above can be implemented by various hardware, software codes or a combination of the two. For example, the embodiments of the present invention can be one or more circuits integrated into a video compression chip or a program code integrated into a video compression software to perform the processing described herein. The embodiments of the present invention can also be a program code to be executed on a digital signal processor (Digital SignalProcessor, DSP) to perform the processing described herein. The present invention can also be related to many functions to be performed by a computer processor, a digital signal processor, a microprocessor or a field programmable gate array (field programmable gate array, FPGA). These processors can be configured to perform specific tasks according to the present invention by executing machine-readable software codes or firmware codes that define the specific methods implemented by the present invention. Software codes or firmware codes can be developed in different programming languages and different formats or styles. Software codes can also be compiled for different target platforms. However, the different code formats, styles and languages of the software codes used to perform the tasks according to the present invention and other means of configuring the codes will not depart from the spirit and scope of the present invention.
[0090] The present invention may be implemented in other specific forms without departing from its spirit or essential characteristics. The described examples are considered to be illustrative and non-restrictive in all respects. Therefore, the scope of the present invention is indicated by the appended claims rather than the foregoing description. All changes that fall within the meaning and scope of the equivalents of the claims will be included within the scope of these claims.
Claims
1. A method for video decoding, the method comprising: receiving input data associated with a current picture region in a current picture, wherein the input data comprises encoded data associated with the current picture region to be decoded; parsing one or more coded bits from a bitstream, wherein the one or more coded bits include the coded data of first information related to a partition tree of the current picture region; parsing one or more high-level grammars from the bitstream; applying entropy decoding to the one or more encoded bits to recover the first information related to the partition tree by using context modeling, wherein the context modeling includes one or more initial context model probability values as indicated by the one or more high-level grammars; and The current picture area is partitioned into one or more blocks according to the partition tree for decoding the one or more blocks.
2. The method according to claim 1, wherein: The first information includes one or more CU (coding unit) partition flags.
3. The method according to claim 2, wherein: The first information includes a CU partition decision except for the one or more CU partition flags.
4. The method according to claim 1, wherein: The one or more initial context model probability values are derived based on the video content type.
5. The method according to claim 4, wherein: The video content type belongs to the group consisting of screen video content, activity level of input video, or a combination thereof.
6. The method according to claim 1, wherein: The one or more high-level syntaxes are parsed from SPS (Sequence Parameter Set), PPS (Picture Parameter Set), PH (Picture Header), SH (Slice Header) or a combination thereof.
7. The method according to claim 1, wherein: Whether the one or more initial context model probability values are allowed is controlled by the one or more high-level syntaxes parsed from the bitstream.
8. The method according to claim 1, wherein: The one or more high-level syntaxes are parsed from the bitstream at a picture level, a slice level, a tile level, a CTU row level, a CTU level, a VPDU level, or a combination thereof.
9. A method for video encoding, the method comprising: Receiving input data associated with a current picture region in a current picture, wherein the input data comprises pixel data associated with the current picture region to be encoded; Partitioning the current picture area into one or more blocks according to a partition tree; applying entropy coding to first information associated with the partition tree using context modeling to generate one or more coded bits, wherein the context modeling includes one or more initial context model probability values derived from a video content type of the current picture; and The one or more encoded bits are signaled in a bitstream.
10. The method according to claim 9, wherein: The first information includes one or more CU (coding unit) partition flags.
11. The method according to claim 10, wherein: The first information includes a CU partition decision except for the one or more CU partition flags.
12. The method according to claim 9, wherein: The video content type belongs to the group consisting of screen video content, activity level of input video, or a combination thereof.
13. The method according to claim 9, wherein: One or more high-level syntaxes are signaled from the bitstream, wherein the one or more high-level syntaxes indicate that the one or more initial context model probability values are selected from one of a plurality of initial context model sets.
14. The method according to claim 13, wherein: The one or more high-level syntaxes are signaled from an SPS (Sequence Parameter Set), a PPS (Picture Parameter Set), a PH (Picture Header), a SH (Slice Header), or a combination thereof.
15. The method according to claim 9, wherein: Whether to allow the one or more initial context model probability values derived according to the video content type of the current picture is controlled by one or more high-level syntaxes parsed from the bitstream.
16. The method according to claim 15, wherein: The one or more high-level syntaxes are parsed from the bitstream at a picture level, a slice level, a tile level, a CTU row level, a CTU level, a VPDU level, or a combination thereof.
17. A method for video decoding, the method comprising: receiving input data associated with a current picture region in a current picture, wherein the input data comprises encoded data associated with the current picture region to be decoded; parsing one or more coded bits from a bitstream, wherein the one or more coded bits include the coded data of first information related to a partition tree of the current picture region; applying entropy decoding to the one or more coded bits using one or more context models to recover the first information related to the partition tree, wherein the one or more context models are different for HBT (horizontal binary tree) and VBT (vertical binary tree) applied to non-square blocks; and The current picture area is partitioned into one or more blocks according to the partition tree for video decoding.
18. The method according to claim 17, wherein: For the non-square block whose block height is greater than the block width, there is a higher probability of partitioning the non-square block using the HBT than using the VBT, and wherein, for the non-square block whose block width is greater than the block height, there is a higher probability of partitioning the non-square block using the VBT than using the HBT.
19. The method according to claim 17, wherein: The one or more context models also depend on a block shape of the non-square block.
20. The method according to claim 17, wherein: The one or more context models also depend on partition information associated with a parent node of the non-square block, a block size, a block shape, or a combination thereof.
21. A method for video encoding, the method comprising: Receiving input data associated with a current picture region in a current picture, wherein the input data comprises pixel data associated with the current picture region to be encoded; Partitioning the current picture area into one or more blocks according to a partition tree; Applying entropy coding to first information related to the partition tree using one or more context models to generate one or more coded bits, wherein the one or more context models are different for HBT (horizontal binary tree) and VBT (vertical binary tree) applied to non-square blocks; and The one or more encoded bits are signaled in a bitstream.
22. The method according to claim 21, wherein: For the non-square block whose block height is greater than the block width, there is a higher probability of partitioning the non-square block using the HBT than using the VBT, and wherein, for the non-square block whose block width is greater than the block height, there is a higher probability of partitioning the non-square block using the VBT than using the HBT.
23. The method according to claim 21, wherein: The one or more context models also depend on a block shape of the non-square block.
24. The method according to claim 21, wherein: The one or more context models also depend on partition information associated with a parent node of the non-square block, a block size, a block shape, or a combination thereof.
