Inverse quantization device and method used in video decoding device

Through the inverse quantization device and method, quantization coefficients are obtained, quantization parameters are calculated, and inverse quantization matrix is ​​generated, thereby generating transformation coefficients from the quantization coefficients, solving the shortcomings of the coding efficiency and image quality in the processing of high-resolution and high-frame rate video data, and achieving more efficient video compression.

CN119603448APending Publication Date: 2025-03-11HYUNDAI MOTOR CO LTD +2
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411643922.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-08-06
Filing Date
2020-05-15
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

Existing video compression technology faces high resolution and high frame rate video data, encoding efficiency and image quality are difficult to meet new needs.

Method used

An inverse quantization device and method are provided, by obtaining quantized coefficients, calculating quantization parameters, generating an inverse quantization matrix, and using the quantization parameters and inverse quantization matrix to generate transform coefficients from the quantized coefficients.

Benefits of technology

The compression performance of video encoding and decoding devices is improved, and the image quality and encoding efficiency are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119603448A_ABST
    Figure CN119603448A_ABST
Patent Text Reader

Abstract

The present invention relates to an inverse quantization device and method used in a video decoding device. Provided are an inverse quantization device and method for acquiring a quantization coefficient, estimating a quantization parameter in units of a quantization group or a quantization parameter prediction group, generating an inverse quantization matrix for adaptive quantization, and generating a transform coefficient from the quantization coefficient by using the quantization parameter and the inverse quantization matrix.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the PCT patent application entered into China with Chinese patent application number 202080036145.0, invention name “Inverse quantization device and method used in image decoding device”, and application date May 15, 2020.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims priority under 35 U.S.C. §119(a) to Korean Patent Application No. 10-2019-0056976, filed on May 15, 2019, and Korean Patent Application No. 10-2019-0095450, filed on August 6, 2019, the entire contents of which are incorporated herein by reference. Technical Field

[0004] The present invention relates to an inverse quantization device and method used in a video decoding device. More specifically, the present invention relates to an inverse quantization device and method for obtaining quantized coefficients, calculating quantization parameters, generating an inverse quantization matrix, and generating transform coefficients from the quantized coefficients using the quantization parameters and the inverse quantization matrix. Background Art

[0005] The statements in this section merely provide background information related to the present invention and do not constitute prior art.

[0006] Since the amount of video data is larger than that of voice data or still image data, storing or transmitting the video data without compression processing requires a large amount of hardware resources, including memory.

[0007] Accordingly, when storing or transmitting video data, an encoder is usually used to compress the video data to facilitate storage or transmission of the video data. Then, the decoder receives the compressed video data, decompresses and reproduces the video data. Compression technologies used for such videos include H.264 / AVC and High Efficiency Video Coding (HEVC), which has an approximately 40% improvement in coding efficiency over H.264 / AVC.

[0008] However, the image size, resolution and frame rate are gradually increasing, and accordingly, the amount of data to be encoded is also increasing. Therefore, a new compression technology with better encoding efficiency and higher image quality than the existing compression technology is needed. Summary of the invention

[0009] Technical issues

[0010] The main purpose of the present invention is to provide an inverse quantization device and method, which is used to obtain quantized coefficients, calculate quantization parameters in units of quantization groups or quantization parameter prediction groups, generate an inverse quantization matrix for adaptive quantization, and generate transform coefficients from the quantized coefficients using the quantization parameters and the inverse quantization matrix.

[0011] Technical Solution

[0012] According to one aspect of the present invention, there is provided an inverse quantization method, which includes: decoding information about a current block, information about quantized coefficients, information about quantization parameters, delta indexes for an inverse quantization matrix, and delta coefficients of the inverse quantization matrix from a bitstream; calculating quantization parameters based on the information about the quantization parameters; calculating an inferred identifier (ID) based on the information about the current block, and selecting an inverse quantization matrix indicated by the inferred ID, wherein a list for inverse quantization matrices is generated in advance, and the inverse quantization matrix included in the list is generated using a predicted inverse quantization matrix calculated based on the delta index and delta inverse quantization data generated from the delta coefficients; and generating transform coefficients from the quantized coefficients using the quantization parameters and the selected inverse quantization matrix.

[0013] According to another aspect of the present invention, there is provided an inverse quantization apparatus, comprising: an entropy decoder, a quantization parameter calculator, an inverse quantization matrix generator, and a transform coefficient generator, wherein the entropy decoder is configured to decode information about a current block, information about quantized coefficients, information about quantization parameters, a delta index for an inverse quantization matrix, and a delta coefficient of the inverse quantization matrix from a bitstream; the quantization parameter calculator is configured to calculate the quantization parameter based on the information about the quantization parameter; the inverse quantization matrix generator is configured to calculate an inferred identifier (ID) based on the information about the current block, and select an inverse quantization matrix indicated by the inferred ID; the transform coefficient generator is configured to generate transform coefficients from the quantized coefficients using the quantization parameter and the selected inverse quantization matrix, wherein a list for the inverse quantization matrix is ​​generated in advance, and the inverse quantization matrix included in the list is generated using a predicted inverse quantization matrix calculated based on the delta index and delta inverse quantization data generated from the delta coefficient.

[0014] Beneficial Effects

[0015] As is apparent from the above, according to the present embodiment, an inverse quantization apparatus and method are provided, which are used to obtain quantized coefficients, calculate quantization parameters in units of quantization groups or quantization parameter prediction groups, generate inverse quantization matrices for adaptive quantization, and generate transform coefficients from quantized coefficients using quantization parameters and inverse quantization matrices. Thus, the compression performance of video encoding and decoding apparatuses can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 is an exemplary block diagram of a video encoding device capable of implementing the techniques of the present invention.

[0017] Figure 2 A block partition structure using a QTBTTT structure is exemplarily shown.

[0018] Figure 3a and Figure 3b A plurality of intra prediction modes including a wide-angle intra prediction mode are exemplarily shown.

[0019] Figure 4 is an exemplary block diagram of a video decoding device capable of implementing the techniques of the present invention.

[0020] Figure 5 is a block diagram of an inverse quantization apparatus according to an embodiment of the present invention.

[0021] Figure 6 is a conceptual diagram illustrating the size of a QG according to an embodiment of the present invention.

[0022] Figure 7 A method of calculating QP based on each QG according to an embodiment of the present invention is shown.

[0023] Figure 8 is an exemplary diagram of calculating QP based on each QPG when the size of QG is larger than QPG according to an embodiment of the present invention.

[0024] Fig. 9 is an exemplary diagram of calculating QP in units of QG when the size of QPG is greater than QG according to an embodiment of the present invention.

[0025] Fig.10a and Fig.10b is an exemplary diagram of the form of an inverse quantization matrix according to an embodiment of the present invention.

[0026] Fig.11 is a flow chart of an inverse quantization method according to an embodiment of the present invention.

[0027] Reference numerals

[0028] 145: Quantizer 160, 420: Inverse quantizer

[0029] 410: Entropy Decoder 430: Inverse Transformer

[0030] 500: Inverse quantization device

[0031] 502: QP calculator 504: inverse quantization matrix generator

[0032] 506: Transform coefficient generator. DETAILED DESCRIPTION

[0033] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that when reference numerals are added to the constituent elements in the various drawings, the same reference numerals represent the same elements even though the elements are shown in different drawings. In addition, in the following description of the embodiments, the detailed description of the known functions and configurations incorporated herein will be omitted to avoid blurring the subject matter of the embodiments.

[0034] Figure 1 is an exemplary block diagram of a video encoding device capable of implementing the technology of the present invention. Figure 1 A video encoding apparatus and elements of the apparatus are described below.

[0035] The video encoding device includes: an image divider 110, a predictor 120, a subtractor 130, a transformer 140, a quantizer 145, a rearrangement unit 150, an entropy encoder 155, an inverse quantizer 160, an inverse transformer 165, an adder 170, a filtering unit 180 and a memory 190.

