Image decoding method and apparatus using chroma quantization parameters
The image decoding method improves coding efficiency by deriving and signaling CU chroma quantization parameters based on block characteristics, reducing decoding device costs and buffer requirements.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2024-11-13
- Publication Date
- 2026-05-15
AI Technical Summary
The increasing demand for high-resolution, high-quality images leads to higher transmission and storage costs due to increased data volume, necessitating improved image coding efficiency, particularly in chroma quantization parameter derivation.
An image decoding method that includes acquiring CU chroma quantization parameter offset-related information based on block size and type, deriving transformation coefficients, and de-quantizing them to generate a reconstructed picture, with CU chroma QP offset signaled in transform unit syntax.
Reduces decoding device configuration costs and buffer requirements by signaling CU chroma QP offset even when the first transform block has no non-zero coefficients, enhancing coding efficiency.
Smart Images

Figure 0007860203000015 
Figure 0007860203000016 
Figure 0007860203000017
Abstract
Description
[Technical Field]
[0001] This paper relates to image coding technology, and more specifically, to an image decoding method and apparatus for coding CU-level chroma quantization parameter offset-related information in an image coding system. [Background technology]
[0002] Recently, the demand for high-resolution, high-quality images such as HD (High Definition) and UHD (Ultra High Definition) images has been increasing in various fields. As image data becomes higher resolution and higher quality, the amount of information or bits transmitted increases relative to existing image data. Therefore, when transmitting image data using existing wired or wireless broadband lines, or storing image data using existing storage media, the transmission and storage costs increase.
[0003] Therefore, highly efficient image compression technology is required to effectively transmit, store, and reproduce high-resolution, high-quality image information. [Overview of the project] [Problems that the invention aims to solve]
[0004] The technical objective of this document is to provide a method and apparatus for improving image coding efficiency.
[0005] Another technical objective of this paper is to provide a method and apparatus for improving the efficiency of data coding for quantization parameter derivation for chromatic components. [Means for solving the problem]
[0006] According to one embodiment of this document, an image decoding method performed by a decoding device is provided. The method includes the steps of: acquiring residual information for a current chroma block; acquiring coding unit (CU) chroma quantization parameter (QP) offset-related information for the current chroma block based on the size and tree type of the current chroma block; deriving a transformation coefficient for the current chroma block based on the residual information; deriving a chroma QP for the current chroma block based on the CU chroma QP offset-related information; de-quantizing the transformation coefficient based on the chroma QP to derive a residual sample for the current chroma block; and generating a reconstructed picture based on the residual sample, wherein the CU chroma QP offset-related information is signaled with transform unit syntax for the first transformation block among the transformation blocks of the current chroma block.
[0007] Another embodiment of this document provides a decoding device for image decoding. The decoding device comprises an entropy decoding unit that acquires residual information for a current chroma block and acquires coding unit (CU) chroma quantization parameter (QP) offset-related information for the current chroma block based on the size and tree type of the current chroma block; a residual processing unit that derives a conversion coefficient for the current chroma block based on the residual information, derives a chroma QP for the current chroma block based on the CU chroma QP offset-related information, dequantizes the conversion coefficient based on the chroma QP, and derives a residual sample for the current chroma block; and an additive unit that generates a restored picture based on the residual sample, wherein the CU chroma QP offset-related information is signaled with transform unit syntax for the first transformation block among the transformation blocks of the current chroma block.
[0008] Another embodiment of this document provides a video encoding method performed by an encoding device. The method includes the steps of: deriving a residual sample for a current chroma block; generating coding unit (CU) chroma quantization parameter (QP) offset-related information for the current chroma block based on the size and tree type of the current chroma block; deriving a chroma QP for the current chroma block based on the CU chroma QP offset-related information; quantizing the residual sample based on the chroma QP and deriving a transformation coefficient for the current chroma block; generating residual information for the transformation coefficient; and encoding image information including the CU chroma QP offset-related information and the residual information, wherein the CU chroma QP offset-related information is signaled with transform unit syntax for the first transformation block among the transformation blocks of the current chroma block.
[0009] According to still another embodiment of the present document, a video encoding apparatus is provided. The encoding apparatus derives a residual sample for a current chroma block, generates coding unit (CU) chroma quantization parameter (QP) offset related information for the current chroma block based on the size and tree type of the current chroma block, derives a chroma QP for the current chroma block based on the CU chroma QP offset related information, quantizes the residual sample based on the chroma QP, derives a transform coefficient for the current chroma block, and generates residual information for the transform coefficient. The encoding apparatus further includes a residual processing unit and an entropy encoding unit that encodes image information including the CU chroma QP offset related information and the residual information. The CU chroma QP offset related information is signaled by a transform unit syntax for a first transform block among the transform blocks of the current chroma block.
[0010] According to yet another embodiment of the present document, there is provided a computer-readable digital storage medium storing a bitstream including image information that causes an image decoding method to be performed. In the computer-readable digital storage medium, the image decoding method includes: obtaining residual information for a current chroma block; obtaining coding unit (CU) chroma quantization parameter (QP) offset related information for the current chroma block based on the size and tree type of the current chroma block; deriving transform coefficients for the current chroma block based on the residual information; deriving a chroma QP for the current chroma block based on the CU chroma QP offset related information; inverse quantizing the transform coefficients based on the chroma QP to derive residual samples for the current chroma block; and generating a restored picture based on the residual samples. The CU chroma QP offset related information is signaled by a transform unit syntax for a first transform block among transform blocks of the current chroma block. [Effect of the Invention]
[0011] According to the present document, even if the first transform block in the current chroma block does not include a non-zero transform coefficient level, if at least one of the width and height of the current chroma block is greater than a specific size, information regarding the CU chroma QP offset can be signaled, and through this, the cost for the configuration of the decoding device can be reduced.
[0012] According to this document, even if the first transformation block in the current chroma block does not contain a non-zero transformation coefficient level, information regarding the CU chroma QP offset can be signaled in the transformation unit syntax of the first transformation block based on the size and tree type of the current chroma block, thereby reducing the buffer requirements of the decoding device and lowering the cost of the decoding device configuration. [Brief explanation of the drawing]
[0013] [Figure 1] An example of a video / image coding system to which the embodiments described herein may be applied is schematically shown. [Figure 2] This figure schematically illustrates the configuration of a video / image encoding device to which the embodiments described herein may be applied. [Figure 3] This figure schematically illustrates the configuration of a video / image decoding device to which the embodiments described herein may be applied. [Figure 4] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 5] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 6] The intra-prediction procedure is illustrated with an example. [Figure 7] This shows an example of cu_qp_delta being sent to a TU within a CU of size 128x128. [Figure 8] An example of a QP map for luma blocks and chroma blocks when a single tree is used is shown. [Figure 9] An example of a QP map for a chroma block when a dual tree is used is shown. [Figure 10] The sample positions for deblocking filtering are shown as an example. [Figure 11] This document outlines the image encoding method using the encoding device described herein. [Figure 12]A schematic diagram of the encoding device used for the image encoding method described in this document is shown below. [Figure 13] The image decoding method using the decoding device described in this document is outlined below. [Figure 14] A schematic diagram of a decoding device that performs the image decoding method described in this document is shown. [Figure 15] An illustrative diagram of a content streaming system structure to which the embodiments described herein apply is shown. [Modes for carrying out the invention]
[0014] This document may be modified in various ways and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit this document to any particular embodiment. Terms used herein are used solely to describe specific embodiments and are not intended to limit the technical ideas of this document. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as “includes” or “has” herein are intended to specify the existence of features, figures, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood not to preemptively exclude the existence or possibility of adding one or more other features, figures, steps, actions, components, parts, or combinations thereof.
[0015] On the other hand, each configuration shown in the diagrams described in this document is illustrated independently for the purpose of explaining its distinct characteristic functions, and does not mean that each configuration is implemented with separate hardware or separate software. For example, two or more of the configurations can be combined to form one configuration, and one configuration can be divided into multiple configurations. Embodiments in which each configuration is integrated and / or separated are also included within the scope of the rights of this document, as long as they do not deviate from the essence of this document.
[0016] Preferred embodiments of this document will be described in more detail below with reference to the attached drawings. Hereafter, the same reference numerals will be used for the same components in the drawings, and overlapping descriptions of the same components may be omitted.
[0017] Figure 1 schematically shows an example of a video / image coding system to which the embodiments described in this document may be applied.
[0018] As shown in Figure 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device can transmit encoded video / image information or data to the receiving device in file or streaming form via a digital storage medium or network.
[0019] The source device may comprise a video source, an encoding device, and a transmitter. The receiving device may comprise a receiver, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may comprise a display unit, which may consist of a separate device or external component.
[0020] A video source can acquire video / images through processes such as video / image capture, synthesis, or generation. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, or a video / image archive containing previously captured video / images. A video / image generation device may include, for example, a computer, tablet, and smartphone, and can generate video / images (electronically). For example, a virtual video / image can be generated via a computer, in which case the video / image capture process can be replaced by the process of generating the associated data.
[0021] An encoding device can encode input video / images. For compression and coding efficiency, the encoding device can perform a series of steps, including prediction, transformation, and quantization. The encoded data (encoded video / image information) can be output in bitstream format.
[0022] The transmitting unit can transmit encoded video / image information or data output in bitstream format to the receiving unit of a receiving device via a digital storage medium or network in file or streaming format. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit may include elements for generating media files via a predetermined file format and may include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0023] A decoding device can decode video / images by performing a series of steps, such as inverse quantization, inverse transformation, and prediction, corresponding to the operation of the encoding device.
[0024] The renderer can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0025] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to methods disclosed in the VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard), or next-generation video / image coding standards (e.g., H.267 or H.268).
[0026] This document presents various embodiments relating to video / image coding, and unless otherwise noted, these embodiments may be implemented in combination with each other.
[0027] In this document, "video" can mean a collection of images over time. "Picture" generally refers to a unit representing a single image at a specific time point in time, while "subpicture," "slice," and "tile" are units that constitute a part of a picture in coding. A subpicture, slice, or tile may contain one or more CTUs (coding tree units). A single picture may consist of one or more subpictures, slices, or tiles. A single picture may consist of one or more groups of tiles. A group of tiles may contain one or more tiles. A brick represents a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consists of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A subpicture may represent a rectangular region of one or more slices within a picture. In other words, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a width specified by syntax elements in the picture parameter set and a height equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, tile groups and slices may be used interchangeably. For example, in this document, a tile group / tile group header may be called a slice / slice header.
[0028] A pixel or pel can refer to the smallest unit that makes up a picture (or image). Alternatively, the term "sample" may be used as a counterpart to pixel. A sample can generally represent a pixel or a pixel value, and can represent only the luma component pixel / pixel value, or only the chroma component pixel / pixel value.
[0029] A unit can represent a basic unit of image processing. A unit can contain at least one of a specific region of a picture and information associated with that region. A unit can contain one luma block and two chroma (e.g., cb, cr) blocks. The term unit can sometimes be used interchangeably with terms such as block or area. In general, an M×N block can contain a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0030] In this specification, "A or B" may mean "A only," "B only," or "both A and B." In other words, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "A only," "B only," "C only," or "any combination of A, B and C."
[0031] In this specification, slashes ( / ) and commas may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "A only", "B only", or "both A and B". For example, "A, B, C" may mean "A, B or C".
[0032] In this specification, "at least one of A and B" may mean "A only," "B only," or "both A and B." Furthermore, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" may be interpreted similarly to "at least one of A and B."
[0033] Furthermore, in this specification, "at least one of A, B and C" may mean "A only," "B only," "C only," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0034] Furthermore, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Also, when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction."
[0035] Technical features described individually in each drawing in this specification may be implemented individually or simultaneously.
[0036] The following drawings have been prepared to illustrate a specific example of this specification. The names of specific devices and signals / messages / fields shown in the drawings are illustrative and not limited to the specific names used in the following drawings.
[0037] Figure 2 is a schematic diagram illustrating the configuration of a video / image encoding device to which the embodiments described in this document may be applied. Hereinafter, the term "video encoding device" may include an image encoding device.
[0038] As shown in Figure 2, the encoding device 200 can be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-predictor 221 and an intra-predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be called a reconstructor or a reconstructed block generator. The aforementioned image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, addition unit 250, and filtering unit 260 can be configured by one or more hardware components (e.g., an encoder chipset or processor) depending on the embodiment. The memory 270 may also include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0039] The image splitting unit 210 can split an input image (or picture, frame) input to the encoding device 200 into one or more processing units. For example, one of these processing units may be called a coding unit (CU). In this case, a coding unit can be recursively split from a coding tree unit (CTU) or the largest coding unit (LCU) using a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit can be split into multiple coding units of deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, followed by the binary-tree structure and / or the ternary structure. Alternatively, the binary-tree structure may be applied first. The coding procedure described in this document can be executed based on the final coding unit that cannot be further split. In this case, based on coding efficiency according to image characteristics, the largest coding unit can be immediately used as the final coding unit, or, if necessary, the coding unit can be recursively divided into lower-depth coding units so that the optimally sized coding unit is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further comprise a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit can each be separated or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the conversion unit is a unit that derives a conversion coefficient and / or a unit that derives a residual signal from the conversion coefficient.
[0040] The term "unit" can sometimes be used interchangeably with terms such as "block" or "area." Generally, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and may represent only the luminance (luma) component pixel / pixel value, or only the chroma component pixel / pixel value. A sample can be used as the term corresponding to a single picture (or image) pixel or pel.
[0041] The encoding device 200 can generate a residual signal (residual block, residual sample array) by subtracting the prediction signal (predicted block, predicted sample array) output from the inter-prediction unit 221 or intra-prediction unit 222 from the input image signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as shown in the figure, the unit that subtracts the prediction signal (predicted block, predicted sample array) from the input image signal (original block, original sample array) within the encoder 200 can be called the subtraction unit 231. The prediction unit can perform a prediction for the block to be processed (hereinafter referred to as the current block) and generate a predicted block that includes the predicted sample for the current block. The prediction unit can determine whether intra-prediction or inter-prediction is applied on a current block or CU basis. The prediction unit can generate various prediction-related information, such as prediction mode information, and transmit it to the entropy encoding unit 240, as will be described later in the explanation of each prediction mode. The prediction information can be encoded by the entropy encoding unit 240 and output in bitstream format.
[0042] The intra-prediction unit 222 can predict the current block by referring to a sample in the current picture. The referenced sample may be located in the vicinity (neighbor) of the current block or at a distance, depending on the prediction mode. In intra-prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. Non-directional modes may include, for example, DC mode and Planar mode. Directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.
[0043] The interprediction unit 221 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks existing in the current picture and temporally adjacent blocks existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporally adjacent block may be the same or different. The temporally adjacent block may be called a collocated reference block, colCU, etc., and the reference picture containing the temporally adjacent block may be called a collocated picture (colPic). For example, the interpretation unit 221 can construct a motion information candidate list based on adjacent blocks and generate information indicating which candidates are used to derive the motion vector and / or reference picture index of the current block. Interpretation can be performed based on various prediction modes; for example, in skip mode and merge mode, the interpretation unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In skip mode, unlike merge mode, a residual signal may not be transmitted.In motion vector prediction (MVP) mode, the motion vector of an adjacent block is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0044] The prediction unit 220 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for prediction of a single block, and can also apply intra-prediction and inter-prediction simultaneously. This can be called combined inter and intra prediction (CIIP). The prediction unit can also be based on intra-block copy (IBC) prediction mode or palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as in games, for example, as in SCC (screen content coding). IBC basically performs prediction within the current picture, but can be performed similarly to inter-prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter-prediction techniques described in this document. Palette mode can be seen as an example of intra-coding or intra-prediction. When palette mode is applied, sample values within the picture can be signaled based on information about the palette table and palette index.
[0045] The prediction signal generated via the prediction unit (including the inter-prediction unit 221 and / or the intra-prediction unit 222) can be used to generate a reconstructed signal or a residual signal. The transformation unit 232 can generate transformation coefficients by applying a transformation technique to the residual signal. For example, the transformation technique may include at least one of the following: DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT means a transformation obtained from a graph when the relationship information between pixels is represented by this graph. CNT means a transformation obtained by generating a prediction signal using all previously reconstructed pixels and obtaining a transformation based on it. The transformation process can also be applied to pixel blocks of the same size and square, or to non-square, variable-sized blocks.
[0046] The quantization unit 233 quantizes the conversion coefficients and transmits them to the entropy encoding unit 240, which can encode the quantized signal (information about the quantized conversion coefficients) and output it as a bitstream. The information about the quantized conversion coefficients can be called residual information. The quantization unit 233 can rearrange the block-form quantized conversion coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized conversion coefficients based on the one-dimensional vector form of the quantized conversion coefficients. The entropy encoding unit 240 can perform various encoding methods, such as exponential Golomb, CAVLC (context-adaptive variable length coding), and CABAC (context-adaptive binary arithmetic coding). In addition to the quantized conversion coefficients, the entropy encoding unit 240 can also encode information necessary for video / image restoration (e.g., the values of syntax elements) together with or separately from the quantized conversion coefficients. Encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form in units of network abstraction layer (NAL) units. The video / image information may further include information about various parameter sets, such as adaptation parameter sets (APS), picture parameter sets (PPS), sequence parameter sets (SPS), or video parameter sets (VPS). The video / image information may also further include general constraint information. Information and / or syntax elements transmitted / signaled from the encoding device to the decoding device in this document may be included in the video / image information. The video / image information may be encoded via the encoding procedure described above and included in the bitstream.The bitstream can be transmitted over a network or stored in a digital storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The signal output from the entropy encoding unit 240 can be transmitted by a transmitting unit (not shown) and / or stored by a storage unit (not shown) which are configured as internal / external elements of the encoding device 200, or the transmitting unit may be included in the entropy encoding unit 240.
[0047] The quantized conversion coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be reconstructed by applying inverse quantization and inverse transformation to the quantized conversion coefficients via the inverse quantization unit 234 and the inverse transformation unit 235. The adder 250 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter-prediction unit 221 or the intra-prediction unit 222. If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as the reconstructed block. The adder 250 can be called the reconstructor unit or reconstructed block generator. The generated reconstructed signal can be used for intra-prediction of the next block to be processed in the current picture, and can also be used for inter-prediction of the next picture after filtering, as described later.
[0048] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture encoding and / or restoration process.
[0049] The filtering unit 260 can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and the modified restored picture can be stored in the memory 270, specifically in the DPB of the memory 270. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter. The filtering unit 260 can generate various filtering-related information and transmit it to the entropy encoding unit 240, as will be described later in the explanation of each filtering method. The filtering-related information can be encoded by the entropy encoding unit 240 and output in bitstream format.
[0050] The corrected restored picture sent to memory 270 can be used as a reference picture in the interpretation unit 221. When interpretation is applied via this, the encoding device can avoid prediction mismatches between the encoding device 200 and the decoding device 300, and can also improve encoding efficiency.
[0051] Memory 270DPB can store the corrected restored picture for use as a reference picture in the inter-prediction unit 221. Memory 270 can store motion information of blocks from which motion information has been derived (or encoded) in the current picture and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 221 for use as motion information of spatially adjacent blocks or motion information of temporally adjacent blocks. Memory 270 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 222.
[0052] Figure 3 is a schematic diagram illustrating the configuration of a video / image decoding device to which the embodiments described in this document may be applied.
[0053] As shown in Figure 3, the decoding device 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-prediction unit 331 and an intra-prediction unit 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The aforementioned entropy decoder 310, residual processor 320, predictor 330, adder 340, and filtering unit 350 can be configured by a single hardware component (e.g., a decoder chipset or processor) depending on the embodiment. The memory 360 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The aforementioned hardware component may also further include memory 360 as an internal / external component.
[0054] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct the image in accordance with the process by which the video / image information was processed in the encoding device shown in Figure 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Thus, the decoding processing units are, for example, coding units, which can be divided from a coding tree unit or a maximum coding unit according to a quad-tree structure, a binary tree structure, and / or a terminally tree structure. One or more conversion units can be derived from the coding unit. The reconstructed image signal decoded and output via the decoding device 300 can then be reproduced via a playback device.
[0055] The decoding device 300 can receive the signal output from the encoding device shown in Figure 2 in bitstream form, and the received signal can be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information about various parameter sets, such as the adaptation parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. The decoding device can further decode the picture based on the parameter set information and / or the general constraint information. The signaling / received information and / or syntax elements described later in this document can be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements necessary for image reconstruction, quantized values of conversion coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using the information of the syntax element to be decoded, the decoded information of the surrounding and decoded blocks, or the symbol / bin information decoded in a previous step, predicts the probability of bin occurrence based on the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin.Of the information decoded by the entropy decoding unit 310, information related to prediction is provided to the prediction unit (inter-prediction unit 332 and intra-prediction unit 331), and the residual values from which entropy decoding has been performed in the entropy decoding unit 310, i.e., quantized conversion coefficients and related parameter information, can be input to the residual processing unit 320. The residual processing unit 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). In addition, of the information decoded by the entropy decoding unit 310, information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives signals output from the encoding device can be further configured as an internal / external element of the decoding device 300, or the receiving unit is a component of the entropy decoding unit 310. On the other hand, the decoding device relating to this document may be called a video / image / picture decoding device, and the decoding device may also be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, inverse transformation unit 322, addition unit 340, filtering unit 350, memory 360, inter-prediction unit 332, and intra-prediction unit 331.
[0056] The inverse quantization unit 321 can inverse quantize the quantized transformation coefficients and output the transformation coefficients. The inverse quantization unit 321 can rearrange the quantized transformation coefficients in a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) to obtain the transformation coefficients.
[0057] In the inverse conversion unit 322, the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).
[0058] The prediction unit can perform a prediction on the current block and generate a predicted block containing prediction samples for the current block. Based on the prediction information output from the entropy decoding unit 310, the prediction unit can determine whether intra-prediction or inter-prediction is applied to the current block and can determine a specific intra / inter-prediction mode.
[0059] The prediction unit 320 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for prediction of a single block, and can also apply intra-prediction and inter-prediction simultaneously. This can be called combined inter and intra prediction (CIIP). The prediction unit can also be based on intra-block copy (IBC) prediction mode or palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, for example, as in SCC (screen content coding). IBC basically performs prediction within the current picture, but can be performed similarly to inter-prediction in that it derives reference blocks within the current picture. That is, IBC can utilize at least one of the inter-prediction techniques described in this document. Palette mode can be seen as an example of intra-coding or intra-prediction. When palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.
[0060] The intra-prediction unit 331 can predict the current block by referring to a sample in the current picture. The referenced sample can be located in the vicinity (neighbor) of the current block or at a distance from it, depending on the prediction mode. In intra-prediction, the prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The intra-prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.
[0061] The interprediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) identified by motion vectors on a reference picture. In this case, in order to reduce the amount of motion information transmitted from the interprediction mode, motion information can be predicted in blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks that exist in the current picture and temporally adjacent blocks that exist in the reference picture. For example, the interprediction unit 332 can construct a motion information candidate list based on adjacent blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Interprediction can be performed based on various prediction modes, and the prediction information may include information indicating the mode of interprediction for the current block.
[0062] The summing unit 340 can generate a restored signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit (including the inter-prediction unit 332 and / or intra-prediction unit 331). If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as the restored block.
[0063] The summing unit 340 may be called the restoration unit or restoration block generation unit. The generated restoration signal can be used for intra-prediction of the next block to be processed in the current picture, and can be output after filtering as described later, or it can be used for intra-prediction of the next picture.
[0064] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture decoding process.
[0065] The filtering unit 350 can apply filtering to the restored signal to improve subjective / objective image quality. For example, the filtering unit 350 can apply various filtering methods to the restored picture to generate a modified restored picture, and can transmit the modified restored picture to the memory 360, specifically to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter.
[0066] The (modified) restored picture stored in the DPB of memory 360 can be used as a reference picture by the inter-prediction unit 332. Memory 360 can store motion information of blocks from which motion information in the current picture has been derived (or decoded) and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 260 for use as motion information of spatially adjacent blocks or motion information of temporally adjacent blocks. Memory 360 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 331.
[0067] In this specification, the embodiments described for the filtering unit 260, inter-prediction unit 221, and intra-prediction unit 222 of the encoding device 200 can be applied identically or in a corresponding manner to the filtering unit 350, inter-prediction unit 332, and intra-prediction unit 331 of the decoding device 300, respectively.
[0068] In this document, at least one of quantization / inverse quantization and / or transformation / inverse transformation may be omitted. If quantization / inverse quantization is omitted, the quantized transformation coefficient may be called a transformation coefficient. If transformation / inverse transformation is omitted, the transformation coefficient may be called a coefficient or residual coefficient, or for consistency of expression, may still be called a transformation coefficient.
[0069] In this document, quantized transformation coefficients and transformation coefficients may be referred to as transformation coefficients and scaled transformation coefficients, respectively. In this case, residual information may include information about the transformation coefficients (etc.), and such information may be signaled via residual coding syntax. Transformation coefficients may be derived based on the residual information (or information about the transformation coefficients (etc.)), and scaled transformation coefficients may be derived via inverse transformation (scaling) of the transformation coefficients. Residual samples may be derived based on inverse transformation (transformation) of the scaled transformation coefficients. This may be applied / expressed similarly in other parts of this document.
[0070] As described above, prediction is performed in video coding to improve compression efficiency. Through this, a predicted block containing predicted samples for the current block, which is the block to be coded, can be generated. Here, the predicted block contains predicted samples in the spatial domain (or pixel domain). The predicted block is derived identically by the encoding device and the decoding device, and the encoding device can improve image coding efficiency by signaling the decoding device information about the residual between the original block and the predicted block (residual information), which is not the original sample value of the original block itself. The decoding device can derive a residual block containing residual samples based on the residual information, and can generate a restored block containing restored samples by combining the residual block and the predicted block, and can generate a restored picture containing the restored block.
[0071] The residual information can be generated through transformation and quantization procedures. For example, an encoding device can derive a residual block between the original block and the predicted block, perform a transformation procedure on the residual samples (residual sample array) contained in the residual block to derive transformation coefficients, perform a quantization procedure on the transformation coefficients to derive quantized transformation coefficients, and signal the associated residual information (via a bitstream) to a decoding device. Here, the residual information may include information such as the value information, position information, transformation technique, transformation kernel, and quantization parameters of the quantized transformation coefficients. The decoding device can perform an inverse quantization / inverse transformation procedure based on the residual information to derive a residual sample (or residual block). The decoding device can generate a reconstructed picture based on the predicted block and the residual block. The encoding device can further inverse quantization / inverse transformation of the quantized transformation coefficients to derive a residual block for reference for subsequent interpretation of the picture, and generate a reconstructed picture based on this.
[0072] Intra prediction can represent a prediction that generates prediction samples for the current block based on reference samples within the picture to which the current block belongs (hereinafter referred to as the current picture). When intra prediction is applied to the current block, surrounding reference samples to be used for intra prediction of the current block can be derived. The surrounding reference samples of the current block may include a total of 2 × nH samples adjacent to the left boundary and bottom-left of the nW × nH size current block, a total of 2 × nW samples adjacent to the top boundary and top-right, and one sample adjacent to the top-left of the current block. Alternatively, the surrounding reference samples of the current block may include upper surrounding samples in multiple columns and left surrounding samples in multiple rows. Furthermore, the surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block (nW × nH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.
[0073] However, some of the surrounding reference samples in the current block may not yet be decoded or available. In this case, the decoder can construct the surrounding reference samples to be used for prediction by substituting the unavailable samples with the available samples, or by interpolating the available samples.
[0074] If a neighboring reference sample is derived, (i) a predicted sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, or (ii) a predicted sample can be derived based on a reference sample among the neighboring reference samples of the current block that is located in a specific (predicted) direction relative to the predicted sample. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode.
[0075] Furthermore, the predicted sample can also be generated by interpolation between a first peripheral sample located in the prediction direction of the current block's intra-prediction mode and a second peripheral sample located in the opposite direction to the prediction direction, based on the predicted sample of the current block. In the above case, it can be called linear interpolation intra-prediction (LIP). Alternatively, a linear model (LM) can be used to generate chroma prediction samples based on chroma samples. In this case, it can be called LM mode or CCLM (chroma component LM) mode.
[0076] Alternatively, a temporary predicted sample for the current block can be derived based on filtered peripheral reference samples, and the predicted sample for the current block can be derived by weighting the temporary predicted sample with at least one reference sample derived by the intra-prediction mode from the existing peripheral reference samples, i.e., the unfiltered peripheral reference samples. In the above case, it can be called PDPC (Position dependent intra-prediction).
[0077] Furthermore, intra-predictive coding can be performed by selecting the reference sample line with the highest prediction accuracy from among the multiple reference sample lines surrounding the current block, deriving the predicted sample using the reference sample located in the prediction direction on that line, and then instructing (signaling) the decoding device to use the reference sample line. In the above case, it can be called multi-reference line intra-prediction or MRL-based intra-prediction.
[0078] Furthermore, while intra-prediction is performed based on the same intra-prediction mode for dividing the current block into vertical or horizontal subpartitions, peripheral reference samples can be derived and used on a subpartition-by-subpartition basis. In other words, in this case, the intra-prediction mode for the current block is similarly applied to the subpartition, but by deriving and using peripheral reference samples on a subpartition-by-subpartition basis, intra-prediction performance can be improved in some cases. Such a prediction method can be called ISP (intra sub-partitions) based intra-prediction.
[0079] The intra-prediction methods described above can be referred to as intra-prediction types, distinct from intra-prediction modes. These intra-prediction types can be referred to by various terms, such as intra-prediction techniques or additional intra-prediction modes. For example, an intra-prediction type (or additional intra-prediction mode, etc.) may include at least one of the LIP, PDPC, MRL, and ISP described above. General intra-prediction methods excluding specific intra-prediction types such as LIP, PDPC, MRL, and ISP can be called normal intra-prediction types. Normal intra-prediction types can be generally applied when specific intra-prediction types are not applicable, and predictions may be made based on the intra-prediction modes described above. Meanwhile, post-processing filtering of the derived prediction samples may be performed as needed.
[0080] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction mode / type-based prediction sample derivation step. Additionally, a post-filtering step may be performed on the derived prediction samples, if necessary.
[0081] Figure 4 shows an example of a video / image encoding method for an intra-predictive infrastructure.
[0082] As shown in Figure 4, the encoding device performs intraprediction for the current block (S400). The encoding device derives an intraprediction mode / type for the current block, derives peripheral reference samples for the current block, and generates predicted samples within the current block based on the intraprediction mode / type and the peripheral reference samples. Here, the intraprediction mode / type determination, peripheral reference sample derivation, and predicted sample generation procedures can be performed simultaneously, and any one procedure can be performed before the others. The encoding device can determine which mode / type to apply to the current block from among a plurality of intraprediction modes / types. The encoding device can compare the RD costs for the intraprediction modes / types and determine the optimal intraprediction mode / type for the current block.
[0083] On the other hand, the encoding device can also perform a predictive sample filtering procedure. This predictive sample filtering may be called post-filtering. The predictive sample filtering procedure may filter some or all of the predictive samples. In some cases, the predictive sample filtering procedure may be omitted.
[0084] The encoding device generates a residual sample for the current block based on the (filtered) predicted sample (S410). The encoding device can derive the residual sample by comparing the predicted sample with the original sample of the current block on a phase basis.
[0085] The encoding device can encode image information including information relating to the intra-prediction (prediction information) and residual information relating to the residual sample (S420). The prediction information may include the intra-prediction mode information and the intra-prediction type information. The encoding device can output the encoded image information in bitstream form. The output bitstream can be transmitted to a decoding device via a storage medium or network.
[0086] The residual information may include the residual coding syntax described later. The encoding device can convert / quantize the residual samples to derive quantized conversion coefficients. The residual information may include information regarding the quantized conversion coefficients.
[0087] On the other hand, as described above, the encoding device can generate a restored picture (including restored samples and restored blocks). To this end, the encoding device can decrypt the quantized conversion coefficients again to derive (corrected) residual samples. The reason for decrypting the residual samples again after conversion / quantization is, as described above, to derive the same residual samples as those derived from the decoding device. The encoding device can generate a restored block containing restored samples for the current block based on the predicted samples and the (corrected) residual samples. Based on the restored block, a restored picture for the current picture can be generated. As described above, further procedures such as in-loop filtering may be applied to the restored picture.
[0088] Figure 5 shows an example of a video / image encoding method for an intra-predictive infrastructure.
[0089] The decoding device can perform operations corresponding to those performed by the encoding device.
[0090] Predictive information and residual information can be obtained from the bitstream. Based on the residual information, a residual sample for the current block can be derived. Specifically, based on the quantized transformation coefficients derived from the residual information, inverse quantization can be performed to derive the transformation coefficients, and an inverse transformation can be performed on the transformation coefficients to derive a residual sample for the current block.
[0091] Specifically, the decoding device can derive an intra-prediction mode / type for the current block based on the received prediction information (intra-prediction mode / type information) (S500). The decoding device can derive surrounding reference samples for the current block (S510). The decoding device generates prediction samples within the current block based on the intra-prediction mode / type and the surrounding reference samples (S520). In this case, the decoding device can perform a prediction sample filtering procedure. Prediction sample filtering can be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure can be omitted.
[0092] The decoding device generates a residual sample for the current block based on the received residual information (S530). The decoding device generates a restored sample for the current block based on the predicted sample and the residual sample, and can derive a restored block containing the restored sample (S540). A restored picture for the current picture can be generated based on the restored block. As described above, in-loop filtering procedures and the like may be further applied to the restored picture.
[0093] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.
[0094] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information may include intra-prediction type index information that indicates one of the intra-prediction types. As another example, the intra-prediction type information may include at least one of the following: reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; or ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied. The intra-prediction type information may also include an MIP flag indicating whether or not MIP (matrix-based intra prediction) is applied to the current block.
[0095] The intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded by the coding methods described in this document. For example, the intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded via entropy coding (e.g., CABAC, CAVLC).
[0096] Figure 6 illustrates the intra-prediction procedure.
[0097] Referring to Figure 6, as described above, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction execution (prediction sample generation) step. The intra-prediction procedure may be performed using an encoding device and a decoding device as described above. In this document, a coding device may include an encoding device and / or a decoding device.
[0098] As shown in Figure 6, the coding device determines the intra-prediction mode / type (S600).
[0099] The encoding device can determine which intra-prediction mode / type to apply to the current block from among the various intra-prediction modes / types described above, and can generate prediction-related information. The prediction-related information may include intra-prediction mode information representing the intra-prediction mode applied to the current block and / or intra-prediction type information representing the intra-prediction type applied to the current block. The decoding device can determine which intra-prediction mode / type to apply to the current block based on the prediction-related information.
[0100] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.
[0101] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information may include intra-prediction type index information that indicates one of the intra-prediction types. As another example, the intra-prediction type information may include at least one of the following: reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; or ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied. The intra-prediction type information may also include an MIP flag indicating whether or not MIP (matrix-based intra prediction) is applied to the current block.
[0102] For example, when intra-prediction is applied, the intra-prediction mode applied to the current block may be determined using the intra-prediction modes of the surrounding blocks. For example, the coding device may select one of the MPM (most probable mode) candidates in the MPM (most probable mode) list derived based on the intra-prediction modes and / or additional candidate modes of the surrounding blocks of the current block (e.g., the left and / or upper surrounding blocks) based on the received MPM index, or it may select one of the remaining intra-prediction modes not included in the MPM candidates (and planar modes) based on MPM retainer information (remaining intra-prediction mode information). The MPM list may or may not include planar modes as candidates. For example, if the MPM list includes planar modes as candidates, the MPM list may have 6 candidates, and if the MPM list does not include planar modes as candidates, the MPM list may have 5 candidates. If the MPM list does not include planar mode as a candidate, a not-planar flag (e.g., intra_luma_not_planar_flag) indicating that the current intra-prediction mode of the block is not planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and not-planar flag may be signaled if the value of the MPM flag is 1. Also, the MPM index may be signaled if the value of the not-planar flag is 1. Here, the reason why the MPM list is configured not to include planar mode as a candidate is not because planar mode is not an MPM, but because planar mode is always considered as an MPM, so the flag (not-planar flag) is signaled first to check whether or not it is planar mode.
[0103] For example, whether the intra-prediction mode currently applied to a block is among the MPM candidates (and planar modes) or in the remaining mode can be indicated based on the MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag indicates that the intra-prediction mode for the current block is among the MPM candidates (and planar modes), and a value of 0 for the MPM flag indicates that the intra-prediction mode for the current block is not among the MPM candidates (and planar modes). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) indicates that the intra-prediction mode for the current block is planar mode, and a value of 1 for the not planar flag indicates that the intra-prediction mode for the current block is not planar mode. The MPM index can be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra-prediction mode information can be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra-prediction mode information can be one of the remaining intra-prediction modes from the overall intra-prediction modes that are not included in the MPM candidate (and planar mode), indexed in order of prediction mode number. The intra-prediction mode can be an intra-prediction mode for a luma component (sample). The intra prediction mode information may include at least one of the following: the MPM flag (e.g., intra_luma_mpm_flag), the not planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), or the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, the MPM list may be referred to by various terms such as MPM candidate list, candModeList, etc.
[0104] If MIP is currently applied to a block, a separate MPM flag (e.g., intra_mip_mpm_flag), MPM index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) for MIP may be signaled, while the not planar flag may not be signaled.
[0105] In other words, when an image is generally divided into blocks, the current block and neighboring blocks to be coded will have similar image characteristics. Therefore, there is a high probability that the current block and neighboring blocks are identical or have similar intra-prediction modes. Thus, the encoder can use the intra-prediction mode of the neighboring block to encode the intra-prediction mode of the current block.
[0106] The coding device can construct an MPM (most probable modes) list for the current block. This MPM list can also be referred to as an MPM candidate list. Here, MPM refers to modes used in intra predictive mode coding to improve coding efficiency by considering the similarity between the current block and surrounding blocks. As described above, the MPM list can be configured to include planar modes or to exclude planar modes. For example, if the MPM list includes planar modes, the number of candidates in the MPM list can be six. If the MPM list does not include planar modes, the number of candidates in the MPM list can be five.
[0107] The encoding device can perform predictions based on various intra-prediction modes and determine the optimal intra-prediction mode based on rate-distortion optimization (RDO) derived from these predictions. In this case, the encoding device can determine the optimal intra-prediction mode using only the MPM candidates and planar modes configured in the MPM list, or it can determine the optimal intra-prediction mode using not only the MPM candidates and planar modes configured in the MPM list but also the remaining intra-prediction modes. Specifically, for example, if the intra-prediction type of the current block is a specific type other than the normal intra-prediction type (e.g., LIP, MRL, or ISP), the encoding device can determine the optimal intra-prediction mode by considering only the MPM candidates and planar modes as intra-prediction mode candidates for the current block. That is, in this case, the intra-prediction mode for the current block can be determined from among the MPM candidates and planar modes, and in this case, the MPM flag does not need to be encoded / signaled. In this case, the decoding device can infer that the MPM flag is 1, even if the MPM flag is not separately signaled.
[0108] On the other hand, generally, if the intra prediction mode of the current block is not planar mode and is one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not found in the MPM list, the device generates MPM retainer information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block from among the remaining intra prediction modes not included in the MPM list (and planar mode). The MPM retainer information may include, for example, an intra_luma_mpm_remainder syntax element.
[0109] The decoding device obtains intra-prediction mode information from the bitstream. The intra-prediction mode information may include at least one of the following: the MPM flag, the not-planar flag, the MPM index, and the MPM retainer information (remaining intra-prediction mode information). The decoding device can configure an MPM list. The MPM list is configured similarly to the MPM list configured by the encoding device. That is, the MPM list may include intra-prediction modes of surrounding blocks and may further include specific intra-prediction modes in a predetermined manner.
[0110] The decoding device can determine the intra-prediction mode for the current block based on the MPM list and the intra-prediction mode information. For example, if the value of the MPM flag is 1, the decoding device can derive the planar mode as the intra-prediction mode for the current block (not based on the planar flag), or it can derive the candidate pointed to by the MPM index from among the MPM candidates in the MPM list as the intra-prediction mode for the current block. Here, the MPM candidates can represent only the candidates included in the MPM list, or they can include not only the candidates included in the MPM list but also the planar mode that can be applied when the value of the MPM flag is 1.
[0111] As another example, if the value of the MPM flag is 0, the decoding device can derive the intra-prediction mode pointed to by the remaining intra-prediction mode information (which may be called mpm remainder information) among the remaining intra-prediction modes not included in the MPM list and planar modes as the intra-prediction mode of the current block. On the other hand, as yet another example, if the intra-prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP), the decoding device can derive the candidate pointed to by the MPM flag in the planar mode or the MPM list as the intra-prediction mode of the current block without parsing / decoding / verifying the MPM flag.
[0112] The coding device derives peripheral reference samples for the current block (S610). If intraprediction is applied to the current block, peripheral reference samples to be used for intraprediction of the current block may be derived. The peripheral reference samples for the current block may include a total of 2 × nH samples adjacent to the left boundary and bottom-left of the current block of nW × nH size, a total of 2 × nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the peripheral reference samples for the current block may include upper peripheral samples in multiple columns and left peripheral samples in multiple rows. Furthermore, the surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block (nW × nH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.
[0113] On the other hand, if MRL is applied (i.e., if the value of the MRL index is greater than 0), the peripheral reference samples can be located on lines 1 or 2 that are not line 0 adjacent to the current block on the left / above side, and in this case, the number of peripheral reference samples can increase further. On the other hand, if ISP is applied, the peripheral reference samples can be derived on a subpartition basis.
[0114] The coding device performs intraprediction on the current block and derives predicted samples (S620). The coding device can derive the predicted samples based on the intraprediction mode / type and the surrounding samples. The coding device can derive reference samples from the surrounding reference samples of the current block based on the intraprediction mode of the current block, and can derive predicted samples of the current block based on the reference samples.
[0115] On the other hand, as described above, the quantization unit of the encoding device can derive quantized conversion coefficients by applying quantization to the conversion coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can derive conversion coefficients by applying inverse quantization to the quantized conversion coefficients.
[0116] Generally, in video / image coding, the quantization rate can be varied, and the compression rate can be adjusted using the varied quantization rate. From an implementation standpoint, instead of directly using the quantization rate, a quantization parameter (QP) may be used, taking complexity into consideration. For example, a quantization parameter with integer values from 0 to 63 may be used, and each quantization parameter value can correspond to an actual quantization rate. Also, for example, a quantization parameter QP for the luma component (luma sample) Y and the quantization parameter QP for the chromatic component (chromatic sample) c It can be configured differently.
[0117] The quantization process takes a transformation coefficient C as input and a quantization rate Q. stepBy dividing it into parts, a quantized transformation coefficient C' can be obtained based on this. In this case, considering the computational complexity, the quantization rate can be scaled to create an integer form, and a shift operation can be performed by the amount corresponding to the scale value. A quantization scale can be derived based on the product of the quantization rate and the scale value. That is, the quantization scale can be derived by QP. For example, the quantization scale can also be applied to the transformation coefficient C, and a quantized transformation coefficient C' can be derived based on this.
[0118] The inverse quantization process is the reverse process of the quantization process, where the quantized transformation coefficients C' are replaced by the quantization rate Q. step By multiplying by this, the restored transformation coefficient C'' can be obtained. In this case, the level scale can be derived from the quantization parameter, and the restored transformation coefficient C'' can be derived by applying the level scale to the quantized transformation coefficient C''. The restored transformation coefficient C'' may differ somewhat from the original transformation coefficient C due to losses in the transformation and / or quantization process. Therefore, the encoding device also performs inverse quantization, similar to the decoding device.
[0119] On the other hand, adaptive frequency weighting quantization (AQU) is a technique that adjusts the quantization intensity according to frequency. This adaptive frequency weighting quantization technique is a method of applying different quantization intensities for each frequency. This adaptive frequency weighting quantization can apply different frequency quantization intensities using predefined quantization scaling metrics. That is, the quantization / dequantization process described above can be performed based on these quantization scaling metrics. For example, other quantization scaling metrics may be used depending on whether the prediction mode applied to the current block is inter-prediction or intra-prediction in order to generate the size of the current block and / or the residual signal of the current block. These quantization scaling metrics may be called quantization metrics or scaling metrics. These quantization scaling metrics may be predefined. Furthermore, for frequency adaptive scaling, frequency-specific quantization scale information for the quantization scaling metrics can be configured / encoded in an encoding device and signaled to a decoding device. This frequency-specific quantization scale information may be called quantization scaling information. The frequency-specific quantization scale information may include scaling list data. Based on the scaling list data, (modified) quantization scaling metrics may be derived. The frequency-specific quantization scale information may also include present flag information indicating whether or not the scaling list data exists. Alternatively, if the scaling list data is signaled at a higher level (e.g., SPS), it may further include information indicating whether or not the scaling list data is modified at a lower level (e.g., PPS or tile group header, etc.) of the higher level.
[0120] As described above, quantization / dequantization can be applied to the luma and chromatic components based on the quantization parameters.
[0121] On the other hand, current video / image coding standards use the same method for quantization groups as for Luma QP, whereas previously it was used for Delta QP. p The information is signaled and its transmission may be delayed until the first transformation unit having coded coefficients. Specifically, the syntax element cu_qp_delta representing delta QP may be transmitted at the first transformation unit of the quantization group having coded coefficients (i.e., tu_cbf=1).
[0122] Figure 7 shows an example of cu_qp_delta being sent for TUs within a 128x128 CU. As shown in Figure 7, for larger CUs, the delta QP may not be sent until the last TU due to the coding order. However, the delta QP value sent for the last TU can be applied to the entire CU.
[0123] Furthermore, the concept of a 64x64 VDPU (Virtual Decoder Pipeline Unit) can be used in current video / image coding standards. In particular, current video / image coding standards can be designed so that the structural and syntax elements for maximum transform sizes, luma / chrominance interleaving, etc., allow the decoding unit to process 64x64 blocks (i.e., VDPUs) at a time, even if the CU is as large as 128x128. Using a 64x64 pipeline can significantly reduce the cost of the decoding unit in order to meet the buffering requirements of a 128x128 pipeline.
[0124] However, the delta QP design in VVC Standard Draft 5 and earlier standards does not fit the 64x64 pipeline concept. Since QP values are required for in-loop filtering, the absence of QP values can mean that the CU cannot complete the process for the previous TU.
[0125] Specifically, deblocking filters may require a QP to determine filtering thresholds. Therefore, VVC Standard Draft 6 added a condition to delta QP signaling. Specifically, for CUs where cbWidth[chType]>64 or cbHeight[chType]>64, a condition may be added to signal delta QP regardless of whether the first TU has non-zero coefficients (i.e., coded coefficients).
[0126] For example, the LumaDelta QP in the VVC standard draft 6 can be signaled as shown in the following table.
[0127] [Table 1]
[0128] Furthermore, for example, in the VVC Standard Draft 5, chromaQP control is only available at the picture and slice levels. For example, chromaQP can be derived as follows:
[0129]
number
[0130] Here, Q pY is LumaQP, QpBdOffset Cchroma QP range offset, pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset can represent the PPS-level QP offsets for each chroma component, and slice_cb_qp_offset, slice_cr_qp_offset, and slice_joint_cbcr_qp_offset can represent the slice-level QP offsets for each chroma component. Also, Qp' Cb is the chroma quantization parameter for the chroma Cb component, Qp' Cr is the chroma quantization parameter for the chroma Cr component, Qp' CbCr can represent the chroma quantization parameter for joint Cb-Cr coding.
[0131] Also, for example, in VVC standard draft 6, CU-level chroma QP control is also applied. For example, the chroma QP can be derived as follows.
[0132] [Equation]
[0133] Here, CuQpOffset Cb , CuQpOffset Cr , CuQpOffset CbCr can represent the CU-level QP offsets for each chroma component. Also, Qp' Cb is the chroma quantization parameter for the chroma Cb component, Qp' Cr is the chroma quantization parameter for the chroma Cr component, Qp' CbCr can represent the chroma quantization parameter for joint Cb-Cr coding.
[0134] Figure 8 shows an example of a QP map for luma blocks and chroma blocks when a single tree is used. The CU chroma QP can be derived as the sum of the luma QP and the signaled chroma QP offset. As shown in Figure 8, the rectangles shown with solid lines can represent quantization groups, and the rectangles shown with dotted lines can represent CUs. Also, as shown in Figure 8, for example, CuQpOffset chroma This can be 2. On the other hand, the tree type of the current block can be classified as a single tree (SINGLE_TREE) or a dual tree (DUAL_TREE) depending on whether the current luma block and the corresponding current chroma block have separate partition structures. For example, if the current chroma block has the same partition structure as the current luma block, it can be represented as a single tree; if the current chroma block has a different partition structure from the current luma block, it can be represented as a dual tree. The current block can be CU or TU.
[0135] Figure 9 shows an example of a QP map for a chroma block when a dual tree is used. Also, as shown in Figure 9(a), for example, CuQpOffset chroma This can be -9, as shown in Figure 9(b), CuQpOffset chroma This can be 2. When a dual tree is used, the boundaries between the luma CU and chroma CU may not be aligned. That is, a chroma block may have a different partition structure than the corresponding luma block. Therefore, for each chroma CU, the chroma QP can be derived as the sum of the co-located luma QP (at the center of the chroma CU) and the signaled chroma QP offset. While some correlation between the luma QP and chroma QP is maintained, control over the chroma QP can be unpredictable.
[0136] Furthermore, VVC Standard Draft 6 integrates the joint CbCr register dual coding mode by expanding the offset table from two QPoffsets per entry to three QPoffsets per entry.
[0137] Furthermore, for example, the TU syntax for VVC Standard Draft 6 could be as shown in the table below.
[0138] [Table 2-1]
[0139] [Table 2-2]
[0140] [Table 2-3]
[0141] The conversion coefficient level can be represented by the array TransCoeffLevel[x0][y0][cIdx][xC][yC]. Here, array indices x0 and y0 can represent the positions x0 and y0 of the top-left luma sample of the conversion block relative to the top-left luma sample of the picture. That is, when the position of the top-left luma sample of the picture is (0,0), array indices x0 and y0 can represent the positions x0 and y0 of the top-left luma sample of the conversion block. Furthermore, array index cIdx can represent the index for the hue component. For example, the array index value for the luma component (Y component) may be 0, the array index value for the chroma Cb component may be 1, and the array index value for the chroma Cr component may be 2. Additionally, array indices xC and yC can represent the positions xC and yC of the conversion coefficients currently within the conversion block. On the other hand, if the value of TransCoeffLevel[x0][y0][cIdx][xC][yC] is not specified, the aforementioned value can be considered equivalent to 0 (inferred).
[0142] Furthermore, for example, if the syntax element tu_cbf_cb[x0][y0] is 1, it can indicate that the Cb transformation block contains one or more non-zero transformation coefficient levels. Here, the array indices x0 and y0 can represent the upper-left corner positions x0 and y0 of the transformation block being considered. If the syntax element tu_cbf_cb[x0][y0] does not currently exist in the TU, the value of the syntax element tu_cbf_cb[x0][y0] can be considered as 0. Also, tu_cbf_cb[x0][y0] can be represented as tu_cb_coded_flag[x0][y0].
[0143] Furthermore, for example, if the syntax element tu_cbf_cr[x0][y0] is 1, it can indicate that the Cr conversion block contains one or more non-zero conversion coefficient levels. Here, the array indices x0 and y0 can represent the upper left corner positions x0 and y0 of the conversion block being considered. If the syntax element tu_cbf_cr[x0][y0] does not currently exist in the TU, the value of the syntax element tu_cbf_cr[x0][y0] can be considered as 0. Also, the tu_cbf_cr[x0][y0] can be represented by tu_cr_coded_flag[x0][y0].
[0144] Furthermore, for example, if the syntax element tu_cbf_luma[x0][y0] is 1, it can indicate that the luma conversion block contains one or more non-zero conversion coefficient levels. Here, the array indices x0 and y0 can represent the positions x0 and y0 of the top-left luma sample of the conversion block relative to the top-left luma sample of the picture. That is, the array indices x0 and y0 can represent the positions x0 and y0 of the top-left luma sample of the conversion block when the position of the top-left luma sample of the picture is (0, 0). If the syntax element tu_cbf_luma[x0][y0] does not currently exist in the TU, the value of the syntax element tu_cbf_luma[x0][y0] can be considered as follows.
[0145] For example, if the value of cu_sbt_flag is 1 and one of the conditions described later is true, the value of the syntax element tu_cbf_luma[x0][y0] can be considered as 0.
[0146] If the value of subTuIndex is 0 and the value of cu_sbt_pos_flag is 1
[0147] If the value of subTuIndex is 1 and the value of cu_sbt_pos_flag is 0
[0148] On the other hand, in other cases, the value of the syntax element tu_cbf_luma[x0][y0] can be considered as 1. Also, tu_cbf_luma[x0][y0] can be represented as tu_y_coded_flag[x0][y0].
[0149] Furthermore, for example, the syntax element tu_joint_cbcr_residual_flag[x0][y0] can indicate whether the residual samples for chroma components Cb and Cr are coded in a single transform block. Here, the array indices x0 and y0 can represent the positions x0 and y0 of the upper-left corner chroma sample of the transform block relative to the upper-left corner chroma sample of the picture. That is, the array indices x0 and y0 can represent the positions x0 and y0 of the upper-left corner chroma sample of the transform block when the position of the upper-left corner chroma sample of the picture is (0,0).
[0150] For example, if the syntax element tu_joint_cbcr_residual_flag[x0][y0] is 1, it can indicate that the transform unit syntax includes transformation coefficient levels for a single transformation block from which residual samples for chroma components Cb and Cr are derived. Alternatively, if the syntax element tu_joint_cbcr_residual_flag[x0][y0] is 0, it can indicate that transformation coefficient levels for chroma components, etc., are coded to be displayed in the syntax elements tu_cbf_cb[x0][y0] and tu_cbf_cr[x0][y0]. If the syntax element tu_joint_cbcr_residual_flag[x0][y0] does not exist, its value can be considered as 0.
[0151] For example, the variable "TuCResMode[x0][y0]" can be derived from tu_joint_cbcr_residual_flag[x0][y0], tu_cbf_cb[x0][y0], and tu_cbf_cr[x0][y0] as follows:
[0152] For example, if the value of tu_joint_cbcr_residual_flag[x0][y0] is 0, the variable TuCResMode[x0][y0] can be set to 0.
[0153] If none of the above applies, and tu_cbf_cb[x0][y0] is 1 and tu_cbf_cr[x0][y0] is 0, the variable TuCResMode[x0][y0] can be set to 1.
[0154] If the above conditions are not met and tu_cbf_cb[x0][y0] is 1, the variable TuCResMode[x0][y0] can be set to 2.
[0155] If none of the above conditions apply, the variable "TuCResMode[x0][y0]" can be set to 3.
[0156] Furthermore, for example, the syntax element cu_qp_delta_abs can represent the absolute value of the difference CuQpDeltaVal between the quantization parameter of the current coding unit and its prediction.
[0157] Furthermore, for example, the syntax element cu_qp_delta_sign_flag can represent the sign of CuQpDeltaVal as follows:
[0158] For example, if cu_qp_delta_sign_flag is 0, then CuQpDeltaVal can have a positive value.
[0159] If the above conditions are not met (i.e., for example, if cu_qp_delta_sign_flag is 1), then CuQpDeltaVal may have a negative value.
[0160] On the other hand, if the syntax element cu_qp_delta_sign_flag does not exist, the value of the syntax element cu_qp_delta_sign_flag can be considered as 0.
[0161] Furthermore, for example, if cu_qp_delta_abs exists, the variables IsCuQpDeltaCoded and CuQpDeltaVal can be derived as shown in the following formula.
[0162]
number
[0163] The value of CuQpDeltaVal can be in the range of -(32+QpBdOffsetY / 2) to +(31+QpBdOffsetY / 2).
[0164] Furthermore, for example, if the syntax element cu_chroma_qp_offset_flag exists and is set to 1, then the entry (entry) of the cb_qp_offset_list[] is CuQpOffset Cb Used to determine the value of, and the corresponding entry in cr_qp_offset_list[] is CuQpOffset Cr Used to determine the value of, and the corresponding entry in joint_cbcr_qp_offset_list[] is CuQpOffset CbCrIt can also be said that the value of the syntax element cu_chroma_qp_offset_flag is used to determine the value of the cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[]. Cb CuQpOffset Cr CuQpOffset CbCr This can indicate that it is not used to determine the value of [the variable].
[0165] Also, for example, if the syntax element cu_chroma_qp_offset_idx exists, the syntax element cu_chroma_qp_offset_idx is CuQpOffset Cb CuQpOffset Cr , and CuQpOffset CbCr This can represent the index in cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] used to determine the value. If the syntax element cu_chroma_qp_offset_idx exists, its value can be in the range of 0 to chroma_qp_offset_list_len_minus1. If the syntax element cu_chroma_qp_offset_idx does not exist, it can be considered as 0.
[0166] Furthermore, if, for example, the syntax element cu_chroma_qp_offset_flag exists, the following may apply.
[0167] If cu_chroma_qp_offset_flag is 1, then CuQpOffset is as follows:Cb CuQpOffset Cr , and CuQpOffset CbCr The value of can be derived.
[0168]
number
[0169] • If none of the above conditions apply (i.e., for example, if cu_chroma_qp_offset_flag is 0), CuQpOffset Cb CuQpOffset Cr , and CuQpOffset CbCr It can be set to 0.
[0170] Furthermore, for example, the syntax element transform_skip_flag[x0][y0] can indicate whether or not a transformation is applied to a Luma transformation block. Here, the array indices x0 and y0 can represent the positions x0 and y0 of the top-left Luma sample of the transformation block relative to the top-left Luma sample of the picture. That is, the array indices x0 and y0 can represent the positions x0 and y0 of the top-left Luma sample of the transformation block when the position of the top-left Luma sample of the picture is (0, 0). For example, if transform_skip_flag[x0][y0] is 1, it can indicate that no transformation is applied to the Luma transformation block. Also, for example, if transform_skip_flag[x0][y0] is 0, it can indicate that whether or not a transformation is applied to a Luma transformation block can be determined based on other syntax elements.
[0171] Furthermore, for example, if transform_skip_flag[x0][y0] does not exist, the value of transform_skip_flag[x0][y0] can be considered as follows.
[0172] For example, if BdpcmFlag[x0][y0] is 1, then transform_skip_flag[x0][y0] can be considered as 1.
[0173] If the above conditions are not met (i.e., for example, if BdpcmFlag[x0][y0] is 0), then transform_skip_flag[x0][y0] can be considered as 0.
[0174] Furthermore, for example, the syntax element tu_mts_idx[x0][y0] can represent transform kernels applied to the residual sample as the horizontal and vertical directions of the associated luma transform block. Here, the array indices x0 and y0 can represent the positions x0 and y0 of the upper-left luma sample of the transform block relative to the upper-left luma sample of the picture. That is, the array indices x0 and y0 can represent the positions x0 and y0 of the upper-left luma sample of the transform block when the position of the upper-left luma sample of the picture is (0, 0). Also, for example, if the syntax element tu_mts_idx[x0][y0] does not exist, the syntax element tu_mts_idx[x0][y0] can be considered as 0.
[0175] Figure 10 illustrates sample positions for deblocking filtering.
[0176] On the other hand, chroma QP can be used for deblocking filtering of chroma components. However, for example, chroma QP used for deblocking filtering may not take slice-level and CU-level QP adjustments into consideration. For example, chroma QP used for deblocking filtering can be derived based on the corresponding chroma QP and picture-level chroma QP offset cQpPicOffset. Here, for example, cQpPicOffset, which represents the picture-level chroma QP offset, can be derived to pps_cb_qp_offset if cIdx is 1, and to pps_cr_qp_offset if cIdx is not 1.
[0177] Also, for example, the variable QpQ is the sample q shown in Figure 6. 0、0 Qp of a coding unit containing a coding block that includes Y It can be set to the same value as the variable Qp P This is the sample p shown in Figure 6. 0、0 Qp of a coding unit containing a coding block that includes Y It can be set to the same value.
[0178] Subsequently, Chroma QP Qp is used for deblocking filtering. C This can be derived as shown in the following formula.
[0179]
number
[0180] On the other hand, the chroma QP-related designs for deblocking filtering in existing VVC standards may have several drawbacks. Because VVC supports dual trees, there can be significant differences between the luma QP and chroma QP of a CU due to the different partitions between luma and chroma blocks. Furthermore, the VVC standard supports not only the YUV4:2:0 format but also the YUV4:2:2 and YUV4:4:4 formats. In the case of the YUV4:4:4 format, if an inaccurate chroma QP is used for deblocking filtering, it can have a greater impact and may result in visual artifacts.
[0181] Accordingly, this document proposes an efficient chroma-QP signaling method, such as the embodiments described later.
[0182] As one embodiment, we propose chroma QP offset signaling to support VDPU level processing. In this embodiment, for chroma CUs where cbWidth or cbHeight is greater than 64, the CU chroma QP offset (if a chroma QP offset exists for the chroma CU) can be signaled regardless of whether the first TU contains a non-zero chroma CBF. That is, according to this embodiment, if the cbWidth or cbHeight of a chroma CU is currently greater than 64, the CU chroma QP offset (if a chroma QP offset exists for the chroma CU) can be signaled regardless of whether the first TU has a non-zero coefficient. Here, cbWidth and cbHeight can represent the CU width and CU height of a luma element or chroma element according to the channel type or tree type. For example, in the case of an image in YUV4:4:4 format, chroma CUs with a width or height greater than 64 may occur. However, VDPU-level processing is possible through the proposed scheme in this embodiment, and when the VDPU is parsing, QPs may be available.
[0183] For example, the conversion unit syntax according to this embodiment may be as shown in the following table.
[0184] [Table 3]
[0185] Referring to Table 3, the signaling condition for CU chroma QP offset-related information may be increased by "CbWidth[chType][x0][y0]>64||CbHeight[chType][x0][y0]>64||". That is, referring to Table 3, if CbWidth[chType][x0][y0] is greater than 64, or if CbHeight[chType][x0][y0] is greater than 64, CU chroma QP offset-related information may be signaled. The CU chroma QP offset-related information may include the syntax elements cu_chroma_qp_offset_flag and / or cu_chroma_qp_offset_idx.
[0186] For example, if the syntax element cu_chroma_qp_offset_flag exists and is set to 1, then the syntax element cu_chroma_qp_offset_flag can indicate that the entry in cb_qp_offset_list[] is used to determine the value of CuQpOffsetCb, the entry in cr_qp_offset_list[] is used to determine the value of CuQpOffsetCr, and the entry in joint_cbcr_qp_offset_list[] is used to determine the value of CuQpOffsetCbCr. Also, for example, if the syntax element cu_chroma_qp_offset_flag is set to 0, then the syntax element cu_chroma_qp_offset_flag can indicate that cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] are used to determine the value of CuQpOffsetCbCr.Cb CuQpOffset Cr CuQpOffset CbCr This can indicate that it is not used to determine the value of [the variable].
[0187] Also, for example, if the syntax element cu_chroma_qp_offset_idx exists, the syntax element cu_chroma_qp_offset_idx is CuQpOffset Cb CuQpOffset Cr , and CuQpOffset CbCr This can represent the index in cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] used to determine the value. If the syntax element cu_chroma_qp_offset_idx exists, its value can be in the range of 0 to chroma_qp_offset_list_len_minus1. If the syntax element cu_chroma_qp_offset_idx does not exist, it can be considered as 0.
[0188] Furthermore, this document proposes, as one embodiment, a method for adding conditions to CU-level chroma QP offset signaling for dual trees. This embodiment proposes a method for modifying the availability conditions of the existing syntax for the CU chroma QP offset flag in order to avoid unnecessary signaling. For example, according to this embodiment, if the coding tree is a dual-tree luma DUAL_TREE_LUMA, that is, if the coding tree is not a single-tree SINGLE_TREE or a dual-tree chroma DUAL_TREE_CHROMA, then CU chroma QP offset-related information may not be signaled.
[0189] For example, the conversion unit syntax according to this embodiment may be as shown in the following table.
[0190] [Table 4]
[0191] Referring to Table 4, the signaling condition for CU chroma QP offset related information may be increased to "&&treetype!=DUAL_TREE_LUMA". That is, referring to Table 4, CU chroma QP offset related information may only be signaled if the coding tree is not DUAL_TREE_LUMA. The CU chroma QP offset related information may include the syntax elements cu_chroma_qp_offset_flag and / or cu_chroma_qp_offset_idx.
[0192] Furthermore, this document proposes, as one embodiment, another method for adding conditions to CU-level chroma QP offset signaling. This embodiment proposes a method for modifying the availability conditions of the existing syntax for the CU-chroma QP offset flag in order to avoid unnecessary signaling. For example, this embodiment proposes a method for modifying the availability conditions of the existing syntax by combining the signaling conditions of the embodiments described above.
[0193] For example, the conversion unit syntax according to this embodiment may be as shown in the following table.
[0194] [Table 5]
[0195] Referring to Table 5, the signaling conditions for CU chroma QP offset related information may include "CbWidth[chType][x0][y0]>64||CbHeight[chType][x0][y0]>64||" and "&&treetype!=DUAL_TREE_LUMA". That is, referring to Table 5, if the coding tree is not DUAL_TREE_LUMA and CbWidth[chType][x0][y0] is greater than 64, or CbHeight[chType][x0][y0] is greater than 64, then CU chroma QP offset related information may be signaled. Therefore, if the coding tree is DUAL_TREE_LUMA, then CU chroma QP offset related information may not be signaled. The CU chroma QP offset related information may include the syntax elements cu_chroma_qp_offset_flag and / or cu_chroma_qp_offset_idx.
[0196] Furthermore, this document proposes a method for using CU-level chroma QP for deblocking filtering. This embodiment proposes a method for integrating slice-level chroma QP and / or CU-level chroma QP into the chroma QP expressed in QpC used in the chroma deblocking process. Deblocking parameters can be determined based on the derived QpC.
[0197] For example, the variable QpC can be derived based on the Qp of the surrounding CU, as shown in the following formula.
[0198]
number
[0199] Here, Qp Q’cIdx This can represent the chroma QP of the CUP adjacent to the block boundary being deblocked and filtered, and Qp P’cIdxcIdx can represent the chroma QP of CUQ adjacent to the block boundary being deblocked and filtered. cIdx can also be an index representing a chroma component. For example, cIdx can represent the chroma Cb component, the chroma Cr component, or the chroma CbCr component. Q’cIdx and Qp P’cIdx This value can already take into account slice level QP adjustment and CU level QP adjustment.
[0200] Alternatively, for example, the variable QpC can first be derived based on the luma QP of the surrounding CU P and surrounding CU Q, and then slice-level QP adjustments and CU-level QP adjustments may be added. For example, the variable QpC can be derived as follows:
[0201]
number
[0202] Here, CuQpOffset PcIdx This can represent the CuQPOffset of the surrounding CU P element cIdx, and CuQpOffset QcIdx This can represent the CuQPOffset of the element cIdx of the surrounding CU Q.
[0203] Figure 11 schematically illustrates an image encoding method using an encoding device relating to this document. The method disclosed in Figure 11 can be performed by the encoding device disclosed in Figure 2. Specifically, for example, steps S1100 to S1140 in Figure 11 can be performed by the residual processing unit of the encoding device, and step S1150 can be performed by the entropy encoding unit of the encoding device. Furthermore, although not shown, the process of deriving a predicted sample of the current chroma block can be performed by the prediction unit of the encoding device, and the process of generating a restored sample and a restored picture based on the residual sample and the predicted sample can be performed by the addition unit of the encoding device.
[0204] The encoding device now derives the residual sample for the chroma block (S1100). The encoding device can now derive the residual sample for the chroma block.
[0205] For example, the encoding device can derive predicted samples of the current chroma block based on the prediction mode. In this case, various prediction methods disclosed in this document, such as interpretation or intrapretation, may be applied.
[0206] For example, the encoding device can determine whether to perform interpretation or intrapretation on the current chroma block, and can determine a specific interpretation mode or specific intrapretation mode on an RD cost basis. Based on the determined mode, the encoding device can derive predicted samples for the current chroma block. Subsequently, for example, the encoding device can derive the residual sample by subtracting the original sample and the predicted sample for the current chroma block.
[0207] The encoding device generates coding unit (CU) chromatic quantization parameter (QP) offset-related information for the current chroma block based on the current chroma block size and tree type (S1110).
[0208] The encoding device can generate CU chroma quantization parameter (QP) offset-related information for the current chroma block based on the current chroma block size and tree type. The CU chroma QP offset-related information can also be expressed as CU level chroma QP offset-related information. Here, the tree type can be one of single-tree, dual-tree chroma, or dual-tree chroma. Furthermore, for example, the CU chroma QP offset-related information can be signaled by the transform unit syntax for the first transform block among the transform blocks of the current chroma block. That is, for example, the transform unit syntax for the first transform block can include the CU chroma QP offset-related information. The first transform block can be the transform block that is coded first in the decoding order among the transform blocks of the current chroma block. For example, the first transform block can be the top-left transform block among the transform blocks of the current chroma block.
[0209] Specifically, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be signaled. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be generated. Here, for example, the specific value can be 64. Also, for example, the conversion unit syntax for the first conversion block can include the CU chroma QP offset-related information for the current chroma block. For example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be signaled in the conversion unit syntax for the first conversion block, regardless of whether the first conversion block contains at least one non-zero conversion coefficient level. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the conversion unit syntax for the first conversion block may include the CU chroma QP offset-related information for the current chroma block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0210] Alternatively, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be signaled. That is, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be generated. Therefore, for example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block may be signaled. That is, for example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block may be generated. Here, for example, the conversion unit syntax for the first conversion block may include the CU chroma QP offset related information for the current chroma block. For example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of a single-tree and a dual-tree chroma), the CU chroma QP offset related information for the current chroma block can be signaled via the conversion unit syntax for the first conversion block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0211] Alternatively, for example, if at least one of the width and height of the current chroma block is greater than a specific value and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block can be signaled. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block can be generated. Here, for example, the specific value can be 64. Therefore, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be signaled. Also, for example, the conversion unit syntax for the first conversion block can include the CU chroma QP offset related information for the current chroma block. For example, if at least one of the width and height of the current chroma block is greater than a specific value, and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset-related information for the current chroma block can be signaled via the conversion unit syntax for the first conversion block, regardless of whether the first conversion block contains at least one non-zero conversion coefficient level.That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the conversion unit syntax for the first conversion block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0212] On the other hand, for example, the CU chroma QP offset-related information may include a CU chroma QP offset flag and / or a CU chroma QP offset index for the current chroma block. The CU chroma QP offset flag can be represented as a CU level chroma QP offset flag, and the CU chroma QP offset index can be represented as a CU level chroma QP offset index.
[0213] For example, the CU Chroma QP Offset flag can be a flag indicating whether or not an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. That is, for example, the CU Chroma QP Offset flag can indicate whether or not an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. For example, if the CU Chroma QP Offset flag exists and its value is 1, the CU Chroma QP Offset flag can indicate that an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. Alternatively, for example, if the value of the CU Chroma QP Offset flag is 0, the CU Chroma QP Offset flag can indicate that the CU QP Offset list for a chroma component is not used to determine the value of the CU Chroma QP Offset. Here, for example, the chroma component may include a Cb component, a Cr component, and / or a joint CbCr component. Furthermore, for example, the syntax element of the CU chroma QP offset flag can be the cu_chroma_qp_offset_flag described above.
[0214] Furthermore, for example, the CU chroma QP offset index can represent the index of an entry in the CU QP offset list used to determine the value of the CU chroma QP offset. That is, for example, the CU chroma QP offset index can be information about the index of an entry in the CU QP offset list. Also, for example, the syntax element of the CU chroma QP offset index can be the cu_chroma_qp_offset_idx described above.
[0215] The encoding device derives the chroma QP for the current chroma block based on the CU chroma QP offset-related information (S1120). The encoding device can derive the chroma QP for the current chroma block based on the CU chroma QP offset-related information. For example, the encoding device can derive the CU chroma QP offset for the current chroma block based on the CU chroma QP offset-related information, and can derive the chroma QP for the current chroma block based on the CU chroma QP offset. Specifically, for example, the encoding device can derive the chroma QP for the current chroma block by adding the first chroma QP for the chroma component and the CU chroma QP offset.
[0216] Specifically, for example, the encoding device can derive a first chroma QP for the chroma components of the current chroma block based on a chroma QP and / or chroma QP mapping table, derive a CU chroma QP offset for the current chroma block based on CU chroma QP offset-related information, and derive a chroma QP for the current chroma block based on the first chroma QP and the CU chroma QP offset. Here, for example, the first chroma QP can also be represented as an SPS (Sequence Parameter Set) chroma QP or an SPS level chroma QP.
[0217] The encoding device quantizes the residual sample based on the chroma QP and derives a conversion coefficient for the current chroma block (S1130). The encoding device can derive a conversion coefficient for the current chroma block based on the chroma QP. For example, the encoding device can quantize the residual sample for the current chroma block based on the chroma QP and derive the conversion coefficient. Alternatively, for example, the decoding device can convert the residual sample for the current chroma block, derive the converted conversion coefficient, quantize the converted conversion coefficient based on the chroma QP, and derive the conversion coefficient.
[0218] The encoding device generates residual information for the conversion coefficients (S1140). For example, the encoding device can generate and encode residual information for the conversion coefficients. For example, the residual information may include conversion coefficient level information and sign flag information for the conversion coefficients. For example, the conversion coefficient level of the conversion coefficient can be derived from the value represented by the conversion coefficient level information included in the residual information, and the sign of the conversion coefficient can be derived from the sign represented by the sign flag information. For example, the residual information may include syntax elements for the conversion coefficients of the current chroma block. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0219] The encoding device encodes image information including the CU chroma QP offset-related information and the residual information (S1150). The encoding device can encode the CU chroma QP offset-related information and the residual information. The image information may include the CU chroma QP offset-related information and the residual information.
[0220] On the other hand, for example, the encoding device can generate and encode prediction information for the current chroma block. In this case, various prediction methods disclosed in this document, such as interpretation or intrapretation, can be applied. For example, the encoding device can decide whether to perform interpretation or intrapretation on the current chroma block, and can determine a specific interpretation mode or a specific intraprediction mode on an RD cost basis. Based on the determined mode, the encoding device can derive prediction samples for the current chroma block. The prediction information may include prediction mode information for the current chroma block. The image information may include the prediction information.
[0221] Furthermore, for example, an encoding device can encode image information and output it in bitstream format.
[0222] On the other hand, for example, an encoding device can generate a reconstructed sample and / or a reconstructed picture by adding the predicted sample and the residual sample.
[0223] As mentioned above, subsequent in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures may be applied to the restored sample to improve subjective / objective image quality as needed.
[0224] On the other hand, for example, deblocking filtering may be performed on the edge of the current chroma block. For example, a specific value may be derived based on the chroma QP of the current chroma block and the chroma QP of a surrounding block adjacent to the edge of the current chroma block, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value can be derived as shown in equation 6 above. The chroma QP of the current chroma block can be derived based on the CU chroma QP offset relative to the current chroma block, as described above, and the chroma QP of the surrounding block can be derived based on the CU chroma QP offset relative to the surrounding block. Here, for example, the edge may represent the region of the current chroma block to which the deblocking filtering is applied.
[0225] Alternatively, for example, a specific value can be derived based on the chroma QP of the current chroma block, the chroma QP of the surrounding block adjacent to the edge of the current chroma block, and the CU chroma QP offset, and a deblocking parameter for the deblocking filtering can be derived based on the specific value. For example, the specific value can be derived as shown in equation 7 above, where, for example, the edge can represent the region of the current chroma block to which the deblocking filtering is applied.
[0226] On the other hand, the bitstream containing the image information can be transmitted to a decoding device via a network or a (digital) storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0227] Figure 12 schematically shows an encoding apparatus that performs the image encoding method relating to this document. The method disclosed in Figure 11 can be performed by the encoding apparatus disclosed in Figure 12. Specifically, for example, the residual processing unit of the encoding apparatus in Figure 12 can perform S1100 to S1140, and the entropy encoding unit of the encoding apparatus in Figure 12 can perform S1150. Furthermore, although not shown, the process of deriving the predicted sample of the current chroma block can be performed by the prediction unit of the encoding apparatus, and the process of generating the restored sample and restored picture based on the residual sample and the predicted sample can be performed by the addition unit of the encoding apparatus.
[0228] Figure 13 schematically illustrates the image decoding method using the decoding device relating to this document. The method disclosed in Figure 13 can be performed by the decoding device disclosed in Figure 3. Specifically, for example, steps S1300 to S1310 in Figure 13 can be performed by the entropy decoding unit of the decoding device, steps S1320 to S1340 in Figure 13 can be performed by the residual processing unit of the decoding device, and step S1350 in Figure 13 can be performed by the addition unit of the decoding device.
[0229] The decoding device acquires current residual information for the chroma block (S1300). The decoding device can acquire image information via the bitstream. For example, the image information may include current residual information for the chroma block. For example, the current residual information may include syntax elements for the conversion coefficients of the chroma block. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0230] The decoding device acquires coding unit (CU) chromatic quantization parameter (QP) offset-related information for the current chromat block based on the size and tree type of the current chromat block (S1310).
[0231] The decoding device can acquire CU chroma quantization parameter (QP) offset-related information for the current chroma block based on the current chroma block size and tree type. For example, the image information may include the CU chroma QP offset-related information. The CU chroma QP offset-related information may also be expressed as CU level chroma QP offset-related information. Here, the tree type can be one of single tree, dual tree chroma, or dual tree chroma. Also, for example, the CU chroma QP offset-related information may be signaled by the transform unit syntax for the first transform block among the transform blocks of the current chroma block. That is, for example, the transform unit syntax for the first transform block may include the CU chroma QP offset-related information. The first transform block may be the transform block that is decoded first in the decoding order among the transform blocks of the current chroma block. For example, the first transform block may be the upper left transform block among the transform blocks of the current chroma block.
[0232] Specifically, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be signaled. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be obtained. Here, for example, the specific value can be 64. Also, for example, the conversion unit syntax for the first conversion block can include the CU chroma QP offset-related information for the current chroma block. For example, if at least one of the width and height of the current chroma block is greater than a specific value, the CU chroma QP offset-related information for the current chroma block can be obtained in the conversion unit syntax for the first conversion block, regardless of whether the first conversion block contains at least one non-zero conversion coefficient level. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, the conversion unit syntax for the first conversion block may include the CU chroma QP offset-related information for the current chroma block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0233] Alternatively, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be signaled. That is, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be acquired. Therefore, for example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block may be signaled. That is, for example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block may be acquired. Here, for example, the conversion unit syntax for the first conversion block may include the CU chroma QP offset related information for the current chroma block. For example, if the tree type is not the dual-tree chroma (i.e., if the tree type is one of a single-tree and a dual-tree chroma), the CU chroma QP offset-related information for the current chroma block can be obtained via the conversion unit syntax for the first conversion block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0234] Alternatively, for example, if at least one of the width and height of the current chroma block is greater than a specific value and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block can be signaled. That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset related information for the current chroma block can be obtained. Here, for example, the specific value can be 64. Therefore, for example, if the tree type is the dual-tree chroma, the CU chroma QP offset related information for the current chroma block may not be signaled. Also, for example, the conversion unit syntax for the first conversion block can include the CU chroma QP offset related information for the current chroma block. For example, if at least one of the width and height of the current chroma block is greater than a specific value, and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the CU chroma QP offset-related information for the current chroma block can be obtained via the conversion unit syntax for the first conversion block, regardless of whether the first conversion block contains at least one non-zero conversion coefficient level.That is, for example, if at least one of the width and height of the current chroma block is greater than a specific value, and the tree type is not the dual-tree chroma (i.e., the tree type is one of single-tree and dual-tree chroma), the conversion unit syntax for the first conversion block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first conversion block includes at least one non-zero conversion coefficient level.
[0235] On the other hand, for example, the CU chroma QP offset-related information may include a CU chroma QP offset flag and / or a CU chroma QP offset index for the current chroma block. The CU chroma QP offset flag can be represented as a CU level chroma QP offset flag, and the CU chroma QP offset index can be represented as a CU level chroma QP offset index.
[0236] For example, the CU Chroma QP Offset flag may be a flag indicating whether or not an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. That is, for example, the CU Chroma QP Offset flag can indicate whether or not an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. For example, if the CU Chroma QP Offset flag exists and its value is 1, the CU Chroma QP Offset flag can indicate that an entry in the CU QP Offset list for a chroma component is used to determine the value of the CU Chroma QP Offset. Alternatively, for example, if the value of the CU Chroma QP Offset flag is 0, the CU Chroma QP Offset flag can indicate that the CU QP Offset list for a chroma component is not used to determine the value of the CU Chroma QP Offset. Here, for example, the chroma component may include a Cb component, a Cr component, and / or a joint CbCr component. Furthermore, for example, the syntax element of the CU chroma QP offset flag can be the cu_chroma_qp_offset_flag described above.
[0237] Furthermore, for example, the CU chroma QP offset index can represent the index of an entry in the CU QP offset list used to determine the value of the CU chroma QP offset. That is, for example, the CU chroma QP offset index can be information about the index of an entry in the CU QP offset list. Also, for example, the syntax element of the CU chroma QP offset index can be the cu_chroma_qp_offset_idx described above.
[0238] The decoding device derives a conversion coefficient for the current chroma block based on the residual information (S1320). The decoding device can derive a conversion coefficient for the current chroma block based on the residual information. The residual information may include conversion coefficient level information and sign flag information for the conversion coefficient.
[0239] For example, the conversion coefficient level of the conversion coefficient can be derived from the value represented by the conversion coefficient level information included in the residual information, and the sign of the conversion coefficient can be derived from the sign represented by the sign flag information.
[0240] The decoding device derives the chroma QP for the current chroma block based on the CU chroma QP offset-related information (S1330). The decoding device can derive the chroma QP for the current chroma block based on the CU chroma QP offset-related information. For example, the decoding device can derive the CU chroma QP offset for the current chroma block based on the CU chroma QP offset-related information, and can derive the chroma QP for the current chroma block based on the CU chroma QP offset. Specifically, for example, the decoding device can derive the chroma QP for the current chroma block by adding the first chroma QP for the chroma component and the CU chroma QP offset.
[0241] Specifically, for example, the decoding device can derive a first chroma QP for the chroma components of the current chroma block based on a chroma QP and / or chroma QP mapping table, derive a CU chroma QP offset for the current chroma block based on CU chroma QP offset-related information, and derive a chroma QP for the current chroma block based on the first chroma QP and the CU chroma QP offset. Here, for example, the first chroma QP can also be represented as an SPS (Sequence Parameter Set) chroma QP or an SPS level chroma QP.
[0242] The decoding device de-quantizes the conversion coefficients based on the chroma QP and derives a resistive sample for the current chroma block (S1340). The decoding device can derive a resistive sample for the current chroma block based on the chroma QP. For example, the decoding device can de-quantize the conversion coefficients for the current chroma block based on the chroma QP and derive the resistive sample. Alternatively, for example, the decoding device can inversely transform the conversion coefficients for the current chroma block, derive the inversely transformed conversion coefficients, and then de-quantize the inversely transformed conversion coefficients based on the chroma QP to derive the resistive sample.
[0243] The decoding device generates a restored picture based on the residual sample (S1350). For example, the decoding device can generate the restored picture based on the residual sample.
[0244] On the other hand, for example, a decoding device can perform an inter-prediction mode or intra-prediction mode on the current chroma block based on the prediction information received via the bitstream to derive a predicted sample, and can generate a restored sample and / or restored picture by adding the predicted sample and the residual sample.
[0245] As mentioned above, subsequently, in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures may be applied to the restored sample to improve subjective / objective image quality as needed.
[0246] On the other hand, for example, deblocking filtering may be performed on the edge of the current chroma block. For example, a specific value may be derived based on the chroma QP of the current chroma block and the chroma QP of a surrounding block adjacent to the edge of the current chroma block, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value can be derived as shown in equation 6 above. The chroma QP of the current chroma block can be derived based on the CU chroma QP offset relative to the current chroma block, as described above, and the chroma QP of the surrounding block can be derived based on the CU chroma QP offset relative to the surrounding block. Here, for example, the edge may represent the region of the current chroma block to which the deblocking filtering is applied.
[0247] Alternatively, for example, a specific value can be derived based on the chroma QP of the current chroma block, the chroma QP of the surrounding block adjacent to the edge of the current chroma block, and the CU chroma QP offset, and a deblocking parameter for the deblocking filtering can be derived based on the specific value. For example, the specific value can be derived as shown in equation 7 above, where, for example, the edge can represent the region of the current chroma block to which the deblocking filtering is applied.
[0248] Figure 14 schematically shows a decoding device that performs the image decoding method relating to this document. The method disclosed in Figure 13 can be performed by the decoding device disclosed in Figure 14. Specifically, for example, the entropy decoding unit of the decoding device in Figure 14 can perform S1300 to S1310 of Figure 13, the residual processing unit of the decoding device in Figure 14 can perform S1320 to S1340 of Figure 13, and the addition unit of the decoding device in Figure 14 can perform S1350 of Figure 13.
[0249] According to the above-mentioned text document, even if the first conversion block in the current chroma block does not contain a non-zero conversion coefficient level, if at least one of the width and height of the current chroma block is greater than a specific size, information regarding the CU chroma QP offset can be signaled, and through this, the cost for the decoder device configuration can be reduced.
[0250] Also, according to the text document, even if the first conversion block in the current chroma block does not contain a non-zero conversion coefficient level, information regarding the CU chroma QP offset can be signaled in the conversion unit syntax of the first conversion block based on the size and tree type of the current chroma block, and through this, the buffer requirements of the decoder device can be reduced, and the cost for the decoder device configuration can be reduced.
[0251] In the above-described embodiments, the method is described based on a flowchart in a series of steps or blocks, but this document is not limited to the order of the steps, and a certain step can occur in a different order from the steps described above or simultaneously. Also, those skilled in the art can understand that the steps shown in the flowchart are not exclusive, other steps are included, or one or more steps of the flowchart can be deleted without affecting the scope of this document.
[0252] The embodiments described in this document can be realized and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each drawing can be realized and executed on a computer, processor, microprocessor, controller, or chip. In this case, information for realization (e.g., information on instructions) or an algorithm can be stored in a digital storage medium.
[0253] Furthermore, the decoding and encoding devices to which the embodiments of this document apply can include multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video interaction devices, real-time communication devices such as video communications, mobile streaming devices, storage media, camcorders, video-on-demand (VoD) service providers, over-the-top (OTT) video equipment, internet streaming service providers, 3D video equipment, image-phone video equipment, transportation terminals (e.g., vehicle terminals, airplane terminals, ship terminals, etc.), and medical video equipment, and can be used to process video signals or data signals. For example, over-the-top (OTT) video equipment can include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, and DVRs (Digital Video Recorders).
[0254] Furthermore, the processing methods to which the embodiments of this document apply can be produced in the form of programs executed on a computer and stored on a computer-readable recording medium. Multimedia data having the data structure relating to this document can also be stored on a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices that store data that can be read by a computer. The computer-readable recording medium can include, for example, Blu-ray discs (BDs), general-purpose serial buses (USBs), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium also includes media implemented in the form of carrier waves (e.g., transmission over the Internet). Furthermore, bitstreams generated by encoding methods can be stored on a computer-readable recording medium or transmitted over a wireless network.
[0255] Furthermore, the embodiments described in this document can be implemented as a computer program product using program code, and the program code can be executed on a computer according to the embodiments described in this document. The program code can be stored on a computer-readable carrier.
[0256] Figure 15 illustrates a content streaming system structure diagram to which the embodiments described in this document apply.
[0257] The content streaming system to which the embodiments described herein apply may broadly include an encoding server, a streaming server, a web server, a media storage facility, user equipment, and multimedia input devices.
[0258] The encoding server is responsible for compressing content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and then transmitting this bitstream to the streaming server. In other cases, if a multimedia input device such as a smartphone, camera, or camcorder directly generates the bitstream, the encoding server can be omitted.
[0259] The bitstream can be generated by an encoding method or bitstream generation method to which an embodiment of this document applies, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0260] The streaming server transmits multimedia data to user devices based on user requests via a web server, and the web server acts as an intermediary to inform users about available services. When a user requests a desired service from the web server, the web server transmits this to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, in which case the control server controls the commands / responses between each device within the content streaming system.
[0261] The streaming server can receive content from a media storage and / or encoding server. For example, if it starts receiving content from the encoding server, it can receive the content in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0262] Examples of user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (such as smartwatches, smart glasses, and HMDs), digital TVs, desktop computers, and digital signage. Each server in the content streaming system can be operated as a distributed server, in which case the data received by each server can be processed in a distributed manner.
[0263] The claims described herein can be combined in various ways. For example, the technical features of the method claims herein can be combined to realize an apparatus, and the technical features of the apparatus claims herein can be combined to realize a method. Furthermore, the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize an apparatus, and the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize a method.
Claims
1. In an image decoding method performed by a decoding device, Currently, the steps involve obtaining residual information for the chroma component of the coding unit, The steps include obtaining CU (Coding Unit) chroma QP (Quantization Parameter) offset-related information for the current coding unit based on the tree type and size of the current coding unit, The steps include: deriving a conversion coefficient for the current coding unit based on the residual information; The steps include: deriving the chroma QP for the current coding unit based on the CU chroma QP offset-related information; The steps include: deriving the residual sample for the current coding unit by inverse quantizing the conversion coefficient based on the chroma QP; The steps include generating a restored picture based on the said residual sample, The CU chroma QP offset-related information is signaled within the conversion unit syntax for the first conversion block among the conversion blocks of the current coding unit. Based on the fact that at least one of the width and height of the current coding unit is greater than 64 and that the tree type is not a dual-tree chroma, the CU chroma QP offset related information is obtained. The CU chroma QP offset-related information includes a CU chroma QP offset index for the current coding unit and a CU chroma QP offset flag for the current coding unit. A method in which the CU chroma QP offset index is obtained based on the fact that the CU chroma QP offset flag indicates that an entry in the CU QP offset list is used to determine the value of the CU chroma QP offset.
2. In an image encoding method performed by an encoding device, Currently, the steps involve deriving a residual sample for the chroma component of the coding unit, The steps include: deriving the Chroma QP (Quantization Parameter) for the current coding unit; The steps include: deriving a conversion coefficient for the current coding unit by quantizing the residual sample based on the chroma QP; A step of generating residual information for the conversion coefficient, The steps include generating CU (Coding Unit) chroma QP offset-related information for the chroma QP based on the current coding unit's tree type and size, The step includes encoding image information including the CU chroma QP offset related information and the residual information, The CU chroma QP offset-related information is signaled within the conversion unit syntax for the first conversion block among the conversion blocks of the current coding unit. Based on the fact that at least one of the width and height of the current coding unit is greater than 64 and the tree type is not a dual tree chroma, the CU chroma QP offset related information is encoded. The CU chroma QP offset-related information includes a CU chroma QP offset index for the current coding unit and a CU chroma QP offset flag for the current coding unit. A method in which the CU chroma QP offset index is encoded based on the fact that the CU chroma QP offset flag indicates that an entry in the CU QP offset list is used to determine the value of the CU chroma QP offset.
3. Regarding methods for transmitting image-related data, The steps include obtaining a bitstream of image information that includes CU (Coding Unit) Chroma QP (Quantization Parameter) offset-related information for the chroma component of the current coding unit, and residual information for the conversion coefficient for the current coding unit, The step of transmitting the data, which includes the bitstream of the image information, which includes the CU chroma QP offset related information and the residual information, The CU Chroma QP offset-related information for the Chroma QP is generated based on the tree type and size of the current coding unit. The conversion coefficient for the current coding unit is derived by quantizing the residual sample for the current coding unit based on the chroma QP. The CU chroma QP offset-related information is signaled within the conversion unit syntax for the first conversion block among the conversion blocks of the current coding unit. Based on the fact that at least one of the width and height of the current coding unit is greater than 64 and the tree type is not a dual tree chroma, the CU chroma QP offset related information is encoded. The CU chroma QP offset-related information includes a CU chroma QP offset index for the current coding unit and a CU chroma QP offset flag for the current coding unit. A method in which the CU chroma QP offset index is encoded based on the fact that the CU chroma QP offset flag indicates that an entry in the CU QP offset list is used to determine the value of the CU chroma QP offset.