Method and non-transitory computer-readable medium for encoding or decoding video

Through technical means such as QTBT structure and skip mode, the block division and syntax coding of video coding are simplified, the complexity problem of block division structure in HEVC is solved, and the coding efficiency is improved.

CN115022631BActive Publication Date: 2025-09-09SK TELECOM CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210845520.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-06-11
Filing Date
2019-01-04
Publication Date
2025-09-09
Estimated Expiration
2039-01-04

AI Technical Summary

Technical Problem

Existing video coding technologies such as HEVC have problems with block division structure and syntax structure complexity, resulting in low coding efficiency.

Method used

The QTBT structure is used for block partitioning, CU, PU and TU keep the same size, and the skip mode, transform/quantization skip flag and coding unit cbf are used to simplify the syntax encoding and decoding of the coding unit, including skipping the inverse transform, inverse quantization and in-loop filtering.

Benefits of technology

It improves the efficiency of video coding, simplifies the encoding and decoding process, and reduces computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115022631B_ABST
    Figure CN115022631B_ABST
Patent Text Reader

Abstract

A method for encoding or decoding a video and a non-transitory computer-readable medium. The present invention relates to an image decoding method, comprising the following steps: determining a coding unit to be decoded by block partitioning; decoding a prediction syntax for the coding unit so as to include a skip flag indicating whether the coding unit is encoded in a skip mode; decoding the prediction syntax, and then decoding a transform syntax including a transform / quantization skip flag and a coding unit CBF, wherein the transform / quantization skip flag indicates whether inverse transform, inverse quantization, and at least part of in-loop filtering are skipped for the coding unit, and the coding unit CBF indicates whether all coefficients of a luminance block and two chrominance blocks constituting the coding unit are all zero; and reconstructing the coding unit by using the prediction syntax and the transform syntax.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the original invention patent application with application number 201980017079.X (International application number: PCT / KR2019 / 000136, application date: January 4, 2019, invention name: Method and device for encoding or decoding images). Technical Field

[0002] The present disclosure relates to encoding and decoding of video. In one aspect, the present disclosure relates to encoding or decoding syntax for coding units, which are basic units of encoding. Background Art

[0003] Since the amount of video data is larger than that of voice data or still image data, storing or transmitting video data without compression requires a large amount of hardware resources, including memory. Therefore, when storing or transmitting video data, an encoder is used to compress the video data for storage or transmission. The decoder then receives the compressed video data and decompresses and reproduces the video data. Compression technologies used for such videos include H.264 / AVC and High Efficiency Video Coding (HEVC), which was established in early 2013 and improves coding efficiency by approximately 40% over H.264 / AVC.

[0004] Figure 1 FIG2 is a diagram illustrating block division in HEVC.

[0005] In HEVC, a picture is divided into multiple square-shaped coding tree units (CTUs), and each CTU is recursively divided into multiple square-shaped coding units (CUs) according to a quadtree structure. When a CU is determined as a basic unit for coding, the CU is divided into one or more prediction units (PUs) and prediction is performed on a PU-by-PU basis. The CU is divided into PUs by selecting a partition type with good coding efficiency from a variety of partition types. The encoding device encodes the prediction syntax for each PU so that the decoding device can predict each PU in the same way as the encoding device.

[0006] In addition, the CU is partitioned into one or more transform units (TUs) in a quadtree structure, and the residual signal, which is the difference between actual pixels and predicted pixels, is transformed using the size of the TU. The syntax for the transform is encoded on a TU-by-TU basis and transmitted to the decoding device.

[0007] As mentioned above, HEVC has a complex block partitioning structure, such as splitting CTUs into CUs, splitting CUs into PUs, and splitting CUs into TUs. Therefore, CUs, PUs, and TUs can be blocks of different sizes. In this block partitioning structure of HEVC, the syntax associated with the CU and the PUs and TUs within the CU must be encoded separately. In HEVC, the syntax of the CU is initially encoded. Then, the CU calls each PU to encode the syntax for each PU, and also calls each TU to encode the syntax for each TU.

[0008] To address the complexity of block partitioning and syntax, a block partitioning technique has recently been discussed, which involves splitting a CTU into CUs and using each CU as a PU and TU. In this new partitioning structure, once a CU is determined, prediction and transform are performed based on the size of the CU without additional partitioning. In other words, the CU, PU, ​​and TU are the same block. The introduction of this new partitioning structure requires a new structure for encoding syntax specific to the CU. Summary of the Invention

[0009] Technical issues

[0010] To meet this requirement, one aspect of the present invention proposes a new structure for encoding or decoding syntax of a coding unit.

[0011] Technical Solution

[0012] According to one aspect of the present disclosure, a method for decoding a video is provided, the method comprising the following steps: determining a coding unit to be decoded by block partitioning; decoding a prediction syntax of the coding unit, the prediction syntax including a skip flag indicating whether the coding unit is encoded in a skip mode; after decoding the prediction syntax, decoding a transform syntax including a transform / quantization skip flag and a coding unit cbf, wherein the transform / quantization skip flag indicates whether to skip at least part of inverse transform, inverse quantization and in-loop filtering, and the coding unit cbf indicates whether all coefficients in the luminance block and two chrominance blocks constituting the coding unit are all zero, and reconstructing the coding unit based on the prediction syntax and the transform syntax.