[0036] Each element of the video encoding device may be implemented in hardware or software, or a combination of hardware and software. The functions of each element may be implemented as software, and a microprocessor may be implemented to execute the software functions corresponding to each element.

[0037] A video includes multiple images. Each image is divided into multiple regions, and encoding is performed on each region. For example, an image is divided into one or more tiles (tile) or / and slices (slice). Here, one or more tiles can be defined as tile groups. Each tile or slice is divided into one or more coding tree units (coding treeunit, CTU). Each CTU is divided into one or more coding units (coding unit, CU) through a tree structure. The information applied to each CU is encoded as the syntax of the CU, and the information commonly applied to the CU included in a CTU is encoded as the syntax of the CTU. In addition, the information commonly applied to all blocks in a slice is encoded as the syntax of the slice header, and the information applied to all blocks constituting an image is encoded in the picture parameter set (Picture Parameter Set, PPS) or the picture header. In addition, the information commonly referenced by multiple images is encoded in the sequence parameter set (Sequence Parameter Set, SPS). In addition, the information commonly referenced by one or more SPSs is encoded in the video parameter set (VideoParameter Set, VPS). Information commonly applied to one tile or tile group may be encoded as the syntax of a tile header or tile group header.

[0038] The image divider 110 determines the size of a coding tree unit (CTU). Information on the size of the CTU (CTU size) is encoded as a syntax of an SPS or a PPS and transmitted to a video decoding apparatus.

[0039] The image divider 110 divides each image constituting a video into a plurality of CTUs having a predetermined size, and then recursively divides the CTUs using a tree structure. In the tree structure, a leaf node is used as a coding unit (CU), which is a basic unit of coding.

[0040] The tree structure can be a quadtree (QuadTree, QT), a binary tree (BinaryTree, BT), a ternary tree (TernaryTree, TT), or a structure formed by a combination of two or more QT structures, BT structures and TT structures, wherein the quadtree (QT) is a node (or parent node) that is divided into four slave nodes (or child nodes) of the same size, the binary tree (BT) is a node that is divided into two slave nodes, and the ternary tree (TT) is a node that is divided into three slave nodes at a ratio of 1:2:1. For example, a quadtree plus binary tree (QuadTree plus BinaryTree, QTBT) structure can be used, or a quadtree plus binary tree ternary tree (QuadTree plus BinaryTree TernaryTree, QTBTTT) structure can be used. Here, BTTT can be collectively referred to as a multiple-type tree (MTT).

[0041] Figure 2 The QTBTTT segmentation tree structure is shown as an example. Figure 2 As shown, the CTU can be first split into a QT structure. The QT splitting can be repeated until the size of the split block reaches the minimum block size MinQTSize of the leaf node allowed in the QT. The first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the entropy encoder 155, and notified to the video decoding device with a signal. When the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, it can be further split into one or more BT structures or TT structures. The BT structure and / or the TT structure can have multiple splitting directions. For example, there can be two directions, namely, a direction of splitting the blocks of nodes horizontally and a direction of splitting the blocks vertically. As Figure 2As shown, when MTT splitting starts, the entropy encoder 155 encodes a second flag (mtt_split_flag) indicating whether the node is split, a flag indicating the splitting direction (vertical or horizontal) in the case of splitting, and / or a flag indicating the splitting type (binary or trifurcated), and notifies the video decoding device with a signal.

[0042] Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is split into 4 nodes of the lower layer, the CU split flag (split_cu_flag) indicating whether the node is split may be encoded. When the value of the CU split flag (split_cu_flag) indicates that the split is not performed, the block of the node becomes a leaf node in the split tree structure and is used as a coding unit (CU), which is a basic unit of encoding. When the value of the CU split flag (split_cu_flag) indicates that the split is performed, the video encoding device starts encoding the flags from the first flag in the above-described manner.

[0043] When using QTBT as another example of a tree structure, there may be two types of segmentation, namely a type of horizontally segmenting a block into two blocks of the same size (i.e., symmetrical horizontal segmentation) and a type of vertically segmenting a block into two blocks of the same size (i.e., symmetrical vertical segmentation). A segmentation flag (split_flag) indicating whether each node of the BT structure is segmented into blocks of the lower layer and segmentation type information indicating the segmentation type are encoded by the entropy encoder 155 and transmitted to the video decoding device. There may be an additional type of segmenting a block of a node into two asymmetric blocks. Asymmetric segmentation types may include a type of segmenting a block into two rectangular blocks at a size ratio of 1:3, or a type of segmenting a block of a node diagonally.

[0044] A CU may have various sizes according to the QTBT or QTBTTT partitioning of a CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of a QTBTTT) is referred to as a "current block". When QTBTTT partitioning is adopted, the shape of the current block may be a square or a rectangle.

[0045] The predictor 120 predicts the current block to generate a predicted block. The predictor 120 includes an intra predictor 122 and an inter predictor 124.

[0046] Typically, each current block in an image can be predictively encoded. Typically, the prediction of the current block is performed using an intra-frame prediction technique (which uses data from an image that includes the current block) or an inter-frame prediction technique (which uses data from an image that was encoded before the image that includes the current block). Inter-frame prediction includes both unidirectional prediction and bidirectional prediction.

[0047] The intra prediction unit 122 predicts pixels in the current block using pixels (reference pixels) located around the current block in the current image including the current block. There are multiple intra prediction modes according to the prediction direction. For example, Figure 3a As shown, multiple intra prediction modes may include 2 non-directional modes and 65 directional modes, wherein the 2 non-directional modes include a planar mode and a DC mode. The neighboring pixels and equations to be used are defined differently for each prediction mode. The following table lists the intra prediction mode numbers and their names.

[0048] In order to perform effective directional prediction for the current block of rectangular shape, the additional use of Figure 3b The dotted arrows in the figure indicate the directional modes (intra-prediction modes 67 to 80 and -1 to -14). These modes may be referred to as "wide-angle intra-prediction modes". Figure 3b , the arrows indicate the corresponding reference samples used for prediction, rather than indicating the prediction direction. The prediction direction is opposite to the direction indicated by the arrow. The wide-angle intra prediction mode is a mode in which prediction is performed in a direction opposite to a specific direction mode without additional bit transmission when the current block has a rectangular shape. In this case, in the wide-angle intra prediction mode, some wide-angle intra prediction modes that can be used for the current block can be determined based on the ratio of the width to the height of the rectangular current block. For example, when the current block has a rectangular shape with a height less than its width, a wide-angle intra prediction mode (intra prediction modes 67 to 80) with an angle less than 45 degrees can be used. When the current block has a rectangular shape with a width greater than its height, a wide-angle intra prediction mode (intra prediction modes -1 to -14) with an angle greater than -135 degrees can be used.

[0049] The intra-frame predictor 122 may determine an intra-frame prediction mode to be used when encoding the current block. In some examples, the intra-frame predictor 122 may encode the current block using several intra-frame prediction modes and select an appropriate intra-frame prediction mode to be used from the tested modes. For example, the intra-frame predictor 122 may calculate rate-distortion values ​​using rate-distortion analysis of several tested intra-frame prediction modes and may select an intra-frame prediction mode having the best rate-distortion characteristics from the tested modes.

[0050] The intra predictor 122 selects an intra prediction mode from a plurality of intra prediction modes and predicts the current block using adjacent pixels (reference pixels) and equations determined according to the selected intra prediction mode. Information about the selected intra prediction mode is encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0051] The inter-frame predictor 124 generates a prediction block for the current block by motion compensation. The inter-frame predictor 124 searches for a block that is most similar to the current block in a reference image that has been encoded and decoded earlier than the current image, and uses the searched block to generate a prediction block for the current block. Then, the inter-frame predictor generates a motion vector corresponding to the displacement between the current block in the current image and the prediction block in the reference image. Typically, motion estimation is performed on the luminance component, and the motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. Motion information including information about the reference image and information about the motion vector used to predict the current block is encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0052] The subtractor 130 subtracts the prediction block generated by the intra predictor 122 or the inter predictor 124 from the current block to generate a residual block.

