Image decoding method using chroma quantization parameter, and apparatus therefor
By optimizing the CU-level chromatic quantization parameter offset information in the image encoding system, the problem of high-resolution image data transmission and storage costs is solved, and more efficient image encoding and decoding is achieved.
Patent Information
- Application Number
- JP2024198340
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-08-22
- Filing Date
- 2024-11-13
- Publication Date
- 2025-01-30
- Estimated Expiration
- 2040-08-20
AI Technical Summary
The prior art is difficult to effectively compress high-resolution and high-quality image data, resulting in increased transmission and storage costs.
By using the method of quantizing parameter offset information of CU-level chromaticity in the image encoding system, the image encoding efficiency is optimized, including obtaining the information of the chroma block and the tree type, derive the conversion coefficients, and generating and recovering pixel values to improve the encoding efficiency.
It reduces the configuration cost and cache requirements of image decoding devices and improves image encoding efficiency.
Smart Images

Figure 2025015621000001_ABST
Abstract
Description
[Technical field]
[0001] This document relates to an image coding technology, and more particularly 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) images and UHD (Ultra High Definition) images is increasing in various fields. As the image data has higher resolution and quality, the amount of information or bits to be transmitted increases relatively compared to existing image data, so that when the image data is transmitted using a medium such as an existing wired or wireless broadband line or when the image data is stored using an existing storage medium, the transmission cost and storage cost increase.
[0003] Thereby, in order to effectively transmit, store and reproduce high resolution, high quality image information, highly efficient image compression techniques are required. Summary of the Invention [Problem to be solved by the invention]
[0004] The technical problem of this document is to provide a method and apparatus for increasing image coding efficiency.
[0005] Another technical problem of this document is to provide a method and apparatus for improving the efficiency of data coding for quantization parameter derivation for chroma components. [Means for solving the problem]
[0006] According to an embodiment of the present document, there is provided an image decoding method performed by a decoding device, the method including 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 a size and a 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; dequantizing the transform coefficients based on the chroma QP to derive residual samples for the current chroma block; and generating a reconstructed picture based on the residual samples, wherein the CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block of the current chroma block.
[0007] According to another embodiment of the present document, there is provided a decoding device for performing image decoding, the decoding device including: an entropy decoding unit configured to acquire residual information for a current chroma block, and acquire coding unit (CU) chroma quantization parameter (QP) offset related information for the current chroma block based on a size and a tree type of the current chroma block, a residual processing unit configured to derive transform coefficients for the current chroma block based on the residual information, derive a chroma QP for the current chroma block based on the CU chroma QP offset related information, dequantize the transform coefficients based on the chroma QP, and derive residual samples for the current chroma block, and an adder configured to generate a reconstructed picture based on the residual samples, wherein the CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block of the current chroma block.
[0008] According to yet another embodiment of the present document, there is provided a video encoding method performed by an encoding apparatus, the method including 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 a size and a 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 to derive transform coefficients for the current chroma block; generating residual information for the transform coefficients; 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 in a transform unit syntax for a first transform block of transform blocks of the current chroma block.
[0009] According to yet another embodiment of the present document, there is provided a video encoding device, comprising: a residual processing unit that 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 a size and a 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 transform coefficients for the current chroma block, and generates residual information for the transform coefficients, and an entropy encoding unit that encodes image information including the CU chroma QP offset related information and the residual information, wherein the CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block of 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 for causing an image decoding method to be performed, the image decoding method including 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 a size and a 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; dequantizing the transform coefficients based on the chroma QP to derive residual samples for the current chroma block; and generating a reconstructed picture based on the residual samples, wherein the CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block of the current chroma block. Effect of the Invention
[0011] According to this 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 larger than a specific size, information regarding the CU chroma QP offset can be signaled, thereby reducing the cost of configuring a decoding device.
[0012] According to this document, even if the first transform block in the current chroma block does not include a non-zero transform coefficient level, information regarding the CU chroma QP offset can be signaled in the transform unit syntax of the first transform block based on the size and tree type of the current chroma block, thereby reducing the buffer requirements of the decoding device and reducing the cost of configuring the decoding device. [Brief description of the drawings]
[0013] [Figure 1] 1 illustrates generally an example of a video / image coding system in which embodiments of the present document may be applied; [Diagram 2] FIG. 1 is a diagram illustrating the configuration of a video / image encoding device to which the embodiments of this document can be applied. [Diagram 3] FIG. 1 is a diagram illustrating the configuration of a video / image decoding device to which an embodiment of the present document can be applied. [Figure 4] 1 illustrates an example of an intra-prediction based video / image encoding method. [Diagram 5] 1 illustrates an example of an intra-prediction based video / image encoding method. [Figure 6] 1 illustrates an exemplary intra prediction procedure. [Figure 7] An example in which cu_qp_delta for a TU in a CU of 128×128 size is transmitted is shown. [Figure 8] 13 shows an example of a QP map for luma and chroma blocks when a single tree is used. [Figure 9] 13 shows an example of a QP map for a chroma block when a dual tree is used. [Figure 10] 13 shows an exemplary sample position for deblocking filtering. [Figure 11] 1 illustrates a schematic diagram of an image encoding method using an encoding device according to the present document. [Figure 12]1 shows a schematic diagram of an encoding device for performing an image encoding method according to the present document; [Figure 13] 1 illustrates an image decoding method using a decoding device according to the present document. [Figure 14] 1 shows a schematic diagram of a decoding device for performing an image decoding method according to the present document; [Figure 15] 1 exemplarily illustrates a structural diagram of a content streaming system to which an embodiment of the present document is applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] This document may have various modifications and may have various embodiments, and a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. Commonly used terms in this specification are used merely to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, terms such as "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0015] Meanwhile, each configuration in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each configuration is realized by separate hardware or software. For example, two or more of each configuration may be combined to form one configuration, and one configuration may be divided into multiple configurations. An embodiment in which each configuration is integrated and / or separated is also included in the scope of this document as long as it does not deviate from the essence of this document.
[0016] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals will be used for the same components in the drawings, and duplicated descriptions of the same components may be omitted.
[0017] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system in which embodiments of the present document may be applied.
[0018] As shown in Figure 1, the video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image information or data to the receiving device in a file or streaming form via a digital storage medium or a network.
[0019] The source device may comprise a video source, an encoding device, and a sending unit. The receiving device may comprise a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as 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 be a separate device or an external component.
[0020] A video source may acquire video / images through a video / image capture, synthesis, or generation process, etc. 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, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which the associated data is generated.
[0021] An encoding device can encode an input video / image. The encoding device can perform a series of steps such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0022] The transmitting unit may transmit the encoded video / image information or data output in the form of a bitstream to a receiving unit of a receiving device via a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit may include elements for generating a media file through a predetermined file format and may include elements for transmission via a broadcasting / communication network. The receiving unit may receive / extract the bitstream and transmit it to a decoding device.
[0023] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, prediction, etc., which correspond to the operations of the encoding device.
[0024] The renderer can render the decoded video / images, and the rendered video / images can be displayed via a 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 versatile video coding (VVC) standard, the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the 2nd generation of audio video coding standard (AVS2), or the next generation video / image coding standard (e.g., H.267 or H.268, etc.).
[0026] In this document, various embodiments relating to video / image coding are presented, which, unless otherwise stated, may also be implemented in combination with each other.
[0027] In this document, a video may mean a collection of a series of images over time. A picture generally means a unit that represents one image at a particular time, and a subpicture / slice / tile is a unit that constitutes a part of a picture in coding. A subpicture / slice / tile may include one or more coding tree units (CTUs). A picture may consist of one or more subpictures / slices / tiles. A picture may consist of one or more groups of tiles. A tile group may include one or more tiles. A brick may represent a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consisting 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. Additionally, a subpicture may represent a rectangular region of one or more slices within a picture. That is, 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 height specified by syntax elements in the picture parameter set and a width 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 maybe 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, the terms tile group and slice may be used interchangeably. For example, tile group / tile group header may be referred to as slice / slice header in this document.
[0028] A pixel or a pel can mean the smallest unit that constitutes one picture (or image). A term corresponding to a pixel can also be used as a "sample." A sample can generally represent a pixel or a pixel value, or can represent only a pixel / pixel value of a luma component, or can represent only a pixel / pixel value of a chroma component.
[0029] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may include one luma block and two chroma (e.g., cb, cr) blocks. A unit may be used interchangeably with terms such as block or area, depending on the case. In a general case, an M×N block may include a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0030] In the present specification, "A or B" may mean "A only," "B only," or "both A and B." In other words, in the present specification, "A or B" may be interpreted as "A and / or B." For example, in the present specification, "A, B or C" may mean "A only," "B only," "C only," or "any combination of A, B and C."
[0031] As used herein, a slash ( / ) or a comma 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." In addition, 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] In addition, 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." Furthermore, "at least one of A, B or C" and "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0034] In addition, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "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." In addition, even when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."
[0035] Technical features described separately in one drawing in this specification may be realized separately or simultaneously.
[0036] The following drawings are created to explain a specific example of the present specification. The names of specific devices and names of specific signals / messages / fields described in the drawings are presented for illustrative purposes only, and the technical features of the present specification are not limited to the specific names used in the following drawings.
[0037] 2 is a diagram for explaining the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, the video encoding device may include an image encoding device.
[0038] As shown in FIG. 2, the encoding device 200 may 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 referred to as a reconstructor or a reconstructed block generator. The image division unit 210, the prediction unit 220, the residual processing unit 230, the entropy encoding unit 240, the addition unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chip set or a processor) according to an embodiment. In addition, the memory 270 may include a decoded picture buffer (DPB) 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 division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, a quad-tree structure may be applied first, and a binary tree structure and / or a ternary structure may be applied later. Alternatively, a binary tree structure may be applied first. The coding procedure according to this document may be performed based on a final coding unit that is not further divided. In this case, the largest coding unit may be used as the final coding unit immediately based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as necessary, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the transform unit is a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0040] The unit may be used interchangeably with terms such as block or area. In the general case, an M×N block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or pixel value, may represent only a pixel / pixel value of a luma component, or may represent only a pixel / pixel value of a chroma component. A sample may be used as a term corresponding to a pixel or pel of one picture (or image).
[0041] The encoding device 200 may generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input image signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as illustrated, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoder 200 may be called a subtraction unit 231. The prediction unit may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including a prediction sample for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied in units of a current block or a CU. The prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoding unit 240, as will be described later in the description of each prediction mode. The prediction information can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0042] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction mode applied to the neighboring block.
[0043] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block by forming a motion information candidate list based on neighboring blocks. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of a motion vector prediction (MVP) mode, the motion vector of a neighboring block can be 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 may generate a prediction signal based on various prediction methods described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, or may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). The prediction unit may also be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding such as games, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information regarding a palette table and a palette index.
[0045] The prediction signal generated through the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) may be used to generate a restored signal or may be used to generate a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same square size, or may be applied to non-square, variable-sized blocks.
[0046] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoder 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal as a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of network abstraction layer (NAL) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may further include general constraint information. Information and / or syntax elements transmitted / signaled from an encoding device to a decoding device in this document may be included in the video / image information. The video / image information may be encoded through the above-mentioned encoding procedure and included in the bitstream.The bitstream may be transmitted via a network or may be stored in a digital storage medium, where the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding device 200, or the transmitter may be included in the entropy encoding unit 240.
[0047] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be restored by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 may 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. When there is no residual for the current block, such as when a skip mode is applied, a predicted block may be used as a reconstructed block. The adder 250 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering, as described below.
[0048] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.
[0049] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoding unit 240, as will be described later in relation to each filtering method. The information related to filtering may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0050] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus may avoid prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300, and may also improve encoding efficiency.
[0051] The memory 270DPB may store the modified reconstructed picture to be used as a reference picture in the inter prediction unit 221. The memory 270 may store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 221 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.
[0052] FIG. 3 is a diagram illustrating a schematic configuration of a video / image decoding device to which the embodiments of this document can be applied.
[0053] As shown in FIG. 3, the decoding device 300 may 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 predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. Also, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.
[0054] When a bitstream including video / image information is input, the decoding apparatus 300 can restore an image corresponding to a process in which the video / image information is processed by the encoding apparatus of FIG. 2. For example, the decoding apparatus 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding apparatus 300 can perform decoding using a processing unit applied in the encoding apparatus. Thus, the processing unit of the decoding is, for example, a coding unit, and the coding unit 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 ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output by the decoding apparatus 300 can be reproduced by a reproduction device.
[0055] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device may further decode pictures based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration, quantized values of transform coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decode information on the neighboring and blocks to be decoded, or information on symbols / bins decoded in a previous step, predict the occurrence probability of bins according to the determined context model, and perform arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. In this case, the CABAC entropy decoding method may update the context model using information on the decoded symbols / bins for the context model of the next symbol / bin after determining the context model.Among the information decoded by the entropy decoding unit 310, information related to prediction is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and residual values entropy decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to the residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). Also, among the information decoded by the entropy decoding unit 310, information related to filtering may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) for receiving a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may 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, the inverse transform unit 322, the addition unit 340, the filtering unit 350, the memory 360, the inter prediction unit 332, and the intra prediction unit 331.
[0056] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients to output transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scan order performed in the encoding device. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0057] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0058] The prediction unit may perform prediction on a current block and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on information on the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0059] The prediction unit 320 may generate a prediction signal based on various prediction methods described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). In addition, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding such as games, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, information regarding a palette table and a palette index may be included in the video / image information and signaled.
[0060] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on a prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block using a prediction mode applied to a neighboring block.
[0061] The inter prediction unit 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted from an inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter prediction unit 332 may configure a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating a mode of inter prediction for the current block.
[0062] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to a prediction signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 332 and / or the intra prediction unit 331). When there is no residual for a current block, such as when a skip mode is applied, the predicted block may be used as a reconstructed block.
[0063] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in a current picture, and may be output after filtering as described below, or may be used for inter prediction of a next picture.
[0064] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.
[0065] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed 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, an adaptive loop filter, a bilateral filter, etc.
[0066] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 332. The memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 360 may store reconstructed samples of reconstructed 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 also be applied identically or correspondingly 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 / dequantization and / or transform / inverse transform may be omitted. When the quantization / dequantization is omitted, the quantized transform coefficients may be referred to as transform coefficients. When the transform / inverse transform is omitted, the transform coefficients may be referred to as coefficients or residual coefficients, or may still be referred to as transform coefficients for uniformity of expression.
[0069] In this document, the quantized transform coefficients and the transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information on the transform coefficient(s), and the information on the transform coefficient(s) may be signaled via a residual coding syntax. A transform coefficient may be derived based on the residual information (or information on the transform coefficient(s)), and a scaled transform coefficient may be derived through an inverse transform (scaling) on the transform coefficient. A residual sample may be derived based on an inverse transform (transform) on the scaled transform coefficient. This may be similarly applied / expressed in other parts of this document.
[0070] As described above, in performing video coding, prediction is performed to improve compression efficiency. Through this, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in a spatial domain (or a pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device, and the encoding device can improve image coding efficiency by signaling information (residual information) about the residual between the original block and the predicted block, which is not the original sample value of the original block itself, to the decoding device. The decoding device can derive a residual block including residual samples based on the residual information, combine the residual block and the predicted block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.
[0071] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the residual samples (residual sample array) included in the residual block to derive transform coefficients, perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and signal related residual information (through a bitstream) to a decoding apparatus. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. The encoding apparatus may further derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.
[0072] Intra prediction may represent a prediction that generates a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, 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 neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0073] However, some of the neighboring reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may substitute the unavailable samples for the available samples to construct the neighboring reference samples used for prediction. Alternatively, the decoder may construct the neighboring reference samples used for prediction through interpolation of the available samples.
[0074] When neighboring reference samples are derived, (i) a predicted sample can be derived based on an average or an interpolation of neighboring reference samples of the current block, or (ii) the predicted sample can be derived based on a reference sample that exists in a specific (prediction) direction with respect to the predicted sample among the neighboring reference samples of the current block. (i) can be called a non-directional mode or a non-angular mode, and (ii) can be called a directional mode or an angular mode.
[0075] In addition, the prediction sample may be generated by interpolating a first neighboring sample located in a prediction direction of an intra prediction mode of the current block and a second neighboring sample located in an opposite direction to the prediction direction based on the prediction sample of the current block among the neighboring reference samples. The above case may be called a linear interpolation intra prediction (LIP). Also, a chroma prediction sample may be generated based on a luma sample using a linear model (LM). In this case, it may be called an LM mode or a CCLM (chroma component LM) mode.
[0076] Also, a provisional prediction sample of the current block may be derived based on the filtered neighboring reference samples, and a prediction sample of the current block may be derived by weighting the provisional prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples, i.e., the unfiltered neighboring reference samples. The above case may be called Position Dependent Intra Prediction (PDPC).
[0077] Also, the reference sample line with the highest prediction accuracy may be selected from among multiple reference sample lines surrounding the current block, a prediction sample may be derived using a reference sample located in a prediction direction on the selected line, and the reference sample line used may be signaled to a decoding device, thereby performing intra prediction encoding. The above case may be called multi-reference line intra prediction or MRL-based intra prediction.
[0078] In addition, the current block may be divided into vertical or horizontal sub-partitions and intra prediction may be performed based on the same intra prediction mode, but neighboring reference samples may be derived and used in units of the sub-partitions. That is, in this case, the intra prediction mode for the current block is similarly applied to the sub-partitions, but neighboring reference samples may be derived and used in units of the sub-partitions, thereby improving intra prediction performance in some cases. Such a prediction method may be called ISP (intra sub-partitions) based intra prediction.
[0079] The above-mentioned intra prediction methods, etc., may be called intra prediction types, distinguished from intra prediction modes. The intra prediction types may be called various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction types (or additional intra prediction modes, etc.) may include at least one of the above-mentioned LIP, PDPC, MRL, and ISP. A general intra prediction method other than the specific intra prediction types, such as the LIP, PDPC, MRL, and ISP, may be called a normal intra prediction type. The normal intra prediction type may be generally applied when the above-mentioned specific intra prediction types are not applied, and prediction may be performed based on the above-mentioned intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.
[0080] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra prediction mode / type. In addition, a post-processing filtering step may be performed on the derived prediction sample, if necessary.
[0081] FIG. 4 illustrates an example of an intra-prediction based video / image encoding method.
[0082] As shown in FIG. 4, the encoding apparatus performs intra prediction on a current block (S400). The encoding apparatus may derive an intra prediction mode / type for the current block, derive neighboring reference samples for the current block, and generate a prediction sample in the current block based on the intra prediction mode / type and the neighboring reference samples. Here, the intra prediction mode / type determination, neighboring reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or any one procedure may be performed prior to the other procedures. The encoding apparatus may determine a mode / type to be applied to the current block from among a plurality of intra prediction modes / types. The encoding apparatus may compare RD costs for the intra prediction modes / types to determine an optimal intra prediction mode / type for the current block.
[0083] Meanwhile, the encoding apparatus may also perform a prediction sample filtering procedure. The prediction sample filtering may 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 may be omitted.
[0084] The encoding apparatus generates residual samples for the current block based on the (filtered) predicted samples (S410). The encoding apparatus may derive the residual samples by comparing the predicted samples with the original samples of the current block based on a phase.
[0085] The encoding device may encode image information including information on the intra prediction (prediction information) and residual information on the residual sample (S420). The prediction information may include the intra prediction mode information and the intra prediction type information. The encoding device may output the encoded image information in the form of a bitstream. The output bitstream may be transmitted to a decoding device via a storage medium or a network.
[0086] The residual information may include a residual coding syntax, which will be described later. An encoding apparatus may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information regarding the quantized transform coefficients.
[0087] Meanwhile, as described above, the encoding apparatus may generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding apparatus may again inverse quantize / inverse transform the quantized transform coefficients to derive (modified) residual samples. The reason for again performing inverse quantization / inverse transform after transforming / quantizing the residual samples is to derive the same residual samples as the residual samples derived from the decoding apparatus, as described above. The encoding apparatus may generate a reconstructed block including reconstructed samples for the current block based on the predicted samples and the (modified) residual samples. A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure, etc. may further be applied to the reconstructed picture.
[0088] FIG. 5 illustrates an example of an intra-prediction based video / image encoding method.
[0089] The decoding device may perform operations corresponding to those performed by the encoding device.
[0090] Prediction information and residual information may be obtained from a bitstream. A residual sample for a current block may be derived based on the residual information. Specifically, a transform coefficient may be derived by performing inverse quantization based on a quantized transform coefficient derived based on the residual information, and a residual sample for the current block may be derived by performing inverse transform on the transform coefficient.
[0091] Specifically, the decoding apparatus may derive an intra prediction mode / type for a current block based on received prediction information (intra prediction mode / type information) (S500). The decoding apparatus may derive neighboring reference samples for the current block (S510). The decoding apparatus generates prediction samples in the current block based on the intra prediction mode / type and the neighboring reference samples (S520). In this case, the decoding apparatus may perform a prediction sample filtering procedure. The prediction sample filtering may be referred to as 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 may be omitted.
[0092] The decoding apparatus generates a residual sample for the current block based on the received residual information (S530). The decoding apparatus generates a reconstructed sample for the current block based on the prediction sample and the residual sample, and may derive a reconstructed block including the reconstructed sample (S540). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like may be further applied to the reconstructed picture.
[0093] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a 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 (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.
[0094] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (ex.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 (ex.intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, or ISP type information (ex.intra_subpartitions_split_flag) indicating a subpartition split type when the ISP is applied. Also, the intra prediction type information may include an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0095] The intra prediction mode information and / or the intra prediction type information may be encoded / decoded by a coding method described in this document. For example, the intra prediction mode information and / or the intra prediction type information may be encoded / decoded via entropy coding (e.g., CABAC, CAVLC).
[0096] FIG. 6 exemplarily illustrates an intra prediction procedure.
[0097] 6, as described above, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction execution (prediction sample generation) step. The intra prediction procedure may be performed in 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 FIG. 6, the coding device determines an intra-prediction mode / type (S600).
[0099] The encoding apparatus may determine an intra prediction mode / type to be applied to the current block from among the various intra prediction modes / types described above, and may generate prediction related information. The prediction related information may include intra prediction mode information indicating an intra prediction mode to be applied to the current block and / or intra prediction type information indicating an intra prediction type to be applied to the current block. The decoding apparatus may determine an intra prediction mode / type to be applied to the current block based on the prediction related information.
[0100] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a 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 (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.
[0101] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (ex.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 (ex.intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, or ISP type information (ex.intra_subpartitions_split_flag) indicating a subpartition split type when the ISP is applied. Also, the intra prediction type information may include an MIP flag indicating whether 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 mode of the neighboring blocks. For example, the coding apparatus may select one of the MPM candidates in the MPM (most probable mode) list derived based on the intra prediction modes of the neighboring blocks (ex. left and / or upper neighboring blocks) of the current block and / or additional candidate modes based on the received MPM index, or may select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on MPM remainder information (remaining intra prediction mode information). The MPM list may be configured to include or not include the planar mode as a candidate. For example, if the MPM list includes the planar mode as a candidate, the MPM list may have six candidates, and if the MPM list does not include the planar mode as a candidate, the MPM list may have five candidates. If the MPM list does not include a planar mode as a candidate, a not planar flag (ex. intra_luma_not_planar_flag) indicating that the intra prediction mode of the current block is not a planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not planar flag may be signaled when the value of the MPM flag is 1. Also, the MPM index may be signaled when the value of the not planar flag is 1. Here, the reason why the MPM list is configured not to include a planar mode as a candidate is that the planar mode is always considered as an MPM, rather than the planar mode being not an MPM, and therefore a flag (not planar flag) is signaled first to first check whether the mode is a planar mode.
[0103] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planar mode) or among the remaining mode may be indicated based on an MPM flag (ex.intra_luma_mpm_flag). A value of 1 of the MPM flag may indicate that the intra prediction mode for the current block is among the MPM candidates (and planar mode), and a value of 0 of the MPM flag may indicate that the intra prediction mode for the current block is not among the MPM candidates (and planar mode). A value of 0 of the not planar flag (ex.intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 of the not planar flag may indicate that the intra prediction mode for the current block is not the planar mode. The MPM index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may 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 may index the remaining intra prediction modes not included in the MPM candidates (and planar modes) among all intra prediction modes in order of prediction mode numbers, and may indicate one of them. The intra prediction mode may be an intra prediction mode for a luma component (sample). Hereinafter, the intra prediction mode information may include at least one of the MPM flag (ex.intra_luma_mpm_flag), the not planar flag (ex.intra_luma_not_planar_flag), the MPM index (ex.mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, an MPM list may be referred to by various terms, such as an MPM candidate list, a candModeList, etc.
[0104] When MIP is applied to the current block, a separate MPM flag (ex.intra_mip_mpm_flag), MPM index (ex.intra_mip_mpm_idx), and remaining intra-prediction mode information (ex.intra_mip_mpm_remainder) for MIP may be signaled, and the not planar flag may not be signaled.
[0105] In other words, when an image is generally divided into blocks, the current block to be coded and neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are highly likely to have the same or similar intra-prediction modes. Therefore, the encoder can use the intra-prediction modes of the neighboring blocks to encode the intra-prediction mode of the current block.
[0106] A coding apparatus may configure a most probable modes (MPM) list for a current block. The MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency in consideration of similarity between a current block and a neighboring block when performing intra prediction mode coding. As described above, the MPM list may be configured to include a planar mode or may be configured to exclude a planar mode. For example, if the MPM list includes a planar mode, the number of candidates in the MPM list may be six. And, if the MPM list does not include a planar mode, the number of candidates in the MPM list may be five.
[0107] The encoding apparatus may perform prediction based on various intra prediction modes and may determine an optimal intra prediction mode based on rate-distortion optimization (RDO) based on the prediction. In this case, the encoding apparatus may determine the optimal intra prediction mode using only the MPM candidates and planar modes configured in the MPM list, or may 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 a normal intra prediction type (e.g., LIP, MRL, or ISP), the encoding apparatus may 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 may be determined from the MPM candidates and planar modes, and in this case, the MPM flag may not 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] Meanwhile, in general, if the intra prediction mode of the current block is not a planar mode but 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 in the MPM list, the encoding device generates MPM remainder information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list (and planar modes). The MPM remainder information may include, for example, an intra_luma_mpm_remainder syntax element.
[0109] The decoding device obtains intra prediction mode information from a bitstream. The intra prediction mode information may include at least one of an MPM flag, a not planar flag, an MPM index, and MPM remainder information (remaining intra prediction mode information) as described above. The decoding device may configure an MPM list. The MPM list is configured in the same manner as the MPM list configured in the encoding device. That is, the MPM list may include intra prediction modes of neighboring blocks, and may further include a specific intra prediction mode according to a predetermined method.
[0110] The decoding apparatus may determine an intra prediction mode of the current block based on the MPM list and the intra prediction mode information. For example, when the value of the MPM flag is 1, the decoding apparatus may derive a planar mode as the intra prediction mode of the current block (based on a not planar flag), or may derive a candidate indicated by the MPM index among MPM candidates in the MPM list as the intra prediction mode of the current block. Here, the MPM candidate may represent only candidates included in the MPM list, or may include not only candidates included in the MPM list but also planar modes that can be applied when the value of the MPM flag is 1.
[0111] As another example, when the value of the MPM flag is 0, the decoding device may derive the intra prediction mode pointed to by the remaining intra prediction mode information (which may be referred to as mpm remainder information) from among the remaining intra prediction modes not included in the MPM list and planar mode as the intra prediction mode of the current block. Meanwhile, as yet another example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP, etc.), the decoding device may derive the planar mode or a candidate pointed to by the MPM flag in the MPM list as the intra prediction mode of the current block without parsing / decoding / checking the MPM flag.
[0112] The coding apparatus derives neighboring reference samples of the current block (S610). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, 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 neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0113] On the other hand, when MRL is applied (i.e., when the value of the MRL index is greater than 0), the neighboring reference samples may be located on the 1st or 2nd line, not the 0th line, adjacent to the current block on the left / top side, and in this case, the number of neighboring reference samples may be further increased.On the other hand, when ISP is applied, the neighboring reference samples may be derived in sub-partition units.
[0114] The coding apparatus performs intra prediction on the current block to derive a prediction sample (S620). The coding apparatus may derive the prediction sample based on the intra prediction mode / type and the surrounding samples. The coding apparatus may derive a reference sample according to the intra prediction mode of the current block from among surrounding reference samples of the current block, and may derive a prediction sample of the current block based on the reference sample.
[0115] Meanwhile, as described above, the quantization unit of the encoding device can apply quantization to the transform coefficients to derive the quantized transform coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can apply inverse quantization to the quantized transform coefficients to derive the transform coefficients.
[0116] Generally, in video / image coding, a quantization rate can be changed, and a compression rate can be adjusted using the changed quantization rate. In terms of implementation, instead of directly using the quantization rate, a quantization parameter (QP) can be used in consideration of complexity. For example, an integer value of a quantization parameter from 0 to 63 can be used, and each quantization parameter value can correspond to an actual quantization rate. For example, a quantization parameter QP for a luma component (luma sample) can be Y and the quantization parameter QP for the chroma components (chroma samples). c can be set differently.
[0117] The quantization process takes the transform coefficients C as input and the quantization rate Q stepquantization factor, and a quantized transform coefficient C' can be obtained based on the quantization factor. In this case, the quantization factor can be scaled to generate an integer in consideration of the computational complexity, and a shift operation can be performed by the amount of a value corresponding to the scale value. A quantization scale can be derived based on the product of the quantization factor and the scale value. That is, the quantization scale can be derived based on the QP. For example, the quantization scale can be applied to the transform coefficient C, and a quantized transform coefficient C' can be derived based on the quantization scale.
[0118] The inverse quantization process is the inverse process of the quantization process, and applies a quantization rate Q step and obtain a reconstructed transform coefficient C` based on the quantization parameter. In this case, a level scale may be derived according to the quantization parameter, and the level scale may be applied to the quantized transform coefficient C` to obtain a reconstructed transform coefficient C` based on the level scale. The reconstructed transform coefficient C` may be slightly different from the original transform coefficient C due to loss in the conversion and / or quantization process. Therefore, the encoding device also performs inverse quantization in the same manner as the decoding device.
[0119] Meanwhile, an adaptive frequency weighting quantization technique that adjusts the quantization strength according to the frequency may be applied. The adaptive frequency weighting quantization technique is a method of applying a quantization strength differently according to the frequency. The adaptive frequency weighting quantization may apply a quantization strength differently according to each frequency by using a predefined quantization scaling metric. That is, the above-mentioned quantization / dequantization process may be performed based on the quantization scaling metric. For example, a different quantization scaling metric may be used depending on the size of the current block and / or whether the prediction mode applied to the current block is inter prediction or intra prediction to generate a residual signal of the current block. The quantization scaling metric may be referred to as a quantization metric or a scaling metric. The quantization scaling metric may be defined in advance. In addition, for frequency adaptive scaling, frequency-specific quantization scale information for the quantization scaling metric may be configured / encoded in an encoding device and signaled to a decoding device. The frequency-specific quantization scale information may be referred to as quantization scaling information. The frequency-specific quantization scale information may include scaling list data (scaling_list_data). The (modified) quantization scaling metrics may be derived based on the scaling list data. The frequency-specific quantization scale information may include present flag information indicating whether the scaling list data is present. Alternatively, when the scaling list data is signaled at a higher level (e.g., SPS), the frequency-specific quantization scale information may further include information indicating whether 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 may be applied to the luma and chroma components based on the quantization parameter.
[0121] Meanwhile, in the current video / image coding standard, for a quantization group, the information about the luma QP is the delta QP with the previous QP. p In the example, the delta QP may be signaled to the first transform unit having the coded coefficients, and the information may be delayed in transmission until the first transform unit having the coded coefficients. Specifically, the syntax element cu_qp_delta representing the delta QP may be transmitted in the first transform unit (i.e., tu_cbf=1) of the quantization group having the coded coefficients.
[0122] 7 shows an example in which cu_qp_delta for TUs in a CU of 128×128 size is transmitted. As shown in FIG 7, for a large size CU, delta QP may not be transmitted until the last TU in the coding order. However, the delta QP value transmitted for the last TU may be applied to the entire CU.
[0123] In addition, the current video / image coding standard may use the concept of a 64x64 VDPU (Virtual Decoder Pipeline Unit). In particular, the current video / image coding standard may be designed such that structural and syntax elements for maximum transform sizes, luma / chrominance interleaving, etc., allow a decoding device to process a 64x64 size block (i.e., a VDPU) at a time even for a large CU of up to 128x128 size. The use of a 64x64 pipeline may allow for a significant cost reduction in the decoding device by providing for the buffering requirements of the 128x128 pipeline.
[0124] However, the delta QP design in VVC Standard Draft 5 and earlier standards does not fit the 64x64 pipeline concept. Because a QP value is required for in-loop filtering, the absence of a QP value can mean that a CU cannot complete the process for a previous TU.
[0125] Specifically, the deblocking filter may require the QP to determine the filtering thresholds. Therefore, a condition is added to the delta QP signaling in VVC Standard Draft 6. Specifically, for a CU with cbWidth[chType]>64 or cbHeight[chType]>64, a condition may be added to signal the delta QP regardless of whether the first TU has a non-zero coefficient (i.e., a coded coefficient).
[0126] For example, the luma delta QP in VVC standard draft 6 can be signaled as follows:
[0127] [Table 1]
[0128] Also, for example, in VVC standard Draft 5, chroma QP control is only available at the picture and slice levels. For example, chroma QP can be derived as follows:
[0129]
number
[0130] Here, Q pY Luma QP, QpBdOffset Crepresents the chroma QP range offset, pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset represent the PPS level QP offset for each chroma component, and slice_cb_qp_offset, slice_cr_qp_offset, and slice_joint_cbcr_qp_offset represent the slice level QP offset for each chroma component. 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 may 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, chroma QP can be derived as follows:
[0132]
number
[0133] where CuQpOffset Cb , CuQpOffset Cr , CuQpOffset CbCr can represent the CU-level QP offset for each chroma component. 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 may represent the chroma quantization parameter for joint Cb-Cr coding.
[0134] FIG. 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 by the sum of the luma QP and the signaled chroma QP offset. As shown in FIG. 8, the solid rectangles can represent quantization groups, and the dotted rectangles can represent CUs. For example, as shown in FIG. 8, the CuQpOffset chroma may be 2. Meanwhile, the tree type of the current block may 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 may be expressed as a single tree, and if the current chroma block has a different partition structure from the current luma block, it may be expressed as a dual tree. The current block may be a CU or a TU.
[0135] FIG. 9 shows an example of a QP map for a chroma block when a dual tree is used. For example, as shown in FIG. 9(a), chroma can be −9, and CuQpOffset chroma can be 2. When dual trees are used, the boundaries between luma CUs and chroma CUs 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 may be derived as the sum of the co-located luma QP (at the center of the chroma CU) and the signaled chroma QP offset. Although the correlation between the luma QP and the chroma QP is somewhat maintained, the control over the chroma QP may be difficult to predict.
[0136] VVC Standard Draft 6 also integrates a joint CbCr residual coding mode by expanding the offset table from 2 QPoffsets per entry to 3 QPoffsets per entry.
[0137] Also, for example, the TU syntax of VVC Standard Draft 6 may be as shown in the table below.
[0138] [Table 2-1]
[0139] [Table 2-2]
[0140] [Table 2-3]
[0141] The transform coefficient level may be represented by an array TransCoeffLevel[x0][y0][cIdx][xC][yC]. Here, the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the corresponding transform 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), the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the corresponding transform block. Also, the array index cIdx may represent an index for a 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. Also, the array indexes xC and yC may represent the positions xC, yC of the transform coefficients in the current transform block. On the other hand, if the value of TransCoeffLevel[x0][y0][cIdx][xC][yC] is not specified, the value may be inferred to be the same as 0.
[0142] Also, for example, if the syntax element tu_cbf_cb[x0][y0] is 1, it may indicate that the Cb transform block includes one or more transform coefficient levels that are not 0. Here, the array indexes x0, y0 may represent the upper left corner positions x0, y0 of the transform block under consideration. If the syntax element tu_cbf_cb[x0][y0] does not exist in the current TU, the value of the syntax element tu_cbf_cb[x0][y0] may be regarded as 0. Also, the tu_cbf_cb[x0][y0] may be expressed as tu_cb_coded_flag[x0][y0].
[0143] Also, for example, if the syntax element tu_cbf_cr[x0][y0] is 1, it may indicate that the Cr transform block includes one or more transform coefficient levels that are not 0. Here, the array indexes x0, y0 may represent the upper left corner positions x0, y0 of the considered transform block. If the syntax element tu_cbf_cr[x0][y0] does not exist in the current TU, the value of the syntax element tu_cbf_cr[x0][y0] may be regarded as 0. Also, the tu_cbf_cr[x0][y0] may be expressed as tu_cr_coded_flag[x0][y0].
[0144] Also, for example, if the syntax element tu_cbf_luma[x0][y0] is 1, it may indicate that the luma transform block includes one or more transform coefficient levels that are not 0. Here, the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the transform 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), the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the transform block. When the syntax element tu_cbf_luma[x0][y0] does not exist in the current TU, the value of the syntax element tu_cbf_luma[x0][y0] may be regarded as follows.
[0145] For example, if the value of cu_sbt_flag is 1 and one of the conditions described below is true, the value of the syntax element tu_cbf_luma[x0][y0] can be regarded 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] may be regarded as 1. In addition, the tu_cbf_luma[x0][y0] may also be expressed as tu_y_coded_flag[x0][y0].
[0149] Also, for example, syntax element tu_joint_cbcr_residual_flag[x0][y0] may indicate whether residual samples for chroma component Cb and chroma component Cr are coded in a single transform block. Here, array index x0, y0 may represent the position x0, y0 of the top left luma sample of the corresponding transform block with respect to the top left luma sample of the picture. That is, array index x0, y0 may represent the position x0, y0 of the top left luma sample of the corresponding transform block when the position of the top left luma sample of the picture is (0, 0).
[0150] For example, if the syntax element tu_joint_cbcr_residual_flag[x0][y0] is 1, it may indicate that the transform unit syntax includes a transform coefficient level for a single transform block from which residual samples for chroma components Cb and Cr are derived. Also, if the syntax element tu_joint_cbcr_residual_flag[x0][y0] is 0, it may indicate that the transform coefficient levels of the chroma components, etc. are coded to be represented by 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, the value of the syntax element tu_joint_cbcr_residual_flag[x0][y0] may be regarded as 0.
[0151] For example, the variable TuCResMode[x0][y0] can be derived as follows using tu_joint_cbcr_residual_flag[x0][y0], tu_cbf_cb[x0][y0], and tu_cbf_cr[x0][y0]:
[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 the above cases do not apply 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 does not apply and tu_cbf_cb[x0][y0] is 1, the variable TuCResMode[x0][y0] can be set to 2.
[0155] If the above cases do not apply, the variables TuCResMode[x0][y0” can be set to 3.
[0156] Also, for example, the syntax element cu_qp_delta_abs may represent the absolute value of the difference CuQpDeltaVal between the quantization parameter of the current coding unit and its prediction.
[0157] Also, 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 the CuQpDeltaVal can have a positive value.
[0159] If the above cases do not apply (ie, for example, cu_qp_delta_sign_flag is 1), the CuQpDeltaVal may have a negative value.
[0160] On the other hand, if the syntax element cu_qp_delta_sign_flag is not present, the value of the syntax element cu_qp_delta_sign_flag may be regarded as 0.
[0161] Also, for example, if cu_qp_delta_abs exists, the variables IsCuQpDeltaCoded and CuQpDeltaVal can be derived as follows:
[0162]
number
[0163] The value of CuQpDeltaVal can be in the range of -(32+QpBdOffsetY / 2) to +(31+QpBdOffsetY / 2).
[0164] Also, for example, when the syntax element cu_chroma_qp_offset_flag exists and is set to 1, the syntax element cu_chroma_qp_offset_flag indicates that an entry in cb_qp_offset_list[] is CuQpOffset Cb The corresponding entry in cr_qp_offset_list[] is used to determine the value of CuQpOffset Cr The corresponding entry in joint_cbcr_qp_offset_list[] is used to determine the value of CuQpOffset CbCrFor example, when the syntax element cu_chroma_qp_offset_flag is 0, the syntax element cu_chroma_qp_offset_flag indicates that cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] are used to determine the value of CuQpOffset. Cb , CuQpOffset Cr , CuQpOffset CbCr It can be indicated that the .lambda.
[0165] Also, for example, when 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 may represent an index in cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] used to determine the value of. If the syntax element cu_chroma_qp_offset_idx is present, the value of the syntax element cu_chroma_qp_offset_idx may be in the range of 0 to chroma_qp_offset_list_len_minus1. If the syntax element cu_chroma_qp_offset_idx is not present, the syntax element cu_chroma_qp_offset_idx may be considered as 0.
[0166] Also, for example, when the syntax element cu_chroma_qp_offset_flag is present, the contents described below may apply.
[0167] If cu_chroma_qp_offset_flag is 1, CuQpOffset is calculated as follows:Cb , CuQpOffset Cr , and CuQpOffset CbCr A value of can be derived.
[0168]
number
[0169] If the above cases do not apply (i.e., cu_chroma_qp_offset_flag is 0), CuQpOffset Cb , CuQpOffset Cr , and CuQpOffset CbCr can be set to 0.
[0170] Also, for example, the syntax element transform_skip_flag[x0][y0] may indicate whether a transform is applied to the luma transform block. Here, the array indexes x0, y0 may indicate the position x0, y0 of the top left luma sample of the transform block relative to the top left luma sample of the picture. That is, the array indexes x0, y0 may indicate the position x0, y0 of the top left luma sample of the transform 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 may indicate that no transform is applied to the luma transform block. Also, for example, if transform_skip_flag[x0][y0] is 0, it may indicate that whether a transform is applied to the luma transform block may be determined based on other syntax elements.
[0171] Also, for example, if the transform_skip_flag[x0][y0] is not present, the value of the transform_skip_flag[x0][y0] can be regarded as follows:
[0172] For example, if BdpcmFlag[x0][y0] is 1, the transform_skip_flag[x0][y0] can be regarded as 1.
[0173] If the above cases do not apply (ie, for example, BdpcmFlag[x0][y0] is 0), the transform_skip_flag[x0][y0] may be regarded as 0.
[0174] Also, for example, the syntax element tu_mts_idx[x0][y0] may represent transform kernels applied to residual samples in the horizontal and vertical directions of an associated luma transform block. Here, the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the transform block relative to the top left luma sample of the picture. That is, the array indexes x0, y0 may represent the position x0, y0 of the top left luma sample of the transform block when the position of the top 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] may be regarded as 0.
[0175] FIG. 10 exemplarily shows sample positions for deblocking filtering.
[0176] Meanwhile, the chroma QP may be used for deblocking filtering of the chroma components. However, for example, the chroma QP used for deblocking filtering may not take into account slice level and CU level QP adjustment. For example, the chroma QP used for deblocking filtering may be derived based on the corresponding luma QP and a picture level chroma QP offset cQpPicOffset. Here, for example, cQpPicOffset representing the picture level chroma QP offset may be derived to pps_cb_qp_offset if cIdx is 1, and may be derived to pps_cr_qp_offset if cIdx is not 1.
[0177] Also, for example, the variable QpQ is the sample q shown in FIG. 0、0 Qp of the coding unit including the coding block Y The variable Qp P is the sample p shown in Figure 6. 0、0 Qp of the coding unit including the coding block Y It can be set equal to the value.
[0178] Then the chroma QP Qp used for deblocking filtering C can be derived as follows:
[0179]
number
[0180] Meanwhile, the chroma QP-related design for deblocking filtering in the existing VVC standard may have some disadvantages. Since VVC supports dual trees, the luma QP and chroma QP of a CU may differ greatly due to different partitions between luma blocks and chroma blocks. In addition, the VVC standard supports not only the YUV4:2:0 format, but also the YUV4:2:2 format and the YUV4:4:4 format. Here, in the case of the YUV4:4:4 format, if an inaccurate chroma QP is used for deblocking filtering, it may have a larger impact and visual artifacts may occur.
[0181] Accordingly, this document proposes an efficient chroma QP signaling scheme, such as in the embodiments described below.
[0182] As an embodiment, a chroma QP offset signaling supporting a VDPU level process is proposed. In this embodiment, for a chroma CU with cbWidth or cbHeight greater than 64, a CU chroma QP offset (if a chroma QP offset for the chroma CU exists) may be signaled regardless of whether the first TU includes a non-zero chroma CBF. That is, according to this embodiment, if the cbWidth or cbHeight of a current chroma CU is greater than 64, a CU chroma QP offset (if a chroma QP offset for the chroma CU exists) may be signaled regardless of whether the first TU has a non-zero coefficient. Here, the cbWidth and the cbHeight may represent a CU width and a CU height of a luma element or a chroma element according to a channel type or a tree type. For example, in the case of an image in YUV 4:4:4 format, a chroma CU with a width or height greater than 64 may be generated, and through the method proposed in this embodiment, a VDPU level process is possible, and a QP may be available when the VDPU is parsed.
[0183] For example, the transform unit syntax according to this embodiment may be as follows:
[0184] [Table 3]
[0185] Referring to Table 3, "CbWidth[chType][x0][y0]>64||CbHeight[chType][x0][y0]>64||" may be added to the signaling condition of the CU chroma QP offset related information. That is, referring to Table 3, the CU chroma QP offset related information may be signaled if CbWidth[chType][x0][y0] is greater than 64 or if CbHeight[chType][x0][y0] is greater than 64. The CU chroma QP offset related information may include a syntax element cu_chroma_qp_offset_flag and / or a syntax element cu_chroma_qp_offset_idx.
[0186] For example, if the syntax element cu_chroma_qp_offset_flag is present and is set to 1, the syntax element cu_chroma_qp_offset_flag may indicate that an entry in cb_qp_offset_list[] is used to determine the value of CuQpOffsetCb, that the corresponding entry in cr_qp_offset_list[] is used to determine the value of CuQpOffsetCr, and that the corresponding entry in joint_cbcr_qp_offset_list[] is used to determine the value of CuQpOffsetCbCr. Also, if the syntax element cu_chroma_qp_offset_flag is set to 0, the syntax element cu_chroma_qp_offset_flag may 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 It can be indicated that the .lambda.
[0187] Also, for example, when 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 may represent an index in cb_qp_offset_list[], cr_qp_offset_list[], and joint_cbcr_qp_offset_list[] used to determine the value of. If the syntax element cu_chroma_qp_offset_idx is present, the value of the syntax element cu_chroma_qp_offset_idx may be in the range of 0 to chroma_qp_offset_list_len_minus1. If the syntax element cu_chroma_qp_offset_idx is not present, the syntax element cu_chroma_qp_offset_idx may be considered as 0.
[0188] In addition, this document proposes a scheme for adding conditions to CU level chroma QP offset signaling for a dual tree as an embodiment. This embodiment proposes a scheme for modifying the availability conditions of the existing syntax for the CU chroma QP offset flag to avoid unnecessary signaling. For example, according to this embodiment, when a coding tree is a dual tree luma DUAL_TREE_LUMA, that is, when the coding tree is not a single tree SINGLE_TREE and dual tree chroma DUAL_TREE_CHROMA, CU chroma QP offset related information may not be signaled.
[0189] For example, the transform unit syntax according to this embodiment may be as follows:
[0190] [Table 4]
[0191] Referring to Table 4, '&&treetype!=DUAL_TREE_LUMA' may be added to the signaling condition of the CU chroma QP offset related information. That is, referring to Table 4, the CU chroma QP offset related information may be signaled only if the coding tree is not DUAL_TREE_LUMA. The CU chroma QP offset related information may include a syntax element cu_chroma_qp_offset_flag and / or a syntax element cu_chroma_qp_offset_idx.
[0192] In addition, this document proposes another scheme for adding a condition to CU level chroma QP offset signaling as an embodiment. This embodiment proposes a scheme for modifying the availability condition of the existing syntax for the CU chroma QP offset flag to avoid unnecessary signaling. For example, this embodiment proposes a scheme for modifying the availability condition of the existing syntax by combining the signaling conditions of the above-mentioned embodiment, etc.
[0193] For example, the transform unit syntax according to this embodiment may be as follows:
[0194] [Table 5]
[0195] Referring to Table 5, 'CbWidth[chType][x0][y0]>64||CbHeight[chType][x0][y0]>64||' and '&&treetype!=DUAL_TREE_LUMA' may be added to the signaling conditions of the CU chroma QP offset related information. 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, the CU chroma QP offset related information may be signaled. Therefore, if the coding tree is DUAL_TREE_LUMA, the CU chroma QP offset related information may not be signaled. The CU chroma QP offset related information may include a syntax element cu_chroma_qp_offset_flag and / or a syntax element cu_chroma_qp_offset_idx.
[0196] This document also proposes a scheme for using a CU-level chroma QP for deblocking filtering. This embodiment proposes a scheme for integrating slice-level chroma QP and / or CU-level chroma QP into a chroma QP, represented by 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 neighboring CU as in the following formula:
[0198]
number
[0199] Here, Qp Q’cIdx may represent the chroma QP of the CUP adjacent to the block boundary to be deblocking filtered, and Qp P’cIdxmay represent a chroma QP of a CUQ adjacent to a block boundary to be deblocking filtered. Also, cIdx may be an index representing a chroma component. For example, cIdx may represent a chroma Cb component, a chroma Cr component, or a chroma CbCr component. Qp Q’cIdx and Qp P’cIdx can be a value that already takes into account slice-level QP adjustment and CU-level QP adjustment.
[0200] Or, for example, the variable QpC may be derived first based on the luma QPs of the surrounding CU P and the surrounding CU Q, and then the slice-level QP adjustment and the CU-level QP adjustment may be added. For example, the variable QpC may be derived as follows:
[0201]
number
[0202] where CuQpOffset PcIdx can represent the CuQPOffset of the element cIdx of the surrounding CU P, and CuQpOffset QcIdx may represent CuQPOffset of the element cIdx of the neighboring CU Q.
[0203] FIG 11 is a schematic diagram illustrating an image encoding method by an encoding device according to the present document. The method disclosed in FIG 11 may be performed by the encoding device disclosed in FIG 2. Specifically, for example, S1100 to S1140 in FIG 11 may be performed by a residual processing unit of the encoding device, and S1150 may be performed by an entropy encoding unit of the encoding device. In addition, although not shown, a process of deriving a predicted sample of a current chroma block may be performed by a prediction unit of the encoding device, and a process of generating a reconstructed sample and a reconstructed picture based on the residual sample and the predicted sample may be performed by an adder of the encoding device.
[0204] The encoding apparatus derives a residual sample for a current chroma block (S1100). The encoding apparatus can derive a residual sample for a current chroma block.
[0205] For example, the encoding device may derive the prediction samples of the current chroma block based on a prediction mode, in which case various prediction methods disclosed herein, such as inter prediction or intra prediction, may be applied.
[0206] For example, the encoding apparatus may determine whether to perform inter prediction or intra prediction on a current chroma block, and may determine a specific inter prediction mode or a specific intra prediction mode based on an RD cost. Depending on the determined mode, the encoding apparatus may derive a prediction sample for the current chroma block. Then, for example, the encoding apparatus may derive the residual sample by subtracting an original sample for the current chroma block from the prediction sample.
[0207] The encoding apparatus generates coding unit (CU) chroma quantization parameter (QP) offset related information for a current chroma block based on a size and a tree type of the current chroma block (S1110).
[0208] The encoding apparatus may generate CU chroma quantization parameter (QP) offset related information for the current chroma block based on a size and a tree type of the current chroma block. The CU chroma QP offset related information may be expressed as CU level chroma QP offset related information. Here, the tree type may be one of single tree, dual tree luma, and dual tree chroma. For example, the CU chroma QP offset related information may be signaled in a transform unit syntax for a first transform block among 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 a transform block that is coded first in a decoding order among transform blocks of the current chroma block. For example, the first transform block may be an upper left transform block among 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 may 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 may be generated. Here, for example, the specific value may be 64. Also, for example, a transform unit syntax for the first transform block may 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 may be signaled in a transform unit syntax for a first transform block regardless of whether the first transform block includes at least one non-zero transform coefficient level. That is, for example, if at least one of the width and height of the current chroma block is greater than a particular value, the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform coefficient level.
[0210] Alternatively, for example, if the tree type is the dual tree luma, 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 luma, the CU chroma QP offset related information for the current chroma block may not be generated. Thus, for example, if the tree type is not the dual tree luma (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 may be signaled. That is, for example, if the tree type is not the dual tree luma (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 may be generated. Here, for example, the transform unit syntax for the first transform 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 luma (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 may be signaled via a transform unit syntax for the first transform block, regardless of whether the first transform block includes at least one non-zero transform coefficient level. That is, for example, if the tree type is not the dual tree luma (i.e., the tree type is one of single tree and dual tree chroma), the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform 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 luma (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 may 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 luma (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 may be generated. Here, for example, the specific value may be 64. Thus, for example, if the tree type is the dual tree luma, the CU chroma QP offset related information for the current chroma block may not be signaled. Also, for example, the transform unit syntax for the first transform block may 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 particular value and the tree type is not the dual tree luma (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 may be signaled via a transform unit syntax for the first transform block regardless of whether the first transform block includes at least one non-zero transform coefficient level.That is, for example, if at least one of the width and height of the current chroma block is greater than a particular value and the tree type is not the dual tree luma (i.e., the tree type is one of single tree and dual tree chroma), the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform coefficient level.
[0212] Meanwhile, 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 may be expressed as a CU level chroma QP offset flag, and the CU chroma QP offset index may be expressed as a CU level chroma QP offset index.
[0213] For example, the CU chroma QP offset flag may be a flag for whether an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. That is, for example, the CU chroma QP offset flag may indicate whether an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. For example, if the CU chroma QP offset flag exists and the value of the CU chroma QP offset flag is 1, the CU chroma QP offset flag may indicate that an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. Also, for example, if the value of the CU chroma QP offset flag is 0, the CU chroma QP offset flag may indicate that a CU QP offset list for a chroma component is not used to determine a value of a CU chroma QP offset. Here, for example, the chroma component may include a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the syntax element of the CU chroma QP offset flag can be the above-mentioned cu_chroma_qp_offset_flag.
[0214] Also, for example, the CU chroma QP offset index may represent an index of an entry in a CU QP offset list used to determine a value of a CU chroma QP offset. That is, for example, the CU chroma QP offset index may be information regarding an index of an entry in a CU QP offset list. Also, for example, the syntax element of the CU chroma QP offset index may be the above-mentioned cu_chroma_qp_offset_idx.
[0215] The encoding apparatus derives a chroma QP for the current chroma block based on the CU chroma QP offset related information (S1120). The encoding apparatus may derive a chroma QP for the current chroma block based on the CU chroma QP offset related information. For example, the encoding apparatus may derive a CU chroma QP offset for the current chroma block based on the CU chroma QP offset related information, and may derive a chroma QP for the current chroma block based on the CU chroma QP offset. Specifically, for example, the encoding apparatus may derive a chroma QP for the current chroma block through addition of a first chroma QP for a chroma component and the CU chroma QP offset.
[0216] Specifically, for example, the encoding apparatus may derive a first chroma QP for a chroma component of the current chroma block based on a luma QP and / or chroma QP mapping table, may derive a CU chroma QP offset for the current chroma block based on the CU chroma QP offset related information, and may 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 may be expressed as a Sequence Parameter Set (SPS) chroma QP or an SPS level chroma QP.
[0217] The encoding device quantizes the residual samples based on the chroma QP to derive transform coefficients for the current chroma block (S1130). The encoding device may derive the transform coefficients for the current chroma block based on the chroma QP. For example, the encoding device may quantize the residual samples for the current chroma block based on the chroma QP to derive the transform coefficients. Alternatively, for example, the decoding device may transform the residual samples for the current chroma block to derive transformed transform coefficients, and quantize the transformed transform coefficients based on the chroma QP to derive the transform coefficients.
[0218] The encoding apparatus generates residual information for the transform coefficients (S1140). For example, the encoding apparatus may generate and encode the residual information for the transform coefficients. For example, the residual information may include transform coefficient level information and sign flag information for the transform coefficients. For example, a transform coefficient level of a transform coefficient may be derived from a value represented by transform coefficient level information included in the residual information, and a sign of a transform coefficient may be derived from a code represented by the sign flag information. For example, the residual information may include syntax elements for a transform coefficient of a 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] An encoding apparatus encodes image information including the CU chroma QP offset related information and the residual information (S1150). The encoding apparatus may encode the CU chroma QP offset related information and the residual information. Image information may include the CU chroma QP offset related information and the residual information.
[0220] Meanwhile, for example, the encoding apparatus may generate and encode prediction information for the current chroma block. In this case, various prediction methods disclosed herein, such as inter prediction or intra prediction, may be applied. For example, the encoding apparatus may determine whether to perform inter prediction or intra prediction on the current chroma block, and may determine a specific inter prediction mode or a specific intra prediction mode based on an RD cost. Depending on the determined mode, the encoding apparatus may derive a prediction sample 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] For example, an encoding device may encode image information and output the encoded information in the form of a bitstream.
[0222] Meanwhile, for example, the encoding device can generate reconstructed samples and / or reconstructed pictures by adding the predicted samples and the residual samples.
[0223] As mentioned above, in-loop filtering procedures such as deblocking filtering, SAO and / or ALF procedures may then be applied to the reconstructed samples to improve the subjective / objective image quality if necessary.
[0224] Meanwhile, for example, deblocking filtering may be performed on an edge of the current chroma block. For example, a specific value may be derived based on a chroma QP of a current chroma block and a chroma QP of a neighboring block of the current chroma block adjacent to the edge, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value may be derived as shown in Equation 6 above. The chroma QP of the current chroma block may be derived based on the CU chroma QP offset for the current chroma block as described above, and the chroma QP of the neighboring block may be derived based on a CU chroma QP offset for the neighboring block. Here, for example, the edge may represent an area of the current chroma block to which the deblocking filtering is applied.
[0225] Alternatively, for example, a specific value may be derived based on a chroma QP of a current chroma block, a chroma QP of a neighboring block of the current chroma block adjacent to the edge, and the CU chroma QP offset, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value may be derived as shown in Equation 7 above. Here, for example, the edge may represent an area of the current chroma block to which the deblocking filtering is applied.
[0226] Meanwhile, the bitstream including the image information can be transmitted to the decoding device via a network or a (digital) storage medium, where the network can include a broadcast network and / or a communication network, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0227] FIG 12 is a schematic diagram of an encoding device for performing an image encoding method according to the present document. The method disclosed in FIG 11 may be performed by the encoding device disclosed in FIG 12. Specifically, for example, a residual processing unit of the encoding device of FIG 12 may perform S1100 to S1140, and an entropy encoding unit of the encoding device of FIG 12 may perform S1150. In addition, although not shown, a process of deriving a predicted sample of a current chroma block may be performed by a prediction unit of the encoding device, and a process of generating a reconstructed sample and a reconstructed picture based on the residual sample and the predicted sample may be performed by an adder of the encoding device.
[0228] Figure 13 is a schematic diagram showing an image decoding method by the decoding device according to the present document. The method disclosed in Figure 13 can be performed by the decoding device disclosed in Figure 3. Specifically, for example, S1300 to S1310 in Figure 13 can be performed by an entropy decoding unit of the decoding device, S1320 to S1340 in Figure 13 can be performed by a residual processing unit of the decoding device, and S1350 in Figure 13 can be performed by an adder unit of the decoding device.
[0229] The decoding device obtains residual information for a current chroma block (S1300). The decoding device may obtain image information through a bitstream. For example, the image information may include residual information for the current chroma block. For example, the residual information may include syntax elements for transform 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.
[0230] The decoding apparatus obtains 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 (S1310).
[0231] The decoding apparatus may obtain CU chroma quantization parameter (QP) offset related information for the current chroma block based on a size and a tree type of the current chroma block. For example, the image information may include the CU chroma QP offset related information. The CU chroma QP offset related information may be expressed as CU level chroma QP offset related information. Here, the tree type may be one of single tree, dual tree luma, and dual tree chroma. Also, for example, the CU chroma QP offset related information may be signaled in a transform unit syntax for a first transform block among transform blocks of the current chroma block. That is, for example, a transform unit syntax for the first transform block may include the CU chroma QP offset related information. The first transform block may be a transform block that is decoded first in a decoding order among transform blocks of the current chroma block. For example, the first transform block may be an upper left transform block among 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 may 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 may be obtained. Here, for example, the specific value may be 64. Also, for example, the transform unit syntax for the first transform block may 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 may be obtained in the transform unit syntax for the first transform block regardless of whether the first transform block includes at least one non-zero transform coefficient level. That is, for example, if at least one of the width and height of the current chroma block is greater than a particular value, the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform coefficient level.
[0233] Alternatively, for example, if the tree type is the dual tree luma, 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 luma, the CU chroma QP offset related information for the current chroma block may not be obtained. Thus, for example, if the tree type is not the dual tree luma (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 may be signaled. That is, for example, if the tree type is not the dual tree luma (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 may be obtained. Here, for example, the transform unit syntax for the first transform 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 luma (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 may be obtained through a transform unit syntax for the first transform block, regardless of whether the first transform block includes at least one non-zero transform coefficient level. That is, for example, if the tree type is not the dual tree luma (i.e., the tree type is one of single tree and dual tree chroma), the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform 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 luma (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 may 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 luma (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 may be obtained. Here, for example, the specific value may be 64. Thus, for example, if the tree type is the dual tree luma, the CU chroma QP offset related information for the current chroma block may not be signaled. Also, for example, the transform unit syntax for the first transform block may 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 particular value and the tree type is not the dual tree luma (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 a transform unit syntax for the first transform block, regardless of whether the first transform block includes at least one non-zero transform coefficient level.That is, for example, if at least one of the width and height of the current chroma block is greater than a particular value and the tree type is not the dual tree luma (i.e., the tree type is one of single tree and dual tree chroma), the transform unit syntax for the first transform block may include the CU chroma QP offset related information for the current chroma block, regardless of whether the first transform block includes at least one non-zero transform coefficient level.
[0235] Meanwhile, 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 may be expressed as a CU level chroma QP offset flag, and the CU chroma QP offset index may be expressed as a CU level chroma QP offset index.
[0236] For example, the CU chroma QP offset flag may be a flag for whether an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. That is, for example, the CU chroma QP offset flag may indicate whether an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. For example, if the CU chroma QP offset flag exists and the value of the CU chroma QP offset flag is 1, the CU chroma QP offset flag may indicate that an entry in a CU QP offset list for a chroma component is used to determine a value of a CU chroma QP offset. Also, for example, if the value of the CU chroma QP offset flag is 0, the CU chroma QP offset flag may indicate that a CU QP offset list for a chroma component is not used to determine a value of a CU chroma QP offset. Here, for example, the chroma component may include a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the syntax element of the CU chroma QP offset flag may be the above-mentioned cu_chroma_qp_offset_flag.
[0237] Also, for example, the CU chroma QP offset index may represent an index of an entry in a CU QP offset list used to determine a value of a CU chroma QP offset. That is, for example, the CU chroma QP offset index may be information regarding an index of an entry in a CU QP offset list. Also, for example, the syntax element of the CU chroma QP offset index may be the above-mentioned cu_chroma_qp_offset_idx.
[0238] The decoding apparatus may derive transform coefficients for the current chroma block based on the residual information (S1320). The decoding apparatus may derive transform coefficients for the current chroma block based on the residual information. The residual information may include transform coefficient level information and sign flag information for the transform coefficients.
[0239] For example, the transform coefficient level of a transform coefficient can be derived from a value represented by the transform coefficient level information included in the residual information, and the sign of the transform coefficient can be derived from a sign represented by the sign flag information.
[0240] The decoding device derives a chroma QP for the current chroma block based on the CU chroma QP offset related information (S1330). The decoding device may derive a chroma QP for the current chroma block based on the CU chroma QP offset related information. For example, the decoding device may derive a CU chroma QP offset for the current chroma block based on the CU chroma QP offset related information, and may derive a chroma QP for the current chroma block based on the CU chroma QP offset. Specifically, for example, the decoding device may derive a chroma QP for the current chroma block through addition of a first chroma QP for a chroma component and the CU chroma QP offset.
[0241] Specifically, for example, the decoding apparatus may derive a first chroma QP for a chroma component of the current chroma block based on a luma QP and / or chroma QP mapping table, may derive a CU chroma QP offset for the current chroma block based on the CU chroma QP offset related information, and may 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 may be expressed as a Sequence Parameter Set (SPS) chroma QP or an SPS level chroma QP.
[0242] The decoding device dequantizes the transform coefficients based on the chroma QP to derive residual samples for the current chroma block (S1340). The decoding device may derive the residual samples for the current chroma block based on the chroma QP. For example, the decoding device may dequantize the transform coefficients for the current chroma block based on the chroma QP to derive the residual samples. Alternatively, for example, the decoding device may inverse transform the transform coefficients for the current chroma block to derive inverse transformed transform coefficients, and may dequantize the inverse transformed transform coefficients based on the chroma QP to derive the residual samples.
[0243] The decoding device generates a reconstructed picture based on the residual samples (S1350). For example, the decoding device can generate the reconstructed picture based on the residual samples.
[0244] Meanwhile, for example, the decoding device can derive a prediction sample by performing an inter prediction mode or an intra prediction mode for the current chroma block based on prediction information received via a bitstream, and can generate a reconstructed sample and / or a reconstructed picture by adding the prediction sample and the residual sample.
[0245] As mentioned above, in-loop filtering procedures such as deblocking filtering, SAO and / or ALF procedures may then be applied to the reconstructed samples in order to improve the subjective / objective image quality if necessary.
[0246] Meanwhile, for example, deblocking filtering may be performed on an edge of the current chroma block. For example, a specific value may be derived based on a chroma QP of a current chroma block and a chroma QP of a neighboring block of the current chroma block adjacent to the edge, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value may be derived as shown in Equation 6 above. The chroma QP of the current chroma block may be derived based on the CU chroma QP offset for the current chroma block as described above, and the chroma QP of the neighboring block may be derived based on a CU chroma QP offset for the neighboring block. Here, for example, the edge may represent an area of the current chroma block to which the deblocking filtering is applied.
[0247] Alternatively, for example, a specific value may be derived based on a chroma QP of a current chroma block, a chroma QP of a neighboring block of the current chroma block adjacent to the edge, and the CU chroma QP offset, and a deblocking parameter for the deblocking filtering may be derived based on the specific value. For example, the specific value may be derived as shown in Equation 7 above. Here, for example, the edge may represent an area of the current chroma block to which the deblocking filtering is applied.
[0248] Fig. 14 is a schematic diagram of a decoding device that performs the image decoding method according to the present document. The method disclosed in Fig. 13 can be performed by the decoding device disclosed in Fig. 14. Specifically, for example, the entropy decoding unit of the decoding device of Fig. 14 can perform S1300 to S1310 of Fig. 13, the residual processing unit of the decoding device of Fig. 14 can perform S1320 to S1340 of Fig. 13, and the adder unit of the decoding device of Fig. 14 can perform S1350 of Fig. 13.
[0249] According to the above-mentioned 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 larger than a specific size, information regarding the CU chroma QP offset can be signaled, thereby reducing the cost of configuring a decoding device.
[0250] In addition, according to this document, even if the first transform block in the current chroma block does not include a non-zero transform coefficient level, information regarding the CU chroma QP offset can be signaled in the transform unit syntax of the first transform block based on the size and tree type of the current chroma block, thereby reducing the buffer requirements of the decoding device and reducing the cost of configuring the decoding device.
[0251] In the above-described embodiments, the method is described with reference to a flow chart with a series of steps or blocks, but this document is not limited to the order of steps, and certain steps may occur in a different order or simultaneously with other steps than those described above. Also, those skilled in the art will understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps of the flow chart may be deleted without affecting the scope of this document.
[0252] The embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in the figures may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information (e.g., information on instructions) or algorithms for implementation may be stored on a digital storage medium.
[0253] In addition, the decoding device and the encoding device to which the embodiment of this document is applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interactive device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a custom video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, an image telephone video device, a transportation terminal (e.g., a vehicle terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0254] In addition, the processing method to which the embodiments of this document are applied may be produced in the form of a program executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to this document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium may also include a medium realized in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0255] Also, the embodiments of the present document may be implemented in a computer program product by program code, which may be executed by a computer according to the embodiments of the present document. The program code may be stored on a computer readable carrier.
[0256] FIG. 15 exemplarily illustrates a structural diagram of a content streaming system to which the embodiments of this document are applied.
[0257] A content streaming system to which the embodiments of this document are applied can broadly include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.
[0258] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0259] The bitstream may be generated by an encoding method or a bitstream generation method to which an embodiment of this document is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0260] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request 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, and in this case, the control server controls commands / responses between devices in the content streaming system.
[0261] The streaming server may receive content from a media repository and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a certain period of time in order to provide a smooth streaming service.
[0262] Examples of the user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc. Each server in the content streaming system can be operated as a distributed server, and in this case, data received by each server can be processed in a distributed manner.
[0263] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined and realized as an apparatus, the technical features of the apparatus claims in this specification may be combined and realized as a method, the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as an apparatus, and the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as a method.
Claims
1. 1. A decoding device for decoding an image, comprising: Memory, at least one processor coupled to the memory; The at least one processor: Obtain residual information for the chroma components of the current coding unit, obtaining coding unit (CU) chroma quantization parameter (QP) offset related information for the current coding unit based on a tree type and a size of the current coding unit; deriving transform coefficients for the current coding unit based on the residual information; deriving a chroma QP for the current coding unit based on the CU chroma QP offset related information; dequantizing the transform coefficients based on the chroma QP to derive residual samples for the current coding unit; configured to generate a reconstructed picture based on the residual samples; The CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block among the transform blocks of the current coding unit, The CU chroma QP offset related information includes a CU chroma QP offset flag and a CU chroma QP offset index for the current coding unit, The CU chroma QP offset related information is obtained based on at least one of a width and a height of the current coding unit being greater than 64 and the tree type being not dual tree luma.
2. An encoding device for encoding an image, comprising: Memory, at least one processor coupled to the memory; The at least one processor: Derive the residual sample for the chrominance component of the current coding unit, deriving a chroma quantization parameter (QP) for the current coding unit; quantizing the residual samples based on the chroma QP to derive transform coefficients for the current coding unit; generating residual information for the transform coefficients; Generate coding unit (CU) chroma QP offset related information for the chroma QP based on a tree type and size of the current coding unit; configured to encode image information including the CU chroma QP offset related information and the residual information; The CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block among the transform blocks of the current coding unit, The CU chroma QP offset related information includes a CU chroma QP offset flag and a CU chroma QP offset index for the current coding unit, The CU chroma QP offset-related information is signaled based on at least one of a width and a height of the current coding unit being greater than 64 and the tree type being not dual tree luma.
3. 1. An apparatus for transmitting data for an image, comprising: At least one processor configured to obtain a bitstream of image information including coding unit (CU) chroma quantization parameter (QP) offset related information for a chroma component of a current coding unit and residual information for a transform coefficient for the current coding unit; a transmitter configured to transmit the data including a bitstream of the image information including the CU chroma QP offset related information and the residual information; The CU chroma QP offset related information for a chroma QP is generated based on a tree type and a size of the current coding unit, the transform coefficients for the current coding unit are derived by quantizing residual samples for the current coding unit based on the chroma QP; The CU chroma QP offset related information is signaled in a transform unit syntax for a first transform block among transmission blocks of the current coding unit; The CU chroma QP offset related information includes a CU chroma QP offset flag and a CU chroma QP offset index for the current coding unit, The CU chroma QP offset-related information is signaled based on at least one of a width and a height of the current coding unit being greater than 64 and the tree type being not dual tree luma.
Citation Information
Patent Citations
Chroma quantization in video coding
JP2015053680A
Apparatus and method for inverse quantization
WO2020057662A1