Image encoding / decoding method and image data transmission method

By including chromatic quantization parameter offset information in the video/image encoding, and analyzing and signaling based on the number of list entries of this information, the problem of low video/image encoding efficiency in the prior art is solved, efficient image/video compression is achieved and transmission and storage costs are reduced.

CN120075444APending Publication Date: 2025-05-30LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510417432.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-11-05
Filing Date
2020-11-05
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

The prior art is difficult to effectively improve video/image encoding efficiency, especially when processing high resolution and high quality images/videos, the transmission and storage costs are high. Furthermore, there is a need for a method to efficiently parse and signal the palette encoding and/or transform unit-related information.

Method used

This information is parsed and signaled by including chromaticity quantization parameter offset related information in the palette encoding syntax and based on the number of entries in the chromaticity quantization parameter offset list.

Benefits of technology

The overall image/video compression efficiency is improved, efficient parsing and signaling of palette encoding and/or transformation unit-related information is achieved, reducing the number of sent bits, thereby reducing transmission and storage costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120075444A_ABST
    Figure CN120075444A_ABST
Patent Text Reader

Abstract

The invention relates to an image encoding / decoding method and an image data transmission method. In accordance with the disclosure herein, chroma quantization parameter offset related information may be signaled by palette syntax coding, and index information for a chroma quantization parameter offset list may be efficiently parsed / signaled based on information on the number of entries in the chroma quantization parameter offset list. Accordingly, it is possible to reduce bits that need to be signaled in order to encode a video / image, and it is possible to improve encoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the original invention patent application number 202080090759.7 (international application number: PCT / KR2020 / 015415, application date: November 5, 2020, invention name: Image or video coding based on chromaticity quantization parameter offset information). Technical Field

[0002] The present technology relates to video or image coding, for example, a coding technology based on chroma quantization parameter offset information. Background Art

[0003] Recently, there has been an increasing demand for high-resolution, high-quality images / videos, such as 4K or 8K ultra-high-definition (UHD) images / videos, in various fields. As image / video resolution or quality becomes higher, relatively more information or bits are transmitted compared to conventional image / video data. Therefore, if image / video data is transmitted via a medium such as an existing wired / wireless broadband line or stored in a conventional storage medium, the cost of transmission and storage is likely to increase.

[0004] Furthermore, there is growing interest and demand for immersive media such as virtual reality (VR), artificial reality (AR) content, or holograms. Broadcasting of images and videos (e.g., game images) that exhibit image characteristics different from actual images is also increasing.

[0005] Therefore, highly efficient image / video compression technology is required to effectively compress and transmit, store, or play high-resolution, high-quality images / videos exhibiting various characteristics as described above.

[0006] In addition, there is a need for a method for efficiently signaling image / video information and improving encoding efficiency, and to this end, there is a need for a method for efficiently signaling information related to chrominance quantization parameters. Summary of the Invention

[0007] Technical issues

[0008] This document aims to provide a method and apparatus for improving video / image coding efficiency.

[0009] This document also provides methods and apparatus for efficiently parsing / signaling palette coding and / or transform unit related information.

[0010] This document also provides methods and apparatus for defining conditions for effectively parsing / signaling palette coding and / or transform unit related information and for parsing / signaling corresponding information based on the conditions.

[0011] The present document also provides methods and apparatus for efficiently parsing / signaling chroma quantization parameter offset related information in palette coding and / or transform units.

[0012] Technical Solution

[0013] According to an embodiment of the present invention, the palette encoding syntax may include chroma quantization parameter offset related information, and the chroma quantization parameter offset related information may be parsed / signaled based on information about the number of entries in the chroma quantization parameter offset list. For example, the chroma quantization parameter offset related information may be index information of the chroma quantization parameter offset list.

[0014] According to an embodiment of this document, based on the value of information about the number of entries in the chrominance quantization parameter offset list being greater than 0, index information about the chrominance quantization parameter offset list may be included in the palette encoding syntax.

[0015] According to an embodiment of the present disclosure, a video / image decoding method performed by a decoding device is provided. The video / image decoding method may include the method disclosed in the embodiment of the present disclosure.

[0016] According to an embodiment of the present disclosure, a decoding device for performing video / image decoding is provided. The decoding device can execute the method disclosed in the embodiment of the present disclosure.

[0017] According to an embodiment of the present disclosure, a video / image encoding method performed by an encoding device is provided. The video / image encoding method may include the method disclosed in the embodiment of the present disclosure.

[0018] According to an embodiment of the present disclosure, an encoding device for performing video / image encoding is provided. The encoding device can execute the method disclosed in the embodiment of the present disclosure.

[0019] According to an embodiment of the present disclosure, a computer-readable digital storage medium is provided that stores encoded video / image information generated according to a video / image encoding method disclosed in at least one of the embodiments of the present disclosure.

[0020] According to an embodiment of the present disclosure, a computer-readable digital storage medium storing encoded information or encoded video / image information for causing a decoding device to perform the video / image decoding method disclosed in at least one of the embodiments of the present disclosure is provided.

[0021] Technical Effects

[0022] This document can have various effects. For example, according to the embodiments of this document, the overall image / video compression efficiency can be improved. In addition, according to the embodiments of this document, palette coding and / or transform unit related information can be efficiently parsed / signaled. In addition, according to the embodiments of this document, by defining conditions for effectively parsing / signaling palette coding and / or transform unit related information, the corresponding information can be effectively encoded without redundancy according to the conditions. In addition, according to the embodiments of this document, by determining whether to parse the index information of the chroma quantization parameter offset list based on the condition of the number of entries in the chroma quantization parameter offset list in the palette coding and / or transform unit, the encoding efficiency can be improved, and the effect of saving the transmitted bits can be obtained.

[0023] The effects that can be obtained through the detailed examples of this document are not limited to the effects listed above. For example, there may be various technical effects that can be understood or summarized from this document by a person skilled in the relevant art. Therefore, the detailed effects of this document are not limited to the effects explicitly described in this document, but may include various effects that can be understood or summarized from the technical features of this document. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] Figure 1 An example of a video / image encoding device to which the embodiments of this document are applicable is briefly illustrated.

[0025] Figure 2 is a schematic diagram illustrating a configuration of a video / image encoding device to which the embodiments of this document can be applied.

[0026] Figure 3 is a schematic diagram illustrating a configuration of a video / image decoding device to which the embodiments of this document can be applied.

[0027] Figure 4 An example of an illustrative video / image encoding process to which embodiments herein may be applied is shown.

[0028] Figure 5 An example of an illustrative video / image decoding process to which embodiments herein may be applied is shown.

[0029] Figure 6 Schematically illustrates an example of an entropy coding method to which embodiments of this document may be applied, Figure 7 An entropy encoder in an encoding device is schematically shown.

[0030] Figure 8 Schematically illustrates an example of an entropy decoding method to which embodiments of this document may be applied, Figure 9 An entropy decoder in an encoding device is schematically shown.

[0031] Figure 10 The hierarchical structure of the coded image / video is shown exemplarily.

[0032] Figure 11 is a diagram for explaining an example of an encoding method based on a palette mode.

[0033] Figure 12 and Figure 13 An example of a video / image encoding method and related components according to embodiments of the present invention is schematically shown.

[0034] Figure 14 and Figure 15 An example of a video / image decoding method and related components according to embodiments of this document is schematically shown.

[0035] Figure 16 An example of a content streaming system to which embodiments disclosed herein may be applied is shown. DETAILED DESCRIPTION

[0036] The present disclosure can be modified in various forms, and its specific embodiments will be described and illustrated in the accompanying drawings. However, these embodiments are not intended to limit the present disclosure. The terms used in the following description are only used to describe specific embodiments and are not intended to limit the present disclosure. Singular expressions include plural expressions as long as they are clearly interpreted differently. Terms such as "including" and "having" are intended to indicate the presence of features, quantities, steps, operations, elements, components, or combinations thereof used in the following description, so it should be understood that the possibility of the presence or addition of one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.

[0037] In addition, the various configurations of the drawings described in this document are independent diagrams for the purpose of illustrating the functions of different features, and do not mean that the various configurations are implemented by different hardware or different software. For example, two or more configurations can be combined to form a single configuration, and a single configuration can also be divided into multiple configurations. Without departing from the main purpose of this document, embodiments in which the configurations are combined and / or separated are included within the scope of the claims.

[0038] In the present disclosure, the term "A or B" may mean "only A", "only B", or "both A and B". In other words, in the present disclosure, the term "A or B" may be interpreted as indicating "A and / or B". For example, in the present disclosure, the term "A, B, or C" may mean "only A", "only B", "only C", or "any combination of A, B, and C".

[0039] As used in this disclosure, a slash mark " / " or a comma may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "only A", "only B", or "both A and B". For example, "A, B, C" may mean "A, B, or C".

[0040] In the present disclosure, “at least one of A and B” may mean “only A”, “only B”, or “both A and B”. In addition, in the present disclosure, the expression “at least one of A or B” or “at least one of A and / or B” may be interpreted as being the same as “at least one of A and B”.

[0041] In addition, in the present disclosure, “at least one of A, B, and C” may mean “only A,” “only B,” “only C,” or “any combination of A, B, and C.” In addition, “at least one of A, B, or C” or “at least one of A, B, and / or C” may mean “at least one of A, B, and C.”

[0042] In addition, the brackets used in this disclosure may mean "for example." Specifically, when the term "prediction (intra-frame prediction)" is used, it can be indicated that "intra-frame prediction" is proposed as an example of "prediction." In other words, the term "prediction" in this disclosure is not limited to "intra-frame prediction" and can be indicated that "intra-frame prediction" is proposed as an example of "prediction." In addition, even when the term "prediction (i.e., intra-frame prediction)" is used, it can be indicated that "intra-frame prediction" is proposed as an example of "prediction."

[0043] The present disclosure relates to video / image coding. For example, the methods / implementations disclosed in the present disclosure may be applied to methods disclosed in Versatile Video Coding (VVC). In addition, the methods / implementations disclosed in the present disclosure may be applied to methods disclosed in the Essential Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second-generation Audio Video Coding standard (AVS2), or next-generation video / image coding standards (e.g., H.267 or H.268).

[0044] The present disclosure proposes various embodiments of video / image encoding, and unless otherwise mentioned, these embodiments may be performed in combination with each other.

[0045] In the present disclosure, video may mean a collection of a series of images over time. A picture generally means a unit representing an image in a specific time period, and a slice / tile is a unit that constitutes a part of a picture when encoded. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area of ​​a CTU within a specific tile column and a specific tile row in a picture. A tile column is a rectangular area of ​​a CTU whose height is equal to the height of the picture and whose width is specified by the syntax elements in the picture parameter set. A tile row is a rectangular area of ​​a CTU whose height is specified by the syntax elements in the picture parameter set and whose width is equal to the width of the picture. Tile scanning is a specific ordering of CTUs of a partitioned picture as follows: CTUs are sorted continuously in a tile by a CTU raster scan, while tiles in a picture are sorted continuously by a raster scan of the tiles of the picture. A slice includes an integer number of consecutive complete CTU rows or an integer number of complete tiles within a tile of a picture that can be exclusively contained in a single NAL unit.

[0046] In addition, a picture can be divided into two or more sub-pictures. A sub-picture can be a rectangular area of ​​one or more slices within a picture.

[0047] A pixel or picture element (pel) may refer to the smallest unit constituting a picture (or image). In addition, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the luma component or only the pixel / pixel value of the chroma component.

[0048] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of ​​a picture and information related to the area. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, a unit may be used interchangeably with terms such as block or area. In general, an M×N block may include M columns and N rows of samples (or sample arrays) or a set (or array) of transform coefficients. Alternatively, a sample may refer to a pixel value in the spatial domain, and when such a pixel value is transformed into the frequency domain, it may refer to a transform coefficient in the frequency domain.

[0049] In addition, in the present disclosure, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When quantization / dequantization is omitted, the quantized transform coefficient may be referred to as a transform coefficient. When transform / inverse transform is omitted, the transform coefficient may be referred to as a coefficient or a residual coefficient, or, for consistency of expression, may still be referred to as a transform coefficient.

