METHODS FOR DECODING VIDEO SIGNALS, METHODS FOR ENCODING VIDEO SIGNALS, AND STORAGE MEDIA READABLE BY DECODERS.
Patent Information
- Application Number
- VN1202606558
- Authority / Receiving Office
- VN · VN
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2017-01-16
- Filing Date
- 2017-12-27
- Publication Date
- 2026-09-15
AI Technical Summary
Current video compression technologies face challenges in efficiently processing next-generation video content with high spatial resolution and frame rates, leading to increased memory storage and processing demands, necessitating improved coding tools for efficient transformation and skip signaling.
The method involves signaling flags to determine whether to apply transformations and parsing these flags in a compression structure without distinction between coding and transform units, optimizing conditions for transformation and skip signaling to reduce redundant syntax coding and improve compression efficiency.
This approach reduces signaling bits and enhances compression performance while maintaining video quality, addressing the inefficiencies in existing technologies for high-resolution video processing.
Smart Images

Figure VN1202606558_0
Abstract
Description
Image processing method and apparatus for the same
[0001] The present invention relates to a method and apparatus for encoding / decoding a video signal, and more specifically, to a method for encoding / decoding a video signal that improves syntax coding related to conversion, and an apparatus that supports the same.
[0002] Compression encoding refers to a series of signal processing techniques used to transmit digitized information over communication lines or store it in a format suitable for storage media. Media such as video, images, and audio can be the subject of compression encoding; specifically, the technology of performing compression encoding on video is called video image compression.
[0003] Next-generation video content will be characterized by high spatial resolution, high frame rates, and high dimensionality of scene representation. Processing such content will result in a massive increase in memory storage, memory access rates, and processing power.
[0004] Therefore, it is necessary to design coding tools to process next-generation video content more efficiently.
[0005] The objective of the present invention is to propose a method for effectively signaling a flag determining whether to apply a transformation and an index determining the type of transformation (or transformation kernel) in order to solve the above problems.
[0006] In addition, the object of the present invention proposes a method for effectively signaling a flag determining whether to apply a primary transformation and a flag determining whether to skip a transform.
[0007] In addition, the object of the present invention is to propose a method for referencing a context when performing entropy coding for a flag that determines whether to apply a first transformation.
[0008] In addition, the objective of the present invention is to propose a method for determining whether to transmit (or parse) a conversion skip flag based on a primary conversion flag value in a compression structure in which there is no distinction between a coding unit and a conversion unit.
[0009] The technical problems to be solved by the present invention are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which the present invention belongs from the description below.
[0010] One aspect of the present invention may include a method for decoding a video signal, comprising: generating a residual block of a current block by performing entropy decoding on the video signal; parsing a transform skip flag indicating whether a transform skip is applied to the current block when the size of the current block is smaller than a predetermined first size; determining whether to parse a primary transform flag indicating whether a primary transform is applied to the current block; parsing the primary transform flag when it is determined to parse the primary transform flag; and generating a primary inverse transformed block of the current block by performing a primary inverse transform on the residual block when the primary transform flag indicates that a primary transform is applied to the current block.
[0011] Preferably, the step of determining whether to parse the primary conversion flag may be determined by parsing the primary conversion flag when the value of the conversion skip flag is 0.
[0012] Preferably, the step of determining whether to parse the primary conversion flag may be determined by parsing the primary conversion flag when the size of the current block is smaller than a predetermined second size and the value of the conversion skip flag is 0.
[0013] Preferably, the step of determining whether to parse the primary conversion flag can be determined by parsing the primary conversion flag when the current block is a luminance (luma) block, the size of the current block is smaller than a predetermined second size, and the value of the conversion skip flag is 0.
[0014] Preferably, the step of parsing the conversion skip flag includes a step of checking whether there is a non-zero conversion coefficient in the current block, and if, as a result of the check, there is a non-zero conversion coefficient in the current block, the conversion skip flag can be parsed.
[0015] Preferably, the primary transformation flag can be entropy decoded by referring to a context determined by the depth of the current block, the size of the current block, or the number of pixels within the current block in a QTBT (QuadTree plus BinaryTree) block partitioning structure.
[0016] Another aspect of the present invention is a method for decoding a video signal, comprising: generating a residual block of a current block by performing entropy decoding on the video signal; parsing a primary transform flag indicating whether a primary transform is applied to the current block; checking whether the current block satisfies a predetermined specific condition; if the specific condition is satisfied as a result of the check, parsing a transform skip flag indicating whether a transform skip is applied to the current block; and if the transform skip flag indicates that a transform skip is not applied to the current block, generating a primary inverse transformed block of the current block by performing a primary inverse transform on the residual block.
[0017] Preferably, the specific condition may include whether the value of the primary conversion flag is 0 and whether the size of the current block is smaller than or equal to the maximum size to which the conversion skip is applied.
[0018] Preferably, the maximum size to which the transformation skip is applied can be determined according to the slice of the current block.
[0019] Preferably, the specific condition may further include whether the current block is a chroma component.
[0020] Preferably, the specific condition may further include whether the slice of the current block is a B-slice.
[0021] Preferably, the specific condition may further include whether the size of the current block or the number of pixels of the current block falls within a specific range.
[0022] Another aspect of the present invention may include, in an apparatus for decoding a video signal, a residual block generation unit that generates a residual block of a current block by performing entropy decoding on the video signal; a primary transform flag parsing unit that parses a primary transform flag indicating whether a primary transform is applied to the current block; a condition checking unit that checks whether the current block satisfies a predetermined specific condition; a transform skip flag parsing unit that parses a transform skip flag indicating whether a transform skip is applied to the current block when the specific condition is satisfied as a result of the check; and an inverse transform block generation unit that generates a primary inverse transformed transform block of the current block by performing a primary inverse transform on the residual block when the transform skip flag indicates that a transform skip is not applied to the current block.
[0023] According to an embodiment of the present invention, by optimizing the conditions for transmitting a flag determining whether to apply a conversion and an index determining the type of conversion, signaling bits can be reduced and compression performance improved.
[0024] In addition, according to an embodiment of the present invention, by effectively signaling primary conversion and conversion skip, redundant syntax coding can be improved, and compression efficiency can be improved while maintaining the quality of the compressed video.
[0025] The effects obtainable from the present invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art from the description below.
[0026] The accompanying drawings, which are included as part of the detailed description to aid in understanding the present invention, provide embodiments of the present invention and explain the technical features of the present invention together with the detailed description.
[0027] FIG. 1 shows a schematic block diagram of an encoder in which encoding of a still image or video signal is performed, as an embodiment to which the present invention is applied.
[0028] FIG. 2 shows a schematic block diagram of a decoder in which encoding of a still image or video signal is performed, as an embodiment to which the present invention is applied.
[0029] FIG. 3 is a diagram illustrating the segmented structure of a coding unit that can be applied to the present invention.
[0030] FIG. 4 is a drawing for explaining a prediction unit that can be applied to the present invention.
[0031] FIG. 5 is a diagram illustrating a method for determining a transform kernel according to an in-frame prediction mode, as an embodiment to which the present invention can be applied.
[0032] FIG. 6 is a diagram illustrating the conditions for parsing the AMT flag as an embodiment to which the present invention is applied.
[0033] FIG. 7 is a diagram illustrating the conditions for parsing the AMT flag as an embodiment to which the present invention is applied.
[0034] FIG. 8 is a flowchart illustrating a decoding method for a primary conversion flag and a conversion skip flag as an embodiment to which the present invention is applied.
[0035] FIG. 9 is an embodiment to which the present invention is applied, and is a table illustrating whether a component-specific conversion skip flag is transmitted depending on whether a primary conversion is applied.
[0036] FIG. 10 is an embodiment to which the present invention is applied, and is a table illustrating whether a component-specific conversion skip flag is transmitted depending on whether a primary conversion is applied.
[0037] FIG. 11 is a diagram illustrating a method for decoding a video signal according to an embodiment of the present invention.
[0038] FIG. 12 is a diagram illustrating a method for decoding a video signal according to an embodiment of the present invention.
[0039] FIG. 13 is a drawing illustrating a video signal decoding device according to one embodiment of the present invention.
[0040] Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. The detailed description disclosed below, together with the accompanying drawings, is intended to describe exemplary embodiments of the present invention and is not intended to represent the only embodiment in which the present invention may be practiced. The following detailed description includes specific details to provide a complete understanding of the present invention. However, those skilled in the art will know that the present invention may be practiced without such specific details.
[0041] In some cases, to avoid obscuring the concept of the present invention, known structures and devices may be omitted or illustrated in the form of a block diagram focusing on the core functions of each structure and device.
[0042] In addition, the terms used in this invention have been selected to be as widely used as possible, but in specific cases, terms arbitrarily selected by the applicant are used for explanation. In such cases, the meaning is clearly stated in the detailed description of the relevant part, so it should be noted that the invention should not be interpreted simply by its name alone, but should be interpreted by grasping the meaning of the term.
[0043] Specific terms used in the following description are provided to aid in understanding the present invention, and the use of such specific terms may be modified in other forms without departing from the technical spirit of the present invention. For example, terms such as signal, data, sample, picture, frame, and block may be appropriately substituted and interpreted during each coding process.
[0044] In the present specification, the term "processing unit" refers to a unit in which encoding / decoding processing steps, such as prediction, transformation, and / or quantization, are performed. For convenience of explanation, the processing unit may also be referred to as a "processing block" or "block."
[0045] The processing unit can be interpreted to include units for the luminance (luma) component and units for the chroma component. For example, the processing unit may correspond to a Coding Tree Unit (CTU), Coding Unit (CU), Prediction Unit (PU), or Transform Unit (TU).
[0046] Additionally, the processing unit may be interpreted as a unit for the luminance (luma) component or a unit for the chroma component. For example, the processing unit may correspond to a Coding Tree Block (CTB), Coding Block (CB), Prediction Block (PU), or Transform Block (TB) for the luminance (luma) component. Alternatively, it may correspond to a Coding Tree Block (CTB), Coding Block (CB), Prediction Block (PU), or Transform Block (TB) for the chroma component. Furthermore, without being limited thereto, the processing unit may also be interpreted to include both the unit for the luminance (luma) component and the unit for the chroma component.
[0047] In addition, the processing unit is not necessarily limited to a square block and may be configured in the shape of a polygon with three or more vertices.
[0048] Additionally, in the present specification, pixels or pixels, etc. are collectively referred to as samples. Furthermore, using samples may mean using pixel values or pixel values, etc.
[0049] FIG. 1 shows a schematic block diagram of an encoder in which encoding of a still image or video signal is performed, as an embodiment to which the present invention is applied.
[0050] Referring to FIG. 1, the encoder (100) may be configured to include an image segmentation unit (110), a subtractor (115), a conversion unit (120), a quantization unit (130), an inverse quantization unit (140), an inverse conversion unit (150), a filtering unit (160), a decoded picture buffer (DPB: Decoded Picture Buffer) (170), a prediction unit (180), and an entropy encoding unit (190). Additionally, the prediction unit (180) may be configured to include an inter-prediction unit (181) and an intra-prediction unit (182).
[0051] The video splitting unit (110) splits the input video signal (or picture, frame) input to the encoder (100) into one or more processing units.
[0052] The subtractor (115) subtracts the prediction signal (or prediction block) output from the prediction unit (180) (i.e., the inter-prediction unit (181) or the intra-prediction unit (182)) from the input image signal to generate a residual signal (or residual block). The generated residual signal (or residual block) is transmitted to the conversion unit (120).
[0053] The transformation unit (120) generates transform coefficients by applying a transformation technique (e.g., Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Graph-Based Transform (GBT), Karhunen-Loeve Transform (KLT), etc.) to a difference signal (or difference block). At this time, the transformation unit (120) can generate transform coefficients by performing a transformation using a transformation technique determined according to the prediction mode applied to the difference block and the size of the difference block.
[0054] The quantization unit (130) quantizes the conversion coefficients and transmits them to the entropy encoding unit (190), and the entropy encoding unit (190) entropizes the quantized signal and outputs it as a bit stream.
[0055] Meanwhile, the quantized signal output from the quantization unit (130) can be used to generate a prediction signal. For example, the quantized signal can be restored by applying inverse quantization and inverse transformation through the inverse quantization unit (140) and inverse transformation unit (150) within the loop to the difference signal. A reconstructed signal can be generated by adding the restored difference signal to the prediction signal output from the inter prediction unit (181) or the intra prediction unit (182).
[0056] Meanwhile, during the compression process described above, degradation where block boundaries become visible can occur because adjacent blocks are quantized by different quantization parameters. This phenomenon is called blocking artifacts, and it is one of the important factors in evaluating image quality. To reduce this degradation, a filtering process can be performed. Through this filtering process, image quality can be improved by eliminating blocking artifacts and simultaneously reducing errors in the current picture.
[0057] The filtering unit (160) applies filtering to the restored signal and outputs it to a playback device or transmits it to a decoding picture buffer (170). The filtered signal transmitted to the decoding picture buffer (170) can be used as a reference picture in the inter-prediction unit (181). In this way, by using the filtered picture as a reference picture in the inter-frame prediction mode, not only the image quality but also the encoding efficiency can be improved.
[0058] The decoding picture buffer (170) can store the filtered picture to be used as a reference picture in the inter-prediction unit (181).
[0059] The inter prediction unit (181) performs temporal prediction and / or spatial prediction to eliminate temporal redundancy and / or spatial redundancy by referring to a reconstructed picture. Here, since the reference picture used to perform the prediction is a converted signal that has undergone block-unit quantization and dequantization during encoding / decoding at the previous time, blocking artifacts or ringing artifacts may exist.
[0060] Accordingly, the inter prediction unit (181) can interpolate signals between pixels at the sub-pixel level by applying a low-pass filter to resolve performance degradation caused by discontinuity or quantization of these signals. Here, a sub-pixel refers to a virtual pixel generated by applying an interpolation filter, and an integer pixel refers to an actual pixel existing in the restored picture. As an interpolation method, linear interpolation, bi-linear interpolation, a Wiener filter, etc. may be applied.
[0061] An interpolation filter can be applied to a reconstructed picture to improve the accuracy of the prediction. For example, the inter-prediction unit (181) can generate interpolated pixels by applying an interpolation filter to integer pixels, and perform a prediction using an interpolated block composed of interpolated pixels as a prediction block.
[0062] The intra prediction unit (182) predicts the current block by referring to samples surrounding the block currently intended for encoding. The intra prediction unit (182) may perform the following process to perform intra prediction. First, reference samples necessary to generate a prediction signal may be prepared. Then, a prediction signal may be generated using the prepared reference samples. Additionally, the prediction mode is encoded. At this time, the reference samples may be prepared through reference sample padding and / or reference sample filtering. Since the reference samples have undergone the prediction and restoration process, quantization errors may exist. Therefore, to reduce these errors, a reference sample filtering process may be performed for each prediction mode used in intra prediction.
[0063] The prediction signal (or prediction block) generated through the inter prediction unit (181) or the intra prediction unit (182) may be used to generate a restoration signal (or restoration block) or to generate a difference signal (or difference block).
[0064] FIG. 2 shows a schematic block diagram of a decoder in which encoding of a still image or video signal is performed, as an embodiment to which the present invention is applied.
[0065] Referring to FIG. 2, the decoder (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transform unit (230), an adder (235), a filtering unit (240), a decoded picture buffer (DPB: Decoded Picture Buffer Unit) (250), and a prediction unit (260). Additionally, the prediction unit (260) may be configured to include an inter prediction unit (261) and an intra prediction unit (262).
[0066] And, the reconstructed video signal output through the decoder (200) can be played back through a playback device.
[0067] The decoder (200) receives a signal (i.e., a bit stream) output from the encoder (100) of FIG. 1, and the received signal is entropy decoded through the entropy decoding unit (210).
[0068] In the inverse quantization unit (220), transform coefficients are obtained from the entropy-decoded signal using quantization step size information.
[0069] In the inverse transformation unit (230), the transformation coefficients are inversely transformed by applying an inverse transformation technique to obtain a residual signal (or residual block).
[0070] The adder (235) generates a reconstructed signal (or reconstructed block) by adding the acquired difference signal (or difference block) to the prediction signal (or prediction block) output from the prediction unit (260) (i.e., the inter prediction unit (261) or the intra prediction unit (262)).
[0071] The filtering unit (240) applies filtering to the reconstructed signal (or reconstructed block) and outputs it to a playback device or transmits it to the decoding picture buffer unit (250). The filtered signal transmitted to the decoding picture buffer unit (250) can be used as a reference picture in the inter prediction unit (261).
[0072] In this specification, the embodiments described in the filtering unit (160), inter prediction unit (181), and intra prediction unit (182) of the encoder (100) may be similarly applied to the filtering unit (240), inter prediction unit (261), and intra prediction unit (262) of the decoder, respectively.
[0073]
[0074] Processing unit partitioning structure
[0075] Generally, still image or video compression technologies (e.g., HEVC) utilize block-based image compression methods. Block-based image compression is a method that processes images by dividing them into specific blocks, which can reduce memory usage and computational load.
[0076] FIG. 3 is a diagram illustrating the segmented structure of a coding unit that can be applied to the present invention.
[0077] The encoder divides a single image (or picture) into square-shaped Coding Tree Units (CTUs). Then, it sequentially encodes one CTU at a time according to the raster scan order.
[0078] In HEVC, the size of the CTU can be set to any one of 64×64, 32×32, or 16×16. The encoder can select and use the size of the CTU depending on the resolution or characteristics of the input image. The CTU includes a Coding Tree Block (CTB) for the luminance (luma) component and two corresponding CTBs for the chroma components.
[0079] A single CTU can be divided into a quad-tree structure. That is, a single CTU can be divided into four units that have a square shape, half horizontal size, and half vertical size to create Coding Units (CUs). This division into a quad-tree structure can be performed recursively. That is, CUs are hierarchically divided from a single CTU into a quad-tree structure.
[0080] A CU refers to the basic unit of coding where processing of an input image, such as intra / inter prediction, is performed. A CU includes a Coding Block (CB) for the luminance component and two corresponding CBs for the chroma components. In HEVC, the size of a CU can be set to any one of 64×64, 32×32, 16×16, or 8×8.
[0081] Referring to Fig. 3, the root node of the quad-tree is associated with the CTU. The quad-tree is divided until it reaches a leaf node, and the leaf node corresponds to the CU.
[0082] To look more specifically, the CTU corresponds to the root node and has the smallest depth value (i.e., depth=0). Depending on the characteristics of the input image, the CTU may not be segmented, in which case the CTU corresponds to the CU.
[0083] A CTU can be partitioned into a quad tree, resulting in the generation of child nodes with a depth of 1. The child nodes with a depth of 1 that are no longer partitioned (i.e., leaf nodes) correspond to CUs. For example, CU(a), CU(b), and CU(j) corresponding to nodes a, b, and j in Fig. 3(b) have been partitioned once from the CTU and have a depth of 1.
[0084] At least one of the nodes with a depth of 1 can be further divided into a quad tree, resulting in the generation of sub-nodes with a depth of 1 (i.e., depth=2). Then, the nodes that are no longer divided from the sub-nodes with a depth of 2 (i.e., leaf nodes) correspond to CUs. For example, CU(c), CU(h), and CU(i) corresponding to nodes c, h, and i in Fig. 3(b) were divided twice from the CTU and have a depth of 2.
[0085] Additionally, at least one of the nodes with a depth of 2 can be further divided into a quadtree form, resulting in the generation of sub-nodes with a depth of 3 (i.e., depth=3). Furthermore, the nodes that are no longer divided from the sub-nodes with a depth of 3 (i.e., leaf nodes) correspond to CUs. For example, CU(d), CU(e), CU(f), and CU(g) corresponding to nodes d, e, f, and g in Fig. 3(b) were divided 3 times in the CTU and have a depth of 3.
[0086] In an encoder, the maximum or minimum size of a CU can be determined based on the characteristics of the video image (e.g., resolution) or by considering the efficiency of coding. In addition, information regarding this or information that can be derived may be included in the bitstream. A CU with the maximum size may be referred to as the Largest Coding Unit (LCU), and a CU with the minimum size may be referred to as the Smallest Coding Unit (SCU).
[0087] Additionally, a CU having a tree structure can be hierarchically divided with predetermined maximum depth information (or maximum level information). Each divided CU can have depth information. Since the depth information indicates the number and / or degree of division of the CU, it may also include information regarding the size of the CU.
[0088] Since the LCU is partitioned into a quad tree, the size of the SCU can be calculated using the size and maximum depth information of the LCU. Conversely, the size of the LCU can be calculated using the size of the SCU and the maximum depth information of the tree.
[0089] For a single CU, information indicating whether the CU is split (e.g., a split CU flag (split_cu_flag)) may be passed to the decoder. This splitting information is included in all CUs except the SCU. For example, if the value of the splitting flag is '1', the CU is divided into four CUs, and if the value of the splitting flag is '0', the CU is not divided further and processing can be performed on the CU.
[0090] As described above, a CU is the basic unit of coding where intra-prediction or inter-prediction is performed. HEVC divides the CU into Prediction Units (PU) to code the input image more effectively.
[0091] A PU is the basic unit for generating prediction blocks, and even within a single CU, different prediction blocks can be generated at the PU level. However, PUs belonging to a single CU do not use a mixture of intra prediction and inter prediction, and PUs belonging to a single CU are coded using the same prediction method (i.e., intra prediction or inter prediction).
[0092] The PU is not divided into a quad-tree structure, but is divided once into a predetermined form within a single CU. This is explained with reference to the diagram below.
[0093] FIG. 4 is a drawing for explaining a prediction unit that can be applied to the present invention.
[0094] PU is divided differently depending on whether intra prediction mode or inter prediction mode is used as the coding mode of the CU to which the PU belongs.
[0095] FIG. 4(a) illustrates a PU when an intra prediction mode is used, and FIG. 4(b) illustrates a PU when an inter prediction mode is used.
[0096] [This text appears to be a separate, unrelated sentence and likely an advertisement for a specific event.]
[0097] Here, when divided into PUs of the form 2N×2N, it means that only one PU exists within one CU.
[0098] On the other hand, when divided into N×N PUs, one CU is divided into four PUs, and different prediction blocks are generated for each PU unit. However, this division of PUs can be performed only when the size of the CB for the luminance component of the CU is the minimum size (i.e., when the CU is an SCU).
[0099] Referring to Fig. 4(b), assuming the size of one CU is 2N×2N (N=4, 8, 16, 32), one CU can be divided into 8 types of PU (i.e., 2N×2N, N×N, 2N×N, N×2N, nL×2N, nR×2N, 2N×nU, 2N×nD).
[0100] Similar to intra prediction, N×N PU partitioning can be performed only when the size of the CB for the luminance component of the CU is the minimum size (i.e., when the CU is an SCU).
[0101] Inter prediction supports PU division in the form of 2N×N divided horizontally and N×2N divided vertically.
[0102] In addition, it supports PU partitions in the form of Asymmetric Motion Partition (AMP), such as nL×2N, nR×2N, 2N×nU, and 2N×nD. Here, 'n' represents 1 / 4 of 2N. However, AMP cannot be used if the CU to which the PU belongs is the smallest CU.
[0103] To efficiently encode input images within a single CTU, the optimal partitioning structure of the Coding Unit (CU), Prediction Unit (PU), and Transform Unit (TU) can be determined based on the minimum Rate-Distortion value through the following process. For example, when examining the optimal CU partitioning process within a 64×64 CTU, the Rate-Distortion cost can be calculated by going through the partitioning process from a 64×64 CU to an 8×8 CU. The specific process is as follows.
[0104] 1) For a 64×64 size CU, determine the optimal partitioning structure of PU and TU that generates the minimum rate-distortion value by performing inter / intra prediction, transform / quantization, inverse quantization / inverse transform, and entropy encoding.
[0105] 2) Divide the 64×64 CU into four 32×32 CUs and determine the optimal split structure of PU and TU that generates the minimum rate-distortion value for each 32×32 CU.
[0106] 3) Divide the 32×32 CU into four 16×16 CUs, and determine the optimal split structure of PU and TU that generates the minimum rate-distortion value for each 16×16 CU.
[0107] 4) Divide the 16×16 CU into four 8×8 CUs, and determine the optimal split structure of PU and TU that generates the minimum rate-distortion value for each 8×8 CU.
[0108] 5) Determine the optimal CU partitioning structure within the 16×16 block by comparing the rate-distortion value of the 16×16 CU calculated in process 3) above with the sum of the rate-distortion values of the four 8×8 CUs calculated in process 4) above. Perform this process identically for the remaining three 16×16 CUs.
[0109] 6) Determine the optimal CU partitioning structure within the 32×32 block by comparing the sum of the rate-distortion values of the 32×32 CU calculated in process 2) above with the sum of the rate-distortion values of the four 16×16 CUs obtained in process 5) above. Perform this process identically for the remaining three 32×32 CUs.
[0110] 7) Finally, the rate-distortion value of the 64×64 CU calculated in process 1) above is compared with the sum of the rate-distortion values of the four 32×32 CUs obtained in process 6) above to determine the optimal CU partitioning structure within the 64×64 block.
[0111] In intra-prediction mode, a prediction mode is selected in PU units, and prediction and reconstruction are performed in actual TU units for the selected prediction mode.
[0112] A TU represents the basic unit where actual prediction and reconstruction are performed. A TU includes a Transform Block (TB) for the luminance (luma) component and two corresponding TBs for the chroma components.
[0113] Just as in the example in Figure 3 above, where a CTU is divided into a quad-tree structure to create a CU, a TU is hierarchically divided into a quad-tree structure from a single CU to be coded.
[0114] Since TUs are partitioned into a quad-tree structure, TUs partitioned from CUs can be further partitioned into smaller sub-TUs. In HEVC, the size of a TU can be set to any one of 32×32, 16×16, 8×8, or 4×4.
[0115] Referring again to Fig. 3, it is assumed that the root node of the quad-tree is associated with CU. The quad-tree is divided until a leaf node is reached, and the leaf node corresponds to TU.
[0116] To look more specifically, the CU corresponds to the root node and has the smallest depth value (i.e., depth=0). Depending on the characteristics of the input image, the CU may not be segmented, in which case the CU corresponds to the TU.
[0117] A CU can be partitioned into a quad tree, resulting in the generation of child nodes with a depth of 1. The child nodes with a depth of 1 that are no longer partitioned (i.e., leaf nodes) correspond to TUs. For example, TU(a), TU(b), and TU(j), corresponding to nodes a, b, and j in Fig. 3(b), have been partitioned once from the CU and have a depth of 1.
[0118] At least one of the nodes with a depth of 1 can be further divided into a quad tree, resulting in the generation of sub-nodes with a depth of 1 (i.e., depth=2). Then, the nodes that are no longer divided from the sub-nodes with a depth of 2 (i.e., leaf nodes) correspond to TUs. For example, TU(c), TU(h), and TU(i) corresponding to nodes c, h, and i in FIG. 3(b) were divided twice from CU and have a depth of 2.
[0119] Additionally, at least one of the nodes with a depth of 2 can be further divided into a quadtree, resulting in the generation of sub-nodes with a depth of 3 (i.e., depth=3). Furthermore, the nodes that are no longer divided from the sub-nodes with a depth of 3 (i.e., leaf nodes) correspond to TUs. For example, TU(d), TU(e), TU(f), and TU(g), corresponding to nodes d, e, f, and g in Fig. 3(b), were divided 3 times in CU and have a depth of 3.
[0120] A TU having a tree structure can be hierarchically divided with predetermined maximum depth information (or maximum level information). Each divided TU can have depth information. Since the depth information indicates the number and / or degree of division of the TU, it may also include information regarding the size of the TU.
[0121] For a single TU, information indicating whether the TU is split (e.g., the split TU flag (split_transform_flag)) may be passed to the decoder. This splitting information is included in all TUs except for the minimum size TU. For example, if the value of the splitting flag is '1', the TU is divided into four TUs, and if the value of the splitting flag is '0', the TU is not divided further.
[0122]
[0123] Adaptive Multiple Transform (AMT)
[0124] The residual signals obtained through intra-frame prediction (or intra-prediction) may have different statistical characteristics depending on the intra-frame prediction mode. Therefore, encoders / decoders can apply various transformations for each intra-frame prediction mode, other than the general transformations used in conventional video encoding technologies such as DCT-2.
[0125] In the present invention, AMT refers to a method for adaptively determining a transform based on an intra-frame prediction or inter-frame prediction mode. AMT is not limited to this term and may be referred to as Enhanced Multiple Transform (EMT), primary transform, core transform, etc.
[0126] FIG. 5 is a diagram illustrating a method for determining a transform kernel according to an in-frame prediction mode, as an embodiment to which the present invention can be applied.
[0127] Referring to FIG. 5, the encoder / decoder can group the in-frame prediction modes into prediction mode groups containing one or more prediction modes when there are 35 (501) or 67 (502) prediction modes within the frame, and determine (or map) a transformation set to each prediction mode group. That is, different transformation sets can be applied to each prediction mode group. In this case, each transformation set can be composed of a total of four combinations of column-direction transformations and row-direction transformations. For example, in transformation set 0 (503), since DST-7 and DCT-5 can be applied to both column-direction transformations and row-direction transformations, a total of four combinations are possible.
[0128] Since a total of four combinations of transformation kernels can be applied for each prediction mode within the screen, the encoder can transmit an index (hereinafter referred to as the 'AMT index') to the decoder for selecting one of the four combinations. In addition, in addition to the transformation kernels shown in FIG. 5, cases where DCT-2 is optimal for both the row and column directions may frequently occur due to the characteristics of the residual signal. Therefore, the encoder can signal a flag (hereinafter referred to as the 'AMT flag') to the decoder indicating whether AMT is applied.
[0129] If the AMT flag is 0, the decoder can apply DCT-2 to both the row and column directions, and if the AMT flag is 1, the decoder can parse the AMT index and select (or determine) one of four combinations.
[0130] In addition, if the AMT flag is 0 and the number of transformation coefficients in the current processing block is less than 3, the decoder may apply DST-7 to both the row and column directions without applying the transformation kernels shown in FIG. 5. That is, the decoder may first parse the transformation coefficient values and, if it is confirmed that the number of transformation coefficients is less than 3, apply DST-7 to both the row and column directions without parsing the AMT index. Through this, the cost of signaling additional information related to the transformation kernel can be reduced.
[0131] In one embodiment, AMT may be applied only when the size of the current processing block is smaller than a predetermined specific size. For example, AMT may be applied only when both the width and height of the current processing block are 32 or less.
[0132] In the following description of the present invention, the focus is on cases where AMT is applied as a primary transform (or core transform), but the present invention is not limited thereto. That is, various primary transform techniques other than AMT may be used when applying the method proposed in this specification.
[0133]
[0134] In conventional video encoding technology, the transform skip flag is transmitted at the transform unit level, whereas the AMT flag is transmitted at the coding unit level. Here, the transform skip flag indicates whether to skip the corresponding block without performing a transform. However, in compression structures where there is no distinction between coding and transform units, such as the QTBT (QuadTree plus BinaryTree) block structure, if both flags are transmitted in either case, compression performance degradation due to unnecessary syntax signaling may occur.
[0135] Accordingly, in order to solve the above problems, the present invention proposes a method for effectively signaling a flag that determines whether to apply a transformation and an index that determines the type of transformation (or transformation kernel).
[0136] In addition, the present invention proposes a method for effectively signaling a flag determining whether to apply a primary transformation and a flag determining whether to skip a transform.
[0137] In addition, the present invention proposes a method of referencing a context when performing entropy coding for a flag that determines whether to apply a first transformation.
[0138] In addition, the present invention proposes a method for determining whether to transmit (or parse) a conversion skip flag based on a primary conversion flag value in a compression structure in which there is no distinction between a coding unit and a conversion unit.
[0139] In addition, the present invention proposes a method for determining whether to transmit a conversion skip flag for each component based on a primary conversion flag.
[0140] According to an embodiment of the present invention, by optimizing the conditions for transmitting a flag determining whether to apply a conversion and an index determining the type of conversion, signaling bits can be reduced and compression performance improved.
[0141] In addition, according to an embodiment of the present invention, by effectively signaling primary conversion and conversion skip, redundant signaling bits can be reduced, and compression efficiency can be improved while maintaining the quality of the compressed video.
[0142] Hereinafter, a processing block refers to a unit (or block) in which encoding / decoding processing steps, such as prediction, transformation, and / or quantization, are performed, and may be referred to as a block, processing unit, etc. for the convenience of explanation. Additionally, when used as a unit in which a transformation process is performed, the processing block may be referred to as a coding block, coding unit, transform block, transform unit, etc.
[0143]
[0144] Example 1
[0145] In an embodiment of the present invention, the encoder / decoder may limit the condition of transmitting a flag that determines whether to apply a primary transformation using a transformation skip flag.
[0146] As described above, the encoder can signal a flag (hereinafter referred to as the 'AMT flag') to the decoder indicating whether AMT is applied. However, if the AMT flag is signaled for every block as in conventional video encoding technology, bits will be consumed unnecessarily, which may lead to reduced compression performance. Therefore, the encoder can minimize the amount of bits generated by transmitting the AMT flag only under specific conditions.
[0147]
[0148] Example 1-1
[0149] In one embodiment of the present invention, the encoder may signal an AMT flag to the decoder for a block in which the transform skip flag is 0. Here, the transform skip flag indicates whether to skip without performing a transformation for the corresponding block.
[0150] If the transform skip flag is 1, the residual signal transmitted from the encoder can be scaled YUV data rather than quantization levels. In this case, since no transformation is performed, the encoder does not need to additionally signal the AMT flag to the decoder to indicate whether to apply AMT.
[0151] Therefore, the encoder can reduce the amount of unnecessary additional information transmitted by not transmitting the AMT flag when the transform skip flag is 1. The method proposed in this embodiment can be applied not only to AMT but also to other primary transformation signaling methods. That is, when the transform skip flag value indicates 1, the encoder may not transmit a flag indicating whether to apply the primary transformation to the decoder.
[0152] FIG. 6 is a diagram illustrating the conditions for parsing the AMT flag as an embodiment to which the present invention is applied.
[0153] In this embodiment, the explanation focuses on the decoder for convenience of explanation; however, the method for parsing the AMT flag under specific conditions proposed in this embodiment can be applied equally to both the encoder and the decoder.
[0154] Referring to FIG. 6, the decoder parses a cbf (coded bit flag) indicating whether there is a non-zero coefficient in the residual block of the current processing block (S601).
[0155] The decoder determines whether the current processing block satisfies the first condition (S602), and if the current processing block satisfies the first condition, parses a conversion skip flag indicating whether a conversion skip is applied to the current processing block (S603). That is, the decoder can parse the conversion skip flag depending on whether the current processing block satisfies a specific condition.
[0156] Here, whether the first condition is satisfied can be determined based on the size of the current processing block. That is, the first condition may be satisfied if the size of the current processing block is smaller than or equal to a predetermined size. For example, the first condition may include whether the width and height of the current block are less than or equal to 4.
[0157] The decoder determines whether the current processing block satisfies the second condition (S604), and if the current processing block satisfies the second condition, parses an AMT flag indicating whether AMT is applied (S605). That is, the decoder can parse the AMT flag only when the current processing block satisfies a specific condition. Here, the second condition may include whether the transform skip flag value parsed in step S603 is 0. Additionally, the second condition may include whether the cbf value parsed in step S601 is 1 and / or whether the width and height of the current processing block are both less than or equal to 64.
[0158] Afterwards, the decoder parses the conversion coefficients of the current processing block (S606).
[0159]
[0160] Example 1-2
[0161] In one embodiment of the present invention, a method is proposed for determining whether to transmit a primary conversion flag based on a conversion skip flag when a conversion skip flag is transmitted for each component.
[0162] The encoder can transmit transform skip flags to the decoder for each luminance component (or Y component) and chrominance component (Cb, Cr components). Therefore, since the transform skip flag can be transmitted for each component, the application of the transform skip may be determined differently for each component. In this case, during the process of signaling the flag indicating whether the primary transformation is applied, the encoder may signal the decoder only when the transform skip is not applied to the component to which the primary transformation is actually applied.
[0163] For example, since AMT can be applied only to the luminance component, the encoder can signal the AMT flag only when the transform skip is not applied to the luminance component. On the other hand, for the chrominance components (i.e., Cb and Cr components), the encoder may not signal the AMT flag regardless of whether the transform skip is applied.
[0164] FIG. 7 is a diagram illustrating the conditions for parsing the AMT flag as an embodiment to which the present invention is applied.
[0165] In this embodiment, the explanation focuses on the decoder for convenience of explanation; however, the method for parsing the AMT flag under specific conditions proposed in this embodiment can be applied equally to both the encoder and the decoder.
[0166] Referring to FIG. 7, the decoder parses a cbf (coded bit flag) indicating whether there is a non-zero coefficient in the residual block of the current processing block (S701).
[0167] The decoder determines whether the current processing block satisfies the first condition (S702), and if the current processing block satisfies the first condition, parses a conversion skip flag indicating whether a conversion skip is applied to the current processing block (S703). That is, the decoder can determine whether to parse the conversion skip flag depending on whether the current processing block satisfies a specific condition.
[0168] Here, whether the first condition is satisfied can be determined based on the size of the current processing block. That is, the first condition may be satisfied if the size of the current processing block is smaller than or equal to a predetermined size. For example, the first condition may include whether the width and height of the current block are less than or equal to 4.
[0169] The decoder determines whether the current processing block satisfies a second condition (S704), and if the current processing block satisfies the second condition, parses an AMT flag indicating whether AMT is applied (S705). That is, the decoder can parse the AMT flag only when the current processing block satisfies a specific condition. Here, the second condition may include whether the current processing block corresponds to a luminance component. Additionally, the second condition may include whether the transform skip flag value parsed in step S703 is 0. Additionally, the second condition may include whether the cbf value parsed in step S701 is 1 and / or whether the width and height of the current processing block are both less than or equal to 64.
[0170] Subsequently, the decoder parses the conversion coefficients of the current processing block (S706). As described above, the method proposed in this embodiment can be applied not only to AMT but also to other primary conversion signaling methods.
[0171]
[0172] Examples 1-3
[0173] In one embodiment of the present invention, the encoder / decoder can limit the syntax coding conditions of the transform skip flag that depends on the cbf value.
[0174] Specifically, the encoder may signal a transform skip flag to the decoder indicating whether to apply a transform skip only when the cbf value is 1. In this case, the first condition used identically in FIGS. 6 and 7 described above can be expressed as follows in Equation 1.
[0175]
[0176] That is, in the previously described Figures 6 and 7, the first condition may include whether the cbf value is 1 and whether the width and height of the current processing block are less than or equal to 4.
[0177] In addition, the current processing block in the QTBT structure can have various forms (i.e., non-resistive blocks). Accordingly, in one embodiment, the transmission / parsing condition of the transform skip flag may be expressed as in the following Equation 2 or 3, taking into account various block sizes or shapes.
[0178]
[0179] Referring to Equation 2, the encoder / decoder can set specific threshold values for the width and height of the current block, respectively, and determine whether the value is greater than the set value. Here, the values M and N may be predetermined positive integer values as specific threshold values for the width and height, respectively.
[0180]
[0181] Referring to mathematical formula 3, the encoder / decoder can determine whether the value obtained by multiplying the width and height of the current processing block—that is, the number of pixels existing within the current processing block—is greater than or equal to a specific number, and determine whether to transmit or parse the conversion skip flag. Here, the value of K may be a predetermined positive integer value representing the specific number of pixels existing within the current processing block.
[0182]
[0183] Example 2
[0184] In one embodiment of the present invention, the encoder / decoder may determine (or refer to) the context (or context model) of Context-based Adaptive Binary Arithmetic Coding (CABAC) based on block partitioning structure or block size information when performing entropy encoding / decoding for a flag indicating whether a primary transformation is applied.
[0185] Specifically, when the encoder / decoder performs CABAC on a flag determining the on / off of the primary transformation, it may refer to a context determined by the partition depth of the current processing block.
[0186] For example, in the case of a QTBT partition structure, the context index can be determined using the transformation skip flag or AMT flag described in Example 1 above, as shown in the following Equation 4.
[0187]
[0188] As shown in the example of Equation 4, the context used to entropy-code the current flag can be expressed as a function of QT depth and BT depth. Here, QT depth represents the partition depth of the current processing block in a quad tree structure. The root node of the quad tree may have a QT depth value of 0. And, BT depth represents the partition depth of the current processing block in a binary tree structure. Likewise, the root node of the binary tree may have a BT depth value of 0. The root node block of the binary tree may be a leaf node block of the quad tree structure.
[0189] Statistically, it is observed that the AMT flag value has a dependency on the QT depth and the BT depth. By considering this dependency relationship of the AMT flag on the partition depth and determining the context used for entropy coding of the AMT flag, coding efficiency can be increased.
[0190] In addition, when the encoder / decoder performs CABAC on a flag that determines the on / off status of the first transformation, it may determine the context using the size information of the current processing block. For example, the encoder / decoder may determine the context based on the number of pixels in the current processing block, as shown in the example in Table 1 below, and perform entropy encoding / decoding by referring to the determined context.
[0191]
[0192] In this embodiment, the QTBT structure was described primarily, but it is not limited thereto and can be applied equally to various block partitioning structures.
[0193]
[0194] Example 3
[0195] In one embodiment of the present invention, the encoder / decoder can determine whether to signal a conversion skip flag based on a primary conversion flag value indicating whether to apply a primary conversion. In particular, in one embodiment, the encoder / decoder can determine whether to signal a conversion skip flag according to the primary conversion flag in a partitioned structure where there is no distinction between a coding unit and a conversion unit, such as a QTBT structure.
[0196] Specifically, the encoder may not send the transform skip flag to the decoder when the primary transform flag value is 1 in the QTBT structure. This eliminates unnecessary syntax signaling between the flag controlling the on / off of the primary transform and the flag preventing the transformation from being performed.
[0197] FIG. 8 is a flowchart illustrating a decoding method for a primary conversion flag and a conversion skip flag as an embodiment to which the present invention is applied.
[0198] The decoder parses cbf, which indicates whether there is a non-zero coefficient in the residual block of the current processing block (S801).
[0199] If the cbf value parsed in step S801 is 1, the decoder parses a primary conversion flag indicating whether a primary conversion is applied (S802). Then, the decoder determines whether the current processing block satisfies the first condition (S803).
[0200] If, as determined in step S803, the current processing block satisfies the first condition, the transformation skip flag is parsed (S804). Here, the first condition may include whether the current processing block is smaller than or equal to a predetermined size. Alternatively, the first condition may include whether the product of the width and height of the current processing block is smaller than or equal to a predetermined value. Furthermore, the predetermined size or the predetermined value may be set differently for each slice. For example, the predetermined size or the predetermined value may be set differently for the case of an I-slice and for the case of a non-I-slice, respectively.
[0201] According to the first condition above, there is a problem in that the conversion skip flag is unnecessarily signaled even when a primary conversion is applied to the current processing block. Therefore, to solve this problem, the first condition above may include whether the primary conversion flag value parsed in step S802 is not 1.
[0202] That is, the encoder can parse the transform skip flag if the current block size is less than or equal to a predetermined size and the received primary transform flag value is not 1. If the current block size is greater than a predetermined size or the received primary transform flag value is 1, the decoder may not parse the transform skip flag.
[0203]
[0204] Example 3-1
[0205] In one embodiment of the present invention, the encoder / decoder may determine whether to signal a conversion skip flag based on a primary conversion flag for a luminance component. When a primary conversion is applied, the encoder / decoder may not transmit the conversion skip flag of the luminance block, but may transmit the conversion skip flag of the corresponding chrominance block.
[0206] FIG. 9 is an embodiment to which the present invention is applied, and is a table illustrating whether a component-specific conversion skip flag is transmitted depending on whether a primary conversion is applied.
[0207] Referring to FIG. 9, to avoid redundancy in syntax coding, for the luminance component, the transform skip flag is not signaled if the primary transform flag is not 0. In other words, when the transform flag indicating whether the primary transform is applied is 0, the encoder can signal the transform skip flag to the decoder for all components. When the primary transform flag is 1, the encoder signals the transform skip flag to the decoder for the chrominance component, but may not signal the transform skip flag for the luminance component.
[0208]
[0209] Example 3-2
[0210] In one embodiment of the present invention, the encoder / decoder can determine whether to signal a conversion skip flag for all components based on a primary conversion flag.
[0211] In video encoding technologies where transform skip flags are transmitted for each component, the structures of the luminance component and the chrominance component may be independent or dependent of each other. For example, in a QTBT structure, I-slices may be structurally independent, while B-slices may be structurally dependent.
[0212] FIG. 10 is an embodiment to which the present invention is applied, and is a table illustrating whether a component-specific conversion skip flag is transmitted depending on whether a primary conversion is applied.
[0213] Referring to FIG. 10, when the structure between components is independent (e.g., in the case of an I-slice), the encoder may not signal a conversion skip flag for all components when a primary conversion is applied. This allows for a reduction in the amount of additional information transmitted and an increase in encoding efficiency.
[0214]
[0215] Example 3-3
[0216] In one embodiment of the present invention, an encoder / decoder proposes a method for determining whether to transmit a conversion skip flag for a color difference component when a primary conversion is not applied.
[0217] In the method described above, the conditions for transmitting the transform skip flag can vary. If we assume that the condition for signaling the transform skip flag is that the number of pixels in the block is 16 or less, there may be cases where the size of the chrominance component is 2x2, 2x4, 2x8, 4x2, 8x2, or 4x4.
[0218] In this case, transmitting the transform skip flag even when the block is excessively small can lead to high bit overhead. Therefore, to prevent this problem, the transform skip flag may not be transmitted if the size of the chrominance component block is smaller than a specific condition size or if the total number of pixels is smaller than a specific number.
[0219] For example, the encoder / decoder can determine whether to transmit the conversion skip flag of the chrominance component using the condition of the following mathematical formula 5.
[0220]
[0221] Referring to Equation 5, the encoder / decoder can determine whether to transmit the transform skip flag only when the number of pixels in the color difference block falls within a specific range. In Equation 5, Threshold_max represents an upper threshold, and Threshold_min represents a lower threshold. The Threshold_max and Threshold_min can be preset in the encoder and decoder.
[0222] Alternatively, for example, the encoder / decoder can determine whether to transmit the conversion skip flag of the chrominance component using the condition of the following mathematical formula 6.
[0223]
[0224] Referring to Equation 6, the encoder / decoder may determine whether to transmit the transform skip flag only when the width and height of the color difference block fall within a specific range. In Equation 6, blockSize_max represents the maximum size block (or the length of one side of the maximum size block), and blockSize_mim represents the minimum size block (or the length of one side of the minimum size block). The blockSize_max and blockSize_mim may be pre-set in the encoder and decoder.
[0225]
[0226] The embodiments described above may each be applied independently, or multiple embodiments may be used in combination.
[0227] FIG. 11 is a diagram illustrating a method for decoding a video signal according to an embodiment of the present invention.
[0228] Hereinafter, for convenience of explanation, the description of the present embodiment focuses on the decoder, but the video signal decoding method according to the present invention can be performed identically in the encoder and the decoder.
[0229] The decoder generates a residual block of the current block by performing entropy decoding on the video signal (S1101). Specifically, the decoder can generate a quantized transformation block of a two-dimensional array by entropy decoding the bit stream received from the encoder to extract quantized transformation coefficients and arranging the quantized transformation coefficients according to a predetermined scan order. The decoder can generate an inversely quantized transformation block by performing inverse quantization on the quantized transformation block.
[0230] The decoder parses a transform skip flag indicating whether a transform skip is applied to the current block when the size of the current block is smaller than a predetermined first size (S1102).
[0231] As described above, the decoder determines whether the current block satisfies the first condition, and if the current processing block satisfies the first condition, it can parse a transform skip flag. Whether the first condition is satisfied may be determined based on the size of the current processing block. That is, the first condition may be satisfied if the size of the current processing block is smaller than or equal to a predetermined size. The predetermined first size may be determined based on the width and height of the current block, or based on the number of pixels within the current block.
[0232] The decoder determines whether to parse a primary transform flag indicating whether a primary transform is applied to the current block (S1103).
[0233] For example, the primary conversion flag above may be an AMT flag indicating whether AMT is applied. If the AMT flag value is 1, a step of parsing the AMT index as described above may be added after step S1103.
[0234] As described above, the decoder may decide to parse the primary conversion flag when the value of the conversion skip flag is 0. Alternatively, it may decide to parse the primary conversion flag when the size of the current block is smaller than a predetermined second size and the value of the conversion skip flag is 0.
[0235] In addition, as described above, the encoder may signal the decoder only when the conversion skip is not applied to the component to which the actual first conversion is applied during the process of signaling a flag indicating whether the first conversion is applied. In this case, the decoder may decide to parse the first conversion flag when the current block is a luminance (luma) block, the size of the current block is smaller than a predetermined second size, and the value of the conversion skip flag is 0.
[0236] Additionally, as described above, the encoder may signal a transform skip flag to the decoder indicating whether to apply a transform skip only when the cbf value is 1. In this case, the decoder may check whether there is a non-zero transform coefficient in the current block. If, as a result of the check, there is a non-zero transform coefficient in the current block, the decoder may parse the transform skip flag.
[0237] In addition, as described above, the primary transformation flag can be entropy decoded by referring to a context determined by the depth of the current block, the size of the current block, or the number of pixels within the current block in the QTBT (QuadTree plus BinaryTree) block partitioning structure. As explained in Equation 4 above, the context used to entropy code the current flag can be expressed as a function of the QT depth and the BT depth.
[0238] If the decoder decides to parse the primary conversion flag, it parses the primary conversion flag (S1104).
[0239] Additionally, when the encoder / decoder performs CABAC on a flag determining the on / off status of the primary transformation, it may determine the context using the size information of the current processing block.
[0240] When the decoder indicates that the primary transformation flag is applied to the current block, it generates the primary inverse transformed transformation block of the current block by performing the primary inverse transformation on the residual block (S1105).
[0241] If a secondary transform is applied to the current block, the residual block may be a transformed block on which the secondary transform has been performed. In this case, the decoder may perform the secondary inverse transform before performing the primary inverse transform. For example, the secondary inverse transform may be performed using any one of the Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve transform, Graph-based Transform, or Non-Separable Secondary Transform (NSST).
[0242] FIG. 12 is a diagram illustrating a method for decoding a video signal according to an embodiment of the present invention.
[0243] The decoder generates a residual block of the current block by performing entropy decoding on the video signal (S1201). Specifically, the decoder can generate a quantized transformation block of a two-dimensional array by performing entropy decoding on the bit stream received from the encoder to extract quantized transformation coefficients and arranging the quantized transformation coefficients according to a predetermined scan order. The decoder can generate an inversely quantized transformation block by performing inverse quantization on the quantized transformation block.
[0244] The decoder parses a primary transform flag indicating whether a primary transform is applied to the current block (S1202). For example, the primary transform flag may be an AMT flag indicating whether an AMT is applied. If the AMT flag value is 1, a step of parsing an AMT index as described above may be added after step S1202.
[0245] The decoder checks whether the current block satisfies a predetermined specific condition (S1203).
[0246] As described above, the specific condition may include whether the value of the primary conversion flag is 0 and whether the size of the current block is less than or equal to the maximum size to which the conversion skip is applied. In this case, the maximum size to which the conversion skip is applied may be determined according to the slice of the current block. Alternatively, the specific condition may further include whether the current block is a chroma component. Alternatively, the specific condition may further include whether the slice of the current block is a B-slice. Alternatively, the specific condition may further include whether the size of the current block or the number of pixels of the current block falls within a specific range.
[0247] The decoder parses a transform skip flag indicating whether a transform skip is applied to the current block if the specific condition is satisfied as a result of the above check (S1204).
[0248] If the decoder indicates that the transform skip flag does not apply the transform skip to the current block, it generates the first-order inverse transformed transform block of the current block by performing a first-order inverse transform on the residual block (S1205).
[0249] If a secondary transform is applied to the current block, the residual block may be a transformed block on which the secondary transform has been performed. In this case, the decoder may perform the secondary inverse transform before performing the primary inverse transform. For example, the secondary inverse transform may be performed using any one of the Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve transform, Graph-based Transform, or Non-Separable Secondary Transform (NSST).
[0250] FIG. 13 is a drawing illustrating a video signal decoding device according to one embodiment of the present invention.
[0251] In FIG. 13, for convenience of explanation, the residual block generation unit (1301), primary conversion flag parsing unit (1302), condition checking unit (1303), conversion skip flag parsing unit (1304), and conversion block generation unit (1305) are each shown as separate blocks, but they can be implemented as a configuration included in an encoder and / or decoder.
[0252] Referring to FIG. 13, the decoding device implements the functions, processes, and / or methods proposed in FIG. 5 to FIG. 15. Specifically, the decoding device may be configured to include a residual block generation unit (1301), a primary conversion flag parsing unit (1302), a condition checking unit (1303), a conversion skip flag parsing unit (1304), and a conversion block generation unit (1305).
[0253] The residual block generation unit (1301) generates a residual block of the current block by performing entropy decoding on the video signal. Specifically, the residual block generation unit (1301) can generate a quantized transformation block of a two-dimensional array by entropy decoding a bit stream received from an encoder to extract quantized transformation coefficients and arranging the quantized transformation coefficients according to a predetermined scan order. The residual block generation unit (1301) can generate an inversely quantized transformation block by performing inverse quantization on the quantized transformation block.
[0254] The primary transform flag parsing unit (1302) parses a primary transform flag indicating whether a primary transform is applied to the current block. For example, the primary transform flag may be an AMT flag indicating whether an AMT is applied. If the AMT flag value is 1, the primary transform flag parsing unit (1302) may additionally parse an AMT index after parsing the AMT flag as described above.
[0255] The condition check unit (1303) checks whether the current block satisfies a predetermined specific condition.
[0256] As described above, the specific condition may include whether the value of the primary conversion flag is 0 and whether the size of the current block is less than or equal to the maximum size to which the conversion skip is applied. In this case, the maximum size to which the conversion skip is applied may be determined according to the slice of the current block. Alternatively, the specific condition may further include whether the current block is a chroma component. Alternatively, the specific condition may further include whether the slice of the current block is a B-slice. Alternatively, the specific condition may further include whether the size of the current block or the number of pixels of the current block falls within a specific range.
[0257] The transform skip flag parsing unit (1304) parses a transform skip flag indicating whether a transform skip is applied to the current block when the specific condition is satisfied as a result of the above verification.
[0258] The transformation block generation unit (1305) generates a transformation block that has been transformed in the first order of the current block by performing a first-order inverse transformation on the residual block when the transformation skip flag indicates that no transformation skip is applied to the current block.
[0259] If a secondary transform is applied to the current block, the residual block may be the transformed block on which the secondary transform has been performed. In this case, the decoder may perform the secondary inverse transform before performing the primary inverse transform. For example, the secondary inverse transform may be performed using any one of the Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve transform, Graph-based Transform, or Non-Separable Secondary Transform (NSST). Then, the decoder may generate the residual block by performing the primary inverse transform on the secondary inverse transformed transformed block.
[0260] The embodiments described above are combinations of the components and features of the present invention in a specific form. Each component or feature should be considered optional unless otherwise explicitly stated. Each component or feature may be implemented in a form not combined with other components or features. Additionally, it is possible to construct embodiments of the present invention by combining some components and / or features. The order of operations described in the embodiments of the present invention may be changed. Some components or features of one embodiment may be included in another embodiment, or may be replaced with corresponding components or features of another embodiment. It is obvious that embodiments may be constructed by combining claims that do not have an explicit citation relationship in the claims, or that new claims may be included by amendment after filing.
[0261] Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, one embodiment of the present invention may be implemented by one or more ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, etc.
[0262] In the case of implementation by firmware or software, an embodiment of the present invention may be implemented in the form of a module, procedure, function, etc., that performs the functions or operations described above. The software code may be stored in memory and executed by a processor. The memory may be located inside or outside the processor and may exchange data with the processor by various means already known.
[0263] It is obvious to those skilled in the art that the present invention may be embodied in other specific forms without departing from the essential features of the invention. Accordingly, the foregoing detailed description should not be interpreted restrictively in all respects but should be considered exemplary. The scope of the invention shall be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the invention are included within the scope of the invention.
[0264] The preferred embodiments of the present invention described above are disclosed for illustrative purposes only, and those skilled in the art may modify, change, substitute, or add various other embodiments within the technical scope and concept of the present invention as disclosed in the appended claims.
Claims
1. A method for decoding a video signal, A step of generating a residual block of a current block by performing entropy decoding on the above video signal; A step of parsing a transform skip flag indicating whether transform skip is applied to the current block if the size of the current block is smaller than a predetermined first size; A step of determining whether to parse a primary transform flag indicating whether a primary transform is applied to the current block; If it is determined to parse the above primary conversion flag, the step of parsing the above primary conversion flag; and A video signal decoding method comprising the step of generating a primary inverse transformed transform block of the current block by performing a primary inverse transform on the residual block when the primary transform flag indicates that a primary transform is applied to the current block.
2. In paragraph 1, The step of determining whether to parse the above primary conversion flag is: A video signal decoding method characterized in that when the value of the above conversion skip flag is 0, it is determined to parse the above primary conversion flag.
3. In paragraph 1, The step of determining whether to parse the above primary conversion flag is: A video signal decoding method characterized in that, when the size of the current block is smaller than a predetermined second size and the value of the conversion skip flag is 0, it is determined to parse the primary conversion flag.
4. In paragraph 1, The step of determining whether to parse the above primary conversion flag is: A video signal decoding method, characterized in that when the current block is a luma block, the size of the current block is smaller than a predetermined second size, and the value of the conversion skip flag is 0, it is determined to parse the primary conversion flag.
5. In paragraph 1, The step of parsing the above conversion skip flag is: Including a step of checking whether a non-zero transform coefficient exists in the current block, A video signal decoding method for parsing the transform skip flag when, as a result of the above verification, a non-zero transform coefficient exists in the current block.
6. In paragraph 1, The above primary transformation flag is a video signal decoding method in which entropy decoding is performed by referring to a context determined according to the depth of the current block, the size of the current block, or the number of pixels in the current block in a QTBT (QuadTree plus BinaryTree) block division structure.
7. A method for decoding a video signal, A step of generating a residual block of a current block by performing entropy decoding on the above video signal; A step of parsing a primary transform flag indicating whether a primary transform is applied to the current block; A step of checking whether the current block satisfies a predetermined specific condition; As a result of the above verification, if the specific condition is satisfied, a step of parsing a transform skip flag indicating whether transform skip is applied to the current block; and A video signal decoding method comprising the step of generating a primary inverse transformed transform block of the current block by performing a primary inverse transform on the residual block when the above transform skip flag indicates that the transform skip is not applied to the current block.
8. In paragraph 7, A method for decoding a video signal, wherein the specific condition includes whether the value of the primary transformation flag is 0 and whether the size of the current block is less than or equal to the maximum size to which transformation skip is applied.
9. In paragraph 8, A video signal decoding method, characterized in that the maximum size to which the above transformation skip is applied is determined according to the slice of the current block.
10. In paragraph 8, A method for decoding a video signal, wherein the above specific condition further includes whether the current block is a chroma component.
11. In paragraph 8, A method for decoding a video signal, wherein the above specific condition further includes whether the slice of the current block is a B-slice.
12. In paragraph 10, A method for decoding a video signal, wherein the specific condition further includes whether the size of the current block or the number of pixels of the current block falls within a specific range.
13. In a device for decoding a video signal, A residual block generation unit that generates a residual block of a current block by performing entropy decoding on the above video signal; A primary transform flag parsing unit that parses a primary transform flag indicating whether a primary transform is applied to the current block; A condition check unit that checks whether the current block satisfies a predetermined specific condition; As a result of the above verification, if the specific condition is satisfied, a transformation skip flag parsing unit that parses a transformation skip flag indicating whether transformation skip is applied to the current block; and A video signal decoding device including an inverse transform block generation unit that generates a primary inverse transform block of the current block by performing a primary inverse transform on the residual block when the above transform skip flag indicates that the transform skip is not applied to the current block.