[0013] According to another aspect of the present disclosure, a video decoding device is provided, which includes a decoder and a reconstructor, the decoder being configured to: determine a coding unit to be decoded by block partitioning; decode a prediction syntax of the coding unit, the prediction syntax including a skip flag indicating whether the coding unit is encoded in a skip mode; and after decoding the prediction syntax, decode the transform syntax of the coding unit including a transform / quantization skip flag and a coding unit cbf, wherein the transform / quantization skip flag indicates whether at least part of inverse transform, inverse quantization and in-loop filtering are skipped, and the coding unit cbf indicates whether all coefficients in the luminance block and two chrominance blocks constituting the coding unit are all zero; the reconstructor being configured to reconstruct the coding unit based on the prediction syntax and the transform syntax. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 FIG2 is a diagram illustrating block division in HEVC.

[0015] Figure 2 is an exemplary block diagram of a video encoding device capable of implementing the techniques of this disclosure.

[0016] Figure 3 This is an example diagram of block partitioning using the QTBT structure.

[0017] Figure 4 This is an example diagram of multiple intra-frame prediction modes.

[0018] Figure 5 It is an example diagram of the peripheral blocks of the current CU.

[0019] Figure 6 is an exemplary block diagram of a video decoding device capable of implementing the techniques of this disclosure.

[0020] Figure 7 is an exemplary flow chart for decoding CU syntax according to the present disclosure.

[0021] Figure 8 is another exemplary flowchart for decoding CU syntax according to the present disclosure.

[0022] Figure 9 is an exemplary flow chart illustrating a process of decoding transform syntax for respective luma and chroma components.

[0023] Figure 10 is an exemplary flowchart for illustrating a method of decoding CBFs of three components constituting a CU. DETAILED DESCRIPTION

[0024] Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that when reference numerals are added to constituent elements in the corresponding drawings, the same reference numerals designate the same elements, even though these elements are shown in different drawings. In addition, in the following description of the present invention, when a detailed description of known functions and configurations incorporated herein would make the subject matter of the present invention rather unclear, the detailed description will be omitted.

[0025] Figure 2 is an exemplary block diagram of a video encoding device capable of implementing the techniques of this disclosure.

[0026] The video encoding apparatus includes a block partitioner 210, a predictor 220, a subtractor 230, a transformer 240, a quantizer 245, an encoder 250, an inverse quantizer 260, an inverse transformer 265, an adder 270, an in-loop filter 280, and a memory 290. Each element of the video encoding apparatus may be implemented as a hardware chip or may be implemented as software, and one or more microprocessors may be implemented to execute the functions of the software corresponding to the corresponding element.

[0027] A video consists of multiple pictures. Each picture is divided into multiple regions, and encoding is performed for each region. For example, a picture is divided into one or more slices and / or tiles, and each slice or tile 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 CU is encoded as the syntax of the CU, and the information commonly applied to the CUs included in a CTU is encoded as the syntax of the CTU. The information commonly applied to all blocks in a slice is encoded as the syntax of the slice, and the information applied to all blocks constituting a picture is encoded in a picture parameter set (PPS). In addition, information commonly referenced by multiple pictures is encoded in a sequence parameter set (SPS). In addition, information commonly referenced by one or more SPSs is encoded in a video parameter set (VPS).

[0028] The block splitter 210 determines the size of the coding tree unit (CTU). Information about the CTU size (CTU size) is encoded as the syntax of the SPS or PPS and is sent to the video decoding device. The block splitter 210 splits each picture constituting the video into multiple CTUs of predetermined size, and then uses a tree structure to recursively split the CTU. The leaf nodes in the tree structure are used as coding units (CUs), which are the basic units of coding. The tree structure can be a quadtree (QT) structure in which a node (or parent node) is split into four child nodes (or child nodes) of the same size, a binary tree (BT) structure in which a node is split into two child nodes, a ternary tree (TT) structure in which a node is split into three child nodes at a ratio of 1:2:1, or a structure using one or more of the QT structure, BT structure, and TT structure. For example, a quadtree plus binary tree (QTBT) structure can be used, or a quadtree plus ternary tree (QTBTTT) structure can be used.

[0029] Figure 3 This is an example diagram of block partitioning using the QTBT structure. Figure 3 In FIG, (a) illustrates the division of blocks according to the QTBT structure, and (b) represents the division according to the tree structure. Figure 3 In , the solid line represents the division according to the QT structure, and the dotted line represents the division according to the BT structure. Figure 3 In (b), regarding the symbols of the layers, the layer expression without brackets indicates the layer of QT, and the layer expression in brackets indicates the layer of BT. In the BT structure indicated by the dotted line, the numbers are division type information.

[0030] like Figure 3 As shown in , the CTU can be initially split according to the QT structure. The QT splitting can be repeated until the size of the split block reaches the minimum block size MinQTSize of the leaf node allowed in the 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 encoder 250 and signaled to the video decoding device.

[0031] When the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it can be further divided into BT structures. BT can have multiple segmentation types. For example, in some examples, there may be two types of segmentation, namely, a type that splits the block horizontally into two blocks of the same size (i.e., symmetrical horizontal segmentation) and a type that splits the block vertically into two blocks of the same size (i.e., symmetrical vertical segmentation). A second flag (BT_split_flag) indicating whether each node of the BT structure is split into blocks of the lower layer and segmentation type information indicating the segmentation type are encoded by the encoder 250 and sent to the video decoding device. There may be additional types that split the block of the node into two asymmetric blocks. Asymmetric segmentation types may include a type that splits the block into two rectangular blocks with a size ratio of 1:3 or a type that splits the block of the node in a diagonal direction.

[0032] Alternatively, a QTBTTT structure can be used. In the QTBTTT structure, the CTU can be initially partitioned into a QT structure, and then the leaf nodes of the QT can be partitioned into one or more of a BT structure or a TT structure. The TT structure can also have multiple partitioning types. For example, with respect to partitioning, there can be two types of partitioning: one type is to partition the block of the corresponding node horizontally into three blocks at a ratio of 1:2:1 (i.e., symmetrical horizontal partitioning), and the other type is to partition vertically at a ratio of 1:2:1 (i.e., symmetrical vertical partitioning). In the case of QTBTTT, not only a flag indicating whether each node is partitioned into blocks of the lower layer and partition type information (or partition direction information) indicating the partition type (or partition direction) but also supplementary information for distinguishing whether the partition structure is a BT structure or a TT structure can be signaled to the video decoding device.