[0050] In the present disclosure, quantized transform coefficients and transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, residual information may include information about the transform coefficients, and information about the transform coefficients may be signaled via residual coding syntax. The transform coefficients may be derived based on the residual information (or information about the transform coefficients), and the scaled transform coefficients may be derived by inverse transforming (scaling) the transform coefficients. Residual samples may be derived based on the inverse transform (transform) of the scaled transform coefficients. This may also be applied / expressed in other parts of the present disclosure.

[0051] In the present disclosure, technical features respectively described in one drawing may be implemented separately or simultaneously.

[0052] Hereinafter, preferred embodiments of the present disclosure will be described in more detail with reference to the accompanying drawings. Hereinafter, in the accompanying drawings, the same reference numerals are used for the same elements, and redundant descriptions of the same elements may be omitted.

[0053] Figure 1 An example of a video / image encoding system to which the embodiments of this document are applicable is illustrated.

[0054] Reference Figure 1 The video / image coding system may include a source device and a receiving device. The source device may transmit the coded video / image information or data in the form of a file or stream to the receiving device via a digital storage medium or a network.

[0055] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, 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 include a display, and the display may be configured as a separate device or an external component.

[0056] A video source may acquire video / images through a process of capturing, synthesizing, or generating video / images. A video source may include a video / image capture device and / or a video / image generation device. For example, a video / image capture device may include one or more cameras, a video / image archive including previously captured video / images, etc. For example, a video / image generation device may include a computer, a tablet computer, and a smartphone, and may (electronically) generate video / images. For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capture process may be replaced by a process of generating relevant data.

[0057] An encoding device encodes input video / images. For compression and coding efficiency, the encoding device performs a series of processes such as prediction, transformation, and quantization. The encoded data (encoded video / image information) is output as a bitstream.

[0058] The transmitter can transmit the encoded image / image information or data, output as a bitstream, in the form of a file or stream to a receiver of a receiving device via a digital storage medium or network. Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter may include components for generating a media file in a predetermined file format and may also include components for transmission via a broadcast / communication network. The receiver may receive / extract the bitstream and transmit the received bitstream to a decoding device.

[0059] The decoding device may decode a video / image by performing a series of processes corresponding to the operations of the encoding device, such as inverse quantization, inverse transformation, and prediction.

[0060] The renderer may render the decoded video / image, and the rendered video / image may be displayed on a display.

[0061] Figure 2 Schematically illustrates a configuration of a video / image encoding device to which an embodiment of the present disclosure is applicable. Hereinafter, an encoding device may include an image encoding device and / or a video encoding device.

[0062] Reference Figure 2 , the encoding device 200 includes an image segmenter 210, a predictor 220, a residual processor 230 and an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, an inverse quantizer 234, and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. According to an embodiment, the image segmenter 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250, and the filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). In addition, the memory 270 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware components may also include the memory 270 as an internal / external component.

[0063] The image splitter 210 may split the input image (or picture or frame) input to the encoding device 200 into one or more processors. For example, a processor may be referred to as a coding unit (CU). In this case, the coding unit may be recursively split from a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree, binary tree, and ternary tree (QTBTTT) structure. For example, a coding unit may be split into multiple coding units of greater depth based on a quadtree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quadtree structure may be applied first, followed by the binary tree structure and / or ternary structure. Alternatively, the binary tree structure may be applied first. The encoding process according to the present disclosure may be performed based on the final coding unit that is no longer split. In this case, the maximum coding unit may be used as the final coding unit based on image characteristics, coding efficiency, etc., or, if necessary, the coding unit may be recursively split into coding units of greater depth, and the coding unit of the optimal size may be used as the final coding unit. Here, the encoding process may include prediction, transformation, and reconstruction processes (described later). As another example, the processor may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be split or divided from the final coding unit. The prediction unit may be a unit for sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.

[0064] In some cases, the term "unit" may be used interchangeably with terms such as "block" or "region." In general, 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, and may represent only the pixel / pixel value of the luma component or only the pixel / pixel value of the chroma component. A sample may be used as a term corresponding to a picture (or image) of a pixel or pixel.

[0065] In the encoding device 200, a prediction signal (prediction block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 is subtracted from an input image signal (original block, original sample array) to generate a residual signal (residual block, residual sample array), and the generated residual signal is transmitted to the transformer 232. In this case, as shown, the unit in the encoding device 200 that subtracts the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) may be referred to as the subtractor 231. The predictor may perform prediction on a block to be processed (hereinafter referred to as the current block) and generate a prediction block including prediction samples of the current block. The predictor may determine whether to apply intra prediction or inter prediction based on the current block or CU. As described later in the description of each prediction mode, the predictor may generate various types of information related to the prediction (e.g., prediction mode information) and transmit the generated information to the entropy encoder 240. The information regarding the prediction may be encoded in the entropy encoder 240 and output in the form of a bitstream.

[0066] The intra-frame predictor 222 can predict the current block with reference to samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or may be spaced apart. In intra-frame prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. For example, the non-directional mode may include a DC mode and a planar mode. For example, depending on the level of detail of the prediction direction, the directional mode may include 33 directional prediction modes or 65 directional prediction modes. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-frame predictor 222 may use the prediction mode applied to the neighboring blocks to determine the prediction mode applied to the current block.

[0067] The inter-frame predictor 221 can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference picture. To reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. It can also include information about the inter-frame prediction direction (e.g., L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatially neighboring blocks in the current picture and temporally neighboring blocks in the reference picture. The reference picture containing the reference block and the reference picture containing the temporally neighboring block can be the same or different. Temporally neighboring blocks can be referred to as collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture containing temporally neighboring blocks can be referred to as collocated pictures (colPics). For example, the inter-frame predictor 221 can configure a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index for the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter-frame predictor 221 can use the motion information of the neighboring block as the motion information of the current block. In skip mode, unlike merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling the motion vector difference.

[0068] The predictor 220 may generate a prediction signal based on various prediction methods described below. For example, the predictor may apply not only intra prediction or inter prediction to predict a block, but also both intra prediction and inter prediction simultaneously. This may be referred to as combined inter and intra prediction (CIIP). In addition, the predictor may predict a block based on an intra block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or palette mode may be used for content image / video encoding, such as screen content coding (SCC), for gaming and the like. IBC essentially performs prediction within the current picture, but may be performed similarly to inter prediction, such that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described herein. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, the sample values ​​within the picture may be signaled based on information about the palette table and palette index.

[0069] The prediction signal generated by the predictor (including the inter-frame predictor 221 and / or the intra-frame predictor 222) can be used to generate a reconstruction signal or to generate a residual signal. The transformer 232 can generate a transform coefficient 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–Loève transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). Here, when the relationship information between pixels is represented by a graph, GBT means a transform obtained from the graph. CNT refers to a transform generated based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process can be applied to square pixel blocks of the same size or to blocks of variable size other than square.

[0070] The quantizer 233 may quantize the transform coefficients and send them to the entropy encoder 240. The entropy encoder 240 may encode the quantized signal (information about the quantized transform coefficients) and output a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the block-type quantized transform coefficients into a one-dimensional vector form based on the coefficient scanning order and generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. This information about the transform coefficients may be generated. The entropy encoder 240 may perform various encoding methods such as exponential Golomb coding, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may encode information required for video / image reconstruction (e.g., syntax element values) in addition to the quantized transform coefficients, either together or separately. The encoded information (e.g., encoded video / image information) may be transmitted or stored in units of NALs (Network Abstraction Layers) in the form of a bitstream. The video / image information may also include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may include general constraint information. Herein, information and / or syntax elements transmitted / signaled from the encoding device to the decoding device may be included in the video / image information. The video / image information may be encoded using the encoding process described above and included in the bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium. The network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) that transmits the signal output from the entropy encoder 240 and / or a storage unit (not shown) that stores the signal may be included as internal / external components of the encoding device 200, or alternatively, the transmitter may be included in the entropy encoder 240.

[0071] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be reconstructed by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 adds the reconstructed residual signal to the prediction signal output from the inter-frame predictor 221 or the intra-frame predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). If there is no residual for the block to be processed (for example, when skip mode is applied), the prediction block can be used as a reconstructed block. The adder 250 can be referred to as a reconstructor or a reconstructed block generator. As described below, the generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture and can be used for inter-frame prediction of the next picture through filtering.

[0072] Furthermore, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.

[0073] The filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 260 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 270 (specifically, the DPB of the memory 270). For example, the various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filter 260 can generate various types of information related to filtering and send the generated information to the entropy encoder 240, as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoder 240 and output in the form of a bitstream.

[0074] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter predictor 221. When inter prediction is applied by the encoding apparatus, prediction mismatch between the encoding apparatus 200 and the decoding apparatus may be avoided and encoding efficiency may be improved.

[0075] The DPB of the memory 270 may store a modified reconstructed picture used as a reference picture in the inter-frame predictor 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 reconstructed block in the picture. The stored motion information may be sent to the inter-frame predictor 221 and used as motion information of a spatially neighboring block or motion information of a temporally neighboring block. The memory 270 may store reconstructed samples of a reconstructed block in the current picture and may transmit the reconstructed samples to the intra-frame predictor 222.

[0076] Figure 3Schematically illustrates a configuration of a video / image decoding device to which an embodiment of the present disclosure is applicable. Hereinafter, a decoding device may include an image decoding device and / or a video decoding device.

[0077] Reference Figure 3 , the decoding device 300 may 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-frame predictor 332 and an intra-frame predictor 331. The residual processor 320 may include an inverse quantizer 321 and an inverse transformer 322. According to an embodiment, the entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured by a hardware component (e.g., a decoder chipset or processor). In addition, the memory 360 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware component may also include the memory 360 as an internal / external component.

[0078] When a bit stream including video / image information is input, the decoding apparatus 300 can reconstruct the bit stream corresponding to the bit stream in FIG. Figure 2 The image corresponding to the processing of the video / image information in the encoding device. For example, the decoding device 300 can derive the unit / block based on the block segmentation related information obtained from the bit stream. The decoding device 300 can use the processor applied in the encoding device to perform decoding. Therefore, for example, the decoding processor can be a coding unit, and the coding unit can be divided from the coding tree unit or the maximum coding unit according to the quadtree structure, the binary tree structure and / or the ternary tree structure. One or more transform units can be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 can be reproduced by the reproduction device.

[0079] The decoding device 300 may receive Figure 2The received signal is output by the encoding device in the form of a bitstream, and the entropy decoder 310 can decode the received signal. For example, the entropy decoder 310 can parse the bitstream to derive information required for image reconstruction (or picture reconstruction) (e.g., video / image information). The video / image information may also include information about various parameter sets, such as an adaptive 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 also include general constraint information. The decoding device may also decode the picture based on the information about the parameter sets and / or the general constraint information. The signaled / received information and / or syntax elements described later in this document can be decoded and obtained from the bitstream through a decoding process. For example, the entropy decoder 310 decodes the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and outputs the syntax elements required for image reconstruction and the quantized values ​​of the residual transform coefficients. More specifically, the CABAC entropy decoding method receives bins corresponding to various syntax elements in a bitstream, determines a context model using information about the target syntax element to be decoded, information about the decoded target block, or information about symbols / cells decoded in a previous stage, and performs arithmetic decoding on the bins by predicting the probability of their occurrence based on the determined context model, generating symbols corresponding to the values ​​of the respective syntax elements. In this case, after determining the context model, the CABAC entropy decoding method updates the context model by applying information from the decoded symbol / cell to the context model for the next symbol / cell. Information related to prediction, among the information decoded by the entropy decoder 310, can be provided to the predictor (inter-frame predictor 332 and intra-frame predictor 331), and residual values ​​(i.e., quantized transform coefficients and related parameter information) entropy-decoded in the entropy decoder 310 can be input to the residual processor 320. The residual processor 320 can derive a residual signal (residual block, residual sample, residual sample array). Furthermore, information related to filtering, among the information decoded by the entropy decoder 310, can be provided to the filter 350. In addition, a receiver (not shown) for receiving a signal output from the encoding device may also be configured as an internal / external element of the decoding device 300, or the receiver may be a component of the entropy decoder 310. In addition, the decoding device according to this document may be referred to as a video / image / picture decoding device, and the decoding device may be classified 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 decoder 310, and the sample decoder may include at least one of the inverse quantizer 321, the inverse transformer 322, the adder 340, the filter 350, the memory 360, the inter-frame predictor 332, and the intra-frame predictor 331.

