IMAGE CODING METHOD BASED ON TRANSFORMATION AND DEVICE THEREOF
Patent Information
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2020-07-13
- Publication Date
- 2026-06-12
AI Technical Summary
The increasing demand for high-resolution, high-quality video data poses a challenge due to the significant increase in data volume, leading to higher transmission and storage costs, necessitating more efficient video compression technologies.
A transformation-based video coding method and device that employs simplified transform matrices, either non-square with fewer columns than rows or vice versa, to enhance video coding efficiency by reducing data transmission and storage requirements through efficient residual processing and coding.
This approach improves overall image/video compression efficiency, reduces data transmission for residual processing, and concentrates non-zero transformation coefficients in low-frequency components, thereby enhancing image coding efficiency.
Smart Images

Figure MX434750B0
Abstract
Description
Image coding method and device based on transformation
[0001] The present invention relates to image coding technology, and more particularly, to an image coding method and device based on transform in an image coding system.
[0002] Demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition), is growing across various fields. As video data becomes higher in resolution and quality, the amount of information or bits transmitted increases relative to conventional video data. Therefore, transmitting video data using existing media, such as wired or wireless broadband lines, or storing it using existing storage media, increases transmission and storage costs.
[0003] Accordingly, high-efficiency image compression technology is required to effectively transmit, store, and reproduce high-resolution, high-quality image information.
[0004] The technical problem of the present invention is to provide a method and device for increasing image coding efficiency.
[0005] Another technical object of the present invention is to provide a method and device for increasing conversion efficiency.
[0006] Another technical problem of the present invention is to provide a method and device for increasing the efficiency of residual coding through transformation.
[0007] Another technical problem of the present invention is to provide an image coding method and device based on a reduced transform.
[0008] According to one embodiment of the present invention, a video decoding method performed by a decoding device is provided. The method comprises the steps of: deriving quantized transform coefficients for a target block from a bitstream; deriving transform coefficients by performing inverse quantization on the quantized transform coefficients for the target block; deriving residual samples for the target block based on a reduced inverse transform for the transform coefficients; and generating a reconstructed picture based on the residual samples for the target block and prediction samples for the target block, wherein the reduced inverse transform is performed based on a reduced inverse transform matrix, and the reduced inverse transform matrix is characterized in that it is a non-square matrix in which the number of columns is less than the number of rows.
[0009] According to another embodiment of the present invention, a video encoding method performed by an encoding device is provided. The method includes the steps of: deriving residual samples for a target block; deriving transform coefficients for the target block based on a reduced transform for the residual samples; deriving quantized transform coefficients by performing quantization based on the transform coefficients for the target block; and encoding information about the quantized transform coefficients, wherein the reduced transform is performed based on a reduced transform matrix, and the reduced transform matrix is a non-square matrix having a number of rows less than a number of columns.
[0010] According to another embodiment of the present invention, a decoding device for performing image decoding is provided. The decoding device includes an entropy decoding unit for deriving quantized transform coefficients for a target block from a bitstream, an inverse quantization unit for deriving transform coefficients by performing inverse quantization on the quantized transform coefficients for the target block, an inverse transform unit for deriving residual samples for the target block based on a simplified inverse transform for the transform coefficients, and an adding unit for generating a reconstructed picture based on the residual samples for the target block and prediction samples for the target block, wherein the simplified inverse transform is performed based on a simplified inverse transform matrix, and the simplified inverse transform matrix is characterized in that it is a non-square matrix in which the number of columns is less than the number of rows.
[0011] According to another embodiment of the present invention, an encoding device for performing image encoding is provided. The encoding device includes a subtraction unit for deriving residual samples for a target block, a transformation unit for deriving transform coefficients for the target block based on a reduced transform for the residual samples, a quantization unit for deriving quantized transform coefficients by performing quantization based on the transform coefficients for the target block, and an entropy encoding unit for encoding information about the quantized transform coefficients, wherein the reduced transform is performed based on a reduced transform matrix, and the reduced transform matrix is characterized in that it is a non-square matrix in which the number of rows is less than the number of columns.
[0012] According to the present invention, the overall image / video compression efficiency can be improved.
[0013] According to the present invention, the amount of data to be transmitted for residual processing can be reduced through efficient conversion, and residual coding efficiency can be increased.
[0014] According to the present invention, non-zero transform coefficients can be concentrated on low-frequency components through a second-order transform in the frequency domain.
[0015] According to the present invention, image coding efficiency can be improved by performing image coding based on a simplified transformation.
[0016] Figure 1 is a drawing schematically illustrating the configuration of a video / image encoding device to which the present invention can be applied.
[0017] FIG. 2 is a drawing schematically illustrating the configuration of a video / image decoding device to which the present invention can be applied.
[0018] Figure 3 schematically illustrates a multi-transformation technique according to one embodiment.
[0019] Figure 4 illustrates intra-directional modes of 65 prediction directions as examples.
[0020] FIGS. 5A to 5C are flowcharts illustrating a non-separable secondary conversion process according to one embodiment.
[0021] FIG. 6 is a diagram for explaining a simplified transformation according to one embodiment of the present invention.
[0022] Figure 7 is a flowchart illustrating a simplified conversion process according to one embodiment of the present invention.
[0023] Figure 8 is a flowchart illustrating a simplified conversion process according to another embodiment of the present invention.
[0024] FIG. 9 is a flowchart illustrating a simplified transformation process based on a non-separable second-order transformation according to one embodiment of the present invention.
[0025] FIG. 10 is a diagram illustrating a block to which a simplified transformation is applied according to one embodiment of the present invention.
[0026] FIG. 11 is a flowchart illustrating the operation of a video encoding device according to one embodiment of the present invention.
[0027] FIG. 12 is a flowchart illustrating the operation of a video decoding device according to one embodiment of the present invention.
[0028] According to one embodiment of the present invention, a video decoding method performed by a decoding device is provided. The method comprises the steps of: deriving quantized transform coefficients for a target block from a bitstream; deriving transform coefficients by performing inverse quantization on the quantized transform coefficients for the target block; deriving residual samples for the target block based on a reduced inverse transform for the transform coefficients; and generating a reconstructed picture based on the residual samples for the target block and prediction samples for the target block, wherein the reduced inverse transform is performed based on a reduced inverse transform matrix, and the reduced inverse transform matrix is characterized in that it is a non-square matrix in which the number of columns is less than the number of rows.
[0029] The present invention is susceptible to various modifications and embodiments, and thus specific embodiments will be illustrated and described in detail in the drawings. However, this is not intended to limit the present invention to specific embodiments. The terminology used herein is only used to describe specific embodiments and is not intended to limit the technical idea of the present invention. The singular expression includes plural expressions unless the context clearly indicates otherwise. It should be understood that the terms "comprises" or "has" in this specification specify the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0030] Meanwhile, each component in the drawings described in the present invention is depicted independently for the convenience of explaining different characteristic functions. This does not imply that each component is implemented with separate hardware or software. For example, two or more components may be combined to form a single component, or a single component may be divided into multiple components. Embodiments in which each component is integrated and / or separated are also included within the scope of the present invention, as long as they do not deviate from the essence of the present invention.
[0031] The following description may be applicable to technical fields dealing with video, images, or motion pictures. For example, the methods or embodiments disclosed in the following description may be related to the disclosure of the Versatile Video Coding (VVC) standard (ITU-T Rec. H.266), the next generation video / image coding standard after VVC, or standards prior to VVC (e.g., the High Efficiency Video Coding (HEVC) standard (ITU-T Rec. H.265), etc.).
[0032] Hereinafter, with reference to the attached drawings, preferred embodiments of the present invention will be described in more detail. Hereinafter, identical components in the drawings will be designated by the same reference numerals, and redundant descriptions of identical components will be omitted.
[0033] In this specification, "video" may refer to a series of images over time. A "picture" generally refers to a unit representing a single image from a specific time period, and a "slice" is a unit that constitutes part of a picture in coding. A single picture may be composed of multiple slices, and pictures and slices may be used interchangeably as needed.
[0034] A pixel or pel can refer to the smallest unit that constitutes a picture (or image). Furthermore, the term "sample" can be used as a counterpart to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chroma component.
[0035] A unit represents the basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to that region. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows.
[0036] FIG. 1 is a drawing schematically illustrating the configuration of a video / image encoding apparatus to which the present invention can be applied. The encoding apparatus may include a video encoding apparatus and / or an image encoding apparatus, and the concept of a video encoding apparatus may also be used as including an image encoding apparatus.
[0037] Referring to FIG. 1, a video encoding device (100) may include a picture partitioning module (105), a prediction module (110), a residual processing module (120), an entropy encoding module (130), an adder (140), a filtering module (150), and a memory (160). The residual processing module (120) may include a subtractor (121), a transform module (122), a quantization module (123), a rearrangement module (124), a dequantization module (125), and an inverse transform module (126).
[0038] The picture division unit (105) can divide the input picture into at least one processing unit.
[0039] For example, a processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively split from a largest coding unit (LCU) according to a Quad-tree binary-tree (QTBT) structure. For example, one coding unit may be split into multiple coding units of deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and the ternary tree structure may be applied later. Alternatively, the binary tree structure / ternary tree structure may be applied first. The coding procedure according to the present invention may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the maximum coding unit can be used as the final coding unit, or, if necessary, the coding unit can be recursively divided into coding units of lower depths, and the coding unit with the optimal size can be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
[0040] As another example, a processing unit may include a coding unit (CU), a prediction unit (PU), or a transform unit (TU). A coding unit may be split into coding units of deeper depths from a largest coding unit (LCU) along a quad-tree structure. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit of the optimal size may be used as the final coding unit. If a smallest coding unit (SCU) is set, the coding unit cannot be split into coding units smaller than the smallest coding unit. Here, the final coding unit refers to a coding unit that is the basis for partitioning or dividing into prediction units or transform units. A prediction unit is a unit partitioned from a coding unit and may be a unit of sample prediction. At this time, the prediction unit may be divided into sub blocks. The transform unit may be divided from the coding unit along a quad tree structure, and may be a unit that derives a transform coefficient and / or a unit that derives a residual signal from the transform coefficient. Hereinafter, the coding unit may be called a coding block (CB), the prediction unit may be called a prediction block (PB), and the transform unit may be called a transform block (TB). A prediction block or prediction unit may mean a specific area in the form of a block within a picture, and may include an array of prediction samples.Additionally, a transform block or transform unit may mean a specific area in the form of a block within a picture and may include an array of transform coefficients or residual samples.
[0041] The prediction unit (110) can perform a prediction on a block to be processed (hereinafter, may also mean a current block or a residual block) and generate a predicted block including prediction samples for the current block. The unit of prediction performed in the prediction unit (110) may be a coding block, a transformation block, or a prediction block.
[0042] The prediction unit (110) can determine whether intra prediction or inter prediction is applied to the current block. For example, the prediction unit (110) can determine whether intra prediction or inter prediction is applied on a CU basis.
[0043] In the case of intra prediction, the prediction unit (110) can derive a prediction sample for the current block based on reference samples outside the current block within the picture to which the current block belongs (hereinafter, the current picture). At this time, the prediction unit (110) can (i) derive the prediction sample based on the average or interpolation of neighboring reference samples of the current block, and (ii) can also derive the prediction sample based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block. In the case of (i), it can be called a non-directional mode or a non-angular mode, and in the case of (ii), it can be called a directional mode or an angular mode. In intra prediction, the prediction mode can have, for example, 33 directional prediction modes and at least two non-directional modes. The non-directional mode can include a DC prediction mode and a planar mode. The prediction unit (110) can also determine the prediction mode to be applied to the current block by using the prediction mode applied to the surrounding blocks.
[0044] In the case of inter prediction, the prediction unit (110) can derive a prediction sample for the current block based on a sample specified by a motion vector on a reference picture. The prediction unit (110) can derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP (motion vector prediction) mode. In the case of the skip mode and the merge mode, the prediction unit (110) can use the motion information of the surrounding blocks as the motion information of the current block. In the case of the skip mode, unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted. In the case of the MVP mode, the motion vector of the current block can be derived by using the motion vector of the surrounding blocks as a motion vector predictor and as a motion vector predictor of the current block.
[0045] In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in a reference picture. The reference picture including the temporal neighboring blocks may be called a collocated picture (colPic). Motion information may include a motion vector and a reference picture index. Information such as prediction mode information and motion information may be (entropy) encoded and output in the form of a bitstream.
[0046] In skip mode and merge mode, when motion information of temporally adjacent blocks is utilized, the top-ranked picture in the reference picture list may be used as a reference picture. The reference pictures included in the reference picture list (Picture Order Count) may be sorted based on the difference in Picture Order Count (POC) between the current picture and the corresponding reference picture. The POC corresponds to the display order of the pictures and can be distinguished from the coding order.
[0047] The subtraction unit (121) generates a residual sample, which is the difference between the original sample and the predicted sample. When skip mode is applied, the residual sample may not be generated as described above.
[0048] The transform unit (122) transforms residual samples in units of transform blocks to generate transform coefficients. The transform unit (122) can perform the transform according to the size of the corresponding transform block and the prediction mode applied to the coding block or prediction block spatially overlapping with the corresponding transform block. For example, if intra prediction is applied to the coding block or the prediction block overlapping with the transform block and the transform block is a 4x4 residual array, the residual sample can be transformed using a DST (Discrete Sine Transform) transform kernel, and in other cases, the residual sample can be transformed using a DCT (Discrete Cosine Transform) transform kernel.
[0049] The quantization unit (123) can quantize the transform coefficients to generate quantized transform coefficients.
[0050] The rearrangement unit (124) rearranges the quantized transform coefficients. The rearrangement unit (124) can rearrange the block-shaped quantized transform coefficients into a one-dimensional vector through a coefficient scanning method. Although the rearrangement unit (124) is described as a separate component here, the rearrangement unit (124) may be a part of the quantization unit (123).
[0051] The entropy encoding unit (130) can perform entropy encoding on quantized transform coefficients. Entropy encoding can include encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. In addition to the quantized transform coefficients, the entropy encoding unit (130) can encode information necessary for video restoration (e.g., values of syntax elements) together or separately according to entropy encoding or a preset method. The encoded information can be transmitted or stored in the form of a bitstream in the form of a network abstraction layer (NAL) unit. The bitstream can be transmitted through a network or stored in a digital storage medium. Here, the network can include a broadcasting network and / or a communication network, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
[0052] The inverse quantization unit (125) inversely quantizes the values (quantized transform coefficients) quantized in the quantization unit (123), and the inverse transformation unit (126) inversely transforms the values inversely quantized in the inverse quantization unit (125) to generate residual samples.
[0053] The addition unit (140) reconstructs the picture by combining the residual sample and the prediction sample. The residual sample and the prediction sample can be added block by block to generate a reconstructed block. Although the addition unit (140) is described as a separate component here, the addition unit (140) can be part of the prediction unit (110). Meanwhile, the addition unit (140) can also be called a reconstruction module or a reconstructed block generation unit.
[0054] The filter unit (150) may apply a deblocking filter and / or a sample adaptive offset to the reconstructed picture. Through the deblocking filtering and / or the sample adaptive offset, artifacts at the block boundary within the reconstructed picture or distortion during the quantization process may be corrected. The sample adaptive offset may be applied on a sample basis and may be applied after the deblocking filtering process is completed. The filter unit (150) may also apply an ALF (Adaptive Loop Filter) to the reconstructed picture. The ALF may be applied to the reconstructed picture after the deblocking filter and / or the sample adaptive offset have been applied.
[0055] The memory (160) can store a restored picture (decoded picture) or information required for encoding / decoding. Here, the restored picture may be a restored picture that has completed a filtering process by the filter unit (150). The stored restored picture may be used as a reference picture for (inter) prediction of another picture. For example, the memory (160) may store (reference) pictures used for inter prediction. At this time, the pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
[0056] FIG. 2 is a drawing schematically illustrating the configuration of a video / image decoding apparatus to which the present invention can be applied. The video decoding apparatus hereinafter may include an image decoding apparatus.
[0057] Referring to FIG. 2, the video decoding device (200) may include an entropy decoding module (210), a residual processing module (220), a prediction module (230), an adder (240), a filtering module (250), and a memory (260). Here, the residual processing module (220) may include a rearrangement module (221), a dequantization module (222), and an inverse transform module (223). In addition, although not shown, the video decoding device (200) may include a receiving unit that receives a bitstream including video information. The receiving unit may be configured as a separate module or may be included in the entropy decoding unit (210).
[0058] When a bitstream containing video / image information is input, the video decoding device (200) can restore the video / image / picture corresponding to the process in which the video / image information is processed in the video encoding device.
[0059] For example, the video decoding device (200) can perform video decoding using a processing unit applied in a video encoding device. Accordingly, a processing unit block of video decoding may be, for example, a coding unit, and may be, for example, a coding unit, a prediction unit, or a transformation unit. The coding unit may be divided according to a quad tree structure, a binary tree structure, and / or a ternary tree structure from a maximum coding unit.
[0060] Prediction units and transformation units may be further used in some cases, in which case the prediction block may be a block derived or partitioned from a coding unit, and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub-blocks. The transformation unit may be divided from the coding unit along a quad-tree structure, and may be a unit that derives a transform coefficient or a unit that derives a residual signal from a transform coefficient.
[0061] The entropy decoding unit (210) can parse the bitstream and output information necessary for video restoration or picture restoration. For example, the entropy decoding unit (210) can decode information within the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements necessary for video restoration and quantized values of transform coefficients for residuals.
[0062] More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, determines a context model using information of the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information of symbols / bins decoded in a previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model.
[0063] Among the information decoded in the entropy decoding unit (210), information regarding prediction is provided to the prediction unit (230), and the residual value on which entropy decoding is performed in the entropy decoding unit (210), i.e., the quantized transform coefficient, can be input to the rearrangement unit (221).
[0064] The rearrangement unit (221) can rearrange the quantized transform coefficients into a two-dimensional block form. The rearrangement unit (221) can perform rearrangement in response to coefficient scanning performed in the encoding device. Although the rearrangement unit (221) is described as a separate component here, the rearrangement unit (221) may be a part of the dequantization unit (222).
[0065] The inverse quantization unit (222) can output transform coefficients by inversely quantizing quantized transform coefficients based on (inverse) quantization parameters. At this time, information for deriving the quantization parameters can be signaled from the encoding device.
[0066] The inverse transform unit (223) can inversely transform the transform coefficients to derive residual samples.
[0067] The prediction unit (230) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block. The unit of prediction performed in the prediction unit (230) may be a coding block, a transformation block, or a prediction block.
[0068] The prediction unit (230) can determine whether to apply intra prediction or inter prediction based on the information about the above prediction. At this time, the unit for determining whether to apply intra prediction or inter prediction and the unit for generating prediction samples may be different. In addition, the unit for generating prediction samples for inter prediction and intra prediction may also be different. For example, whether to apply inter prediction or intra prediction may be determined on a CU basis. In addition, for example, in inter prediction, the prediction mode may be determined on a PU basis and prediction samples may be generated, and in intra prediction, the prediction mode may be determined on a PU basis and prediction samples may be generated on a TU basis.
[0069] In the case of intra prediction, the prediction unit (230) can derive a prediction sample for the current block based on surrounding reference samples within the current picture. The prediction unit (230) can derive a prediction sample for the current block by applying a directional mode or a non-directional mode based on surrounding reference samples of the current block. In this case, the prediction mode to be applied to the current block may be determined using the intra prediction mode of the surrounding block.
[0070] In the case of inter prediction, the prediction unit (230) can derive a prediction sample for the current block based on a sample specified on the reference picture by a motion vector on the reference picture. The prediction unit (230) can derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP mode. At this time, information on motion information required for inter prediction of the current block provided from the video encoding device, such as a motion vector, a reference picture index, etc., can be acquired or derived based on the information on the prediction.
[0071] In skip mode and merge mode, motion information of surrounding blocks can be used as motion information of the current block. In this case, the surrounding blocks can include spatial surrounding blocks and temporal surrounding blocks.
[0072] The prediction unit (230) constructs a merge candidate list using motion information of available surrounding blocks, and can use the information indicated by the merge index on the merge candidate list as the motion vector of the current block. The merge index can be signaled from the encoding device. The motion information can include a motion vector and a reference picture. When motion information of temporal surrounding blocks is used in skip mode and merge mode, the top picture on the reference picture list can be used as the reference picture.
[0073] In skip mode, unlike merge mode, the difference (residual) between the predicted sample and the original sample is not transmitted.
[0074] In MVP mode, the motion vector of the current block can be derived using the motion vector of the surrounding blocks as a motion vector predictor. At this time, the surrounding blocks may include spatial and temporal surrounding blocks.
[0075] For example, when the merge mode is applied, a merge candidate list can be generated using the motion vector of the restored spatial neighboring block and / or the motion vector corresponding to the Col block, which is a temporal neighboring block. In the merge mode, the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block. The information regarding the prediction can include a merge index indicating a candidate block having an optimal motion vector selected from among the candidate blocks included in the merge candidate list. At this time, the prediction unit (230) can derive the motion vector of the current block using the merge index.
[0076] As another example, when the MVP (Motion Vector Prediction) mode is applied, a motion vector predictor candidate list can be generated using the motion vectors of the reconstructed spatial neighboring blocks and / or the motion vectors corresponding to the Col block, which is a temporal neighboring block. That is, the motion vectors of the reconstructed spatial neighboring blocks and / or the motion vectors corresponding to the Col block, which is a temporal neighboring block, can be used as motion vector candidates. The information regarding the prediction can include a predicted motion vector index indicating an optimal motion vector selected from among the motion vector candidates included in the list. At this time, the prediction unit (230) can select the predicted motion vector of the current block from among the motion vector candidates included in the motion vector candidate list using the motion vector index. The prediction unit of the encoding device can obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, and can encode and output the same in the form of a bitstream. That is, the MVD can be obtained as a value obtained by subtracting the motion vector predictor from the motion vector of the current block. At this time, the prediction unit (230) can obtain the motion vector difference included in the information regarding the prediction, and derive the motion vector of the current block through the addition of the motion vector difference and the motion vector predictor. The prediction unit can also obtain or derive a reference picture index indicating a reference picture, etc., from the information regarding the prediction.
[0077] The addition unit (240) can reconstruct the current block or the current picture by adding the residual sample and the prediction sample. The addition unit (240) can also reconstruct the current picture by adding the residual sample and the prediction sample in block units. When skip mode is applied, the residual is not transmitted, so the prediction sample can become the reconstructed sample. Although the addition unit (240) is described as a separate component here, the addition unit (240) can also be a part of the prediction unit (230). Meanwhile, the addition unit (240) can also be called a reconstruction module or a reconstructed block generation unit.
[0078] The filter unit (250) may apply deblocking filtering, sample adaptive offset, and / or ALF to the restored picture. At this time, the sample adaptive offset may be applied on a sample basis and may be applied after deblocking filtering. The ALF may be applied after deblocking filtering and / or sample adaptive offset.
[0079] The memory (260) can store restored pictures (decoded pictures) or information required for decoding. Here, the restored picture may be a restored picture that has undergone a filtering process by the filter unit (250). For example, the memory (260) can store pictures used for inter prediction. At this time, the pictures used for inter prediction may be designated by a reference picture set or a reference picture list. The restored picture may be used as a reference picture for another picture. In addition, the memory (260) may output the restored pictures according to the output order.
[0080] Meanwhile, as described above, prediction is performed to increase compression efficiency when performing video coding. Through this, a predicted block including prediction samples for the current block, which is a coding target block, can be generated. Here, the predicted block includes prediction samples in the spatial domain (or pixel domain). The predicted block is derived identically from an encoding device and a decoding device, and the encoding device can increase image coding efficiency by signaling information (residual information) about the residual between the original block and the predicted block, rather than the original sample value of the original block itself, to a decoding device. The decoding device can derive a residual block including residual samples based on the residual information, and generate a reconstructed block including reconstructed samples by combining the residual block and the predicted block, and can generate a reconstructed picture including the reconstructed blocks.
[0081] The residual information may be generated through a transformation and quantization procedure. For example, the encoding device may derive a residual block between the original block and the predicted block, perform a transformation procedure on residual samples (a residual sample array) included in the residual block to derive transform coefficients, and perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, thereby signaling the related residual information to a decoding device (via a bitstream). Here, the residual information may include information such as value information, position information, a transformation technique, a transformation kernel, and quantization parameters of the quantized transform coefficients. The decoding device may perform an inverse quantization / inverse transformation procedure based on the residual information to derive residual samples (or residual blocks). The decoding device may generate a reconstructed picture based on the predicted block and the residual block. The encoding device can also inversely quantize / inversely transform the quantized transform coefficients to derive a residual block for reference in inter prediction of a subsequent picture, and generate a restored picture based on the residual block.
[0082] Figure 3 schematically illustrates a multiple conversion technique according to the present invention.
[0083] Referring to FIG. 3, the conversion unit may correspond to the conversion unit in the encoding device of FIG. 1 described above, and the inverse conversion unit may correspond to the inverse conversion unit in the encoding device of FIG. 1 described above or the inverse conversion unit in the decoding device of FIG. 2.
[0084] The transform unit can derive (primary) transform coefficients by performing a primary transform based on residual samples (residual sample array) within the residual block (S310). Here, the primary transform may include a multiple transform set (MTS). The multiple transform set may, in some cases, be referred to as an adaptive multiple core transform.
[0085] Adaptive multi-core transform may refer to a method of transforming by additionally using Discrete Cosine Transform (DCT) Type 2 and Discrete Sine Transform (DST) Type 7, DCT Type 8, and / or DST Type 1. That is, the multi-core transform may refer to a transform method of transforming a residual signal (or residual block) of a spatial domain into transform coefficients (or primary transform coefficients) of a frequency domain based on a plurality of transform kernels selected from among the DCT Type 2, the DST Type 7, the DCT Type 8, and the DST Type 1. Here, the primary transform coefficients may be referred to as temporary transform coefficients from the perspective of a transform unit.
[0086] In other words, when the conventional transform method is applied, a transformation from the spatial domain to the frequency domain can be applied to the residual signal (or residual block) based on DCT type 2, so that transform coefficients can be generated. In contrast, when the adaptive multi-core transform is applied, a transformation from the spatial domain to the frequency domain can be applied to the residual signal (or residual block) based on DCT type 2, DST type 7, DCT type 8, and / or DST type 1, so that transform coefficients (or first-order transform coefficients) can be generated. Here, DCT type 2, DST type 7, DCT type 8, and DST type 1, etc. may be called a transform type, a transform kernel, or a transform core.
[0087] For reference, the above DCT / DST transformation types can be defined based on basis functions, and the basis functions can be represented as shown in the following table.
[0088] [Table 1]
[0089]
[0090] When the above adaptive multi-core transform is performed, a vertical transform kernel and a horizontal transform kernel for a target block may be selected from among the transform kernels, and a vertical transform may be performed for the target block based on the vertical transform kernel, and a horizontal transform may be performed for the target block based on the horizontal transform kernel. Here, the horizontal transform may represent a transform for horizontal components of the target block, and the vertical transform may represent a transform for vertical components of the target block. The vertical transform kernel / horizontal transform kernel may be adaptively determined based on a transform index indicating a prediction mode and / or a transform subset of a target block (CU or sub-block) encompassing a residual block.
[0091] The transform unit can derive (secondary) transform coefficients by performing a secondary transform based on the (first) transform coefficients (S320). If the first transform was a transform from a spatial domain to a frequency domain, the second transform can be viewed as a transform from a frequency domain to a frequency domain. The second transform can include a non-separable transform. In this case, the second transform can be called a non-separable secondary transform (NSST) or a mode-dependent non-separable secondary transform (MDNSST). The non-separable secondary transform can represent a transform that generates transform coefficients (or secondary transform coefficients) for a residual signal by performing a secondary transform on the (first) transform coefficients derived through the first transform based on a non-separable transform matrix. Here, based on the non-separable transformation matrix, the vertical transformation and the horizontal transformation (or the horizontal-vertical transformation independently) can be applied to the (primary) transformation coefficients at once without being applied separately. In other words, the non-separable secondary transformation can refer to a transformation method of generating transformation coefficients (or secondary transformation coefficients) by transforming the vertical and horizontal components of the (primary) transformation coefficients together without being separated based on the non-separable transformation matrix. The non-separable secondary transformation can be applied to the top-left region of a block composed of (primary) transformation coefficients (hereinafter, referred to as a transformation coefficient block). For example, when the width (W) and height (H) of the transformation coefficient block are both 8 or more, an 8×8 non-separable secondary transformation can be applied to the top-left 8×8 region of the transformation coefficient block.In addition, when the width (W) and the height (H) of the transform coefficient block are both 4 or more, and the width (W) or the height (H) of the transform coefficient block is less than 8, a 4×4 non-separable secondary transform may be applied to the upper left min(8,W)×min(8,H) region of the transform coefficient block. However, the embodiment is not limited thereto, and for example, even if only the condition that the width (W) or the height (H) of the transform coefficient block is less than 8 is satisfied, a 4×4 non-separable secondary transform may be applied to the upper left min(8,W)×min(8,H) region of the transform coefficient block.
[0092] For example, when a 4×4 input block is used, the non-separable second-order transform can be performed as follows.
[0093] The above 4×4 input block X can be represented as follows.
[0094] [Mathematical Formula 1]
[0095]
[0096] When the above X is expressed in vector form, the vector can be expressed as follows.
[0097] [Equation 2]
[0098]
[0099] In this case, the second-order non-separable transformation can be calculated as follows.
[0100] [Equation 3]
[0101]
[0102] Here, represents the transformation coefficient vector, and T represents a 16×16 (non-separable) transformation matrix.
[0103] Through the above mathematical expression 3, a 16×1 transformation coefficient vector can be derived, and the above can be reorganized into 4×4 blocks through the scan order (horizontal, vertical, diagonal, etc.). However, the above-described calculation is just an example, and in order to reduce the computational complexity of the non-separable second-order transform, the Hypercube-Givens Transform (HyGT) or the like can be used to calculate the non-separable second-order transform.
[0104] Meanwhile, the non-separable second-order transform may have a transform kernel (or transform core, transform type) selected mode-dependently. Here, the mode may include an intra-prediction mode and / or an inter-prediction mode.
[0105] As described above, the non-separable secondary transform can be performed based on an 8×8 transform or a 4×4 transform determined based on the width (W) and height (H) of the transform coefficient block. That is, the non-separable secondary transform can be performed based on an 8×8 sub-block size or a 4×4 sub-block size. For example, for the mode-based transform kernel selection, 35 sets of non-separable secondary transform kernels, 3 each for the non-separable secondary transform, can be configured for both the 8×8 sub-block size and the 4×4 sub-block size. That is, 35 transform sets can be configured for the 8×8 sub-block size, and 35 transform sets can be configured for the 4×4 sub-block size. In this case, each of the 35 transform sets for the 8×8 sub-block size may contain three 8×8 transform kernels, and each of the 35 transform sets for the 4×4 sub-block size may contain three 4×4 transform kernels. However, the transform sub-block size, the number of sets, and the number of transform kernels in the set may be sizes other than 8×8 or 4×4, as an example, or n sets may be configured, and k transform kernels may be included in each set.
[0106] The above transformation set may be referred to as an NSST set, and the transformation kernel within the NSST set may be referred to as an NSST kernel. Selection of a particular set among the above transformation sets may be performed based on, for example, the intra prediction mode of the target block (CU or sub-block).
[0107] For example, an intra prediction mode may include two non-directinoal (or non-angular) intra prediction modes and 65 directional (or angular) intra prediction modes. The non-directional intra prediction modes may include a planar intra prediction mode numbered 0 and a DC intra prediction mode numbered 1, and the directional intra prediction modes may include 65 intra prediction modes numbered 2 to 66. However, this is merely an example, and the present invention may also be applied to cases where the number of intra prediction modes is different. Meanwhile, in some cases, an intra prediction mode numbered 67 may be further used, and the 67 intra prediction mode may represent a linear model (LM) mode.
[0108] Figure 4 illustrates intra-directional modes of 65 prediction directions as an example.
[0109] Referring to Fig. 4, intra prediction modes with horizontal directionality and intra prediction modes with vertical directionality can be distinguished centered on intra prediction mode number 34 having an upward left diagonal prediction direction. H and V in Fig. 3 represent horizontal and vertical directionality, respectively, and numbers -32 to 32 represent displacements in units of 1 / 32 on the sample grid position. Intra prediction modes numbered 2 to 33 have horizontal directionality, and intra prediction modes numbered 34 to 66 have vertical directionality. The 18th intra prediction mode and the 50th intra prediction mode represent the horizontal intra prediction mode and the vertical intra prediction mode, respectively. The 2nd intra prediction mode can be called the left-downward diagonal intra prediction mode, the 34th intra prediction mode can be called the left-upward diagonal intra prediction mode, and the 66th intra prediction mode can be called the right-upward diagonal intra prediction mode.
[0110] In this case, the mapping between the 35 transformation sets and the intra prediction modes can be represented, for example, as shown in the following table. Note that if the LM mode is applied to the target block, the secondary transformation may not be applied to the target block.
[0111] [Table 2]
[0112]
[0113] Meanwhile, if it is determined that a specific set is to be used, one of the k transform kernels within the specific set may be selected through a non-separable secondary transform index. The encoding device may derive a non-separable secondary transform index indicating a specific transform kernel based on a rate-distortion (RD) check, and signal the non-separable secondary transform index to a decoding device. The decoding device may select one of the k transform kernels within the specific set based on the non-separable secondary transform index. For example, an NSST index value of 0 may indicate a first non-separable secondary transform kernel, an NSST index value of 1 may indicate a second non-separable secondary transform kernel, and an NSST index value of 2 may indicate a third non-separable secondary transform kernel. Alternatively, an NSST index value of 0 may indicate that the first non-separable secondary transform is not applied to the target block, and NSST index values 1 to 3 may indicate the three transform kernels.
[0114] Referring back to FIG. 3, the transform unit can perform the non-separable second-order transform based on the selected transform kernels and obtain (second-order) transform coefficients. The transform coefficients can be derived as quantized transform coefficients through the quantization unit as described above, and can be encoded and transmitted to the decoding device and the inverse quantization / inverse transform unit within the signaling and encoding device.
[0115] Meanwhile, when the secondary transformation is omitted as described above, the (primary) transformation coefficients, which are the output of the primary (separation) transformation, can be derived as quantized transformation coefficients through the quantization unit as described above, and can be encoded and transmitted to the decoding device and the inverse quantization / inverse transformation unit in the signaling and encoding device.
[0116] The inverse transform unit can perform a series of procedures in the reverse order of the procedures performed in the above-described transform unit. The inverse transform unit can receive (inverse quantized) transform coefficients, perform a secondary (inverse) transform to derive (primary) transform coefficients (S350), and perform a primary (inverse) transform on the (primary) transform coefficients to obtain a residual block (residual samples). Here, the primary transform coefficients may be referred to as modified transform coefficients from the inverse transform unit's perspective. As described above, the encoding device and the decoding device can generate a reconstructed block based on the residual block and the predicted block, and generate a reconstructed picture based on the reconstructed block.
[0117] Meanwhile, as described above, when the second (inverse) transformation is omitted, the (inverse quantized) transformation coefficients can be received and the first (separate) transformation can be performed to obtain a residual block (residual samples). As described above, the encoding device and the decoding device can generate a restoration block based on the residual block and the predicted block, and can generate a restoration picture based on the same.
[0118] FIGS. 5A to 5C are drawings for explaining a simplified transformation according to one embodiment of the present invention.
[0119] As described above in Fig. 3, in the non-separable second-order transform (hereinafter referred to as 'NSST'), the block data of the transform coefficients obtained by applying the first transform are divided into M x M blocks, and then for each M x M block, M 2 x M 2 NSST can be performed. M can be, for example, 4 or 8, but is not limited thereto.
[0120] M 2 x M 2NSST can be applied in the form of matrix multiplication, but to reduce the amount of computation and memory requirements, the Hypercube-Givens Transform (HyGT) described above in Fig. 3 can be used for the operation of NSST. HyGT is an orthogonal transform, and HyGT is a Givens rotation G defined by an orthogonal matrix G(m, n, θ). i,j (m, n) can be included as a basic component. Givens rotation G i,j (m, n) can be as shown in mathematical formula 4 below.
[0121] [Equation 4]
[0122]
[0123] Givens rotation based on mathematical expression 4 can be illustrated as in Fig. 5a. Referring to mathematical expression 4 and Fig. 5a, it can be confirmed that one Givens rotation is described by only one angle (θ).
[0124] Fig. 5b illustrates an example of one round constituting a 16 x 16 NSST. More specifically, HyGT can be performed by combining Givens rotations in a hypercube arrangement, and the flow of HyGT for 16 elements can be illustrated in a butterfly shape as shown in Fig. 5b. As shown in Fig. 5b, one round consists of four Givens rotation layers, and each Givens rotation layer consists of eight Givens rotations. Each Givens rotation can be structured to select two input data, apply a rotation transformation, and output them as is at the selected location, as in the connection configuration presented in Fig. 5b. A 16 x 16 NSST can sequentially apply two rounds and one permutation layer, and the 16 data can be randomly shuffled through the permutation layer. Both rounds can be connected as in Fig. 5b, but the Givens rotation layers for the two rounds can be different.
[0125] The 64 x 64 NSST consists of Givens rotation layers with 64 inputs and outputs, and like the 16 x 16 NSST, at least one round can be applied, where one round can consist of six Givens rotation layers connected in a manner similar to Fig. 5b. In one example, the 64 x 64 NSST can be applied to four rounds, followed by a permutation layer to randomly shuffle the 64 data. Each of the Givens rotation layers for each of the four rounds can be different.
[0126] Figure 5b illustrates the rounds applied to the forward transformation. When applying the backward transformation, the backward permutation layer is first applied, and then the corresponding Givens rotations are applied in the direction from bottom to top in Figure 5b, starting from the last round to the first round. The angle corresponding to each Givens rotation of the backward NSST can be the value obtained by applying a negative sign to the corresponding forward angle.
[0127] To increase coding efficiency, more than one HyGT round can be utilized. As illustrated in Figure 5c, NSST can consist of R HyGT rounds and additionally include a sorting pass. The sorting pass can be interpreted as an optional permutation pass and can sort the transform coefficients based on variance. In one example, a 2-round HyGT can be applied to a 16x16 NSST, and a 4-round HyGT can be applied to a 64x64 NSST.
[0128] FIG. 6 is a diagram for explaining a simplified transformation according to one embodiment of the present invention.
[0129] In this specification, “target block” may mean the current block or residual block on which coding is performed.
[0130] In this specification, "simplified transform" may mean a transform performed on residual samples of a target block based on a transform matrix whose size is reduced according to a simplification factor. When performing a simplified transform, the amount of computation required for the transform may be reduced due to the reduction in the size of the transform matrix. In other words, a simplified transform may be used to resolve computational complexity issues that occur when transforming a large block or performing a non-separable transform. A simplified transform may be used for any type of transform, such as a primary transform (or may be referred to as a core transform. A primary transform includes, for example, DCT, DST, etc.), a secondary transform (for example, NSST), etc.
[0131] Simplification transformations can be referred to by various terms such as reduced transformation, reduced secondary transform, reduction transform, simplified transform, simple transform, RTS, RST, etc., and the names by which the simplification transformations can be referred to are not limited to the examples listed.
[0132] In a simplified transformation according to one embodiment, an N-dimensional vector may be mapped to an R-dimensional vector located in another space to determine a simplified transformation matrix, where R is smaller than N. N may mean the square of the length of one side of a block to which the transformation is applied or the total number of transformation coefficients corresponding to the block to which the transformation is applied, and the simplified factor may mean an R / N value. The simplified factor may be referred to by various terms such as reduced factor, reduced factor, reduction factor, simplified factor, simple factor, etc. Meanwhile, R may be referred to as a reduced coefficient, but in some cases, the simplified factor may mean R. In addition, in some cases, the simplified factor may mean an N / R value.
[0133] In one embodiment, the simplification factor or simplification coefficient may be signaled via the bitstream, but the embodiment is not limited thereto. For example, predefined values for the simplification factor or simplification coefficient may be stored in each encoding device (100) and decoding device (200), in which case the simplification factor or simplification coefficient may not be signaled separately.
[0134] The size of the simplified transformation matrix according to one embodiment is RxN, which is smaller than the size NxN of the normal transformation matrix, and can be defined as in mathematical expression 5 below.
[0135] [Equation 5]
[0136]
[0137] The matrix T in the Reduced Transform block shown in (a) of Fig. 6 is the matrix T of mathematical expression 5. RxNIt can mean. As in (a) of Fig. 6, a simplified transformation matrix T for residual samples for the target block RxN When multiplied, the transformation coefficients for the target block can be derived.
[0138] In one embodiment, when the size of the block to which the transformation is applied is 8x8, R=16 (i.e., R / N=16 / 64=1 / 4), and the size of the target block is 64x64, the simplified transformation according to (a) of FIG. 6 can be expressed as a matrix operation as in mathematical expression 6 below.
[0139] [Equation 6]
[0140]
[0141] In mathematical expression 6, r1 to r 64 can represent residual samples for the target block. The transformation coefficients c for the target block as a result of the operation of Equation 6 i can be derived, and c i The derivation process can be as shown in mathematical formula 7.
[0142] [Equation 7]
[0143]
[0144] As a result of the operation of mathematical expression 7, the transformation coefficients c1 to c for the target block R This can be derived. That is, when R=16, the transformation coefficients c1 to c for the target block 16This can be derived. If a regular transformation instead of a simplified transformation is applied and a transformation matrix of size 64x64 (NxN) is multiplied by a matrix containing residual samples of size 64x1 (Nx1), 64 (N) transformation coefficients for the target block would have been derived, but since a simplified transformation is applied, only 16 (R) transformation coefficients for the target block are derived. Since the total number of transformation coefficients for the target block is reduced from N to R, the amount of data transmitted from the encoding device (100) to the decoding device (200) is reduced, so that the transmission efficiency between the encoding device (100) and the decoding device (200) can be increased.
[0145] In terms of the size of the transformation matrix, the size of a normal transformation matrix is 64x64 (NxN), but the size of a simplified transformation matrix is reduced to 16x64 (RxN), so compared to performing a normal transformation, the memory usage can be reduced by the R / N ratio when performing a simplified transformation. In addition, compared to the number of NxN multiplication operations when using a normal transformation matrix, the number of multiplication operations can be reduced by the R / N ratio (RxN) when using a simplified transformation matrix.
[0146] In one embodiment, the transform unit (122) of the encoding device (100) may transform residual samples for the target block to derive transform coefficients for the target block, and the transform coefficients for the target block may be transmitted to the inverse transform unit of the decoding device (200), and the inverse transform unit (223) of the decoding device (200) may inverse transform the transform coefficients for the target block. Based on the inverse transform performed on the transform coefficients for the target block, residual samples for the target block may be derived. That is, the detailed operations according to the (simplified) inverse transform are just the opposite in order to the detailed operations according to the (simplified) transformation, and the detailed operations according to the (simplified) inverse transform and the detailed operations according to the (simplified) transformation may be substantially similar.
[0147] Simplified inverse transform matrix T according to one embodiment NxR The size of is NxR, which is smaller than the size of the normal inverse transformation matrix NxN, and is the simplified transformation matrix T shown in mathematical expression 5. RxN and is in a transpose relationship.
[0148] Matrix T in the Reduced Inv. Transform block shown in (b) of Fig. 6 t is the simplified inverse matrix T NxR It can mean. As in (b) of Fig. 6, the simplified inverse transform matrix T for the transform coefficients for the target block NxR When multiplied, the first transform coefficients for the target block or the residual samples for the target block can be derived.
[0149] More specifically, when a simplified inverse transform is applied based on a second-order inverse transform, a simplified inverse transform matrix T is applied to the transform coefficients for the target block. NxR When the first inverse transform is multiplied, the first-order transform coefficients for the target block can be derived. On the other hand, when the simplified inverse transform is applied based on the first inverse transform, the simplified inverse transform matrix T is derived for the transform coefficients for the target block. NxR When multiplied, residual samples for the target block can be derived.
[0150] In one embodiment, when the size of the block to which the inverse transformation is applied is 8x8, R=16 (i.e., R / N=16 / 64=1 / 4), and the size of the target block is 64x64, the simplified inverse transformation according to (b) of FIG. 6 can be expressed as a matrix operation as in mathematical expression 8 below.
[0151] [Equation 8]
[0152]
[0153] In mathematical expression 8, c1 to c 16can represent the transform coefficients for the target block. The result of the operation of mathematical expression 8 is the first transform coefficients for the target block or r representing the residual samples for the target block. j can be derived, and r j The derivation process can be as shown in mathematical formula 9.
[0154] [Equation 9]
[0155]
[0156] As a result of the operation of mathematical expression 9, r1 to r representing the first transform coefficients for the target block or the residual samples for the target block N This can be derived. In terms of the size of the inverse transform matrix, the size of the normal inverse transform matrix is 64x64 (NxN), but the size of the simplified inverse transform matrix is reduced to 64x16 (NxR), so compared to performing the normal inverse transform, the memory usage can be reduced by the R / N ratio when performing the simplified inverse transform. In addition, compared to the number of multiplication operations NxN when using the normal inverse transform matrix, the number of multiplication operations can be reduced by the R / N ratio (NxR) when using the simplified inverse transform matrix.
[0157] Figure 7 is a flowchart illustrating a simplified conversion process according to one embodiment of the present invention.
[0158] Each step disclosed in FIG. 7 can be performed by the decoding device (200) disclosed in FIG. 2. More specifically, S700 can be performed by the inverse quantization unit (222) disclosed in FIG. 2, and S710 and S720 can be performed by the inverse transformation unit (223) disclosed in FIG. 2. Therefore, specific details overlapping with those described above in FIG. 2 will be omitted or simplified for brevity.
[0159] In one embodiment, as described above in FIG. 6, the detailed operations according to the (simplified) transformation are just the opposite in order to the detailed operations according to the (simplified) inverse transformation, and the detailed operations according to the (simplified) transformation and the detailed operations according to the (simplified) inverse transformation may be substantially similar. Accordingly, a person skilled in the art will readily understand that the descriptions of S700 to S720 for the simplified inverse transformation described below can be applied identically or similarly to the simplified transformation.
[0160] A decoding device (200) according to one embodiment can perform inverse quantization on quantized transform coefficients for a target block to derive transform coefficients (S700).
[0161] According to one embodiment, a decoding device (200) may select a transform kernel (S710). More specifically, the decoding device (200) may select a transform kernel based on at least one of a transform index, the width and height of an area to which the transform is applied, an intra prediction mode used in image decoding, and information about a color component of a target block. However, the embodiment is not limited thereto, and for example, the transform kernel may be predefined, and separate information for selecting the transform kernel may not be signaled.
[0162] In one example, information about the color component of a target block can be signaled via CIdx. If the target block is a luma block, CIdx can indicate 0, and if the target block is a chroma block, for example, a Cb block or a Cr block, CIdx can indicate a non-zero value (for example, 1).
[0163] A decoding device (200) according to one embodiment can apply a simplified inverse transform to transform coefficients based on a selected transform kernel and a reduced factor (S720).
[0164] Figure 8 is a flowchart illustrating a simplified conversion process according to another embodiment of the present invention.
[0165] Each step disclosed in FIG. 8 may be performed by the decoding device (200) disclosed in FIG. 2. More specifically, S800 may be performed by the inverse quantization unit (222) disclosed in FIG. 2, and S810 to S860 may be performed by the inverse transformation unit (223) disclosed in FIG. 2. Therefore, specific details overlapping with those described above in FIG. 2 will be omitted or simplified for brevity.
[0166] In one embodiment, as described above in FIG. 6, the detailed operations according to the (simplified) transformation are just the opposite in order to the detailed operations according to the (simplified) inverse transformation, and the detailed operations according to the (simplified) transformation and the detailed operations according to the (simplified) inverse transformation may be substantially similar. Accordingly, a person skilled in the art will readily understand that the descriptions of S800 to S860 for the simplified inverse transformation described below can be applied identically or similarly to the simplified transformation.
[0167] According to one embodiment, the decoding device (200) can perform inverse quantization on quantized coefficients for a target block (S800). If the transformation was performed in the encoding device (100), the decoding device (200) can perform inverse quantization on the quantized transform coefficients for the target block in S800 to derive transform coefficients for the target block. Conversely, if the transformation was not performed in the encoding device (100), the decoding device (200) can perform inverse quantization on quantized residual samples for the target block in S800 to derive residual samples for the target block.
[0168] A decoding device (200) according to one embodiment can determine whether transformation has been performed on residual samples for a target block in an encoding device (100) (S810), and if it is determined that transformation has been performed, can parse (or decode from a bitstream) a transform index (S820). The transform index can include a horizontal transform index for transformation in a horizontal direction and a vertical transform index for transformation in a vertical direction.
[0169] In one example, the transform index may include a primary transform index, a core transform index, an NSST index, etc. The transform index may be expressed as, for example, Transform_idx, and the NSST index may be expressed as, for example, NSST_idx. In addition, the horizontal transform index may be expressed as Transform_idx_h, and the vertical transform index may be expressed as Transform_idx_v.
[0170] According to one embodiment, the decoding device (200) may omit operations according to S820 to S860 if it is determined in S810 that conversion has not been performed on residual samples for the target block in the encoding device (100).
[0171] A decoding device (200) according to one embodiment may select a transform kernel based on at least one of a transform index, a width and height of an area to which a transform is applied, an intra prediction mode used in image decoding, and information about a color component of a target block (S830).
[0172] A decoding device (200) according to one embodiment can determine whether conditions for performing simplified inverse transformation on transform coefficients for a target block are met (S840).
[0173] In one example, if the width and height of the area to which the simplified inverse transform is applied are each greater than the first coefficient, the decoding device (200) may determine that the condition for performing the simplified inverse transform on the transform coefficients for the target block is met.
[0174] In another example, if the product of the width and height of the area to which the simplified inverse transform is applied is greater than the second coefficient and the smaller of the width and height of the area to which the simplified inverse transform is applied is greater than the third coefficient, the decoding device (200) may determine that the condition for performing the simplified inverse transform on the transform coefficients for the target block is met.
[0175] In another example, if the width and height of the area to which the simplified inverse transform is applied are each less than or equal to the fourth coefficient, the decoding device (200) may determine that the condition for performing the simplified inverse transform on the transform coefficients for the target block is met.
[0176] In another example, if the product of the width and height of the area to which the simplified inverse transform is applied is less than or equal to the fifth coefficient and the smaller of the width and height of the area to which the simplified inverse transform is applied is less than or equal to the sixth coefficient, the decoding device (200) may determine that the condition for performing the simplified inverse transform on the transform coefficients for the target block is met.
[0177] In another example, if at least one of the following conditions is satisfied: the width and the height of the region to which the simplified inverse transform is applied are each greater than the first coefficient; the product of the width and the height of the region to which the simplified inverse transform is applied is greater than the second coefficient and the smaller of the width and the height of the region to which the simplified inverse transform is applied is greater than the third coefficient; the width and the height of the region to which the simplified inverse transform is applied are each less than or equal to the fourth coefficient; and the product of the width and the height of the region to which the simplified inverse transform is less than or equal to the fifth coefficient and the smaller of the width and the height of the region to which the simplified inverse transform is applied is less than or equal to the sixth coefficient, the decoding device (200) may determine that the conditions for performing the simplified inverse transform on the transform coefficients for the target block are satisfied.
[0178] In the above examples, the first to sixth coefficients may be any predefined positive integers. For example, the first to sixth coefficients may be 4, 8, 16, or 32.
[0179] According to one embodiment, the simplified inverse transform can be applied to a square area included in a target block (i.e., when the width and height of the area to which the simplified inverse transform is applied are the same), and in some cases, the width and height of the area to which the simplified inverse transform is applied can be fixed to the values of predefined coefficients (e.g., 4, 8, 16, 32, etc.). Meanwhile, the area to which the simplified inverse transform is applied is not limited to a square area, and the simplified inverse transform can also be applied to a rectangular area or a non-rectangular area. A more specific description of the area to which the simplified inverse transform is applied will be described later with reference to FIG. 10.
[0180] In one example, whether a condition for performing a simplified inverse transformation is met can be determined based on the transformation index. In other words, the transformation index can indicate whether a transformation has been performed on the target block.
[0181] The decoding device (200) according to one embodiment may perform (regular) inverse transform on the transform coefficients for the target block if it is determined that the conditions for performing simplified inverse transform are not met in S840. As described above in FIG. 3, the (inverse) transform may include, but is not limited to, DCT2, DCT4, DCT5, DCT7, DCT8, DST1, DST4, DST7, NSST, JEM-NSST (HyGT), etc.
[0182] According to one embodiment, the decoding device (200) can perform simplified inverse transformation on the transform coefficients for the target block when it is determined that the conditions for performing simplified inverse transformation are met in S840 (S860).
[0183] FIG. 9 is a flowchart illustrating a simplified transformation process based on a non-separable second-order transformation according to one embodiment of the present invention.
[0184] Each step disclosed in FIG. 9 can be performed by the decoding device (200) disclosed in FIG. 2, and more specifically, S900 can be performed by the inverse quantization unit (222) disclosed in FIG. 2, and S910 to S980 can be performed by the inverse transformation unit (223) disclosed in FIG. 2. In addition, S900 of FIG. 9 corresponds to S800 of FIG. 8, S940 of FIG. 9 corresponds to S830 of FIG. 8, and S950 of FIG. 9 corresponds to S840 of FIG. 8. Therefore, specific details overlapping with the above-described contents in FIG. 2 and FIG. 8 will be omitted or simplified for brevity.
[0185] In one embodiment, as described above in FIG. 6, the detailed operations according to the (simplified) transformation are just the opposite in order to the detailed operations according to the (simplified) inverse transformation, and the detailed operations according to the (simplified) transformation and the detailed operations according to the (simplified) inverse transformation may be substantially similar. Accordingly, a person skilled in the art will readily understand that the descriptions of S900 to S980 for the simplified inverse transformation described below can be applied identically or similarly to the simplified transformation.
[0186] A decoding device (200) according to one embodiment can perform inverse quantization on quantized coefficients for a target block (S900).
[0187] A decoding device (200) according to one embodiment can determine whether NSST has been performed on residual samples for a target block in an encoding device (100) (S910), and if it is determined that NSST has been performed, can parse (or decode from a bitstream) an NSST index (S920).
[0188] A decoding device (200) according to one embodiment can determine whether the NSST index is greater than 0 (S930), and if it is determined that the NSST index is greater than 0, a transformation kernel can be selected based on at least one of the NSST index, the width and height of the area to which the NSST is applied, the intra prediction mode, and information on the color component of the target block (S940).
[0189] A decoding device (200) according to one embodiment can determine whether conditions for performing simplified inverse transformation on transform coefficients for a target block are met (S950).
[0190] In one embodiment, the decoding device (200) may perform (normal) inverse inverse transformation not based on simplified inverse transformation on the transform coefficients for the target block, if it is determined that the conditions for performing simplified inverse transformation are not met in S950.
[0191] A decoding device (200) according to one embodiment may perform an inverse NSST based on a simplified inverse transform on transform coefficients for a target block when it is determined that a condition for performing a simplified inverse transform is met in S950.
[0192] According to one embodiment, the decoding device (200) may omit operations according to S920 to S970 if it is determined in S910 that NSST has not been performed on residual samples for the target block in the encoding device (100).
[0193] According to one embodiment, the decoding device (200) may omit operations according to S940 to S970 if it is determined in S930 that the NSST index is not greater than 0.
[0194] A decoding device (200) according to one embodiment can perform a first inverse transform on the first transform coefficients of a target block derived by applying an inverse NSST. When the first inverse transform is performed on the first transform coefficients, residual samples for the target block can be derived.
[0195] FIG. 10 is a diagram illustrating a block to which a simplified transformation is applied according to one embodiment of the present invention.
[0196] As described above in FIG. 8, the area to which the simplification (inverse) transformation is applied within the target block is not limited to a square area, and the simplification transformation can also be applied to a rectangular area or a non-rectangular area.
[0197] Fig. 10 illustrates an example in which a simplification transformation is applied to a non-rectangular area within a target block (1000) having a size of 16x16. Ten shaded blocks (1010) in Fig. 10 represent areas within the target block (1000) to which a simplification transformation is applied. Since the size of each minimum unit block is 4x4, according to the example in Fig. 10, the simplification transformation is applied to ten 4x4 pixels (i.e., the simplification transformation is applied to 160 pixels). When R=16, the size of the simplification transformation matrix can be 16x160.
[0198] Meanwhile, those skilled in the art will readily understand that the arrangement of the minimum unit blocks (1010) included in the area to which the simplification transformation is applied, as illustrated in FIG. 10, is merely one of countless examples. For example, the minimum unit blocks included in the area to which the simplification transformation is applied may not be adjacent to each other, and may even share only one vertex.
[0199] FIG. 11 is a flowchart illustrating the operation of a video encoding device according to one embodiment of the present invention.
[0200] Each step disclosed in FIG. 11 may be performed by the encoding device (100) disclosed in FIG. 1. More specifically, S1100 may be performed by the subtraction unit (121) disclosed in FIG. 1, S1110 may be performed by the conversion unit (122) disclosed in FIG. 1, S1120 may be performed by the quantization unit (123) disclosed in FIG. 1, and S1130 may be performed by the entropy encoding unit (130) disclosed in FIG. 1. In addition, the operations according to S1100 to S1130 are based on some of the contents described above in FIGS. 6 to 10. Therefore, specific contents overlapping with the contents described above in FIGS. 1 and 6 to 10 will be omitted or simplified for brevity.
[0201] An encoding device (100) according to one embodiment can derive residual samples for a target block (S1100).
[0202] An encoding device (100) according to one embodiment can derive transform coefficients for a target block based on a simplified transform for residual samples (S1110). In one example, the simplified transform can be performed based on a simplified transform matrix, and the simplified transform matrix can be a non-square matrix with fewer rows than columns.
[0203] In one embodiment, S1110 may include a step of determining whether a condition for applying a simplification transformation is met, a step of generating and encoding a transformation index based on the determination, a step of selecting a transformation kernel, and a step of applying a simplification transformation to residual samples based on the selected transformation kernel and a simplification factor if the condition for applying the simplification transformation is met. At this time, the size of the simplification transformation matrix may be determined based on the simplification factor.
[0204] If the simplified transform according to S1110 is based on the first transform, the first transform coefficients for the target block can be derived by performing the simplified transform on the residual samples for the target block. The decoding device (200) can perform NSST on the first transform coefficients for the target block, and at this time, the NSST can be performed based on the simplified transform or not based on the simplified transform. If the NSST is performed based on the simplified transform, it can correspond to the operation according to S1110.
[0205] An encoding device (100) according to one embodiment can perform quantization based on transform coefficients for a target block to derive quantized transform coefficients (S1120).
[0206] An encoding device (100) according to one embodiment can encode information regarding quantized transform coefficients (S1130). More specifically, the encoding device (100) can generate information regarding quantized transform coefficients and encode information regarding the generated quantized transform coefficients. The information regarding the quantized transform coefficients can include residual information.
[0207] In one example, information about quantized transform coefficients may include at least one of information about whether a simplification transform is applied, information about a simplification factor, information about a minimum transform size for applying the simplification transform, and information about a maximum transform size for applying the simplification transform. A more detailed description of information about quantized transform coefficients will be provided later in FIG. 12.
[0208] Referring to S1110, it can be confirmed that the transform coefficients for the target block are derived based on the simplified transform for the residual samples. In terms of the size of the transform matrix, the size of the normal transform matrix is NxN, but the size of the simplified transform matrix is reduced to RxN, so that the memory usage can be reduced by the R / N ratio when performing the simplified transform compared to performing the normal transform. In addition, compared to the number of multiplication operations (NxN) when using the normal transform matrix, the number of multiplication operations can be reduced by the R / N ratio (RxN) when using the simplified transform matrix. In addition, since only R transform coefficients are derived when the simplified transform is applied, the total number of transform coefficients for the target block is reduced from N to R compared to N transform coefficients derived when the normal transform is applied, so that the amount of data that the encoding device (100) transmits to the decoding device (200) can be reduced. In summary, according to S1110, the conversion efficiency and coding efficiency of the encoding device (100) can be increased through simplified conversion.
[0209] FIG. 12 is a flowchart illustrating the operation of a video decoding device according to one embodiment of the present invention.
[0210] Each step disclosed in FIG. 12 may be performed by the decoding device (200) disclosed in FIG. 2. More specifically, S1200 may be performed by the entropy decoding unit (210) disclosed in FIG. 2, S1210 may be performed by the inverse quantization unit (222) disclosed in FIG. 2, S1220 may be performed by the inverse transformation unit (223) disclosed in FIG. 2, and S1230 may be performed by the addition unit (240) disclosed in FIG. 2. In addition, the operations according to S1200 to S1230 are based on some of the contents described above in FIGS. 6 to 10. Therefore, specific contents overlapping with the contents described above in FIGS. 2 and 6 to 10 will be omitted or simplified for brevity.
[0211] A decoding device (200) according to an embodiment can derive quantized transform coefficients for a target block from a bitstream (S1200). More specifically, the decoding device (200) can decode information about quantized transform coefficients for the target block from the bitstream, and derive quantized transform coefficients for the target block based on the information about the quantized transform coefficients for the target block. The information about the quantized transform coefficients for the target block can be included in a Sequence Parameter Set (SPS) or a slice header, and can include at least one of information about whether a simplification transform is applied, information about a simplification factor, information about a minimum transform size for applying a simplification transform, information about a maximum transform size for applying a simplification transform, and information about a simplification inverse transform size.
[0212] More specifically, information about whether a simplification transformation is applied may be indicated via an availability flag, information about a simplification factor may be indicated via a simplification factor value, information about a minimum transformation size for applying a simplification inverse transformation may be indicated via a minimum transformation size value, information about a maximum transformation size for applying a simplification inverse transformation may be indicated via a maximum transformation size value, and information about the size of the simplification inverse transformation may be indicated via a size value of the simplification inverse transformation. In this case, the availability flag may be signaled via a first syntax element, the simplification factor value may be signaled via a second syntax element, the minimum transformation size value may be signaled via a third syntax element, the maximum transformation size value may be signaled via a fourth syntax element, and the simplification inverse transformation size value may be signaled via a fifth syntax element.
[0213] In one example, the first syntax element may be represented by the syntax element Reduced_transform_enabled_flag. If the simplification transformation is applied, the syntax element Reduced_transform_enabled_flag may indicate 1, and if the simplification transformation is not applied, the syntax element Reduced_transform_enabled_flag may indicate 0. If the syntax element Reduced_transform_enabled_flag is not signaled, the value of the syntax element Reduced_transform_enabled_flag may be assumed to be 0.
[0214] In addition, the second syntax element can be expressed as a syntax element Reduced_transform_factor. The syntax element Reduced_transform_factor can indicate a value of R / N, where N can mean the square of the length of a star of the block to which the transformation is applied or the total number of transformation coefficients corresponding to the block to which the transformation is applied. R can mean a simplification coefficient smaller than N. However, the example is not limited thereto, and for example, Reduced_transform_factor can indicate R instead of R / N. In terms of the simplified inverse transform matrix, R means the number of columns of the simplified inverse transform matrix, and N means the number of rows of the simplified inverse transform matrix, and in this case, the number of columns of the simplified inverse transform matrix must be less than the number of rows. R can be a value such as 8, 16, or 32, but is not limited thereto. If the syntax element Reduced_transform_factor is not signaled, the value of Reduced_transform_factor can be estimated as R / N (or R).
[0215] Additionally, the third syntax element can be expressed as the syntax element min_reduced_transform_size. If the syntax element min_reduced_transform_size is not signaled, the value of min_reduced_transform_size can be assumed to be 0.
[0216] Additionally, the fourth syntax element can be expressed as a syntax element max_reduced_transform_size. If the syntax element max_reduced_transform_size is not signaled, the value of max_reduced_transform_size can be assumed to be 0.
[0217] Additionally, the fifth syntax element can be expressed by the syntax element reduced_transform_size. The size value of the simplified inverse transform signaled by the syntax element reduced_transform_size can represent, but is not limited to, the size of the area to which the simplified inverse transform is applied or the size of the simplified transformation matrix. If the syntax element reduced_transform_size is not signaled, the value of reduced_transform_size can be assumed to be 0.
[0218] An example of information about quantized transform coefficients for a target block being signaled in the SPS is shown in Table 3 below.
[0219] [Table 3]
[0220]
[0221] A decoding device (200) according to one embodiment can perform inverse quantization on quantized transform coefficients for a target block to derive transform coefficients (S1210).
[0222] A decoding device (200) according to one embodiment can derive residual samples for a target block based on a simplified inverse transform for transform coefficients (S1220). In one example, the simplified inverse transform can be performed based on a simplified inverse transform matrix, and the simplified inverse transform matrix can be a non-square matrix with fewer columns than rows.
[0223] In one embodiment, S1220 may include a step of decoding a transform index, a step of determining whether a condition for applying a simplified inverse transform is met based on the transform index, a step of selecting a transform kernel, and a step of applying a simplified inverse transform to transform coefficients based on the selected transform kernel and a simplification factor if the condition for applying the simplified inverse transform is met. At this time, the size of the simplified inverse transform matrix may be determined based on the simplification factor.
[0224] If the simplified inverse transform according to S1220 is based on the inverse NSST, the first transform coefficients for the target block can be derived by performing the simplified inverse transform on the transform coefficients for the target block. The decoding device (200) can perform the first inverse transform on the first transform coefficients for the target block, and at this time, the first inverse transform can be performed based on the simplified inverse transform or not based on the simplified inverse transform.
[0225] Alternatively, if the simplified inverse transform according to S1220 is based on the first inverse transform, residual samples for the target block can be directly derived by performing the simplified inverse transform on the transform coefficients for the target block.
[0226] A decoding device (200) according to one embodiment can generate a restored picture based on residual samples for a target block and prediction samples for the target block (S1230).
[0227] Referring to S1220, it can be confirmed that residual samples for the target block are derived based on a simplified inverse transform for the transform coefficients for the target block. In terms of the size of the inverse transform matrix, the size of the normal inverse transform matrix is NxN, but the size of the simplified inverse transform matrix is reduced to NxR, so that the memory usage can be reduced by an R / N ratio when performing a simplified transform compared to performing a normal transform. In addition, compared to the number of NxN multiplication operations when using a normal inverse transform matrix, the number of multiplication operations can be reduced by an R / N ratio (NxR) when using a simplified inverse transform matrix. In addition, since only R transform coefficients need to be decoded when applying the simplified inverse transform, the total number of transform coefficients for the target block can be reduced from N to R, compared to N transform coefficients that need to be decoded when applying the normal inverse transform, so that the decoding efficiency can be increased. In summary, according to S1220, the (inverse) transformation efficiency and coding efficiency of the decoding device (200) can be increased through simplified inverse transformation.
[0228] The internal components of the aforementioned device may be processors that execute sequential execution processes stored in memory, or hardware components composed of other hardware. These may be located inside or outside the device.
[0229] The modules described above may be omitted or replaced by other modules that perform similar / identical operations depending on the embodiment.
[0230] The method according to the present invention described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present invention can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.
[0231] While the methods described in the above-described embodiments are described based on a flowchart as a series of steps or blocks, the present invention is not limited to the order of the steps, and certain steps may occur in a different order or simultaneously with other steps described above. Furthermore, those skilled in the art will appreciate that the steps depicted in the flowchart are not exclusive, and that other steps may be included, or one or more steps in the flowchart may be deleted, without affecting the scope of the present invention.
[0232] When the embodiments of the present invention are implemented in software, the above-described method may be implemented as a module (process, function, etc.) that performs the above-described function. The module may be stored in memory and executed by a processor. The memory may be internal or external to the processor and may be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or a data processing device. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices.
Claims
1. In a video decoding method performed by a decoding device, A step of deriving quantized transform coefficients for a target block from a bitstream; A step of dequantizing the quantized transform coefficients for the target block to derive the transform coefficients; A step of deriving residual samples for the target block based on a reduced inverse transform of the above transformation coefficients; and A step of generating a restored picture based on residual samples for the target block and prediction samples for the target block, An image decoding method, wherein the above-mentioned simplified inverse transformation is performed based on a simplified inverse transformation matrix, and the simplified inverse transformation matrix is a non-square matrix having fewer columns than rows.
2. In paragraph 1, The step of deriving residual samples for the target block based on the above simplified inverse transformation is as follows: Step of decoding the transformation index; A step of determining whether a condition for applying the simplified inverse transformation is met based on the above transformation index; a step of selecting a transform kernel; and If the conditions for applying the above simplified inverse transformation are met, a step of applying the simplified inverse transformation to the transformation coefficients based on the selected transformation kernel and the simplified factor is included. An image decoding method, characterized in that the size of the above-mentioned simplified inverse transform matrix is determined based on the above-mentioned simplification factor.
3. In paragraph 2, A video decoding method, characterized in that the transformation kernel is selected based on at least one of the transformation index, the width and height of the area to which the simplified inverse transformation is applied, the intra prediction mode used in the video decoding, and information about the color component of the target block.
4. In paragraph 2, A video decoding method, characterized in that the conditions for applying the simplified inverse transform include at least one of the following conditions: a condition in which the width and the height of the area to which the simplified inverse transform is applied are each greater than a first coefficient; a condition in which the product of the width and the height of the area to which the simplified inverse transform is applied is greater than a second coefficient and the smaller of the width and the height of the area to which the simplified inverse transform is applied is greater than a third coefficient; a condition in which the width and the height of the area to which the simplified inverse transform is applied are each less than or equal to a fourth coefficient; and a condition in which the product of the width and the height of the area to which the simplified inverse transform is applied is less than or equal to a fifth coefficient and the smaller of the width and the height of the area to which the simplified inverse transform is applied is less than or equal to a sixth coefficient.
5. In paragraph 1, An image decoding method, characterized in that the width and height of the area to which the simplified inverse transformation is applied within the target block are mutually identical.
6. In paragraph 1, The above simplified inverse transformation is performed based on a second-order transformation, An image decoding method, characterized in that the area to which the secondary transformation is applied within the target block has a non-rectangular shape.
7. In paragraph 1, The SPS (Sequence Parameter Set) or slice header included in the above bitstream is A video decoding method, characterized in that it includes at least one of information on whether the simplified inverse transform is applied, information on the simplification factor, information on the minimum transformation size to which the simplified inverse transform is applied, information on the maximum transformation size to which the simplified inverse transform is applied, and information on the simplified inverse transform size.
8. In paragraph 7, The SPS or the slice header included in the bitstream includes at least one of an available flag indicating information on whether the simplified inverse transform is applied, a simplification factor value indicating information on the simplification factor, a minimum transformation size value indicating information on a minimum transformation size to which the simplified inverse transform is applied, a maximum transformation size value indicating information on a maximum transformation size to which the simplified inverse transform is applied, and a size value of the simplified inverse transform. A video decoding method, characterized in that the available flag is signaled via a first syntax element, the value of the simplification factor is signaled via a second syntax element, the minimum transform size value is signaled via a third syntax element, the maximum transform size value is signaled via a fourth syntax element, and the size value of the simplified inverse transform is signaled via a fifth syntax element.
9. In a video encoding method performed by an encoding device, A step of deriving residual samples for a target block; A step of deriving transform coefficients for the target block based on a reduced transform for the residual samples; A step of performing quantization based on the transform coefficients for the target block to derive quantized transform coefficients; and Including a step of encoding information about the above quantized transform coefficients, An image encoding method, wherein the above-mentioned simplified transformation is performed based on a simplified transformation matrix, and the simplified transformation matrix is a non-square matrix in which the number of rows is less than the number of columns.
10. In paragraph 9, The step of deriving transformation coefficients for the target block based on the above simplified transformation is: A step of determining whether the conditions for applying the above simplified transformation are met; A step of generating and encoding a transformation index based on the above judgment; Step of selecting a transformation kernel; and If the conditions for applying the above simplification transformation are met, a step of applying the simplification transformation to the residual samples based on the selected transformation kernel and simplification factor is included. An image encoding method, characterized in that the size of the above-mentioned simplified transformation matrix is determined based on the above-mentioned simplified factor.
11. In paragraph 10, A video encoding method, characterized in that the transformation kernel is selected based on at least one of the transformation index, the width and height of the area to which the simplification transformation is applied, the intra prediction mode used in the video encoding, and information on the color component of the target block.
12. In paragraph 10, A video encoding method, characterized in that the conditions for applying the above-mentioned simplified transformation include at least one of the following conditions: a condition in which the width and the height of the area to which the simplified transformation is applied are each greater than a first coefficient; a condition in which the product of the width and the height of the area to which the simplified transformation is applied is greater than a second coefficient and the smaller of the width and the height of the area to which the simplified transformation is applied is greater than a third coefficient; a condition in which the width and the height of the area to which the simplified transformation is applied are each less than or equal to a fourth coefficient; and a condition in which the product of the width and the height of the area to which the simplified transformation is applied is less than or equal to a fifth coefficient and the smaller of the width and the height of the area to which the simplified transformation is applied is less than or equal to a sixth coefficient.
13. In paragraph 9, The above simplified transformation is performed based on a second-order transformation, An image encoding method, characterized in that the area to which the secondary transformation is applied within the target block has a non-rectangular shape.
14. In paragraph 9, A video encoding method, characterized in that the information about the quantized transform coefficients includes at least one of information about whether the simplification transform is applied, information about the simplification factor, information about the minimum transform size to which the simplification transform is applied, information about the maximum transform size to which the simplification transform is applied, and information about the simplification transform size.
15. In a decoding device that performs video decoding, An entropy decoding unit that derives quantized transform coefficients for a target block from a bitstream; A dequantization unit that performs dequantization on quantized transform coefficients for the target block to derive transform coefficients; An inverse transform unit that derives residual samples for the target block based on a simplified inverse transform for the above transformation coefficients; and Including an addition unit that generates a restored picture based on residual samples for the target block and prediction samples for the target block, An image decoding device, wherein the above-mentioned simplified inverse transform is performed based on a simplified inverse transform matrix, and the simplified inverse transform matrix is a non-square matrix having fewer columns than rows.