[0053] The transformer 140 transforms the residual signal in the residual block having pixel values ​​in the spatial domain into a transform coefficient in the frequency domain. The transformer 140 may transform the residual signal in the residual block using the entire size of the residual block as a transform unit. Alternatively, the residual block may be divided into a plurality of sub-blocks, and the transform may be performed using the sub-blocks as transform units. Alternatively, the residual signal may be transformed by dividing the block into two sub-blocks, namely a transform region and a non-transform region, and using only the transform region sub-block as a transform unit. Here, the transform region sub-block may be one of two rectangular blocks having a size ratio of 1:1 based on a horizontal axis (or a vertical axis). In this case, the entropy encoding unit 155 encodes a flag (cu_sbt_flag) indicating that only the sub-block is transformed, direction (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag), and signals the video decoding device. In addition, the size of the transform region subblock may have a size ratio of 1:3 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) distinguishing the corresponding partition is additionally encoded by the entropy encoder 155 and signaled to the video decoding apparatus.

[0054] The transformer 140 can transform the residual block separately in the horizontal direction and the vertical direction. For the transformation, various types of transformation functions or transformation matrices can be used. For example, paired transformation functions for horizontal transformation and vertical transformation can be defined as a multiple transform set (MTS). The transformer 140 can select a pair of transformation functions with the best transformation efficiency in the MTS, and transform the residual block in the horizontal direction and the vertical direction respectively. The information (mts_idx) about the transformation function pair selected in the MTS is encoded by the entropy encoder 155 and notified to the video decoding device with a signal. The size of the transform block to which the MTS is applied can be limited to 32×32.

[0055] The quantizer 145 quantizes the transform coefficient output from the transformer 140 , and outputs the quantized transform coefficient to the entropy encoder 155 .

[0056] The rearrangement unit 150 may reorganize coefficient values ​​of the quantized residual value.

[0057] The rearrangement unit 150 can change the 2D coefficient array into a 1D coefficient sequence by coefficient scanning. For example, the rearrangement unit 150 can scan the coefficients from the DC coefficient to the coefficients in the high frequency region using a zig-zag scan or a diagonal scan to output a 1D coefficient sequence. Depending on the size of the transform unit and the intra-frame prediction mode, vertical scanning or horizontal scanning can be used instead of zig-zag scanning, wherein the vertical scanning is to scan the two-dimensional array of coefficients in the column direction, and the horizontal scanning is to scan the coefficients in the two-dimensional block shape in the row direction. That is, the scanning mode to be used can be determined among zig-zag scanning, diagonal scanning, vertical scanning, and horizontal scanning according to the size of the transform unit and the intra-frame prediction mode.

[0058] The entropy encoder 155 encodes the one-dimensional quantized transform coefficient output from the rearrangement unit 150 using various encoding techniques such as Context-based Adaptive Binary Arithmetic Code (CABAC) and exponential Golomb to generate a bitstream.

[0059] The entropy encoder 155 encodes information related to block partitioning (e.g., CTU size, CU partition flag, QT partition flag, MTT partition type, and MTT partition direction) so that the video decoding device can partition the block in the same manner as the video encoding device. In addition, the entropy encoder 155 encodes information about a prediction type indicating whether the current block is encoded by intra-frame prediction or inter-frame prediction, and encodes intra-frame prediction information (i.e., information about an intra-frame prediction mode) or inter-frame prediction information (i.e., information about a reference image index and a motion vector) according to the prediction type.

[0060] The inverse quantizer 160 inversely quantizes the quantized transform coefficient output from the quantizer 145 to generate a transform coefficient. The inverse transformer 165 transforms the transform coefficient output from the inverse quantizer 160 from the frequency domain to the spatial domain, and reconstructs a residual block.

[0061] The adder 170 adds the reconstructed residual block and the prediction block generated by the predictor 120 to reconstruct the current block. Pixels in the reconstructed current block are used as reference pixels when performing intra prediction of a subsequent block.

[0062] The filtering unit 180 filters the reconstructed pixels to reduce blocking artifacts, ringing artifacts, and blurring artifacts caused by block-based prediction and transform / quantization. The filtering unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.

[0063] The deblocking filter 180 filters the boundary between the reconstructed blocks to remove the block artifacts caused by block-by-block encoding / decoding, and the SAO filter 184 performs additional filtering on the deblocking filtered video. The SAO filter 184 is a filter for compensating for the difference between the reconstructed pixels and the original pixels caused by lossy encoding.

[0064] The reconstructed blocks filtered by the deblocking filter 182 and the SAO filter 184 are stored in the memory 190. Once all blocks in one image are reconstructed, the reconstructed image can be used as a reference image for inter-frame prediction of blocks in subsequent images to be encoded.

[0065] Figure 4 is an exemplary functional block diagram of a video decoding device capable of implementing the technology of the present invention. Figure 4 A video decoding apparatus and elements of the apparatus are described below.

[0066] The video decoding apparatus may include an entropy decoder 410 , a rearrangement unit 415 , an inverse quantizer 420 , an inverse transformer 430 , a predictor 440 , an adder 450 , a filtering unit 460 , and a memory 470 .

[0067] Similar to Figure 1 In the video encoding device of the present invention, each element of the video decoding device can be implemented by hardware, software, or a combination of hardware and software. In addition, the function of each element can be implemented as software, and the microprocessor can be implemented to execute the software function corresponding to each element.

[0068] The entropy decoder 410 determines a current block to be decoded by decoding a bit stream generated by a video encoding device and extracting information related to block partitioning, and extracts prediction information required for reconstructing the current block, information on a residual signal, and the like.

[0069] The entropy decoder 410 extracts information about the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), determines the size of the CTU, and divides the image into CTUs of the determined size. Then, the decoder determines the CTU as the highest level of the tree structure, that is, the root node, and extracts partition information about the CTU to partition the CTU using the tree structure.

[0070] For example, when the CTU is segmented using the QTBTTT structure, the first flag (QT_split_flag) related to the segmentation of the QT is extracted to segment each node into four nodes of the sublayer. For the node corresponding to the leaf node of the QT, the second flag (MTT_split_flag) related to the segmentation of the MTT and the information about the segmentation direction (vertical / horizontal) and / or the segmentation type (binary / tripartite) are extracted to segment the corresponding leaf node with the MTT structure. Thus, each node below the leaf node of the QT is recursively segmented with the BT or TT structure.

[0071] As another example, when a CTU is split using a QTBTTT structure, a CU split flag (split_cu_flag) indicating whether the CU is split may be extracted. When the corresponding block is split, a first flag (QT_split_flag) may be extracted. In a split operation, after zero or more recursive QT splits, zero or more recursive MTT splits may occur for each node. For example, a CTU may directly undergo MTT splitting without undergoing QT splitting, or may only undergo multiple QT splits.

[0072] As another example, when the CTU is segmented using the QTBT structure, the first flag (QT_split_flag) related to the QT segmentation is extracted, and each node is segmented into four nodes of the lower layer. Then, the segmentation flag (split_flag) indicating whether the node corresponding to the leaf node of the QT is further segmented with the BT and the segmentation direction information are extracted.

[0073] Once the current block to be decoded is determined by tree structure partitioning, the entropy decoder 410 extracts information about the prediction type indicating whether the current block is intra-predicted or inter-predicted. When the prediction type information indicates intra-prediction, the entropy decoder 410 extracts syntax elements of intra-prediction information (intra-prediction mode) of the current block. When the prediction type information indicates inter-prediction, the entropy decoder 410 extracts syntax elements for inter-prediction information, that is, information indicating a motion vector and a reference image referenced by the motion vector.