[0080] The inverse quantizer 321 may inversely quantize the quantized transform coefficients and output the transform coefficients. The inverse quantizer 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The inverse quantizer 321 may perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.

[0081] The inverse transformer 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).

[0082] The predictor 330 may perform prediction on the current block and generate a prediction block including prediction samples of the current block. The predictor may determine whether to apply intra prediction or inter prediction to the current block based on the information on prediction output from the entropy decoder 310 and may determine a specific intra / inter prediction mode.

[0083] The predictor can generate prediction signals based on various prediction methods described below. For example, the predictor can apply not only intra prediction or inter prediction to predict a block, but also both intra and inter prediction simultaneously. This is referred to as combined inter and intra prediction (CIIP). Furthermore, the predictor can predict blocks based on intra block copy (IBC) prediction mode or palette mode. IBC prediction mode or palette mode can be used for content image / video coding, such as screen content coding (SCC), for gaming and other applications. IBC essentially performs prediction within the current picture, but can be performed similarly to inter prediction, deriving a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described herein. Palette mode can be considered an example of intra coding or intra prediction. When palette mode is applied, sample values ​​within the picture can be signaled based on information about a palette table and palette index. The intra predictor 331 can reference samples in the current picture to predict the current block. Depending on the prediction mode, the referenced samples can be located near the current block or spaced apart. In intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The intra predictor 331 may determine a prediction mode applied to a current block using prediction modes applied to neighboring blocks.

[0084] The intra-frame predictor 331 can predict the current block by referencing samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or spaced apart. In intra-frame prediction, the prediction modes may include multiple non-directional modes and multiple directional modes. The intra-frame predictor 331 can use the prediction modes applied to neighboring blocks to determine the prediction mode applied to the current block.

[0085] The inter-frame predictor 332 may derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference picture. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information may be predicted in units of blocks, sub-blocks, or samples based on the 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 also include information on the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks in the current picture and temporally neighboring blocks in the reference picture. For example, the inter-frame predictor 332 may configure a motion information candidate list based on the neighboring blocks and derive the motion vector and / or reference picture index for the current block based on received candidate selection information. Inter-frame prediction may be performed based on various prediction modes, and prediction information may include information indicating the inter-frame prediction mode for the current block.

[0086] The adder 340 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including the inter-frame predictor 332 and / or the intra-frame predictor 331). If there is no residual in the block to be processed, for example, when skip mode is applied, the prediction block can be used as the reconstructed block.

[0087] The adder 340 may be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, may be output through filtering as described below, or may be used for inter prediction of the next picture.

[0088] In addition, luma mapping with chroma scaling (LMCS) can be applied in the picture decoding process.

[0089] The filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in the memory 360 (specifically, the DPB of the memory 360). For example, the various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0090] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter-frame predictor 332. The memory 360 can store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the reconstructed block in the picture. The stored motion information can be sent to the inter-frame predictor 332 to be used as the motion information of the spatially adjacent block or the motion information of the temporally adjacent block. The memory 360 can store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra-frame predictor 331.

[0091] In the present disclosure, the embodiments described in the filter 260, the inter-frame predictor 221, and the intra-frame predictor 222 of the encoding device 200 may be the same as or respectively applied to the filter 350, the inter-frame predictor 332, and the intra-frame predictor 331 of the decoding device 300. This also applies to the inter-frame predictor 332 and the intra-frame predictor 331.

[0092] In addition, as described above, when performing video encoding, prediction is performed to enhance compression efficiency. A prediction block including prediction samples of a current block (i.e., a target coding block) can be generated by prediction. In this case, the prediction block includes prediction samples in the spatial domain (or pixel domain). The prediction block is derived identically in the encoding device and the decoding device. The encoding device can enhance image coding efficiency by notifying the decoding device with a signal of information (residual information) about the residual between the original block (rather than the original sample values ​​of the original block themselves) and the prediction block. The decoding device can derive a residual block including residual samples based on the residual information, can generate a reconstructed block including reconstructed samples by adding the residual block and the prediction block, and can generate a reconstructed picture including the reconstructed block.

[0093] Residual information can be generated through a transformation process and a quantization process. For example, the encoding device can derive a residual block between the original block and the prediction block, derive a transform coefficient by performing a transformation process on the residual samples (residual sample array) included in the residual block, derive a quantized transform coefficient by performing a quantization process on the transform coefficient, and can signal the relevant residual information to the decoding device (through a bitstream). In this case, the residual information may include information such as value information, position information, transformation scheme, transformation kernel, and quantization parameter of the quantized transform coefficient. The decoding device can perform an inverse quantization / inverse transformation process based on the residual information and derive residual samples (or residual blocks). The decoding device can generate a reconstructed picture based on the prediction block and the residual block. In addition, the encoding device can derive a residual block by performing inverse quantization / inverse transformation on the quantized transform coefficient for reference in inter-frame prediction of a subsequent picture, and can generate a reconstructed picture.

[0094] Figure 4 An example of an illustrative video / image encoding process to which embodiments of the present invention may be applied is shown. Figure 4In the above Figure 2 S400 may be performed in the predictor 220 of the encoding device in FIG. 5 ; S410 may be performed in the residual processor 230 ; and S420 may be performed in the entropy encoder 240 . S400 may include the inter / intra prediction process described herein; S410 may include the residual processing process described herein; and S420 may include the information encoding process described herein.

[0095] Reference Figure 4 , such as about Figure 2 As indicated in the description of , the video / image encoding process can illustratively include: a process of generating a reconstructed picture for the current picture and a process of applying loop filtering to the reconstructed picture (optional), as well as a process of encoding information used for picture reconstruction (e.g., prediction information, residual information, segmentation information, etc.) and outputting it in the form of a bitstream. The encoding device can derive (modified) residual samples from the quantized transform coefficients through the inverse quantizer 234 and the inverse transformer 235, and can generate a reconstructed picture based on the (modified) residual samples and prediction samples as output of S400. The reconstructed picture generated in this manner can be the same as the reconstructed picture generated in the decoding device described above. Similar to the case of the decoding device, a modified reconstructed picture can be generated through the loop filtering process for the reconstructed picture, which can be stored in the decoded picture buffer or memory 270 and used as a reference picture in the inter-frame prediction process of subsequent picture encoding. As described above, all or part of the loop filtering process can be skipped depending on the situation. In the case of performing a loop filtering process, (loop) filtering related information (parameters) can be encoded in the entropy encoder 240 and output in the form of a bitstream, and the decoding device can perform the loop filtering process in the same manner as the encoding device based on the filtering related information.

[0096] This loop filtering process can reduce noise such as blocking artifacts and ringing artifacts generated during image / video encoding, thereby improving subjective and objective visual quality. Furthermore, since the loop filtering process is performed in both the encoding and decoding devices, the encoding and decoding devices can derive the same prediction results, increasing the reliability of picture encoding and reducing the amount of data transmitted for picture encoding.

[0097] As described above, the picture reconstruction process can be performed in the encoding device as well as the decoding device. Based on the intra prediction / inter prediction on each block unit, a reconstructed block can be generated, and a reconstructed picture including the reconstructed block can be generated. In the case where the current picture / slice / tile group is an I picture / slice / tile group, the blocks contained in the current picture / slice / tile group can be reconstructed based only on intra prediction. In addition, in the case where the current picture / slice / tile group is a P or B picture / slice / tile group, the blocks included in the current picture / slice / tile group can be reconstructed based on intra prediction or inter prediction. In this case, inter prediction can be applied to some blocks in the current picture / slice / tile group, and intra prediction can be applied to some blocks in the remaining blocks. The color components of the picture may include a luminance component and a chrominance component, and unless explicitly limited herein, the methods and embodiments proposed herein may be applied to the luminance component and the chrominance component.

[0098] Figure 5 An example of an illustrative video / image decoding process to which the embodiments of this document may be applied is shown. Figure 5 In the above, S500 can Figure 3 S500 may include the information decoding process described herein; S510 may include the inter / intra prediction process described herein; S520 may include the residual processing process described herein; S530 may include the block / picture reconstruction process described herein; and S540 may include the loop filtering process described herein.

[0099] Reference Figure 5 , such as about Figure 3 As indicated in the description of , the picture decoding process can illustratively include a process S500 of obtaining image / video information from a bitstream (through decoding), a picture reconstruction process S510 to S530, and a loop filtering process S540 for reconstructing the picture. The picture reconstruction process can be performed based on the residual samples and prediction samples obtained through the inter-frame / intra-frame prediction S510 and the residual processing S520 (dequantization, inverse transformation of the quantized transform coefficients). By performing the loop filtering process on the reconstructed picture generated by the picture reconstruction process, a modified reconstructed picture can be generated, which can be output as a decoded picture and can also be stored in the decoded picture buffer or memory 360 of the decoding device and used as a reference picture in the inter-frame prediction process of the subsequent picture decoding.

[0100] Depending on the situation, the loop filtering process can be skipped, and in this case, the reconstructed picture can be output as a decoded picture and can also be stored in the decoded picture buffer or memory 360 of the decoding device and used as a reference picture in the inter-frame prediction process of subsequent picture decoding. The loop filtering process S540 may include the deblocking filtering process, sample adaptive offset (SAO) process, adaptive loop filter (ALF) process and / or bilateral filter process as described above, and all or some of them can be skipped. In addition, one or some of the deblocking filtering process, sample adaptive offset (SAO) process, adaptive loop filter (ALF) process and bilateral filter process can be applied sequentially, or all of them can be applied sequentially. For example, after the deblocking filtering process is applied to the reconstructed picture, the SAO process can be performed on it. Alternatively, for example, after the deblocking filtering process is applied to the reconstructed picture, the ALF process can be performed on it. This can also be performed in the encoding device.

[0101] In addition, as described above, the encoding device performs entropy encoding based on various encoding methods such as exponential Golomb coding, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. In addition, the decoding device can perform entropy decoding based on encoding methods such as exponential Golomb coding, CAVLC, or CABAC. Hereinafter, the entropy encoding / decoding process will be described.

[0102] Figure 6 Schematically illustrates an example of an entropy coding method to which embodiments of the present invention may be applied, and Figure 7 An entropy encoder in an encoding device is schematically shown. Figure 7 The entropy encoder in the encoding device can also be applied to the above-mentioned Figure 2 The entropy encoder 240 of the encoding device 200.

[0103] Reference Figure 6 and Figure 7 , the encoding device (entropy encoder) performs entropy encoding processing on the image / video information. The image / video information may include segmentation related information, prediction related information (for example, inter-frame / intra-frame prediction distinction information, intra-frame prediction mode information, inter-frame prediction mode information, etc.), residual information, loop filter related information, or may include various syntax elements related thereto. Entropy encoding can be performed in syntax element units. S600 and S610 may be performed by Figure 2 The above-mentioned entropy encoder 240 of the encoding device 200 is performed.

[0104] The encoding device may perform binarization on the target syntax element (S600). Here, the binarization may be based on various binarization methods, such as truncated Rice binarization, fixed-length binarization, etc., and the binarization method for the target syntax element may be predefined. The binarization process may be performed by the binarizer 242 in the entropy encoder 240.

[0105] The encoding device may perform entropy encoding on the target syntax element (S610). The encoding device may encode the bin string of the target syntax element based on conventional encoding (based on context) or bypass encoding based on an entropy encoding scheme such as context adaptive arithmetic coding (CABAC) or context adaptive variable length coding (CAVLC), and may merge its output into the bitstream. The entropy encoding process may be performed by the entropy encoding processor 243 in the entropy encoder 240. As described above, the bitstream may be transmitted to the decoding device via a (digital) storage medium or a network.

[0106] Figure 8 Schematically illustrates an example of an entropy decoding method to which embodiments of the present invention may be applied, and Figure 9 An entropy decoder in an encoding device is schematically shown. Figure 9 The entropy decoder in the decoding device can also be used with the above Figure 3 The entropy decoder 310 of the decoding device 300 is the same as or corresponds to it.