[0033] Depending on the QTBT or QTBTTT partitioning of the CTU, the CU can have various sizes. In this disclosure, the CU is not further partitioned for prediction or transformation. That is, the CU, PU, ​​and TU are blocks of the same size and located at the same position.

[0034] The predictor 220 predicts the CU to generate a prediction block. The predictor 220 predicts the luminance component and the chrominance component constituting the CU respectively.

[0035] Typically, CUs within a picture can each be predictively coded. Prediction of the current block can typically be achieved using intra-frame prediction techniques, where the intra-frame prediction technique uses data from the picture containing the CU, while the inter-frame prediction technique uses data from pictures coded before the picture containing the CU. Inter-frame prediction includes both unidirectional and bidirectional prediction. To this end, the predictor 220 includes an intra-frame predictor 222 and an inter-frame predictor 224.

[0036] The intra-frame predictor 222 uses the pixels (reference samples) located around the CU in the current picture including the CU to predict the pixels in the CU. There are multiple intra-frame prediction modes according to the prediction direction. For example, Figure 4 As shown in , the various intra prediction modes may include a non-directional mode and 65 directional modes, and the non-directional mode may include a planar mode and a DC mode. According to each prediction mode, a formula and peripheral pixels to be used are defined differently.

[0037] The intra-frame predictor 222 can determine the intra-frame prediction mode to use when encoding the CU. In some examples, the intra-frame predictor 222 can encode the CU using multiple intra-frame prediction modes and select the appropriate intra-frame prediction mode to use from the tested modes. For example, the intra-frame predictor 222 can calculate the rate-distortion value using rate-distortion analysis of multiple tested intra-frame prediction modes and can select the intra-frame mode with the best rate-distortion characteristics from the tested modes.

[0038] The intra-frame predictor 222 selects an intra-frame prediction mode from a plurality of intra-frame prediction modes, and predicts the CU using a formula determined according to the selected intra-frame prediction mode and neighboring pixels (reference pixels). The syntax for indicating the selected intra-frame prediction mode is encoded by the encoder 250 and sent to the video decoding device. The intra-frame prediction mode selected to predict the luminance component in the CU can be used to predict the chrominance component. However, the present disclosure is not limited to this. For example, the intra-frame prediction mode selected for the luminance component and the plurality of intra-frame prediction modes for the chrominance component can be configured as candidates, and one of the candidates can be used as the intra-frame prediction mode for the chrominance component. In this case, the syntax for the intra-frame prediction mode corresponding to the chrominance component is signaled separately.

[0039] The inter-frame predictor 224 generates a prediction block for the CU through motion compensation. The inter-frame predictor searches for a block most similar to the CU in a reference picture that was encoded and decoded earlier than the current picture, and uses the searched block to generate a prediction block for the CU. The inter-frame predictor then generates a motion vector corresponding to the displacement between the CU 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. Information including information about the reference picture and information about the motion vector used to predict the CU is encoded by the encoder 250 and sent to the video decoding device. Typically, information about the reference picture means a reference picture index used to identify a reference picture used for inter-frame prediction among multiple reference pictures, and information about the motion vector means the motion vector difference between the actual motion vector and the predicted motion vector of the CU.

[0040] Other methods can be used to minimize the number of bits required to encode motion information. For example, when the reference picture and motion vector of the current block are the same as those of a neighboring block, the motion information about the current block can be transmitted to the decoding device by encoding information identifying the neighboring block. This method is called "merge mode."

[0041] In the merge mode, the inter-frame predictor 224 selects a predetermined number of merge candidate blocks (hereinafter referred to as "merge candidates") from among the neighboring blocks of the current block. Figure 5 As illustrated in , the neighboring blocks used to derive merge candidates, that is, all or part of the left block L, upper block A, upper right block AR, lower left block BL, and upper left block AL adjacent to the current block in the current picture, can be used. In addition, blocks located in a reference picture (which may be the same as or different from the reference picture used to predict the current block) other than the current block in the current picture can be used as merge candidates. For example, a collocated block or a block adjacent to the collocated block in the reference picture at the same position as the current block can also be used as a merge candidate. The inter-frame predictor 224 uses such neighboring blocks to configure a merge list including a predetermined number of merge candidates. A merge candidate to be used as motion information about the current block is selected from the merge candidates included in the merge list, and a merge index for identifying the selected candidate is generated. The generated merge index is encoded by the encoder 250 and sent to the decoding device.

[0042] The subtractor 230 subtracts predicted pixels in a prediction block generated by the intra predictor 222 or the inter predictor 224 from actual pixels in the CU to generate a residual block.

[0043] The transformer 240 transforms the residual signal in the residual block having pixel values ​​in the spatial domain into a transform coefficient in the frequency domain. The transformer 240 transforms the residual signal in the residual block using a transform unit of the size of a CU. The quantizer 245 quantizes the transform coefficients output from the transformer 240 and outputs the quantized transform coefficients to the encoder 250. Although the description has been made of always performing transform and quantization of the residual signal, the present disclosure is not limited thereto. Any one or more of the transform and quantization can be selectively skipped. For example, only one of the transform and quantization can be skipped, or both can be skipped.

[0044] The encoder 250 encodes information associated with block partitioning, such as a CTU size, a QT partition flag, a BT partition flag, and a partition type, so that a video decoding device can partition a block in the same manner as in a video encoding device.