[0074] The entropy decoder 410 also extracts information about the quantized transform coefficient of the current block as information about the residual signal.

[0075] The rearrangement unit 415 may change a sequence of one-dimensional quantized transform coefficients entropy-decoded by the entropy decoder 410 into a 2-dimensional coefficient array (ie, block) in the reverse order of coefficient scanning performed by the video encoding apparatus.

[0076] The inverse quantizer 420 inversely quantizes the quantized transform coefficients. The inverse transformer 430 inversely transforms the inversely quantized transform coefficients from the frequency domain to the spatial domain to reconstruct a residual signal, thereby generating a residual block of the current block.

[0077] In addition, when the inverse transformer 430 performs inverse transformation on only a partial region (sub-block) of the transform block, the inverse transformer 430 extracts a flag (cu_sbt_flag) indicating that only the sub-block of the transform block has been transformed, directional (vertical / horizontal) information (cu_sbt_horizontal_flag) about the sub-block, and / or position information (cu_sbt_pos_flag) about the sub-block, and inversely transforms the transform coefficient of the sub-block from the frequency domain to the spatial domain. Then, the residual signal is reconstructed, and the region without inverse transformation is filled with a "0" value as a residual block, thereby generating a final residual block of the current block.

[0078] In addition, when MTS is applied, the inverse transformer 430 uses the MTS information (mts_idx) notified by the video encoding device using a signal to determine the transformation function or transformation matrix to be applied in the horizontal direction and the vertical direction, respectively, and uses the determined transformation function to inversely transform the transformation coefficients in the transformation block in the horizontal direction and the vertical direction.

[0079] The predictor 440 may include an intra predictor 442 and an inter predictor 444. The intra predictor 442 is activated when the prediction type of the current block is intra prediction, and the inter predictor 444 is activated when the prediction type of the current block is inter prediction.

[0080] The intra predictor 442 determines an intra prediction mode of a current block among a plurality of intra prediction modes based on a syntax element of the intra prediction mode extracted from the entropy decoder 410 , and predicts the current block using reference pixels around the current block according to the intra prediction mode.

[0081] The inter predictor 444 determines a motion vector of a current block and a reference image referred to by the motion vector using a syntax element of the inter prediction mode extracted by the entropy decoder 410 , and predicts the current block based on the motion vector and the reference image.

[0082] The adder 450 reconstructs the current block by adding the residual block output from the inverse transformer 430 and the prediction block output from the inter predictor 444 or the intra predictor 442. When intra-predicting a subsequent block to be decoded, pixels in the reconstructed current block are used as reference pixels.

[0083] The filtering unit 460 may include a deblocking filter 462 and an SAO filter 464. The deblocking filter 462 performs deblocking filtering on the boundaries between the reconstructed blocks to remove block artifacts caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed blocks after deblocking filtering the corresponding offsets to compensate for the difference between the reconstructed pixels and the original pixels caused by lossy coding. The reconstructed blocks filtered by the deblocking filter 462 and the SAO filter 464 are stored in the memory 470. When all blocks in one image are reconstructed, the reconstructed image is used as a reference image for inter-frame prediction of blocks in subsequent images to be encoded.

[0084] The present embodiment discloses a new quantization technology, which can be implemented by the decoding device described above. More specifically, the present invention provides an inverse quantization device and method for obtaining quantized coefficients, calculating quantization parameters, generating an inverse quantization matrix, and generating transform coefficients from the quantized coefficients using the quantization parameters and the inverse quantization matrix.

[0085] Figure 5 is a block diagram of an inverse quantization apparatus according to an embodiment of the present invention.

[0086] In an embodiment according to the present invention, the inverse quantization device 500 obtains quantized coefficients and a delta quantization parameter (hereinafter, delta QP), calculates a quantization parameter (quantization parameter, QP) based on each quantization group (quantization group, QG) or each quantization parameter prediction group (quantization parameter prediction group, QPG) using the delta QP and the predicted QP, generates an inverse quantization matrix for adaptive quantization, and generates a transform coefficient from the quantized coefficient using the QP and the inverse quantization matrix. In order to generate a transform coefficient for generating a residual signal of a current block, the inverse quantization device 500 includes an entropy decoder 410 and an inverse quantizer 420 included in a decoding device.

[0087] The inverse quantizer 160 included in the encoding device operates similarly to the inverse quantizer 420 included in the decoding device, and thus the inverse quantizer 420 included in the decoding device will be mainly described below.

[0088] The entropy decoder 410 decodes information about the current block, quantized coefficients, the size of QG, the size of QPG, delta QP, a delta index for an inverse quantization matrix, and a delta coefficient of the inverse quantization matrix from the bitstream. Here, the quantized coefficients are generated by the quantizer 145 included in the encoding device.

[0089] As described above, the current block represents a block corresponding to the CU to be encoded or decoded. The decoding device generates a prediction block based on information about the prediction, and reconstructs the current block by adding a residual signal corresponding to the generated prediction block. The predicted signal can be generated based on the prediction mode, reference image information, motion vector information, and motion vector accuracy information using at least one of inter-frame prediction, intra-frame prediction, or intra-block signal replication. The decoding device can generate an inverse transform block by performing entropy decoding on the bitstream, and generate a residual signal by performing at least one of inverse quantization and inverse transformation on the inverse transform block. Therefore, the information about the current block may include information required to generate the prediction block, the inverse transform block, and the residual signal, and to reconstruct the current block. For example, the information about the current block may include a prediction mode, the size of the current block, and information about whether the current block is luminance or chrominance.

[0090] In the inverse quantizer 420, QP (actually, Delta QP) may be applied on a per QG basis. Here, QG represents a CU of the minimum size for which Delta QP may be transmitted. Delta QP is not transmitted from the encoding device on a per transform unit (TU) or CU basis. For a CU whose size is smaller than QG, the QG including the smaller CU transmits Delta QP once, and all CUs in the QG share Delta QP. On the other hand, for a CU whose size is greater than or equal to the QG size, Delta QP may be transmitted on a per QG basis, or one Delta QP may be transmitted for each CU.

[0091] Figure 6 is a conceptual diagram illustrating the size of a QG according to an embodiment of the present invention.

[0092] In this embodiment, the entropy decoder 410 decodes cu_qp_delta_enabled_flag from the bitstream and checks whether encoding is performed using various QPs for each block. When cu_qp_delta_enabled_flag is 1, the entropy decoder 410 may additionally decode diff_cu_qp_delta_depth from the bitstream to determine the size of the QG. Here, diff_cu_qp_delta_depth is the difference between the depth of the minimum coding unit to which the delta QP is applied (composed of cu_qp_delta_abs indicating the size and cu_qp_delta_sign_flag indicating the sign) and the depth of the maximum coding tree. Accordingly, for a block having a depth greater than diff_cu_qp_delta_depth of the current block, the delta QP of the block corresponding to the previous depth in sequence is used without predicting and encoding / decoding the delta QP.

[0093] Figure 6 An example of a QG is shown in which diff_cu_qp_delta_depth is 2. Since a CU with a depth of 3 is located inside a QG with a depth of 2, they use the same delta QP.

[0094] Considering the existence of various types of blocks, the inverse quantizer 420 may predict the QP based on each QPG. That is, in the present embodiment, the unit for transmitting or determining the delta QP may be different from the unit for predicting the QP. In this embodiment, when diff_cu_qp_delta_depth is not 0, the entropy decoder 410 decodes cu_qp_sep_pred_flag from the bitstream to check whether the sizes of the QPG and the QG are equal to each other. When cu_qp_sep_pred_flag is 1, that is, when the sizes of the QG and the QPG are not equal to each other, the entropy decoder 410 may determine the size of the QPG by decoding diff_cu_qp_pred_depth from the bitstream. The QG may include one or more QPGs, or the QPG may include one or more QGs, and each of the QP and the QPG cannot exist across the boundaries of each other.