[0107] Reference Figure 8 and Figure 9 , the decoding device (entropy decoder) can decode the encoded image / video information. The image / video information may include segmentation related information, prediction related information (for example, inter-frame / intra-frame prediction distinction information, intra-frame prediction mode information, inter-frame prediction mode information, etc.), residual information, loop filter related information, or may include various syntax elements related thereto. Entropy coding can be performed in syntax element units. S800 and S810 can be performed by Figure 3 The above-mentioned entropy decoder 310 of the decoding device 300 is executed.

[0108] The decoding device may perform binarization on the target syntax element (S800). Here, the binarization may be based on various binarization methods, such as a truncated Rice binarization process, a fixed-length binarization process, etc., and the binarization method for the target syntax element may be predefined. The decoding device may derive an enabled bin string (bin string candidate) of the enabled value of the target syntax element through the binarization process. The binarization process may be performed by the binarizer 312 in the entropy decoder 310.

[0109] The decoding device may perform entropy decoding on the target syntax element (S810). When each bin of the target syntax element is sequentially decoded and parsed from the input bits in the bitstream, the decoding device compares the derived bin string with the enabled bin string of the corresponding syntax element. When the derived bin string is the same as one of the enabled bin strings, the value corresponding to the bin string may be derived as the value of the syntax element. If not, the above process may be performed again after further parsing the next bit in the bitstream. Through these processes, even if the start bit or end bit is not used for specific information (specific syntax element) in the bitstream, the decoding device may use variable length bits to signal the information. Thus, relatively fewer bits may be allocated to low values, thereby improving overall coding efficiency.

[0110] The decoding device may perform context-based or bypass-based decoding on each bin in the bin string from the bitstream based on an entropy coding technique such as CABAC, CAVLC, etc. In this regard, the bitstream may include various information for image / video decoding as described above. As described above, the bitstream may be transmitted to the decoding device via a (digital) storage medium or a network.

[0111] Figure 10 The hierarchical structure of the coded image / video is shown exemplarily.

[0112] Reference Figure 10 The coded image / video is divided into the VCL (Video Coding Layer) that handles the image / video decoding process and itself, the subsystem that sends and stores the coded information, and the Network Abstraction Layer (NAL) that exists between the VCL and the subsystem and is responsible for the network adaptation function.

[0113] VCL can generate VCL data including compressed image data (slice data), or generate parameter sets including picture parameter sets (picture parameter set: PPS), sequence parameter sets (sequence parameter set: SPS), video parameter sets (video parameter set: VPS), etc., or supplementary enhancement information (SEI) messages required for the decoding processing of images.

[0114] In NAL, a NAL unit can be generated by adding header information (NAL unit header) to the raw byte sequence payload (RBSP) generated in the VCL. In this case, RBSP refers to slice data, parameter sets, SEI messages, etc. generated in the VCL. The NAL unit header may include NAL unit type information specified according to the RBSP data included in the corresponding NAL unit.

[0115] In addition, according to the RBSP generated in the VCL, the NAL unit can be divided into a VCL NAL unit and a non-VCL NAL unit. A VCL NAL unit may refer to a NAL unit including information about an image (slice data), and a non-VCL NAL unit may refer to a NAL unit including information required for decoding an image (parameter set or SEI message).

[0116] VCL NAL units and non-VCL NAL units can be sent over the network by attaching header information according to the data standard of the subsystem. For example, NAL units can be converted into a predetermined standard format such as H.266 / VVC file format, real-time transport protocol (RTP) and transport stream (TS) and sent over various networks.

[0117] As described above, in a NAL unit, a NAL unit type may be specified according to an RBSP data structure included in a corresponding NAL unit, and information about the NAL unit type may be stored in a NAL unit header and signaled.

[0118] For example, depending on whether the NAL unit includes information about the image (slice data), the NAL unit can be roughly divided into a VCL NAL unit type and a non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the non-VCL NAL unit type can be classified according to the type of parameter set.

[0119] The following are examples of NAL unit types specified according to the type of parameter sets included in the non-VCL NAL unit type.

[0120] -APS (Adaptation Parameter Set) NAL unit: type of NAL unit including APS

[0121] -DPS (Decoding Parameter Set) NAL unit: the type of NAL unit that includes DPS

[0122] -VPS (Video Parameter Set) NAL unit: Type of NAL unit containing VPS

[0123] -SPS (Sequence Parameter Set) NAL unit: the type of NAL unit that includes the SPS

[0124] -PPS (Picture Parameter Set) NAL unit: Type of NAL unit including PPS

[0125] -PH (Picture Header) NAL unit: the type of NAL unit including PH

[0126] The above-mentioned NAL unit type has syntax information for the NAL unit type, and the syntax information can be stored in the NAL unit header and signaled. For example, the syntax information can be nal_unit_type, and the NAL unit type can be specified by the nal_unit_type value.

[0127] In addition, as described above, a picture may include multiple slices, and a slice may include a slice header and slice data. In this case, a picture header may be further added to the multiple slices (slice header and slice data set) in a picture. The picture header (picture header syntax) may include information / parameters common to the picture. In this document, a tile group may be mixed with a slice or a picture or replaced with a slice or a picture. In addition, in this document, a tile group header may be mixed with a slice header or a picture header or replaced with a slice header or a picture header.

[0128] The slice header (slice header syntax) may include information / parameters common to the slice. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters common to one or more slices or pictures. The SPS (SPS syntax) may include information / parameters common to one or more sequences. The VPS (VPS syntax) may include information / parameters common to multiple layers. The DPS (DPS syntax) may include information / parameters common to the entire video. The DPS may include information / parameters related to the concatenation of coded video sequences (CVS). In this document, the high-level syntax (HLS) may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, picture header syntax, and slice header syntax.

[0129] In this document, image / video information encoded in an encoding device and signaled to a decoding device in the form of a bitstream may include information included in a slice header, information included in a picture header, information included in an APS, information included in a PPS, information included in an SPS, information included in a VPS, and / or information included in a DPS. It may also include information related to picture segmentation, intra / inter prediction information, residual information, loop filtering information, etc. In addition, the image / video information may also include information in a NAL unit header.

[0130] Furthermore, as described above, the encoding device can derive residual blocks (residual samples) based on blocks predicted (prediction samples) using intra / inter / IBC / palette prediction, etc., and can derive quantized transform coefficients by applying transforms and quantization to the derived residual samples. Information regarding the quantized transform coefficients (residual information) can be included in the residual coding syntax and output as a bitstream after encoding. The decoding device can derive the quantized transform coefficients by obtaining information regarding the quantized transform coefficients (residual information) from the bitstream and decoding it. The decoding device can derive residual samples by performing inverse quantization / inverse transform based on the quantized transform coefficients. As described above, at least one of quantization / inverse quantization and / or transform / inverse transform can be skipped. When a transform / inverse transform is skipped, the transform coefficient can be referred to as a coefficient or a residual coefficient, or, for consistency of expression, can still be referred to as a transform coefficient. Whether the transform / inverse transform is skipped can be signaled based on the transform_skip_flag. For example, when the value of transform_skip_flag is 1, it can indicate that the transform / inverse transform is skipped, and this can be referred to as transform skip mode.

[0131] Generally, in video / image encoding, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From an implementation point of view, taking complexity into consideration, a quantization parameter (QP) can be used instead of the quantization rate. For example, a quantization parameter with an integer value from 0 to 63 can be used, and each quantization parameter value can correspond to an actual quantization rate. For example, the quantization parameter QPY of the luma component (luminance sample) and the quantization parameter QPC of the chroma component (chroma sample) can be set differently.

[0132] The quantization process can take the transform coefficient C as input, divide it by the quantization rate Qstep, and based on this, obtain the quantized transform coefficient C'. In this case, considering the computational complexity, the quantization rate can be multiplied by a certain scale to form an integer, and the shift operation can be performed by a value corresponding to the scale value. The quantization scale can be derived based on the product of the quantization rate and the scale value. In other words, the quantization scale can be derived based on the QP. For example, the quantization scale can be applied to the transform coefficient C to derive the quantized transform coefficient C'.

[0133] The inverse quantization process is the inverse of the quantization process, and the reconstructed transform coefficient C" can be obtained by multiplying the quantized transform coefficient C' by the quantization rate Qstep. In this case, the horizontal scale can be derived from the quantization parameter, and the reconstructed transform coefficient C" can be derived by applying the horizontal scale to the quantized transform coefficient C'. Due to losses in the transformation and / or quantization process, the reconstructed transform coefficient C" may be slightly different from the original transform coefficient C. Therefore, in the encoding device, inverse quantization is performed in the same manner as in the decoding device.

[0134] In addition, prediction can be performed based on palette encoding. Palette encoding is a useful technique for representing blocks that contain a small number of unique color values. As an alternative to applying prediction and transforms to blocks, a palette mode signals an index to indicate the value of each sample. This palette mode is useful for saving video memory buffer space. Blocks can be encoded using a palette mode (e.g., MODE_PLT). In order to decode an encoded block, the decoder should decode the palette entries and indices. The palette entries can be represented by a palette table and can be encoded by a palette table encoding tool.

[0135] Palette coding may be referred to as (intra) palette mode or (intra) palette coding mode, etc. The current block may be reconstructed according to palette coding or palette mode. Palette coding may be considered an example of intra coding or one of the intra prediction methods. However, similar to the skip mode described above, the individual residual values ​​of the corresponding blocks may not be signaled.

[0136] For example, palette mode can be used to improve the encoding efficiency of screen content such as computer-generated videos containing a large amount of text and graphics. In general natural images acquired by a camera, there are differences in value even between pixels representing the same object due to shadows, motion, camera noise, etc. However, computer-generated images and videos such as animations and text have small differences in pixel values ​​within the same area or can represent a specific area with only a limited number of pixels. To take advantage of this property, a group of pixels that can constitute a specific area can be constructed as a palette or palette table, and the values ​​of the pixels representing the area can be assigned to each palette entry to represent a sample of the block.

[0137] For example, when a palette mode is selected, information about a palette table may be signaled. The palette table may include an index corresponding to each pixel. The palette table may construct a palette prediction table from pixel values ​​used in a previous block. For example, previously used pixel values ​​are stored in a specific buffer (palette predictor), and palette predictor information (palette_predictor_run) for constructing a current palette may be received from the buffer. That is, the palette predictor may include data indicating an index of at least a portion of a palette index map for the current block. When the palette entry used to represent the current block is insufficient for the palette prediction entry constructed from the palette predictor, pixel information for the current palette entry may be sent separately.

[0138] The palette mode is signaled at the CU level and can generally be used when most pixels in the CU can be represented by a set of representative pixel values. That is, in palette mode, samples in the CU can be represented as a set of representative pixel values. Such a set can be called a palette. In the case where a sample has a value close to the pixel value in the palette, the palette index (palette_idx_idc) corresponding to the pixel value in the palette or information that can indicate the index (run_copy_flag, copy_above_palette_indices_flag) can be signaled. In the case where a sample has a pixel value that is not a palette entry, the sample can be marked with an escape symbol and the quantized sample value can be signaled directly. In this document, a pixel or a pixel value can be referred to as a sample or a sample value.

[0139] To decode a block encoded in palette mode, the decoder needs palette entry information and palette index information. When the palette index corresponds to an escape symbol, the (quantized) escape value can be signaled as an additional component. In addition, the encoder should derive the appropriate palette for the CU and pass it to the decoder.

[0140] In order to efficiently encode the palette entries, a palette predictor can be maintained. The palette predictor and the maximum size of the palette can be signaled in the SPS. Alternatively, the palette predictor and the maximum palette size can be predefined. For example, the palette predictor and the maximum palette size can be defined as 31 and 15 respectively, depending on whether the current block is a single tree or a dual tree. In the VVC standard, the sps_palette_enabled_flag indicating whether the palette mode is enabled can be sent. Then, the pred_mode_plt_coding flag indicating whether the current coding unit is encoded in palette mode can be sent. The palette predictor can be initialized at the beginning of each brick or each slice.