[0045] In addition, encoder 250 encodes information required for the video decoding device to reconstruct the CU and sends this information to the video decoding device. In the present disclosure, encoder 250 initially encodes the prediction syntax required to predict the CU. The prediction syntax encoded by encoder 250 includes a skip flag (skip_flag), which indicates whether the CU is encoded in skip mode. Here, skip mode is a special case of merge mode and differs from merge mode in that no information about the CU is encoded after the merge index (merge_idx) is encoded. Therefore, in skip mode, transform syntax is not encoded, and all coefficients in the CU are set to 0. When a CU is encoded in skip mode, the video decoding device uses the motion vector and reference picture of the merge candidate indicated by the merge index as the motion vector and reference picture of the current CU to generate a prediction block. Since the residual signals are all set to 0, the prediction block is reconstructed into the CU. In addition, whether deblocking filtering or SAO filtering is applied to a CU encoded in skip mode can be applied through syntax signaled at a higher level than the CU (e.g., CTU, slice, PPS, etc.). For example, when the syntax (slice_sao_flag) indicating whether to apply SAO is signaled on a slice-by-slice basis, whether to apply SAO to a CU encoded in skip mode in the corresponding slice is determined based on the syntax (slice_sao_flag). Alternatively, when encoding a CU in skip mode, at least some in-loop filtering may be skipped. For example, the transquant_skip_flag, which will be described later, may be automatically set to 1, and transform, quantization, and at least some in-loop filtering for the CU may be skipped.

[0046] When the CU is not encoded in skip mode, the prediction syntax includes prediction type information (pred_mode_flag) indicating whether the CU is encoded by intra prediction or inter prediction, and intra prediction information (i.e., information about the intra prediction mode) or inter prediction information (information about the reference picture and motion vector) according to the prediction type. The inter prediction information includes a merge flag (merge_flag) indicating whether the reference picture and motion vector of the CU are encoded in merge mode, and includes a merge index (merge_idx) when merge_flag is 1, or includes picture information and motion vector difference information when merge_flag is 0. In addition, predicted motion vector information may be additionally included.

[0047] After encoding the prediction syntax, the encoder 250 encodes the transform syntax required to transform the CU. The transform syntax includes information related to selective skipping of transform and quantization, as well as information about coefficients in the CU. Here, when there are two or more transform methods, the transform syntax includes information indicating the transform type used for the CU. Here, the types of transforms applied to the horizontal axis and the vertical axis can be included separately.

[0048] The information related to selectively skipping transform and quantization may include a transform / quantization skip flag (transquant_skip_flag) indicating whether to skip transform, quantization, and at least some in-loop filtering for a CU, and a transform skip flag (transform_skip_flag) indicating whether to skip transform for each of the luminance component and chrominance components constituting the CU. The transform skip flag (transform_skip_flag) is encoded independently for each of the components constituting the CU. However, the present disclosure is not limited thereto, and the transform skip flag may be encoded only once for one CU. In this case, when transform_skip_flag is 1, the transform of the CU, that is, the transform of both the luminance component and the chrominance component constituting the CU, is skipped.

[0049] Information related to selective skipping of transform and quantization can be represented by one syntax (transquant_idx). In this case, the syntax can have four values. For example, transquant_idx = 0 means skipping both transform and quantization, transquant_idx = 1 means performing only quantization, transquant_idx = 2 means performing only transform, and transquant_idx = 3 means performing both transform and quantization. The syntax can be binarized using a fixed-length (FL) binarization method so that the four values ​​are the same bit. For example, it can be binarized as shown in Table 1.

[0050] [Table 1]

[0051] transquant_idx Transform Quantification Binarization (ID) 0 Disable Disable 00 1 Disable Enable 01 2 Enable Disable 10 3 Enable Enable 11

[0052] Alternatively, the syntax can be binarized using a truncated unary (TU) binarization method, so that fewer bits are allocated to values ​​with a higher probability of occurrence. For example, the probability of performing both transform and quantization is generally the highest, followed by the probability of performing only quantization when skipping transform. Therefore, the syntax can be binarized as shown in Table 2.

[0053] [Table 2]

[0054] transquant_idx Transform Quantification Binarization (TU) 0 Disable Disable 111 1 Disable Enable 10 2 Enable Disable 110 3 Enable Enable 0

[0055] Information about coefficients in a CU includes a coded block flag (CBF) indicating whether there are non-zero coefficients in the luminance component and two chrominance components of the CU, and a syntax for indicating the coefficient value. Here, the "coefficient" can be a quantized transform coefficient (when both transform and quantization are performed), or a quantized residual signal obtained by skipping the transform (when the transform is skipped), or a residual signal (when both transform and quantization are skipped).

[0056] In the present disclosure, the structure or order in which the encoder 250 encodes the prediction syntax and transform syntax for the CU is the same as the structure or order in which the decoder 610 of the video decoding device, which will be described later, decodes the encoded prediction syntax and transform syntax. Since the structure or order in which the encoder 250 encodes the syntax will be clearly understood based on the structure or order in which the decoder 610 decodes the syntax, the details of the syntax encoding structure or order of the encoder 250 are omitted to avoid redundant description.

[0057] The inverse quantizer 260 inversely quantizes the quantized transform coefficient output from the quantizer 245 to generate a transform coefficient. The inverse transformer 265 transforms the transform coefficient output from the inverse quantizer 260 from the frequency domain to the spatial domain and reconstructs a residual block.

[0058] The adder 270 adds the reconstructed residual block to the prediction block generated by the predictor 220 to reconstruct the CU. Pixels in the reconstructed CU are used as reference samples for performing intra prediction of the next block in sequence.