[0095] In another embodiment according to the present invention, the encoding device and the decoding device may determine the same size of QPG based on the partition depth of the quadtree (QT), the partition depth of the binary tree (BT), and the partition depth of the ternary tree (TT). Alternatively, the encoding device and the decoding device may determine the same size of QPG based on the number of horizontal pixels and the number of vertical pixels of the CU block or the TU block.

[0096] In another embodiment according to the present invention, the encoding device and the decoding device may use the size of the QPG of the preset unit. Alternatively, the decoding device may determine the size of the QPG based on the type of tile group (TG), the index of the time layer and the picture order count, the chroma space subsampling, the frame rate, the picture resolution, etc.

[0097] In this embodiment, the predicted quantization matrix and the delta inverse quantization data are used to generate the inverse quantization matrix. In addition, the direct current (DC) term of the inverse quantization matrix can be generated using the predicted inverse quantization DC and the delta inverse quantization DC.

[0098] The delta index for the inverse quantization matrix can be used to calculate the predicted quantization matrix and the predicted inverse quantization DC.

[0099] The delta coefficients of the inverse quantization matrix may be used to calculate a list of delta inverse quantization data and a list of delta inverse quantization DCs. The list of delta inverse quantization data may include delta inverse quantization data for each of N indexes (where N is a natural number), and the list of delta inverse quantization DCs may include delta inverse quantization DCs for each of M indexes (where M is a natural number less than or equal to N).

[0100] The entropy decoder 410 may decode only K delta coefficients (where K is a natural number) corresponding to some delta inverse quantized data for one index.

[0101] In another embodiment of the present invention, the decoding device can adaptively obtain information about the size, form and coefficients of the inverse quantization matrix using at least one of the following: the horizontal length and vertical length of the inverse transform block, the size of the inverse transform block, the inverse transform kernel, the number of inverse transforms, the type of decoded signal, the prediction mode of the prediction block, the temporal layer values ​​of the prediction block and the image containing the prediction block, and information about the bit depth.

[0102] The inverse quantizer 420 according to the embodiment calculates QP based on each QG or each QPG using the delta QP and the predicted QP, generates an inverse quantization matrix using the delta index of the inverse quantization matrix and the delta coefficient of the inverse quantization matrix, and generates a transform coefficient from the quantized coefficient using the QP and the inverse quantization matrix. Here, the transform coefficient is transmitted to the inverse transformer 430 to generate a residual signal of the current block. The inverse quantizer 420 includes all or part of the QP calculator 502, the inverse quantization matrix generator 504, and the transform coefficient generator 506.

[0103] The QP calculator 502 according to an embodiment calculates the QP using the delta QP and the predicted QP on a per-QG or per-QPG basis.

[0104] Figure 7 A method of calculating QP based on each QG according to an embodiment of the present invention is shown.

[0105] When the QP and the QPG have the same size, the QP calculator 502 may calculate the QP of the QG unit (eg, CU) as shown in Equation 1.

[0106] [Equation 1]

[0107]

[0108] Here, with respect to the upper left position D of QG, the block containing A is located above D, and the block containing L is located to the left of D. In addition, QP A is the QP at position A, QP L is the QP at position L, DQP D is the delta QP at position D. QP offset is a preset offset for QP calculation. As shown in Equation 1, the QP calculator 502 can predict the QP of QG by averaging the QP at position A and the QP at position L, and then calculate QP by adding the predicted QP of QG, the delta QP at position D, and the preset offset. QG , the QP QGis the quantization parameter of QG.

[0109] Figure 8 is an exemplary diagram of calculating QP based on each QPG when the size of QG is larger than QPG according to an embodiment of the present invention.

[0110] When the size of the QG is greater than the size of the QPG, and the QPG and the CU have the same size, the QP calculator 502 may calculate the QP for the QPG unit as shown in Equation 2.

[0111] [Equation 2]

[0112]

[0113] Here, relative to the upper left position D of QG, the position Ai (i=0, ..., 3) is located above QPG (CU0, CU1, CU2 or CU3), and the position Li (i=0, ..., 3) is located to the left of QPG. Ai is the QP of position Ai, QP Li is the QP of position Li, and DQP D As shown in Equation 2, the QP calculator 502 may predict the QP of each QPG by averaging the QP at the position Ai and the QP at the position Li, and then calculate the QP of each QPG by adding the predicted QP of each QPG, the delta QP of the QG, and a preset offset.

[0114] Fig. 9 is an exemplary diagram of calculating QP in units of QG when the size of QPG is greater than QG according to an embodiment of the present invention.

[0115] When the size of QPG is greater than the size of QG, and QG and CU have the same size, the QP calculator 502 may calculate the QP of the QG unit as shown in Equation 3.

[0116] [Equation 3]

[0117]

[0118] Here, relative to position D0 at the upper left of QG (CU0), position A is located above QG, and position L is located to the left of QG. A is the QP at position A, QP L is the QP of position L, and DQP Di (i=0, ..., 3) is the delta QP of QG (CU0, CU1, CU2 or CU3). As shown in Equation 3, the QP calculator 502 can predict the QP of the QPG by averaging the QP at position A and the QP at position L, and then calculate the QP of the predicted QPG by dividing the Qp, DQP DiThe QP of each QG is calculated by adding the delta QP of the QG and the preset offset.

[0119] In another embodiment according to the present invention, the QP calculator 502 may select the QPs of the neighboring blocks above and to the left of the QP calculation unit (e.g., QG or QPG) based on the number of horizontal pixels and the number of vertical pixels of the QP calculation unit to predict the QP of the QP calculation unit.

[0120] In another embodiment according to the present invention, when the current block is a chroma block and has a single tree structure, the QP calculator 502 may predict the QP of the chroma block by selecting the QP of the luminance block corresponding to the same position as the current block. On the other hand, when the current block is a chroma block and has a dual tree structure, the QP calculator 502 may predict the QP of the chroma block by selecting the QP of the luminance block corresponding to the center position of the QPG. Alternatively, the QP of the chroma block may be predicted based on the QPs of all luminance blocks corresponding to the QPG.

[0121] In another embodiment according to the present invention, when the current TG is a P (predictive) or B (bidirectional) TG, the intra QP prediction mode or the inter QP prediction mode is determined based on the statistical information of the prediction mode of the sub-block of the current QPG. In the case where the intra QP prediction mode is determined, the QP calculator 502 can predict the QP using one of all the above methods. On the other hand, in the case where the inter QP prediction mode is determined, the QP calculator 502 can predict the QP by calculating the motion vector and the reference picture list index, and selecting the QP value of the block corresponding to the position of the motion vector of the image corresponding to the reference picture list index. Here, in the case of the bidirectional inter prediction mode, the QP can be predicted based on the QP predicted in each direction.

[0122] In another embodiment according to the present invention, after receiving one or more indexes specifying a table storing a QP used in a TU of a previous block, the QP calculator 502 may predict the QP using the QP specified by the indexes.

[0123] The inverse quantization matrix generator 504 according to the present embodiment calculates an inferred identifier (ID) from information on the current block, and selects an inverse quantization matrix indicated by the inferred ID.

[0124] The inverse quantization matrix generator 504 generates an inferred ID using information about the current block, such as prediction mode, size, luminance and chrominance information, etc. The inverse quantization matrix generator 504 selects an inverse quantization matrix indicated by the inferred ID in the inverse quantization matrix list.

[0125] In order to select the inverse quantization matrix, the inverse quantization matrix generator 504 generates an inverse quantization matrix list for N indexes. The list may include an inverse quantization matrix for each of the N indexes. Here, the N indexes may be preset based on information about the current block supported by the decoding device (e.g., prediction mode, size, brightness and chrominance information, etc.). In addition, the inverse quantization matrix of the N indexes may be calculated using the delta inverse quantization data list for the N indexes.