[0141] For each entry in the palette predictor, a reuse flag can be signaled to indicate whether it is part of the current palette. The reuse flag can be sent using run-length encoding of zeros. Then, the number of new palette entries can be signaled using zero-order exponential Golomb encoding. Finally, the component values ​​of the new palette entries can be signaled. After encoding the current CU, the palette predictor can be updated with the current palette, and entries of the previous palette predictor that are not reused in the current palette can be added to the end of the new palette predictor until the maximum allowed size (palette fill) is reached.

[0142] The index can be encoded using horizontal and vertical traversal scans to encode the palette index map. The scanning order can be explicitly signaled from the bitstream using flag information (e.g., palette_transpose_flag). Hereinafter, in this document, for ease of description, horizontal scanning will be primarily described. However, this also applies to vertical scanning.

[0143] In addition, the palette index can be encoded using two palette sample modes, and for example, an "INDEX" mode and a "COPY_ABOVE" mode can be used. The palette mode can be signaled using a flag indicating whether the mode is "INDEX" or "COPY_ABOVE". In this case, the escape symbol can be signaled in "INDEX" mode and can be assigned an index that is the same as the current palette size. For example, when the current palette size is 10, indices 0 to 9 can refer to the entry index in the palette, and index 10 can refer to the index of the escape symbol. When horizontal scanning is used, the flag can be signaled except for the top row, and when vertical scanning is used or when the previous mode is "COPY_ABOVE" mode, the flag can be signaled except for the first column. In "COPY_ABOVE" mode, the palette index of the sample in the previous row can be copied. In "INDEX" mode, the palette index can be signaled explicitly. For both "INDEX" mode and "COPY_ABOVE" mode, a run value indicating the number of next samples to be encoded using the same mode may be signaled. If an escape symbol is part of a run in "INDEX" mode or "COPY_ABOVE" mode, an escape component value may be signaled for each escape symbol.

[0144] The encoding of palette indices is as follows. First, the number of indices for the CU can be signaled. Then, fixed-length encoding can be used to signal the actual index of the entire CU. The number of indices and the index can be encoded in bypass mode. This allows index-related bypass bins to be grouped together. Next, the palette sample mode (copy_above_palette_indices_flag) and run can be signaled in an interleaved manner. Finally, the component escape values ​​corresponding to the escape samples of the entire CU can be grouped together and encoded in bypass mode.

[0145] In addition, in the VVC standard, dual-tree can be enabled for I slices, splitting the coding units for luma and chroma separately. Palette coding (palette mode) can be applied to luma (Y component) and chroma (Cb and Cr components) separately or together. When dual-tree is disabled, palette coding (palette mode) can be applied to luma (Y component) and chroma (Cb and Cr components) together.

[0146] Figure 11 is a diagram for explaining an example of an encoding method based on a palette mode.

[0147] Reference Figure 11 , the decoding device may obtain palette information based on the bitstream and / or previous palette information (S1100).

[0148] As an embodiment, the decoding device may construct a palette predictor. The palette information used in the previous block may be stored for the next palette CU (ie, CU encoded in palette mode) to be generated later and defined as a palette predictor entry.

[0149] The decoding apparatus may construct a palette based on the palette information ( S1110 ).

[0150] For example, the decoding device may receive new palette entry information and construct a palette for the current CU. For example, after receiving new palette entry information to be used in the current CU and received palette predictor reuse information, the decoding device may combine the two entry information and construct a palette representing the current CU.

[0151] The decoding apparatus may derive sample values ​​(sample prediction values) in the current block based on the palette ( S1120 ).

[0152] In one embodiment, the decoding device can traverse the palette index information, traversal direction (scan order) information, and samples in the CU from the bitstream, and can receive palette mode information for each sample position and continuous length (run) information of each palette mode information. Furthermore, the decoding device can construct samples from the obtained palette information while traversing the samples in the CU in the horizontal direction or the vertical direction based on the traversal direction (scan order) information. If the palette mode information indicates the COPY_ABOVE mode, each sample value in the CU can be derived by copying the index information of the left sample position in the vertical scan and by copying the index information of the top sample position in the horizontal scan. That is, by deriving the value of each sample from the constructed palette table based on the index information of each sample in the CU, the predicted sample in the CU can be derived. Furthermore, the decoding device can use the palette information to reconstruct each sample information in the CU and update the palette predictor.

[0153] In addition, in this document, a table including syntax elements (syntax table) may be used to indicate the signaling of information from an encoding device to a decoding device. The order of syntax elements in the syntax table used in this document may indicate the order in which the syntax elements are parsed from a bitstream. The encoding device may construct and encode the syntax table so that the decoding device can parse the syntax elements in the parsing order, and the decoding device may obtain the value of the syntax element by parsing and decoding the syntax elements of the corresponding syntax table from the bitstream according to the parsing order.

[0154] Table 1 below shows an example of a syntax structure including syntax elements related to palette mode-based encoding for a coding unit.

[0155] [Table 1]

[0156]

[0157]

[0158]

[0159] The semantics of the syntax elements included in the syntax of Table 1 can be shown in Table 2 below.

[0160] [Table 2]

[0161]

[0162]

[0163]

[0164]

[0165] Referring to Table 1 and Table 2, when a palette mode is applied to a current block (ie, a current coding unit), a palette coding syntax (eg, palette_coding()) as in Table 1 above may be parsed / signaled.

[0166] For example, a palette table may be constructed based on palette entry information. The palette entry information may include syntax elements such as palette_predictor_run, num_signalled_palette_entry, and new_palette_entry.

[0167] In addition, a palette index map may be constructed for the current block based on the palette index information. The palette index information may include syntax elements such as num_palette_indices_minus1, palette_idx_idc, and palette_transpose_flag. Based on the palette index information as described above, a palette index map (e.g., PaletteIndexMap) may be constructed by deriving the palette index (e.g., PaletteIndexIdc) of the sample in the current block while traversing according to the traversal scan direction (vertical or horizontal).

[0168] In addition, the sample value of the palette entry in the palette table may be derived based on the palette index map, and the restored sample of the current block may be generated based on the sample value mapped to the palette entry.

[0169] In addition, when a sample with an escape value exists in the current block (i.e., when the value of palette_escape_val_present_flag is 1), the escape value of the current block can be derived based on the escape information. The escape information can include syntax elements such as palette_escape_val_present_flag and palette_escape_val. For example, the escape value of the escape-coded sample in the current block can be derived based on the quantized escape value information (e.g., palette_escape_val). Reconstructed samples of the current block can be generated based on the escape value.

[0170] In addition, as described above, a high-level syntax (HLS) may be encoded / signaled for video / image encoding. For example, as described above, HLS may include a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), an adaptation parameter set (APS), a decoding parameter set (DPS), a slice header, etc.

[0171] For example, a coded picture may consist of one or more slices. Parameters describing a coded picture may be signaled in a picture header (PH), and parameters describing a slice may be signaled in a slice header (SH). The PH may be sent as its own NAL unit type. The SH may be present at the beginning of a NAL unit that includes the payload of the slice (i.e., slice data). The details of the syntax and semantics of the PH and SH may be as disclosed in the VVC standard. Each picture may be associated with a PH. A picture may consist of different types of slices: intra-coded slices (i.e., I slices) and inter-coded slices (i.e., P slices and B slices). As a result, the PH may include syntax elements necessary for intra slices of a picture and inter slices of a picture.

[0172] In addition, the information (syntax elements) in the syntax table disclosed in this document can be included in the image / video information and can be constructed / encoded according to the encoding technology performed by the encoding device and sent to the decoding device in the form of a bitstream. The decoding device can parse / decode the information (syntax elements) in the corresponding syntax table. The decoding device can perform decoding processing (prediction, residual processing (based on transform skipping), palette encoding, etc.) on the current block based on the decoded information, and can reconstruct the block / image / video based on this. Below, this document proposes a method for improving encoding performance by signaling high-level syntax elements so as to efficiently encode blocks / images / videos.

[0173] Specifically, this document proposes a method for efficiently encoding and signaling syntax elements related to chroma quantization parameter offsets in palette coding and / or transform unit coding during video / image coding. As an embodiment, a method for efficiently signaling information about offset indices in syntax elements related to chroma quantization parameter offsets is proposed.

[0174] As described above, the quantization parameter Qp can be used for quantization / inverse quantization processing. In addition, the quantization parameter can be used to derive other parameters in video / image coding. The quantization parameters may include the Qp of the luminance component and the Qp of the chrominance component. For example, if the color components of the bitstream are not encoded separately and the bitstream is not a monochrome bitstream (i.e., ChromaArrayType is not 0), then the syntax elements related to the Qp offset of the chrominance component can be signaled through the HLS (e.g., PPS, slice header, etc.) and coding unit level (e.g., palette coding syntax, transform unit syntax, etc.).

[0175] For example, syntax elements related to the Qp offset of chroma components may be signaled in the PPS as shown in Table 3 below.

[0176] [Table 3]

[0177]

[0178] The semantics of the syntax elements included in the syntax of Table 3 above may be as shown in Table 4 below.

[0179] [Table 4]

[0180]

[0181]

[0182] With reference to Tables 3 and 4, syntax elements related to chroma Qp offsets may be parsed / signaled in the PPS. For example, syntax elements related to chroma Qp offsets in the PPS may include pps_cb_qp_offset and pps_cr_qp_offset, pps_joint_cbcr_qp_offset_present_flag, pps_joint_cbcr_qp_offset_value, pps_slice_chroma_qp_offsets_present_flag, pps_cu_chroma_qp_offset_list_enabled_flag, chroma_qp_offset_list_len_minus1, cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list, etc., as described in Table 4 above.

[0183] The pps_slice_chroma_qp_offsets_present_flag may be information indicating whether additional syntax elements related to chroma Qp offsets are present in the associated slice header. For example, when the value of pps_slice_chroma_qp_offsets_present_flag is 1, additional syntax elements (e.g., slice_cb_qp_offset, slice_cr_qp_offset) may be parsed / signaled in the associated slice header. Alternatively, when the value of pps_slice_chroma_qp_offsets_present_flag is 0, additional syntax elements (e.g., slice_cb_qp_offset, slice_cr_qp_offset) may not be parsed / signaled in the associated slice header.

[0184] The pps_cu_chroma_qp_offset_list_enabled_flag may be information indicating whether additional syntax elements related to chroma Qp offsets are present in the picture header of the referenced PPS. For example, when the value of pps_cu_chroma_qp_offset_list_enabled_flag is 1, additional syntax elements (e.g., pic_cu_chroma_qp_offset_subdiv_intra_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice) may be parsed / signaled in the picture header of the referenced PPS. Alternatively, when the value of pps_cu_chroma_qp_offset_list_enabled_flag is 0, additional syntax elements (e.g., pic_cu_chroma_qp_offset_subdiv_intra_slice, pic_cu_chroma_qp_offset_subdiv_inter_slice) may not be parsed / signaled in the picture header of the referenced PPS.

[0185] In addition, pps_cu_chroma_qp_offset_list_enabled_flag may be information indicating whether cu_chroma_qp_offset_flag is present in the palette coding syntax and the transform unit syntax. For example, when the value of pps_cu_chroma_qp_offset_list_enabled_flag is 1, it may indicate that cu_chroma_qp_offset_flag may be parsed / signaled in the palette coding syntax and the transform unit syntax. Alternatively, when the value of pps_cu_chroma_qp_offset_list_enabled_flag is 0, it may indicate that cu_chroma_qp_offset_flag is not parsed / signaled in the palette coding syntax and the transform unit syntax.

[0186] In addition, for example, syntax elements related to the Qp offset of the chroma component can be signaled in the slice header as shown in the following Table 5. As an example, based on the syntax elements signaled in the PPS (e.g., when the value of pps_slice_chroma_qp_offsets_present_flag is 1 or when the value of pps_cu_chroma_qp_offset_list_enabled_flag is 1), additional syntax elements related to the chroma Qp offset can be signaled through the slice header.

[0187] [Table 5]

[0188]

[0189] The semantics of the syntax elements included in the syntax of Table 5 above may be as shown in Table 6 below.

[0190] [Table 6]

[0191]