[0059] The in-loop filter 280 filters the reconstructed pixels to reduce blocking artifacts, ringing artifacts, and blurring artifacts caused by block-based prediction and transform / quantization. The in-loop filter 280 may include a deblocking filter 282 and an SAO filter 284. The deblocking filter 180 filters the boundaries between the reconstructed blocks to remove blocking artifacts caused by block-by-block encoding / decoding, and the SAO filter 284 performs additional filtering on the deblocked filtered picture. The SAO filter 284 is used to compensate for the difference between the reconstructed pixels and the original pixels caused by lossy encoding. Since the deblocking filter and SAO are filtering techniques defined in the HEVC standard technology, further detailed description thereof is omitted.

[0060] The reconstructed blocks filtered by the deblocking filter 282 and the SAO filter 284 are stored in the memory 290. Once all blocks in a picture are reconstructed, the reconstructed picture is used as a reference picture for inter-frame prediction of blocks in the picture to be encoded.

[0061] Figure 6 is an exemplary block diagram of a video decoding device capable of implementing the techniques of this disclosure.

[0062] The video decoding apparatus includes a decoder 610 and a reconstructor 600. The reconstructor 600 includes an inverse quantizer 620, an inverse transformer 630, a predictor 640, an adder 650, an in-loop filter 660, and a memory 670. Figure 2 Each element of the video encoding device and the video decoding device may be implemented as a hardware chip, or may be implemented as software, and one or more microprocessors may be implemented to execute the function of the software corresponding to each element.

[0063] The decoder 610 decodes the bitstream received from the video encoding device. The decoder 610 determines the CU to be decoded by decoding information related to block partitioning. The decoder 610 extracts information about the CTU size from the sequence parameter set (SPS) or picture parameter set (PPS), determines the size of the CTU, and partitions the picture into CTUs of the determined size. The decoder then determines that the CTU is the top layer of the tree structure (i.e., the root node) and extracts the partitioning information of the CTU, thereby using the tree structure to partition the CTU. For example, when the CTU is partitioned using the QTBT structure, the first flag (QT_split_flag) related to QT partitioning is extracted to partition each node into four nodes in the lower layer. For nodes corresponding to QT leaf nodes, the partition type (partition direction) information and the second flag (BT_split_flag) related to BT partitioning are extracted, and the corresponding leaf nodes are partitioned according to the BT structure. For another example, when a CTU is split using the QTBTTT structure, the first flag (QT_split_flag) related to QT splitting is extracted, and each node is split into four nodes in the lower layer. In addition, for the node corresponding to the leaf node of the QT, the split_flag indicating whether the node is further split into BT or TT, as well as additional information and split type (or split direction) information for distinguishing between BT structure and TT structure are extracted. Thus, each node below the leaf node of the QT is recursively split into BT or TT structure.

[0064] The decoder 610 also decodes the prediction syntax and transform syntax necessary to reconstruct the CU based on the bitstream. In this operation, the decoder decodes the prediction syntax and then decodes the transform syntax. Figure 7 2 and subsequent figures will describe the structure of decoder 610 for decoding prediction syntax and transform syntax.

[0065] The inverse quantizer 620 inversely quantizes the coefficients derived using the transform syntax. The inverse transformer 630 inversely transforms the inversely quantized coefficients from the frequency domain to the spatial domain to reconstruct the residual signal, thereby generating a residual block for the CU. One or more of inverse quantization and inverse transform can be skipped based on information related to selective skipping of transform and quantization included in the transform syntax decoded by the decoder.

[0066] The predictor 640 generates a prediction block for the CU using the prediction syntax. The predictor 640 includes an intra predictor 642 and an inter predictor 644. When the prediction type of the CU is intra prediction, the intra predictor 642 is activated, and when the prediction type of the CU is inter prediction, the inter predictor 644 is activated.

[0067] The intra predictor 642 determines an intra prediction mode of a CU among a plurality of intra prediction modes using the intra prediction information extracted from the decoder 610 , and predicts the CU using reference samples around the CU according to the intra prediction mode.

[0068] The inter-frame predictor 644 uses the inter-frame prediction information extracted from the decoder 610 to determine the motion vector of the CU and the reference picture for reference of the motion vector, and uses the motion vector and reference picture to predict the CU. For example, when merge_flag is 1, after configuring the merge list and extracting merge_idx in the same manner as the image encoding device, the inter-frame predictor 644 sets the motion vector and reference picture of the current CU to the reference picture and motion vector of the block indicated by merge_idx among the merge candidates included in the merge list. On the other hand, when merge_flag is 0, reference picture information and motion vector difference information are extracted from the bitstream to determine the reference picture and motion vector of the current CU. In this case, the predicted motion vector information can be extracted separately.

[0069] The adder 650 adds the residual block output from the inverse transformer to the prediction block output from the inter-frame predictor or the intra-frame predictor to reconstruct the CU. The pixels in the reconstructed CU are used as reference samples for intra-frame prediction of a block to be decoded later.

[0070] By sequentially reconstructing CUs, CTUs composed of CUs and pictures composed of CTUs are reconstructed.

[0071] The in-loop filter 660 includes a deblocking filter 662 and an SAO filter 664. The deblocking filter 662 performs deblocking filtering on the boundaries between reconstructed blocks to remove blocking artifacts caused by block-by-block decoding. The SAO filter 664 performs additional filtering on the reconstructed blocks after deblocking filtering to compensate for the differences between the reconstructed pixels and the original pixels caused by lossy encoding. The reconstructed blocks filtered by the deblocking filter 662 and the SAO filter 664 are stored in the memory 670. When all blocks in a picture are reconstructed, the reconstructed picture is used as a reference picture for inter-frame prediction of blocks in subsequent pictures to be decoded.