[0126] For each of the N indexes, the inverse quantization matrix generator 504 calculates a reference index using the index and the delta index, and calculates a predicted inverse quantization matrix based on the reference inverse quantization matrix indicated by the reference index. When the delta index is zero, the predicted inverse quantization matrix can be set to a constant. For each of the N indexes, the inverse quantization matrix generator 504 can generate delta inverse quantization data according to the delta coefficients, and generate an inverse quantization matrix using the predicted inverse quantization matrix and the delta inverse quantization data. For example, the predicted inverse quantization matrix and the delta inverse quantization data can be added to each other to generate an inverse quantization matrix.

[0127] As the reference inverse quantization matrix, the inverse quantization matrix indicated by the reference index may be reused.

[0128] In the case of a prediction mode using only a reference inverse quantization matrix, the inverse quantization matrix generator 504 may generate an inverse quantization matrix using only an inverse quantization matrix predicted by setting delta inverse quantization data to zero.

[0129] In this embodiment, the inverse quantization matrix can have various sizes, forms and coefficients. The decoding device can obtain information about the inverse quantization matrix using at least one of a method of using a fixed value according to a protocol between the encoding / decoding devices, a method of transmitting inverse quantization related information in the form of a list from the encoding device to the decoding device, or a method of transmitting inverse quantization information for updating a portion of fixed values.

[0130] Based on the list of inverse quantization matrices generated as described above, the decoding device can select an inverse quantization matrix using an index inferred from information about the current block.

[0131] In this embodiment, the index of the inverse quantization matrix can be inferred by using at least one of a method of directly transmitting an index from an encoding device to a decoding device, a method of generating an inferred index based on information about a prediction block of a current block and information about a residual signal, a method of generating an inferred index based on an index of an inverse quantization matrix of a pre-decoded adjacent block, or a method of adding a delta index transmitted from the encoding device and an inferred index.

[0132] Fig.10a and Fig.10bis an exemplary diagram of the form of an inverse quantization matrix according to an embodiment of the present invention.

[0133] In this embodiment, the inverse quantization matrix can be an n-dimensional square matrix (where n is a natural number). Here, the dimension n of the inverse quantization matrix can be adaptively determined by one or more of the dimensions of the inverse transform block, the dimensions of the prediction block, the dimensions of the residual signal, or the dimensions of the reconstructed signal of the current block.

[0134] In another embodiment according to the present invention, the dimension of the inverse quantization matrix transmitted from the encoding device to the decoding device may be different from the dimension of the matrix actually used for inverse quantization. The n-dimensional matrix may be formed by combining k-dimensional matrices (where k is a natural number) transmitted from the encoding device and applied to inverse quantization, and weights and offsets may be considered in the matrix combination operation. For example, using Fig.10a The two one-dimensional matrices shown in the figure, the encoding device can form a two-dimensional matrix and then apply it to inverse quantization. Here, the size of the one-dimensional matrix can be adaptively determined according to the horizontal length and vertical length of the inverse transform block, the size of the inverse transform block, the inverse transform kernel, the number of inverse transforms, the type of decoded signal, the prediction mode of the prediction block, the temporal layer value of the prediction block, and at least one of the image or bit depth contained in the prediction block.

[0135] In another embodiment according to the present invention, Fig.10b As shown, the form of the inverse quantization matrix can be a non-rectangular shape or a rectangular shape. These shapes can be adaptively determined or obtained based on the horizontal length and vertical length of the inverse transform block, the size of the inverse transform block, the inverse transform kernel, the number of inverse transforms, the type of decoded signal, the prediction mode of the prediction block, the temporal layer value of the prediction block, and at least one of the image or bit depth contained in the prediction block. That is, based on this information, the form of the inverse quantization matrix can be determined or obtained by using at least one of a method of directly transmitting the form of the inverse quantization matrix from the encoding device to the decoding device, a method of transmitting a list and index information for summarizing the matrix form, or a method of summarizing the form by a rule agreed upon between the encoding device and the decoding device without transmitting additional information.

[0136] In this embodiment, the values ​​of the coefficients of the inverse quantization matrix may be greater than or equal to zero. The coefficients of the inverse quantization matrix may be restricted to non-zero values.

[0137] As described above, the coefficients of the inverse quantization matrix may be generated using the delta coefficients.

[0138] In this embodiment, the coefficients of the inverse quantization matrix can be transmitted by at least one of a method of directly transmitting the value of the coefficient from the encoding device to the decoding device, a method of transmitting the delta coefficient, or a method of transmitting the delta between the current inverse quantization matrix and the inverse quantization matrix with the index of the previous index for the current inverse quantization matrix list. One aspect of the present invention relates to a method of transmitting the delta coefficient and a method of transmitting the delta between the current inverse quantization matrix and the inverse quantization matrix with the previous index. That is, the coefficients transmitted in the bitstream are the delta coefficients between the previous coefficients and the current coefficients in the scanning order. An intermediate inverse quantization matrix is ​​generated by adding the transmitted delta coefficients to the previous coefficients. The intermediate inverse quantization matrix represents the delta inverse quantization data in the present invention. The intermediate inverse quantization matrix refers to the delta between the current inverse quantization matrix and the inverse quantization matrix with the previous index. Therefore, the current inverse quantization matrix can be calculated by adding the intermediate inverse quantization matrix and the inverse quantization matrix with the previous index. When the value of the coefficient has a value greater than or equal to 1, all coefficients can be transmitted using the above method based on the coefficient value -1.

[0139] As described above, only K delta coefficients corresponding to some coefficients of the inverse quantization matrix may be transmitted (where K is a natural number). In the inverse quantization matrix, the transmitted K delta coefficients are used to generate an area for transmitting delta coefficients. The remaining area of ​​the inverse quantization matrix where the delta coefficients are not transmitted may be set to 0 or a predefined fixed value. Alternatively, when scanning a 2D matrix corresponding to the inverse quantization matrix, the K delta coefficients may be used to generate the corresponding coefficients of the inverse quantization matrix, but the remaining area of ​​the inverse quantization matrix where the delta coefficients are not transmitted may be filled with a value generated using a coefficient at a position that has been scanned immediately before.

[0140] For example, when the size of the inverse quantization matrix is ​​8×8, the delta coefficients necessary for generating the lower right 4×4 portion of the inverse quantization matrix may not be transmitted through the bitstream. Delta inverse quantization data filled with predefined fixed values ​​may be used to generate the inverse quantization matrix for the lower right 4×4 region. Alternatively, delta inverse quantization data may be used, which is generated using the delta coefficients decoded immediately before in the scanning order of the inverse quantization matrix. When generating the remaining portion of the inverse quantization matrix other than the lower right 4×4 portion, delta inverse quantization data having a portion generated based on K delta coefficients may be used.

[0141] The values ​​of the K coefficients may be transmitted directly, or delta coefficients from previous coefficients may be transmitted.

[0142] When the coefficient is transmitted in the form of a delta between the current coefficient value and the previous coefficient value or a delta between the current inverse quantization matrix and the inverse quantization matrix indicated by the previous index, the coefficient may have a negative value. In this embodiment, the coefficient value may be divided and transmitted in the form of a sign and its absolute value.

[0143] The inverse quantization matrix generator 504 can select the inverse quantization DC as the DC item of the inverse quantization matrix indicated by the inference ID. Here, the DC item represents the upper left component of the inverse quantization matrix. In order to select the inverse quantization DC, the inverse quantization matrix generator 504 generates a list of inverse quantization DCs for M indexes. The list contains the inverse quantization DC for each of the M indexes. In addition, the inverse quantization DC of the M indexes can be calculated using the list of delta inverse quantization DCs for the M indexes.