[0192] With reference to Tables 5 and 6, syntax elements related to chroma Qp offset may be parsed / signaled in a slice header. For example, syntax elements related to chroma Qp offset in a slice header may include slice_cb_qp_offset, slice_cr_qp_offset, slice_joint_cbcr_qp_offset, cu_chroma_qp_offset_enabled_flag, etc. as described in Table 6 above.

[0193] For example, when the value of pps_slice_chroma_qp_offsets_present_flag signaled in the PPS is 1, the slice_cb_qp_offset and slice_cr_qp_offset syntax elements may be parsed / signaled in the associated slice header.

[0194] Or, as an example, when the value of pps_cu_chroma_qp_offset_list_enabled_flag signaled in the PPS is 1, the cu_chroma_qp_offset_enabled_flag syntax element may be parsed / signaled in the associated slice header.

[0195] In this case, the cu_chroma_qp_offset_enabled_flag syntax element may be information about whether cu_chroma_qp_offset_flag is present in the palette coding syntax and the transform unit syntax. For example, when the value of cu_chroma_qp_offset_enabled_flag is 1, it may indicate that cu_chroma_qp_offset_flag may be parsed / signaled in the palette coding syntax and the transform unit syntax. Alternatively, when the value of cu_chroma_qp_offset_enabled_flag is 0, it may indicate that cu_chroma_qp_offset_flag is not parsed / signaled in the palette coding syntax and the transform unit syntax.

[0196] In addition, for example, syntax elements related to the Qp offset of the chroma component can be signaled at the CU level (e.g., palette coding syntax, transform unit syntax), as shown in the following Tables 7 and 8. As an example, based on the syntax elements signaled in the slice header (e.g., when the value of cu_chroma_qp_offset_enabled_flag is 1), additional syntax elements related to the chroma Qp offset can be signaled through the palette coding syntax and the transform unit syntax.

[0197] [Table 7]

[0198]

[0199] [Table 8]

[0200]

[0201] The semantics of the syntax elements included in the syntax of Table 7 and Table 8 above may be as shown in Table 9 below.

[0202] [Table 9]

[0203]

[0204]

[0205] With reference to Tables 7 to 9, syntax elements related to chroma Qp offset may be parsed / signaled in the palette coding syntax and / or transform unit syntax. For example, syntax elements related to chroma Qp offset in the palette coding syntax and / or transform unit syntax may include cu_chroma_qp_offset_flag, cu_chroma_qp_offset_idx, etc., as described in Table 9 above.

[0206] As an example, based on the case where the value of cu_chroma_qp_offset_enabled_flag signaled in the slice header is 1, the cu_chroma_qp_offset_flag syntax element may be parsed / signaled in the palette coding syntax and / or transform unit syntax.

[0207] Additionally, as an example, based on the case where the value of cu_chroma_qp_offset_flag is 1, the cu_chroma_qp_offset_idx syntax element may be parsed / signaled in the palette coding syntax and / or the transform unit syntax.

[0208] Here, cu_chroma_qp_offset_flag may be information indicating whether the chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset) is used to determine the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). For example, when the value of cu_chroma_qp_offset_flag is 1, it may indicate that the chroma Qp offset list is used to determine the value of the chroma Qp offset. Alternatively, when the value of cu_chroma_qp_offset_flag is 0, it may indicate that the chroma Qp offset list is not used to determine the value of the chroma Qp offset.

[0209] cu_chroma_qp_offset_idx may be information indicating an index to a chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) used to determine the value of a chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). For example, if cu_chroma_qp_offset_idx exists, the value of cu_chroma_qp_offset_idx should be in the range of 0 to chroma_qp_offset_list_len_minus1. Alternatively, when cu_chroma_qp_offset_idx does not exist, the value of cu_chroma_qp_offset_idx may be inferred to be 0.

[0210] Furthermore, the currently designed signaling method for syntax elements related to chroma Qp offsets may not be an optimized design, and in particular, it may not be the best case for signaling information about chroma Qp offsets in the palette coding syntax table. As shown above, when the value of cu_chroma_qp_offset_flag is 1, the syntax element cu_chroma_qp_offset_idx is always signaled regardless of the value of chroma_qp_offset_list_len_minus1, which is information about the number of chroma Qp offset lists. When the value of chroma_qp_offset_list_len_minus1 is 0 (i.e., when there is only one set of chroma Qp offsets in cb_qp_offset_list, cr_qp_offset_list, and joint_cbcr_qp_offset_list), redundancy may occur. When the value of chroma_qp_offset_list_len_minus1 is 0, the only possible value of cu_chroma_qp_offset_idx is 0, so in this case, there is no need to signal cu_chroma_qp_offset_idx.

[0211] Therefore, this document provides a method for solving the above-mentioned problem. That is, this document provides a method for efficiently parsing / signaling syntax elements related to chroma Qp offsets through palette coding syntax and / or transform unit syntax. For example, information about chroma Qp offset indexes (e.g., cu_chroma_qp_offset_idx) can be efficiently signaled through palette coding syntax and / or transform unit syntax based on conditions related to the number of chroma Qp offset lists (e.g., chroma_qp_offset_list_len_minus1) as follows. Each of the following items can be applied individually or in combination.

[0212] 1. When the value of cu_chroma_qp_offset_flag is 1 and there is only one set of chroma Qp offsets (i.e., when the value of chroma_qp_offset_list_len_minus1 is 0), the syntax element indicating the index of the chroma Qp offset (e.g., cu_chroma_qp_offset_idx) may not be signaled for palette coding. In this case, the syntax element indicating the index of the chroma Qp offset (e.g., cu_chroma_qp_offset_idx) may be inferred to be 0. For example, it may be as shown in Tables 10 and 11 to be described later.

[0213] 2. Alternatively, when the value of cu_chroma_qp_offset_flag is 1, a syntax element indicating the index of the chroma Qp offset (eg, cu_chroma_qp_offset_idx) may be always signaled. For example, it may be as shown in Tables 12 and 13 to be described later.

[0214] As an embodiment, information on the index of the chroma Qp offset may be signaled through a palette coding syntax as shown in Table 10 below.

[0215] [Table 10]

[0216]

[0217] The semantics of the syntax elements included in the syntax of Table 10 above may be as shown in Table 11 below.

[0218] [Table 11]

[0219]

[0220]

[0221] Referring to Table 10 and Table 11 above, the cu_chroma_qp_offset_flag and cu_chroma_qp_offset_idx syntax elements may be parsed / signaled in the palette coding syntax.

[0222] The cu_chroma_qp_offset_flag syntax element may be parsed / signaled through the palette coding syntax based on whether the value of cu_chroma_qp_offset_enabled_flag is 1. Here, the cu_chroma_qp_offset_flag syntax element may be information related to whether the chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) is used to determine the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr).

[0223] For example, the cu_chroma_qp_offset_enabled_flag syntax element is information parsed / signaled in the slice header as described above, and when the value is 1, it indicates that cu_chroma_qp_offset_flag may be present in the palette coding syntax and the transform unit syntax. That is, based on the case where the value of cu_chroma_qp_offset_enabled_flag is 1, cu_chroma_qp_offset_flag may be parsed / signaled in the palette coding syntax.

[0224] The cu_chroma_qp_offset_idx syntax element may be parsed / signaled through the palette coding syntax based on the cu_chroma_qp_offset_flag and chroma_qp_offset_list_len_minus1 syntax elements. That is, based on information about whether the chroma Qp offset list is used to derive the value of the chroma Qp offset (e.g., cu_chroma_qp_offset_flag) and information about the number of chroma Qp offset lists (e.g., chroma_qp_offset_list_len_minus1), information about the chroma Qp offset index (e.g., cu_chroma_qp_offset_idx) may be parsed / signaled from the palette coding syntax.

[0225] For example, when the value of cu_chroma_qp_offset_flag is 1 and the condition that the value of chroma_qp_offset_list_len_minus1 is greater than 0 is satisfied, the cu_chroma_qp_offset_idx syntax element may be parsed / signaled in the palette coding syntax.

[0226] Here, as described above, the cu_chroma_qp_offset_idx syntax element may be information indicating an index to a chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) used to determine the value of a chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). The value of cu_chroma_qp_offset_idx should be in the range of 0 to chroma_qp_offset_list_len_minus1.

[0227] The chroma Qp offset value can be derived based on the value of cu_chroma_qp_offset_idx. For example, as shown in Table 11 above, the offset value indicated by cu_chroma_qp_offset_idx is derived from the offset values ​​in the chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list), and this value can be derived as the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr).

[0228] In addition, the value of the chroma quantization parameter (e.g., Qp'Cb, Qp'Cr, Qp'CbCr) can be derived using the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). That is, the chroma quantization parameter can be derived based on the value of the chroma Qp offset, and the scaling process (quantization / inverse quantization) can be performed based on the derived chroma quantization parameter. In addition, when the palette coding mode is applied, the quantization parameter used in the palette mode can be derived based on the derived chroma quantization parameter (e.g., Qp'Cb, Qp'Cr, Qp'CbCr). In this case, the quantization parameter used in the palette mode can be used to derive the escape value of the escape-coded sample in the current block. That is, based on the quantization parameters in the palette mode derived from the chrominance quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr), the escape values ​​of the escaped coded samples in the current block can be derived from the quantization escape value (e.g., palette_escape_val). Reconstructed samples of the current block can be generated based on the escape value.

[0229] According to the above embodiment, it can be understood that the information about the chroma Qp offset index (e.g., cu_chroma_qp_offset_idx) is obtained from the palette coding syntax only when the condition for the information related to the number of chroma Qp offset lists (e.g., chroma_qp_offset_list_len_minus1) is also met. By adding this condition, when there is only one offset in the chroma Qp offset list, the information about the chroma Qp offset index (e.g., cu_chroma_qp_offset_idx) may not be signaled. Therefore, by preventing the signaling of such unnecessary information, an optimal signaling design for the information related to the chroma Qp offset can be provided, thereby improving palette coding efficiency.

[0230] Alternatively, information about the index of the chroma Qp offset may be signaled through a transform unit syntax as shown in Table 12 below.

[0231] [Table 12]

[0232]

[0233] The semantics of the syntax elements included in the syntax of Table 12 above may be as shown in Table 13 below.

[0234] [Table 13]

[0235]

[0236]

[0237] Referring to Table 12 and Table 13 above, the cu_chroma_qp_offset_flag and cu_chroma_qp_offset_idx syntax elements may be parsed / signaled in the transform unit syntax.

[0238] The cu_chroma_qp_offset_flag syntax element may be parsed / signaled through the transform unit syntax based on whether the value of cu_chroma_qp_offset_enabled_flag is 1. As described above, the cu_chroma_qp_offset_flag syntax element may be information related to whether the chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) is used to determine the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr).

[0239] For example, the cu_chroma_qp_offset_enabled_flag syntax element is information parsed / signaled in the slice header as described above, and when the value is 1, it indicates that cu_chroma_qp_offset_flag may be present in the palette coding syntax and the transform unit syntax. That is, based on the case where the value of cu_chroma_qp_offset_enabled_flag is 1, cu_chroma_qp_offset_flag may be parsed / signaled in the transform unit syntax.

[0240] The cu_chroma_qp_offset_idx syntax element may be parsed / signaled through the transform unit syntax based on the cu_chroma_qp_offset_flag syntax element. That is, based on the information about whether the chroma Qp offset list is used to derive the chroma Qp offset value (e.g., cu_chroma_qp_offset_flag), the information about the chroma Qp offset index (e.g., cu_chroma_qp_offset_idx) may be parsed / signaled from the transform unit syntax.

[0241] For example, when the condition that the value of cu_chroma_qp_offset_flag is 1 is met, the cu_chroma_qp_offset_idx syntax element may be parsed / signaled in the transform unit syntax.

[0242] Here, as described above, the cu_chroma_qp_offset_idx syntax element may be information indicating an index to a chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) used to determine the value of a chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). The value of cu_chroma_qp_offset_idx should be in the range of 0 to chroma_qp_offset_list_len_minus1.

[0243] The chroma Qp offset value can be derived based on the value of cu_chroma_qp_offset_idx. For example, as shown in Table 13 above, the offset value indicated by cu_chroma_qp_offset_idx is derived from the offset values ​​in the chroma Qp offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list), and this value can be derived as the value of the chroma Qp offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr).