[0072] Hereinafter, a structure or process of decoding a CU syntax by the decoder 610 of the video decoding apparatus is described in detail.

[0073] As described above, the video decoding device initially decodes the prediction syntax of the coding unit including the skip flag (skip_flag). After decoding all the prediction syntax, the video decoding device decodes the transform syntax including the transquant_skip_flag and the coding unit cbf (cbf_cu). Here, cbf_cu is syntax indicating whether all coefficients in the two chroma blocks and one luma block constituting the coding unit are zero. When skip_flag is 0, that is, when the prediction type of the current CU is not in skip mode, the transform syntax is decoded.

[0074] Figure 7 is an exemplary flow chart for decoding CU syntax according to the present disclosure.

[0075] The video decoding device initially decodes skip_flag among other prediction syntaxes (S702). When skip_flag is 1, as described above, all syntax in the CU except merge_idx is not included in the bitstream. Therefore, when skip_flag is 1 (S704), the video decoding device decodes merge_idx according to the bitstream (S706) and ends syntax decoding for the CU. When a CU has been encoded in skip mode, it can be determined whether deblocking filtering or SAO filtering is applied to the CU by syntax signaled at a higher level than the CU (e.g., CTU, slice, PPS, etc.). Alternatively, for a CU that has been encoded in skip mode, at least some in-loop filtering can be skipped. For example, transquant_skip_flag can be automatically set to 1, so that at least some in-loop filtering can be skipped.

[0076] When skip_flag is 0 (S704), the prediction syntax for inter prediction or intra prediction is decoded. Initially, the video decoding device decodes the prediction type information (pred_mode_flag) indicating whether the prediction type of the current CU is intra prediction or inter prediction (S708). When pred_mode_flag indicates intra prediction (e.g., pred_mode_flag = 1) (S710), the video decoding device decodes the intra prediction information indicating the intra prediction mode of the current CU (S712). On the other hand, when pred_mode_flag indicates inter prediction (e.g., pred_mode_flag = 0) (S710), the video decoding device decodes merge_flag (S714). Then, when merge_flag indicates merge mode (e.g., merge_flag = 1) (S716), merge_idx is decoded (S718). When merge_flag indicates that the mode is not merge mode (e.g., merge_flag = 0) (S716), the prediction syntax for normal inter prediction (i.e., reference picture information and motion vector difference) is decoded (S720). In this case, the predicted motion vector information can also be decoded. After decoding all the prediction syntax of the current CU in this way, the video decoding device decodes the transform syntax of the current CU.

[0077] The video decoding device first decodes cbf_cu, which indicates whether the coefficients in the two chroma blocks and one luminance block constituting the CU are all 0. However, when the prediction type of the current CU is intra prediction, cbf_cu may be automatically set to 1 without decoding according to the bitstream (S736). In addition, when the prediction type of the current CU is skip mode, cbf_cu may be automatically set to 0. When the prediction type is merge mode, cbf_cu may be automatically set to 1 (S732). When the prediction type of the current CU is inter prediction rather than merge mode, cbf_cu is decoded according to the bitstream (S734).

[0078] After decoding cbf_cu, the video decoding device decodes transquant_skip_flag according to the value of cbf_cu. For example, when cbf_cu is 0 (S738), this means that there are no non-zero luma components and non-zero chroma components in the CU, so syntax decoding for the CU is terminated without further decoding of the transform syntax. When cbf_cu is 1 (S738), this means that there are non-zero luma components or chroma components in the CU, so transquant_skip_flag is decoded (S740). Subsequently, the transform syntax for each of the luma components and chroma components in the CU is decoded (S742).

[0079] Alternatively, the decoding order of cbf_cu and transquant_skip_flag may be changed. Figure 8 is another exemplary flowchart for decoding CU syntax according to the present disclosure.

[0080] because Figure 8 Operations S802 to S820 of decoding the prediction syntax in Figure 7 S702 to S720 of decoding the prediction syntax in are the same, so only the operation of decoding the transform syntax of the CU will be described below.

[0081] When the prediction type of the current CU is not in skip mode, the video decoding device decodes transquant_skip_flag according to the bitstream after decoding the prediction syntax (S832). After decoding transquant_skip_flag, cbf_cu is decoded. For example, when the prediction type of the current CU is intra prediction (pred_mode_flag=1) or the current CU is in merge mode (merge_flag=1) (S834), cbf_cu is not decoded according to the bitstream and is automatically set to 1 (S836). On the other hand, when the prediction type of the current CU is inter prediction (pred_mode_flag=0) and the current CU is not in merge mode (merge_flag=0) (S834), cbf_cu is decoded according to the bitstream (S838).

[0082] Thereafter, when cbf_cu is 1, the video decoding apparatus decodes a transform syntax for each of the luma component and the chroma component in the CU ( S842 ).

[0083] In the above embodiment, transquant_skip_flag is a syntax indicating whether to skip the transformation, quantization and at least some in-loop filtering of the CU. Here, "at least some in-loop filtering" may include both deblocking filtering and SAO filtering. Alternatively, it may mean in-loop filtering other than deblocking filtering. In this case, the video decoding device decodes transquant_skip_flag. When transquant_skip_flag is 1, the transformation, quantization and SAO filtering of the CU are skipped. When transquant_skip_flag is 1, the video decoding device may further decode a deblocking filter flag (deblocking_filter_flag) indicating whether deblocking filtering is performed on the CU. In this case, when deblocking_filter_flag is 0, all transformations, quantization, deblocking filtering and SAO filtering of the CU are skipped. On the other hand, when deblocking_filter_flag is 1, the transformation, quantization and SAO filtering of the CU are skipped, and deblocking filtering is performed.

