Method and apparatus for video encoding adaptically using single tree and dual tree in one block
By adaptively selecting a single tree or double tree structure in video encoding, the problems of insufficient encoding efficiency and chromaticity component quality in the prior art are solved, and more efficient and higher quality video encoding is achieved.
Patent Information
- Application Number
- CN202380066457.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-03
- Filing Date
- 2023-08-07
- Publication Date
- 2025-04-25
AI Technical Summary
When encoding high-quality videos, existing video encoding technologies are difficult to effectively utilize single-tree and double-tree structures, resulting in insufficient encoding efficiency and chroma component quality.
By adaptively selecting a single tree structure or a double tree structure in a single block, the tree structure is dynamically adjusted according to the depth of the entire tree and the characteristics of the block to improve the video encoding efficiency and the quality of chromaticity components.
It is achieved to improve video encoding efficiency and video quality without increasing the computational complexity, especially when processing high-quality videos, the quality of chrominance components is significantly improved.
Smart Images

Figure CN119895856A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a video encoding method and apparatus that adaptively uses a single tree and a dual tree in one block. Background Art
[0002] The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
[0003] Since video data has a large amount of data compared to audio or still image data, the video data requires a large amount of hardware resources (including memory) to store or transmit the video data without a process for compression.
[0004] Therefore, the encoder is generally used to compress and store or transmit video data. The decoder receives the compressed video data, decompresses the received compressed video data, and plays the decompressed video data. Video compression technologies include H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), and Versatile Video Coding (VVC), which has an improved coding efficiency of about 30% or more compared to HEVC.
[0005] However, as image size, resolution, and frame rate gradually increase, the amount of data to be encoded also increases. Therefore, a new compression technology that provides higher encoding efficiency and improved image enhancement effect than existing compression technologies is needed.
[0006] VVC technology determines whether to use a single tree structure or a dual tree structure for block partitioning based on the slice type of the video. However, with today's increasingly high-quality videos, for chrominance components, regardless of the slice type, the demand for dual trees increases. Therefore, it is necessary to adaptively consider the use of single tree structures and dual tree structures to improve video coding efficiency and especially improve the video quality of chrominance components. Summary of the invention
[0007] Technical issues
[0008] The present disclosure attempts to provide a video encoding method and apparatus that adaptively uses a single tree structure and a dual tree structure in a single block according to the depth of the entire tree.
[0009] Technical Solution
[0010] At least one aspect of the present disclosure provides a method for decoding a current block by a video decoding device. The method includes: decoding information about a luminance component of the current block from a bitstream, the information of the current block including the size of the current block, the current tree depth, and partition information of the current block. The method also includes: decoding tree structure information of the current block from the bitstream, the tree structure information including a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating the depth of a single tree used in the entire tree, the minimum single tree block size indicating the block size of a single tree used in the entire tree, and the dual tree enable flag indicating whether a dual tree is used. The method also includes: determining the tree structure of the current block based on the size of the current block, the current tree depth, and the tree structure information, wherein the tree structure indicates a single tree or a dual tree.
[0011] Another aspect of the present disclosure provides a method for encoding a current block by a video encoding device. The method includes: obtaining information about a luminance component of the current block, the information of the current block including the size of the current block, the current tree depth, and the partition information of the current block. The method also includes: determining the tree structure information of the current block, the tree structure information including a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating the depth of a single tree used in the entire tree, the minimum single tree block size indicating the block size of a single tree used in the entire tree, and the dual tree enable flag indicating whether a dual tree is used. The method also includes: determining the tree structure of the current block based on the size of the current block, the current tree depth, and the tree structure information, wherein the tree structure indicates a single tree or a dual tree.
[0012] Another aspect of the present disclosure provides a computer-readable recording medium storing a bitstream generated by a video encoding method. The video encoding method includes: obtaining information about a luminance component of a current block, the information of the current block including the size of the current block, the current tree depth, and the partition information of the current block. The video encoding method also includes: determining the tree structure information of the current block, the tree structure information including a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating the depth of a single tree used in the entire tree, the minimum single tree block size indicating the block size of a single tree used in the entire tree, and the dual tree enable flag indicating whether to use a dual tree. The video encoding method also includes: determining the tree structure of the current block based on the size of the current block, the current tree depth, and the tree structure information, wherein the tree structure indicates a single tree or a dual tree.
[0013] Beneficial Effects
[0014] As described above, the present disclosure provides a video encoding method and apparatus that adaptively uses a single tree structure and a dual tree structure in a block according to the depth of the entire tree. Therefore, the video encoding method and apparatus improve video encoding efficiency and improve video quality. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1is a block diagram of a video encoding device that can implement the techniques of the present disclosure.
[0016] Figure 2 A method for partitioning blocks using a quadtree plus binary tree ternary tree (QTBTTT) structure is shown.
[0017] Figure 3a and Figure 3b Multiple intra prediction modes are shown including a wide-angle intra prediction mode.
[0018] Figure 4 Neighboring blocks of the current block are shown.
[0019] Figure 5 is a block diagram of a video decoding device that can implement the techniques of the present disclosure.
[0020] Figures 6a to 6c is a diagram showing a tree structure.
[0021] Figure 7 is a diagram illustrating a method of signaling a tree structure.
[0022] Figure 8 is a diagram showing a single tree structure.
[0023] Fig. 9 is a diagram illustrating a common single and double tree structure according to at least one embodiment of the present disclosure.
[0024] Fig.10 The present invention is a flowchart of a method for determining a tree structure by a video encoding apparatus according to at least one embodiment of the present disclosure.
[0025] Fig.11 The present invention is a flowchart of a method for determining a tree structure by a video decoding device according to at least one embodiment of the present disclosure. DETAILED DESCRIPTION
[0026] Hereinafter, some embodiments of the present disclosure are described in detail with reference to the accompanying drawings. In the following description, although the elements are shown in different drawings, the same reference numerals represent the same elements. In addition, in the following description of some embodiments, for the purpose of clarity and brevity, the detailed description of the relevant known parts and functions may be omitted when it is considered to obscure the subject matter of the present disclosure.
[0027] Figure 1 is a block diagram of a video encoding device that can implement the technology of the present disclosure. Figure 1 A diagram of a video encoding apparatus and components of the apparatus is described.
[0028] The encoding apparatus may include a picture divider 110 , a predictor 120 , a subtractor 130 , a transformer 140 , a quantizer 145 , a rearrangement unit 150 , an entropy encoder 155 , an inverse quantizer 160 , an inverse transformer 165 , an adder 170 , a loop filter unit 180 , and a memory 190 .
[0029] Each component of the encoding device can be implemented as hardware or software or as a combination of hardware and software. In addition, the function of each component can be implemented as software, and the microprocessor can also be implemented to execute the function of the software corresponding to each component.
[0030] A video consists of one or more sequences including multiple pictures. Each picture is divided into multiple regions, and encoding is performed on each region. For example, a picture is divided into one or more tiles or / and slices. Here, one or more tiles can be defined as tile groups. Each tile or / and slice is divided into one or more coding tree units (CTUs). In addition, each CTU is divided into one or more coding units (CUs) through a tree structure. The information applied to each coding unit (CU) is encoded as the syntax of the CU, and the information commonly applied to the CU included in a CTU is encoded as the syntax of the CTU. In addition, the information commonly applied to all blocks in a slice is encoded as the syntax of the slice header, and the information applied to all blocks constituting one or more pictures is encoded into a picture parameter set (PPS) or a picture header. In addition, the information commonly referenced by multiple pictures is encoded into a sequence parameter set (SPS). In addition, the information commonly referenced by one or more SPSs is encoded into a video parameter set (VPS). In addition, the information commonly applied to a tile or tile group can also be encoded as the syntax of a tile or tile group header. The syntax included in the SPS, PPS, slice header, tile, or tile group header may be referred to as a high-level syntax.
[0031] The picture partitioner 110 determines the size of a coding tree unit (CTU). Information on the size of the CTU (CTU size) is encoded as a syntax of an SPS or a PPS and delivered to a video decoding device.
[0032] The picture divider 110 divides each picture constituting a video into a plurality of coding tree units (CTUs) having a predetermined size, and then recursively divides the CTUs by using a tree structure. A leaf node in the tree structure becomes a coding unit (CU), which is a basic unit of encoding.
[0033] The tree structure can be a quadtree (QT), in which the upper node (or parent node) is split into four lower nodes (or child nodes) of the same size. The tree structure can also be a binary tree (BT), in which the upper node is split into two lower nodes. The tree structure can also be a ternary tree (TT), in which the upper node is split into three lower nodes at a ratio of 1:2:1. The tree structure can also be a structure that mixes two or more of the QT structure, the BT structure, and the TT structure. For example, a quadtree plus a binary tree (QTBT) structure can be used, or a quadtree plus a binary tree ternary tree (QTBTTT) structure can be used. Here, a binary tree ternary tree (BTTT) is added to the tree structure to be called a multi-type tree (MTT).
[0034] Figure 2 is a diagram for describing a method of partitioning a block by using a QTBTTT structure.
[0035] like Figure 2 As shown, the CTU can be first split into a QT structure. The quadtree splitting can be recursive until the size of the split block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT. The first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the entropy encoder 155 and is transmitted to the video decoding device by a signal. When the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, the leaf node can also be split into at least one of the BT structure and the TT structure. There can be multiple splitting directions in the BT structure and / or the TT structure. For example, there can be two directions, namely, the direction in which the blocks of the corresponding nodes are split horizontally and the direction in which the blocks of the corresponding nodes are split vertically. As Figure 2 As shown, when MTT splitting starts, a second flag (mtt_split_flag) indicating whether the node is split and, if the node is split, a flag further indicating the splitting direction (vertical or horizontal) and / or a flag indicating the splitting type (binary / trifurcated) are encoded by the entropy encoder 155 and transmitted to the video decoding device by a signal.
[0036] Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is split into four nodes of the lower layer, the CU split flag (split_cu_flag) indicating whether the node is split may also be encoded. When the value of the CU split flag (split_cu_flag) indicates that each node is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU as a basic unit of encoding. When the value of the CU split flag (split_cu_flag) indicates that each node is split, the video encoding device first starts encoding the first flag through the above scheme.
[0037] When QTBT is used as another example of a tree structure, there may be two types, namely, a type in which the block of the corresponding node is horizontally split into two blocks of the same size (i.e., symmetrical horizontal splitting) and a type in which the block of the corresponding node is vertically split into two blocks of the same size (i.e., symmetrical vertical splitting). A split flag (split_flag) indicating whether each node of the BT structure is split into blocks of the lower layer and split type information indicating the split type are encoded by the entropy encoder 155 and delivered to the video decoding device. At the same time, a type in which the block of the corresponding node is split into two blocks that are asymmetric to each other may be presented in addition. The asymmetric form may include a form in which the block of the corresponding node is split into two rectangular blocks having a size ratio of 1:3, or may also include a form in which the block of the corresponding node is split in a diagonal direction.
[0038] A CU may have different sizes according to the QTBT or QTBTTT partitioning from a CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of a QTBTTT) is referred to as a "current block". With the adoption of QTBTT partitioning, the shape of the current block may be a rectangular shape in addition to a square shape.
[0039] The predictor 120 predicts the current block to generate a predicted block. The predictor 120 includes an intra predictor 122 and an inter predictor 124.
[0040] Typically, each current block in a picture can be predictively encoded. Typically, the prediction of the current block can be performed using intra-prediction techniques (using data from the picture that includes the current block) or inter-prediction techniques (using data from pictures that were encoded before the picture that includes the current block). Inter-prediction includes both unidirectional prediction and bidirectional prediction.
[0041] The intra-frame predictor 122 predicts pixels in the current block by using pixels (reference pixels) located around the current block in the current picture including the current block. There are multiple intra-frame prediction modes according to the prediction direction. For example, Figure 3a As shown, the plurality of intra prediction modes may include two non-directional modes (including a planar mode and a DC mode) and may include 65 directional modes. Neighboring pixels and arithmetic equations to be used are defined differently according to each prediction mode.
[0042] In order to perform effective directional prediction for a current block with a rectangular shape, additional use can be made of Figure 3b The directional modes (#67 to #80, intra prediction modes #-1 to #-14) are shown by the dotted arrows in FIG. 1 . The directional modes may be referred to as "wide-angle intra prediction modes". Figure 3b , the arrows indicate the corresponding reference samples used for prediction without indicating the prediction direction. The prediction direction is opposite to the direction indicated by the arrow. When the current block has a rectangular shape, the wide-angle intra prediction mode is a mode that performs prediction of a specific directional pattern in the opposite direction without the need for additional bit transmission. In this case, in the wide-angle intra prediction mode, some wide-angle intra prediction modes available for the current block can be determined by the ratio of the width and height of the current block having a rectangular shape. For example, when the current block has a rectangular shape with a height less than the width, a wide-angle intra prediction mode (intra prediction modes #67 to #80) with an angle less than 45 degrees is available. When the current block has a rectangular shape with a width greater than the height, a wide-angle intra prediction mode with an angle greater than -135 degrees is available.
[0043] The intra-frame predictor 122 may determine an intra-frame prediction to be used for encoding the current block. In some examples, the intra-frame predictor 122 may encode the current block by using multiple intra-frame prediction modes, and may also select an appropriate intra-frame prediction mode to be used from a test mode. For example, the intra-frame predictor 122 may calculate a rate-distortion value by using a rate-distortion analysis for multiple tested intra-frame prediction modes, and may also select an intra-frame prediction mode with the best rate-distortion characteristics in the test mode.
[0044] The intra-frame predictor 122 selects an intra-frame prediction mode from among a plurality of intra-frame prediction modes, and predicts the current block by using adjacent pixels (reference pixels) and an arithmetic equation determined according to the selected intra-frame prediction mode. Information about the selected intra-frame prediction mode is encoded by the entropy encoder 155 and delivered to the video decoding device.
[0045] The inter-frame predictor 124 generates a prediction block of the current block by using a motion compensation process. The inter-frame predictor 124 searches for a block in a reference picture that is encoded and decoded earlier than the current picture that is most similar to the current block, and generates a prediction block of the current block by using the searched block. In addition, a motion vector (MV) is generated, which corresponds to the displacement between the current block in the current picture and the prediction block in the reference picture. Typically, motion estimation is performed on the luminance component, and the motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. Motion information including information about the reference picture used to predict the current block and information about the motion vector is encoded by the entropy encoder 155 and delivered to the video decoding device.
[0046] The inter-frame predictor 124 may also perform interpolation on a reference picture or a reference block to increase the accuracy of the prediction. In other words, the subsamples between two consecutive integer samples are interpolated by applying the filter coefficients to a plurality of consecutive integer samples including two integer samples. When the process of searching for the block most similar to the current block is performed for the interpolated reference picture, the motion vector representation may not be integer sample unit precision, but fractional unit precision. The precision or resolution of the motion vector may be set differently for each target area to be encoded (i.e., units such as slices, tiles, CTUs, CUs, etc.). When such an adaptive motion vector resolution (AMVR) is applied, information about the motion vector resolution to be applied to each target area should be signaled for each target area. For example, when the target area is a CU, information about the motion vector resolution applied to each CU is signaled. The information about the motion vector resolution may be information representing the precision of the motion vector difference to be described below.
[0047] Meanwhile, the inter-frame predictor 124 may perform inter-frame prediction by using bidirectional prediction. In the case of bidirectional prediction, two reference pictures and two motion vectors representing the block position most similar to the current block in each reference picture are used. The inter-frame predictor 124 selects a first reference picture and a second reference picture from reference picture list 0 (RefPicList0) and reference picture list 1 (RefPicList1), respectively. The inter-frame predictor 124 also searches for the block most similar to the current block in the corresponding reference picture to generate a first reference block and a second reference block. In addition, a prediction block of the current block is generated by averaging or weighted averaging the first reference block and the second reference block. In addition, motion information including information about two reference pictures used to predict the current block and including information about two motion vectors is delivered to the entropy encoder 155. Here, the reference picture list 0 may be composed of pictures before the current picture in the display order among the pre-reconstructed pictures, and the reference picture list 1 may be composed of pictures after the current picture in the display order among the pre-reconstructed pictures. However, although not particularly limited thereto, a pre-reconstructed picture after the current picture in the display order may be additionally included in the reference picture list 0. Conversely, a pre-reconstructed picture before the current picture may also be additionally included in the reference picture list 1.
[0048] In order to minimize the number of bits consumed for encoding motion information, various methods may be used.
[0049] For example, when the reference picture and motion vector of the current block are the same as those of the neighboring block, information capable of identifying the neighboring block is encoded to deliver the motion information of the current block to the video decoding device. This method is called merge mode.
[0050] In the merge mode, the inter predictor 124 selects a predetermined number of merge candidate blocks (hereinafter, referred to as “merge candidates”) from the neighboring blocks of the current block.
[0051] like Figure 4 As shown, all or some of the left block A0, the lower left block A1, the upper block B0, the upper right block B1, and the upper left block B2 adjacent to the current block in the current picture can be used as adjacent blocks for deriving merge candidates. In addition, blocks located in reference pictures other than the current picture in which the current block is located (which may be the same as or different from the reference picture used to predict the current block) can also be used as merge candidates. For example, a block located at the same position as the current block in the reference picture or a block adjacent to the block located at the same position can be additionally used as a merge candidate. If the number of merge candidates selected by the method described above is less than the preset number, a zero vector is added to the merge candidate.
[0052] The inter-frame predictor 124 configures a merge list including a predetermined number of merge candidates by using adjacent blocks. A merge candidate to be used as motion information of the current block is selected from the merge candidates included in the merge list, and merge index information for identifying the selected candidate is generated. The generated merge index information is encoded by the entropy encoder 155 and delivered to the video decoding device.
[0053] Merge skip mode is a special case of merge mode. After quantization, when all transform coefficients for entropy coding are close to zero, only the neighbor block selection information is transmitted without the residual signal. By using merge skip mode, relatively high coding efficiency can be achieved for images with slight motion, static images, screen content images, etc.
[0054] Hereinafter, the merge mode and the merge skip mode are collectively referred to as the merge / skip mode.
[0055] Another method for encoding motion information is the Advanced Motion Vector Prediction (AMVP) mode.
[0056] In the AMVP mode, the inter-frame predictor 124 derives a motion vector predictor candidate for the motion vector of the current block by using the neighboring blocks of the current block. Figure 4All or some of the left block A0, lower left block A1, upper block B0, upper right block B1 and upper left block B2 adjacent to the current block in the current picture are used as adjacent blocks for deriving motion vector predictor candidates. In addition, blocks located in a reference picture other than the current picture in which the current block is located (which may be the same as or different from the reference picture used to predict the current block) may also be used as adjacent blocks for deriving motion vector predictor candidates. For example, a block located at the same position as the current block in the reference picture or a block adjacent to the block at the same position may be used. If the number of motion vector candidates selected by the method described above is less than the preset number, a zero vector is added to the motion vector candidates.
[0057] The inter predictor 124 derives a motion vector predictor candidate by using the motion vector of the neighboring block, and determines a motion vector predictor of the motion vector of the current block by using the motion vector predictor candidate. In addition, a motion vector difference is calculated by subtracting the motion vector predictor from the motion vector of the current block.
[0058] The motion vector predictor can be obtained by applying a predefined function (e.g., median and mean calculations, etc.) to the motion vector predictor candidate. In this case, the video decoding device also knows the predefined function. In addition, since the neighboring block used to derive the motion vector predictor candidate is a block that has been encoded and decoded, the video decoding device may also already know the motion vector of the neighboring block. Therefore, the video encoding device does not need to encode information for identifying the motion vector predictor candidate. Therefore, in this case, information about the motion vector difference and information about the reference picture used to predict the current block are encoded.
[0059] Meanwhile, the motion vector predictor may also be determined by selecting any one of the motion vector predictor candidates. In this case, information for identifying the selected motion vector predictor candidate is jointly encoded with information about the motion vector difference and information about the reference picture used to predict the current block.
[0060] The subtractor 130 generates a residual block by subtracting a prediction block generated by the intra predictor 122 or the inter predictor 124 from the current block.
[0061] The transformer 140 transforms the residual signal in the residual block having the pixel value of the spatial domain into the transform coefficient of the frequency domain. The transformer 140 may transform the residual signal in the residual block by using the total size of the residual block as the transform unit, or may also divide the residual block into a plurality of sub-blocks, and may perform the transform by using the sub-blocks as the transform unit. Alternatively, the residual block is divided into two sub-blocks, which are a transform region and a non-transform region, to transform the residual signal using only the transform region sub-block as the transform unit. Here, the transform region sub-block may be one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag), direction (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) indicating that only the sub-block is transformed are encoded by the entropy encoder 155 and transmitted to the video decoding device by a signal. In addition, the size of the transform region sub-block may have a size ratio of 1:3 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) of dividing the corresponding partition is additionally encoded by the entropy encoder 155 and is signaled to the video decoding device.
[0062] At the same time, the transformer 140 can perform transformations on the residual block separately in the horizontal direction and the vertical direction. For the transformation, various types of transformation functions or transformation matrices can be used. For example, a pair of transformation functions for horizontal transformation and vertical transformation can be defined as a multiple transformation set (MTS). The transformer 140 can select a transformation function pair with the highest transformation efficiency in the MTS, and can transform the residual block in each direction of the horizontal direction and the vertical direction. Information about the transformation function pair in the MTS (mts_idx) is encoded by the entropy encoder 155 and is transmitted to the video decoding device by a signal.
[0063] The quantizer 145 quantizes the transform coefficients output from the transformer 140 using the quantization parameter, and outputs the quantized transform coefficients to the entropy encoder 155. The quantizer 145 can also immediately quantize the relevant residual block for any block or frame without transformation. The quantizer 145 can also apply different quantization coefficients (scaling values) according to the position of the transform coefficient in the transform block. The quantization matrix applied to the quantized transform coefficients arranged in 2 dimensions can be encoded and signaled to the video decoding device.
[0064] The rearrangement unit 150 may perform rearrangement of coefficient values with respect to the quantized residual value.
[0065] The rearrangement unit 150 may change the 2D coefficient array into a 1D coefficient sequence by using coefficient scanning. For example, the rearrangement unit 150 may output a 1D coefficient sequence by scanning the DC coefficient into a high frequency domain coefficient using a zigzag scan or a diagonal scan. Depending on the size of the transform unit and the intra-frame prediction mode, a vertical scan that scans the 2D coefficient array in the column direction and a horizontal scan that scans the 2D block type coefficients in the row direction may also be used instead of the zigzag scan. In other words, depending on the size of the transform unit and the intra-frame prediction mode, the scanning method to be used may be determined among zigzag scanning, diagonal scanning, vertical scanning, and horizontal scanning.
[0066] The entropy encoder 155 generates a bitstream by encoding a sequence of 1D quantized transform coefficients output from the rearrangement unit 150 using various encoding schemes including context-based adaptive binary arithmetic coding (CABAC), Exponential Golomb, and the like.
[0067] In addition, the entropy encoder 155 encodes information related to block segmentation (such as CTU size, CTU segmentation flag, QT segmentation flag, MTT segmentation type, MTT segmentation direction, etc.) to allow the video decoding device to segment the block in the same way as the video encoding device. In addition, the entropy encoder 155 encodes information about the prediction type indicating whether the current block is encoded by intra-frame prediction or inter-frame prediction. The entropy encoder 155 encodes intra-frame prediction information (i.e., information about the intra-frame prediction mode) or inter-frame prediction information (in the case of merge mode, merge index, and in the case of AMVP mode, information about reference picture index and motion vector difference) according to the prediction type. In addition, the entropy encoder 155 encodes information related to quantization (i.e., information about quantization parameters and information about quantization matrices).
[0068] The inverse quantizer 160 inversely quantizes the quantized transform coefficient output from the quantizer 145 to generate a transform coefficient. The inverse transformer 165 transforms the transform coefficient output from the inverse quantizer 160 from the frequency domain to the spatial domain to reconstruct a residual block.
[0069] The adder 170 reconstructs the current block by adding the reconstructed residual block and the prediction block generated by the predictor 120. When intra-predicting a next-order block, pixels in the reconstructed current block may be used as reference pixels.
[0070] The loop filter unit 180 performs filtering on the reconstructed pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transform / quantization. The loop filter unit 180 as a loop filter may include all or some of a deblocking filter 182, a sample adaptive offset (SAO) filter 184, and an adaptive loop filter (ALF) 186.
[0071] The deblocking filter 182 filters the boundaries between the reconstructed blocks to eliminate block artifacts that occur due to block unit encoding / decoding, and the SAO filter 184 and the ALF 186 perform additional filtering for the deblocked filtered video. The SAO filter 184 and the ALF 186 are filters for compensating for the difference between the reconstructed pixels and the original pixels that occur due to lossy coding. The SAO filter 184 applies an offset as a CTU unit to improve subjective image quality and coding efficiency. On the other hand, the ALF 186 performs block unit filtering and applies different filters to compensate for distortion by dividing the boundaries of the corresponding blocks and the degree of variation. Information about the filter coefficients to be used for the ALF can be encoded and transmitted to the video decoding device by a signal.
[0072] The reconstructed blocks filtered by the deblocking filter 182, the SAO filter 184, and the ALF 186 are stored in the memory 190. When all blocks in one picture are reconstructed, the reconstructed picture may be used as a reference picture for blocks within the picture to be encoded after inter prediction.
[0073] The video encoding device may store the bit stream of the encoded video data in a non-transitory storage medium, or transmit the bit stream to the video decoding device through a communication network.
[0074] Figure 5 is a functional block diagram of a video decoding device that can implement the technology of the present disclosure. Figure 5 , describing a video decoding apparatus and components of the apparatus.
[0075] The video decoding apparatus may include an entropy decoder 510 , a rearrangement unit 515 , an inverse quantizer 520 , an inverse transformer 530 , a predictor 540 , an adder 550 , a loop filter unit 560 , and a memory 570 .
[0076] and Figure 1Similar to the video encoding device of the present invention, each component of the video decoding device can be implemented as hardware or software or as a combination of hardware and software. In addition, the function of each component can be implemented as software, and the microprocessor can also be implemented as the function of executing the software corresponding to each component.
[0077] The entropy decoder 510 extracts information related to block partitioning by decoding a bitstream generated by a video encoding apparatus to determine a current block to be decoded, and extracts prediction information required to reconstruct the current block and information about a residual signal.
[0078] The entropy decoder 510 determines the size of the CTU by extracting information about the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), and partitions the picture into CTUs of the determined size. In addition, the CTU is determined as the highest level (ie, the root node) of the tree structure, and partition information of the CTU may be extracted to partition the CTU using the tree structure.
[0079] For example, when CTU is segmented by using the QTBTTT structure, the first flag (QT_split_flag) related to the segmentation of QT is first extracted to segment each node into four nodes of the lower layer. In addition, for the node corresponding to the leaf node of QT, the second flag (mtt_split_flag) related to the segmentation of MTT, the segmentation direction (vertical / horizontal) and / or the segmentation type (binary / tripartite) are extracted to segment the corresponding leaf node into the MTT structure. Therefore, each node below the leaf node of QT is recursively segmented into a BT or TT structure.
[0080] As another example, when a CTU is split by using a QTBTTT structure, a CU split flag (split_cu_flag) indicating whether the CU is split is extracted. When the corresponding block is split, the first flag (QT_split_flag) may also be extracted. During the splitting process, for each node, 0 or more recursive MTT splits may occur after 0 or more recursive QT splits. For example, for a CTU, MTT splits may occur immediately, or conversely, multiple QT splits may occur only.
[0081] As another example, when CTU is segmented by using the QTBT structure, the first flag (QT_split_flag) related to the segmentation of QT is extracted to segment each node into four nodes of the lower layer. In addition, a segmentation flag (split_flag) indicating whether a node corresponding to a leaf node of QT is further segmented into BTs and segmentation direction information are extracted.
[0082] Meanwhile, when the entropy decoder 510 determines the current block to be decoded by partitioning using a tree structure, the entropy decoder 510 extracts information about a prediction type indicating whether the current block is intra-predicted or inter-predicted. When the prediction type information indicates intra-prediction, the entropy decoder 510 extracts syntax elements of intra-prediction information (intra-prediction mode) of the current block. When the prediction type information indicates inter-prediction, the entropy decoder 510 extracts information representing syntax elements for inter-prediction information (i.e., a motion vector and a reference picture to which the motion vector refers).
[0083] Furthermore, the entropy decoder 510 extracts quantization-related information and extracts information on a quantized transform coefficient of the current block as information on a residual signal.
[0084] The rearrangement unit 515 may change the sequence of 1D quantized transform coefficients entropy-decoded by the entropy decoder 510 into a 2D coefficient array (ie, block) again in the reverse order of the coefficient scanning order performed by the video encoding device.
[0085] The inverse quantizer 520 inversely quantizes the quantized transform coefficients and inversely quantizes the quantized transform coefficients by using quantization parameters. The inverse quantizer 520 may also apply different quantization coefficients (scaling values) to the quantized transform coefficients arranged in 2D. The inverse quantizer 520 may perform inverse quantization by applying a matrix of quantization coefficients (scaling values) from a video encoding device to a 2D array of quantized transform coefficients.
[0086] The inverse transformer 530 generates a residual block of the current block by reconstructing a residual signal by inversely transforming the inversely quantized transform coefficient from the frequency domain into the spatial domain.
[0087] In addition, when the inverse transformer 530 inversely transforms a partial region (sub-block) of the transform block, the inverse transformer 530 extracts a flag (cu_sbt_flag) that only the sub-block of the transform block is transformed, direction (vertical / horizontal) information (cu_sbt_horizontal_flag) of the sub-block, and / or position information (cu_sbt_pos_flag) of the sub-block. The inverse transformer 530 also inversely transforms the transform coefficient of the corresponding sub-block from the frequency domain to the spatial domain to reconstruct the residual signal and fills the region that is not inversely transformed with a value of "0" as the residual signal to generate a final residual block of the current block.
[0088] In addition, when MTS is applied, the inverse transformer 530 determines a transform function or a transform matrix to be applied in each of the horizontal and vertical directions by using MTS information (mts_idx) transmitted from the video encoding device signal. The inverse transformer 530 also performs inverse transform on the transform coefficients in the transform block in the horizontal and vertical directions by using the determined transform function.
[0089] The predictor 540 may include an intra predictor 542 and an inter predictor 544. The intra predictor 542 is activated when the prediction type of the current block is intra prediction, and the inter predictor 544 is activated when the prediction type of the current block is inter prediction.
[0090] The intra predictor 542 determines an intra prediction mode of a current block among a plurality of intra prediction modes according to syntax elements for the intra prediction mode extracted from the entropy decoder 510. The intra predictor 542 also predicts the current block by using neighboring reference pixels of the current block according to the intra prediction mode.
[0091] The inter predictor 544 determines a motion vector of a current block and a reference picture to which the motion vector refers by using a syntax element for the inter prediction mode extracted from the entropy decoder 510 .
[0092] The adder 550 reconstructs the current block by adding the residual block output from the inverse transformer 530 and the prediction block output from the inter predictor 544 or the intra predictor 542. Pixels within the reconstructed current block are used as reference pixels when decoding a block after intra prediction.
[0093] The loop filter unit 560 as a loop filter may include a deblocking filter 562, an SAO filter 564, and an ALF 566. The deblocking filter 562 performs deblocking filtering on the boundary between the reconstructed blocks to eliminate block artifacts that occur due to block unit decoding. The SAO filter 564 and the ALF 566 perform additional filtering on the reconstructed blocks after deblocking filtering to compensate for the difference between the reconstructed pixels and the original pixels that occur due to lossy encoding. The filter coefficients of the ALF are determined by using information about the filter coefficients decoded from the bitstream.
[0094] The reconstructed blocks filtered by the deblocking filter 562, the SAO filter 564, and the ALF 566 are stored in the memory 570. When all blocks in one picture are reconstructed, the reconstructed picture can be used as a reference picture for blocks within the picture to be encoded after inter prediction.
[0095] In some embodiments, the present disclosure relates to encoding and decoding a video image as described above. More specifically, the present disclosure provides a video encoding method and apparatus that adaptively uses a single tree structure and a dual tree structure in a single block according to the depth of the entire tree.
[0096] The following embodiments may be performed by the picture divider 110 in the video encoding apparatus. The following embodiments may also be performed by the entropy decoder 510 in the video decoding apparatus.
[0097] When encoding the current block, the video encoding device may generate signaling information associated with the present embodiment in terms of optimizing rate distortion. The video encoding device may encode the signaling information using the entropy encoder 155 and send the encoded signaling information to the video decoding device. The video decoding device may decode the signaling information associated with the decoding of the current block from the bitstream using the entropy decoder 510.
[0098] In the following description, the term 'target block' may be used interchangeably with a current block or a coding unit (CU), or may refer to some regions of a coding unit.
[0099] In addition, a flag value of true indicates a case when the flag is set to 1. In addition, a flag value of false indicates a case when the flag is set to 0.
[0100] The following embodiments are described with respect to a video encoding device, but may also be implemented in a video decoding device in the same or similar manner.
[0101] I. Tree structure for image partitioning
[0102] The picture partitioning process of VVC generates multiple coding units (CUs) based on recursive partitioning of coding tree units (CTUs). The video encoding device first partitions the picture into CTUs of uniform size. CTU becomes the topmost node in the tree structure for partitioning into CUs. Therefore, the maximum size of CU is equal to the size of CTU. The picture is first divided into CTUs of uniform size, and then the corresponding CTUs can be partitioned into CUs continuously. In VVC technology, the maximum size of CTU is 128×128. Within a CTU, a CU can be formed into various sizes and shapes ranging from a minimum of 4×4 to a maximum allowed size.
[0103] In HEVC, a CU with a maximum size of 64×64 is allowed, while VVC allows a CU with a maximum size of 128×128. Therefore, compared with HEVC, VVC can use a CU with a wider range of allowed sizes (for example, a size of 128×128). In addition, compared with HEVC, VVC can use a CU with a different partition shape.
[0104] As described above, binary tree (BT), ternary tree (TT) and quad tree (QT) are used as CU partition structures in VVC. BT and TT structures are collectively referred to as multi-type tree (MTT) structures.
[0105] QT is a tree structure with four subordinate nodes under one node, as in HEVC. When the QT structure is applied to the current block, as in Figure 6aAs shown in , the current block is partitioned into four blocks of the same size, and each partitioned block corresponds to a lower-level node. BT is a tree that generates two lower-level nodes from a single node, where the upper-level block can be partitioned horizontally or vertically into two lower-level blocks of the same size, such as Figure 6b As shown in Figure 1, TT generates three subordinate nodes partitioned in the horizontal or vertical direction from a single node. Figure 6c As shown, according to the partition direction, the lower-level block can be generated by partitioning the upper-level block horizontally or vertically at a dimensional ratio of 1:2:1.
[0106] CU can have various sizes and shapes from as small as 4×4 to as large as 128×128. QT is recursively partitioned within the acceptable size, and once the MTT configuration meets the conditions (block size, depth, etc.), QT is available for BT or TT partitioning. At this time, for the lower-level nodes partitioned by BT or TT, QT partitioning is no longer available.
[0107] Figure 7 is a diagram illustrating a method of signaling a tree structure.
[0108] exist Figure 7 In the example of , the root node represents CTU. The root node is first recursively partitioned by QT. Then, when the consecutive partitions reach the minimum size of the block that can no longer be partitioned by QT, the block is partitioned into smaller blocks by using BT and TT. For example, if the block becomes smaller than the size of MinQTSize signaled to SPS (sequence parameter set), QT is no longer used.
[0109] Chunks partitioned by BT and TT are no longer partitioned by using QT. When the depth of MTT reaches MaxMttDepth, the chunk is no longer partitioned. When the horizontal or vertical length of the chunk becomes equal to MinCbsize, the chunk is no longer partitioned.
[0110] exist Figure 7 In the example of , split_cu_flag indicates whether to further partition the related node, that is, the related block. split_qt_flag indicates whether to partition the related block using QT or MTT. mtt_split_cu_vertical_flag indicates whether the partition direction is horizontal or vertical for the MTT partition of the related block. mtt_split_cu_binary_flag indicates whether the MTT partition of the related block is BT or TT.
[0111] The picture is a YUV image including a luma component Y and two chroma components U and V. In VVC, when the characteristics of the luma component and the characteristics of the chroma signal are different, the picture may be partitioned differently using different tree structures.
[0112] The single tree structure uses the same block partition structure for luma and chroma components. The single tree structure is used for I, P, or B slices. Figure 8 As shown in the example of , a single tree structure can be implemented. In the following, the single tree structure and the single tree are used interchangeably. Figure 8 In the example above, the depth of the root node is set to 0.
[0113] The dual tree structure uses separate block partition structures for the luminance component and the chrominance component. The dual tree structure can be used for I slices. The video encoding device can indicate whether to use the dual tree or a single tree by transmitting a flag signal indicating whether the dual tree is used to the video decoding device. When the dual tree structure is used, the minimum luminance block has a size of 4×4, and the minimum chrominance block has a size of 4×4 or 8×2.
[0114] In the following, dual tree structure and dual tree are used interchangeably.
[0115] As described above, the type of slice in the video is used as the basis for determining whether a single tree structure or a dual tree structure is used for block partitioning. However, with today's increasingly high-quality videos, the demand for dual trees has increased for chrominance components, regardless of the slice type. In the following, the adaptive use of single trees and dual trees depending on the depth of the entire tree is described. For example, a single tree is used from the root node to a specific depth, and a dual tree is used starting from the lower nodes. According to an embodiment, the present disclosure can adaptively use single trees and dual trees for different areas in a single image. Therefore, the present disclosure in some embodiments can improve the quality of the chrominance components of the reconstructed image, thereby enhancing the subjective video quality and improving the objective coding efficiency.
[0116] II. Implementations according to the present disclosure
[0117] Fig. 9 is a diagram illustrating a common single and double tree structure according to at least one embodiment of the present disclosure.
[0118] exist Fig. 9 In the example of , the circular nodes represent nodes of a single tree structure shared by the luma component and the chroma component. The topmost node is the root node representing the CTU. The current CTU (coding tree unit) is partitioned by QT. The four subordinate nodes n1, n2, n3 and n4 are non-split, BT, QT and non-split partitions or no partitions, respectively. The partition structure is common to the luma component and the chroma component.
[0119] exist Fig. 9 In the example of , a dual tree structure can be used from the n2 node and the n3 node downward. For example, block partitioning can be performed separately for the luminance component and the chrominance component. For example, Fig. 9The triangle nodes and square nodes in represent the block partitioning process of the luma component and the block partitioning process of the chroma component, respectively. Since n2 is block partitioned using BT, there are two subordinate nodes for each of the luma component and the chroma component. n3 is block partitioned using QT, so there are four subordinate nodes for the luma component and four subordinate nodes for the chroma component. When additional recursive block partitioning is performed from n2 or n3, the block partition structure of the luma component may become different from the block partition structure of the chroma component.
[0120] exist Fig. 9 In the example of , a single tree is used together before the depth of the entire tree reaches 1, and a dual tree is used for the remaining depth. The depth at which a single tree is used (or the depth at which a dual tree is started) can be adaptively changed in the range of 0 to MaxMttDepth. Here, MaxMttDepth represents the total depth of the tree. single_tree_depth (hereinafter referred to as "single tree depth") can be set to indicate the depth at which a single tree is applied. The value of single_tree_depth can be any value in the range of 1 to MaxMttDepth. Based on the value of single_tree_depth, for depths from 0 to single_tree_depth-1, the luma component and the chroma component can share a partition structure, and for subsequent depths, the luma component and the chroma component can have different partition structures.
[0121] The partition structure may be adaptively controlled according to one or a combination of the following methods.
[0122] The depth value of the depth of a single tree (which is represented by single_tree_depth) is signaled in units of SPS, PPS or sub-picture in the entire tree. As described above, based on the value represented by single_tree_depth, a single tree can be used for depths from 0 to single_tree_depth-1, and a dual tree can be used for depths thereafter.
[0123] For nodes constituting a common single-double tree, a flag indicating whether a single tree or a double tree is used (hereinafter referred to as a "dual tree enable flag") is used. For example, if the dual tree enable flag is 0, a single tree is used in which the luminance component and the chrominance component share the partition structure represented by the current node. If the dual tree enable flag is 1, a dual tree is used. If a dual tree structure is used for a node, the single tree structure is no longer used for the subordinate nodes of the node. On the other hand, if the dual tree enable flag is not transmitted, it can be assumed that the dual tree enable flag is set to 1. In this case, for the subordinate nodes of the node using the dual tree structure, the transmission of the dual tree enable flag can be omitted.
[0124] The block size of a single tree (which is represented by min_single_tree_block_size) is signaled in units of SPS, PPS, or sub-pictures in the entire tree. Here, min_single_tree_block_size can be the size of a luma block. It is allowed to use a single tree for blocks up to the size represented by min_single_tree_block_size. For blocks smaller than this, a dual tree is used instead of a single tree structure.
[0125] In the entire tree, up to the nodes in the range partitioned by QT, a single tree is used. For nodes below that range, a dual tree may be used.
[0126] The condition for using a single tree or a dual tree can be signaled by using constraints on the use of MTT. For example, if the size of a block does not satisfy the MinQTSize constraint, that is, if the size of the block does not satisfy the MinQTSize condition, then a single tree is not used for blocks smaller than the size of the block. Here, MinQTSize represents the minimum block size for which QT partitioning is applied. In this case, MinQTSize can be applied with respect to luma blocks.
[0127] When the slice type is I, and when the slice type is B / P, the values of the above-mentioned syntax elements, for example, single_tree_depth, min_single_tree_block_size, etc., may be set differently.
[0128] For example, if a single tree is used up to the total depth of the tree of depth 0, then for all CUs within the relevant CTU, the present disclosure may allow the use of a dual tree in which luma and chroma have different structures. On the other hand, if a single tree is used up to the total depth of the tree of MaxMttDepth, then for all CUs within the relevant CTU, the present disclosure allows the use of a single tree in which luma and chroma have the same structure.
[0129] In one example, the single_tree_depth value may be signaled on a block-by-block basis. In this case, the signaling of single_tree_depth may be performed using a value set to 1 or MaxMttDepth. In such a case, for each region in the image, the CTU may select between dual-tree and single-tree and use the selected tree structure.
[0130] Meanwhile, on the video encoding device side, it is possible to determine whether to apply the dual tree for the chroma component by using the encoding information of the luminance component. For the chroma block determined to be subject to the dual tree, the video encoding device determines the partition information of the chroma component. On the video decoding device side, it is possible to determine whether to apply the dual tree for the chroma component by using the decoding information of the luminance component. For the chroma block determined to be subject to the dual tree, the video decoding device decodes the partition information of the chroma component.
[0131] Reference now Fig.10 and Fig.11 , describes a method for determining the tree structure of the current block.
[0132] Fig.10 The present invention is a flowchart of a method for determining a tree structure by a video encoding apparatus according to at least one embodiment of the present disclosure.
[0133] The video encoding device obtains information about the brightness component of the current block (S1000). Here, the information of the current block includes the size of the current block, the current tree depth, and the partition information of the current block. According to the encoding information about the brightness component of the current block, the video encoding device can obtain the size of the current block, the current tree depth, and the partition information of the current block.
[0134] The video encoding device determines the tree structure information of the current block (S1002). Here, the tree structure information may be a single tree depth, a minimum single tree block size, or a dual tree enable flag. The single tree depth indicates the depth of a single tree used in the entire tree. The minimum single tree block size indicates the block size of a single tree used in the entire tree. The dual tree enable flag indicates whether a dual tree is used. In terms of rate-distortion optimization, the video encoding device may determine the single tree depth, the minimum single tree block size, or the dual tree enable flag.
[0135] The video encoding apparatus determines a tree structure of the current block based on the size of the current block, the current tree depth, and the tree structure information (S1004). Here, the tree structure indicates a single tree or a dual tree.
[0136] The video encoding apparatus encodes current block information and tree structure information (S1006).
[0137] The video encoding apparatus may signal single_tree_depth in units of SPS, PPS, sub-picture, or CTU. In addition, the video encoding apparatus may signal min_single_tree_block_size in units of SPS, PPS, or sub-picture.
[0138] The video encoding apparatus checks the tree structure of the current block (S1008).
[0139] If the tree structure of the current block is a dual tree (No in S1008 ), the video encoding apparatus may perform the following steps ( S1010 and S1012 ).
[0140] The video encoding apparatus determines partition information of a chroma component of a current block (S1010). In terms of rate-distortion optimization, the video encoding apparatus may determine partition information of a chroma component.
[0141] The video encoding apparatus encodes partition information of the chrominance component ( S1012 ).
[0142] On the other hand, if the tree structure of the current block is a single tree (Yes in S1008), for the chrominance component, the video encoding apparatus may use the same partition information as that of the luma component.
[0143] Fig.11 The present invention is a flowchart of a method for determining a tree structure by a video decoding device according to at least one embodiment of the present disclosure.
[0144] The video decoding device decodes information about the luminance component of the current block from the bitstream (S1100). Here, the information of the current block includes the size of the current block, the current tree depth, and the partition information of the current block. According to the decoded information about the luminance component of the current block, the video decoding device can obtain the size of the current block, the current tree depth, and the partition information of the current block.
[0145] The video decoding apparatus decodes the tree structure information of the current block from the bitstream (S1102). Here, the tree structure information may be a single tree depth, a minimum single tree block size, or a dual tree enable flag. The single tree depth indicates the depth of a single tree used in the entire tree. The minimum single tree block size indicates the block size of a single tree used in the entire tree. The dual tree enable flag indicates whether to use a dual tree.
[0146] The video decoding apparatus determines a tree structure of the current block based on the size of the current block, the current tree depth, and the tree structure information (S1104). Here, the tree structure indicates a single tree or a dual tree.
[0147] If the current tree depth is included in single_tree_depth, the video decoding device determines the tree structure of the current block as a single tree. On the other hand, if the current tree depth is not included in single_tree_depth, the video decoding device may determine the tree structure of the current block as a double tree. In this case, single_tree_depth is set within a range from depth 0 to the maximum depth of the entire tree (ie, MaxMttDepth).
[0148] For nodes constituting a common single and double tree, the double tree enable flag is used to indicate whether a single tree or a double tree is used. The video decoding device decodes the double tree enable flag. The video decoding device can determine the tree structure of the current block based on the value of the determined flag. If the tree structure of the current block is determined to be a double tree, the video decoding device determines the tree structure of the subordinate block of the current block as a double tree. On the other hand, if the double tree enable flag is not sent, it can be assumed that the double tree enable flag is set to 1. In this case, for the subordinate nodes of the node using the double tree structure, the video decoding device can omit decoding the double tree enable flag.
[0149] If the size of the current block is greater than or equal to min_single_tree_block_size, the video decoding apparatus determines the tree structure of the current block as a single tree. On the other hand, if the size of the current block is less than min_single_tree_block_size, the video decoding apparatus determines the tree structure of the current block as a dual tree.
[0150] When the current block is a node falling within a range partitioned by the quadtree (QT) in the entire tree, the video decoding apparatus determines the tree structure of the current block as a single tree.
[0151] If the size of the current block does not satisfy the condition of the minimum QT size (MinQTSize), the video decoding apparatus determines the tree structure of the current block as a dual tree. Here, the minimum QT size indicates the minimum size of a block to which QT partitioning is applied.
[0152] The video decoding apparatus checks the tree structure of the current block ( S1106 ).
[0153] If the tree structure of the current block is a dual tree (No in S1106 ), the video decoding apparatus decodes partition information of the chroma component of the current block ( S1108 ).
[0154] On the other hand, if the tree structure of the current block is a single tree (Yes in S1106 ), for the chrominance component, the video decoding apparatus may use the same partition information as that of the luma component.
[0155] Although the steps in the corresponding flow charts are described as being performed sequentially, these steps only illustrate the technical concepts of some embodiments of the present disclosure. Therefore, a person of ordinary skill in the art to which the present disclosure belongs can perform the steps by changing the order described in the corresponding figures or by performing two or more steps in parallel. Therefore, the steps in the corresponding flow charts are not limited to the time series order shown.
[0156] It should be understood that the above description presents illustrative embodiments that can be implemented in various other ways. The functions described in some embodiments can be implemented by hardware, software, firmware and / or their combination. It should also be understood that the functional components described in this disclosure are marked with "... units" to emphasize the possibility of their independent implementation.
[0157] At the same time, the various methods or functions described in some embodiments may be implemented as instructions stored in a non-transitory recording medium that can be read and executed by one or more processors. The non-transitory recording medium may, for example, include various types of recording devices that store data in a form readable by a computer system. For example, the non-transitory recording medium may include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSDs).
[0158] Although the embodiments of the present disclosure have been described for illustrative purposes, it will be understood by those skilled in the art that various modifications, additions, and substitutions are possible without departing from the concept and scope of the present disclosure. Therefore, for the sake of brevity and clarity, the embodiments of the present disclosure have been described. The scope of the technical concept of the embodiments of the present disclosure is not limited by the examples. Therefore, it will be understood by those skilled in the art that the scope of the present disclosure should not be limited by the embodiments explicitly described above, but by the claims and their equivalents.
[0159] (reference number)
[0160] 110: Image Splitter
[0161] 155: Entropy Encoder
[0162] 510: Entropy decoder.
[0163] CROSS-REFERENCE TO RELATED APPLICATIONS
[0164] This application claims priority to and the benefit of Korean Patent Application No. 10-2022-0116562, filed on September 15, 2022, and Korean Patent Application No. 10-2023-0101713, filed on August 3, 2023, the entire contents of each of which are incorporated herein by reference.
Claims
1. A method for decoding a current block by a video decoding device, the method comprising: Decoding information about a luminance component of the current block from a bitstream, wherein the information of the current block includes a size of the current block, a current tree depth, and partition information of the current block; Decoding tree structure information of the current block from the bitstream, the tree structure information comprising a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating a depth of a single tree used in the entire tree, the minimum single tree block size indicating a block size of the single tree used in the entire tree, and the dual tree enable flag indicating whether to use a dual tree; as well as determining a tree structure of the current block based on the size of the current block, the current tree depth and the tree structure information, The tree structure indicates the single tree or the double tree.
2. The method according to claim 1, wherein: Determining the tree structure includes: When the current tree depth is included in the single tree depth, the tree structure of the current block is determined to be the single tree, and when the current tree depth is not included in the single tree depth, the tree structure of the current block is determined to be the dual tree.
3. The method according to claim 2, wherein: The single tree depth is set within a range including 0 to a maximum depth of the entire tree.
4. The method according to claim 1, wherein: Determining the tree structure includes: A tree structure of the current block is determined based on a value of the dual-tree enable flag, and decoding of the dual-tree enable flag is omitted for a lower-level block of the current block.
5. The method according to claim 1, wherein: Determining the tree structure includes: When it is determined that the tree structure of the current block is the dual tree, the tree structure of the lower-level block of the current block is determined to be the dual tree.
6. The method according to claim 1, wherein: Determining the tree structure includes: When the size of the current block is equal to or greater than the minimum single tree block size, the tree structure of the current block is determined to be the single tree, and when the size of the current block is less than the minimum single tree block size, the tree structure of the current block is determined to be the dual tree.
7. The method according to claim 1, wherein: Determining the tree structure includes: When the current block is a node falling within a range partitioned by QT (quad tree) in the entire tree, the tree structure of the current block is determined as the single tree.
8. The method according to claim 1, wherein: Determining the tree structure includes: When the size of the current block does not satisfy a condition of a minimum QT size indicating a minimum block size among block sizes subject to QT partitioning, the tree structure of the current block is determined as the dual tree.
9. The method according to claim 1, wherein: The single-tree depth and the minimum single-tree block size are set differently based on a type of a slice including the current block.
10. The method according to claim 1, wherein: Determining the tree structure includes: When the single tree is used until the depth of the entire tree is 0, the tree structure of the current block is determined to be the dual tree, and when the single tree is used until the maximum depth of the entire tree, the tree structure of the current block is determined to be the single tree.
11. The method according to claim 10, wherein: Determining the tree structure includes: The single tree or the dual tree is applied to each CTU (coding tree unit) including the current block.
12. The method according to claim 1, further comprising, when determining that the tree structure of the current block is the dual tree: Decode partition information of the chrominance component of the current block.
13. A method for encoding a current block by a video encoding device, the method comprising: Obtaining information about a luminance component of a current block, wherein the information about the current block includes a size of the current block, a current tree depth, and partition information of the current block; determining tree structure information of the current block, the tree structure information comprising a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating a depth of a single tree used in the entire tree, the minimum single tree block size indicating a block size of the single tree used in the entire tree, and the dual tree enable flag indicating whether to use a dual tree; as well as determining a tree structure of the current block based on the size of the current block, the current tree depth and the tree structure information, The tree structure indicates the single tree or the double tree.
14. The method according to claim 13, further comprising: The information of the current block and the tree structure information are encoded.
15. The method according to claim 13, further comprising, when determining that the tree structure of the current block is the dual tree: Determining partition information of a chroma component of the current block; and The partition information of the chroma component is encoded.
16. A computer-readable recording medium storing a bit stream generated by a video encoding method, the video encoding method comprising: Obtaining information about a luminance component of a current block, wherein the information about the current block includes a size of the current block, a current tree depth, and partition information of the current block; determining tree structure information of the current block, the tree structure information comprising a single tree depth, a minimum single tree block size, or a dual tree enable flag, the single tree depth indicating a depth of a single tree used in the entire tree, the minimum single tree block size indicating a block size of the single tree used in the entire tree, and the dual tree enable flag indicating whether to use a dual tree; as well as determining a tree structure of the current block based on the size of the current block, the current tree depth and the tree structure information, The tree structure indicates the single tree or the double tree.
Citation Information
Patent Citations
Control method of vehicle and energy conversion device
KR1020220116562A
A semiconductor substrate processing apparatus and the method thereof
KR1020230101713A