[0244] Furthermore, the values ​​of chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr) can be derived using the values ​​of the chroma Qp offsets (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). That is, the chroma quantization parameters can be derived based on the values ​​of the chroma Qp offsets, and scaling (inverse quantization) can be performed based on the derived chroma quantization parameters. For example, based on the chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr) derived from the chroma Qp offsets (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr), a scaling (inverse quantization) process can be performed on the quantized transform coefficients of the current block to derive transform coefficients. Reconstructed samples of the current block can be generated based on the derived transform coefficients.

[0245] The following figures are prepared to illustrate specific examples of this document. Since the names of specific devices or specific terms or names (e.g., names of syntax / syntax elements, etc.) described in the figures are presented as examples, the technical features of this document are not limited to the specific names used in the following figures.

[0246] Figure 12 and Figure 13 An example of a video / image encoding method and related components according to embodiments of the present invention is schematically represented.

[0247] Figure 12 The method disclosed in Figure 2 or Figure 13 Here, Figure 13 The encoding device 200 disclosed in Figure 2 Specifically, Figure 12 Steps S1200 to S1210 can be performed by Figure 2 The residual processor 230 disclosed in Figure 12 Step S1220 can be performed by Figure 2 In addition, although not shown, the process of deriving the prediction sample may be performed by the predictor 220 of the encoding device 200; the process of generating the reconstructed sample and the reconstructed picture of the current block based on the residual sample and the prediction sample of the current block may be performed by the adder 250 of the encoding device 200; and the process of encoding the prediction information of the current block may be performed by the entropy encoder 240 of the encoding device 200. In addition, it may be performed Figure 12 The method disclosed in , including the embodiments described above in this article. Figure 12 In the embodiment, the detailed description corresponding to the repetition of the above-mentioned embodiments will be omitted or simplified.

[0248] Reference Figure 12 , the encoding device may derive a chroma quantization parameter offset of the current block ( S1200 ).

[0249] As an embodiment, the encoding device may derive a residual block (residual sample) based on a block (prediction sample) predicted by intra / inter / IBC / palette prediction, etc., and may derive a quantized transform coefficient by applying transform and quantization to the derived residual sample. Information about the quantized transform coefficient (residual information) may be included in the residual coding syntax and output in the form of a bitstream after encoding.

[0250] As described above, quantization parameters can be used when applying the quantization process. The quantization parameters may include a quantization parameter QPY for the luma component (luminance samples) and a quantization parameter QPc for the chroma component (chroma samples). For example, if the color components of the bitstream are not encoded separately and the bitstream is not a monochrome bitstream (i.e., ChromaArrayType is not 0), the quantization parameters of the chroma components may be derived.

[0251] The quantization parameter of the chroma component (i.e., the chroma quantization parameter) can be derived based on the value of the chroma quantization parameter offset. In an embodiment, the value of the chroma quantization parameter offset can be derived based on the chroma quantization parameter offset list. For example, as described in Tables 10 to 13 above, the value of the chroma quantization parameter offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr) can be derived from the chroma quantization parameter offset list based on the index information (e.g., cu_chroma_qp_offset_idx) about the chroma quantization parameter offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list). In other words, the offset value indicated by the index information (e.g., cu_chroma_qp_offset_idx) among the offset values ​​(entries) in the chroma quantization parameter offset list can be derived as the chroma quantization parameter offset value.

[0252] According to an embodiment, palette encoding may be applied to the current block. That is, when a palette mode is applied to the current block, the encoding device may derive chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr) based on the value of the chroma quantization parameter offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). In addition, the encoding device may derive a quantization parameter QP used in the palette mode based on the chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr). In this case, the quantization parameter Qp used in the palette mode may be used to derive an escape value of an escaped coded sample in the current block. That is, based on the quantization parameter Qp in the palette mode derived from the chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr), the encoding device may generate a quantized escape value (e.g., palette_escape_val) by applying quantization to the escaped coded sample in the current block. A detailed description of the palette encoding has been provided above by Tables 1 and 2.

[0253] The encoding apparatus may generate information about a chroma quantization parameter offset ( S1210 ).

[0254] As an embodiment, the encoding device may generate index information indicating the derived chroma quantization parameter offset value from the offset value (entry) in the chroma quantization parameter offset list. That is, the encoding device may generate index information (e.g., cu_chroma_qp_offset_idx) about the chroma quantization parameter offset list as information about the chroma quantization parameter offset.

[0255] The encoding device may encode the image information (or video information) (S1220). Here, the image information may include various information derived from the encoding process and may be encoded to include the various information.

[0256] For example, image information may include residual information. Residual information, which is information generated by a transformation and / or quantization process, may be, for example, information about quantized transform coefficients, and may include value information, position information, transform technology, transform kernel, quantization parameters, etc. of the quantized transform coefficients.

[0257] Furthermore, for example, the image information may include information related to prediction used to derive the prediction sample (eg, prediction mode information).

[0258] In addition, for example, the image information may include information about a chromaticity quantization parameter offset for deriving the chromaticity quantization parameter. Here, the information about the chromaticity quantization parameter offset may include index information about a chromaticity quantization parameter offset list.

[0259] In addition, the image information according to the embodiments of this document may include various information according to the above-described embodiments, and may include information disclosed in at least one of Tables 1 to 13 described above.

[0260] For example, the image information may include a palette encoding syntax. The palette encoding syntax may include various information for performing palette encoding on the current block as described above.

[0261] For example, the palette encoding syntax may include information about chroma quantization parameter offsets. The information about the chroma quantization parameter offsets may be index information (e.g., cu_chroma_qp_offset_idx syntax element) of the chroma quantization parameter offset list described in Tables 7 to 13 above. In this case, the index information (e.g., cu_chroma_qp_offset_idx syntax element) of the chroma quantization parameter offset list may be included in the palette encoding syntax based on information about the number of entries in the chroma quantization parameter offset list. The information about the number of entries in the chroma quantization parameter offset list may be the chroma_qp_offset_list_len_minus1 syntax element described in Tables 7 to 13 above. For example, a value obtained by adding 1 to the value of the chroma_qp_offset_list_len_minus1 syntax element may be derived as the number of entries in the chroma quantization parameter offset list.

[0262] As an example, based on a case where the value of information about the number of entries in the chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is greater than 0, index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may be included in the palette encoding syntax.

[0263] Alternatively, as an example, based on the case where the value of the information about the number of entries in the chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is 0, the index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may not be included in the palette coding syntax. In this case, the value of the index information (e.g., cu_chroma_qp_offset_idx) of the chroma quantization parameter offset list not included in the palette coding syntax may be inferred to be 0.

[0264] In addition, for example, the palette coding syntax may include flag information regarding whether the chroma quantization parameter offset list is used to derive the value of the chroma quantization parameter offset. The flag information may be the cu_chroma_qp_offset_flag syntax element described in Tables 7 to 13 above. As an example, based on the case where the value of the flag information (e.g., cu_chroma_qp_offset_flag) is 1 and the value of the information about the number of entries in the chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is greater than 0, index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may be included in the palette coding syntax.

[0265] In addition, for example, the image information may include first enable flag information regarding whether flag information (e.g., cu_chroma_qp_offset_flag) is present in the palette coding syntax. The first enable flag information may be the cu_chroma_qp_offset_enabled_flag syntax element described in Tables 5 to 6 and may be included in the slice header of the image information. For example, based on the value of the first enable flag information (e.g., cu_chroma_qp_offset_enabled_flag) being 1, the flag information (e.g., cu_chroma_qp_offset_flag) may be included in the palette coding syntax.

[0266] In addition, for example, the image information may include second enable flag information regarding whether flag information (e.g., cu_chroma_qp_offset_flag) is present in the palette coding syntax. The second enable flag information may be a pps_cu_chroma_qp_offset_list_enabled_flag syntax element described in Tables 3 and 4 and may be included in a picture parameter set (PPS) of the image information. In an example, based on a value of 1 for the second enable flag information (e.g., pps_cu_chroma_qp_offset_list_enabled_flag), the first enable flag information (e.g., cu_chroma_qp_offset_enabled_flag) may be included in a slice header.

[0267] The image information including the various information described above can be encoded and output in the form of a bitstream. The bitstream can be sent to a decoding device via a network or a (digital) storage medium. Here, the network can include a broadcast network, a communication network, etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.

[0268] Figure 14 and Figure 15 An example of a video / image decoding method and related components according to embodiments of the present invention is schematically shown.

[0269] Figure 14 The method disclosed in Figure 3 or Figure 15 The decoding device 300 disclosed in the embodiment is executed. Here, Figure 15 The decoding device 300 disclosed in Figure 3 Specifically, Figure 14 Step S1400 can be performed by Figure 3 The entropy decoder 310 disclosed in is executed; Figure 14 Step S1410 can be performed by Figure 3 The residual processor 320 disclosed in is executed; and Figure 14 Step S1420 can be performed by Figure 3 In addition, although not shown, the process of receiving the prediction information of the current block may be performed by the entropy decoder 310 of the decoding device 300, and the process of deriving the prediction sample of the current block may be performed by the predictor 330 of the decoding device 300. In addition, it may be performed Figure 14 The method disclosed in , including the embodiments described above in this article. Figure 14 In the embodiment, the detailed description corresponding to the repetition of the above-mentioned embodiments will be omitted or simplified.

[0270] Reference Figure 14 , the decoding device may receive image information (or video information) from a bitstream (S1400).

[0271] For example, the decoding device may parse the bitstream and derive information required for image reconstruction (or picture reconstruction) (e.g., video / image information). In this case, the image information may include residual information, and the residual information may include value information, position information, transform technology, transform kernel, quantization parameter, etc. of the quantized transform coefficients. In addition, the image information may include prediction-related information (e.g., prediction mode information). In addition, the image information may include information about chroma quantization parameter offsets for deriving chroma quantization parameters. Here, the information about the chroma quantization parameter offsets may include index information about a chroma quantization parameter offset list. That is, the image information may include various information required in the decoding process and may be decoded based on a coding method such as exponential Golomb coding, CAVLC, or CABAC.

[0272] In addition, the image information according to the embodiments of this document may include various information according to the above-described embodiments, and may include information disclosed in at least one of Tables 1 to 13 described above.

[0273] For example, the image information may include a palette encoding syntax. The palette encoding syntax may include various information for performing palette encoding on the current block as described above.

[0274] For example, the palette encoding syntax may include information about chroma quantization parameter offsets. The information about the chroma quantization parameter offsets may be index information (e.g., cu_chroma_qp_offset_idx syntax element) of the chroma quantization parameter offset list described in Tables 7 to 13 above. In this case, index information (e.g., cu_chroma_qp_offset_idx syntax element) for the chroma quantization parameter offset list may be included in the palette encoding syntax based on information about the number of entries in the chroma quantization parameter offset list. The information about the number of entries in the chroma quantization parameter offset list may be the chroma_qp_offset_list_len_minus1 syntax element described in Tables 7 to 13 above. For example, a value obtained by adding 1 to the value of the chroma_qp_offset_list_len_minus1 syntax element may be derived as the number of entries in the chroma quantization parameter offset list.

[0275] As an example, based on a case where a value of information about the number of entries in a chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is greater than 0, index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may be included in the palette encoding syntax.

[0276] Alternatively, as an example, based on the case where the value of the information about the number of entries in the chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is 0, the index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may not be included in the palette coding syntax. In this case, the value of the index information (e.g., cu_chroma_qp_offset_idx) of the chroma quantization parameter offset list not included in the palette coding syntax may be inferred to be 0.

[0277] In addition, for example, the palette coding syntax may include flag information regarding whether the chroma quantization parameter offset list is used to derive the value of the chroma quantization parameter offset. The flag information may be the cu_chroma_qp_offset_flag syntax element described in Tables 7 to 13 above. As an example, based on the case where the value of the flag information (e.g., cu_chroma_qp_offset_flag) is 1 and the value of the information about the number of entries in the chroma quantization parameter offset list (e.g., chroma_qp_offset_list_len_minus1) is greater than 0, index information about the chroma quantization parameter offset list (e.g., cu_chroma_qp_offset_idx) may be included in the palette coding syntax.