[0084] The pixels in a CU are composed of three color components: one luminance component (Y) and two chrominance components (Cb, Cr). Hereinafter, a block composed of luminance components is referred to as a luminance block, and a block composed of chrominance components is referred to as a chrominance block. A CU is composed of one chrominance block and two chrominance blocks. For each of the luminance blocks and chrominance blocks constituting a CU, the video decoding device described in the present disclosure performs an operation of decoding the transform syntax for obtaining the coefficients in the CU. For example, this operation corresponds to Figure 7 Operation S742 or Figure 8 However, it is obvious that it is not necessary to combine Figure 7 and Figure 8 Decodes the transform syntax of each component and can be sent to all but Figure 7 and Figure 8 This decoding applies to CU syntax structures other than the syntax structures in .

[0085] Figure 9 is an exemplary flow chart for decoding transform syntax for respective luma and chroma components.

[0086] The video decoding apparatus decodes a first chroma cbf (e.g., cbf_cb) indicating whether there is at least one non-zero coefficient in a first chroma block (e.g., a chroma block composed of a Cb component) constituting a CU, a second chroma cbf (e.g., cbf_cr) indicating whether there is at least one non-zero coefficient in a second chroma block (e.g., a chroma block composed of a Cr component), and a luminance block (e.g., cbf_luma) indicating whether there is at least one non-zero coefficient in a luminance block constituting the CU according to a bitstream (S902). The decoding order of these three components cbf' is not limited, but, for example, the three components cbf' may be decoded in the order of cbf_cb, cbf_cr, and cbf_luma.

[0087] When the first two cbf's decoded in S902 are 0 (all coefficients in the block corresponding to each cbf are 0), the last cbf may not be decoded. Figure 7 or Figure 8 , when cbf_cu is 1, cbf_cb, cbf_cr and cbf_luma are decoded. Therefore, when the cbf' of two components are both 0, the cbf of the other component must be 1.

[0088] After decoding the cbf' of the three components, S904 to S910 are performed for each component. As an example, for the luma component, the video decoding apparatus determines whether cbf_luma=1 (S904). When cbf_luma=0, this means that there are no non-zero coefficients in the luma block, so all values ​​in the luma block are set to 0.

[0089] On the other hand, when cbf_luma=1, the video decoding apparatus decodes transform_skip_flag indicating whether to perform transformation on the luminance block. Figure 7 or Figure 8 When the decoded transquant_skip_flag is 1, the transform and quantization of the CU (all components in the CU) are skipped. Therefore, when transquant_skip_flag is 1, there is no need to decode transform_skip_flag for the luma component. On the other hand, when transquant_skip_flag = 0, this means that the transform and quantization of all components in the CU are not always skipped. Therefore, when transquant_skip_flag is 0, the video decoding device decodes transform_skip_flag indicating whether to perform transform on the luma component (S906, S908).

[0090] Then, the video decoding apparatus decodes coefficient values ​​of the luminance component according to the bitstream (S910).

[0091] The decoding of the cbf' of the three components constituting the CU in S902 has been described. Figure 10 Another embodiment of decoding the cbf' of the three components constituting a CU is described. In this embodiment, a syntax called cbf_chroma is also defined to indicate whether all coefficients in the two chroma blocks constituting the CU are 0.

[0092] Figure 10 This is an exemplary flowchart for decoding the CBFs of the three components constituting a CU.

[0093] The video decoding apparatus decodes cbf_chroma indicating whether all coefficients in two chroma blocks constituting the CU are all 0 ( S1002 ).

[0094] When cbf_chroma is 0 (S1004), cbf' (ie, cbf_cb and cbf_cr) of both chroma blocks are set to 0 (S1006). Figure 7 or Figure 8 When cbf_cu is 1, the cbf' of the three components is decoded. Therefore, when cbf_chroma is 0, cbf_luma is automatically set to 1 (S1006).

[0095] On the other hand, when cbf_chroma is 1, the video decoding device decodes cbf_cb (S1008). cbf_chroma=1 means that there is a non-zero coefficient in at least one of the two chroma blocks. Therefore, when the cbf of one of the two chroma blocks is 0, the cbf of the other chroma block should be 1. Therefore, when the decoded cbf_cb is 0, cbf_cr is automatically set to 1 (S1010, S1014). On the other hand, when cbf_cb is 1, cbf_cr is decoded according to the bitstream (S1012). Here, the decoding order of cbf_cb and cbf_cf can be changed. When the decoding of cbf_cb and cbf_cr is completed, the video decoding device decodes cbf_luma (S1016).

[0096] The operation after decoding cbf_cb, cbf_cr and cbf_luma is the same as Figure 9 The same operation is performed in .

[0097] Although the exemplary embodiments have been described for illustrative purposes, it will be appreciated by those skilled in the art that various modifications and changes can be made without departing from the concept and scope of the embodiments. The exemplary embodiments have been described for the sake of brevity. Therefore, it will be understood by those skilled in the art that the scope of the embodiments is not limited by the embodiments explicitly described above, but is encompassed by the claims and their equivalents.

[0098] CROSS-REFERENCE TO RELATED APPLICATIONS

[0099] This application claims priority from Patent Application No. 10-2018-0001728 filed on January 5, 2018, in South Korea and Patent Application No. 10-2018-0066664 filed on June 11, 2018, in South Korea.

Claims