[0144] For each of the M indexes, the predicted inverse quantization DC can be calculated using the delta index. When the delta index is zero, the predicted inverse quantization DC can be set to a constant. For each of the M indexes, the inverse quantization matrix generator 504 can generate a delta inverse quantization DC according to the delta coefficient, and calculate the inverse quantization DC using the predicted inverse quantization DC and the delta inverse quantization DC.

[0145] The transmission and acquisition of the inverse quantization matrix for the chrominance component can be performed in the same manner as the transmission and acquisition process of the inverse quantization matrix described above. In addition, without separate transmission, the inverse quantization matrix for the chrominance component can be obtained by applying a process such as downsampling, subsampling or filtering to the inverse quantization matrix of the luminance component using the first matrix according to the sampling rates of the luminance component and the chrominance component. In addition, the second matrix considering the weights and offsets in the first matrix can be used as the inverse quantization matrix of the chrominance component. The weights and offsets can be transmitted based on each transform quantization block. The weights and offsets transmitted from the higher end of the transform quantization block can be shared and used. Here, at least one of a method of transmitting a list of weights and offsets from the higher end and obtaining an index of the list from each chrominance component and a method of receiving the index can be used. In addition, the weights and offsets constituting the list can be directly transmitted, or the delta between the current value and the previous value can be transmitted.

[0146] The transform coefficient generator 506 according to the present embodiment generates transform coefficients from the quantized coefficients using the quantization parameter and the selected inverse quantization matrix. Here, the quantization parameter is equally applied to the entire quantized coefficients, and the inverse quantization matrix can be applied differently to the quantized coefficients of each component.

[0147] The transform coefficient generator 506 generates reconstructed quantized coefficients by multiplying the quantization parameter by the quantized coefficients. The transform coefficient generator 506 calculates the scaling matrix using the selected inverse quantization matrix. In addition, the DC term of the scaling matrix can replace the selected inverse quantization DC.

[0148] In this embodiment, the sizes of the inverse quantization matrix and the scaling matrix may be different. In this case, the transform coefficient generator 506 may generate the scaling matrix by upsampling the inverse quantization matrix.

[0149] When scaling is not applied to the quantized coefficients or a transform skip mode is applied, the transform coefficient generator 506 sets the components of the scaling matrix to the same constant, thereby eliminating the influence of the inverse quantization matrix in generating the transform coefficients.

[0150] The transform coefficient generator 506 generates transform coefficients to be passed to the inverse transformer 430 by multiplying the scaling matrix by the reconstructed quantized coefficients.

[0151] Fig.11 is a flow chart of an inverse quantization method according to an embodiment of the present invention.

[0152] The inverse quantization device 500 according to an embodiment of the present invention decodes information about the current block, quantized coefficients, the size of QG, the size of QPG, a delta quantization parameter (hereinafter referred to as delta QP), a delta index for an inverse quantization matrix, and a delta coefficient of the inverse quantization matrix from a bitstream (S1100).

[0153] The information about the current block may include information necessary to generate a prediction block, a residual signal, and reconstruct the current block. The information about the current block may include, for example, a prediction mode, a size of the current block, and information about whether the current block is luminance or chrominance.

[0154] In the inverse quantization apparatus 500, QP (actually, delta QP) may be applied on a per-QG basis. Accordingly, delta QP may not be transmitted from the encoding apparatus on a per-TU basis, but may be transmitted on a larger QG basis.

[0155] When the sizes of QG and QPG are not equal to each other, the inverse quantization apparatus 500 may decode the size of QPG from the bitstream. QG may include one or more QPGs, or QPG may include one or more QGs, and each of QP and QPG cannot exist across the boundaries of each other.

[0156] In this embodiment, the inverse quantization matrix is ​​generated using the predicted quantization matrix and the delta inverse quantization data. In addition, the direct current (DC) term of the inverse quantization matrix can be generated using the predicted inverse quantization DC and the delta inverse quantization DC.

[0157] The delta index for the inverse quantization matrix can be used to calculate the predicted quantization matrix and the predicted inverse quantization DC.

[0158] The delta coefficients of the inverse quantization matrix can be used to calculate a list of delta inverse quantization data and a list of delta inverse quantization DCs. The list of delta inverse quantization data includes delta inverse quantization data for each of N indexes (where N is a natural number), and the list of delta inverse quantization DCs includes delta inverse quantization DCs for each of M indexes (where M is a natural number less than N).

[0159] The inverse quantization device 500 calculates QP based on the size of QG, the size of QPG, and delta QP (S1102).

[0160] When QP and QPG have the same size, the inverse quantization device 500 can predict the QP of QG by averaging the QPs corresponding to the upper and left positions of the upper left position of QG, and then calculate the QP of QG by adding the delta QP of the upper left position of QG to the predicted QP of QG.

[0161] When the size of the QG is greater than the size of the QPG, that is, when the QG includes multiple QPGs, the inverse quantization device 500 can predict the QP of each QPG by averaging the QPs corresponding to the upper and left positions of the upper left position of each QPG, and then calculate the QP of each QPG by adding the delta QP of the upper left position of the QG to the predicted QP of each QPG.

[0162] On the other hand, when the size of the QG is smaller than the size of the QPG, that is, when the QPG includes multiple QGs, the inverse quantization device 500 can predict the QP of the QPG by averaging the QPs corresponding to the upper and left positions of the upper left position of the QPG, and then calculate the QP of each QG by adding the delta QP of the upper left position of each QG to the predicted QP of the QPG.

[0163] The inverse quantization apparatus 500 calculates an inferred identifier (ID) according to information about the current block, and selects an inverse quantization matrix indicated by the inferred ID (S1104).

[0164] The inverse quantization device 500 generates an inferred ID using information about the current block (eg, prediction mode, size, luminance and chrominance information, etc.) The inverse quantization device 500 selects an inverse quantization matrix indicated by the inferred ID in the inverse quantization matrix list.

[0165] In order to select the inverse quantization matrix, the inverse quantization device 500 generates an inverse quantization matrix list for N indexes. The list may include an inverse quantization matrix for each of the N indexes. Here, the N indexes may be preset based on information about the current block supported by the decoding device (e.g., prediction mode, size, brightness and chrominance information, etc.). In addition, the inverse quantization matrix of the N indexes may be calculated using a list of delta inverse quantization data for the N indexes.

[0166] For each of the N indexes, the inverse quantization device 500 calculates a reference index using the index and the delta index, and calculates a predicted inverse quantization matrix based on the reference inverse quantization matrix indicated by the reference index. When the delta index is zero, the predicted inverse quantization matrix can be set to a constant. For each of the N indexes, the inverse quantization device 500 can generate delta inverse quantization data according to the delta coefficient, and generate an inverse quantization matrix using the predicted inverse quantization matrix and the delta inverse quantization data. For example, the predicted inverse quantization matrix and the delta inverse quantization data can be added to each other to generate an inverse quantization matrix.

[0167] As the reference inverse quantization matrix, the inverse quantization matrix indicated by the reference index may be reused.

[0168] Based on the list of inverse quantization matrices generated as described above, the decoding device can select an inverse quantization matrix using an index inferred from information about the current block.

[0169] In this embodiment, the index of the inverse quantization matrix can be inferred by using at least one of a method of directly transmitting an index from an encoding device to a decoding device, a method of generating an inferred index based on information about a prediction block of a current block and information about a residual signal, a method of generating an inferred index based on an index of an inverse quantization matrix of a pre-decoded adjacent block, or a method of adding a delta index transmitted from the encoding device and an inferred index.

[0170] As described above, the coefficients of the inverse quantization matrix may be generated using the delta coefficients.

[0171] In this embodiment, the coefficients of the inverse quantization matrix can be transmitted using at least one of a method of directly transmitting the values ​​of the coefficients from the encoding device to the decoding device, a method of transmitting delta coefficients, or a method of transmitting the delta between the current inverse quantization matrix and the inverse quantization matrix with a previous index for the index of the current inverse quantization matrix list.