[0278] In addition, for example, the image information may include first enable flag information regarding whether flag information (e.g., cu_chroma_qp_offset_flag) is present in the palette coding syntax. The first enable flag information may be the cu_chroma_qp_offset_enabled_flag syntax element described in Tables 5 to 6 and may be included in the slice header of the image information. For example, based on the value of the first enable flag information (e.g., cu_chroma_qp_offset_enabled_flag) being 1, the flag information (e.g., cu_chroma_qp_offset_flag) may be included in the palette coding syntax.

[0279] In addition, for example, the image information may include second enable flag information regarding whether flag information (e.g., cu_chroma_qp_offset_flag) is present in the palette coding syntax. The second enable flag information may be a pps_cu_chroma_qp_offset_list_enabled_flag syntax element described in Tables 3 and 4 and may be included in a picture parameter set (PPS) of the image information. In an example, based on a value of 1 for the second enable flag information (e.g., pps_cu_chroma_qp_offset_list_enabled_flag), the first enable flag information (e.g., cu_chroma_qp_offset_enabled_flag) may be included in a slice header.

[0280] The decoding apparatus may derive a chroma quantization parameter of the current block based on information about the chroma quantization parameter offset ( S1410 ).

[0281] As an embodiment, the decoding device may obtain information regarding chroma quantization parameter offsets included in the image information and, based on this information, derive the chroma quantization parameters. As described above, the information regarding the chroma quantization parameter offsets may include index information regarding a chroma quantization parameter offset list. In this case, the decoding device may derive the value of the chroma quantization parameter offset from the chroma quantization parameter offset list based on the index information regarding the chroma quantization parameter offset list. Furthermore, the decoding device may derive the chroma quantization parameter based on the value of the chroma quantization parameter offset.

[0282] In other words, the chroma quantization parameter may be derived based on the value of the chroma quantization parameter offset. The value of the chroma quantization parameter offset may be derived based on the chroma quantization parameter offset list. For example, as described in Tables 10 to 13 above, the value of the chroma quantization parameter offset (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr) may be derived from the chroma quantization parameter offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) based on the index information (e.g., cu_chroma_qp_offset_idx) about the chroma quantization parameter offset list. That is, the offset value indicated by the index information (e.g., cu_chroma_qp_offset_idx) from the offset value (entry) in the chroma quantization parameter offset list may be derived as the chroma quantization parameter offset value.

[0283] The decoding apparatus may generate a reconstructed sample by performing palette encoding on the current block based on the chroma quantization parameter ( S1420 ).

[0284] As an embodiment, palette encoding may be applied to the current block. In this case, for the current block in palette mode on which palette encoding is performed, the decoding device may derive an escape value for the quantized escape value in the current block based on the chroma quantization parameter. Furthermore, the decoding device may generate a reconstructed sample based on the escape value.

[0285] For example, based on the values ​​of the chrominance quantization parameter offsets (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr), the decoding device may derive chrominance quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr), and based on the chrominance quantization parameters, the decoding device may derive the quantization parameter Qp used in the palette mode. In this case, the quantization parameter Qp used in the palette mode may be used to derive the escape value of the escaped coded sample in the current block. That is, based on the quantization parameter QP in the palette mode derived from the chrominance quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr), the decoding device may derive the escape value of the escaped coded sample in the current block from the quantization escape value (e.g., palette_escape_val). Reconstructed samples of the current block may be generated based on the escape value. The quantization escape value (e.g., palette_escape_val) may be information signaled in the palette coding syntax disclosed in Tables 1 and 2 above. A detailed description of palette encoding has been provided above through Tables 1 and 2.

[0286] According to an embodiment, when a palette mode is not applied to the current block, as disclosed above in Tables 12 and 13, the chroma quantization parameters of the current block may be derived based on information about chroma quantization parameter offsets signaled through transform unit syntax. In this case, for example, the values ​​of chroma quantization parameter offsets (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr) may be derived from the chroma quantization parameter offset list (e.g., cb_qp_offset_list, cr_qp_offset_list, joint_cbcr_qp_offset_list) based on index information (e.g., cu_chroma_qp_offset_idx) about the chroma quantization parameter offset list. In addition, the chroma quantization parameters (e.g., Qp'Cb, Qp'Cr, Qp'CbCr) may be derived based on the values ​​of the chroma quantization parameter offsets (e.g., CuQpOffsetCb, CuQpOffsetCr, CuQpOffsetCbCr). That is, the decoding device can perform a scaling process (inverse quantization process) based on the derived chrominance quantization parameters. For example, the decoding device can derive transform coefficients by applying an inverse quantization process to the quantized transform coefficients of the current block based on the chrominance quantization parameters. In addition, the decoding device can derive residual samples based on the transform coefficients and generate reconstructed samples based on the residual samples.

[0287] Although the method has been described in the above embodiments by using a series of steps and blocks according to a flowchart, the present disclosure is not limited to a specific order of the steps, and some steps may be performed together with different steps and in a different order than the above steps or simultaneously. In addition, it should be understood by those skilled in the art that the steps shown in the flowchart are not exclusive, and other steps may be included, or one or more steps of the flowchart may be deleted without affecting the technical scope of the present disclosure.

[0288] The method according to the present disclosure may be implemented in the form of software, and the encoding device and / or decoding device according to the present disclosure may be included in devices that perform image processing, such as TVs, computers, smart phones, set-top boxes, and display devices.

[0289] When the embodiments of the present disclosure are implemented by software, the aforementioned method can be implemented by a module (process or function) that performs the aforementioned functions. The module can be stored in a memory and executed by a processor. The memory can be installed inside or outside the processor and can be connected to the processor via various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium and / or other storage devices. In other words, the embodiments according to the present disclosure can be implemented and executed on a processor, a microprocessor, a controller or a chip. For example, the functional units illustrated in each figure can be implemented and executed on a computer, a processor, a microprocessor, a controller or a chip. In this case, information about the implementation (for example, information about instructions) or an algorithm can be stored in a digital storage medium.

[0290] In addition, the decoding device and encoding device to which the present disclosure is applied may be included in the following: a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video chat device, and a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camera, a video on demand (VoD) service provider, an over-the-air (OTT) video device, an Internet streaming service provider, a 3D video device, a virtual reality (VR) device, an augmented reality (AR) device, an image phone video device, a vehicle terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an aircraft terminal, or a ship terminal) and a medical video device; and can be used to process image signals or data. For example, an OTT video device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smart phone, a tablet PC, and a digital video recorder (DVR).

[0291] In addition, the processing method to which the embodiments of the present disclosure are applied can be generated in the form of a program executed by a computer and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present disclosure can also be stored in a computer-readable recording medium. Computer-readable recording media include all kinds of storage devices and distributed storage devices in which computer-readable data are stored. Computer-readable recording media may include, for example, Blu-ray discs (BDs), universal serial buses (USBs), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. Computer-readable recording media also include media embodied in the form of carrier waves (e.g., transmission over the Internet). In addition, the bit stream generated by the encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0292] In addition, the embodiments of the present disclosure may be embodied as a computer program product based on program code, and the program code may be executed on a computer according to the embodiments of the present disclosure. The program code may be stored on a computer readable carrier.

[0293] Figure 16 represents an example of a content streaming system to which embodiments herein may be applied.

[0294] refer to Figure 16 A content streaming system to which the embodiments of this document are applied may generally include an encoding server, a streaming server, a network server, a media storage, a user device, and a multimedia input device.

[0295] The encoding server is used to compress content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generate a bitstream, and transmit it to the streaming server. As another example, if the multimedia input device such as smartphones, cameras, and camcorders directly generates the bitstream, the encoding server can be omitted.

[0296] The bitstream may be generated by the encoding method or the bitstream generation method to which the embodiments of this document are applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0297] The streaming server transmits multimedia data to user devices via a network server based on user requests. The network server serves as a tool for notifying users of available services. When a user requests a desired service, the network server transfers the request to the streaming server, which then transmits the multimedia data to the user. In this regard, the content streaming system may include a separate control server, and in this case, the control server is used to control commands and responses between the various devices in the content streaming system.

[0298] The streaming server may receive content from a media storage device and / or an encoding server. For example, when receiving content from an encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a predetermined period of time to smoothly provide a streaming service.

[0299] For example, user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation, tablet PCs, tablet PCs, ultrabooks, wearable devices (e.g., watch-type terminals (smart watches), glasses-type terminals (smart glasses), head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.

[0300] Each server in the content streaming system may be operated as a distributed server, and in this case, data received by each server may be processed in a distributed manner.

[0301] The claims described in this disclosure can be combined in various ways. For example, the technical features of the method claims of this disclosure can be combined and implemented as a device, and the technical features of the device claims of this disclosure can be combined and implemented as a method. In addition, the technical features of the method claims of this disclosure and the technical features of the device claims of this disclosure can be combined and implemented as a device, and the technical features of the method claims of this disclosure and the technical features of the device claims of this disclosure can be combined and implemented as a method.

Claims

1. An image decoding method performed by a decoding device, the image decoding method comprises the following steps: obtaining image information including information on a chrominance quantization parameter offset from a bitstream; deriving a chrominance quantization parameter for a current block based on the information on the chrominance quantization parameter offset; and generating reconstructed samples by performing palette coding on the current block based on the chrominance quantization parameter, wherein the information on the chrominance quantization parameter offset includes index information on a chrominance quantization parameter offset list, wherein the image information includes a palette coding syntax, wherein based on information on the number of entries in the chrominance quantization parameter offset list and flag information on whether the chrominance quantization parameter offset list is used to derive the value of the chrominance quantization parameter offset, the palette coding syntax includes the information on the chrominance quantization parameter offset, wherein the image information includes first enabling flag information on whether the flag information exists in the palette coding syntax, wherein based on the value of the first enabling flag information being 1, the flag information is included in the palette coding syntax, wherein the first enabling flag information is included in a slice header of the image information, and wherein for the current block on which the palette coding is performed, an escape value is derived based on the chrominance quantization parameter, and the reconstructed samples are generated based on the escape value.

2. An image encoding method performed by an encoding device, the image encoding method comprises the following steps: deriving a chrominance quantization parameter offset for a current block; generating information on the chrominance quantization parameter offset; and encoding image information including the information on the chrominance quantization parameter offset, wherein the information on the chrominance quantization parameter offset includes index information on a chrominance quantization parameter offset list, wherein the image information includes a palette coding syntax, wherein based on information on the number of entries in the chrominance quantization parameter offset list and flag information on whether the chrominance quantization parameter offset list is used to derive the value of the chrominance quantization parameter offset, the palette coding syntax includes the information on the chrominance quantization parameter offset, wherein the image information includes first enabling flag information on whether the flag information exists in the palette coding syntax, wherein based on the value of the first enabling flag information being 1, the flag information is included in the palette coding syntax, wherein the first enabling flag information is included in a slice header of the image information, wherein for the current block on which palette coding is performed, a quantized escape value is generated based on the escape-encoded sample value of the current block, and wherein the palette coding syntax includes information on the quantized escape value.

3. A method for sending data of an image, the sending method comprises the following steps: Obtain a bitstream of image information, where the bitstream is generated by deriving a chrominance quantization parameter offset for a current block, generating information about the chrominance quantization parameter offset, and encoding the image information including the information about the chrominance quantization parameter offset; and Transmit the data, where the data includes the bitstream, where the information about the chrominance quantization parameter offset includes index information about a chrominance quantization parameter offset list, where the image information includes a palette coding syntax, where, based on information about the number of entries in the chrominance quantization parameter offset list and flag information about whether the chrominance quantization parameter offset list is used to derive the value of the chrominance quantization parameter offset, the palette coding syntax includes the information about the chrominance quantization parameter offset, where the image information includes first enable flag information about whether the flag information exists in the palette coding syntax, where, based on the value of the first enable flag information being 1, the flag information is included in the palette coding syntax, where the first enable flag information is included in a slice header of the image information, where, for the current block for which palette coding is performed, a quantization escape value is generated based on the escape-encoded sample value of the current block, and where the palette coding syntax includes information about the quantization escape value.