1. A method for decoding a video, the method comprising the following steps: Determine a coding unit to be decoded by dividing the coding tree unit in the picture in a tree structure; decoding a prediction syntax of the coding unit, the prediction syntax including a skip flag indicating whether the coding unit is encoded in a skip mode; After decoding the prediction syntax, decoding a transform syntax including a coding unit coding block flag cbf, wherein the coding unit cbf indicates whether all coefficients in the luminance block and two chrominance blocks constituting the coding unit are all zero; and reconstructing the coding unit based on the prediction syntax and the transform syntax, wherein the transform syntax is not decoded until the prediction syntax is decoded, and the transform syntax is not decoded when the skip flag indicates that the coding unit is encoded in the skip mode, When the skip flag does not indicate that the coding unit is encoded in the skip mode, decoding the transform syntax includes: When the prediction type of the coding unit is inter-frame prediction and is not merge mode, decoding the coding unit cbf according to the bitstream, and When the prediction type of the coding unit is intra prediction or the merge mode, the coding unit cbf is inferred to be a value of 1 without decoding the coding unit cbf according to the bitstream, and the value 1 indicates that at least part of the luminance block and the two chrominance blocks have non-zero coefficients.

2. The method according to claim 1, wherein Reconstructing the coding unit comprises the following steps: Using the size of the coding unit as the prediction unit size, generating a prediction block of the coding unit according to the prediction syntax; Using the size of the coding unit as the size of the transform unit, generating a residual block of the coding unit according to the transform syntax; and The coding unit is reconstructed by adding the prediction block and the residual block.

3. The method according to claim 1, wherein Decoding the transform syntax comprises the following steps: decoding the coding unit cbf; and When the coding unit cbf indicates that at least one of the coefficients in the luminance block and the two chrominance blocks constituting the coding unit is non-zero, decoding a transform / quantization skip flag, The transform / quantization skip flag indicates whether to skip at least part of in-loop filtering, inverse transform and inverse quantization.

4. The method according to claim 3, wherein: The transform / quantization skip flag indicates whether to skip inverse transform, inverse quantization, and in-loop filtering except deblocking filtering for the coding unit.

5. The method according to claim 4, wherein Decoding the transform syntax comprises the following steps: When the transform / quantization skip flag indicates that inverse transform, inverse quantization, and in-loop filtering except deblocking filtering are skipped for the coding unit, a deblocking filtering flag indicating whether deblocking filtering is skipped for the reconstructed coding unit is decoded.

6. The method according to claim 1, wherein When the coding unit cbf indicates that at least one of the coefficients in the luma block and the two chroma blocks constituting the coding unit is non-zero, decoding the transform syntax comprises the following steps: decoding one of the chroma cbf and the luma cbf; and decoding the other of the chroma cbf and the luma cbf according to the value of the decoded one of the chroma cbf and the luma cbf, The chroma cbf indicates whether all coefficients in the two chroma blocks are all zero, and the luma cbf indicates whether all coefficients in the luma block are all zero.

7. The method according to claim 6, further comprising the steps of: When the chroma cbf indicates that there is at least one non-zero coefficient in the two chroma blocks, decoding a first sub-chroma cbf indicating whether all coefficients in a first chroma block among the two chroma blocks are all zero; as well as When the first sub-chroma cbf indicates that there is at least one non-zero coefficient in the first chroma block, a second sub-chroma cbf indicating whether all coefficients in a second chroma block among the two chroma blocks are all zero is decoded.

8. A video encoding method, the method comprising the following steps: Determine a coding unit to be encoded by dividing the coding tree unit in the picture in a tree structure; encoding a prediction syntax for the coding unit, the prediction syntax including a skip flag indicating whether the coding unit is to be encoded in a skip mode; After encoding the prediction syntax, encoding a transform syntax including a coding unit coded block flag cbf, wherein the coding unit cbf indicates whether all coefficients in the luminance block and two chrominance blocks constituting the coding unit are all zero; wherein the transform syntax is not encoded until the encoding of the prediction syntax is completed, and the transform syntax is not encoded when the skip flag indicates that the coding unit is encoded in the skip mode, When the skip flag does not indicate that the coding unit is encoded in the skip mode, encoding the transform syntax includes: When the prediction type of the coding unit is inter-frame prediction and is not merge mode, the coding unit cbf is encoded, and In which, when the prediction type of the coding unit is intra-frame prediction or the merge mode, the coding unit cbf is not encoded so that the video decoding device infers that the coding unit cbf is a value of 1, and the value 1 indicates that at least part of the luminance block and the two chrominance blocks have non-zero coefficients.

9. A method for providing video data to a video decoding device, the method comprising the following steps: encoding the video data into a bitstream; as well as sending the bitstream to the video decoding device, The step of encoding the video data includes: Determine a coding unit to be encoded by dividing the coding tree unit in the picture in a tree structure; encoding a prediction syntax for the coding unit, the prediction syntax including a skip flag indicating whether the coding unit is encoded in a skip mode; and After encoding the prediction syntax, encoding a transform syntax including a coding unit coded block flag cbf, wherein the coding unit cbf indicates whether all coefficients in the luminance block and two chrominance blocks constituting the coding unit are all zero; wherein the transform syntax is not encoded until the encoding of the prediction syntax is completed, and the transform syntax is not encoded when the skip flag indicates that the coding unit is encoded in the skip mode, When the skip flag does not indicate that the coding unit is encoded in the skip mode, encoding the transform syntax includes: When the prediction type of the coding unit is inter-frame prediction and is not merge mode, the coding unit cbf is encoded, and In which, when the prediction type of the coding unit is intra-frame prediction or the merge mode, the coding unit cbf is not encoded so that the video decoding device infers that the coding unit cbf is a value of 1, and the value 1 indicates that at least part of the luminance block and the two chrominance blocks have non-zero coefficients.

Citation Information

Patent Citations

  • Methods and apparatus for encoding or decoding images

    CN111869219B

  • Residual colour transform signalled at sequence level for specific coding modes

    US20160100175A1

  • Method and apparatus for the signaling of lossless video coding

    US20170180737A1