[0172] The inverse quantization device 500 can select the inverse quantization DC as the DC item of the inverse quantization matrix indicated by the inference ID. Here, the DC item represents the upper left component of the inverse quantization matrix. In order to select the inverse quantization DC, the inverse quantization device 500 generates a list of inverse quantization DCs for M indexes. The list contains the inverse quantization DC for each of the M indexes. In addition, the inverse quantization DC of the M indexes can be calculated using the list of delta inverse quantization DCs for the M indexes.

[0173] For each of the M indexes, the predicted inverse quantization DC can be calculated using the delta index. When the delta index is zero, the predicted inverse quantization DC can be set to a constant. For each of the M indexes, the inverse quantization device 500 can generate a delta inverse quantization DC according to the delta coefficient, and calculate the inverse quantization DC using the predicted inverse quantization DC and the delta inverse quantization DC.

[0174] The inverse quantization device 500 generates a transform coefficient from the quantized coefficient using the quantization parameter and the selected inverse quantization matrix (S1106). The inverse quantization device 500 generates a reconstructed quantized coefficient by multiplying the quantization parameter by the quantized coefficient.

[0175] The inverse quantization device 500 calculates a scaling matrix using the selected inverse quantization matrix. In addition, the DC term of the scaling matrix may replace the selected inverse quantization DC. The inverse quantization device 500 generates transform coefficients by multiplying the scaling matrix by the reconstructed quantized coefficients.

[0176] As described above, according to the present embodiment, an inverse quantization apparatus and method are provided, which are used to obtain quantized coefficients, calculate quantization parameters in units of quantization groups or quantization parameter prediction groups, generate inverse quantization matrices for adaptive quantization, and generate transform coefficients from quantized coefficients using quantization parameters and inverse quantization matrices. Thus, the compression performance of video encoding and decoding apparatuses can be improved.

[0177] Although each flow chart according to the present embodiment shows that each operation is performed sequentially, the embodiment is not necessarily limited to this. In other words, the operations shown in the flow chart can be performed in different orders, or one or more operations can be performed in parallel. Accordingly, the flow chart is not limited to the time series order.

[0178] The various functions or methods described in the present invention can be implemented with instructions stored in a non-volatile recording medium, which can be read and executed by one or more processors. Non-volatile recording media include, for example, all types of recording devices in which data is stored in a form readable by a computer system. For example, non-volatile recording media include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSD).

[0179] Although exemplary embodiments of the present invention have been described for illustrative purposes, it will be appreciated by those skilled in the art that various modifications and changes are possible without departing from the spirit and scope of the present invention. For the sake of brevity and clarity, exemplary embodiments have been described. Accordingly, it will be appreciated by those of ordinary skill that the scope of the embodiments is not limited by the embodiments explicitly described above, but is included in the claims and their equivalents.

Claims

1. An inverse quantization method, used by an inverse quantization device, the method comprising: decoding information about the current block, information about quantized coefficients, information about a quantization parameter, a delta index for an inverse quantization matrix, and delta coefficients of the inverse quantization matrix from a bitstream; obtaining a delta quantization parameter from the information on the quantization parameter, and calculating the quantization parameter based on adding the delta quantization parameter to a predicted quantization parameter generated using a quantization parameter corresponding to a position adjacent to the quantization group; obtaining an inferred identifier based on information about a current block, and selecting an inverse quantization matrix indicated by the inferred identifier, wherein a list for inverse quantization matrices is generated in advance, and the inverse quantization matrix included in the list is generated using a predicted inverse quantization matrix calculated based on a delta index and delta inverse quantization data generated from a delta coefficient; and generating transform coefficients from the quantized coefficients using the quantization parameters and the selected inverse quantization matrix, wherein delta coefficients corresponding to a portion of the inverse quantization matrix included in the list are not decoded, The information about the current block includes at least one of a prediction mode for the current block or a size of the current block.

2. The method according to claim 1, wherein: The information about the quantization parameter includes the size of the quantization group and the delta quantization parameter.

3. The method according to claim 2, further comprising: When the size of the quantization group and the size of the quantization parameter prediction group are not equal to each other, the size of the quantization parameter prediction group is decoded.

4. The method according to claim 3, wherein: When the size of the quantization group is larger than the size of the quantization parameter prediction group and the quantization group includes multiple quantization parameter prediction groups, a predicted quantization parameter for each of the quantization parameter prediction groups is generated using quantization parameters corresponding to positions above and to the left of the upper left position of each of the quantization parameter prediction groups, and a quantization parameter for each of the quantization parameter prediction groups is calculated using the predicted quantization parameter for each of the quantization parameter prediction groups and a delta quantization parameter at the upper left position of the quantization group.

5. The method according to claim 3, wherein: When the size of a quantization group is smaller than the size of a quantization parameter prediction group and the quantization parameter prediction group includes multiple quantization groups, a predicted quantization parameter for the quantization parameter prediction group is generated by averaging the quantization parameters corresponding to positions above and to the left of the upper left position of the quantization parameter prediction group, and a quantization parameter for each of the quantization groups is calculated using the predicted quantization parameter for the quantization parameter prediction group and a delta quantization parameter at the upper left position of each of the quantization groups.

6. The method according to claim 3, wherein: When the quantization group and the quantization parameter prediction group have the same size, a predicted quantization parameter is generated using the quantization parameters corresponding to the positions above and to the left of the upper left position of the quantization group, and the quantization parameter for the quantization group is calculated using the predicted quantization parameter and the delta quantization parameter at the upper left position.

7. The method according to claim 1, wherein: When the size of the inverse quantization matrix is ​​8×8, the delta coefficients required to generate the lower right 4×4 portion of the inverse quantization matrix are not included in the bitstream.

8. The method according to claim 1, wherein: When the delta index is zero, an inverse quantization matrix is ​​generated using the predicted inverse quantization matrix with all components set to the same constant and the delta inverse quantization data.

9. The method according to claim 1, wherein: In the prediction mode using only the delta index, the inverse quantization matrix is ​​generated using only the predicted inverse quantization matrix by setting the delta inverse quantization data to zero.

10. The method according to claim 1, further comprising: selects the inverse quantization DC as the DC term of the inverse quantization matrix indicated by the inference identifier, Here, a list of inverse quantized DCs is generated in advance, and the inverse quantized DCs included in the list are calculated using the predicted inverse quantized DCs based on the delta indexes and the delta inverse quantized DCs generated from the delta coefficients.

11. A method for sending encoded video data to a video decoding device, the method comprising: Encode the video data into a bitstream, sending a bit stream to be decoded by a decoding method to a video decoding device, Wherein, the decoding method comprises: decoding information about the current block, information about quantized coefficients, information about a quantization parameter, a delta index for an inverse quantization matrix, and delta coefficients of the inverse quantization matrix from a bitstream; obtaining a delta quantization parameter from the information on the quantization parameter, and calculating the quantization parameter based on adding the delta quantization parameter to a predicted quantization parameter generated using a quantization parameter corresponding to a position adjacent to the quantization group; obtaining an inferred identifier based on information about the current block, and selecting an inverse quantization matrix indicated by the inferred identifier, wherein a list for inverse quantization matrices is generated in advance, and the inverse quantization matrix included in the list is generated using a predicted inverse quantization matrix calculated based on a delta index and delta inverse quantization data generated from a delta coefficient; generating transform coefficients from the quantized coefficients using the quantization parameters and the selected inverse quantization matrix, wherein delta coefficients corresponding to a portion of the inverse quantization matrix included in the list are not decoded, The information about the current block includes at least one of a prediction mode for the current block or a size of the current block.

Citation Information

Patent Citations

  • Method for low latency and power saving communicating in internet of things communication system and apparatus for the same

    KR1020190056976A

  • Pixel structure and operation method, array substrate

    KR1020190095450A