Image decoding method and apparatus therefor
The image decoding method optimizes chroma quantization parameter tables based on flags for Cb and Cr components, addressing high-resolution image coding efficiency challenges by adapting to image characteristics.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2026-05-14
- Publication Date
- 2026-07-24
AI Technical Summary
The increasing demand for high-resolution, high-quality images leads to higher transmission and storage costs due to the increased amount of information, necessitating improved image coding efficiency, particularly in deriving quantization parameters for chromatic components.
An image decoding method and apparatus that determines a chroma quantization parameter table based on a flag, allowing for separate chroma quantization parameter data for Cb and Cr components, enhancing coding efficiency by adapting to image characteristics.
Improves coding efficiency by allowing flexible determination of chroma quantization parameters, optimizing image compression based on image characteristics.
Smart Images

Figure 2026121474000001_ABST
Abstract
Description
[Technical Field]
[0001] This document relates to image coding technology, and more specifically, to an image decoding method and apparatus for coding image information including chroma quantization parameter data for deriving a chroma quantization parameter table for chroma components in an image coding system. [Background technology]
[0002] Recently, the demand for high-resolution, high-quality images such as HD (High Definition) and UHD (Ultra High Definition) images has been increasing in various fields. As image data becomes higher resolution and higher quality, the amount of information or bits transmitted increases relative to existing image data. Therefore, when transmitting image data using existing wired or wireless broadband lines, or storing image data using existing storage media, the transmission and storage costs increase.
[0003] Therefore, highly efficient image compression technology is required to effectively transmit, store, and reproduce high-resolution, high-quality image information. [Overview of the Initiative] [Problems that the invention aims to solve]
[0004] The technical objective of this document is to provide a method and apparatus for improving image coding efficiency.
[0005] Another technical objective of this paper is to provide methods and apparatus for improving the efficiency of data coding for deriving quantization parameters for chromatic components. [Means for solving the problem]
[0006] According to one embodiment of this document, an image decoding method performed by a decoding device is provided. The method includes the steps of acquiring image information and generating a restored picture based on the image information, and includes the steps of acquiring a flag indicating whether or not a chroma quantization parameter table is applied to the chroma components and acquiring chroma quantization parameter data based on the flag, wherein if the value of the flag is 0, the chroma quantization parameter data includes first chroma quantization parameter data for the Cb component and second chroma quantization parameter data for the Cr component.
[0007] According to another embodiment of this document, a decoding device for image decoding is provided. The decoding device comprises an entropy decoding unit for acquiring image information and a residual processing unit for generating a restored picture based on the image information, wherein the entropy decoding unit acquires a flag indicating whether or not a chroma quantization parameter table is applied to the chroma components, acquires chroma quantization parameter data based on the flag, and if the value of the flag is 0, the chroma quantization parameter data includes first chroma quantization parameter data for the Cb component and second chroma quantization parameter data for the Cr component.
[0008] Another embodiment of this document provides a video encoding method performed by an encoding device. The method includes the steps of encoding image information and generating a bitstream containing the image information, wherein the step of encoding the image information includes generating a flag indicating whether a chroma quantization parameter table is applied to a chroma component, generating chroma quantization parameter data for the chroma component based on the flag, and encoding the chroma quantization parameter data and the flag, wherein if the value of the flag is 0, the chroma quantization parameter data includes first chroma quantization parameter data for a Cb component and second chroma quantization parameter data for a Cr component.
[0009] Another embodiment of this document provides a video encoding apparatus. The encoding apparatus comprises an entropy encoding unit that performs the steps of encoding image information and generating a bitstream containing the image information, wherein the entropy encoding unit generates a flag indicating whether or not a chroma quantization parameter table is applied to a chroma component, generates chroma quantization parameter data for the chroma component based on the flag, encodes the chroma quantization parameter data and the flag, and, if the value of the flag is 0, the chroma quantization parameter data includes a first chroma quantization parameter data for the Cb component and a second chroma quantization parameter data for the Cr component. [Effects of the Invention]
[0010] According to this document, the chroma quantization parameter table for chroma components can be determined based on a flag indicating whether or not the same chroma quantization parameter table is used for deriving quantization parameters for chroma components, and coding can be performed based on quantization parameters according to image characteristics to improve coding efficiency.
[0011] According to this document, a chroma quantization parameter table for chroma components can be determined based on chroma quantization data that is individually or commonly signaled to the chroma components, and coding can be performed based on quantization parameters according to the characteristics of the image to improve coding efficiency. [Brief explanation of the drawing]
[0012] [Figure 1] An example of a video / image coding system to which the embodiments described herein may be applied is schematically shown. [Figure 2] This figure schematically illustrates the configuration of a video / image encoding device to which the embodiments described herein may be applied. [Figure 3] This figure schematically illustrates the configuration of a video / image decoding device to which the embodiments described herein may be applied. [Figure 4] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 5] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 6] The intra-prediction procedure is illustrated with an example. [Figure 7] This shows an example of a video / image encoding method for the interpretation platform. [Figure 8] This shows an example of a video / image decoding method for the interpretation platform. [Figure 9] An example of an interpretation prediction procedure is shown below. [Figure 10] This document outlines the image encoding method using the encoding device described herein. [Figure 11]A schematic diagram of the encoding device used for the image encoding method described in this document is shown below. [Figure 12] The image decoding method using the decoding device described in this document is outlined below. [Figure 13] A schematic diagram of a decoding device that performs the image decoding method described in this document is shown. [Figure 14] An illustrative diagram of a content streaming system structure to which the embodiments described herein apply is shown. [Modes for carrying out the invention]
[0013] This document may be modified in various ways and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit this document to any particular embodiment. Terms used herein are used solely to describe specific embodiments and are not intended to limit the technical ideas of this document. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as “includes” or “has” herein are intended to specify the existence of features, figures, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood not to preemptively exclude the existence or possibility of adding one or more other features, figures, steps, actions, components, parts, or combinations thereof.
[0014] On the other hand, each configuration shown in the diagrams described in this document is illustrated independently for the purpose of explaining its distinct characteristic functions, and does not mean that each configuration is implemented with separate hardware or separate software. For example, two or more of the configurations can be combined to form one configuration, and one configuration can be divided into multiple configurations. Embodiments in which each configuration is integrated and / or separated are also included within the scope of the rights of this document, as long as they do not deviate from the essence of this document.
[0015] Preferred embodiments of this document will be described in more detail below with reference to the attached drawings. Hereafter, the same reference numerals will be used for the same components in the drawings, and overlapping descriptions of the same components may be omitted.
[0016] Figure 1 schematically shows an example of a video / image coding system to which the embodiments described in this document may be applied.
[0017] As shown in Figure 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device can transmit encoded video / image information or data to the receiving device in file or streaming form via a digital storage medium or network.
[0018] The source device may comprise a video source, an encoding device, and a transmitter. The receiving device may comprise a receiver, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may comprise a display unit, which may consist of a separate device or external component.
[0019] A video source can acquire video / images through processes such as video / image capture, synthesis, or generation. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, or a video / image archive containing previously captured video / images. A video / image generation device may include, for example, a computer, tablet, and smartphone, and can generate video / images (electronically). For example, a virtual video / image can be generated via a computer, in which case the video / image capture process can be replaced by the process of generating the associated data.
[0020] An encoding device can encode input video / images. For compression and coding efficiency, the encoding device can perform a series of steps, including prediction, transformation, and quantization. The encoded data (encoded video / image information) can be output in bitstream format.
[0021] The transmitting unit can transmit encoded video / image information or data output in bitstream format to the receiving unit of a receiving device via a digital storage medium or network in file or streaming format. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit may include elements for generating media files via a predetermined file format and may include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0022] A decoding device can decode video / images by performing a series of steps, such as inverse quantization, inverse transformation, and prediction, corresponding to the operation of the encoding device.
[0023] The renderer can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0024] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to methods disclosed in the VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard), or next-generation video / image coding standards (e.g., H.267 or H.268).
[0025] This document presents various embodiments relating to video / image coding, and unless otherwise noted, these embodiments may be implemented in combination with each other.
[0026] In this document, "video" can mean a collection of images over time. "Picture" generally refers to a unit representing a single image at a specific time point in time, while "subpicture," "slice," and "tile" are units that constitute a part of a picture in coding. A subpicture, slice, or tile may contain one or more CTUs (coding tree units). A single picture may consist of one or more subpictures, slices, or tiles. A single picture may consist of one or more groups of tiles. A group of tiles may contain one or more tiles. A brick may represent a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consists of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A subpicture may represent a rectangular region of one or more slices within a picture. In other words, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a width specified by syntax elements in the picture parameter set and a height equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, tile groups and slices may be used interchangeably. For example, in this document, a tile group / tile group header may be called a slice / slice header.
[0027] A pixel or pel can refer to the smallest unit that makes up a picture (or image). Alternatively, the term "sample" can be used as a counterpart to pixel. A sample can generally represent a pixel or a pixel value, and can represent only the luma component pixel / pixel value, or only the chroma component pixel / pixel value.
[0028] A unit can represent a basic unit of image processing. A unit can contain at least one of a specific region of a picture and information associated with that region. A unit can contain one luma block and two chroma (e.g., cb, cr) blocks. The term unit may sometimes be used interchangeably with terms such as block or area. In general, an M×N block can contain a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0029] In this specification, "A or B" may mean "A only," "B only," or "both A and B." In other words, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "A only," "B only," "C only," or "any combination of A, B and C."
[0030] In this specification, slashes ( / ) and commas may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "A only", "B only", or "both A and B". For example, "A, B, C" may mean "A, B or C".
[0031] In this specification, "at least one of A and B" may mean "A only," "B only," or "both A and B." Furthermore, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" may be interpreted similarly to "at least one of A and B."
[0032] Furthermore, in this specification, "at least one of A, B and C" may mean "A only," "B only," "C only," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0033] Furthermore, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Also, when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction."
[0034] Technical features described individually in each drawing in this specification may be implemented individually or simultaneously.
[0035] The following drawings have been prepared to illustrate a specific example of this specification. The names of specific devices and signals / messages / fields shown in the drawings are illustrative and not limited to the specific names used in the following drawings.
[0036] Figure 2 is a schematic diagram illustrating the configuration of a video / image encoding device to which the embodiments described in this document may be applied. Hereinafter, the term "video encoding device" may include an image encoding device.
[0037] As shown in Figure 2, the encoding device 200 can be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-predictor 221 and an intra-predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be called a reconstructor or a reconstructed block generator. The aforementioned image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, addition unit 250, and filtering unit 260 can be configured by one or more hardware components (e.g., an encoder chipset or processor) depending on the embodiment. The memory 270 may also include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0038] The image splitting unit 210 can split an input image (or picture, frame) input to the encoding device 200 into one or more processing units. For example, one of these processing units may be called a coding unit (CU). In this case, a coding unit can be recursively split from a coding tree unit (CTU) or the largest coding unit (LCU) using a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit can be split into multiple coding units of deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, followed by the binary-tree structure and / or the ternary structure. Alternatively, the binary-tree structure may be applied first. The coding procedure described in this document can be executed based on the final coding unit that cannot be further split. In this case, based on coding efficiency according to image characteristics, the largest coding unit can be immediately used as the final coding unit, or, if necessary, the coding unit can be recursively divided into lower-depth coding units so that the optimally sized coding unit is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further comprise a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit can each be separated or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the conversion unit is a unit that derives a conversion coefficient and / or a unit that derives a residual signal from the conversion coefficient.
[0039] The term "unit" can sometimes be used interchangeably with terms such as "block" or "area." Generally, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and may represent only the luminance (luma) component pixel / pixel value, or only the chroma component pixel / pixel value. A sample can be used as the term corresponding to a single picture (or image) pixel or pel.
[0040] The encoding device 200 can generate a residual signal (residual block, residual sample array) by subtracting the prediction signal (predicted block, predicted sample array) output from the inter-prediction unit 221 or intra-prediction unit 222 from the input image signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as shown in the figure, the unit that subtracts the prediction signal (predicted block, predicted sample array) from the input image signal (original block, original sample array) within the encoder 200 can be called the subtraction unit 231. The prediction unit can perform a prediction for the block to be processed (hereinafter referred to as the current block) and generate a predicted block that includes the predicted sample for the current block. The prediction unit can determine whether intra-prediction or inter-prediction is applied on a current block or CU basis. The prediction unit can generate various prediction-related information, such as prediction mode information, and transmit it to the entropy encoding unit 240, as will be described later in the explanation of each prediction mode. The prediction information can be encoded by the entropy encoding unit 240 and output in bitstream format.
[0041] The intra-prediction unit 222 can predict the current block by referring to a sample in the current picture. The referenced sample can be located in the vicinity (neighbor) of the current block or at a distance, depending on the prediction mode. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. Non-directional modes can include, for example, DC mode and Planar mode. Directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and more or fewer directional prediction modes can be used depending on the settings. The intra-prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.
[0042] The interprediction unit 221 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks existing in the current picture and temporally adjacent blocks existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporally adjacent block may be the same or different. The temporally adjacent block may be called a collocated reference block, colCU, etc., and the reference picture containing the temporally adjacent block may be called a collocated picture (colPic). For example, the interpretation unit 221 can construct a motion information candidate list based on adjacent blocks and generate information indicating which candidates are used to derive the motion vector and / or reference picture index of the current block. Interpretation can be performed based on various prediction modes; for example, in skip mode and merge mode, the interpretation unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In skip mode, unlike merge mode, a residual signal may not be transmitted.In the case of the motion information prediction (motion vector prediction, MVP) mode, the motion vector of an adjacent block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0043] The prediction unit 220 can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can apply intra prediction or inter prediction for the prediction of one block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP). In addition, the prediction unit can also be based on the intra block copy (IBC) prediction mode or the palette mode for the prediction of a block. The IBC prediction mode or the palette mode can be used for content image / video coding such as games, for example, like SCC (screen content coding). IBC basically performs prediction within the current picture, but can be executed similarly to inter prediction in terms of deriving a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described in this document. The palette mode can be regarded as an example of intra coding or intra prediction. When the palette mode is applied, the sample values in the picture can be signaled based on the information regarding the palette table and the palette index.
[0044] The prediction signal generated via the prediction unit (including the inter-prediction unit 221 and / or the intra-prediction unit 222) can be used to generate a reconstructed signal or a residual signal. The transformation unit 232 can generate transformation coefficients by applying a transformation technique to the residual signal. For example, the transformation technique may include at least one of the following: DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT means a transformation obtained from a graph when the relationship information between pixels is represented by this graph. CNT means a transformation obtained by generating a prediction signal using all previously reconstructed pixels and obtaining a transformation based on it. The transformation process can also be applied to pixel blocks of the same size and square, or to non-square, variable-sized blocks.
[0045] The quantization unit 233 quantizes the conversion coefficients and transmits them to the entropy encoding unit 240, which can encode the quantized signal (information about the quantized conversion coefficients) and output it as a bitstream. The information about the quantized conversion coefficients can be called residual information. The quantization unit 233 can rearrange the block-form quantized conversion coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized conversion coefficients based on the one-dimensional vector form of the quantized conversion coefficients. The entropy encoding unit 240 can perform various encoding methods, such as exponential Golomb, CAVLC (context-adaptive variable length coding), and CABAC (context-adaptive binary arithmetic coding). In addition to the quantized conversion coefficients, the entropy encoding unit 240 can also encode information necessary for video / image restoration (e.g., the values of syntax elements) together with or separately from the quantized conversion coefficients. Encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form in units of network abstraction layer (NAL) units. The video / image information may further include information about various parameter sets, such as adaptation parameter sets (APS), picture parameter sets (PPS), sequence parameter sets (SPS), or video parameter sets (VPS). The video / image information may also further include general constraint information. Information and / or syntax elements transmitted / signaled from the encoding device to the decoding device in this document may be included in the video / image information. The video / image information may be encoded via the encoding procedure described above and included in the bitstream.The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network and / or 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. The signal output from the entropy encoding unit 240 can be configured such that a transmission unit (not shown) for transmission and / or a storage unit (not shown) for storage are internal / external elements of the encoding device 200, or the transmission unit can also be included in the entropy encoding unit 240.
[0046] The quantized transform coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be restored by applying inverse quantization and inverse transformation to the quantized transform coefficients via an inverse quantization unit 234 and an inverse transformation unit 235. The addition unit 250 can generate a restored (reconstructed) signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the processing target block, as in the case where the skip mode is applied, the predicted block can be used as the reconstructed block. The addition unit 250 can be called a restoration unit or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next processing target block within the current picture, and as will be described later, can also be used for inter prediction of the next picture after passing through filtering.
[0047] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied in the picture encoding and / or restoration process.
[0048] The filtering unit 260 can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and the modified restored picture can be stored in the memory 270, specifically in the DPB of the memory 270. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter. The filtering unit 260 can generate various filtering-related information and transmit it to the entropy encoding unit 240, as will be described later in the explanation of each filtering method. The filtering-related information can be encoded by the entropy encoding unit 240 and output in bitstream format.
[0049] The corrected restored picture sent to memory 270 can be used as a reference picture in the interpretation unit 221. When interpretation is applied via this, the encoding device can avoid prediction mismatches between the encoding device 200 and the decoding device 300, and can also improve encoding efficiency.
[0050] Memory 270DPB can store the corrected restored picture for use as a reference picture in the inter-prediction unit 221. Memory 270 can store motion information of blocks from which motion information has been derived (or encoded) in the current picture and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 221 for use as motion information of spatially adjacent blocks or motion information of temporally adjacent blocks. Memory 270 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 222.
[0051] Figure 3 is a schematic diagram illustrating the configuration of a video / image decoding device to which the embodiments described in this document may be applied.
[0052] As shown in Figure 3, the decoding device 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-prediction unit 331 and an intra-prediction unit 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The aforementioned entropy decoder 310, residual processor 320, predictor 330, adder 340, and filtering unit 350 can be configured by a single hardware component (e.g., a decoder chipset or processor) depending on the embodiment. The memory 360 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The aforementioned hardware component may also further include memory 360 as an internal / external component.
[0053] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct the image in accordance with the process by which the video / image information was processed in the encoding device shown in Figure 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Thus, the decoding processing units are, for example, coding units, which can be divided from a coding tree unit or a maximum coding unit according to a quad-tree structure, a binary tree structure, and / or a terminally tree structure. One or more conversion units can be derived from the coding unit. The reconstructed image signal decoded and output via the decoding device 300 can then be reproduced via a playback device.
[0054] The decoding device 300 can receive the signal output from the encoding device shown in Figure 2 in bitstream form, and the received signal can be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information about various parameter sets, such as the adaptation parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. The decoding device can further decode the picture based on the parameter set information and / or the general constraint information. The signaling / received information and / or syntax elements described later in this document can be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements necessary for image reconstruction, quantized values of conversion coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using the information of the syntax element to be decoded, the decoded information of the surrounding and decoded blocks, or the symbol / bin information decoded in a previous step, predicts the probability of bin occurrence based on the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin.Of the information decoded by the entropy decoding unit 310, information related to prediction is provided to the prediction unit (inter-prediction unit 332 and intra-prediction unit 331), and the residual values from which entropy decoding has been performed in the entropy decoding unit 310, i.e., quantized conversion coefficients and related parameter information, can be input to the residual processing unit 320. The residual processing unit 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). In addition, of the information decoded by the entropy decoding unit 310, information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives signals output from the encoding device can be further configured as an internal / external element of the decoding device 300, or the receiving unit is a component of the entropy decoding unit 310. On the other hand, the decoding device relating to this document may be called a video / image / picture decoding device, and the decoding device may also be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, inverse transformation unit 322, addition unit 340, filtering unit 350, memory 360, inter-prediction unit 332, and intra-prediction unit 331.
[0055] The inverse quantization unit 321 can inverse quantize the quantized transformation coefficients and output the transformation coefficients. The inverse quantization unit 321 can rearrange the quantized transformation coefficients in a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) to obtain the transformation coefficients.
[0056] In the inverse conversion unit 322, the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).
[0057] The prediction unit can perform a prediction on the current block and generate a predicted block containing prediction samples for the current block. Based on the prediction information output from the entropy decoding unit 310, the prediction unit can determine whether intra-prediction or inter-prediction is applied to the current block and can determine a specific intra / inter-prediction mode.
[0058] The prediction unit 320 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for prediction of a single block, and can also apply intra-prediction and inter-prediction simultaneously. This can be called combined inter and intra prediction (CIIP). The prediction unit can also be based on intra-block copy (IBC) prediction mode or palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as in games, for example, as in SCC (screen content coding). IBC basically performs prediction within the current picture, but can be performed similarly to inter-prediction in that it derives reference blocks within the current picture. That is, IBC can utilize at least one of the inter-prediction techniques described in this document. Palette mode can be seen as an example of intra-coding or intra-prediction. When palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.
[0059] The intra-prediction unit 331 can predict the current block by referring to a sample in the current picture. The referenced sample can be located in the vicinity (neighbor) of the current block or at a distance from it, depending on the prediction mode. In intra-prediction, the prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The intra-prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.
[0060] The interprediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) identified by motion vectors on a reference picture. In this case, in order to reduce the amount of motion information transmitted from the interprediction mode, motion information can be predicted in blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks that exist in the current picture and temporally adjacent blocks that exist in the reference picture. For example, the interprediction unit 332 can construct a motion information candidate list based on adjacent blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Interprediction can be performed based on various prediction modes, and the prediction information may include information indicating the mode of interprediction for the current block.
[0061] The summing unit 340 can generate a restored signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit (including the inter-prediction unit 332 and / or intra-prediction unit 331). If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as the restored block.
[0062] The summing unit 340 may be called the restoration unit or restoration block generation unit. The generated restoration signal can be used for intra-prediction of the next block to be processed in the current picture, and can be output after filtering as described later, or it can be used for intra-prediction of the next picture.
[0063] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture decoding process.
[0064] The filtering unit 350 can apply filtering to the restored signal to improve subjective / objective image quality. For example, the filtering unit 350 can apply various filtering methods to the restored picture to generate a modified restored picture, and can transmit the modified restored picture to the memory 360, specifically to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter.
[0065] The (corrected) restored picture stored in the DPB of the memory 360 can be used as a reference picture in the inter prediction unit 332. The memory 360 can store the motion information of the block for which the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 360 can store the restored samples of the restored blocks in the current picture and can transmit them to the intra prediction unit 331.
[0066] In this specification, the embodiments described in the filtering unit 260, inter prediction unit 221, and intra prediction unit 222 of the encoding device 200 can also be applied to the filtering unit 350, inter prediction unit 332, and intra prediction unit 331 of the decoding device 300 so as to be identical or corresponding respectively.
[0067] In this document, at least one of quantization / inverse quantization and / or transformation / inverse transformation can be omitted. When the quantization / inverse quantization is omitted, the quantized transformation coefficient can be called a transformation coefficient. When the transformation / inverse transformation is omitted, the transformation coefficient can be called a coefficient or a residual coefficient, or can still be called a transformation coefficient for the sake of uniformity of expression.
[0068] In this document, quantized transformation coefficients and transformation coefficients may be referred to as transformation coefficients and scaled transformation coefficients, respectively. In this case, residual information may include information about the transformation coefficients (etc.), and such information may be signaled via residual coding syntax. Transformation coefficients may be derived based on the residual information (or information about the transformation coefficients (etc.)), and scaled transformation coefficients may be derived via inverse transformation (scaling) of the transformation coefficients. Residual samples may be derived based on inverse transformation (transformation) of the scaled transformation coefficients. This may be applied / expressed similarly in other parts of this document.
[0069] As mentioned above, predictions are made to improve compression efficiency during video coding. Through this, a predicted block containing predicted samples can be generated for the current block, which is the block to be coded. Here, the predicted block contains predicted samples in the spatial domain (or pixel domain). The predicted block is derived identically by the encoding and decoding devices, and the encoding device can improve image coding efficiency by signaling the decoding device information about the residual between the original block and the predicted block (residual information), which is not the original sample value of the original block itself. The decoding device can derive a residual block containing residual samples based on the residual information, and can generate a restored block containing restored samples by combining the residual block and the predicted block, and can generate a restored picture containing the restored block.
[0070] The residual information can be generated through transformation and quantization procedures. For example, an encoding device can derive a residual block between the original block and the predicted block, perform a transformation procedure on the residual samples (residual sample array) contained in the residual block to derive transformation coefficients, perform a quantization procedure on the transformation coefficients to derive quantized transformation coefficients, and signal the associated residual information (via a bitstream) to a decoding device. Here, the residual information may include information such as the value information, position information, transformation technique, transformation kernel, and quantization parameters of the quantized transformation coefficients. The decoding device can perform an inverse quantization / inverse transformation procedure based on the residual information to derive a residual sample (or residual block). The decoding device can generate a reconstructed picture based on the predicted block and the residual block. The encoding device can further inverse quantization / inverse transformation of the quantized transformation coefficients to derive a residual block for reference for subsequent interpretation of the picture, and generate a reconstructed picture based on this.
[0071] Intra prediction can represent a prediction that generates prediction samples for the current block based on reference samples within the picture to which the current block belongs (hereinafter referred to as the current picture). When intra prediction is applied to the current block, surrounding reference samples to be used for intra prediction of the current block can be derived. The surrounding reference samples of the current block may include a total of 2 × nH samples adjacent to the left boundary and bottom-left of the nW × nH size current block, a total of 2 × nW samples adjacent to the top boundary and top-right, and one sample adjacent to the top-left of the current block. Alternatively, the surrounding reference samples of the current block may include upper surrounding samples in multiple columns and left surrounding samples in multiple rows. Furthermore, the surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block (nW × nH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.
[0072] However, some of the surrounding reference samples in the current block may not yet be decoded or available. In this case, the decoder can construct the surrounding reference samples to be used for prediction by substituting the unavailable samples with the available samples, or by interpolating the available samples.
[0073] If a neighboring reference sample is derived, (i) a predicted sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, or (ii) a predicted sample can be derived based on a reference sample among the neighboring reference samples of the current block that is located in a specific (predicted) direction relative to the predicted sample. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode.
[0074] Furthermore, the predicted sample can also be generated by interpolation between a first peripheral sample located in the prediction direction of the current block's intra-prediction mode and a second peripheral sample located in the opposite direction of the prediction direction, based on the predicted sample of the current block. In the above case, it can be called linear interpolation intra-prediction (LIP). Alternatively, a linear model (LM) can be used to generate chroma prediction samples based on chroma samples. In this case, it can be called LM mode or CCLM (chroma component LM) mode.
[0075] Alternatively, a temporary predicted sample for the current block can be derived based on filtered peripheral reference samples, and the predicted sample for the current block can be derived by weighting the temporary predicted sample with at least one reference sample derived by the intra-prediction mode from the existing peripheral reference samples, i.e., the unfiltered peripheral reference samples. In the above case, it can be called PDPC (Position dependent intra-prediction).
[0076] Furthermore, intra-predictive coding can be performed by selecting the reference sample line with the highest prediction accuracy from among the multiple reference sample lines surrounding the current block, deriving the predicted sample using the reference sample located in the prediction direction on that line, and then instructing (signaling) the decoding device to use the reference sample line. In the above case, it can be called multi-reference line intra-prediction or MRL-based intra-prediction.
[0077] Furthermore, while intra-prediction is performed based on the same intra-prediction mode for dividing the current block into vertical or horizontal subpartitions, peripheral reference samples can be derived and used on a subpartition-by-subpartition basis. In other words, in this case, the intra-prediction mode for the current block is similarly applied to the subpartition, but by deriving and using peripheral reference samples on a subpartition-by-subpartition basis, intra-prediction performance can be improved in some cases. Such a prediction method can be called ISP (intra sub-partitions) based intra-prediction.
[0078] The intra-prediction methods described above can be distinguished from intra-prediction modes and referred to as intra-prediction types. These intra-prediction types can be referred to by various terms, such as intra-prediction techniques or additional intra-prediction modes. For example, the intra-prediction type (or additional intra-prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, and ISP. General intra-prediction methods that do not include specific intra-prediction types such as LIP, PDPC, MRL, and ISP can be referred to as normal intra-prediction types. Normal intra-prediction types can be generally applied when the aforementioned specific intra-prediction types are not applicable, and predictions may be made based on the aforementioned intra-prediction modes. On the other hand, post-processing filtering may be performed on the derived prediction samples as needed.
[0079] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction mode / type-based prediction sample derivation step. Additionally, a post-filtering step may be performed on the derived prediction samples, if necessary.
[0080] Figure 4 shows an example of a video / image encoding method for an intra-predictive infrastructure.
[0081] As shown in Figure 4, the encoding device performs intraprediction for the current block (S400). The encoding device derives an intraprediction mode / type for the current block, derives peripheral reference samples for the current block, and generates predicted samples within the current block based on the intraprediction mode / type and the peripheral reference samples. Here, the intraprediction mode / type determination, peripheral reference sample derivation, and predicted sample generation procedures can be performed simultaneously, and any one procedure can be performed before the others. The encoding device can determine which mode / type to apply to the current block from among a plurality of intraprediction modes / types. The encoding device can compare the RD costs for the intraprediction modes / types and determine the optimal intraprediction mode / type for the current block.
[0082] On the other hand, the encoding device can also perform a predictive sample filtering procedure. This predictive sample filtering may be called post-filtering. The predictive sample filtering procedure may filter some or all of the predictive samples. In some cases, the predictive sample filtering procedure may be omitted.
[0083] The encoding device generates a residual sample for the current block based on the (filtered) predicted sample (S410). The encoding device can derive the residual sample by comparing the predicted sample with the original sample of the current block on a phase basis.
[0084] The encoding device can encode image information including information relating to the intra-prediction (prediction information) and residual information relating to the residual sample (S420). The prediction information may include the intra-prediction mode information and the intra-prediction type information. The encoding device can output the encoded image information in bitstream form. The output bitstream can be transmitted to a decoding device via a storage medium or network.
[0085] The residual information may include the residual coding syntax described later. The encoding device can transform / quantize the residual samples to derive quantized transformation coefficients. The residual information may include information regarding the quantized transformation coefficients.
[0086] On the other hand, as mentioned above, the encoding device can generate a restored picture (including restored samples and restored blocks). To this end, the encoding device can decrypt the quantized conversion coefficients again to derive (corrected) residual samples. The reason for decrypting the residual samples again after conversion / quantization is, as mentioned above, to derive the same residual samples as those derived from the decoding device. The encoding device can generate a restored block containing restored samples for the current block based on the predicted samples and the (corrected) residual samples. Based on the restored block, a restored picture for the current picture can be generated. As mentioned above, further procedures such as in-loop filtering may be applied to the restored picture.
[0087] Figure 5 shows an example of a video / image encoding method for an intra-predictive infrastructure.
[0088] The decoding device can perform operations corresponding to those performed by the encoding device.
[0089] Predictive information and residual information can be obtained from the bitstream. Based on the residual information, a residual sample for the current block can be derived. Specifically, based on the quantized transformation coefficients derived from the residual information, inverse quantization can be performed to derive the transformation coefficients, and an inverse transformation can be performed on the transformation coefficients to derive a residual sample for the current block.
[0090] Specifically, the decoding device can derive an intra-prediction mode / type for the current block based on the received prediction information (intra-prediction mode / type information) (S500). The decoding device can derive surrounding reference samples for the current block (S510). The decoding device generates prediction samples within the current block based on the intra-prediction mode / type and the surrounding reference samples (S520). In this case, the decoding device can perform a prediction sample filtering procedure. Prediction sample filtering can be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure can be omitted.
[0091] The decoding device generates a residual sample for the current block based on the received residual information (S530). The decoding device generates a restored sample for the current block based on the predicted sample and the residual sample, and can derive a restored block containing the restored sample (S540). A restored picture for the current picture can be generated based on the restored block. As previously mentioned, in-loop filtering procedures and the like may be further applied to the restored picture.
[0092] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.
[0093] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information includes intra-prediction type index information indicating one of the intra-prediction types. As another example, the intra-prediction type information includes reference sample line information (ex. intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (ex. intra_subpartitions_mode_flag) indicating whether the ISP is applied to the block; ISP type information (ex. intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied; and at least one of flag information indicating whether PDCP is applicable or flag information indicating whether LIP is applicable. The intra-prediction type information also includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0094] The intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded by the coding methods described in this document. For example, the intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded via entropy coding (e.g., CABAC, CAVLC).
[0095] Figure 6 illustrates the intra-prediction procedure.
[0096] Referring to Figure 6, as mentioned above, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction execution (prediction sample generation) step. The intra-prediction procedure may be performed by an encoding device and a decoding device, as mentioned above. In this document, the coding device may include an encoding device and / or a decoding device.
[0097] As shown in Figure 6, the coding device determines the intra-prediction mode / type (S600).
[0098] The encoding device can determine which intra-prediction mode / type to apply to the current block from among the various intra-prediction modes / types described above, and can generate prediction-related information. The prediction-related information may include intra-prediction mode information representing the intra-prediction mode applied to the current block and / or intra-prediction type information representing the intra-prediction type applied to the current block. The decoding device can determine which intra-prediction mode / type to apply to the current block based on the prediction-related information.
[0099] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.
[0100] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information includes intra-prediction type index information that indicates one of the intra-prediction types. As another example, the intra-prediction type information includes reference sample line information (ex. intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (ex. intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; ISP type information (ex. intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied; and at least one of the following: flag information indicating whether PDCP is applicable or flag information indicating whether LIP is applicable. In addition, the intra-prediction type information includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0101] For example, when intra-prediction is applied, the intra-prediction mode applied to the current block may be determined using the intra-prediction modes of the surrounding blocks. For example, the coding device may select one of the MPM (most probable mode) candidates in the MPM (most probable mode) list derived based on the intra-prediction modes and / or additional candidate modes of the surrounding blocks of the current block (e.g., the left and / or upper surrounding blocks) based on the received MPM index, or it may select one of the remaining intra-prediction modes not included in the MPM candidates (and planar modes) based on MPM retainer information (remaining intra-prediction mode information). The MPM list may or may not include planar modes as candidates. For example, if the MPM list includes planar modes as candidates, the MPM list may have 6 candidates, and if the MPM list does not include planar modes as candidates, the MPM list may have 5 candidates. If the MPM list does not include planar mode as a candidate, a not-planar flag (e.g., intra_luma_not_planar_flag) indicating that the current intra-prediction mode of the block is not planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and not-planar flag may be signaled if the value of the MPM flag is 1. Also, the MPM index may be signaled if the value of the not-planar flag is 1. Here, the reason why the MPM list is configured not to include planar mode as a candidate is not because planar mode is not an MPM, but because planar mode is always considered as an MPM, so the flag (not-planar flag) is signaled first to check whether or not it is planar mode.
[0102] For example, whether the intra-prediction mode currently applied to a block is among the MPM candidates (and planar modes) or in the remaining mode can be indicated based on the MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag indicates that the intra-prediction mode for the current block is among the MPM candidates (and planar modes), and a value of 0 for the MPM flag indicates that the intra-prediction mode for the current block is not among the MPM candidates (and planar modes). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) indicates that the intra-prediction mode for the current block is planar mode, and a value of 1 for the not planar flag indicates that the intra-prediction mode for the current block is not planar mode. The MPM index can be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra-prediction mode information can be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra-prediction mode information can be one of the remaining intra-prediction modes from the overall intra-prediction modes that are not included in the MPM candidate (and planar mode), indexed in order of prediction mode number. The intra-prediction mode can be an intra-prediction mode for a luma component (sample). The intra prediction mode information may include at least one of the following: the MPM flag (e.g., intra_luma_mpm_flag), the not planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), or the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, the MPM list may be referred to by various terms such as MPM candidate list, candModeList, etc.
[0103] If MIP is currently applied to a block, a separate MPM flag (e.g., intra_mip_mpm_flag), MPM index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) for MIP may be signaled, while the not planar flag may not be signaled.
[0104] In other words, when an image is generally divided into blocks, the current block and neighboring blocks to be coded will have similar image characteristics. Therefore, there is a high probability that the current block and neighboring blocks are identical or have similar intra-prediction modes. Thus, the encoder can use the intra-prediction mode of the neighboring block to encode the intra-prediction mode of the current block.
[0105] The coding device can construct an MPM (most probable modes) list for the current block. This MPM list can also be referred to as an MPM candidate list. Here, MPM can mean a mode used in intra predictive mode coding to improve coding efficiency by considering the similarity between the current block and surrounding blocks. As mentioned above, the MPM list can be composed of planar modes or can be composed of excluding planar modes. For example, if the MPM list includes planar modes, the number of candidates in the MPM list can be 6. If the MPM list does not include planar modes, the number of candidates in the MPM list can be 5.
[0106] The encoding device can perform predictions based on various intra-prediction modes and determine the optimal intra-prediction mode based on rate-distortion optimization (RDO) derived from these predictions. In this case, the encoding device can determine the optimal intra-prediction mode using only the MPM candidates and planar modes configured in the MPM list, or it can determine the optimal intra-prediction mode using not only the MPM candidates and planar modes configured in the MPM list but also the remaining intra-prediction modes. Specifically, for example, if the intra-prediction type of the current block is a specific type other than the normal intra-prediction type (e.g., LIP, MRL, or ISP), the encoding device can determine the optimal intra-prediction mode by considering only the MPM candidates and planar modes as intra-prediction mode candidates for the current block. That is, in this case, the intra-prediction mode for the current block can be determined from among the MPM candidates and planar modes, and in this case, the MPM flag does not need to be encoded / signaled. In this case, the decoding device can infer that the MPM flag is 1, even if the MPM flag is not separately signaled.
[0107] On the other hand, generally, if the intra prediction mode of the current block is not planar mode and is one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not found in the MPM list, the device generates MPM retainer information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block from among the remaining intra prediction modes not included in the MPM list (and planar mode). The MPM retainer information may include, for example, an intra_luma_mpm_remainder syntax element.
[0108] The decoding device obtains intra-prediction mode information from the bitstream. The intra-prediction mode information may include at least one of the following: the MPM flag, the not-planar flag, the MPM index, and the MPM retainer information (remaining intra-prediction mode information). The decoding device can configure an MPM list. The MPM list is configured similarly to the MPM list configured by the encoding device. That is, the MPM list may include intra-prediction modes of surrounding blocks and may further include specific intra-prediction modes in a predetermined manner.
[0109] The decoding device can determine the intra-prediction mode for the current block based on the MPM list and the intra-prediction mode information. For example, if the value of the MPM flag is 1, the decoding device can derive the planar mode as the intra-prediction mode for the current block (not based on the planar flag), or it can derive the candidate pointed to by the MPM index from among the MPM candidates in the MPM list as the intra-prediction mode for the current block. Here, the MPM candidates can represent only the candidates included in the MPM list, or they can include not only the candidates included in the MPM list but also the planar mode that can be applied when the value of the MPM flag is 1.
[0110] As another example, if the value of the MPM flag is 0, the decoding device can derive the intra-prediction mode pointed to by the remaining intra-prediction mode information (which may be called mpm remainder information) among the remaining intra-prediction modes not included in the MPM list and planar modes as the intra-prediction mode of the current block. On the other hand, as yet another example, if the intra-prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP), the decoding device can derive the candidate pointed to by the MPM flag in the planar mode or the MPM list as the intra-prediction mode of the current block without parsing / decoding / verifying the MPM flag.
[0111] The coding device derives peripheral reference samples for the current block (S610). If intraprediction is applied to the current block, peripheral reference samples to be used for intraprediction of the current block may be derived. The peripheral reference samples for the current block may include a total of 2 × nH samples adjacent to the left boundary and bottom-left of the current block of nW × nH size, a total of 2 × nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the peripheral reference samples for the current block may include upper peripheral samples in multiple columns and left peripheral samples in multiple rows. Furthermore, the surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block (nW × nH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.
[0112] On the other hand, if MRL is applied (i.e., if the value of the MRL index is greater than 0), the peripheral reference samples can be located on lines 1 or 2 that are not line 0 adjacent to the current block on the left / above side, and in this case, the number of peripheral reference samples can increase further. On the other hand, if ISP is applied, the peripheral reference samples can be derived on a subpartition basis.
[0113] The coding device performs intraprediction on the current block and derives predicted samples (S620). The coding device can derive the predicted samples based on the intraprediction mode / type and the surrounding samples. The coding device can derive reference samples from the surrounding reference samples of the current block based on the intraprediction mode of the current block, and can derive predicted samples of the current block based on the reference samples.
[0114] On the other hand, when inter-prediction is applied, the prediction unit of the encoding / decoding device can perform inter-prediction on a block-by-block basis to derive predicted samples. Inter-prediction can represent a prediction derived in a manner that is dependent on data elements (e.g., sample values or motion information) of picture(s) other than the current picture. When inter-prediction is applied to the current block, a predicted block (predicted sample array) for the current block can be derived based on a reference block (reference sample array) identified by motion vectors on the reference picture pointed to by the reference picture index. In this case, in order to reduce the amount of motion information transmitted in inter-prediction mode, the motion information of the current block can be predicted on a block, sub-block, or sample-by-sample basis based on the correlation of motion information between surrounding blocks and the current block. The motion information may include motion vectors and reference picture indexes. The motion information may further include inter-prediction type information (L0 prediction, L1 prediction, Bi prediction, etc.). When interpretation is applied, a surrounding block may include a spatial neighboring block currently present in the picture and a temporal neighboring block present in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal neighboring block may be identical or different. The temporal neighboring block may be called a collocated reference block or colCU, and the reference picture containing the temporal neighboring block may be called a collocated picture (colPic).For example, a list of motion information candidates may be constructed based on the surrounding blocks of the current block, and flags or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled. Interpretation may be performed based on various prediction modes; for example, in skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected surrounding blocks. In skip mode, unlike merge mode, the residual signal may not be transmitted. In motion vector prediction (MVP) mode, the motion vector of the selected surrounding block may be used as the motion vector predictor, and the motion vector difference may be signaled. In this case, the motion vector of the current block can be derived using the sum of the motion vector predictor and the motion vector difference.
[0115] The motion information may include L0 motion information and / or L1 motion information depending on the interpretation type (L0 prediction, L1 prediction, Bi prediction, etc.). A motion vector in the L0 direction may be called an L0 motion vector or MVL0, and a motion vector in the L1 direction may be called an L1 motion vector or MVL1. A prediction based on an L0 motion vector may be called an L0 prediction, a prediction based on an L1 motion vector may be called an L1 prediction, and a prediction based on both the L0 motion vector and the L1 motion vector may be called a paired (Bi) prediction. Here, an L0 motion vector may represent a motion vector associated with a reference picture list L0 (L0), and an L1 motion vector may represent a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may contain earlier pictures as reference pictures in the output order from the current picture, and the reference picture list L1 may contain later pictures in the output order from the current picture. The aforementioned earlier picture can be called a forward (reference) picture, and the aforementioned later picture can be called a reverse (reference) picture. The reference picture list L0 may further include later pictures as reference pictures in order of output relative to the current picture. In this case, the earlier picture may be indexed first in the reference picture list L0, and the later picture may be indexed next. The reference picture list L1 may further include earlier pictures as reference pictures in order of output relative to the current picture. In this case, the later picture may be indexed first in the reference picture list L1, and the earlier picture may be indexed next. Here, the output order can correspond to the POC (picture order count) order.
[0116] A video / image encoding procedure based on interpretation could, in general terms, include the following:
[0117] Figure 7 shows an example of a video / image encoding method for the interpretation platform.
[0118] The encoding device performs interpretation for the current block (S700). The encoding device derives the interpretation mode and motion information of the current block and can generate a prediction sample for the current block. Here, the interpretation mode determination, motion information derivation, and prediction sample generation procedures can be performed simultaneously, and any one of the procedures can be performed before the others. For example, the interpretation unit of the encoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit can determine the prediction mode for the current block, the motion information derivation unit can derive the motion information of the current block, and the prediction sample derivation unit can derive a prediction sample for the current block. For example, the interpretation unit of the encoding device can search for blocks similar to the current block within a certain area (search area) of the reference picture via motion estimation and derive a reference block whose difference from the current block is the minimum or below a certain standard. Based on this, a reference picture index pointing to the reference picture where the reference block is located can be derived, and a motion vector can be derived based on the positional difference between the reference block and the current block. The encoding device can determine which of the various prediction modes is applied to the current block. The encoding device can compare the RD costs for the various prediction modes and determine the optimal prediction mode for the current block.
[0119] For example, when skip mode or merge mode is applied to the current block, the encoding device can configure a merge candidate list, as described later, and derive a reference block from among the reference blocks pointed to by the merge candidates included in the merge candidate list whose difference from the current block is the minimum or below a certain standard. In this case, a merge candidate associated with the derived reference block is selected, and merge index information pointing to the selected merge candidate is generated and signaled to the decoding device. The movement information of the current block can be derived using the movement information of the selected merge candidate.
[0120] As another example, when the (A)MVP mode is applied to the current block, the encoding device can configure the (A)MVP candidate list described later, and use the motion vector of the selected mvp candidate from among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list as the mvp of the current block. In this case, for example, the motion vector pointing to the reference block derived by the motion estimation described above can be used as the motion vector of the current block, and the mvp candidate having the motion vector with the smallest difference from the motion vector of the current block can become the selected mvp candidate. The MVD (motion vector difference), which is the difference obtained by subtracting the mvp from the motion vector of the current block, can be derived. In this case, information regarding the MVD can be signaled to the decoding device. Also, when the (A)MVP mode is applied, the value of the reference picture index can be composed of reference picture index information and separately signaled to the decoding device.
[0121] The encoding device can derive a residual sample based on the predicted sample (S710). The encoding device can derive the residual sample by comparing the original sample of the current block with the predicted sample.
[0122] The encoding device encodes image information including prediction information and residual information (S720). The encoding device can output the encoded image information in bitstream format. The prediction information may include prediction mode information (e.g., skip flag, merge flag, or mode index) and motion information as information related to the prediction procedure. The motion information may include candidate selection information (e.g., merge index, mvp flag, or mvp index) which is information for deriving a motion vector. The motion information may also include the aforementioned MVD information and / or reference picture index information. Furthermore, the motion information may include information indicating whether L0 prediction, L1 prediction, or paired (bi) prediction is applied. The residual information is information about the residual sample. The residual information may include information about the quantized conversion coefficients for the residual sample.
[0123] The output bitstream can be stored in a (digital) storage medium and transmitted to a decoding device, or it can be transmitted to a decoding device via a network.
[0124] On the other hand, as mentioned above, the encoding device can generate a reconstructed picture (including a reconstructed sample and a reconstructed block) based on the reference sample and the residual sample. This is because the encoding device derives the same prediction results as the decoding device, thereby increasing coding efficiency. Therefore, the encoding device can store the reconstructed picture (or reconstructed sample, reconstructed block) in memory and use it as a reference picture for interpretation. As mentioned above, in-loop filtering procedures and the like can be further applied to the reconstructed picture.
[0125] A video / image decoding procedure based on interpretation may, in general, include the following:
[0126] Figure 8 shows an example of a video / image decoding method for the interpretation platform.
[0127] As shown in Figure 8, the decoding device can perform operations corresponding to those performed by the encoding device. Based on the received prediction information, the decoding device can make predictions for the current block and derive prediction samples.
[0128] Specifically, the decoding device can determine the prediction mode for the current block based on the received prediction information (S800). The decoding device can determine which interpretation mode is applied to the current block based on the prediction mode information in the prediction information.
[0129] For example, based on the merge flag, it can be determined whether the merge mode is applied to the current block or whether the (A)MVP mode is determined. Alternatively, one of several inter-prediction mode candidates can be selected based on the mode index. The inter-prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter-prediction modes as described later.
[0130] The decoding device derives motion information for the current block based on the determined interpretation mode (S810). For example, if a skip mode or merge mode is applied to the current block, the decoding device can configure a merge candidate list, as described later, and select one merge candidate from among the merge candidates included in the merge candidate list. This selection can be made based on the selection information (merge index) described above. The motion information for the current block can be used to derive motion information for the selected merge candidate. The motion information for the selected merge candidate can be used as motion information for the current block.
[0131] As another example, when the (A)MVP mode is applied to the current block, the decoding device can configure the (A)MVP candidate list described later, and use the motion vector of the selected mvp candidate from among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list as the mvp of the current block. The selection can be made based on the selection information (mvp flag or mvp index) described above. In this case, the MVD of the current block can be derived based on the information regarding the MVD, and the motion vector of the current block can be derived based on the mvp of the current block and the MVD. Furthermore, the reference picture index of the current block can be derived based on the reference picture index information. In the reference picture list for the current block, the picture pointed to by the reference picture index can be derived as the reference picture referenced for interpretation of the current block.
[0132] On the other hand, as will be described later, the movement information of the current block can be derived without constructing a candidate list, and in this case, the movement information of the current block can be derived by the procedure disclosed in the prediction mode described later. In this case, the candidate list construction described above can be omitted.
[0133] The decoding device can generate predicted samples for the current block based on the motion information of the current block (S820). In this case, the reference picture can be derived based on the reference picture index of the current block, and the predicted samples for the current block can be derived using the sample of the reference block pointed to by the motion vector of the current block on the reference picture. In this case, as will be described later, a further prediction sample filtering procedure may be performed on all or some of the predicted samples for the current block.
[0134] For example, the interpretation unit of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit determines the prediction mode for the current block based on the prediction mode information received, the motion information derivation unit derives motion information (motion vector and / or reference picture index) for the current block based on the motion information received, and the prediction sample derivation unit derives the prediction sample for the current block.
[0135] The decoding device generates a residual sample for the current block based on the received residual information (S830). The decoding device generates a reconstructed sample for the current block based on the predicted sample and the residual sample, and can generate a reconstructed picture based on this (S840). As previously mentioned, in-loop filtering procedures and the like may be further applied to the reconstructed picture thereafter.
[0136] Figure 9 illustrates the interpretation prediction procedure.
[0137] Referring to Figure 9, as mentioned above, the interpretation procedure may include an interpretation mode determination step, a motion information derivation step based on the determined prediction mode, and a prediction execution (prediction sample generation) step based on the derived motion information. As mentioned above, the interpretation procedure may be performed by an encoding device and a decoding device. In this document, the coding device may include an encoding device and / or a decoding device.
[0138] As shown in Figure 9, the coding device determines the interpretation mode for the current block (S900). Various interpretation modes may be used for predicting the current block in the picture. For example, various modes may be used, such as merge mode, skip mode, MVP (motion vector prediction) mode, affine mode, subblock merge mode, and MMVD (merge with MVD) mode. DMVR (Decoder side motion vector refinement) mode, AMVR (adaptive motion vector resolution) mode, Bi-prediction with CU-level weight (BCW), and Bi-directional optical flow (BDOF) may be used as additional or alternative modes. The affine mode may also be called the affine motion prediction mode. The MVP mode may also be called the AMVP (advanced motion vector prediction) mode. In this document, motion information candidates derived by some modes and / or some modes may be included as one of the motion information related candidates of other modes. For example, an HMVP candidate can be added as a merge candidate in the merge / skip mode, or as an MVP candidate in the MVP mode. When the HMVP candidate is used as a motion information candidate in the merge mode or skip mode, the HMVP candidate can be called an HMVP merge candidate.
[0139] Prediction mode information indicating the inter-prediction mode of the current block can be signaled from the encoding device to the decoding device. The prediction mode information can be included in the bitstream and received by the decoding device. The prediction mode information may include index information indicating one of a plurality of candidate modes. Alternatively, the inter-prediction mode can be indicated via hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether a skip mode is applicable, and if the skip mode is not applicable, a merge flag may be signaled to indicate whether a merge mode is applicable, and if the merge mode is not applicable, it may indicate that the MVP mode is applicable, or flags for additional distinctions may be further signaled. Affine modes can be signaled as independent modes, or as modes dependent on merge modes or MVP modes, etc. For example, affine modes may include affine merge mode and affine MVP mode.
[0140] The coding device derives motion information for the current block (S910). The motion information can be derived based on the inter-prediction mode.
[0141] The coding device can perform interpretation using the motion information of the current block. The encoding device can derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding device can use the original block in the original picture for the current block to search for a highly correlated similar reference block in fractional pixel units within a defined search range in the reference picture, thereby deriving motion information. Block similarity can be derived based on the difference in phase-based sample values. For example, block similarity can be calculated based on the SAD between the current block (or the template of the current block) and the reference block (or the template of the reference block). In this case, motion information can be derived based on the reference block with the smallest SAD within the search area. The derived motion information can be signaled to the decoding device in various ways based on the interpretation mode.
[0142] The coding device performs interpretation based on motion information for the current block (S920). The coding device can derive predicted samples (etc.) for the current block based on the motion information. The current block containing the predicted samples can be called a predicted block.
[0143] On the other hand, as mentioned above, the quantization unit of the encoding device can derive quantized conversion coefficients by applying quantization to the conversion coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can derive conversion coefficients by applying inverse quantization to the quantized conversion coefficients.
[0144] Generally, in video / image coding, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From an implementation standpoint, considering complexity, quantization parameters (QPs) are used instead of directly using the quantization rate. For example, integer values from 0 to 63 are used for quantization parameters, and each quantization parameter value can correspond to an actual quantization rate. Also, for example, quantization parameters (QPs) for luma components (luma samples) Y ) and the quantization parameter (QP) for the chromatic component (chromatic sample) C ) allows for different settings.
[0145] The quantization process takes a transformation coefficient (C) as input and a quantization rate (Q) as input. step By dividing by ), a quantized transformation coefficient (C') can be obtained based on this. In this case, considering the computational complexity, the quantization rate can be multiplied by the scale to obtain an integer form, and a shift operation can be performed by the amount corresponding to the scale value. A quantization scale can be derived based on the product of the quantization rate and the scale value. That is, the quantization scale can be derived by QP. For example, the quantization scale can also be applied to the transformation coefficient (C), and a quantized transformation coefficient (C') can be derived based on this.
[0146] The inverse quantization process is the reverse process of the quantization process, and the quantized transformation coefficient (C') is multiplied by the quantization rate (Q). step By multiplying by ), the restored transformation coefficient (C'') can be obtained. In this case, the level scale is derived from the quantization parameter, and the level scale is applied to the quantized transformation coefficient (C') to derive the restored transformation coefficient (C''). The restored transformation coefficient (C'') may differ slightly from the original transformation coefficient (C) due to losses during the transformation and / or quantization process. Therefore, the encoding device also performs inverse quantization, similar to the decoding device.
[0147] On the other hand, an adaptive frequency weighting quantization technique can be applied, which adjusts the quantization intensity according to the frequency. This adaptive frequency weighting quantization technique is a method of applying different quantization intensities for each frequency. This adaptive frequency weighting quantization can apply different quantization intensities for each frequency using predefined quantization scaling metrics. That is, the aforementioned quantization / dequantization process can be performed based on these quantization scaling metrics. For example, different quantization scaling metrics are used depending on whether the prediction mode applied to the current block is inter-prediction or intra-prediction in order to generate the size of the current block and / or the residual signal of the current block. These quantization scaling metrics may also be called quantization metrics or scaling metrics. These quantization scaling metrics may also be predefined. Furthermore, for frequency adaptive scaling, frequency-specific quantization scale information for the quantization scaling metrics is configured / encoded in an encoding device and signaled to a decoding device. This frequency-specific quantization scale information may also be called quantization scaling information. The frequency-specific quantization scale information includes scaling list data. Based on the scaling list data, the (modified) quantization scaling metrics are derived. The frequency-specific quantization scale information also includes present flag information indicating the presence or absence of the scaling list data. Alternatively, if the scaling list data is signaled at a higher level (e.g., SPS), it may further include information indicating whether the scaling list data is modified at a lower level (e.g., PPS or tile group header).
[0148] As mentioned above, quantization / dequantization is applied to the lunar and chromatic components based on the quantization parameters.
[0149] The quantization parameter for a coding unit is determined based on information signaled at the picture and / or slice level. For example, the quantization parameter can be derived as described below.
[0150] For example, information regarding the derivation of the quantization parameter is signaled via the SPS (sequence parameter set) as shown in the following table.
[0151]
Table 1
[0152] The semantics for the syntax elements in Table 1 above are as shown in the following table.
[0153]
Table 2
[0154] For example, the syntax element bit_depth_luma_minus8 indicates the bit depth BitDepth of the samples in the luma array Y and the luma quantization parameter range offset QpBdOffset. Y That is, for example, based on the syntax element bit_depth_luma_minus8, the BitDepth Y and the QpBdOffset Y can be derived. For example, the BitDepth Y is derived as the value obtained by adding 8 to the value of the syntax element bit_depth_luma_minus8, and the QpBdOffset YThis is derived by multiplying the value of the syntax element bit_depth_luma_minus8 by 6. Furthermore, bit_depth_luma_minus8 can be in the range of 0 to 8.
[0155] For example, the syntax element bit_depth_chroma_minus8 is BitDepth, which is the bit depth of the chroma array samples. c And the chroma quantization parameter range offset, QpBdOffset. c This indicates that, for example, the BitDepth based on the syntax element bit_depth_chroma_minus8 c and the aforementioned QpBdOffset c The following can be derived. For example, the BitDepth c This is derived as the value obtained by adding 8 to the value of the syntax element bit_depth_chroma_minus8, and the QpBdOffset c This is derived by multiplying the value of the syntax element bit_depth_chroma_minus8 by 6. Furthermore, bit_depth_chroma_minus8 can be in the range of 0 to 8.
[0156] Furthermore, for example, information regarding the derivation of quantization parameters is signaled via a PPS (picture parameter set) as shown in the following table. This information includes the chroma Cb offset, chroma Cr offset, joint chroma offset, and initial quantization parameters. That is, this information includes syntax elements for the chroma Cb offset, chroma Cr offset, joint chroma offset, and initial quantization parameters.
[0157] [Table 3]
[0158] The semantics for the syntax elements in Table 3 are as follows:
[0159] [Table 4]
[0160] For example, the value obtained by adding 26 to the syntax element init_qp_minus26 is the SliceQp for each slice that references PPS. Y This indicates the initial value of slice_qp_delta. If a non-zero value of slice_qp_delta is decoded, the SliceQp Y The initial value of can be modified in the slice layer. The aforementioned init_qp_minus26 0 is -(26+QpBdOffset Y It can be in the range of ) or +37.
[0161] Furthermore, for example, the syntax elements pps_cb_qp_offset and pps_cr_qp_offset are Qp' Cb and Qp' Cr The Luma quantization parameter Qp' used in the derivation of Y This indicates the offset. The pps_cb_qp_offset and pps_cr_qp_offset can be in the range of -12 to +12. Also, if ChromaArrayType is 0, pps_cb_qp_offset and pps_cr_qp_offset may not be used during the decoding process, and the decoding device can ignore the values of the syntax elements.
[0162] Also, for example, the syntax element pps_joint_cbcr_qp_offset is Qp' CbCr The Luma quantization parameter Qp' used in the derivation of Y This indicates the offset. The pps_joint_cbcr_qp_offset can be in the range of -12 to +12. Also, if ChromaArrayType is 0, the pps_joint_cbcr_qp_offset may not be used during the decoding process, and the decoding device may ignore the value of the syntax element.
[0163] Furthermore, for example, the syntax element pps_slice_chroma_qp_offsets_present_flag indicates whether the syntax elements slice_cb_qp_offset and slice_cr_qp_offset are present in the associated slice header. For example, a value of 1 for pps_slice_chroma_qp_offsets_present_flag indicates that they are present in the associated slice headers for slice_cb_qp_offset and slice_cr_qp_offset. Also, for example, a value of 0 for pps_slice_chroma_qp_offsets_present_flag indicates that they are not present in the associated slice headers for slice_cb_qp_offset and slice_cr_qp_offset. Additionally, if ChromaArrayType is 0, pps_slice_chroma_qp_offsets_present_flag appears to be 0 during the decoding process.
[0164] As mentioned above, the syntax elements parsed in PPS may be init_qp_minus26, pps_cb_qp_offset_pps_cr_qp_offset, pps_joint_cbcr_qp_offset, and pps_slice_chroma_qp_offsets_present_flag. The syntax element init_qp_minus26 indicates the initial value of SliceQpY for each slice referencing PPS. The syntax elements pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset indicate the Luma quantization parameter Qp'. Y This indicates the offset relative to the value. Additionally, the syntax element pps_slice_chroma_qp_offsets_present_flag indicates whether the offset parameter is present in the slice header.
[0165] Furthermore, information regarding the derivation of quantization parameters can be signaled via a slice header, for example, as shown in the following table.
[0166] [Table 5]
[0167] The semantics for the syntax elements in Table 5 are as follows:
[0168] [Table 6-1]
[0169] [Table 6-2]
[0170] For example, slice_qp_delta is the Qp used for coding blocks within a slice until it is modified by the value of CuQpDeltaVal in the coding unit layer. Y This shows the initial value of Qp for a slice. Y Initial value, SliceQp Y This is derived as 26 + init_qp_minus26 + slice_qp_delta. SliceQp Y The value is -QpBdOffset Y It could be within the range of +63.
[0171] Also, for example, slice_cb_qp_offset is the quantization parameter Qp' Cb This indicates the difference added to the value of pps_cb_qp_offset when determining the value of slice_cb_qp_offset. The value of slice_cb_qp_offset can be in the range of -12 to +12. Also, for example, if slice_cb_qp_offset does not exist, it is considered to be 0 (inferred). The value of pps_cb_qp_offset + slice_cb_qp_offset can be in the range of 12 to +12.
[0172] Also, for example, slice_cr_qp_offset is the quantization parameter Qp' Cr This indicates the difference added to the value of pps_cr_qp_offset when determining the value of slice_cr_qp_offset. The value of slice_cr_qp_offset can be in the range of -12 to +12. Also, for example, if slice_cr_qp_offset does not exist, it is considered to be 0 (inferred). The value of pps_cr_qp_offset + slice_cr_qp_offset can be in the range of 12 to +12.
[0173] Also, for example, slice_cbcr_qp_offset is the quantization parameter Qp' CbCrThis indicates the difference added to the value of pps_cbcr_qp_offset when determining the value of slice_cbcr_qp_offset. The value of slice_cbcr_qp_offset can be in the range of -12 to +12. Also, for example, if slice_cbcr_qp_offset does not exist, it is considered to be 0 (inferred). The value of pps_cbcr_qp_offset + slice_cbcr_qp_offset can be in the range of 12 to +12.
[0174] The derivation process for luma and chroma quantization parameters begins with inputs to the process being a luma location, a variable specifying the width and height of the current coding block, and a variable specifying whether it is a single tree or a dual tree. On the other hand, as mentioned above, the luma quantization parameters, chroma quantization parameters, and joint chroma quantization parameters are derived from Qp' Y , Qp' Cb , Qp' Cr and Qp' CbCr This can be shown.
[0175] On the other hand, for example, the syntax element cu_qp_delta_sign_flag, which indicates the sign of CuQpDeltaVal, is parsed. For example, the cu_qp_delta_sign_flag can indicate the sign of CuQpDeltaVal as follows:
[0176] For example, if cu_qp_delta_sign_flag is 0, then CuQpDeltaVal corresponding to cu_qp_delta_sign_flag has a positive value. Alternatively, for example, if cu_qp_delta_sign_flag is 1, then CuQpDeltaVal corresponding to cu_qp_delta_sign_flag has a negative value. Furthermore, if cu_qp_delta_sign_flag does not exist, then cu_qp_delta_sign_flag is considered to be 0.
[0177] Furthermore, for example, if cu_qp_delta_abs exists, the variable IsCuQpDeltaCoded is derived as 1, and the variable CuQpDeltaVal is derived as cu_qp_delta_abs*(1-2*cu_qp_delta_sign_flag). The aforementioned CuQpDeltaVal can be in the range of -(32+QpBdOffsetY / 2) to +(31+QpBdOffsetY / 2).
[0178] Subsequently, for example, the Luma quantization parameter Qp' Y It can be derived as shown in the following formula.
[0179]
number
[0180] Furthermore, if ChromaArrayType is not 0 and treeType is SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:
[0181] -If treeType is like DUAL_TREE_CHROMA, then the variable Qp Y Qp is the luma quantization parameter of the luma coding unit containing the luma position (xCb+cbWidth / 2, yCb+cbHeight / 2). Y It can be set to be the same as [another setting].
[0182] -variable qP Cb , qP Cr and qP CbCr This is derived as follows:
[0183]
number
[0184] For example, if ChromaArrayType is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be set to the same value as the QpC value specified in Table 7 below, based on the same index qPi.
[0185] [Table 7]
[0186] Alternatively, if ChromaArrayType is not 1, the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be set to the same value as Min(qPi,63) based on the same index qPi.
[0187] -Chromatography quantization parameters for Cb and Cr components, Qp' Cb and Qp' Cr The chromatic quantization parameter Qp'CbCr for joint Cb-Cr coding is derived as follows:
[0188]
number
[0189] On the other hand, this document proposes a method for improving coding efficiency during quantization / dequantization processes.
[0190] As one embodiment, this document proposes a method in which, when ChromaArrayType is not 0 (for example, when ChromaArrayType is 1), the user defines and uses a user-defined Chroma Quantization Table, rather than obtaining the chroma quantization parameter value from the luma quantization parameter value via a predefined chroma quantization mapping table in the existing VVC draft 5v.7. In the VVC specification text (e.g., VVC draft 5v.7), given qPi (luma quantization parameter value), Qpc (chroma quantization parameter value) is derived via a predefined chroma quantization table (e.g., Table 7 above). However, this document proposes a method for deriving Qpc from qPi based on a newly defined chroma quantization mapping table by the user. According to the embodiments of this document, the Qpc value is derived from a function relationship of the qPi value, and the function can be signaled to syntax such as APS, SPS, or PPS by a user-defined functionality method. The function relationship transmits a value of a predefined syntax element, and the user defines a chroma quantization table mapping based on the transmitted value. As one example, since the Qpc value can be derived from a function relationship of the qPi value, when a syntax element value representing the function is transmitted, a user-defined chroma quantization mapping table can be derived in the format shown in Table 7.
[0191] As one embodiment, we propose a method for signaling information about syntax elements (Qpc_data) that represent chroma quantization mapping-related functions in the APS (adaptation parameter set), as shown in the table below.
[0192] [Table 8]
[0193] Referring to Table 8 above, if the aps_params_type indicates Qpc_APS, for example, if the value of aps_params_type is 2, then Qpc_data() is signaled.
[0194] The semantics for the syntax elements in Table 8 are as follows:
[0195] [Table 9]
[0196] For example, the syntax element `adaptation_parameter_set_id` provides an identifier for an APS that is referenced by other syntax elements.
[0197] Furthermore, for example, the syntax element aps_extension_flag indicates whether or not the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 indicates that the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure, while a syntax element aps_extension_flag with a value of 0 indicates that the aps_extension_data_flag syntax element does not exist in the APS RBSP syntax structure.
[0198] Furthermore, for example, the syntax element aps_extension_data_flag can have any value. The presence and value of aps_extension_data_flag may not affect the decoder compatibility to the profile explicitly stated in this version of the standard. For example, a decoding device conforming to this version of the standard may ignore all syntax elements aps_extension_data_flag.
[0199] Furthermore, for example, the syntax element aps_params_type indicates the type of APS parameter included in the APS, as shown in Table 10 below.
[0200] [Table 10]
[0201] For example, referring to Table 10, a value of the syntax element aps_params_type of 0 indicates that the type of APS parameter is an ALF parameter, a value of the syntax element aps_params_type of 1 indicates that the type of APS parameter is an LMCS parameter, and a value of the syntax element aps_params_type of 2 indicates that the type of APS parameter is a Qpc parameter. Qpc data parameters can represent chromatic quantization data parameters.
[0202] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0203] For example, in this embodiment, user-defined Qp in PPS (picture parameter set) C Data (userdefined Qp C We propose a method for signaling data. As an example of implementing the method proposed in this embodiment, a flag indicating whether or not the PPS contains user-defined data may be introduced in the SPS. That is, a flag indicating whether or not the PPS contains user-defined data is signaled in the SPS. In addition, according to this embodiment, the user-defined data is signaled in the PPS. Alternatively, the user-defined data may be signaled in the slice header and / or other header sets.
[0204] The flag indicating whether or not PPS contains user-defined data is signaled as shown in the following table.
[0205] [Table 11]
[0206] For example, the syntax element Qpc_data_default_flag can be the syntax element of the aforementioned flag. The syntax element Qpc_data_default_flag indicates whether or not the Qpc_data() parameter exists in the PPS RBSP syntax structure. For example, a Qpc_data_default_flag of 0 indicates that the Qpc_data() parameter does not exist in the PPS RBSP syntax structure and that a default table is used to help determine chroma quantization. Here, the default table is as shown in Table 7 above. Alternatively, for example, a Qpc_data_default_flag of 1 indicates that the Qpc_data() parameter exists in the PPS RBSP syntax structure.
[0207] Furthermore, the user-defined data signaled in the PPS according to this embodiment is as shown in the following table.
[0208] [Table 12]
[0209] On the other hand, for example, Qpc_data() contains the information necessary for chroma quantization derivation when ChromaArrayType is 1.
[0210] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0211] For example, this embodiment proposes a flexible structure for chroma quantization parameter (QP) derivation and combined chroma QP derivation. This embodiment proposes a method for signaling an initial flag indicating the presence or absence of a user-defined mode in which parameters representing the function used to derive chroma quantization parameter (QP) in SPS and / or PPS can be used.
[0212] For example, the flag information signaled in the high-level syntax proposed in this embodiment is as shown in the table below.
[0213] [Table 13]
[0214] For example, Qpc_data_present_flag indicates whether or not there are parameters for deriving chromatic quantization coefficients in the high-level syntax RBSP syntax structure. For example, a Qpc_data_present_flag of 0 indicates that there are no chromatic quantization parameters in the high-level syntax RBSP syntax structure. Also, for example, a Qpc_data_present_flag of 1 indicates that chromatic quantization parameters exist in the high-level syntax RBSP syntax structure.
[0215] Alternatively, the syntax element Qpc_data_present_flag may be used to indicate the use of chroma quantization derivation in the bitstream. For example, Qpc_data_present_flag may indicate the use of a tool or user-defined mode used for chroma quantization derivation, as follows:
[0216] For example, Qpc_data_present_flag indicates whether user-defined chroma quantization is used in the bitstream. For instance, a Qpc_data_present_flag of 0 indicates that user-defined chroma quantization is not used in the bitstream. Alternatively, a Qpc_data_present_flag of 1 indicates that user-defined chroma quantization is used alone or in conjunction with other flags.
[0217] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0218] For example, in this embodiment, user-defined information signaled in a single function is used to determine the chromatic quantization parameter (QP), i.e., Qp'. Cb , Qp' Cr and Qp' CbCr We propose one embodiment of how the chromatic quantization parameters (QPs) are derived. For example, according to this embodiment, data representing a function for deriving the chromatic quantization parameters (QPs) is signaled, and the chromatic quantization parameters are derived based on the chromatic quantization data. The data for deriving the chromatic quantization coefficients (or a user-defined QP mapping table) is signaled as shown in the following table.
[0219] [Table 14]
[0220] The semantics for the syntax elements in Table 14 are as follows:
[0221] [Table 15]
[0222] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization.
[0223] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between the Qpi_min_idx and the maximum qPi index used for Qp C derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as follows in the following formula.
[0224]
Equation
[0225] Also, for example, the syntax element QpC_qPi_val[i] indicates the Qp value for the i-th index. C value.
[0226] Also, for example, the syntax element QpOffset C indicates the offset value used for the derivation of Qp C value.
[0227] Also, for example, the variable Qp for qPi C Idx[qPi] can be derived as follows. Here, the qPi can be from 0 to qPiMaxIdx.
[0228] When -qPi < qPi_min_idx, Qp C Idx[qPi] is set to be the same as qPi.
[0229] When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp CIdx[qPi] is set to be the same as QpC_qPi_val[qPi].
[0230] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi-QpOffset C It will be set to this.
[0231] After that, Qp C The value of Qp C It is derived as Idx[qPi].
[0232] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0233] [Table 16-1]
[0234] [Table 16-2]
[0235] [Table 16-3]
[0236] [Table 16-4]
[0237] Referring to Table 16 above, the derivation process for the luma and chroma quantization parameters begins with the inputs to the process being the luma position (xCb, yCb), the variables cbWidth and cbHeight which specify the width and height of the current coding block, and the variable treeType which specifies whether it is a single tree or a dual tree. On the other hand, as mentioned above, the luma quantization parameters and chroma quantization parameters are Qp' Y , Qp'Cb and Qp' Cr This is indicated.
[0238] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0239] For example, this embodiment proposes an example of using syntax elements that can be used to control the derivation of quantization parameters by having a flag in the SPS that has a user-defined mode or a default mode. An example of a syntax element that can be used to derive quantization parameters is shown in the following table. On the other hand, the structure of the syntax element is just an example, and the structure is not limited to the structure shown in the table below.
[0240] [Table 17]
[0241] [Table 18]
[0242] [Table 19]
[0243] For example, the syntax element Qpc_data_default_flag indicates whether a user-defined mode is used for deriving the quantization parameters. For example, a Qpc_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. Also, for example, a Qpc_data_default_flag of 1 indicates that the default table is used to derive the chroma quantization parameters. Here, the default table is as shown in Table 7 above. Furthermore, if the syntax element Qpc_data_default_flag does not exist, it is considered to be 1.
[0244] On the other hand, when the user-defined mode is used, a corresponding slice header, tile group / header, or other appropriate header is used for signaling the APS ID. For example, a syntax element indicating the APS ID can be signaled via a slice header, as shown in Table 18.
[0245] For example, the syntax element slice_Qp C _aps_id is the Qp referenced by the slice. C This indicates the adaptation_parameter_set_id of APS. C Qp with an adaptation_parameter_set_id like _aps_id C The TemporalId of an APS NAL unit is less than or equal to the TemporalId of a coded slice NAL unit. Multiple Qp units with identical adaptation_parameter_set_id values. C If an APS is referenced by two or more slices of the same picture, multiple QPs with the same adaptation_parameter_set_id value will be used. C APS can have the same content.
[0246] Furthermore, the APS structure for transmitting chromatic quantization data proposed in this embodiment is as shown in Table 19 above.
[0247] For example, the syntax element `adaptation_parameter_set_id` can provide an identifier for an APS that is referenced by other syntax elements.
[0248] Furthermore, for example, the syntax element aps_extension_flag indicates whether or not the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 indicates that the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure, while a syntax element aps_extension_flag with a value of 0 indicates that the aps_extension_data_flag syntax element does not exist in the APS RBSP syntax structure.
[0249] Furthermore, for example, the syntax element aps_extension_data_flag can have any value. The presence and value of aps_extension_data_flag may not affect the decoder compatibility to the profile explicitly stated in this version of the standard. For example, a decoding device conforming to this version of the standard may ignore all syntax elements aps_extension_data_flag.
[0250] Furthermore, for example, the syntax element aps_params_type indicates the type of APS parameter included in the APS, as shown in Table 10 above.
[0251] Qp disclosed in Table 19 above C_data() is signaled as shown in the following table.
[0252]
Table 20
[0253] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization.
[0254] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between the Qpi_min_idx and the maximum qPi index used for Qp C derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0255] Also, for example, the syntax element Qp C The value obtained by adding 1 to _prec_minus1 indicates the number of bits used for the representation of the syntax lmcs_delta_abs_cw[i]. Qp C The value of _prec_minus1 can be in the range of 0 to BitDepthY - 2.
[0256] Also, for example, the syntax element Qp C _init_val indicates the Qp C value corresponding to qPi_min_idx.
[0257] Also, for example, the syntax element Qp C _qPi_delta_val[i] indicates the Qp C delta of the value for the i-th index.
[0258] Also, for example, the syntax element QpOffsetC represents the offset value used for the derivation of Qp C . For example, the variable Qp for qPi
[0259] Idx[qPi] is derived as follows. Here, the said qPi can be from 0 to qPiMaxIdx C . When -qPi < qPi_min_idx, Qp
[0260] Idx[qPi] is set to be the same as qPi C . When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp
[0261] Idx[qPi] is set to Qp C _qPi_delta_val[qPi] + Qp C Idx[qPi - 1] C . When -qPi > qPiMaxIdx, Qp
[0262] Idx[qPi] is set to qPi - QpOffset C . Then, the value of Qp C can be derived from Qp
[0263] Idx[qPi]. As in the foregoing embodiments, the chroma quantization parameters, namely, Qp‘Cb, Qp‘Cr, and Qp‘CbCr can be derived using user - defined information that is signaled or using default values shown in a default table such as Table 7 above C . For example, when the process of deriving quantization parameters according to this embodiment is described in a standard format, it is as shown in the following table C .
[0264] . [Table 21 - 1]
[0265]
[0266]
Table 21 - 1
[0267] [Table 21-2]
[0268] [Table 21-3]
[0269] [Table 21-4]
[0270] [Table 21-5]
[0271] Referring to Table 21 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This is derived based on user-defined information that is signaled as proposed in this embodiment, where ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It is derived by the default table based on the same index qPi.
[0272] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0273] For example, this embodiment proposes a syntax element that can be used to control the derivation of quantization parameters by indicating a user-defined mode or a default mode in the SPS flag. Specifically, this embodiment proposes a method for signaling a syntax element with the following syntax structure. On the other hand, the structure of the syntax element is an example, and the structure is not limited to the structures shown in the table below.
[0274] [Table 22]
[0275] For example, the syntax element qPi_min_idx indicates the smallest qPi index used for chromatic quantization.
[0276] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used in the derivation can be derived as shown in equation 4 above.
[0277] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index. C This shows the delta of the value.
[0278] Also, for example, syntax element QpOffset C Qp C The offset value used in the derivation is shown.
[0279] As in the embodiments described above, the chromatic quantization parameters, namely Qp'Cb, Qp'Cr, and Qp'CbCr, can be derived using signaled user-defined information or using default values shown in a default table such as Table 7 above.
[0280] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0281] [Table 23-1]
[0282] [Table 23-2]
[0283] [Table 23-3]
[0284] [Table 23-4]
[0285] [Table 23-5]
[0286] Referring to Table 23 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCrcan be derived based on user-defined information signaled as proposed in this embodiment. For example, when ChromaArrayType is 1 and Qp C _data_default_flag indicates negative (FALSE) (i.e., for example, when Qp C _data_default_flag is 0), the variables qP Cb , qP Cr and qP CbCr can be derived to be the same as the value of Qp Cb , qP Cr and qP CbCr respectively, based on the same index qPi C .
[0287] For example, the variable Qp C Idx[i] is derived as follows.
[0288] - If i < qPi_min_idx, Qp C Idx[qPi] is set to be the same as qPi.
[0289] - If i = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[i] is set to Qp C _qPi_delta_val[i] + Qp C Idx[i - 1].[[]END]
[0290] - If i > qPiMaxIdx, Qp C Idx[i] is set to qPi - QpOffset C .
[0291] Then, the said Qp C can be set to the said Qp C Idx[i].[[]END]
[0292] Also, referring to Table 23, when ChromaArrayType is 1 and Qp CIf _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It is derived by the default table based on the same index qPi.
[0293] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0294] For example, in this embodiment, chromatic quantization (Qp) is performed in APS (Adaptation Parameter Set). C ) We propose syntax elements for derived parameters. For example, the APS ID can be signaled in the slice header. Also, for example, a flag in the PPS (picture parameter set) is proposed to indicate whether a default table is used or a table derived from the information signaled in the APS is used. Also, for example, if the default table is not used, Qp C Additional control measures are added to support access to APS containing data.
[0295] On the other hand, according to existing video / image standards, chroma QP is derived from luma QP and can be further updated by signaled chroma QP offsets. Existing chroma quantization parameter QpC tables may be default tables like Table 7 mentioned above.
[0296] In this embodiment, the chromatic quantization parameter Qp is used as a function of the index qPi. C We propose adding a function to signal Qp. C It is used to integrate value signaling schemes.
[0297] For example, the APS according to this embodiment is as shown in the following table.
[0298] [Table 24]
[0299] For example, the syntax element `adaptation_parameter_set_id` provides an identifier for an APS that is referenced by other syntax elements.
[0300] Furthermore, for example, the syntax element aps_params_type indicates the type of APS parameter included in the APS, as shown in Table 10 above.
[0301] Furthermore, for example, the syntax element aps_extension_flag indicates whether or not the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 indicates that the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure, while a syntax element aps_extension_flag with a value of 0 indicates that the aps_extension_data_flag syntax element does not exist in the APS RBSP syntax structure.
[0302] Furthermore, for example, the syntax element aps_extension_data_flag can have any value. The presence and value of aps_extension_data_flag may not affect the decoder compatibility to the profile explicitly stated in this version of the standard. For example, a decoding device conforming to this version of the standard may ignore all syntax elements aps_extension_data_flag.
[0303] Qp disclosed in Table 24 above C _data() is signaled as shown in the following table.
[0304] [Table 25]
[0305] For example, the syntax element qPi_min_idx indicates the smallest qPi index used for chromatic quantization. The value of qPi_min_idx can range from 0 to 63.
[0306] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. Also, for example, the value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used in the derivation is derived as shown in equation 4 above.
[0307] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index. C This indicates the difference between the values. This difference may also be called a delta.
[0308] Also, for example, the syntax element Qp C Offset C _present_flag indicates whether QpOffset C exists in the bitstream. For example, a Qp C Offset C _present_flag indicates that QpOffset C exists in the bitstream. Also, for example, a Qp C Offset C _present_flag indicates that QpOffset C does not exist in the bitstream. If the Qp C Offset C _present_flag does not exist, the Qp C Offset C _present_flag is considered to be 0.
[0309] Also, for example, the syntax element QpOffset C indicates an offset value used for the derivation of Qp C .
[0310] For example, the variable Qp for qPi C Idx[qPi] is derived as follows. Here, the qPi can be from 0 to 63.
[0311] - If -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0312] - If -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is set to Qp C _qPi_delta_val[qPi] + Qp C Idx[qPi - 1].
[0313] - If -qPi > qPiMaxIdx, Qp COffset C If _present_flag is 1, Qp C Idx[qPi] is qPi-QpOffset C Set to Qp C Offset C If _present_flag is not 1, that is, Qp C Offset C If _present_flag is 0, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0314] After that, Qp C The value of Qp C Idx[qPi] is derived from this.
[0315] Furthermore, this embodiment proposes a flag that is signaled by PPS as shown in the following table.
[0316] [Table 26]
[0317] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp = 0. C _data_default_flag indicates that a user-defined mode will be used to derive the quantization parameters. For example, Qp 1 C The _data_default_flag indicates that the default table mentioned above will be used to derive the quantization parameters. The default table is as shown in Table 7 above. Qp C If _data_default_flag does not exist, Qp C _data_default_flag is assumed to be 1.
[0318] Furthermore, this embodiment proposes syntax elements that are signaled by slice headers, as shown in the following table.
[0319] [Table 27]
[0320] For example, the syntax element slice_Qp C _aps_id is the Qp referenced by the slice. C This indicates the adaptation_parameter_set_id of APS. C Qp with an adaptation_parameter_set_id like _aps_id C The TemporalId of an APS NAL unit is less than or equal to the TemporalId of a coded slice NAL unit. Multiple Qp units with identical adaptation_parameter_set_id values. C If an APS is referenced by two or more slices of the same picture, multiple QPs with the same adaptation_parameter_set_id value will be used. C APS can have the same content.
[0321] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0322] [Table 28-1]
[0323] [Table 28-2]
[0324] [Table 28-3]
[0325] [Table 28-4]
[0326] Referring to Table 28 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This is derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0327] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0328] For example, in this embodiment, it is proposed to signal the user-defined induction of chromatic quantization in SPS as follows. For example, in this embodiment, the user-defined chromatic quantization (Qp C We propose that, for example, the SPS flag can indicate whether to use a default table for chroma quantization derivation or to derive the contents of the table for chroma quantization derivation from the information signaled in the SPS.
[0329] For example, this embodiment proposes a scheme for performing chroma quantization as a function of index qPi using the syntax elements shown in the following table.
[0330]
Table 29
[0331] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 0 to 63.
[0332] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between Qpi_min_idx and the maximum qPi index used for chroma Qp C derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0333] Also, for example, the syntax element Qp C _qPi_delta_val[i] indicates the delta of the Qp value for the i-th index. C
[0334] For example, the variable Qp C Idx[qPi] is derived as follows.
[0335] - When -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0336] - When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C_qPi_delta_val[qPi]+Qp C It is set to Idx[qPi-1].
[0337] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0338] Subsequently, the aforementioned Qp C Qp C It will be set to Idx[qPi].
[0339] Furthermore, the SPS flags indicating whether a default table is used for chroma quantization derivation as proposed in this embodiment, or whether signaled information is used for chroma quantization derivation, are as shown in the following table.
[0340] [Table 30]
[0341] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode will be used for quantization parameter derivation. For example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0342] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0343] [Table 31-1]
[0344] [Table 31-2]
[0345] [Table 31-3]
[0346] [Table 31-4]
[0347] [Table 31-5]
[0348] Referring to Table 31 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCrIt can be derived from the default table based on the same index qPi.
[0349] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0350] For example, in this embodiment, the chromatic quantization parameter Qp is a function of the index qPi. C We propose adding a function to signal for this. For example, we propose a way to signal syntax elements for a user-defined table used to derive quantization parameters in PPS, thereby providing each picture referencing PPS with the flexibility to switch between the user-defined table and the default table.
[0351] The syntax elements for the user-defined table signaled in the PPS proposed in this embodiment are as shown in the following table.
[0352] [Table 32]
[0353] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 0 to 63.
[0354] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp CThe maximum index qPiMaxIdx used for derivation can be derived as in the above-mentioned Equation 4.
[0355] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the Qp value for the i-th index. C Indicates the delta.
[0356] For example, the variable Qp C Idx[qPi] can be derived as follows.
[0357] When -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0358] When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C Idx[qPi - 1] is set.
[0359] When -qPi > qPiMaxIdx, Qp C Idx[qPi] is set to qPi - (qPiMaxIdx - Qp C Idx[qPiMaxIdx]).
[0360] After that, the said Qp C is set to the said Qp C Idx[qPi].
[0361] Also, the SPS flag indicating whether to use the default table for the chroma quantization derivation proposed in this embodiment or the information signaled for the chroma quantization derivation is as shown in the following table.
[0362]
Table 33
[0363] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0364] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0365] [Table 34-1]
[0366] [Table 34-2]
[0367] [Table 34-3]
[0368] [Table 34-4]
[0369] [Table 34-5]
[0370] Referring to Table 34 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It can be derived from the default table based on the same index qPi.
[0371] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0372] For example, in this embodiment, the chromatic quantization parameter Qp C We propose a general mode for deriving and signaling.
[0373] Chroma quantization parameter data, Qp for the chromata quantization parameters proposed in this embodiment C_data() is signaled as shown in the following table.
[0374]
Table 35
[0375] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 0 to 63.
[0376] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between Qpi_min_idx and the maximum qPi index used for Qp C derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0377] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the Qp C value for the i-th index.
[0378] For example, the variable Qp C Idx[qPi] can be derived as follows.
[0379] - If -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0380] - If -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C Idx[qPi - 1] is set.
[0381] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0382] Subsequently, the aforementioned Qp C Qp C It will be set to Idx[qPi].
[0383] Furthermore, this embodiment proposes a method for signaling a flag indicating whether a default table is used for chromatic quantization derivation or whether signaled information is used for chromatic quantization derivation. The flag can be signaled via high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flags signaled via high-level syntax are shown in the following table.
[0384] [Table 36]
[0385] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C_data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0386] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0387] [Table 37-1]
[0388] [Table 37-2]
[0389] [Table 37-3]
[0390] [Table 37-4]
[0391] [Table 37-5]
[0392] Referring to Table 37 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qPCr and qP CbCr This is derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0393] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0394] For example, in this embodiment, the chromatic quantization parameter Qp is used without offset. C We propose a method for deriving the table. This embodiment can be used with APS, or it may be proposed to be used independently. For example, the syntax structure of APS integrated with chroma quantized data is as shown in the following table.
[0395] [Table 38]
[0396] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 0 to 63.
[0397] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp CIndicates the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used in the derivation can be derived as shown in Equation 4 above.
[0398] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the difference in the Qp value for the i-th index. The said difference may be referred to as delta. C Indicates the difference. The said difference may be called delta.
[0399] For example, the variable Qp C Idx[qPi] is derived as follows. Here, the qPi can be from 0 to 63.
[0400] - When -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0401] - When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C Idx[qPi - 1].
[0402] - When -qPi > qPiMaxIdx, Qp C Idx[qPi] is set to qPi - (qPiMaxIdx - Qp C Idx[qPiMaxIdx]).
[0403] After that, the said Qp C is set to the said Qp C Idx[qPi].
[0404] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0405] For example, this embodiment uses continuous Qp C As an example, we present a solution in which the delta (or difference) between values is restricted to 1.
[0406] For example, this embodiment applies user-defined chroma quantization (Qp) to existing image / video standards. C We propose a method for adding ). For example, the SPS (sequence parameter set) flag proposed in this embodiment indicates whether to use an existing default table for chroma quantization parameter derivation or to derive the contents of the table based on information signaled in the SPS. According to this embodiment, a method suitable for images that accept user-defined chroma quantization and are coded can be selected, thereby improving coding efficiency.
[0407] For example, this embodiment uses the syntax elements shown in the following table to perform chroma quantization Qp as a function of index qPi. C I propose adding a function to signal this.
[0408] [Table 39]
[0409] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 1 to 63.
[0410] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp CIndicates the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 1 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as in the above-mentioned Equation 4.
[0411] Also, for example, the syntax element Qp C _qPi_flag[i] indicates whether the Qp C value increases by 1. That is, for example, the syntax element Qp C _qPi_flag[i] can indicate whether the value of the i-th Qp C is 1 greater than the value of the (i - 1)-th Qp C value. For example, a Qp C _qPi_flag[i] of 1 indicates that the Qp C value increases by 1, and a Qp C _qPi_flag[i] of 0 indicates that the Qp C value has not increased.
[0412] For example, the variable Qp C Idx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0413] - When qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0414] - When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is set to Qp C _qPi_flag[qPi] + Qp C Idx[qPi - 1].
[0415] - When -qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - QpC It is set to Idx[qPiMaxIdx]).
[0416] Subsequently, the aforementioned Qp C Qp C It will be set to Idx[qPi].
[0417] Furthermore, this embodiment proposes a method for signaling a flag indicating whether a default table is used for chromatic quantization derivation or whether signaled information is used for chromatic quantization derivation. The flag can be signaled via high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flags signaled via high-level syntax are as shown in the following table.
[0418] [Table 40]
[0419] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() can be signaled. Also, for example, Qp 1 CThe _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0420] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0421] [Table 41-1]
[0422] [Table 41-2]
[0423] [Table 41-3]
[0424] [Table 41-4]
[0425] [Table 41-5]
[0426] Referring to Table 41 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C (If _data_default_flag is 0), qP Cb , variable qP Cr and qP CbCrThis can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It can be derived from the default table based on the same index qPi.
[0427] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0428] For example, this embodiment proposes an example of a data signaling structure for chroma QP derivation. Specifically, this embodiment proposes a method for adding a new syntax element, chroma_qp_mapping_flag, to SPS. For example, if the value of chroma_qp_mapping_flag is 0, a default chroma QP mapping table can be used for deriving chroma quantization parameters. Alternatively, for example, if the value of chroma_qp_mapping_flag is 1, the syntax elements used to derive the chroma QP mapping table can be signaled as shown in the following table.
[0429] [Table 42]
[0430] For example, syntax element Qp C_data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag indicates that the chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 42 above will be used for deriving the chroma quantization parameters. C If _data_default_flag is 0, the chromatic quantization parameter data shown in Table 42 above can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0431] Furthermore, for example, adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the number of points for which the mapping function does not increase.
[0432] For example, the syntax element qPi_min_idx_minus1 represents the first element of the set of points where the mapping function does not increase.
[0433] Also, for example, syntax element Qp C _qPi_flag[i] represents the delta value between the i-th and (i-1)th elements of the set of points where the mapping function does not increase.
[0434] Based on the chromatic quantization parameter data shown in Table 42, the chromatic QP mapping table can be derived as follows.
[0435] For example, the variable cQpFlatSize can be derived using the following formula.
[0436]
number
[0437] Furthermore, for example, the variable cQpFlat[] can be derived as shown in the following table.
[0438] [Table 43]
[0439] Subsequently, based on the variables cQpFlatSize and cQpFlat[], a chroma QP mapping table can be derived as shown in the following table.
[0440] [Table 44]
[0441] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0442] For example, this embodiment proposes adding a new syntax element, chroma_qp_mapping_flag, to SPS. For example, if the value of chroma_qp_mapping_flag is 0, the default chroma QP mapping table is used to derive the chroma quantization parameters. Also, for example, if the value of chroma_qp_mapping_flag is 1, the syntax elements used to derive the chroma QP mapping table are signaled as shown in the following table.
[0443] [Table 45]
[0444] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag indicates that the chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 42 above will be used for deriving the chroma quantization parameters. C If _data_default_flag is 0, the chromatic quantization parameter data shown in Table 42 above will be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used for deriving the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0445] Furthermore, for example, adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the number of points for which the mapping function does not increase.
[0446] For example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the first element of the set of points where the mapping function does not increase.
[0447] Also, for example, syntax element Qp C The value obtained by adding 1 to _qPi_idx_minus1[i] represents the delta value between the i-th element and the (i-1)-th element of the set of points where the mapping function does not increase.
[0448] Based on the chromatic quantization parameter data shown in Table 45, the chromatic QP mapping table can be derived as follows.
[0449] For example, the variable cQpFlatSize can be derived as shown in equation 5 above.
[0450] Furthermore, for example, the variable cQpFlat[] can be derived as shown in the following table.
[0451] [Table 46]
[0452] Subsequently, a chroma QP mapping table can be derived based on the variables cQpFlatSize and cQpFlat[]. For example, the chroma QP mapping table is derived as shown in Table 44 above.
[0453] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0454] For example, this embodiment proposes a method for signaling individual tables for each chroma component. That is, for example, this embodiment proposes a method for signaling syntax elements used to derive chroma QP mapping tables for each chroma component.
[0455] For example, a chroma QP mapping table can be derived for each chroma component, and the syntax elements for each chroma component can be signaled as shown in the following table.
[0456] [Table 47]
[0457] For example, the syntax element qp_luma_to_chroma_joint_map_flag indicates whether a common luma-chroma quantization parameter mapping table is used for the chroma components Cb, Cr, and CbCr. That is, for example, the syntax element qp_luma_to_chroma_joint_map_flag indicates whether a single luma-chroma quantization parameter mapping table is applied to the Cb residual, Cr residual, and CbCr residual. For example, if the value of qp_luma_to_chroma_joint_map_flag is 1, a common luma-chroma quantization parameter mapping table is used for the chroma components Cb, Cr, and CbCr, and if the value of qp_luma_to_chroma_joint_map_flag is 0, a separate luma-chroma quantization parameter mapping table is used for each of the chroma components Cb, Cr, and CbCr.
[0458] Furthermore, for example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx_minus1 can range from 1 to 63.
[0459] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 is Qpi_min_idx and chroma Qp CIndicates the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the value of qPi_delta_max_idx_minus1 can be in the range of 1 to 63. Qp C The maximum index qPiMaxIdx used for derivation is derived as follows in the following formula.
[0460] [Number]
[0461] Also, for example, the syntax element Qp C _qPi_flag[j] indicates whether the Qp C value increases by 1. That is, for example, the syntax element Qp C _qPi_flag[i][j] indicates whether the j-th Qp C value of the i-th chroma component increases by 1 compared to the (j - 1)-th Qp C value. For example, QpC_qPi_flag[j] of 1 indicates that the Qp C value increases by 1, and QpC_qPi_flag[j] of 0 indicates that the Qp C value does not increase.
[0462] For example, the variable Qp C Idx[i][qPi] can be derived as follows. Here, the qPi can be from 0 to maxQp.
[0463] When -qPi < qPi_min_idx_minus1 + 1, Qp C Idx[qPi] is set to be the same as qPi.
[0464] When -qPi = qPi_min_idx_minus1 + 1 ··· qPiMaxIdx, Qp C Idx[qPi] is set to QpC_qPi_flag[qPi] + Qp C Idx[qPi - 1].
[0465] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0466] Subsequently, the aforementioned Qp C The value of Qp C Idx[i][qPi] can be derived from this.
[0467] On the other hand, according to this embodiment, a flag can be signaled to indicate whether the syntax elements used to derive the chroma QP mapping table in SPS are signaled or whether a default table is used. For example, the flag is signaled as shown in the following table.
[0468] [Table 48]
[0469] Syntax Element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag indicates that the chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 47 above will be used for deriving the chroma quantization parameters. C If _data_default_flag is 0, the chromatic quantization parameter data shown in Table 47 above will be signaled. Also, for example, Qp 1 CThe _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0470] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0471] [Table 49-1]
[0472] [Table 49-2]
[0473] [Table 49-3]
[0474] [Table 49-4]
[0475] [Table 49-5]
[0476] Referring to Table 49 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCrThis is derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It is derived by the default table based on the same index qPi.
[0477] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a method for signaling the maximum difference between the starting point and the ending point by signaling the ending point with a delta relative to the maximum QP. That is, for example, according to this embodiment, a syntax element is signaled that indicates the delta value between maxQp used in chroma QpC derivation and the maximum qPi index.
[0478] Chroma quantization parameter data, Qp for the chromata quantization parameters proposed in this embodiment C _data() is signaled as shown in the following table.
[0479] [Table 50]
[0480] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 0 to 63.
[0481] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between the maximum qPi index used for deriving maxQp and the chroma Qp. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 1 to 63. For example, Qp C derivation. The value of qPiMaxIdx, the maximum index used for derivation, can be derived as follows in the following formula. C The maximum index qPiMaxIdx used for derivation can be derived as follows.
[0482]
Equation
[0483] Also, for example, the syntax element Qp C _qPi_flag[i] indicates whether the Qp C value increases by 1. That is, for example, the syntax element Qp C _qPi_flag[i] indicates whether the i-th Qp C value is 1 greater than the (i - 1)-th Qp C value. For example, a Qp C _qPi_flag[i] of 1 indicates that the Qp C value increases by 1, and a Qp C _qPi_flag[i] of 0 indicates that the Qp C value has not increased.
[0484] For example, the variable Qp C Idx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0485] When -qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0486] When -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is QpC_qPi_flag[qPi] + QpC It is set to Idx[qPi-1].
[0487] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0488] Subsequently, the aforementioned Qp C Qp C It will be set to Idx[qPi].
[0489] Furthermore, this embodiment proposes a method for signaling a flag indicating whether a default table is used for chromatic quantization derivation or whether signaled information is used for chromatic quantization derivation. The flag can be signaled via high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flags signaled via high-level syntax are as shown in the following table.
[0490] [Table 51]
[0491] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data QpC _data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0492] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0493] [Table 52-1]
[0494] [Table 52-2]
[0495] [Table 52-3]
[0496] [Table 52-4]
[0497] [Table 52-5]
[0498] Referring to Table 52 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qPCb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0499] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes signaling the maximum difference between a starting point and an ending point by signaling the ending point with a delta relative to the maximum QP, or by the difference between the starting point and the starting point plus a delta.
[0500] Chroma quantization parameter data, Qp for the chromata quantization parameters proposed in this embodiment C _data() is signaled as shown in the following table.
[0501] [Table 53]
[0502] For example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can be in the range of 1 to maxQp.
[0503] Furthermore, for example, the syntax element is_delta_maxQp indicates whether the maximum index qPiMaxIdx is derived from the maxQp value. For example, is_delta_maxQp of 1 indicates that qPiMaxIdx is derived from the maxQp value. Also, for example, is_delta_maxQp of 0 indicates that qPiMaxIdx is derived from the syntax element qPi_min_idx_minus1.
[0504] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 is equal to maxQp and chromaQp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the value of qPi_delta_max_idx_minus1 can range from 1 to 63. C The maximum index qPiMaxIdx used in the derivation can be derived as shown in the following table.
[0505] [Table 54]
[0506] Also, for example, syntax element Qp C _qPi_flag[i] is Qp C This indicates whether the value increases by 1 or not. That is, for example, syntax element Qp C _qPi_flag[i] is the i-th Qp C The value of the (i-1)th Qp C Indicates whether the value increases by 1 or not. For example, Qp of 1 C _qPi_flag[i] is Qp C This indicates that the value increases by 1, and Qp is 0. C _qPi_flag[i] is Qp C This indicates that the value has not increased.
[0507] For example, the variable Qp CIdx[qPi] is derived as follows. Here, the qPi can be from 0 to maxQp.
[0508] - When -qPi < qPi_min_idx_minus1 + 1, Qp C Idx[qPi] is set to be the same as qPi.
[0509] - When -qPi = qPi_min_idx_minus1 ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_flag[qPi] + Qp C set to Idx[qPi - 1].
[0510] - When -qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C set to Idx[qPiMaxIdx]).
[0511] After that, the Qp C is set to the Qp C Idx[qPi].
[0512] Also, this embodiment proposes a scheme for signaling a flag indicating whether to use a default table for chroma quantization derivation or whether information signaled for chroma quantization derivation is used. The flag can be signaled via a high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flag signaled via the high-level syntax is as shown in the following table.
[0513]
Table 55
[0514] For example, the syntax element Qp C_data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() is signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0515] For example, the process for deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0516] [Table 56-1]
[0517] [Table 56-2]
[0518] [Table 56-3]
[0519] [Table 56-4]
[0520] [Table 56-5]
[0521] Referring to Table 56 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0522] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes signaling the maximum difference between a starting point and an ending point by signaling the ending point with a delta relative to the maximum QP, or by the difference between the starting point and the starting point plus a delta.
[0523] Chroma quantization parameter data, Qp for the chromata quantization parameters proposed in this embodiment C _data() is signaled as shown in the following table.
[0524] [Table 57]
[0525] For example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can be in the range of 1 to maxQp.
[0526] Furthermore, for example, the syntax element is_delta_maxQp indicates whether the maximum index qPiMaxIdx is derived from the maxQp value. For example, is_delta_maxQp of 1 indicates that qPiMaxIdx is derived from the maxQp value. Also, for example, is_delta_maxQp of 0 indicates that qPiMaxIdx is derived from the syntax element qPi_min_idx_minus1.
[0527] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 is equal to maxQp and chromaQp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the value of qPi_delta_max_idx_minus1 can range from 1 to 63. C The maximum index qPiMaxIdx used in the derivation can be derived as shown in Table 54 above.
[0528] Also, for example, syntax element Qp C _qPi_flag[i] is Qp C This indicates whether the value increases by 1 or not. That is, for example, syntax element Qp C _qPi_flag[i] is the i-th Qp C The value of the (i-1)th Qp CIndicates whether it increases by 1 from the value. For example, QpC_qPi_flag[i] of 1 indicates that Qp C increases by 1, and QpC_qPi_flag[i] of 0 indicates that Qp C does not increase in value.
[0529] For example, the variable Qp C Idx[qPi] is derived as follows. Here, the qPi can be from 0 to maxQp.
[0530] When -qPi < qPi_min_idx_minus1 + 1, Qp C Idx[qPi] is set to be the same as qPi.
[0531] When -qPi = qPi_min_idx_minus1 ··· qPiMaxIdx, Qp C Idx[qPi] is QpC_qPi_flag[qPi] + Qp C set to Idx[qPi - 1].
[0532] When -qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C Idx[qPiMaxIdx]).
[0533] After that, the Qp C can be set to the Qp C Idx[qPi].
[0534] In addition, this embodiment proposes a scheme for signaling a flag indicating whether to use a default table for chroma quantization derivation or information signaled for chroma quantization derivation. The flag is signaled via a high level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flag signaled via the high level syntax is as shown in the following table.
[0535] [Table 58]
[0536] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() is signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0537] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0538] [Table 59-1]
[0539] [Table 59-2]
[0540] [Table 59-3]
[0541] [Table 59-4]
[0542] [Table 59-5]
[0543] Referring to Table 59 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This is derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0544] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a method for signaling an index to the chroma QP mapping table using minus1 nomenclature instead of actual values.
[0545] Chroma quantization parameter data, Qp for the chromata quantization parameters proposed in this embodiment C _data() is signaled as shown in the following table.
[0546] [Table 60]
[0547] For example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 1 to 63.
[0548] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 is qPi_min_idx and chroma Qp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 1 to 63. For example, Qp C The maximum index qPiMaxIdx used in the derivation can be derived as follows:
[0549]
number
[0550] Also, for example, syntax element Qp C _qPi_flag[i] is Qp C This indicates whether the value increases by 1 or not. That is, for example, syntax element Qp C _qPi_flag[i] is the i-th Qp C The value of the (i-1)th Qp C Indicates whether the value increases by 1 or not. For example, Qp of 1 C _qPi_flag[i] is Qp CIndicates that the value increases by 1, and Qp of 0 C _qPi_flag[i] is Qp C Indicates that the value has not increased.
[0551] For example, the variable Qp C Idx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0552] When -qPi < qPi_min_idx_minus1 + 1, Qp C Idx[qPi] is set to be the same as qPi.
[0553] When -qPi = qPi_min_idx_minus1 + 1 ··· qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_flag[qPi] + Qp C Is set to Idx[qPi - 1].
[0554] When -qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C Is set to Idx[qPiMaxIdx]).
[0555] After that, the QpC can be set to the Qp C Idx[qPi].
[0556] Also, this embodiment proposes a scheme for signaling a flag indicating whether to use a default table for chroma quantization derivation or information signaled for chroma quantization derivation. The flag can be signaled via a high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flag signaled via the high-level syntax is as follows in the following table.
[0557] [Table 61]
[0558] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp mentioned above. C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used for deriving the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0559] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0560] [Table 62-1]
[0561] [Table 62-2]
[0562] [Table 62-3]
[0563] [Table 62-4]
[0564] [Table 62-5]
[0565] Referring to Table 62 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It can be derived from the default table based on the same index qPi.
[0566] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a scheme in which a separate chromatic quantization table is used for each chromatic component.
[0567] The chromatic quantization parameter data for the chromatic quantization parameters proposed in this embodiment can be signaled as shown in the following table.
[0568] [Table 63]
[0569] For example, syntax element Qp C _data_default_flag indicates whether the default chromatic quantization parameter table is used. For example, Qp 1 C The _data_default_flag indicates that a default chromatic quantization parameter table is used to derive the chromatic quantization parameters. The default table is as shown in Table 7 above. Also, for example, Qp is 0. C The _data_default_flag indicates that the default chromatic quantization parameter table is not used for deriving chromatic quantization parameters. That is, for example, Qp is 0. C The _data_default_flag indicates that a chromatic quantization parameter table derived based on chromatic quantization parameter data signaled for the derivation of chromatic quantization parameters will be used.
[0570] Furthermore, for example, the syntax element sps_separate_qpc_table_flag specifies two separate Qp for Cb and Cr samples. C This indicates whether a table is used. For example, the syntax element sps_separate_qpc_table_flag can indicate whether separate luma-chromat quantization parameter mapping tables are used for Cb residuals and Cr residuals, respectively. For example, sps_separate_qpc_table_flag 1 indicates whether separate Qp tables are used for Cb samples and Cr samples, respectively. CA sps_separate_qpc_table_flag of 0 indicates that a table will be used, and one Qp for Cb and Cr samples. C This indicates that the table will be used.
[0571] On the other hand, for example, the variable Qp Cb [i] is the Qp used for Cb samples. C The table is shown. Also, for example, the variable Qp Cr [i] is the Qp used for Cr samples. C The table is shown. Also, for example, if the value of sps_separate_qpc_table_flag is 0, Qp Cr [i] is Qp Cb [i] may be identical to i, where i can range from 0 to 69.
[0572] Furthermore, for example, adding 1 to the syntax element qPi_cb_min_idx_minus1 indicates the minimum qPi index used for the Cb chroma component. The value of qPi_cb_min_idx_minus1 can range from 1 to 69.
[0573] Also, for example, the value obtained by adding 1 to the syntax element qPi_cb_delta_max_idx_minus1 is qPi_cb_min_idx_minus1 and Cb chroma Qp C This shows the delta value between the maximum qPi_cb_delta_idx_minus1 used in the derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_cb_delta_max_idx_minus1 can be in the range of 1 to 69. For example, Qp for the Cb component C The maximum index qPiMaxIdxcb used in the derivation can be derived as follows:
[0574]
number
[0575] Also, for example, syntax element Qp C _cb_qPi_flag[i] is the i-th Qp for the Cb component. C Value Qp Cb [i] and the (i-1)th Qp C Value Qp Cb This shows the delta values between [i-1]. Qp C The value of _cb_qPi_flag[i] can be in the range of 0 to 1.
[0576] For example, the variable Qp Cb [i] is derived as follows, where i can range from 0 to 69.
[0577] -i=0..qPiMaxIdxCb, then qP Cb [i] is set to be the same as i.
[0578] -i=qPi_cb_min_idx_minus1+1+1..qPiMaxIdxCb, Qp Cb [i] is Qp Cb [i-1]+Qp C This is set to _cb_qPi_flag[i].
[0579] -i=qPiMaxIdxCb+1...69, Qp Cb [i] is set to i-deltaEnd, and deltaEnd is qPiMaxIdxCb-qP Cb [qPiMaxIdxCb] can be derived.
[0580] Furthermore, for example, the syntax elements for the Cr component are qPi_cr_min_idx_minus1, qPiMaxIdxCr, and Qp C _cr_qPi_flag[i] has the same meaning as the syntax element for the Cb component.
[0581] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. For example, this embodiment proposes a method for signaling parameters for multiple chromatic QP tables. This embodiment can also be linked with at least one of the embodiments described above. That is, for example, the embodiments in this document can be applied in common.
[0582] Specifically, for example, this embodiment includes a user-defined chroma quantization parameter (Qp) in the VVC Specification Text. C We propose including the following. For example, according to this embodiment, the flag in SPS (sequence parameter set) indicates whether to use a default table for deriving chroma quantization parameters or to derive a chroma QP mapping table based on information signaled in SPS. This allows user-defined chroma quantization parameters to be used in image coding, taking into account the content characteristics of the image, thereby improving coding efficiency. Furthermore, this embodiment can provide flexibility by offering the option of using one user-defined table for chroma components and the option of using separate user-defined tables for Cb and Cr components.
[0583] For example, chromatic quantization parameter data Qp for the chromatic quantization parameters proposed in this embodiment. C _data() is signaled as shown in the following table.
[0584] [Table 64]
[0585] For example, adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 1 to 69.
[0586] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between the maximum qPi index used in the derivation of qPi_min_idx and the chroma Qp C The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 69. For example, Qp C The maximum index qPiMaxIdx used in the derivation can be derived as shown in Equation 4 above.
[0587] Also, for example, the syntax element Qp C _qPi_flag[i] can indicate whether the Qp C value increases by 1. That is, for example, the syntax element Qp C _qPi_flag[i] indicates whether the value of the i-th Qp C is 1 greater than the value of the (i - 1)-th Qp C value. For example, a Qp C _qPi_flag[i] of 1 indicates that the Qp C value increases by 1, and a Qp C _qPi_flag[i] of 0 indicates that the Qp C value has not increased.
[0588] For example, the variable Qp C Idx[qPi] can be derived as follows. Here, the qPi can be from 0 to 69.
[0589] - If qPi < qPi_min_Idx, Qp C Idx[qPi] is set to be the same as qPi.
[0590] - If -qPi = qPi_min_idx ··· qPiMaxIdx, Qp C Idx[qPi] is set to Qp C _qPi_flag[qPi] + Qp C Idx[qPi - 1].
[0591] -If qPi > qPiMaxIdx, then Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It is set to Idx[qPiMaxIdx]).
[0592] Subsequently, the aforementioned Qp C Qp C It will be set to Idx[qPi].
[0593] Furthermore, this embodiment proposes a method for signaling a flag indicating whether a default table is used for chroma quantization derivation or whether a chroma QP mapping table derived based on signaled information is used. The flag can be signaled via high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flags signaled via high-level syntax are as shown in the following table.
[0594] [Table 65]
[0595] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C _data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C_data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0596] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0597] [Table 66-1]
[0598] [Table 66-2]
[0599] [Table 66-3]
[0600] [Table 66-4]
[0601] [Table 66-5]
[0602] Referring to Table 66 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qPCr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr , qPi CbCr It can be derived from the default table based on the same index qPi.
[0603] Furthermore, for example, when a separate user-defined table is used for each of the chroma components proposed in this embodiment, the chroma quantization parameter data Qp C _data() can be signaled as shown in the following table.
[0604] [Table 67]
[0605] For example, the syntax element is_separate_chroma_table indicates whether separate chroma quantization table-related parameters are signaled for the Cb and Cr components. That is, for example, the syntax element is_separate_chroma_table can indicate whether two separate chroma quantization parameter mapping tables are used for the Cb and Cr components. For example, the syntax element is_separate_chroma_table can indicate whether separate chroma-chroma quantization parameter mapping tables are used for the Cb residual and the Cr residual, respectively. For example, an is_separate_chroma_table value of 1 indicates that separate chroma quantization parameter mapping tables are signaled for the Cb and Cr components, while an is_separate_chroma_table value of 0 indicates that one chroma quantization parameter mapping table is used for the Cb element, the Cr element, and the joint CbCr element. For example, if the value of is_separate_chroma_table is 1, then qPi_min_idx_minus1[i], qPi_delta_max_Idx[i], and Qp for the Cb component C _qPi_flag[i][j] and qPi_min_idx_minus1[i], qPi_delta_max_Idx[i] and Qp for the Cr component C _qPi_flag[i][j] can be signaled. Also, for example, if the value of is_separate_chroma_table is 0, qPi_min_idx_minus1[i], qPi_delta_max_Idx[i] and Qp for the Cb component, Cr component and joint CbCr component. C _qPi_flag[i][j] can be signaled.
[0606] Furthermore, for example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1[i] indicates the minimum qPi index used for chromatic quantization. The value of qPi_min_idx can range from 1 to 69. The variable qPi_min_Idx[i] is set to the same value as qPi_min_idx_minus1[i] plus 1.
[0607] Also, for example, the syntax element qPi_delta_max_idx is qPi_min_Idx[i] and chroma Qp C This shows the delta value between the maximum qPi indices used in the derivation. The value of qPiMaxIdx[i] is greater than or equal to qPi_min_Idx[i]. The value of qPi_delta_max_idx can be in the range of 0 to 69. For example, Qp C The maximum index qPiMaxIdx[i] used in the derivation can be derived as follows:
[0608]
number
[0609] The value of qPiMaxIdx[i] is greater than or equal to qPi_min_idx_minus1[i].
[0610] Also, for example, syntax element Qp C _qPi_flag[i][j] is the j-th Qp of the i-th chroma component. C This indicates whether the value increases by 1 or not. That is, for example, syntax element Qp C _qPi_flag[i][j] is the j-th Qp of the i-th chroma component. C The value of the (j-1)th Qp C Indicates whether the value increases by 1 or not. For example, QpC_qPi_flag[j] of 1 is the j-th Qp of the i-th chromatic component. C This indicates that the value increases by 1, and QpC_qPi_flag[j] of 0 is the j-th Qp of the i-th chromatic component. CIndicates that the value does not increase.
[0611] For example, the variable Qp C Idx[i][qPi] can be derived as shown in the following table. Here, the qPi can be from 0 to 69.
[0612]
Table 68
[0613] Referring to Table 68, when the value of is_separate_chroma_table is 1, the 0th (i = 0) chroma quantization parameter data and the 1st (i = 1) chroma quantization parameter data can be signaled. Here, for example, the 0th (i = 0) chroma quantization parameter data is the chroma quantization parameter data for deriving the chroma quantization parameter mapping table for the Cb component, and the 1st (i = 0) chroma quantization parameter data can be the chroma quantization parameter data for deriving the chroma quantization parameter mapping table for the Cr component.
[0614] Also, referring to Table 68, when the value of is_separate_chroma_table is 0, only the 0th (i = 0) chroma quantization parameter data can be signaled. Here, for example, the 0th (i = 0) chroma quantization parameter data can be the chroma quantization parameter data for deriving the chroma quantization parameter mapping tables for the Cb component, the Cr component, and the joint CbCr component. That is, one chroma quantization parameter mapping table is used for the chroma components.
[0615] Also, referring to Table 68, Qp C Idx[i][qPi] is derived as follows.
[0616] When -qPi < qPi_min_Idx[i], Qp CIdx[i][qPi] is set to be the same as qPi.
[0617] If -qPi=qPi_min_Idx[i]···qPiMaxIdx[i], then Qp C Idx[qPi] is Qp C _qPi_flag[i][qPi]+Qp C It is set to Idx[i][qPi-1].
[0618] -If qPi > qPiMaxIdx, then Qp C Idx[i][qPi] is qPi-(qPiMaxIdx[i]-Qp C It is set to Idx[i][qPiMaxIdx]).
[0619] Subsequently, the aforementioned Qp C The value of Qp C Idx[i][qPi] can be derived from this.
[0620] Furthermore, this embodiment proposes a method for signaling a flag indicating whether a default table is used for chromatic quantization derivation or whether signaled information is used for chromatic quantization derivation. The flag can be signaled via high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flags signaled via high-level syntax are as shown in the following table.
[0621] [Table 69]
[0622] For example, syntax element Qp C _data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, Qp is 0. C_data_default_flag indicates that a user-defined mode is used for quantization parameter derivation, i.e., Qp is 0. C _data_default_flag is the chromatic quantization parameter data Qp C This indicates that _data() will be used. C If _data_default_flag is 0, the chromatic quantization parameter data Qp C _data() can be signaled. Also, for example, Qp 1 C The _data_default_flag indicates that a default table is used for deriving the quantization parameters. The default table is as shown in Table 7 above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag is assumed to be 1.
[0623] For example, the process of deriving the quantization parameters according to this embodiment can be described in standard form as shown in the following table.
[0624] [Table 70-1]
[0625] [Table 70-2]
[0626] [Table 70-3]
[0627] [Table 70-4]
[0628] [Table 70-5]
[0629] Referring to Table 70 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., Qp C If _data_default_flag is 0, then the variable qP Cb , qP Cr and qP CbCr This can be derived based on user-defined information that is signaled as proposed in this embodiment. Also, for example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., Qp C If _data_default_flag is 1, then the variable qP Cb , qP Cr and qP CbCr These are qPi Cb , qPi Cr and qPi CbCr It can be derived from the default table based on the same index qPi.
[0630] Figure 10 schematically shows an image encoding method using an encoding device based on this document. The method disclosed in Figure 10 is performed by the encoding device disclosed in Figure 2. Specifically, for example, steps S1000 to S1010 in Figure 10 are performed by the entropy encoding unit of the encoding device. Although not shown, the process of deriving predicted samples for the chroma components is performed by the prediction unit of the encoding device, and the process of generating restored samples and restored pictures based on the residual samples and predicted samples for the chroma components is performed by the addition unit of the encoding device.
[0631] The encoding device encodes the image information (S1000).
[0632] The encoding device can encode the image information. For example, the image information may include prediction information for the chroma component, residual information for the chroma component, chroma quantization parameter data for the chroma component, and / or a flag indicating whether a chroma quantization parameter table is applied to the chroma component. The chroma component may include a Cb component, a Cr component, and / or a joint CbCr component.
[0633] For example, the encoding device derives predicted samples for the chroma component based on the prediction mode. That is, for example, the encoding device derives predicted samples for the current block for the chroma component based on the prediction mode. In this case, various prediction methods disclosed in this document, such as interpretation or intrapretation, are applied.
[0634] For example, the encoding device can determine whether to perform interpretation or intrapretation on the current block for the chroma component, and can determine a specific interpretation mode or a specific intrapretation mode based on the RD cost. Based on the determined mode, the encoding device derives prediction samples for the current block.
[0635] Subsequently, for example, the encoding device can generate and encode prediction information for the current block. The prediction information includes prediction mode information indicating the prediction mode for the current block for the chroma component. The image information includes the prediction information.
[0636] Furthermore, for example, the encoding device can derive a residual sample for the chroma component based on the predicted sample. For example, the encoding device can derive the residual sample by subtracting the original sample and the predicted sample of the current block for the chroma component in the current picture.
[0637] Subsequently, for example, the encoding device encodes the residual information for the residual sample. For example, the encoding device can derive conversion coefficients based on the residual sample and generate the residual information based on the conversion coefficients. For example, the encoding device can quantize the residual sample based on chroma quantization parameters to derive a quantized residual sample, derive conversion coefficients based on the quantized residual sample, and generate and encode the residual information based on the conversion coefficients. Alternatively, for example, the encoding device can quantize the residual sample based on chroma quantization parameters to derive a quantized residual sample, convert the quantized residual sample to derive conversion coefficients, and generate and encode the residual information based on the conversion coefficients.
[0638] For example, the residual information currently includes syntax elements for the conversion coefficients of the chroma block. For example, the syntax elements include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder and / or coeff_sign_flag.
[0639] Furthermore, for example, the encoding device can generate and encode a flag indicating whether or not a chroma quantization parameter table is applied to the chroma component. The encoding device can determine whether or not a chroma quantization parameter table is applied to the chroma component, and can generate and encode the flag.
[0640] For example, the encoding device can generate and encode a flag indicating whether or not a chroma quantization parameter table is applied to the chroma component, based on the chroma type. Here, the chroma type can mean the ChromaArrayType described above. For example, if the value of the chroma type is not 0, the encoding device can generate a flag indicating whether or not a chroma quantization parameter table is applied to the chroma component. For example, if the value of the chroma type is 1, the encoding device can generate a flag indicating whether or not a chroma quantization parameter table is applied to the chroma component. Here, if the value of the chroma type is 0, the chroma type can be Monochrome format; if the value of the chroma type is 1, the chroma type can be 4:2:0 format; if the value of the chroma type is 2, the chroma type can be 4:2:2 format; and if the value of the chroma type is 3, the chroma type can be 4:4:4 format. For example, the syntax element for the aforementioned flag can be the qp_luma_to_chroma_joint_map_flag flag, sps_separate_qpc_table_flag, or is_separate_chroma_table flag mentioned above.
[0641] For example, if the value of the flag is 1, the flag can indicate that one chromatic quantization parameter table is applied to the chromatic component. Also, for example, if the value of the flag is 0, the flag can indicate that multiple chromatic quantization parameter tables are applied to the chromatic component. That is, for example, if the value of the flag is 0, the flag can indicate that a separate chromatic quantization parameter table is applied to each of the chromatic components.
[0642] Furthermore, for example, the flag can be signaled via high-level syntax. For example, the flag can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0643] Furthermore, for example, the encoding device can generate and encode chroma quantization parameter data for the chroma component based on the flag.
[0644] For example, if the value of the flag is 0 (i.e., if it is determined that multiple chromatic quantization parameter tables are applied to the chromatic component), the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component and a second chromatic quantization parameter data for the Cr component. Alternatively, for example, if the value of the flag is 0 (i.e., if it is determined that multiple chromatic quantization parameter tables are applied to the chromatic component), the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component, a second chromatic quantization parameter data for the Cr component, and / or a third chromatic quantization parameter data for the joint CbCr component.
[0645] On the other hand, for example, the encoding device can generate and encode a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. That is, for example, the encoding device can determine whether or not third chroma quantization parameter data exists for the joint CbCr component and generate and encode the joint CbCr availability flag. Also, for example, the encoding device can generate and encode a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component based on the chroma type. Here, the chroma type can mean the ChromaArrayType described above. For example, if the value of the chroma type is not 0, the encoding device can generate a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. For example, if the value of the chroma type is 1, the encoding device can generate a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. Furthermore, for example, the joint CbCr availability flag can be signaled via high-level syntax. For example, the joint CbCr availability flag can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0646] In this case, if the value of the flag is 0 (i.e., it is determined that multiple chromatic quantization parameter tables are applied to the chromatic component), and the value of the joint CbCr availability flag is 1 (i.e., it is determined that a third chromatic quantization parameter data exists for the joint CbCr component), the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component, a second chromatic quantization parameter data for the Cr component, and a third chromatic quantization parameter data for the joint CbCr component.
[0647] Furthermore, for example, the first chroma quantization parameter data may include a syntax element representing the starting index of the first chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the first chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the first chroma quantization parameter table. That is, for example, the first chroma quantization parameter data may include a syntax element representing the starting index of the first chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the first chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the first chroma quantization parameter table. The syntax element representing the starting index may be qPi_min_idx, qPi_min_idx_minus1[i], or qPi_cb_min_idx_minus1 as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx, qPi_cb_delta_max_idx_minus1, or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i], QpC_cb_qPi_flag[i], or QpC_qPi_flag[i][j] as described above. Additionally, for example, the first chroma quantization parameter data can be signaled via high-level syntax.For example, the first chromatic quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0648] Furthermore, for example, the second chroma quantization parameter data may include a syntax element representing the starting index of the second chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the second chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the second chroma quantization parameter table. That is, for example, the second chroma quantization parameter data may include a syntax element representing the starting index of the second chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the second chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the second chroma quantization parameter table. The syntax element representing the starting index can be qPi_min_idx, qPi_min_idx_minus1[i], or qPi_cr_min_idx_minus1 as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx, qPi_cr_delta_max_idx_minus1, or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i], QpC_cr_qPi_flag[i], or QpC_qPi_flag[i][j] as described above. Additionally, for example, the second chroma quantization parameter data can be signaled via high-level syntax.For example, the second chromatic quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0649] Furthermore, for example, the third chroma quantization parameter data may include a syntax element representing the starting index of the third chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the third chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the third chroma quantization parameter table. That is, for example, the third chroma quantization parameter data may include a syntax element representing the starting index of the third chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the third chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the third chroma quantization parameter table. The syntax element representing the starting index may be qPi_min_idx or qPi_min_idx_minus1[i] as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i] or QpC_qPi_flag[i][j] as described above. In addition, for example, the third chroma quantization parameter data can be signaled via high-level syntax. For example, the third chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0650] Furthermore, for example, if the value of the flag is 1 (i.e., if it is determined that one chromatic quantization parameter table is applied to the chromatic component), the chromatic quantization parameter data may include chromatic quantization parameter data for the Cb component, the Cr component, and the joint CbCr component.
[0651] The encoding device generates a bitstream containing the image information (S1010).
[0652] For example, the encoding device can output a bitstream containing image information including prediction information for a chroma component, residual information for the chroma component, chroma quantization parameter data for the chroma component, and / or a flag indicating whether a chroma quantization parameter table is applied to the chroma component. The bitstream may include prediction information, residual information, the quantization parameter data, and / or the flag. The image information may further include the joint CbCr enablement flag.
[0653] The encoding device encodes image information and outputs it in bitstream format.
[0654] On the other hand, the bitstream containing the image information can be transmitted to a decoding device via a network or a (digital) storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0655] Figure 11 schematically shows an encoding apparatus that performs the image encoding method according to this document. The method disclosed in Figure 10 is performed by the encoding apparatus disclosed in Figure 11. Specifically, for example, the entropy encoding unit of the encoding apparatus in Figure 11 can perform S1000 to S1010. Although not shown, the process of deriving a predicted sample for the chroma component is performed by the prediction unit of the encoding apparatus, and the process of generating a restored sample and a restored picture based on the residual sample and predicted sample for the chroma component is performed by the addition unit of the encoding apparatus.
[0656] Figure 12 schematically illustrates the image decoding method using the decoding device described in this document. The method disclosed in Figure 12 can be performed using the decoding device disclosed in Figure 3. Specifically, for example, S1200 in Figure 12 is performed by the entropy decoding unit of the decoding device, and S1210 in Figure 12 is performed by the residual processing unit of the decoding device.
[0657] The decoding device acquires image information (S1200). The decoding device can acquire image information via a bitstream.
[0658] For example, the image information may include information regarding chroma quantization parameters.
[0659] For example, a decoding device can obtain a flag indicating whether or not a chroma quantization parameter table is applied to the chroma component. That is, for example, the image information may include a flag indicating whether or not a chroma quantization parameter table is applied. For example, a decoding device can obtain a flag indicating whether or not a chroma quantization parameter table is applied based on the chroma type. Here, the chroma type can mean the ChromaArrayType described above. For example, if the value of the chroma type is not 0, the decoding device can obtain a flag indicating whether or not a chroma quantization parameter table is applied. For example, if the value of the chroma type is 1, the decoding device can obtain a flag indicating whether or not a chroma quantization parameter table is applied. Here, if the value of the chroma type is 0, the chroma type can be Monochrome format; if the value of the chroma type is 1, the chroma type can be 4:2:0 format; if the value of the chroma type is 2, the chroma type can be 4:2:2 format; and if the value of the chroma type is 3, the chroma type can be 4:4:4 format. Also, for example, the chroma components can include Cb components, Cr components, and / or joint CbCr components. For example, the syntax element for the flag can be the qp_luma_to_chroma_joint_map_flag flag, sps_separate_qpc_table_flag, or is_separate_chroma_table mentioned above.
[0660] For example, if the value of the flag is 1, the flag can indicate that one chromatic quantization parameter table is applied to the chromatic component. Also, for example, if the value of the flag is 0, the flag can indicate that multiple chromatic quantization parameter tables are applied to the chromatic component. That is, for example, if the value of the flag is 0, the flag can indicate that a separate chromatic quantization parameter table is applied to each of the chromatic components.
[0661] Furthermore, for example, the flag can be signaled via high-level syntax. For example, the flag can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0662] Furthermore, the decoding device can acquire chroma quantization parameter data based on the aforementioned flag. For example, image information may include the chroma quantization parameter data.
[0663] For example, if the value of the flag is 0 (i.e., the flag indicates that multiple chromatic quantization parameter tables are applied to the chromatic component), the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component and a second chromatic quantization parameter data for the Cr component. Alternatively, for example, if the value of the flag is 0 (i.e., the flag indicates that multiple chromatic quantization parameter tables are applied to the chromatic component), the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component, a second chromatic quantization parameter data for the Cr component, and / or a third chromatic quantization parameter data for the joint CbCr component.
[0664] On the other hand, for example, a decoding device can obtain a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. For example, the image information may include a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. Also, for example, a decoding device can obtain a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component based on the chroma type. Here, the chroma type can mean the ChromaArrayType described above. For example, if the value of the chroma type is not 0, the decoding device can obtain a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. For example, if the value of the chroma type is 1, the decoding device can obtain a joint CbCr availability flag indicating whether or not third chroma quantization parameter data exists for the joint CbCr component. Also, for example, the joint CbCr availability flag may be signaled via high-level syntax. For example, the joint CbCr availability flag can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0665] In this case, if the value of the flag is 0 (i.e., the flag indicates that multiple chromatic quantization parameter tables are applied to the chromatic component), and the value of the joint CbCr availability flag is 1 (i.e., the joint CbCr availability flag indicates that a third chromatic quantization parameter data exists for the joint CbCr component), then the chromatic quantization parameter data may include a first chromatic quantization parameter data for the Cb component, a second chromatic quantization parameter data for the Cr component, and a third chromatic quantization parameter data for the joint CbCr component.
[0666] Furthermore, for example, the first chroma quantization parameter data may include a syntax element representing the starting index of the first chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the first chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the first chroma quantization parameter table. That is, for example, the first chroma quantization parameter data may include a syntax element representing the starting index of the first chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the first chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the first chroma quantization parameter table. The syntax element representing the starting index may be qPi_min_idx, qPi_min_idx_minus1[i], or qPi_cb_min_idx_minus1 as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx, qPi_cb_delta_max_idx_minus1, or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i], QpC_cb_qPi_flag[i], or QpC_qPi_flag[i][j] as described above. Additionally, for example, the first chroma quantization parameter data can be signaled via high-level syntax.For example, the first chromatic quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0667] Furthermore, for example, the second chroma quantization parameter data may include a syntax element representing the starting index of the second chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the second chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the second chroma quantization parameter table. That is, for example, the second chroma quantization parameter data may include a syntax element representing the starting index of the second chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the second chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the second chroma quantization parameter table. The syntax element representing the starting index can be qPi_min_idx, qPi_min_idx_minus1[i], or qPi_cr_min_idx_minus1 as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx, qPi_cr_delta_max_idx_minus1, or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i], QpC_cr_qPi_flag[i], or QpC_qPi_flag[i][j] as described above. Additionally, for example, the second chroma quantization parameter data can be signaled via high-level syntax.For example, the second chromatic quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0668] Furthermore, for example, the third chroma quantization parameter data may include a syntax element representing the starting index of the third chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the third chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the third chroma quantization parameter table. That is, for example, the third chroma quantization parameter data may include a syntax element representing the starting index of the third chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the third chroma quantization parameter table, and / or a syntax element for the chroma quantization parameter value of each index of the third chroma quantization parameter table. The syntax element representing the starting index may be qPi_min_idx or qPi_min_idx_minus1[i] as described above. Furthermore, the syntax element representing the difference between the starting index and the last index can be qPi_delta_max_idx or qPi_delta_max_idx[i]. Also, the syntax element for the quantization parameter value of the index can be QpC_qPi_val[i] or QpC_qPi_flag[i][j] as described above. In addition, for example, the third chroma quantization parameter data can be signaled via high-level syntax. For example, the third chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set).
[0669] Furthermore, for example, if the value of the flag is 1 (i.e., the flag indicates that one chromatic quantization parameter table is applied to the chromatic component), the chromatic quantization parameter data may include chromatic quantization parameter data for the Cb component, the Cr component, and the joint CbCr component.
[0670] Furthermore, for example, the image information may include prediction information and / or residual information for the chroma component. For example, the image information may include prediction information for the chroma component, and the prediction information may include prediction mode information. The prediction mode information may indicate whether interpretation or intrapretation is applied to the current block for the chroma component. Furthermore, for example, the residual information may include syntax elements for the transformation coefficients of the current block for the chroma component. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0671] The decoding device generates a restored picture based on the image information (S1210).
[0672] For example, the decoding device can derive the chroma quantization parameter table based on the chroma quantization parameter data, derive chroma quantization parameters for the chroma components based on the chroma quantization parameter table, derive residual samples for the chroma components based on the chroma quantization parameters, and generate a reconstructed picture based on the residual samples.
[0673] Specifically, for example, a decoding device can derive the chroma quantization parameter table based on the chroma quantization parameter data. The chroma quantization parameter table may also be called a chroma quantization parameter mapping table or a user-defined quantization parameter mapping table.
[0674] For example, as described above, the chroma quantization parameter table can be derived based on a syntax element representing the starting index of the chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the chroma quantization parameter table, and / or a syntax element for the quantization parameter value of the index in the chroma quantization parameter table. That is, for example, a chroma quantization parameter table for chroma components can be derived based on the quantization parameter data.
[0675] For example, if the value of the flag is 0 (i.e., the flag indicates that multiple chromatic quantization parameter tables are applied to the chromatic component), the first chromatic quantization parameter table for the chromatic Cb component can be derived based on the first chromatic quantization parameter data for the Cb component. Also, for example, if the value of the flag is 0, the second chromatic quantization parameter table for the chromatic Cr component can be derived based on the second chromatic quantization parameter data for the Cr component. Also, for example, if the value of the flag is 0, the third chromatic quantization parameter table for the chromatic joint CbCr component can be derived based on the third chromatic quantization parameter data for the joint CbCr component.
[0676] Furthermore, for example, if the value of the flag is 1 (i.e., the flag indicates that one chromatic quantization parameter table is applied to the chromatic component), the first chromatic quantization parameter table for the chromatic component can be derived based on the chromatic quantization parameter data for the chromatic component. The chromatic component may include a Cb component, a Cr component, and a joint CbCr component.
[0677] Furthermore, for example, the decoding device can derive chromatic quantization parameters for the chromatic components based on the chromatic quantization parameter table.
[0678] For example, if the value of the flag is 0, a first chromatic quantization parameter for the Cb component can be derived based on the first chromatic quantization parameter table, and a second chromatic quantization parameter for the Cr component can be derived based on the second chromatic quantization parameter table. Also, for example, if the value of the flag is 0, a first chromatic quantization parameter for the Cb component can be derived based on the first chromatic quantization parameter table, a second chromatic quantization parameter for the Cr component can be derived based on the second chromatic quantization parameter table, and a third chromatic quantization parameter for the joint CbCr component can be derived based on the third chromatic quantization parameter table. Here, the quantization parameter for the Cb component is the QP' described above. Cb It can represent the quantization parameter for the Cr component, which is the QP' mentioned above. Cr This can represent the quantization parameter for the joint CbCr component, which is the QP' mentioned above. CbCr It can represent this.
[0679] For example, an index for a chromatic component (Cb component, Cr component, or joint CbCr component) can be derived based on the quantization parameters for the luma component, and a chromatic quantization parameter for the chromatic component can be derived based on the chromatic quantization parameter for the index in the chromatic quantization parameter table for the chromatic component. That is, for example, a chromatic quantization parameter for the chromatic component can be derived based on the chromatic quantization parameter for the same index as the quantization parameter for the luma component in the chromatic quantization parameter table.
[0680] Furthermore, for example, the chromatic quantization parameters (e.g., QP) for the index in the chromatic quantization parameter table for the chromatic components (Cb component, Cr component, or joint CbCr component) cb QP cr , or QP cbCr The offset is added to the chromatic quantization parameter (e.g., QP') for the chromatic component. Cb , QP' Cr , or QP' CbCr The following can be derived: The offset can be derived based on syntax elements that represent offsets for deriving quantization parameters for the chromatic components.
[0681] Alternatively, for example, if the value of the flag is 1, the chromatic quantization parameters for the chromatic component can be derived based on a chromatic quantization parameter table for the chromatic component. That is, for example, if the value of the flag is 1, the chromatic quantization parameters for the chromatic component can be derived based on a single chromatic quantization parameter table for the chromatic component. Therefore, the same chromatic quantization parameters can be applied to the chromatic components.
[0682] For example, indices for chromatic components (Cb component, Cr component, and joint CbCr component) can be derived based on quantization parameters for luma components, and chromatic quantization parameters for chromatic components can be derived based on chromatic quantization parameters for the same indices in the chromatic quantization parameter table for those chromatic components. That is, for example, chromatic quantization parameters for chromatic components can be derived based on chromatic quantization parameters for the same indices as the quantization parameters for luma components in the chromatic quantization parameter table.
[0683] Furthermore, for example, the chromatic quantization parameters for a chromatic component can be derived by adding an offset to the chromatic quantization parameters for the index in the chromatic quantization parameter table for the chromatic component. The offset can be derived based on a syntax element that represents an offset for deriving the quantization parameters for the chromatic component.
[0684] Subsequently, for example, the decoding device can derive a residual sample for the chromatic component based on the chromatic quantization parameters.
[0685] For example, a decoding device can derive conversion coefficients for the chroma component based on the received residual information. The image information includes the residual information. Alternatively, for example, a decoding device can derive conversion coefficients based on the received residual information and then inversely convert the conversion coefficients to derive the inversely converted conversion coefficients. The conversion coefficients include conversion coefficients for the Cb component, conversion coefficients for the Cr component, and / or conversion coefficients for the joint CbCr component.
[0686] Subsequently, the decoding device can derive a residual sample by inverse quantizing the conversion coefficients based on the chroma quantization parameters.
[0687] For example, if the value of the flag is 0, the decoding device can de-quantize the conversion coefficient for the Cb component based on a first chromatic quantization parameter for the Cb component to derive a resistive sample for the Cb component, and de-quantize the conversion coefficient for the Cr component based on a second chromatic quantization parameter for the Cr component to derive a resistive for the Cr component. Alternatively, for example, if the value of the flag is 0, the decoding device can de-quantize the conversion coefficient for the Cb component based on a first chromatic quantization parameter for the Cb component to derive a resistive sample for the Cb component, de-quantize the conversion coefficient for the Cr component based on a second chromatic quantization parameter for the Cr component to derive a resistive for the Cr component, and de-quantize the conversion coefficient for the joint CbCr component based on a third chromatic quantization parameter for the joint CbCr component to derive a resistive sample for the joint CbCr component. Alternatively, for example, if the value of the flag is 1, the decoding device can de-quantize the conversion coefficient for the chroma component based on the chroma quantization parameter to derive a residual sample for the chroma component.
[0688] Alternatively, if the value of the flag is 0, the decoding device can de-quantize the inversely transformed conversion coefficients for the Cb component based on a first chromatic quantization parameter for the Cb component to derive a resistive sample for the Cb component, and de-quantize the inversely transformed conversion coefficients for the Cr component based on a second chromatic quantization parameter for the Cr component to derive a resistive sample for the Cr component. Alternatively, for example, if the value of the flag is 0, the decoding device can de-quantize the inversely transformed conversion coefficients for the Cb component based on a first chromatic quantization parameter for the Cb component to derive a resistive sample for the Cb component, de-quantize the inversely transformed conversion coefficients for the Cr component based on a second chromatic quantization parameter for the Cr component to derive a resistive sample for the Cr component, and de-quantize the inversely transformed conversion coefficients for the joint CbCr component based on a third chromatic quantization parameter for the joint CbCr component to derive a resistive sample for the joint CbCr component. Alternatively, for example, if the value of the flag is 1, the decoding device can de-quantize the inversely transformed conversion coefficients for the chroma component based on the chroma quantization parameters to derive a residual sample for the chroma component.
[0689] Subsequently, for example, the decoding device can generate a restored picture based on the residual sample.
[0690] On the other hand, for example, a decoding device can derive predicted samples for the chroma component based on the received prediction information. The image information includes the prediction information. The decoding device can determine whether interpretation or intrapretation is applied to the chroma component based on the prediction information, and can make predictions based on this. That is, for example, the decoding device can determine whether interpretation or intrapretation is applied to the current block of the chroma component based on the prediction information, and can make predictions based on this.
[0691] For example, the decoding device can derive a prediction mode to be applied to the current block for the chroma component based on the prediction information, and derive a predicted sample of the current block based on the prediction mode. For example, if interpretation is applied to the current block, the decoding device can derive motion information of the current block based on the prediction information contained in the image information, and derive the predicted sample of the current block based on the motion information. Also, for example, if intrapretation is applied to the current block, the decoding device can derive a reference sample based on the peripheral sample of the current block, and derive the predicted sample in the current block based on the reference sample and the intraprediction mode of the current block. The reference sample includes an upper reference sample and a left reference sample of the current block. For example, if the size of the current block is N×N, and the x-component and y-component of the top-left sample position of the current block are 0, then the left reference sample may be p[-1][0] to p[-1][2N-1], and the upper reference sample may be p[0][-1] to p[2N-1][-1].
[0692] Subsequently, for example, the decoding device can generate a reconstructed picture based on the predicted sample and the residual sample. For example, the decoding device can generate a reconstructed sample and / or a reconstructed picture by adding the predicted sample and the residual sample.
[0693] As mentioned above, subsequently, in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures may be applied to the restored sample to improve subjective / objective image quality as needed.
[0694] Figure 13 schematically shows a decoding device that performs the image decoding method according to this document. The method disclosed in Figure 12 is performed by the decoding device disclosed in Figure 13. Specifically, for example, the entropy decoding unit of the decoding device in Figure 13 can perform S1200 in Figure 12, and the residual processing unit of the decoding device in Figure 13 can perform S1210 in Figure 12.
[0695] According to the document mentioned above, the chroma quantization parameter table for chroma components can be determined based on a flag indicating whether or not the same chroma quantization parameter table is used for deriving quantization parameters for chroma components, and coding can be performed based on quantization parameters according to image characteristics to improve coding efficiency.
[0696] Furthermore, according to this document, a chroma quantization parameter table for chroma components can be determined based on chroma quantization data that is individually or commonly signaled to the chroma components, and coding can be performed based on quantization parameters according to the characteristics of the image to improve coding efficiency.
[0697] In the embodiments described above, the method is explained based on a flowchart in a series of steps or blocks, but this document is not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps than those described above. Furthermore, those skilled in the art will understand that the steps shown in the flowchart are not exclusive, other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of this document.
[0698] The embodiments described herein can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each drawing can be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on implementation (e.g., information on instructions) or algorithms can be stored on a digital storage medium.
[0699] Furthermore, the decoding and encoding devices to which the embodiments of this document apply can include multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video interaction devices, real-time communication devices such as video communications, mobile streaming devices, storage media, camcorders, video-on-demand (VoD) service providers, over-the-top (OTT) video equipment, internet streaming service providers, 3D video equipment, image-phone video equipment, transportation terminals (e.g., vehicle terminals, airplane terminals, ship terminals, etc.), and medical video equipment, and can be used to process video signals or data signals. For example, over-the-top (OTT) video equipment can include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, and DVRs (Digital Video Recorders).
[0700] Furthermore, the processing methods to which the embodiments of this document apply can be produced in the form of programs executed on a computer and stored on a computer-readable recording medium. Multimedia data having the data structure relating to this document can also be stored on a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices that store data that can be read by a computer. The computer-readable recording medium can include, for example, Blu-ray discs (BDs), general-purpose serial buses (USBs), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium also includes media implemented in the form of carrier waves (e.g., transmission over the Internet). Furthermore, bitstreams generated by encoding methods can be stored on a computer-readable recording medium or transmitted over a wireless network.
[0701] Furthermore, the embodiments described in this document can be implemented as a computer program product using program code, and the program code can be executed on a computer according to the embodiments described in this document. The program code can be stored on a computer-readable carrier.
[0702] Figure 14 illustrates a content streaming system structure diagram to which the embodiments described in this document apply.
[0703] The content streaming system to which the embodiments described herein apply may broadly include an encoding server, a streaming server, a web server, a media storage facility, user equipment, and multimedia input devices.
[0704] The encoding server is responsible for compressing content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and then transmitting this bitstream to the streaming server. In other cases, if a multimedia input device such as a smartphone, camera, or camcorder directly generates the bitstream, the encoding server can be omitted.
[0705] The bitstream can be generated by an encoding method or bitstream generation method to which an embodiment of this document applies, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0706] The streaming server transmits multimedia data to user devices based on user requests via a web server, and the web server acts as an intermediary to inform users about available services. When a user requests a desired service from the web server, the web server transmits this to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, in which case the control server controls the commands / responses between each device within the content streaming system.
[0707] The streaming server can receive content from a media storage and / or encoding server. For example, if it starts receiving content from the encoding server, it can receive the content in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0708] Examples of user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (such as smartwatches, smart glasses, and HMDs), digital TVs, desktop computers, and digital signage. Each server in the content streaming system can be operated as a distributed server, in which case the data received by each server can be processed in a distributed manner.
[0709] The claims described herein can be combined in various ways. For example, the technical features of the method claims herein can be combined to realize an apparatus, and the technical features of the apparatus claims herein can be combined to realize a method. Furthermore, the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize an apparatus, and the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize a method.
Claims
1. In a decoding device for image decoding, Memory and The system comprises at least one processor connected to the memory, The aforementioned at least one processor is Acquire image information, It is configured to generate a restored picture based on the aforementioned image information, Acquiring the aforementioned image information means Obtain a first flag indicating whether one chromatic quantization parameter table is applied, and a second flag indicating whether a third chromatic quantization parameter table exists for the joint CbCr component, This includes obtaining at least one chromatic quantization parameter table based on the first flag and the second flag, A decoding device in which a first chromatic quantization parameter table for the Cb component, a second chromatic quantization parameter table for the Cr component, and a third chromatic quantization parameter table for the joint CbCr component are signaled based on whether the first flag is equal to 0 and the second flag is equal to 1.
2. In an encoding device for image encoding, Memory and The system comprises at least one processor connected to the memory, The aforementioned at least one processor is Encode the image information, It is configured to generate a bitstream containing the aforementioned image information, Encoding the aforementioned image information is To generate a first flag indicating whether one chromatic quantization parameter table is applied, and a second flag indicating whether a third chromatic quantization parameter table exists for the joint CbCr component, To generate at least one chromatic quantization parameter table based on the first flag and the second flag, The process includes encoding the at least one chromatic quantization parameter table, the first flag, and the second flag, An encoding device in which a first chromatic quantization parameter table for the Cb component, a second chromatic quantization parameter table for the Cr component, and a third chromatic quantization parameter table for the joint CbCr component are signaled based on whether the first flag is equal to 0 and the second flag is equal to 1.
3. In a device for transmitting image-related data, At least one processor configured to generate a bitstream of image information including a flag and at least one chroma quantization parameter table, A transmitting unit configured to transmit data including the bitstream of the image information, which includes the flag and the at least one chroma quantization parameter table, The first flag indicates whether one chromatic quantization parameter table is applied, and the second flag indicates whether a third chromatic quantization parameter table exists for the joint CbCr component. The at least one chromatic quantization parameter table is generated based on the first flag and the second flag, An apparatus in which a first chromatic quantization parameter table for the Cb component, a second chromatic quantization parameter table for the Cr component, and a third chromatic quantization parameter table for the joint CbCr component are signaled based on whether the first flag is equal to 0 and the second flag is equal to 1.