Video decoding method and apparatus thereof
By employing a chroma QP mapping table derived from signaled chroma quantization parameter data, the video decoding method addresses the inefficiencies in coding high-resolution images, resulting in improved coding efficiency and reduced costs.
Patent Information
- Application Number
- JP2024091638
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-05
- Filing Date
- 2024-06-05
- Publication Date
- 2025-06-11
- Estimated Expiration
- 2040-07-03
AI Technical Summary
Existing video coding technologies face challenges in efficiently coding high-resolution and high-quality image data, leading to increased transmission and storage costs.
A video decoding method and apparatus that uses a chroma QP mapping table derived from signaled chroma quantization parameter data, allowing for improved coding efficiency by tailoring quantization parameters to the specific characteristics of the video.
The proposed solution enhances coding efficiency by dynamically adjusting chroma quantization parameters, thereby reducing the bitstream size and associated costs while maintaining image quality.
Smart Images

Figure 0007691551000144 
Figure 0007691551000145 
Figure 0007691551000146
Abstract
Description
Technical Field
[0001] This document relates to video coding technology, and more particularly, to a video decoding method and apparatus for coding using a chroma QP mapping table derived based on chroma quantization parameter data signaled in a video coding system.
Background Art
[0002] Recently, the demand for high-resolution and high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images has been increasing in various fields. As the image data becomes higher in resolution and quality, the amount of information or bits to be transmitted relatively increases compared to existing image data. Therefore, when transmitting image data using a medium such as an existing wired or wireless broadband line, or storing image data using an existing storage medium, the transmission cost and storage cost increase.
[0003] Accordingly, in order to effectively transmit, store, and reproduce high-resolution and high-quality image information, a highly efficient image compression technology is required.
Summary of the Invention
Problems to be Solved by the Invention
[0004] The technical problem of this document is to provide a method and apparatus for increasing image coding efficiency.
[0005] Another technical problem of this document is to provide a method and apparatus for increasing the efficiency of data coding for deriving quantization parameters for chroma components.
Means for Solving the Problems
[0006] According to one embodiment of this document, a video decoding method performed by a decoding device is provided. The method is characterized by including the steps of acquiring video information via a bitstream and generating a restored picture based on the video information.
[0007] According to another embodiment of this document, a decoding device for performing video decoding is provided. The decoding device is characterized by including an entropy decoding unit that acquires video information via a bitstream and a residual processing unit that generates a restored picture based on the video information.
[0008] According to still another embodiment of this document, a video encoding method performed by an encoding device is provided. The method is characterized by including the steps of encoding video information and generating a bitstream including the video information.
[0009] According to still another embodiment of this document, a video encoding device is provided. The encoding device is characterized by including an entropy encoding unit that encodes video information and generates a bitstream including the video information.
Advantages of the Invention
[0010] According to this document, without using a default chroma QP mapping table for deriving a chroma quantization parameter for a chroma component, a chroma QP mapping table derived based on the signaled chroma quantization parameter data can be used to derive a chroma quantization parameter for the chroma component, whereby the coding efficiency can be improved based on a quantization parameter according to the characteristics of the video.
[0011] According to this document, a chroma QP mapping table can be derived based on a syntax element indicating a delta value used to derive an input coordinate of a point in the chroma QP mapping table and / or a syntax element indicating a delta value used to derive an output coordinate of the point in the chroma QP mapping table, and coding can be performed based on the chroma QP mapping table that more specifically reflects the characteristics of a video, thereby improving coding efficiency.
Brief Description of the Drawings
[0012]
Figure 1
[0013]
Figure 2
[0014]
Figure 3
[0015]
Figure 4
[0016]
Figure 5
[0017]
Figure 6
[0018]
Figure 7
[0019]
Figure 8
[0020]
Figure 9
[0021]
Figure 10
[0022]
Figure 11
[0023]
Figure 12
[0024]
Figure 13
[0025]
Figure 14
Embodiments for Carrying Out the Invention
[0026] This document can be modified in various ways and can have various embodiments. Specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to specific embodiments. The terms commonly used in this specification are merely used to describe specific embodiments and are not intended to limit the technical concept of this document. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as "including" or "having" in this specification are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and it should be understood that the presence or addition possibility of one or more other features, numbers, steps, operations, components, parts, or combinations thereof, etc., is not precluded in advance.
[0027] On the other hand, each configuration on the drawings described in this document is independently illustrated for the convenience of explaining different characteristic functions, and it does not mean that each configuration is realized by separate hardware or separate software. For example, among each configuration, two or more configurations can be combined to form one configuration, and one configuration can also be divided into multiple configurations. Embodiments in which each configuration is integrated and / or separated are included in the scope of rights of this document as long as they do not deviate from the essence of this document.
[0028] Hereinafter, with reference to the accompanying drawings, preferred embodiments of this document will be described in more detail. Hereinafter, the same reference numerals will be used for the same components on the drawings, and overlapping descriptions for the same components can be omitted.
[0029] FIG. 1 schematically shows an example of a video / image coding system to which an embodiment of this document can be applied.
[0030] As shown in FIG. 1, a video / image coding system can include a first device (source device) and a second device (receiver device). The source device can transmit encoded video / image information or data in a file or streaming form to the receiver device via a digital storage medium or a network.
[0031] The source device can include a video source, an encoding device, and a transmitter. The receiver device can include a receiver, a decoding device, and a renderer. The encoding device can be referred to as a video / image encoding device, and the decoding device can be referred to as a video / image decoding device. A transmitter can be included in the encoding device. A receiver can be included in the decoding device. The renderer can include a display unit, and the display unit can also be composed of a separate device or an external component.
[0032] The video source can obtain video / images through processes such as capture, synthesis, or generation of video / images. The video source can include a video / image capture device and / or a video / image generation device. The video / image capture device can include, for example, one or more cameras, a video / image archive including previously captured video / images, etc. The video / image generation device can include, for example, a computer, a tablet, and a smartphone, etc., and can (electronically) generate video / images. For example, virtual video / images can be generated via a computer, etc., and in this case, the video / image capture process can be replaced during the process of generating related data.
[0033] The encoding device can encode the input video / image. The encoding device can execute a series of procedures such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0034] The transmitting unit can transmit the encoded video / image information or data output in the form of a bitstream to the receiving unit of the receiving device via a digital storage medium or network in file or streaming form. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating a media file via a predetermined file format and can include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and transmit it to the decoding device.
[0035] The decoding device can decode the video / image by executing a series of procedures such as inverse quantization, inverse transformation, prediction, etc. corresponding to the operation of the encoding device.
[0036] The renderer can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0037] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to the 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, etc.).
[0038] In this document, various embodiments related to video / image coding are presented, and unless otherwise noted, the embodiments can also be executed in combination with each other.
[0039] In this document, "video" may mean a collection of a series of "images" over time. "Picture" generally means a unit indicating one image in a specific time period, and "subpicture / slice / tile" is a unit that constitutes a part of a picture in coding. A subpicture / slice / tile may include one or more CTUs (Coding Tree Units). One picture may be composed of one or more subpictures / slices / tiles. One picture may be composed of one or more groups of tiles. One tile group may include one or more tiles. A brick represents a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consists of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan shows 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. Also, a subpicture represents a rectangular region of one or more slices within a picture. That is, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit. A slice may consists 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 referred to as a slice / slice header.
[0040] A pixel or pel can mean the smallest unit that makes up a picture (or image). Also, the term "sample" can be used as the term corresponding to a pixel. A sample can generally indicate a pixel or the value of a pixel, and can also indicate only the pixel / pixel value of the luma component, or only the pixel / pixel value of the chroma component.
[0041] A unit can indicate the basic unit of image processing. A unit can include at least one of a specific region of a picture and information related to that region. One unit can include one luma block and two chroma (e.g., cb, cr) blocks. A unit can, in some cases, be used interchangeably with terms such as block or area. In general, an M×N block can include a set (or array) of samples (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0042] As used herein, "A or B" can mean "only A", "only B", or "both A and B". In other words, as used herein, "A or B" can be construed as "A and / or B". For example, as used herein, "A, B, or C" can mean "only A", "only B", "only C", or "any combination of A, B, and C".
[0043] As used herein, the slashes ( / ) and commas can mean "and / or". For example, "A / B" can mean "A and / or B". Thus, "A / B" can mean "only A", "only B", or "both A and B". For example, "A, B, C" can mean "A, B, or C".
[0044] As used herein, "at least one of A and B" can mean "only A", "only B", or "both A and B". Also, as used herein, the expressions "at least one of A or B" and "at least one of A and / or B" can be construed in the same manner as "at least one of A and B".
[0045] Also, in this specification, "at least one of A, B, and C" may mean "only A", "only B", "only C", or "any combination of A, B, and C". Also, "at least one of A, B, or C" and "at least one of A, B, and / or C" may mean "at least one of A, B, and C".
[0046] Also, the parentheses used in this specification may mean "for example". Specifically, when it is displayed as "prediction (intra prediction)", "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 it is displayed as "prediction (i.e., intra prediction)", "intra prediction" may be proposed as an example of "prediction".
[0047] The technical features described individually within one drawing in this specification may be realized individually or simultaneously.
[0048] The following drawings are created to illustrate a specific example of this specification. Since the names of the specific devices and the names of the specific signals / messages / fields described in the drawings are presented exemplarily, the technical features of this specification are not limited to the specific names used in the following drawings.
[0049] Figure 2 is a diagram schematically explaining the configuration of a video / image encoding device to which the embodiment of this document can be applied. Hereinafter, the video encoding device can include an image encoding device.
[0050] As shown in FIG. 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 can include an inter-prediction unit 221 and an intra-prediction unit 222. The residual processor 230 can include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 can further include a subtractor 231. The adder 250 can be called a reconstructor or a reconstructed block generator. The above-described image partitioner 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 can be configured by one or more hardware components (e.g., an encoder chipset or a processor) according to an embodiment. Also, the memory 270 can include a DPB (decoded picture buffer) and can also be configured by a digital storage medium. The hardware component can further include the memory 270 as an internal / external component.
[0051] The image segmentation unit 210 can divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing unit can be called a coding unit (CU). In this case, the coding unit can be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) by a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit can be divided into a plurality of coding units with a 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 can be applied first, and the binary-tree structure and / or the ternary structure can be applied later. Or, the binary-tree structure can also be applied first. The coding procedure according to this document can be executed based on the final coding unit that is no longer divided. In this case, based on the coding efficiency according to the image characteristics, etc., the largest coding unit can be immediately used as the final coding unit, or, if necessary, the coding unit can be recursively divided into coding units with a deeper depth, and the coding unit with the optimal size can be used as the final coding unit. Here, the coding procedure can include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit can further include a prediction unit (PU: Prediction Unit) or a transform unit (TU: Transform Unit). In this case, the prediction unit and the transform unit can each be divided 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 for deriving a conversion coefficient and / or a unit for deriving a residual signal from the conversion coefficient.
[0052] A unit can, in some cases, be used interchangeably with terms such as a block or an area. In a general case, 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 can represent only the pixel / pixel value of the luma component, or can also represent only the pixel / pixel value of the chroma component. A sample can be used as a term corresponding to a pixel or a pel for one picture (or image).
[0053] The encoding device 200 can subtract a prediction signal (predicted block, predicted sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input image signal (original block, original sample array) to generate a residual signal (residual block, residual 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) in the encoder 200 can be called the subtraction unit 231. The prediction unit can perform a prediction on a processing target block (hereinafter referred to as the current block) and generate a predicted block including predicted samples for the current block. The prediction unit can determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit can generate various pieces of information related to prediction, such as prediction mode information, and transmit them to the entropy encoding unit 240 as described later in the description of each prediction mode. The information related to prediction can be encoded by the entropy encoding unit 240 and output in the form of a bit stream.
[0054] The intra prediction unit 222 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located in the neighborhood of the current block according to the prediction mode, or can also be located remotely. In intra prediction, the prediction mode can include a plurality of non - directional modes and a plurality of directional modes. The non - directional modes can include, for example, the DC mode and the Planar Mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of fineness of the prediction direction. However, this is only an example, and more or fewer directional prediction modes can be used according to the setting. The intra prediction unit 222 can also determine the prediction mode applied to the current block by using the prediction mode applied to the adjacent blocks.
[0055] The inter prediction unit 221 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between adjacent blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring blocks can be called by names such as collocated reference blocks and collocated CUs (colCUs), and the reference picture including the temporal neighboring blocks can also be called a collocated picture (colPic). For example, the inter prediction 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. Inter prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter prediction unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In the case of skip mode, a residual signal may not be transmitted, which is different from merge mode.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.
[0056] The prediction unit 220 can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can apply not only intra prediction or inter prediction for the prediction of one block, but 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 for the prediction of a block, or can be based on the palette mode. 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.
[0057] 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 restored signal or can be used to generate a residual signal. The conversion unit 232 can generate transform coefficients by applying a conversion technique to the residual signal. For example, the conversion technique can include at least one of 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 the conversion obtained from this graph when the relationship information between pixels is represented by a graph. CNT means the conversion obtained based on generating a prediction signal using all previously reconstructed pixels. Also, the conversion process can be applied to a pixel block having the same size of a square and can also be applied to a non-square, variable-size block.
[0058] The quantization unit 233 quantizes the transform coefficients and transmits them to the entropy encoding unit 240. The entropy encoding unit 240 can encode the quantized signal (information regarding the quantized transform coefficients) and output it as a bitstream. The information regarding the quantized transform coefficients can be referred to as residual information. The quantization unit 233 can reorder the block-form quantized transform coefficients in a one-dimensional vector form based on the coefficient scan order, and can also generate the information regarding the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoding unit 240 can execute various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit 240 can encode, together or separately, information necessary for video / image restoration (e.g., values of syntax elements, etc.) in addition to the quantized transform coefficients. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information can further include information regarding various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the video / image information can further include general constraint information. Information and / or syntax elements transmitted / signaled from the encoding device to the decoding device in this document can be included in the video / image information. The video / image information can be encoded through the above-described encoding procedure 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 be included in the entropy encoding unit 240.
[0059] 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 the inverse quantization unit 234 and the inverse transformation unit 235. The addition unit 250 can generate a 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 block to be processed, 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 block to be processed 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.
[0060] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture encoding and / or restoration process.
[0061] The filtering unit 260 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and can store the modified restored picture 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, bilateral filter, etc. The filtering unit 260 can generate various information related to filtering and transmit it to the entropy encoding unit 240 as will be described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0062] The modified restored picture transmitted to the memory 270 can be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding device can avoid prediction mismatches between the encoding device 200 and the decoding device 300, and can also improve the encoding efficiency.
[0063] The memory 270 DPB can store the modified restored picture for use as a reference picture in the inter prediction unit 221. The memory 270 can store the motion information of the block where the motion information in the current picture was derived (or encoded) 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 221 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 270 can store the restored samples of the restored blocks in the current picture and transmit them to the intra prediction unit 222.
[0064] FIG. 3 is a diagram schematically illustrating the configuration of a video / image decoding apparatus to which an embodiment of the present document can be applied.
[0065] As shown in FIG. 3, the decoding apparatus 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 can include an inter-predictor 331 and an intra-predictor 332. The residual processor 320 can include a dequantizer 321 and an inverse transformer 322. The above-described entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 can be configured by one hardware component (e.g., a decoder chipset or a processor) according to an embodiment. Also, the memory 360 can include a DPB (decoded picture buffer) and can also be configured by a digital storage medium. The hardware component can further include the memory 360 as an internal / external component.
[0066] When a bitstream including video / image information is input, the decoding device 300 can restore an image corresponding to the process in which the video / image information was processed by the encoding device in FIG. 2. For example, the decoding device 300 can derive units / blocks based on block splitting related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Therefore, the processing unit for decoding is, for example, a coding unit, and the coding unit can be split according to a quad tree structure, a binary tree structure, and / or a ternary tree structure from a coding tree unit or a maximum coding unit. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output via the decoding device 300 can be reproduced via a playback device.
[0067] The decoding device 300 can receive the signal output from the encoding device in FIG. 2 in the form of a bitstream, 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 (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information can further include information regarding various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the video / image information can further include general constraint information. The decoding device can further decode a picture based on the information regarding the parameter set 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 the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements necessary for image restoration, quantized values of transform coefficients regarding 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 syntax element information to be decoded, the information of the surrounding and decoded blocks of the decoding target, or the information of the symbols / bins decoded in the previous step, predicts the occurrence probability of a bin based on the determined context model, and executes arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the symbols / bins decoded for the context model of the next symbol / bin after determining the context model.Of the information decoded by the entropy decoding unit 310, the information related to prediction is provided to the prediction unit (inter prediction unit 332 and intra prediction unit 331), and the residual value for which entropy decoding is performed by the entropy decoding unit 310, that is, the quantized transform coefficient and related parameter information, can be input to the residual processing unit 320. The residual processing unit 320 can derive a residual signal (residual block, residual sample, residual sample array). Also, among the information decoded by the entropy decoding unit 310, the information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives the signal 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 according to this document can be called a video / image / picture decoding device, and the decoding device can also be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder can include the entropy decoding unit 310, and the sample decoder can include at least one of the inverse quantization unit 321, inverse transform unit 322, addition unit 340, filtering unit 350, memory 360, inter prediction unit 332, and intra prediction unit 331.
[0068] In the inverse quantization unit 321, the quantized transform coefficient can be inverse quantized to output a transform coefficient. The inverse quantization unit 321 can reorder the quantized transform coefficients in a two-dimensional block form. In this case, the reordering can be performed based on the coefficient scan order executed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transform coefficient using a quantization parameter (for example, quantization step size information) to obtain a transform coefficient.
[0069] In the inverse transform unit 322, the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).
[0070] The prediction unit can perform prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit can determine whether intra prediction or inter prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit 310, and can determine a specific intra / inter prediction mode.
[0071] The prediction unit 320 can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can apply not only intra prediction or inter prediction for prediction of one block, but also can apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP). Also, the prediction unit can be based on the intra block copy (IBC) prediction mode or the palette mode for 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, information regarding the palette table and the palette index can be included in and signaled in the video / image information.
[0072] The intra prediction unit 331 can predict the current block by referring to samples within the current picture. The samples to be referred can be located at the periphery (neighbor) of the current block according to the prediction mode, or can also be located remotely. 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 by using the prediction mode applied to the adjacent block.
[0073] The inter prediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted from the inter prediction mode, the motion information can be predicted in units of blocks, sub - blocks, or samples based on the correlation of the motion information between the adjacent block and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit 332 can construct a motion information candidate list based on the adjacent blocks, and derive the motion vector and / or the reference picture index of the current block based on the received candidate selection information. Inter prediction can be executed based on various prediction modes, and the information regarding the prediction can include information indicating the mode of inter prediction for the current block.
[0074] The adder 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 the intra-prediction unit 331). When there is no residual for the block to be processed, as in the case where the skip mode is applied, the predicted block can be used as the restored block.
[0075] The adder 340 can be called a restoration unit or a restored block generation unit. The generated restored signal can be used for intra-prediction of the next block to be processed within the current picture, can be output after filtering as described later, or can also be used for inter-prediction of the next picture.
[0076] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture decoding process.
[0077] The filtering unit 350 can apply filtering to the restored signal to improve the 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 can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0078] The (corrected) reconstructed 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 from which the motion information in the current picture was derived (or decoded) and / or the motion information of the blocks in the already reconstructed 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 reconstructed samples of the reconstructed blocks in the current picture and can transmit them to the intra prediction unit 331.
[0079] In this specification, the embodiments described in the filtering unit 260, the inter prediction unit 221, and the intra prediction unit 222 of the encoding device 200 can be applied in the same or corresponding manner to the filtering unit 350, the inter prediction unit 332, and the intra prediction unit 331 of the decoding device 300, respectively.
[0080] In this document, at least one of quantization / inverse quantization and / or transform / inverse transform can be omitted. When the quantization / inverse quantization is omitted, the quantized transform coefficients can be referred to as transform coefficients. When the transform / inverse transform is omitted, the transform coefficients can be referred to as coefficients or residual coefficients, or can still be referred to as transform coefficients for the sake of uniformity of expression.
[0081] In this document, the quantized transform coefficients and the transform coefficients can be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information can include information regarding the transform coefficients (etc.), and the information regarding the transform coefficients (etc.) can be signaled via a residual coding syntax. The transform coefficients can be derived based on the residual information (or the information regarding the transform coefficients (etc.)), and the scaled transform coefficients can be derived via an inverse transform (scaling) with respect to the transform coefficients. Residual samples can be derived based on an inverse transform (transformation) with respect to the scaled transform coefficients. This can be applied / expressed similarly in other parts of this document.
[0082] As described above, in performing video coding, prediction is performed to increase compression efficiency. Through this, a predicted block including prediction samples for the current block, which is the block to be coded, can be generated. Here, the predicted block includes prediction samples in the spatial domain (or pixel domain). The predicted block is derived identically in the encoding device and the decoding device, and the encoding device can increase the image coding efficiency by signaling to the decoding device information regarding the residual (residual information) between the original block, which is not the original sample value of the original block itself, and the predicted block. The decoding device can derive a residual block including residual samples based on the residual information, and can generate a restored block including restored samples by combining the residual block and the predicted block, and can generate a restored picture including the restored block.
[0083] The residual information can be generated through conversion and quantization procedures. For example, an encoding device can derive a residual block between the original block and the predicted block, perform a conversion procedure on the residual samples (residual sample array) included in the residual block to derive conversion coefficients, perform a quantization procedure on the conversion coefficients to derive quantized conversion coefficients, and signal the related residual information (via a bitstream) to a decoding device. Here, the residual information can include information such as value information, position information, conversion technique, conversion kernel, quantization parameter, etc. of the quantized conversion coefficients. The decoding device can perform an inverse quantization / inverse conversion procedure based on the residual information to derive residual samples (or a residual block). The decoding device can generate a restored picture based on the predicted block and the residual block. The encoding device can further inverse quantize / inverse convert the quantized conversion coefficients to derive a residual block for reference for inter prediction of subsequent pictures, and generate a restored picture based on this.
[0084] Intra prediction can represent a prediction that generates prediction samples for a current block based on reference samples within a picture (hereinafter referred to as the current picture) to which the current block belongs. When intra prediction is applied to the current block, peripheral reference samples to be used for intra prediction of the current block can be derived. The peripheral reference samples of the current block can include a total of 2×nH samples adjacent to the left boundary of the current block of size nW×nH and adjacent to the bottom - left, samples adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top - right, and 1 sample adjacent to the top - left of the current block. Or, the peripheral reference samples of the current block can include a plurality of rows of upper - peripheral samples and a plurality of columns of left - peripheral samples. Also, the peripheral reference samples of the current block can include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and 1 sample adjacent to the bottom - right of the current block.
[0085] However, some of the peripheral reference samples of the current block may not have been decoded yet or may not be available. In this case, the decoder can substitute unavailable samples with available samples to form the peripheral reference samples used for prediction. Or, the peripheral reference samples used for prediction can be formed through interpolation of available samples.
[0086] When a peripheral reference sample is derived, (i) a predicted sample can be derived based on the average or interpolation of neighboring reference samples of the current block, and (ii) the predicted sample can also be derived based on reference samples among the neighboring reference samples of the current block that exist in a specific (predicted) direction with respect to the predicted sample. In the case of (i), it can be called a non-directional mode or a non-angular mode, and in the case of (ii), it can be called a directional mode or an angular mode.
[0087] Also, among the peripheral reference samples, the predicted sample can be generated by interpolation between a first peripheral sample located in the prediction direction of the intra prediction mode of the current block and a second peripheral sample located in the direction opposite to the prediction direction, with the predicted sample of the current block as a reference. In the case described above, it can be called Linear interpolation intra prediction (LIP). Also, a chroma predicted sample can be generated based on luma samples using a linear model (LM). In this case, it can be called the LM mode or the CCLM (chroma component LM) mode.
[0088] Also, a temporary predicted sample of the current block can be derived based on the filtered peripheral reference samples, and a predicted sample of the current block can be derived by weighted sum of at least one reference sample derived by the intra prediction mode among the existing peripheral reference samples, that is, the peripheral reference samples that have not been filtered, and the temporary predicted sample. In the case described above, it can be called PDPC (Position dependent intra prediction).
[0089] Also, among the surrounding multiple-reference sample lines of the current block, select the reference sample line with the highest prediction accuracy, derive a prediction sample using the reference sample located in the prediction direction on this line, and at this time, perform intra prediction by a method of instructing (signaling) the used reference sample line to the decoding device. In the case described above, it can be called multi-reference line intra prediction or MRL-based intra prediction.
[0090] Also, although the current block is divided into vertical or horizontal sub-partitions and intra prediction is performed based on the same intra prediction mode, peripheral reference samples can be derived and used in units of the sub-partitions. That is, in this case, although the intra prediction mode for the current block is similarly applied to the sub-partitions, by deriving and using peripheral reference samples in units of the sub-partitions, the intra prediction performance can be improved in some cases. Such a prediction method can be called ISP (intra sub-partitions)-based intra prediction.
[0091] The intra prediction methods described above can be called intra prediction types, distinguished from the intra prediction modes. The intra prediction types can be called various terms such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction type (or additional intra prediction mode, etc.) can include at least one of LIP, PDPC, MRL, and ISP described above. The general intra prediction method excluding specific intra prediction types such as LIP, PDPC, MRL, and ISP can be called the normal intra prediction type. The normal intra prediction type can be generally applied when the above specific intra prediction types are not applicable, and prediction can be performed based on the intra prediction modes described above. On the other hand, post-processing filtering can also be performed on the prediction samples derived as needed.
[0092] Specifically, the intra prediction procedure can include an intra prediction mode / type determination step, a derivation step of neighboring reference samples, and a prediction sample derivation step based on the intra prediction mode / type. Further, if necessary, a post-filtering step for the derived prediction samples can also be performed.
[0093] FIG. 4 shows an example of a video / image encoding method based on intra prediction.
[0094] As shown in FIG. 4, the encoding device performs intra prediction on the current block (S400). The encoding device can derive an intra prediction mode / type for the current block, derive neighboring reference samples of the current block, and generate prediction samples within the current block based on the intra prediction mode / type and the neighboring reference samples. Here, the intra prediction mode / type determination, neighboring reference sample derivation, and prediction sample generation procedures can be performed simultaneously, or any one of the procedures can be performed prior to the other procedures. The encoding device can determine the mode / type applied to the current block among a plurality of intra prediction modes / type. The encoding device can compare the RD cost for the intra prediction mode / type and determine the optimal intra prediction mode / type for the current block.
[0095] On the other hand, the encoding device can also perform a prediction sample filtering procedure. The prediction sample filtering can be referred to as post-filtering. Some or all of the prediction samples can be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure can be omitted.
[0096] The encoding device generates residual samples for the current block based on (filtered) prediction samples (S410). The encoding device can compare the prediction samples with the original samples of the current block on a phase basis and derive the residual samples.
[0097] The encoding device can encode image information including information related to the intra prediction (prediction information) and residual information related to the residual samples (S420). The prediction information can include the intra prediction mode information and the intra prediction type information. The encoding device can output the encoded image information in the form of a bitstream. The output bitstream can be transmitted to the decoding device via a storage medium or a network.
[0098] The residual information can include a residual coding syntax described later. The encoding device can convert / quantize the residual samples to derive quantized transform coefficients. The residual information can include information related to the quantized transform coefficients.
[0099] On the other hand, as described above, the encoding device can generate a restored picture (including restored samples and restored blocks). For this purpose, the encoding device can perform inverse quantization / inverse transformation processing on the quantized transform coefficients again to derive (corrected) residual samples. As described above, the reason for performing inverse quantization / inverse transformation again after converting / quantizing the residual samples is to derive the same residual samples as the residual samples derived from the decoding device. The encoding device can generate a restored block including restored samples for the current block based on the prediction samples and the (corrected) residual samples. A restored picture for the current picture can be generated based on the restored block. As described above, an in-loop filtering procedure or the like can be further applied to the restored picture.
[0100] FIG. 5 shows an example of a video / image encoding method based on an intra prediction basis.
[0101] The decoding device can perform an operation corresponding to the operation performed by the encoding device.
[0102] Prediction information and residual information can be obtained from the bitstream. A residual sample for the current block can be derived based on the residual information. Specifically, based on the quantized transform coefficients derived based on the residual information, inverse quantization is performed to derive transform coefficients, inverse transform is performed on the transform coefficients, and a residual sample for the current block can be derived.
[0103] 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 peripheral reference samples of the current block (S510). The decoding device generates prediction samples within the current block based on the intra prediction mode / type and the peripheral 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 can be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure can be omitted.
[0104] The decoding device generates residual samples for the current block based on the received residual information (S530). The decoding device can generate restored samples for the current block based on the prediction samples and the residual samples, and derive a restored block including the restored samples (S540). A restored picture for the current picture can be generated based on the restored block. As described above, an in-loop filtering procedure or the like can be further applied to the restored picture.
[0105] The intra prediction mode information can include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether MPM (most probable mode) is applied to the current block or whether the remaining mode is applied. When the MPM is applied to the current block, the prediction mode information can further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) can be composed of an MPM candidate list or an MPM list. Also, when the MPM is not applied to the current block, the intra prediction mode information can further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating 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.
[0106] Also, the intra prediction type information can be realized in various forms. As an example, the intra prediction type information includes intra prediction type index information indicating any one of the intra prediction types. As another example, the intra prediction type information includes reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and which reference sample line is used if it is applied, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the block, ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied, at least one of flag information indicating whether PDCP is applicable or flag information indicating whether LIP is applicable. Also, the intra prediction type information includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0107] The intra prediction mode information and / or the intra prediction type information can be encoded / decoded by the coding method 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).
[0108] FIG. 6 exemplarily shows the intra prediction procedure.
[0109] Referring to FIG. 6, as described above, the intra prediction procedure can 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 can be performed by an encoding device and a decoding device as described above. In this document, the coding device can include an encoding device and / or a decoding device.
[0110] As shown in FIG. 6, the coding device determines an intra prediction mode / type (S600).
[0111] The encoding device can determine the intra prediction mode / type applied to the current block among the various intra prediction modes / types described above, and can generate prediction-related information. The prediction-related information can 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 the intra prediction mode / type applied to the current block based on the prediction-related information.
[0112] The intra prediction mode information can include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether MPM (most probable mode) is applied to the current block or whether the remaining mode is applied. When the MPM is applied to the current block, the prediction mode information can further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) can be composed of an MPM candidate list or an MPM list. Also, when the MPM is not applied to the current block, the intra prediction mode information can further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating 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.
[0113] Also, the intra prediction type information can be realized in various forms. As an example, the intra prediction type information includes intra prediction type index information indicating any one of the intra prediction types. As another example, the intra prediction type information includes reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and which reference sample line is used if it is applied, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied, flag information indicating whether PDCP is applicable or flag information indicating whether LIP is applicable, and at least one of them. Also, the intra prediction type information includes a MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0114] 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 neighboring blocks. For example, the coding device can select one of the MPM (most probable mode) candidates in the MPM list derived based on the intra prediction modes and / or additional candidate modes of the neighboring blocks (e.g., left and / or upper neighboring blocks) of the current block based on the received MPM index, or can select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on the MPM reminder information (remaining intra prediction mode information). The MPM list can be configured to include or not include the planar mode as a candidate. For example, when the MPM list includes the planar mode as a candidate, the MPM list can have 6 candidates, and when the MPM list does not include the planar mode as a candidate, the MPM list can have 5 candidates. When the MPM list does not include the planar mode as a candidate, a not planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not the planar mode can be signaled. For example, the MPM flag can be signaled first, and the MPM index and the not planar flag can be signaled when the value of the MPM flag is 1. Also, the MPM index can be signaled when the value of the not planar flag is 1. Here, the reason for configuring the MPM list not to include the planar mode as a candidate is to signal the flag (not planar flag) first to check whether it is the planar mode first because the planar mode is always considered as an MPM rather than not being an MPM.
[0115] For example, whether the intra prediction mode currently applied to a block is among the MPM candidates (and the planar mode) or among the remaining modes can be indicated based on the MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag can indicate that the intra prediction mode for the current block is within the MPM candidates (and the planar mode), and a value of 0 for the MPM flag can indicate that the intra prediction mode for the current block is not within the MPM candidates (and the planar mode). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) can indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 for the not planar flag can indicate that the intra prediction mode for the current block is not the planar mode. The MPM index can be signaled in the form of the mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information can be signaled in the form of the rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information can index, in prediction mode number order, the remaining intra prediction modes not included in the MPM candidates (and the planar mode) among all the intra prediction modes and point to one of them. The intra prediction mode can be the intra prediction mode for the luma component (samples). Hereinafter, the intra prediction mode information can include at least one of 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), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, the MPM list can be referred to by various terms such as the MPM candidate list, candModeList, etc.
[0116] When MIP is currently applied to a block, a separate MPM flag (e.g., intra_mip_mpm_flag) for MIP, an MPM index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) can be signaled, and the not planar flag can be not signaled.
[0117] In other words, generally when block partitioning is performed on an image, the current block to be coded and the neighboring blocks will have similar image characteristics. Therefore, the current block and the neighboring blocks are likely to be the same as each other or have similar intra prediction modes. Therefore, the encoder can use the intra prediction mode of the neighboring blocks to encode the intra prediction mode of the current block.
[0118] The coding device can construct an MPM (most probable modes) list for the current block. The MPM list can also be referred to as the MPM candidate list. Here, MPM can mean a mode used to improve coding efficiency by considering the similarity between the current block and neighboring blocks during intra prediction mode coding. As described above, the MPM list can be configured to include the planar mode or can be configured excluding the planar mode. For example, when the MPM list includes the planar mode, the number of candidates in the MPM list can be 6. And when the MPM list does not include the planar mode, the number of candidates in the MPM list can be 5.
[0119] The encoding device can perform prediction based on various intra prediction modes, and can determine the optimal intra prediction mode based on RDO (rate - distortion optimization) based on this. In this case, the encoding device can determine the optimal intra prediction mode using only the MPM candidates configured in the MPM list and the planar mode, or can also determine the optimal intra prediction mode using not only the MPM candidates configured in the MPM list and the planar mode but also the remaining intra prediction modes. Specifically, for example, if the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP) that is not the normal intra prediction type, the encoding device can determine the optimal intra prediction mode by considering only the MPM candidates and the planar mode as the intra prediction mode candidates for the current block. That is, in this case, the intra prediction mode for the current block can be determined among the MPM candidates and the planar mode, and in this case, the MPM flag cannot be encoded / signaled. The decoding device can, in this case, presume that the MPM flag is 1 even if the MPM flag is not signaled separately.
[0120] On the other hand, generally, when the intra prediction mode of the current block is not the planar mode and is one of the MPM candidates within 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 within the MPM list, MPM remainder information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block is generated from among the remaining intra prediction modes not included in the MPM list (and the planar mode). The MPM remainder information can include, for example, the intra_luma_mpm_remainder syntax element.
[0121] The decoding device acquires intra prediction mode information from the bitstream. As described above, the intra prediction mode information can include at least one of an MPM flag, a not planar flag, an MPM index, and MPM remainder information (remaining intra prediction mode information). The decoding device can construct an MPM list. The MPM list is configured in the same manner as the MPM list configured by the encoding device. That is, the MPM list can include the intra prediction modes of surrounding blocks and can further include a specific intra prediction mode by a predetermined method.
[0122] The decoding device can determine the intra prediction mode of the current block based on the MPM list and the intra prediction mode information. As an example, when the value of the MPM flag is 1, the decoding device can derive the planar mode as the intra prediction mode of the current block (based on the not planar flag), or can derive the candidate pointed to by the MPM index among the MPM candidates in the MPM list as the intra prediction mode of the current block. Here, the MPM candidates can represent only the candidates included in the MPM list, or can also include the planar mode that can be applied when the value of the MPM flag is 1 in addition to the candidates included in the MPM list.
[0123] As another example, when the value of the MPM flag is 0, the decoding device can derive, as the intra prediction mode of the current block, the intra prediction mode indicated by the remaining intra prediction mode information (which can be called mpm remainder information) that is not included in the MPM list and the planner mode, from among the remaining intra prediction modes. On the other hand, as yet another example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP, etc.), the decoding device can derive, as the intra prediction mode of the current block, the candidate indicated by the MPM flag in the planner mode or the MPM list, even without parsing / decoding / verifying the MPM flag.
[0124] The coding device derives the surrounding reference samples of the current block (S610). When intra prediction is applied to the current block, the surrounding reference samples used for intra prediction of the current block can be derived. The surrounding reference samples of the current block can include a total of 2×nH samples adjacent to the left boundary and the bottom - left of the current block of size nW×nH, samples adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top - right, and 1 sample adjacent to the top - left of the current block. Or, the surrounding reference samples of the current block can also include a plurality of columns of upper - surrounding samples and a plurality of rows of left - surrounding samples. Also, the surrounding reference samples of the current block can include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and 1 sample adjacent to the bottom - right of the current block.
[0125] On the one hand, when the MRL is applied (i.e., when the value of the MRL index is greater than 0), the peripheral reference samples can be located on lines 1 or 2, not line 0, adjacent to the current block on the left / upper side. In this case, the number of peripheral reference samples can be further increased. On the other hand, when the ISP is applied, the peripheral reference samples can be derived in sub-partition units.
[0126] The coding device performs intra prediction on the current block to derive prediction samples (S620). The coding device can derive the prediction samples based on the intra prediction mode / type and the peripheral samples. The coding device can derive the reference samples according to the intra prediction mode of the current block among the peripheral reference samples of the current block, and can derive the prediction samples of the current block based on the reference samples.
[0127] On the one hand, when inter prediction is applied, the prediction unit of the encoding device / decoding device can derive a prediction sample by performing inter prediction in block units. 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 (Inter prediction can be a prediction derived in a manner that is dependent on data elements(ex.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) specified by a motion vector on a reference picture pointed to by a reference picture index. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between the surrounding blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.) information. When inter prediction is applied, the surrounding blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block can be the same or different. The temporal neighboring block can be called by names such as a collocated reference block and a collocated CU (colCU), and the reference picture including the temporal neighboring block can also be called a collocated picture (colPic).For example, a motion information candidate list can be configured based on neighboring blocks of a current block, and in order to derive a motion vector and / or a reference picture index of the current block, flag or index information indicating which candidate is selected (used) can be signaled. Inter prediction can be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the motion information of the current block can be the same as that of the selected neighboring block. In the case of the skip mode, unlike the merge mode, a residual signal can be not transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the selected neighboring block is used as a motion vector predictor, and a motion vector difference can be signaled. In this case, the motion vector of the current block can be derived by using the sum of the motion vector predictor and the motion vector difference.
[0128] The motion information can include L0 motion information and / or L1 motion information depending on the inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). The motion vector in the L0 direction can be called the L0 motion vector or MVL0, and the motion vector in the L1 direction can be called the L1 motion vector or MVL1. The prediction based on the L0 motion vector can be called L0 prediction, the prediction based on the L1 motion vector can be called L1 prediction, and the prediction based on both the L0 motion vector and the L1 motion vector can be called Bi (pair) prediction. Here, the L0 motion vector can represent a motion vector associated with the reference picture list L0 (L0), and the L1 motion vector can represent a motion vector associated with the reference picture list L1 (L1). The reference picture list L0 can include previous pictures as reference pictures in terms of output order from the current picture, and the reference picture list L1 can include subsequent pictures. The previous picture can be called a forward (reference) picture, and the subsequent picture can be called a backward (reference) picture. The reference picture list L0 can further include subsequent pictures as reference pictures in terms of output order from the current picture. In this case, the previous picture can be indexed first within the reference picture list L0, and the subsequent picture can be indexed next. The reference picture list L1 can further include previous pictures as reference pictures in terms of output order from the current picture. In this case, the subsequent picture can be indexed first within the reference picture list 1, and the previous picture can be indexed next. Here, the output order can correspond to the POC (picture order count) order.
[0129] The video / image encoding procedure based on inter prediction can generally include, for example, the following.
[0130] FIG. 7 shows an example of a video / image encoding method based on inter prediction.
[0131] The encoding device performs inter prediction on the current block (S700). The encoding device can derive the inter prediction mode and motion information of the current block, and generate a predicted sample of the current block. Here, the inter prediction mode determination, motion information derivation, and predicted sample generation procedures can be performed simultaneously, or any one of the procedures can be performed prior to the other procedures. For example, the inter prediction unit of the encoding device can include a prediction mode determination unit, a motion information derivation unit, and a predicted sample derivation unit. The prediction mode determination unit determines the prediction mode for the current block, the motion information derivation unit derives the motion information of the current block, and the predicted sample derivation unit can derive the predicted sample of the current block. For example, the inter prediction unit of the encoding device searches for a block similar to the current block within a certain region (search region) of the reference picture through motion estimation, and can derive a reference block whose difference from the current block is the smallest or below a certain criterion. Based on this, a reference picture index indicating 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 the mode to be applied to the current block among various prediction modes. The encoding device can compare the RD costs for the various prediction modes and determine the optimal prediction mode for the current block.
[0132] For example, when the skip mode or the merge mode is applied to the current block, the encoding device constructs a merge candidate list to be described later, and can derive, among the reference blocks pointed to by the merge candidates included in the merge candidate list, the reference block whose difference from the current block is the smallest or below a certain criterion. In this case, the merge candidate associated with the derived reference block can be selected, and merge index information indicating the selected merge candidate can be generated and signaled to the decoding device. The motion information of the current block can be derived using the motion information of the selected merge candidate.
[0133] As another example, when the (A)MVP mode is applied to the current block, the encoding device configures an (A)MVP candidate list to be described later, and among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list, the motion vector of the selected mvp candidate can be used as the mvp of the current block. In this case, for example, the motion vector indicating the reference block derived by the above-described motion estimation can be used as the motion vector of the current block, and among the mvp candidates, the mvp candidate having the motion vector with the smallest difference from the motion vector of the current block can be the selected mvp candidate. An 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. Further, when the (A)MVP mode is applied, the value of the reference picture index can be configured with reference picture index information and can be separately signaled to the decoding device.
[0134] The encoding device can derive a residual sample based on the prediction sample (S710). The encoding device can derive the residual sample by comparing the original sample of the current block with the prediction sample.
[0135] The encoding device encodes image information including prediction information and residual information (S720). The encoding device can output the encoded image information in the form of a bitstream. The prediction information can include prediction mode information (e.g., skip flag, merge flag, or mode index, etc.) and information related to motion information as information related to the prediction procedure. The information related to the motion information can include candidate selection information (e.g., merge index, mvp flag, or mvp index) which is information for deriving a motion vector. Also, the information related to the motion information can include information related to the aforementioned MVD and / or reference picture index information. Also, the information related to the motion information can include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information related to the residual samples. The residual information can include information related to the quantized transform coefficients for the residual samples.
[0136] The output bitstream can be stored in a (digital) storage medium and transmitted to the decoding device, or can also be transmitted to the decoding device via a network.
[0137] On the other hand, as described above, the encoding device can generate a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference samples and the residual samples. This is to derive the same prediction result in the encoding device as that performed in the decoding device, and through this, the coding efficiency can be improved. Therefore, the encoding device can store the reconstructed picture (or reconstructed samples, reconstructed blocks) in the memory and utilize it as a reference picture for inter prediction. As described above, loop filtering procedures and the like can be further applied to the reconstructed picture.
[0138] The video / image decoding procedure based on inter prediction can generally include, for example, the following.
[0139] FIG. 8 shows an example of a video / image decoding method based on an inter prediction basis.
[0140] As shown in FIG. 8, the decoding device can perform operations corresponding to the operations performed by the encoding device. The decoding device can perform prediction on the current block based on the received prediction information and derive a prediction sample.
[0141] Specifically, the decoding device can determine a prediction mode for the current block based on the received prediction information (S800). The decoding device can determine which inter prediction mode is applied to the current block based on the prediction mode information in the prediction information.
[0142] 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, based on the mode index, one of various inter prediction mode candidates can be selected. The inter prediction mode candidates can include a skip mode, a merge mode, and / or an (A)MVP mode, or can include various inter prediction modes described later.
[0143] The decoding device derives motion information of the current block based on the determined inter prediction mode (S810). For example, when the skip mode or the merge mode is applied to the current block, the decoding device constructs a merge candidate list described later and can select one merge candidate from the merge candidates included in the merge candidate list. The selection can be performed based on the selection information (merge index) described above. The motion information of the selected merge candidate can be used to derive the motion information of the current block. The motion information of the selected merge candidate can be used as the motion information of the current block.
[0144] As another example, when the (A)MVP mode is applied to the current block, the decoding device constructs an (A)MVP candidate list to be described later, and among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list, the motion vector of the selected mvp candidate can be used as the mvp of the current block. The selection can be performed 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. Also, the reference picture index of the current block can be derived based on the reference picture index information. The picture pointed to by the reference picture index within the reference picture list regarding the current block can be derived as the reference picture to be referred to for the inter prediction of the current block.
[0145] On the other hand, as will be described later, the motion information of the current block can be derived without constructing a candidate list, and in this case, the motion information of the current block can be derived by the procedure disclosed in the prediction mode to be described later. In this case, the candidate list construction as described above can be omitted.
[0146] The decoding device can generate a prediction sample 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 prediction sample of 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, in some cases, a prediction sample filtering procedure can be further performed on all or part of the prediction samples of the current block.
[0147] For example, the inter prediction unit of the decoding device can 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 received prediction mode information. The motion information derivation unit derives the motion information (such as a motion vector and / or a reference picture index, etc.) of the current block based on the information related to the received motion information. The prediction sample derivation unit can derive the prediction sample of the current block.
[0148] The decoding device generates a residual sample for the current block based on the received residual information (S830). The decoding device can generate a restored sample for the current block based on the prediction sample and the residual sample, and generate a restored picture based on this (S840). As described above, an in-loop filtering procedure or the like can be further applied to the restored picture.
[0149] FIG. 9 exemplarily shows an inter prediction procedure.
[0150] Referring to FIG. 9, as described above, the inter prediction procedure can include an inter prediction mode determination step, a motion information derivation step according to the determined prediction mode, and a prediction execution (prediction sample generation) step based on the derived motion information. As described above, the inter prediction procedure can be performed by the encoding device and the decoding device. In this document, the coding device can include the encoding device and / or the decoding device.
[0151] As shown in FIG. 9, the coding device determines an inter prediction mode for the current block (S900). For the prediction of the current block within a picture, various inter prediction modes can be used. For example, various modes such as a merge mode, a skip mode, an MVP (motion vector prediction) mode, an Affine mode, a sub-block merge mode, an MMVD (merge with MVD) mode, etc. can be used. A DMVR (Decoder side motion vector refinement) mode, an AMVR (adaptive motion vector resolution) mode, Bi-prediction with CU-level weight (BCW), Bi-directional optical flow (BDOF), etc. can be used additionally or alternatively as accompanying modes. The Affine mode can also be called an affine motion prediction mode. The MVP mode can also be called an AMVP (advanced motion vector prediction) mode. In this document, motion information candidates derived by some modes and / or some modes can 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 of the merge / skip mode, or can be added as an mvp candidate of the MVP mode. When the HMVP candidate is used as a motion information candidate of the merge mode or the skip mode, the HMVP candidate can be called an HMVP merge candidate.
[0152] Prediction mode information indicating the inter prediction mode of the current block can be signaled from an encoding device to a decoding device. The prediction mode information can be included in a bitstream and received by the decoding device. The prediction mode information can include index information indicating one of a plurality of candidate modes. Alternatively, the inter prediction mode can also be indicated via hierarchical signaling of flag information. In this case, the prediction mode information can include one or more flags. For example, a skip flag is signaled to indicate whether the skip mode can be applied. When the skip mode is not applied, a merge flag is signaled to indicate whether the merge mode can be applied. When the merge mode is not applied, it can be indicated that the MVP mode is applied, or a flag for additional classification can also be signaled. The affine mode can be signaled as an independent mode, or can also be signaled as a mode subordinate to a merge mode or an MVP mode, etc. For example, the affine mode can include an affine merge mode and an affine MVP mode.
[0153] The coding device derives motion information for the current block (S910). The motion information derivation can be derived based on the inter prediction mode.
[0154] The coding device can perform inter prediction using the motion information of the current block. The encoding device can derive the optimal motion information for the current block through a motion estimation procedure. For example, the encoding device can search for a highly correlated similar reference block within a determined search range in the reference picture in units of fractional pixels using the original block in the original picture for the current block, and derive the motion information through this. The similarity of the blocks can be derived based on the difference in sample values on a phase basis. For example, the similarity of the blocks can be calculated based on the SAD between the current block (or a template of the current block) and the reference block (or a template of the reference block). In this case, the 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 inter prediction mode.
[0155] The coding device performs inter prediction based on the motion information for the current block (S920). The coding device can derive prediction samples (etc.) for the current block based on the motion information. The current block including the prediction samples can be called a predicted block.
[0156] On the other hand, as described above, the quantization unit of the encoding device applies quantization to the transform coefficients to derive quantized transform coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can apply inverse quantization to the quantized transform coefficients to derive the transform coefficients.
[0157] Generally, in video / video coding, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From the perspective of implementation, instead of directly using the quantization rate considering complexity, a quantization parameter (QP) is used. For example, quantization parameters with integer values from 0 to 63 are used, and each quantization parameter value can correspond to an actual quantization rate. Also, for example, different settings are possible for the quantization parameter (QPY) for the luma component (luma samples) and the quantization parameter (QPC) for the chroma component (chroma samples).
[0158] The quantization process takes the transform coefficient (C) as input, divides it by the quantization rate (Qstep), and based on this, the quantized transform coefficient (C') can be obtained. In this case, considering the computational complexity, a scale is multiplied by the quantization rate to make it in integer form, and a shift operation can be performed by the value 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 the QP. For example, the quantization scale can be applied to the transform coefficient (C), and based on this, the quantized transform coefficient (C') can also be derived.
[0159] The inverse quantization process is the reverse process of the quantization process. By multiplying the quantized transform coefficient (C') by the quantization rate (Qstep), the restored transform coefficient (C'') can be obtained based on this. In this case, a level scale is derived by the quantization parameter, and the level scale is applied to the quantized transform coefficient (C'), and based on this, the restored transform coefficient (C'') is derived. The restored transform coefficient (C'') may have a slight difference from the original transform coefficient (C) due to the loss in the transform and / or quantization process. Therefore, the inverse quantization is also performed in the encoding device as in the decoding device.
[0160] On the one hand, an adaptive frequency weighting quantization technique for adjusting quantization strength according to frequency can be applied. The adaptive frequency weighting quantization technique is a method of applying different quantization strengths for different frequencies. The adaptive frequency weighting quantization can apply different quantization strengths for different frequencies using a predefined quantization scaling metric. That is, the aforementioned quantization / inverse quantization process can be performed based on the quantization scaling metric. 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. The quantization scaling metric may be referred to as a quantization metric or a scaling metric. The quantization scaling metric may be predefined. Also, for frequency adaptive scaling, frequency-specific quantization scale information for the quantization scaling metric is configured / encoded in the encoding device and signaled to the decoding device. The frequency-specific quantization scale information may be referred to as quantization scaling information. The frequency-specific quantization scale information includes scaling_list_data. The (modified) quantization scaling metric is derived based on the scaling_list_data. Also, the frequency-specific quantization scale information includes present flag information indicating the presence or absence of the scaling_list_data. Alternatively, when the scaling_list_data is signaled at a higher level (e.g., SPS), information indicating whether the scaling_list_data is modified at a lower level of the higher level (e.g., PPS or tile group header, etc.) is further included.
[0161] As described above, quantization / inverse quantization is applied to the luma component and the chroma component based on the quantization parameter.
[0162] 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.
[0163] For example, information regarding the derivation of the quantization parameter is signaled via the SPS (sequence parameter set) as shown in the following table.
[0164] [Table 1]
[0165] The semantics for the syntax elements in Table 1 above are as shown in the following table.
[0166] [Table 2]
[0167] For example, the syntax element bit_depth_luma_minus8 indicates the bit depth BitDepthY of the samples in the luma array and the luma quantization parameter range offset QpBdOffsetY. That is, for example, the BitDepthY and the QpBdOffsetY can be derived based on the syntax element bit_depth_luma_minus8. For example, the BitDepthY is derived as the value obtained by adding 8 to the value of the syntax element bit_depth_luma_minus8, and the QpBdOffsetY is derived as the value obtained by multiplying the value of the syntax element bit_depth_luma_minus8 by 6. Also, the bit_depth_luma_minus8 can be in the range of 0 to 8.
[0168] Also, for example, the syntax element bit_depth_chroma_minus8 indicates BitDepthc, which is the bit depth of the samples in the chroma array, and QpBdOffsetc, which is the chroma quantization parameter range offset. That is, for example, the BitDepthc and the QpBdOffsetc can be derived based on the syntax element bit_depth_chroma_minus8. For example, the BitDepthc is derived as a value obtained by adding 8 to the value of the syntax element bit_depth_chroma_minus8, and the QpBdOffsetc is derived as a value obtained by multiplying the value of the syntax element bit_depth_chroma_minus8 by 6. Also, the bit_depth_chroma_minus8 can be in the range of 0 to 8.
[0169] Also, for example, information regarding the derivation of quantization parameters is signaled via a PPS (picture parameter set) as shown in the following table. The information includes a Chroma Cb offset, a Chroma Cr offset, a joint chroma offset, and an initial quantization parameter. That is, the information includes syntax elements for the Chroma Cb offset, the Chroma Cr offset, the joint chroma offset, and the initial quantization parameter.
[0170] [Table 3]
[0171] The semantics for the syntax elements in Table 3 above are as shown in the following table.
[0172]
Table 4
[0173] For example, the value obtained by adding 26 to the syntax element init_qp_minus26 indicates the initial value of SliceQpY for each slice that refers to the PPS. When a non-zero value of slice_qp_delta is decoded, the initial value of the SliceQpY can be modified in the slice layer. The init_qp_minus26 0 can be in the range of -(26 + QpBdOffsetY) to +37.
[0174] Also, for example, the syntax elements pps_cb_qp_offset and pps_cr_qp_offset indicate the offsets for the luma quantization parameter Qp’Y used for the derivation of Qp’Cb and Qp’Cr, respectively. The pps_cb_qp_offset and pps_cr_qp_offset can be in the range of -12 to +12. Also, when ChromaArrayType is 0, the pps_cb_qp_offset and pps_cr_qp_offset may not be used in the decoding process, and the decoding device can ignore the values of the syntax elements.
[0175] Also, for example, the syntax element pps_joint_cbcr_qp_offset indicates an offset with respect to the luma quantization parameter Qp’Y used for the derivation of Qp’CbCr. The pps_joint_cbcr_qp_offset may be in the range of -12 to +12. Also, when ChromaArrayType is 0, the pps_joint_cbcr_qp_offset may not be used in the decoding process, and the decoding device can ignore the value of the syntax element.
[0176] Also, 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 related slice header. For example, a pps_slice_chroma_qp_offsets_present_flag with a value of 1 indicates that they are present in the slice header related to slice_cb_qp_offset and slice_cr_qp_offset. Also, for example, a pps_slice_chroma_qp_offsets_present_flag with a value of 0 indicates that they are not present in the slice header related to slice_cb_qp_offset and slice_cr_qp_offset. Also, when ChromaArrayType is 0, the pps_slice_chroma_qp_offsets_present_flag seems to be 0 in the decoding process.
[0177] As described above, the syntax elements parsed in the PPS can 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 that refers to the PPS. Also, the syntax elements pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset indicate the offset with respect to the luma quantization parameter Qp’Y. Further, the syntax element pps_slice_chroma_qp_offsets_present_flag indicates whether the offset parameter exists in the slice header.
[0178] Also, for example, information regarding the derivation of quantization parameters can be signaled as shown in the following table via a slice header.
[0179] [Table 5]
[0180] The semantics for the syntax elements in the above Table 5 are as shown in the following table.
[0181] [Table 6-1]
[0182] [Table 6-2]
[0183] For example, slice_qp_delta indicates the initial value of QpY used for coding blocks within a slice until it is modified by the value of CuQpDeltaVal in the coding unit layer. For example, the initial value of QpY for a slice, SliceQpY, is derived as 26 + init_qp_minus26 + slice_qp_delta. The value of SliceQpY can be in the range of -QpBdOffsetY to +63.
[0184] Also, for example, slice_cb_qp_offset indicates the difference added to the value of pps_cb_qp_offset when determining the value of quantization parameter Qp’Cb. 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, the slice_cb_qp_offset is inferred to be 0. The value of pps_cb_qp_offset + slice_cb_qp_offset can be in the range of -12 to +12.
[0185] Also, for example, slice_cr_qp_offset indicates the difference added to the value of pps_cr_qp_offset when determining the value of quantization parameter Qp’Cr. 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, the slice_cr_qp_offset is inferred to be 0. The value of pps_cr_qp_offset + slice_cr_qp_offset can be in the range of -12 to +12.
[0186] Also, for example, slice_cbcr_qp_offset indicates the difference added to the value of pps_cbcr_qp_offset when determining the value of quantization parameter Qp’CbCr. 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, the slice_cbcr_qp_offset is inferred as 0. The value of pps_cbcr_qp_offset + slice_cbcr_qp_offset can be in the range of 12 to +12.
[0187] The derivation process for the luma and chroma quantization parameters starts from the fact that the input to the process is a variable specifying the luma location, 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 described above, the luma quantization parameter, the chroma quantization parameter, and the joint chroma quantization parameter can be denoted as Qp’Y, Qp’Cb, Qp’Cr, and Qp’CbCr.
[0188] On the other hand, for example, a syntax element cu_qp_delta_sign_flag indicating the sign of CuQpDeltaVal is parsed. For example, the cu_qp_delta_sign_flag can indicate the sign of CuQpDeltaVal as follows.
[0189] For example, when the cu_qp_delta_sign_flag is 0, the CuQpDeltaVal corresponding to the cu_qp_delta_sign_flag has a positive value. Or, for example, when the cu_qp_delta_sign_flag is 1, the CuQpDeltaVal corresponding to the cu_qp_delta_sign_flag has a negative value. Also, when the cu_qp_delta_sign_flag does not exist, the cu_qp_delta_sign_flag is regarded as 0.
[0190] Also, for example, when 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 CuQpDeltaVal can be in the range of -(32 + QpBdOffsetY / 2) to +(31 + QpBdOffsetY / 2).
[0191] After that, for example, the luma quantization parameter Qp’Y is derived as follows.
[0192]
Equation
[0193] Also, when ChromaArrayType is not 0 and treeType is SINGLE_TREE or DUAL_TREE_CHROMA, the following applies.
[0194] - When treeType is like DUAL_TREE_CHROMA, the variable QpY can be set to be the same as the luma quantization parameter QpY of the luma coding unit including the luma position (xCb + cbWidth / 2, yCb + cbHeight / 2).
[0195] - The variables qPCb, qPCr, and qPCbCr are derived as follows.
[0196]
Equation
[0197] For example, when ChromaArrayType is 1, the variables qPCb, qPCr, and qPCbCr can be set to the same QpC values specified in Table 7 below based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0198]
Table 7
[0199] Or, when ChromaArrayType is not 1, the variables qPCb, qPCr, and qPCbCr can be set to be the same as Min(qPi, 63) based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0200] - The chroma quantization parameters for the Cb and Cr components, Qp’Cb and Qp’Cr, and the chroma quantization parameter Qp’CbCr for joint Cb - Cr coding are derived as follows.
[0201]
Equation
[0202] On the other hand, this document proposes a solution for improving the coding efficiency in the quantization / inverse quantization process.
[0203] As an embodiment, when ChromaArrayType is not 0 (for example, when ChromaArrayType is 1), instead of obtaining the chroma quantization parameter value from the luma quantization parameter value through the chroma quantization mapping table predefined in the existing VVC draft 5 v.7, this document proposes a method in which the user defines a chroma quantization mapping table (user defined Chroma Quantization Table) and uses it. In the VVC specification text (for example, VVC draft 5 v.7), when qPi (luma quantization parameter value) is given, Qpc (chroma quantization parameter value) is derived through the predefined chroma quantization table (for example, Table 7 mentioned above), but this document proposes a method of deriving Qpc from qPi based on the chroma quantization mapping table newly defined by the user. According to the embodiment of this document, the Qpc value is derived from the functional relationship of the qPi value, and the function can be signaled in the syntax such as APS, SPS, or PPS by the user defined functionality method. The functional relationship proposes a method of transmitting the values of the predefined syntax elements and defining the chroma quantization table mapping by the user based on the transmitted values. As an example, since the Qpc value can be derived from the functional relationship of the qPi value, when the syntax element value indicating the function is transmitted, the chroma quantization mapping table (a user defined Chroma Quantization Table) defined by the user can be derived in the form of Table 7.
[0204] As an embodiment, a scheme for signaling information regarding a syntax element (Qpc_data) indicating a chroma quantization mapping related function as shown in the table described later in APS (adaptation parameter set) is proposed.
[0205]
Table 8
[0206] Referring to Table 8 above, when the aps_params_type indicates Qpc_APS, for example, when the value of the aps_params_type is 2, Qpc_data() is signaled.
[0207] The semantics for the syntax elements in Table 8 above are as follows in the following table.
[0208]
Table 9
[0209] For example, the syntax element adaptation_parameter_set_id provides an identifier of the APS that is referred to by other syntax elements.
[0210] Also, for example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, the 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, and the 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.
[0211] Also, for example, the syntax element aps_extension_data_flag can have any value. The presence and value of the aps_extension_data_flag may not affect the decoder compliance with the profile specified in this version of the standard. For example, a decoding device that complies with this version of the standard can ignore all syntax elements aps_extension_data_flag.
[0212] Also, for example, as shown in Table 10 below, the syntax element aps_params_type indicates the type of APS parameters included in APS.
[0213]
Table 10
[0214] For example, referring to Table 10, when the value of the syntax element aps_params_type is 0, the syntax element aps_params_type indicates that the type of APS parameter is an ALF parameter; when the value of the syntax element aps_params_type is 1, the syntax element aps_params_type indicates that the type of APS parameter is an LMCS parameter; when the value of the syntax element aps_params_type is 2, the syntax element aps_params_type indicates that the type of APS parameter is a Qpc parameter. The Qpc data parameter can indicate a chroma quantization data parameter.
[0215] Also, this document proposes another embodiment for signaling information regarding quantization parameters.
[0216] For example, in this embodiment, a solution for signaling user defined QpC data in the PPS (picture parameter set) is proposed. As an example for executing the solution proposed in this embodiment, a flag indicating whether the PPS contains user defined data may be introduced in the SPS. That is, a flag indicating whether the PPS contains user defined data is signaled in the SPS. Also, according to this embodiment, the user defined data is signaled in the PPS. Or, the user defined data may be signaled in the slice header and / or other header sets.
[0217] The flag indicating whether the PPS contains user defined data is signaled as shown in the following table.
[0218]
Table 11
[0219] For example, the syntax element Qpc_data_default_flag may be the syntax element of the aforementioned flag. The syntax element Qpc_data_default_flag indicates whether 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 the default table is used to assist in the determination of chroma quantization. Here, the default table is as shown in Table 7 above. Also, for example, a Qpc_data_default_flag of 1 indicates that the Qpc_data() parameter exists in the PPS RBSP syntax structure.
[0220] Also, the user-defined data signaled in the PPS according to this embodiment is as shown in the following table.
[0221]
Table 12
[0222] On the other hand, for example, Qpc_data() contains information necessary for chroma quantization derivation when ChromaArrayType is 1.
[0223] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0224] For example, in this embodiment, a flexible structure for chroma quantization coefficient (Quantization Parameter: QP) derivation and combined chroma QP derivation is proposed. This embodiment proposes a scheme for signaling an initial flag indicating the presence or absence of a user-defined mode in which parameters that can be used for functions for deriving chroma quantization coefficients (QP) in SPS and / or PPS can be used.
[0225] For example, the flag information signaled in the high level syntax proposed in this embodiment is as shown in the following table.
[0226]
Table 13
[0227] For example, the Qpc_data_present_flag indicates whether there is a parameter for deriving the chroma quantization coefficient in the high-level syntax RBSP syntax structure. For example, a Qpc_data_present_flag of 0 indicates that there is no chroma quantization parameter in the high-level syntax RBSP syntax structure. Also, for example, a Qpc_data_present_flag of 1 indicates that there is a chroma quantization parameter in the high-level syntax RBSP syntax structure.
[0228] Alternatively, the syntax element Qpc_data_present_flag may also be used to indicate the usage scenario of chroma quantization derivation in the bitstream. For example, the Qpc_data_present_flag can indicate the use of a tool or user-defined mode used for chroma quantization derivation as follows.
[0229] For example, the Qpc_data_present_flag indicates whether user-defined chroma quantization is used in the bitstream. For example, a Qpc_data_present_flag of 0 indicates that user-defined chroma quantization is not used in the bitstream. Also, for example, a Qpc_data_present_flag of 1 indicates that user-defined chroma quantization is used alone or together with other flags.
[0230] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0231] For example, in this embodiment, an embodiment is proposed for how chroma quantization parameters (QPs), namely Qp'Cb, Qp'Cr, and Qp'CbCr, are derived using user defined information signaled in one function. For example, according to this embodiment, data indicating a function for deriving chroma quantization parameters (QPs) is signaled, and chroma quantization parameters are derived based on the chroma quantization data. The data for deriving the chroma quantization coefficients (or, user defined QP mapping table) is signaled as shown in the following table.
[0232]
Table 14
[0233] The semantics for the syntax elements in Table 14 above are as shown in the following table.
[0234]
Table 15
[0235] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization.
[0236] 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 QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used for QpC derivation can be derived as shown in the following equation.
[0237]
Equation
[0238] Also, for example, the syntax element QpC_qPi_val[i] indicates the QpC value for the i-th index.
[0239] Also, for example, the syntax element QpOffsetC indicates the offset value used for the derivation of QpC.
[0240] Also, for example, the variable QpCIdx[qPi] for qPi can be derived as follows. Here, the qPi can be from 0 to qPiMaxIdx.
[0241] - When -qPi < qPi_min_idx, QpCIdx[qPi] is set to be the same as qPi.
[0242] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to be the same as QpC_qPi_val[qPi].
[0243] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - QpOffsetC.
[0244] After that, the value of QpC is derived as QpCIdx[qPi].
[0245] For example, when describing the process of deriving quantization parameters according to this embodiment in a standard format, it is as shown in the following table.
[0246]
Table 16 - 1
[0247]
Table 16 - 2
[0248]
Table 16-3
[0249]
Table 16-4
[0250] Referring to Table 16 above, the derivation process for the luma and chroma quantization parameters starts from the fact that the input to the process is the luma position (xCb, yCb), the variables cbWidth and cbHeight that specify the width and height of the current coding block, and the variable treeType that specifies whether it is a single tree or a dual tree. On the other hand, as described above, the luma quantization parameter and the chroma quantization parameter are denoted as Qp’Y, Qp’Cb, and Qp’Cr.
[0251] In addition, this document proposes another embodiment for signaling information regarding quantization parameters.
[0252] For example, this embodiment proposes an example of using a syntax element that can be used to control the derivation of quantization parameters by having a flag in the SPS have a user defined mode or a default mode. An example of a syntax element that can be used to derive quantization parameters is as follows. On the other hand, the structure of the syntax element is an example, and the structure is not limited to the structure shown in the following table.
[0253]
Table 17
[0254]
Table 18
[0255]
Table 19
[0256] For example, the syntax element Qpc_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a Qpc_data_default_flag of 0 indicates that the user-defined mode is used for the derivation of 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. Also, when the syntax element Qpc_data_default_flag does not exist, the syntax element Qpc_data_default_flag is regarded as 1.
[0257] On the other hand, when the user-defined mode is used, the corresponding slice header, tile group / header, or other appropriate header is used for the signaling of the APS ID. For example, a syntax element indicating the APS ID can be signaled via the slice header as shown in Table 18 above.
[0258] For example, the syntax element slice_QpC_aps_id indicates the adaptation_parameter_set_id of the QpC APS to which the slice refers. The TemporalId of a QpC APS NAL unit having an adaptation_parameter_set_id such as slice_QpC_aps_id is less than or equal to the TemporalId of the coded slice NAL unit. When multiple QpC APSs having the same value of adaptation_parameter_set_id are referred to by two or more slices of the same picture, the multiple QpC APSs having the same value of adaptation_parameter_set_id can have the same content.
[0259] Also, the APS structure for transmitting the chroma quantization data proposed in this embodiment is as shown in Table 19 above.
[0260] For example, the syntax element adaptation_parameter_set_id can provide an identifier of an APS referred to by other syntax elements.
[0261] Also, for example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, the 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, and the 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.
[0262] Also, for example, the syntax element aps_extension_data_flag can have any value. The presence and value of the aps_extension_data_flag may not affect decoder compliance with the profile specified in this version of the standard. For example, a decoding device that complies with this version of the standard can ignore all syntax elements aps_extension_data_flag.
[0263] Also, for example, the syntax element aps_params_type indicates the type of APS parameters included in APS, as shown in Table 10 above.
[0264] The QpC_data() disclosed in Table 19 above is signaled as shown in the following table.
[0265]
Table 20
[0266] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization.
[0267] 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 QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used for QpC derivation can be derived as shown in Equation 4 above.
[0268] Also, for example, the value obtained by adding 1 to the syntax element QpC_prec_minus1 indicates the number of bits used for the representation of the syntax lmcs_delta_abs_cw[i]. The value of QpC_prec_minus1 can be in the range of 0 to BitDepthY - 2.
[0269] Also, for example, the syntax element QpC_init_val indicates the QpC value corresponding to qPi_min_idx.
[0270] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the QpC value for the i-th index.
[0271] Also, for example, the syntax element QpOffsetC indicates the offset value used for the derivation of QpC.
[0272] For example, the variable QpCIdx[qPi] for qPi is derived as follows. Here, the qPi can be from 0 to qPiMaxIdx.
[0273] When -qPi < qPi_min_idx, QpCIdx[qPi] is set to be the same as qPi.
[0274] When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0275] When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - QpOffsetC.
[0276] After that, the value of QpC can be derived as QpCIdx[qPi].
[0277] As in the foregoing embodiments, the chroma quantization parameters, i.e., 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.
[0278] 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.
[0279]
Table 21-1
[0280]
Table 21-2
[0281]
Table 21-3
[0282]
Table 21-4
[0283]
Table 21-5
[0284] Referring to Table 21 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr are derived based on user-defined information signaled as proposed in this embodiment. When ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr are derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0285] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0286] For example, this embodiment proposes a syntax element that can be used to control the derivation of quantization parameters by indicating whether the flag of the SPS is in user-defined mode or default mode. Specifically, this embodiment proposes a scheme 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 structure shown in the following table.
[0287]
Table 22
[0288] For example, the syntax element qPi_min_idx indicates the minimum qPi index used for chroma quantization.
[0289] 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 QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used for QpC derivation can be derived as in Equation 4 above.
[0290] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the QpC value for the i-th index.
[0291] Also, for example, the syntax element QpOffsetC indicates the offset value used for QpC derivation as described above.
[0292] 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.
[0293] For example, when describing the process of deriving quantization parameters according to this embodiment in a standard format, it is as shown in the following table.
[0294]
Table 23-1
[0295]
Table 23-2
[0296]
Table 23-3
[0297]
Table 23-4
[0298]
Table 23-5
[0299] Referring to Table 23 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user-defined information signaled as proposed in this embodiment. For example, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived to be the same as the values of QpC based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively, as follows.
[0300] For example, the variable QpCIdx[i] is derived as follows.
[0301] - If i < qPi_min_idx, QpCIdx[qPi] is set to be the same as qPi.
[0302] - If i = qPi_min_idx ··· qPiMaxIdx, QpCIdx[i] is set to QpC_qPi_delta_val[i] + QpCIdx[i - 1].
[0303] - If i > qPiMaxIdx, QpCIdx[i] is set to qPi - QpOffsetC.
[0304] Thereafter, the QpC can be set to the QpCIdx[i].
[0305] Also, referring to Table 23, when ChromaArrayType is 1 and QpC_data_default_flag indicates affirmative (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr are derived from the default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0306] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0307] For example, this embodiment proposes syntax elements for chroma quantization (QpC) derivation parameters in APS (Adaptation Parameter Set). For example, the APS ID can be signaled in the slice header. Also, for example, a flag in PPS (picture parameter set) is proposed to indicate whether a default table is used or a table derived from the information signaled in APS is used. Also, for example, when the default table is not used, an additional control scheme is added to support access to the APS that includes QpC data in the slice header.
[0308] On the other hand, according to existing video / video standards, the chroma QP is derived from the luma QP and can be additionally updated by the signaled chroma QP offset. The existing chroma quantization parameter QpC table can be a default table such as Table 7 described above.
[0309] This embodiment proposes to add a function for signaling the chroma quantization parameter QpC as a function of the index qPi. The APS is used for the integration of the QpC value signaling scheme.
[0310] For example, the APS according to this embodiment is as shown in the following table.
[0311]
Table 24
[0312] For example, the syntax element adaptation_parameter_set_id provides an identifier of the APS that is referenced by other syntax elements.
[0313] Also, for example, the syntax element aps_params_type indicates the type of APS parameters included in the APS, as shown in Table 10 above.
[0314] Also, for example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure. For example, the 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, and the 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.
[0315] Also, for example, the syntax element aps_extension_data_flag has an arbitrary value. The presence and value of the aps_extension_data_flag may not affect the decoder compliance for the profile specified 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.
[0316] QpC_data() disclosed in Table 24 above is signaled as shown in the following table.
[0317] [Table 25]
[0318] 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.
[0319] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation is derived as shown in Equation 4 above.
[0320] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the difference in QpC values for the i-th index. The said difference may be called a delta.
[0321] Also, for example, the syntax element QpCOffsetC_present_flag indicates whether QpOffsetC exists in the bitstream. For example, a QpCOffsetC_present_flag of 1 indicates that QpOffsetC exists in the bitstream. Also, for example, a QpCOffsetC_present_flag of 0 indicates that QpOffsetC does not exist in the bitstream. If QpCOffsetC_present_flag does not exist, QpCOffsetC_present_flag is regarded as 0.
[0322] Also, for example, the syntax element QpOffsetC indicates an offset value used for the derivation of QpC.
[0323] For example, the variable QpCIdx[qPi] for qPi is derived as follows. Here, the qPi can be from 0 to 63.
[0324] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0325] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0326] - When -qPi > qPiMaxIdx, if QpCOffsetC_present_flag is 1, QpCIdx[qPi] is set to qPi - QpOffsetC, and if QpCOffsetC_present_flag is not 1, that is, if QpCOffsetC_present_flag is 0, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0327] After that, the value of QpC is derived from QpCIdx[qPi].
[0328] Also, this embodiment proposes a flag signaled in the PPS as shown in the following table.
[0329]
Table 26
[0330] For example, the syntax element QpC_data_default_flag indicates whether a user defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that the user defined mode is used for deriving quantization parameters. Also, for example, a QpC_data_default_flag of 1 indicates that the aforementioned default table is used for deriving quantization parameters. The default table is as shown in Table 7 above. If QpC_data_default_flag does not exist, QpC_data_default_flag is regarded as 1.
[0331] Furthermore, this embodiment proposes a syntax element signaled in the slice header as shown in the following table.
[0332]
Table 27
[0333] For example, the syntax element slice_QpC_aps_id indicates the adaptation_parameter_set_id of the QpC APS referred to by the slice. The TemporalId of the QpC APS NAL unit having an adaptation_parameter_set_id such as slice_QpC_aps_id is less than or equal to the TemporalId of the coded slice NAL unit. If multiple QpC APSs having the same value of adaptation_parameter_set_id are referred to by two or more slices of the same picture, the multiple QpC APSs having the same value of adaptation_parameter_set_id can have the same content.
[0334] For example, when describing the process of deriving quantization parameters according to this embodiment in a standard format, it can be shown as in the following table.
[0335] [Table 28-1]
[0336] [Table 28-2]
[0337] [Table 28-3]
[0338] [Table 28-4]
[0339] [Table 28-5]
[0340] Referring to Table 28 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr are derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived from the default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0341] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0342] For example, in this embodiment, it is proposed to signal user-defined guidance for chroma quantization in SPS as follows. For example, this embodiment proposes user-defined chroma quantization (QpC). For example, the SPS flag can indicate whether to use the default table for chroma quantization derivation or to derive the content of the table for chroma quantization derivation from the information signaled in SPS.
[0343] 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.
[0344] [Table 29]
[0345] 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.
[0346] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as in Equation 4 above.
[0347] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the QpC value for the i-th index.
[0348] For example, the variable QpCIdx[qPi] is derived as follows.
[0349] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0350] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0351] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0352] After that, the said QpC is set to the said QpCIdx[qPi].
[0353] Also, the flag of the SPS indicating whether to use the default table for chroma quantization derivation proposed in this embodiment or the information signaled for chroma quantization derivation is as shown in the following table.
[0354]
Table 30
[0355] For example, the syntax element QpC_data_default_flag indicates whether the user - defined mode is used for the derivation of quantization parameters. For example, QpC_data_default_flag of 0 indicates that the user - defined mode is used for the derivation of quantization parameters. Also, for example, QpC_data_default_flag of 1 indicates that the default table is used for the derivation of quantization parameters. The said default table is as shown in Table 7 above. Also, when QpC_data_default_flag does not exist, the said QpC_data_default_flag is regarded as 1.
[0356] 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.
[0357]
Table 31-1
[0358]
Table 31-2
[0359]
Table 31-3
[0360]
Table 31-4
[0361]
Table 31-5
[0362] Referring to Table 31 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (that is, for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (that is, for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0363] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters.
[0364] For example, this embodiment proposes adding a function for signaling the chroma quantization parameter QpC as a function of the index qPi. For example, a scheme for signaling syntax elements for a user defined table for deriving quantization parameters in the PPS is proposed, thereby providing the flexibility to switch between the user defined table and the default table for each picture referring to the PPS.
[0365] The syntax elements for the user defined table signaled in the PPS proposed in this embodiment are as shown in the following table.
[0366]
Table 32
[0367] 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.
[0368] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as in the aforementioned Equation 4.
[0369] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the QpC value for the i-th index.
[0370] For example, the variable QpCIdx[qPi] can be derived as follows.
[0371] When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0372] When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0373] When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0374] Thereafter, the QpC is set to the QpCIdx[qPi].
[0375] Also, the flag of the SPS indicating whether to use the default table for chroma quantization derivation proposed in this embodiment or the information signaled for chroma quantization derivation is as shown in the following table.
[0376]
Table 33
[0377] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that the user-defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the above-mentioned chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0378] 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.
[0379] [Table 34-1]
[0380] [Table 34-2]
[0381] [Table 34-3]
[0382] [Table 34-4]
[0383] [Table 34-5]
[0384] Referring to Table 34 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user - defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0385] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0386] For example, this embodiment proposes a general mode for deriving and signaling the chroma quantization parameter QpC.
[0387] For the chroma quantization parameter data QpC_data() for the chroma quantization parameter proposed in this embodiment, it is signaled as shown in the following table.
[0388] [Table 35]
[0389] 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 from 0 to 63.
[0390] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as in the aforementioned Equation 4.
[0391] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the delta of the QpC value for the i-th index.
[0392] For example, the variable QpCIdx[qPi] can be derived as follows.
[0393] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0394] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0395] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0396] Thereafter, the QpC is set to the QpCIdx[qPi].
[0397] Furthermore, this embodiment proposes a scheme for signaling a flag indicating whether to use a default table for chroma quantization derivation or whether the information signaled for chroma quantization derivation is used. The flag can be signaled via a high level syntax such as an SPS (sequence parameter set) or a PPS (picture parameter set). The flag signaled via the high level syntax is as shown in the following table.
[0398]
Table 36
[0399] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is considered to be 1.
[0400] 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.
[0401]
Table 37-1
[0402]
Table 37-2
[0403]
Table 37-3
[0404]
Table 37-4
[0405]
Table 37-5
[0406] Referring to Table 37 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr are derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived from the default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0407] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0408] For example, this embodiment proposes a scheme for deriving a chroma quantization parameter QpC table without offset. This embodiment can be used together with APS or can also be proposed to be used independently. For example, the syntax structure of APS integrated with chroma quantization data is as follows in the following table.
[0409]
Table 38
[0410] 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.
[0411] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as in the aforementioned formula 4.
[0412] Also, for example, the syntax element QpC_qPi_delta_val[i] indicates the difference of the QpC value for the i-th index. The said difference may be called delta.
[0413] For example, the variable QpCIdx[qPi] is derived as follows. Here, the qPi can be from 0 to 63.
[0414] When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0415] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi] + QpCIdx[qPi - 1].
[0416] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0417] Then, the QpC is set to the QpCIdx[qPi].
[0418] In addition, this document proposes another embodiment for signaling information related to quantization parameters.
[0419] For example, this embodiment presents, as an example, a scheme where the delta (or difference) between consecutive QpC values is limited to 1.
[0420] For example, this embodiment proposes a scheme of adding user - defined chroma quantization (QpC) to existing video / video standards. For example, the flag in the SPS (sequence parameter set) proposed in this embodiment indicates whether to use an existing default table for chroma quantization parameter derivation or to derive the content of the table based on the information signaled in the SPS. According to this embodiment, a scheme suitable for the video coded with the acceptance of user - defined chroma quantization can be selected, and the coding efficiency can be improved.
[0421] For example, this embodiment proposes to add a function of signaling chroma quantization (QpC) as a function of the index qPi using syntax elements as shown in the following table.
[0422]
Table 39
[0423] 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 1 to 63.
[0424] 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 QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as in the above-mentioned formula 4.
[0425] Also, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] can indicate whether the i-th QpC value increases by 1 compared to the (i - 1)-th QpC value. For example, QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and QpC_qPi_flag[i] of 0 indicates that the QpC value does not increase.
[0426] For example, the variable QpCIdx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0427] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0428] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0429] When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi-(qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0430] Thereafter, the QpC is set to the QpCIdx[qPi].
[0431] In addition, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or information signaled for chroma quantization derivation is used. The flag can be signaled via a high level syntax such as an SPS (sequence parameter set) or a PPS (picture parameter set). The flag signaled via the high level syntax is as shown in the following table.
[0432] [Table 40]
[0433] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that the user-defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the above-mentioned chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0434] 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.
[0435] [Table 41-1]
[0436] [Table 41-2]
[0437] [Table 41-3]
[0438] [Table 41-4]
[0439] [Table 41-5]
[0440] Referring to Table 41 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), qPCb, variable qPCr, and qPCbCr can be derived based on the user - defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0441] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0442] For example, this embodiment proposes an example of a data - signaling structure for chroma QP derivation. Specifically, this embodiment proposes a scheme of adding a chroma_qp_mapping_flag, which is a new syntax element in the SPS. For example, when the value of the chroma_qp_mapping_flag is 0, a default chroma QP mapping table can be used for the derivation of chroma quantization parameters. Also, for example, when the value of the 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.
[0443] [Table 42]
[0444] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that a chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 42 above is used for deriving chroma quantization parameters. When the QpC_data_default_flag is 0, the chroma quantization parameter data shown in Table 42 above can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for deriving quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0445] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the number of points at which the mapping function does not increase.
[0446] Also, for example, the syntax element qPi_min_idx_minus1 indicates the first element of the set of points at which the mapping function does not increase.
[0447] Also, for example, the syntax element QpC_qPi_flag[i] indicates the delta value between the i-th element and the (i - 1)-th element of the set of points at which the mapping function does not increase.
[0448] The chroma QP mapping table can be derived as follows based on the chroma quantization parameter data shown in Table 42.
[0449] For example, the variable cQpFlatSize can be derived as follows in the following mathematical formula.
[0450]
Equation
[0451] Also, for example, the variable cQpFlat[] can be derived as follows in the following table.
[0452]
Table 43
[0453] After that, the chroma QP mapping table can be derived as follows in the following table based on the variable cQpFlatSize and the variable cQpFlat[].
[0454]
Table 44
[0455] In addition, this document proposes another embodiment for signaling information related to quantization parameters.
[0456] For example, this embodiment proposes adding chroma_qp_mapping_flag, which is a new syntax element in the SPS. For example, when the value of the chroma_qp_mapping_flag is 0, the default chroma QP mapping table is used for deriving the chroma quantization parameters. Also, for example, when the value of the chroma_qp_mapping_flag is 1, the syntax elements used for deriving the chroma QP mapping table are signaled as follows in the following table.
[0457]
Table 45
[0458] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 42 above is used for the derivation of chroma quantization parameters. When the QpC_data_default_flag is 0, the chroma quantization parameter data shown in Table 42 above is signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is considered to be 1.
[0459] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the number of points at which the mapping function does not increase.
[0460] Also, for example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the first element of the set of points at which the mapping function does not increase.
[0461] Also, for example, the value obtained by adding 1 to the syntax element QpC_qPi_idx_minus1[i] indicates 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.
[0462] Based on the chroma quantization parameter data shown in Table 45, the chroma QP mapping table can be derived as follows.
[0463] For example, the variable cQpFlatSize can be derived as shown in Equation 5 above.
[0464] Also, for example, the variable cQpFlat[] can be derived as shown in the following table.
[0465] [Table 46]
[0466] Then, based on the variable cQpFlatSize and the variable cQpFlat[], the chroma QP mapping table can be derived. For example, the chroma QP mapping table is derived as shown in Table 44 above.
[0467] This document also proposes another embodiment for signaling information regarding quantization parameters.
[0468] For example, this embodiment proposes a scheme for signaling an individual table for each chroma component. That is, for example, this embodiment proposes a scheme for signaling the syntax elements used to derive the chroma QP mapping table for each chroma component.
[0469] For example, the chroma QP mapping table for each chroma component is derived, and the syntax elements for each chroma component can be signaled as shown in the following table.
[0470]
Table 47
[0471] 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 one luma-chroma quantization parameter mapping table is applied to the Cb residual, Cr residual, and CbCr residual. For example, when 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 when the value of qp_luma_to_chroma_joint_map_flag is 0, individual luma-chroma quantization parameter mapping tables are used for each of the chroma components Cb, Cr, and CbCr.
[0472] Also, for example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx_minus1 can be in the range of 1 to 63.
[0473] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the delta value between Qpi_min_idx and the maximum qPi index used for chroma QpC 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. The maximum index qPiMaxIdx used for QpC derivation is derived as follows.
[0474] [Number]
[0475] Also, for example, the syntax element QpC_qPi_flag[j] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i][j] indicates whether the j-th QpC value of the i-th chroma component increases by 1 compared to the (j - 1)-th QpC value. For example, a QpC_qPi_flag[j] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[j] of 0 indicates that the QpC value has not increased.
[0476] For example, the variable QpCIdx[i][qPi] can be derived as follows. Here, the qPi can be from 0 to maxQp.
[0477] When -qPi < qPi_min_idx_minus1 + 1, QpCIdx[qPi] is set to be the same as qPi.
[0478] When -qPi = qPi_min_idx_minus1 + 1 ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0479] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0480] Thereafter, the value of the QpC can be derived from the QpCIdx[i][qPi].
[0481] On the other hand, according to the present embodiment, a flag indicating whether a syntax element used to derive a chroma QP mapping table by SPS is signaled or a default table is used can be signaled. For example, the flag is signaled as shown in the following table.
[0482]
Table 48
[0483] The syntax element QpC_data_default_flag indicates whether a user - defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user - defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that a chroma QP mapping table derived based on the chroma quantization parameter data shown in Table 47 above is used for the derivation of chroma quantization parameters. When the QpC_data_default_flag is 0, the chroma quantization parameter data shown in Table 47 above is signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0484] For example, when describing the process of deriving quantization parameters according to this embodiment in a standard format, it can be shown as in the following table.
[0485]
Table 49-1
[0486]
Table 49-2
[0487]
Table 49-3
[0488]
Table 49-4
[0489]
Table 49-5
[0490] Referring to Table 49 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr are derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr are derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0491] In addition, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a scheme for signaling the maximum difference between a starting point and an end point by signaling the end point with a delta relative to the maximum QP. That is, for example, according to this embodiment, a syntax element indicating the delta value between the maxQp used for chroma QpC derivation and the maximum qPi index is signaled.
[0492] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameters proposed in this embodiment is signaled as shown in the following table.
[0493]
Table 50
[0494] 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.
[0495] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between maxQp and the maximum qPi index used for chroma QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as shown in the following formula.
[0496]
Equation
[0497] Also, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value increases by 1 compared to the (i - 1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value has not increased.
[0498] For example, the variable QpCIdx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0499] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0500] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0501] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0502] After that, the QpC is set to the QpCIdx[qPi].
[0503] In addition, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or information signaled for chroma quantization derivation is used. The flag can be signaled via a high-level syntax such as an SPS (sequence parameter set) or a PPS (picture parameter set). The flag signaled via the high-level syntax is as shown in the following table.
[0504]
Table 51
[0505] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for the derivation of quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for the derivation of quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the above-mentioned chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for the derivation of quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0506] For example, when the process of deriving quantization parameters according to this embodiment is described in a standard format, it can be shown as in the following table.
[0507]
Table 52-1
[0508]
Table 52-2
[0509]
Table 52-3
[0510]
Table 52-4
[0511]
Table 52-5
[0512] Referring to Table 52 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by the default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0513] Also, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes signaling the maximum difference between the starting point and the end point by signaling the end point as the delta with respect to the maximum QP or the difference between the value obtained by adding the delta to the starting point and the starting point.
[0514] For the chroma quantization parameter data QpC_data() for the chroma quantization parameter proposed in this embodiment, it is signaled as shown in the following table.
[0515]
Table 53
[0516] For example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 1 to maxQp.
[0517] Also, for example, the syntax element is_delta_maxQp indicates whether the maximum index qPiMaxIdx is derived from the maxQp value. For example, an is_delta_maxQp of 1 indicates that qPiMaxIdx is derived from the maxQp value. Also, for example, an is_delta_maxQp of 0 indicates that qPiMaxIdx is derived from the syntax element qPi_min_idx_minus1.
[0518] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the delta value between maxQp and the maximum qPi index used for chroma QpC 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. The maximum index qPiMaxIdx used for QpC derivation can be derived as shown in the following table.
[0519]
Table 54
[0520] Also, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value increases by 1 compared to the (i - 1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value does not increase.
[0521] For example, the variable QpCIdx[qPi] is derived as follows. Here, the qPi can be from 0 to maxQp.
[0522] - When -qPi < qPi_min_idx_minus1 + 1, QpCIdx[qPi] is set to be the same as qPi.
[0523] - When -qPi = qPi_min_idx_minus1 ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0524] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0525] After that, the QpC is set to the QpCIdx[qPi].
[0526] 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 follows.
[0527]
Table 55
[0528] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving quantization parameters. For example, a QpC_data_default_flag of 0 indicates that the user-defined mode is used for deriving quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() is signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for deriving quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0529] 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.
[0530] [Table 56-1]
[0531] [Table 56-2]
[0532] [Table 56-3]
[0533] [Table 56-4]
[0534] [Table 56-5]
[0535] Referring to Table 56 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on user - defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0536] Also, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes signaling the maximum difference between the starting point and the end point by signaling the end point as a delta with respect to the maximum QP or as the difference between the value obtained by adding a delta to the starting point and the starting point.
[0537] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameters proposed in this embodiment is signaled as shown in the following table.
[0538] [Table 57]
[0539] For example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range from 1 to maxQp.
[0540] Also, for example, the syntax element is_delta_maxQp indicates whether the maximum index qPiMaxIdx is derived from the maxQp value. For example, an is_delta_maxQp of 1 indicates that qPiMaxIdx is derived from the maxQp value. Also, for example, an is_delta_maxQp of 0 indicates that qPiMaxIdx is derived from the syntax element qPi_min_idx_minus1.
[0541] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the delta value between maxQp and the maximum qPi index used for chroma QpC 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. The maximum index qPiMaxIdx used for QpC derivation can be derived as shown in Table 54 above.
[0542] Also, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value increases by 1 compared to the (i - 1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value does not increase.
[0543] For example, the variable QpCIdx[qPi] is derived as follows. Here, the qPi can be from 0 to maxQp.
[0544] When -qPi < qPi_min_idx_minus1 + 1, QpCIdx[qPi] is set to be the same as qPi.
[0545] - When -qPi = qPi_min_idx_minus1 ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0546] - When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0547] Thereafter, the QpC can be set to the QpCIdx[qPi].
[0548] In addition, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or information signaled for chroma quantization derivation is used. 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 follows.
[0549]
Table 58
[0550] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving quantization parameters. For example, a QpC_data_default_flag of 0 indicates that the user-defined mode is used for deriving quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() is signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for deriving quantization parameters. The aforementioned default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0551] For example, when the process of deriving quantization parameters according to this embodiment is described in a standard format, it can be shown as in the following table.
[0552] [Table 59-1]
[0553] [Table 59-2]
[0554] [Table 59-3]
[0555] [Table 59-4]
[0556] [Table 59-5]
[0557] Referring to Table 59 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr are derived based on user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0558] Also, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a scheme for signaling an index for a chroma QP mapping table using minus1 nomenclature instead of actual values.
[0559] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameter proposed in this embodiment is signaled as shown in the following table.
[0560] [Table 60]
[0561] For example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 1 to 63.
[0562] Also, for example, the value obtained by adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the delta value between qPi_min_idx and the maximum qPi index used for chroma QpC 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, the maximum index qPiMaxIdx used for QpC derivation can be derived as follows.
[0563] [Number]
[0564] Also, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value increases by 1 from the (i - 1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value has not increased.
[0565] For example, the variable QpCIdx[qPi] can be derived as follows. Here, the qPi can be from 0 to 63.
[0566] When -qPi < qPi_min_idx_minus1 + 1, QpCIdx[qPi] is set to be the same as qPi.
[0567] When -qPi = qPi_min_idx_minus1 + 1 ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0568] When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0569] Thereafter, the QpC can be set to the QpCIdx[qPi].
[0570] Furthermore, this embodiment proposes a scheme of signaling a flag indicating whether a default table is used for chroma quantization derivation or 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.
[0571]
Table 61
[0572] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for quantization parameter derivation. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for quantization parameter derivation. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for quantization parameter derivation. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0573] For example, when describing the process of deriving quantization parameters according to this embodiment in a standard format, it can be shown as in the following table.
[0574] [Table 62-1]
[0575] [Table 62-2]
[0576] [Table 62-3]
[0577] [Table 62-4]
[0578] [Table 62-5]
[0579] Referring to Table 62 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0580] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment proposes a scheme in which individual chroma quantization tables are used for respective chroma components.
[0581] The chroma quantization parameter data for the chroma quantization parameters proposed in this embodiment can be signaled as shown in the following table.
[0582]
Table 63
[0583] For example, the syntax element QpC_data_default_flag indicates whether the default chroma quantization parameter table is used. For example, a QpC_data_default_flag of 1 indicates that the default chroma quantization parameter table is used for the derivation of chroma quantization parameters. The default table is as shown in Table 7 above. Also, for example, a QpC_data_default_flag of 0 indicates that the default chroma quantization parameter table is not used for the derivation of chroma quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter table derived based on the chroma quantization parameter data signaled for the derivation of chroma quantization parameters is used.
[0584] Also, for example, the syntax element sps_separate_qpc_table_flag indicates whether two separate QpC tables are used for Cb samples and Cr samples. That is, for example, the syntax element sps_separate_qpc_table_flag can indicate whether a separate luma-chroma quantization parameter mapping table is used for each of the Cb residual and Cr residual. For example, a sps_separate_qpc_table_flag value of 1 indicates that separate QpC tables are used for each of the Cb samples and Cr samples, and a sps_separate_qpc_table_flag value of 0 indicates that one QpC table is used for the Cb samples and Cr samples.
[0585] On the other hand, for example, the variable QpCb[i] indicates the QpC table used for Cb samples. Also, for example, the variable QpCr[i] indicates the QpC table used for Cr samples. Also, for example, when the value of sps_separate_qpc_table_flag is 0, QpCr[i] can be the same as QpCb[i]. Here, i can be from 0 to 69.
[0586] Also, for example, the value obtained by 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 be in the range of 1 to 69.
[0587] Also, for example, the value obtained by adding 1 to the syntax element qPi_cb_delta_max_idx_minus1 indicates the delta value between qPi_cb_min_idx_minus1 and the maximum qPi_cb_delta_idx_minus1 used for Cb chroma QpC 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, the maximum index qPiMaxIdxcb used for QpC derivation for the Cb component can be derived as follows.
[0588]
Number
[0589] Also, for example, the syntax element QpC_cb_qPi_flag[i] indicates the delta values between the i-th QpC value QpCb[i] and the (i - 1)-th QpC value QpCb[i - 1] for the Cb component. The value of QpC_cb_qPi_flag[i] can be in the range of 0 to 1.
[0590] For example, the variable QpCb[i] is derived as follows. Here, the said i can be from 0 to 69.
[0591] - When i = 0..qPiMaxIdxCb, qPCb[i] is set to be the same as i.
[0592] - When i = qPi_cb_min_idx_minus1 + 1 + 1..qPiMaxIdxCb, QpCb[i] is set to QpCb[i - 1] + QpC_cb_qPi_flag[i].
[0593] - When i = qPiMaxIdxCb + 1...69, QpCb[i] is set to i - deltaEnd, and deltaEnd can be derived as qPiMaxIdxCb - qPCb[qPiMaxIdxCb].
[0594] Also, for example, qPi_cr_min_idx_minus1, qPiMaxIdxCr, and QpC_cr_qPi_flag[i], which are syntax elements for the Cr component, have the same meaning as the syntax elements for the Cb component.
[0595] This document also proposes another embodiment for signaling information related to quantization parameters. For example, this embodiment proposes a scheme for signaling parameters for a plurality of chroma QP tables. Also, this embodiment can be connected to at least one of the foregoing embodiments. That is, for example, the embodiments of this document can also be applied commonly.
[0596] Specifically, for example, this embodiment proposes including user-defined chroma quantization parameters (QpC) in the VVC specification text (VVC Specification Text). For example, according to this embodiment, the flag in the SPS (sequence parameter set) indicates whether to use the default table for deriving the chroma quantization parameters or to derive the chroma QP mapping table based on the information signaled in the SPS. Thereby, user-defined chroma quantization parameters can be used in consideration of the content characteristics of the video in video coding, and the coding efficiency can be improved. Also, this embodiment can provide flexibility as an option of using one user-defined table for the chroma component and an option of using separate user-defined tables for the Cb component and the Cr component.
[0597] For example, the chroma quantization parameter data QpC_data() for the chroma quantization parameters proposed in this embodiment is signaled as shown in the following table.
[0598] [Table 64]
[0599] For example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 1 to 69.
[0600] 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 QpC 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 69. For example, the maximum index qPiMaxIdx used for QpC derivation can be derived as shown in Equation 4 above.
[0601] Also, for example, the syntax element QpC_qPi_flag[i] can indicate whether the QpC value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value increases by 1 from the (i - 1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value increases by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value has not increased.
[0602] For example, the variable QpCIdx[qPi] can be derived as follows. Here, the qPi can be from 0 to 69.
[0603] - When -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0604] - When -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0605] When -qPi > qPiMaxIdx, QpCIdx[qPi] is set to qPi - (qPiMaxIdx - QpCIdx[qPiMaxIdx]).
[0606] Thereafter, the QpC is set to the QpCIdx[qPi].
[0607] In addition, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or 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 flag signaled via high level syntax is as follows in the following table.
[0608]
Table 65
[0609] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for deriving quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0610] For example, when the process of deriving quantization parameters according to this embodiment is described in a standard format, it can be shown as in the following table.
[0611]
Table 66-1
[0612]
Table 66-2
[0613]
Table 66-3
[0614]
Table 66-4
[0615]
Table 66-5
[0616] Referring to Table 66 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on the user - defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0617] Also, for example, the chroma quantization parameter data QpC_data() when a separate user - defined table is used for each of the chroma components proposed in this embodiment can be signaled as shown in the following table.
[0618]
Table 67
[0619] For example, the syntax element is_separate_chroma_table indicates whether separate chroma quantization table related parameters are signaled for the Cb component and the Cr component. That is, for example, the syntax element is_separate_chroma_table can indicate whether two individual chroma quantization parameter mapping tables are used for the Cb component and the Cr component. For example, the syntax element is_separate_chroma_table can indicate whether individual luma-chroma quantization parameter mapping tables are used for each of the Cb residual and the Cr residual. For example, an is_separate_chroma_table of 1 indicates that separate chroma quantization parameter mapping tables are signaled for the Cb component and the Cr component, and an is_separate_chroma_table 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, when the value of is_separate_chroma_table is 1, qPi_min_idx_minus1[i], qPi_delta_max_Idx[i], and QpC_qPi_flag[i][j] for the Cb component and qPi_min_idx_minus1[i], qPi_delta_max_Idx[i], and QpC_qPi_flag[i][j] for the Cr component can be signaled. Also, for example, when the value of is_separate_chroma_table is 0, qPi_min_idx_minus1[i], qPi_delta_max_Idx[i], and QpC_qPi_flag[i][j] for the Cb component, the Cr component, and the joint CbCr component can be signaled.
[0620] Also, for example, the value obtained by adding 1 to the syntax element qPi_min_idx_minus1[i] indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can be in the range of 1 to 69. The variable qPi_min_Idx[i] is set to the same value as the value obtained by adding 1 to qPi_min_idx_minus1[i].
[0621] Also, for example, the syntax element qPi_delta_max_idx indicates the delta value between qPi_min_Idx[i] and the maximum qPi index used for chroma QpC 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, the maximum index qPiMaxIdx[i] used for QpC derivation can be derived as follows.
[0622] [Equation]
[0623] The value of qPiMaxIdx[i] is greater than or equal to qPi_min_idx_minus1[i].
[0624] Also, for example, the syntax element QpC_qPi_flag[i][j] indicates whether the j-th QpC value of the i-th chroma component increases by 1. That is, for example, the syntax element QpC_qPi_flag[i][j] indicates whether the j-th QpC value of the i-th chroma component increases by 1 from the (j - 1)-th QpC value. For example, a QpC_qPi_flag[j] of 1 indicates that the j-th QpC value of the i-th chroma component increases by 1, and a QpC_qPi_flag[j] of 0 indicates that the j-th QpC value of the i-th chroma component does not increase.
[0625] For example, the variable QpCIdx[i][qPi] can be derived as shown in the following table. Here, the qPi can be from 0 to 69.
[0626] [Table 68]
[0627] 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.
[0628] 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.
[0629] Also, referring to Table 68, QpCIdx[i][qPi] is derived as follows.
[0630] When -qPi < qPi_min_Idx[i], QpCIdx[i][qPi] is set to be the same as qPi.
[0631] When -qPi = qPi_min_Idx[i] ··· qPiMaxIdx[i], QpCIdx[qPi] is set to QpC_qPi_flag[i][qPi] + QpCIdx[i][qPi - 1].
[0632] When -qPi > qPiMaxIdx, QpCIdx[i][qPi] is set to qPi - (qPiMaxIdx[i] - QpCIdx[i][qPiMaxIdx]).
[0633] Thereafter, the value of the QpC can be derived from the QpCIdx[i][qPi].
[0634] Further, 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.
[0635]
Table 69
[0636] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that the chroma quantization parameter data QpC_data() is used. When the QpC_data_default_flag is 0, the chroma quantization parameter data QpC_data() can be signaled. Also, for example, a QpC_data_default_flag of 1 indicates that a default table is used for deriving quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag does not exist, the QpC_data_default_flag is regarded as 1.
[0637] For example, when the process of deriving quantization parameters according to this embodiment is described in a standard format, it can be shown as in the following table.
[0638]
Table 70-1
[0639]
Table 70-2
[0640]
Table 70-3
[0641]
Table 70-4
[0642]
Table 70-5
[0643] Referring to Table 70 above, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), the variables qPCb, qPCr, and qPCbCr can be derived based on user-defined information signaled as proposed in this embodiment. Also, for example, when ChromaArrayType is 1 and QpC_data_default_flag indicates positive (TRUE) (i.e., for example, when QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the same index qPi as qPiCb, qPiCr, and qPiCbCr respectively.
[0644] Also, this document proposes another embodiment for signaling information regarding quantization parameters. For example, this embodiment proposes a scheme for signaling parameters for the chroma QP table without default settings. Also, this embodiment can also be linked with at least one of the foregoing embodiments. That is, for example, the embodiments of this document can also be applied commonly.
[0645] The chroma quantization parameter data for the chroma quantization parameters proposed in this embodiment can be signaled as shown in the following table.
[0646]
Table 71
[0647] For example, the syntax element is_same_qp_table_for_cb_cr indicates whether only one chroma QP mapping table is signaled and applied for the Cb component, Cr component, and joint CbCr component. That is, for example, the syntax element is_same_qp_table_for_cb_cr indicates whether only one set of chroma QP mapping table related parameters is signaled for the Cb component, Cr component, and joint CbCr component, and whether one chroma QP mapping table is applied. For example, is_same_qp_table_for_cb_cr with a value of 1 indicates that only one chroma QP mapping table is signaled and applied for the Cb component, Cr component, and joint CbCr component. That is, for example, is_same_qp_table_for_cb_cr with a value of 1 indicates that only one set of chroma QP mapping table related parameters is signaled for the Cb component, Cr component, and joint CbCr component, and one chroma QP mapping table is applied. Also, for example, is_same_qp_table_for_cb_cr with a value of 0 indicates that multiple chroma QP mapping tables are signaled and applied for the Cb component, Cr component, and joint CbCr component. That is, for example, is_same_qp_table_for_cb_cr with a value of 0 indicates that multiple sets of chroma QP mapping table related parameters are signaled for the Cb component, Cr component, and joint CbCr component, and multiple chroma QP mapping tables are applied. For example, is_same_qp_table_for_cb_cr with a value of 0 indicates that three chroma QP mapping tables are signaled and applied for the Cb component, Cr component, and joint CbCr component.
[0648] Also, for example, the syntax element qPi_table_len_Idx[i] indicates the number of points used in the description of the i-th chroma QP mapping table. That is, for example, qPi_table_len_Idx[i] indicates the index number of the (i-th) chroma QP mapping table. The value of qPi_table_len_Idx[i] can be in the range of 0 to 69 + QpBdOffsetC.
[0649] Also, for example, the syntax element qpC_qPi_in_idx[i][j] indicates the delta value used for deriving the input coordinate of the j-th pivot point in the i-th chroma QP mapping table.
[0650] Also, for example, the syntax element qpC_qPi_out_idx[i][j] indicates the delta value used for deriving the output coordinate of the j-th pivot point in the i-th chroma QP mapping table.
[0651] Based on the aforementioned syntax elements, the i-th QP mapping table cQPTable[i] can be derived as shown in the following table. Here, i is 0 when same_qp_table_for_cb_cr is 1, and can be one of 0 to 2 when same_qp_table_for_cb_cr is 1.
[0652] [Table 72]
[0653] Referring to Table 72 above, based on qpC_qPi_in_Idx[i][j], the input coordinates of the j-th pivot point in the i-th chroma QP mapping table can be derived. The qpVal[i][j] shown in Table 72 above indicates the input coordinates of the j-th pivot point. Also, referring to Table 72 above, based on qpC_qPi_out_Idx[i][j], the output coordinates of the j-th pivot point in the i-th chroma QP mapping table can be derived. The cQPTable[i][j] shown in Table 72 above indicates the output coordinates of the j-th pivot point.
[0654] Also, according to this embodiment, the following changes may occur for the derivation of chroma QP. For example, constraints as shown in the following table are added.
[0655]
Table 73
[0656] Referring to Table 73 above, the value of qpVal[i][j] is greater than the value of qpVal[i][j - 1]. Here, j can be any one of 1 to qPi_table_len_Idx[i].
[0657] Also, when the chroma type is not 0, for example, when the chroma type is 1, if chroma_qp_table_present_flag is 1, the variables qPCb and qPCr are respectively set to be the same as ChromaQpTable[0][qPiCb], ChromaQpTable[1][qPiCr], and ChromaQpTable[1][qPiCbCr].
[0658] Furthermore, this document proposes another embodiment for signaling information regarding quantization parameters. This embodiment can also be linked to at least one of the aforementioned embodiments. For example, this embodiment proposes a scheme for restricting the range of the qp index to be signaled. As an example, it is proposed that this embodiment signals the syntax element qPi_table_len_Idx in the previous example as follows.
[0659] For example, the syntax element qPi_table_len_Idx[i] indicates the number of points used in the description of the chroma QP mapping table. Also, the value of the syntax element qPi_table_len_Idx[i] can be in the range of 0 to 69 + QpBdOffsetC.
[0660] As described above, in this embodiment, a scheme is proposed to restrict the parameter (for example, the number of points in the chroma QP mapping table indicated by qPi_table_len_Idx[i]) within the minimum range that can be signaled or inferred in other ways.
[0661] FIG. 10 schematically shows a video encoding method by an encoding apparatus according to this document. The method disclosed in FIG. 10 is performed by the encoding apparatus disclosed in FIG. 2. Specifically, for example, S1000 to S1010 in FIG. 10 are performed by the entropy encoding unit of the encoding apparatus. Also, although not shown, the process of deriving prediction samples for the chroma component is performed by the prediction unit of the encoding apparatus, and the process of generating restored samples and a restored picture based on the residual samples and prediction samples for the chroma component is performed by the addition unit of the encoding apparatus.
[0662] The encoding apparatus encodes video information (S1000).
[0663] The encoding device can encode the video information. For example, the video information includes prediction information for the chroma component, residual information for the chroma component, and / or chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma component. The chroma component includes a Cb component, a Cr component, and / or a joint CbCr component.
[0664] For example, the encoding device derives a prediction sample for the chroma component based on a prediction mode. That is, for example, the encoding device derives a prediction sample of the current block for the chroma component based on a prediction mode. In this case, various prediction methods disclosed in this document, such as inter prediction or intra prediction, are applicable.
[0665] For example, the encoding device determines whether to perform inter prediction or intra prediction on the current block for the chroma component, and can determine a specific inter prediction mode or a specific intra prediction mode based on the RD cost. According to the determined mode, the encoding device derives a prediction sample for the current block.
[0666] Thereafter, 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 of the current block for the chroma component. The video information includes the prediction information.
[0667] Also, for example, the encoding device can derive the residual sample by subtracting the original sample of the current block for the chroma component in the current picture from the prediction sample.
[0668] Thereafter, for example, the encoding device encodes the residual information for the residual samples. For example, the encoding device can derive a conversion coefficient based on the residual samples and generate the residual information based on the conversion coefficient. For example, the encoding device quantizes the residual samples based on the chroma quantization parameter to derive quantized residual samples, derives a conversion coefficient based on the quantized residual samples, and can generate and encode the residual information based on the conversion coefficient. Or, for example, the encoding device quantizes the residual samples based on the chroma quantization parameter to derive quantized residual samples, converts the quantized residual samples to derive a conversion coefficient, and can generate and encode the residual information based on the conversion coefficient.
[0669] For example, the residual information includes syntax elements for the conversion coefficients of the current 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.
[0670] Also, for example, the encoding device generates and encodes chroma quantization parameter (QP) data of at least one chroma QP mapping table for the chroma component. The default chroma QP mapping table for the chroma component may not be used. That is, when the chroma quantization parameter for the chroma component is used, the encoding device can generate chroma quantization parameter data of at least one chroma QP mapping table for the chroma component. The video information includes chroma quantization parameter data of at least one chroma QP mapping table for the chroma component. Also, for example, the chroma component includes a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the chroma quantization parameter data includes a syntax element indicating the number of points of the chroma QP mapping table, a syntax element indicating a delta value used for deriving the input coordinate of the target point of the chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point of the chroma QP mapping table. Also, for example, the value of the syntax element indicating the number of points of the chroma QP mapping table can be in the range of 0 to a specific value. The specific value can be 69 + QpBdOffsetC.Also, for example, the syntax element indicating the number of points in the chroma QP mapping table is the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used for deriving the input coordinate of the target point in the chroma QP mapping table is the aforementioned qpC_qPi_in_idx[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the chroma QP mapping table may be the aforementioned qpC_qPi_out_idx[i][j].
[0671] Also, for example, the encoding device can determine whether one chroma QP mapping table is applied to the chroma component and generate a flag indicating whether one chroma QP mapping table is applied to the chroma component. The video information includes a flag indicating whether one chroma QP mapping table is applied to the chroma component.
[0672] For example, the encoding device can generate a flag indicating whether one chroma QP mapping table is applied to the chroma component based on the chroma type. Here, the chroma type means the aforementioned ChromaArrayType. For example, when the value of the chroma type is not 0, the encoding device can generate a flag indicating whether one chroma QP mapping table is applied to the chroma component. For example, when the value of the chroma type is 1, the encoding device generates a flag indicating whether one chroma QP mapping table is applied to the chroma component. Here, when the value of the chroma type is 0, the chroma type is the Monochrome format, when the value of the chroma type is 1, the chroma type is the 4:2:0 format, when the value of the chroma type is 2, the chroma type is the 4:2:2 format, and when the value of the chroma type is 3, the chroma type can be the 4:4:4 format. For example, the syntax element for the flag can be the aforementioned qp_luma_to_chroma_joint_map_flag, sps_separate_qpc_table_flag, is_separate_chroma_table or is_same_qp_table_for_cb_cr.
[0673] For example, when the value of the flag is 1, the flag indicates that one chroma QP mapping table is applied to the chroma component. Also, for example, when the value of the flag is 0, the flag indicates that multiple chroma QP mapping tables are applied to the chroma component. That is, for example, when the value of the flag is 0, the flag indicates that an individual chroma QP mapping table is applied to each of the chroma components.
[0674] Therefore, for example, when the value of the flag is 1, the chroma quantization parameter data of one chroma QP mapping table for the chroma component is signaled, and when the value of the flag is 0, the chroma quantization parameter data of a plurality of chroma QP mapping tables for the chroma component is signaled. That is, for example, when the value of the flag is 0, the chroma quantization parameter data of a chroma QP mapping table for each of the chroma components is signaled.
[0675] Also, for example, the flag is signaled via high level syntax. For example, the flag is signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation Parameter Set), etc.
[0676] Also, for example, the encoding device can generate chroma quantization parameter data for the chroma component based on the flag.
[0677] For example, the chroma quantization parameter data of a plurality of chroma QP mapping tables for the chroma component includes the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component and the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component. Or, for example, the chroma quantization parameter data includes the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component, the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component, and / or the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component.
[0678] For one party, for example, the encoding device can generate a joint CbCr available flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. That is, for example, the encoding device can determine whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component, and can generate the joint CbCr available flag. Also, for example, the encoding device can generate a joint CbCr available flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component based on the chroma type. Here, the chroma type may mean the aforementioned ChromaArrayType. For example, when the value of the chroma type is not 0, the encoding device can generate a joint CbCr available flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. For example, when the value of the chroma type is 1, the encoding device can generate a joint CbCr available flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. Also, for example, the joint CbCr available flag can be signaled via high level syntax. For example, the joint CbCr available flag can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0679] In this case, when the value of the flag is 0 (i.e., it is determined that a plurality of chroma QP mapping tables are applied to the chroma component), and when the value of the joint CbCr available flag is 1 (i.e., it is determined that the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component exists), the chroma quantization parameter data includes the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component, the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component, and the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component.
[0680] Also, for example, the first chroma quantization parameter data includes a syntax element indicating the number of points in the first chroma QP mapping table for the Cb component, a syntax element indicating a delta value used for deriving the input coordinate of a target point in the first chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the first chroma QP mapping table. The syntax element indicating the number of points in the first chroma QP mapping table may be the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used for deriving the input coordinate of a target point in the first chroma QP mapping table may be the aforementioned qPC_qPi_in_idx[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the first chroma QP mapping table may be the aforementioned qPC_qPi_out_idx[i][j]. Also, for example, the first chroma quantization parameter data can be signaled via high level syntax. For example, the first chroma quantization parameter data can be signaled via an SPS (sequence parameter set), a PPS (picture parameter set), a slice header, or an APS (adaptation parameter set), etc.
[0681] Also, for example, the second chroma quantization parameter data includes a syntax element indicating the number of points in the second chroma QP mapping table for the Cr component, a syntax element indicating a delta value used for deriving the input coordinate of the target point in the second chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the second chroma QP mapping table. The syntax element indicating the number of points in the second chroma QP mapping table may be the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used for deriving the input coordinate of the target point in the second chroma QP mapping table may be the aforementioned qPC_qPi_in_idx[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the second chroma QP mapping table may be the aforementioned qPC_qPi_out_idx[i][j]. Also, for example, the second chroma quantization parameter data can be signaled via high level syntax. For example, the second chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0682] Also, for example, the third chroma quantization parameter data includes a syntax element indicating the number of points in the third chroma QP mapping table for the joint CbCr component, a syntax element indicating a delta value used for deriving the input coordinate of the target point in the third chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the third chroma QP mapping table. The syntax element indicating the number of points in the third chroma QP mapping table may be the aforementioned qPi_table_len_Idx[i]. The syntax element indicating the delta value used for deriving the input coordinate of the target point in the third chroma QP mapping table may be the aforementioned qPC_qPi_in_idx[i][j]. The syntax element indicating the delta value used for deriving the output coordinate of the target point in the third chroma QP mapping table may be the aforementioned qPC_qPi_out_idx[i][j]. Also, 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), etc.
[0683] Also, for example, when the value of the flag is 1 (i.e., when it is determined that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter data includes the chroma quantization parameter data of one chroma QP mapping table for the Cb component, the Cr component, and the joint CbCr component.
[0684] The encoding device generates a bitstream including the video information described above (S1010).
[0685] For example, the encoding device can output, as a bitstream, video information including prediction information for a chroma component, residual information for the chroma component, and / or chroma quantization parameter data of at least one chroma quantization parameter (Quantization Parameter: QP) mapping table for the chroma component. The bitstream includes prediction information, residual information, and / or chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma component. Further, the video information may further include a flag indicating whether one chroma QP mapping table is applied to the chroma component and / or the joint CbCr available flag.
[0686] The encoding device encodes video information and outputs it in the form of a bitstream.
[0687] On the other hand, the bitstream including the image information can be transmitted to a decoding device via a network or 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.
[0688] FIG. 11 schematically shows an encoding apparatus that performs the video encoding method according to this document. The method disclosed in FIG. 10 is performed by the encoding apparatus disclosed in FIG. 11. Specifically, for example, the entropy encoding unit of the encoding apparatus in FIG. 11 can perform S1000 to S1010. Although not shown, the process of deriving prediction samples for chroma components is performed by the prediction unit of the encoding apparatus, and the process of generating restored samples and a restored picture based on the residual samples and prediction samples for chroma components is performed by the addition unit of the encoding apparatus.
[0689] FIG. 12 schematically shows a video decoding method by a decoding apparatus according to this document. The method disclosed in FIG. 12 can be performed by the decoding apparatus disclosed in FIG. 3. Specifically, for example, S1200 in FIG. 12 is performed by the entropy decoding unit of the decoding apparatus, and S1210 in FIG. 12 is performed by the residual processing unit of the decoding apparatus.
[0690] The decoding apparatus acquires video information via a bitstream (S1200).
[0691] For example, the video information includes information regarding a chroma quantization parameter.
[0692] For example, the video information includes chroma quantization parameter (QP) data of at least one chroma quantization parameter mapping table. For example, the decoding device can obtain chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma component. The default chroma QP mapping table for the chroma component may not be used. That is, when the chroma quantization parameter for the chroma component is used, the decoding device can obtain chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma component. For example, the chroma component includes a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the chroma quantization parameter data includes a syntax element indicating the number of points of the chroma QP mapping table, a syntax element indicating a delta value used for deriving the input coordinate of the target point of the chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point of the chroma QP mapping table. Also, for example, the value of the syntax element indicating the number of points of the chroma QP mapping table can be in the range of 0 to a specific value. The specific value can be 69 + QpBdOffsetC.Also, for example, the syntax element indicating the number of points in the chroma QP mapping table is the aforementioned qPi_table_len_Idx[i], and the syntax element indicating the delta value used for deriving the input coordinate of the target point in the chroma QP mapping table is the aforementioned qpC_qPi_in_idx_[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the chroma QP mapping table may be the aforementioned qpC_qPi_in_idx_[i][j].
[0693] Also, for example, the chroma quantization parameter data of the chroma QP mapping table can be signaled via high level syntax. For example, the chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation Parameter Set), etc.
[0694] Also, for example, the decoding device can obtain a flag indicating whether one chroma QP mapping table is applied to the chroma component. That is, for example, the decoding device can obtain a flag indicating whether one chroma QP mapping table is signaled and applied to the chroma component. The video information includes the flag. On the other hand, for example, the decoding device can obtain a flag indicating whether one chroma QP mapping table is applied based on the chroma type. Here, the chroma type can mean the aforementioned ChromaArrayType. For example, when the value of the chroma type is not 0, the decoding device can obtain a flag indicating whether one chroma QP mapping table is applied. For example, when the value of the chroma type is 1, the decoding device can obtain a flag indicating whether one chroma QP mapping table is applied. Here, when the value of the chroma type is 0, the chroma type is in the Monochrome format, when the value of the chroma type is 1, the chroma type is in the 4:2:0 format, when the value of the chroma type is 2, the chroma type is in the 4:2:2 format, and when the value of the chroma type is 3, the chroma type can be in the 4:4:4 format. For example, the syntax element for the flag can be the aforementioned qp_luma_to_chroma_joint_map_flag, sps_separate_qpc_table_flag, is_separate_chroma_table, or is_same_qp_table_for_cb_cr.
[0695] For example, when the value of the flag is 1, the flag indicates that one chroma QP mapping table is applied to the chroma component. Also, for example, when the value of the flag is 0, the flag indicates that a plurality of chroma QP mapping tables are applied to the chroma component. That is, for example, when the value of the flag is 0, the flag indicates that an individual chroma QP mapping table is applied to each of the chroma components.
[0696] Therefore, for example, when the value of the flag is 1, the chroma quantization parameter data of one chroma QP mapping table for the chroma component can be signaled, and when the value of the flag is 0, the chroma quantization parameter data of a plurality of chroma QP mapping tables for the chroma component can be signaled. That is, for example, when the value of the flag is 0, the chroma quantization parameter data of an individual chroma QP mapping table can be signaled for each of the chroma components.
[0697] Also, 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), etc.
[0698] Also, for example, the chroma quantization parameter data of a plurality of chroma QP mapping tables for the chroma components includes the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component and the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component. Or, for example, the chroma quantization parameter data includes the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component, the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component, and / or the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component.
[0699] On the one hand, for example, the decoding device can obtain a joint CbCr utilization flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. For example, the video information includes a joint CbCr availability flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. Also, for example, the decoding device can obtain a joint CbCr availability flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component based on the chroma type. Here, the chroma type may mean the aforementioned ChromaArrayType. For example, when the value of the chroma type is not 0, the decoding device can obtain a joint CbCr availability flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. For example, when the value of the chroma type is 1, the decoding device can obtain a joint CbCr availability flag indicating whether there is third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component. Also, for example, the joint CbCr availability flag can be signaled via high level syntax. For example, the joint CbCr availability flag can be signaled by a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS), etc.
[0700] In this case, when the value of the flag is 0 (i.e., indicating that a plurality of chroma QP mapping tables are applied to the chroma component), and when the value of the joint CbCr utilization flag is 1 (i.e., indicating that the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component exists), the chroma quantization parameter data includes the first quantization parameter data of the first chroma QP mapping table for the Cb component, the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component, and the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component.
[0701] Also, for example, the first chroma quantization parameter data includes a syntax element indicating the number of points in the first chroma QP mapping table for the Cb component, a syntax element indicating a delta value used for deriving the input coordinate of a target point in the first chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the first chroma QP mapping table. The syntax element indicating the number of points in the first chroma QP mapping table is the aforementioned qPi_table_len_Idx[i], the syntax element representing the delta value used for deriving the input coordinate of a target point in the first chroma QP mapping table is the aforementioned qpC_qPi_in_idx_[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the first chroma QP mapping table may be the aforementioned qpC_qPi_out_idx_[i][j]. Also, for example, the first chroma quantization parameter data can be signaled via high level syntax. For example, the first chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0702] Also, for example, the second chroma quantization parameter data includes a syntax element indicating the number of points in the second chroma QP mapping table for the Cr component, a syntax element indicating a delta value used for deriving the input coordinate of the target point in the second chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the second chroma QP mapping table. The syntax element indicating the number of points in the second chroma QP mapping table is the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used for deriving the input coordinate of the target point in the second chroma QP mapping table is the aforementioned qpC_qPi_in_idx[i][j], and the syntax element indicating the delta value used for deriving the output coordinate of the target point in the second chroma QP mapping table can be the aforementioned qpC_qPi_out_idx[i][j]. Also, for example, the second chroma quantization parameter data can be signaled via high level syntax. For example, the second chroma quantization parameter data can be signaled via SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0703] Also, for example, the third chroma quantization parameter data includes a syntax element indicating the number of points in the third chroma QP mapping table for the joint CbCr component, a syntax element representing a delta value used for deriving the input coordinate of the target point in the third chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the third chroma QP mapping output table. The syntax element indicating the number of points in the third chroma QP mapping table is the aforementioned qPi_table_len_Idx[i], the syntax element representing a delta value used for deriving the input coordinate of the target point in the third chroma QP mapping table is the aforementioned qpC_qPi_in_idx[i][j], and the syntax element indicating a delta value used for deriving the output coordinate of the target point in the third chroma QP mapping table may be the aforementioned qpC_qPi_out_idx[i][j]. Also, 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 by SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0704] Also, for example, when the value of the flag is 1 (i.e., when the flag indicates that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter data includes the chroma quantization parameter data of (one) chroma QP mapping table for the Cb component, Cr component, and joint CbCr component.
[0705] On one hand, for example, the video information includes prediction information and / or residual information for the chroma component. For example, the video information includes prediction information for the chroma component, and the prediction information includes the prediction mode information. The prediction mode information indicates whether inter prediction or intra prediction is applied to the current block for the chroma component. Also, for example, the residual information includes syntax elements for the transform coefficients of the current block for the chroma component. 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.
[0706] The decoding device generates a restored picture based on the video information (S1210).
[0707] For example, the decoding device can derive the chroma QP mapping table based on the chroma quantization parameter data, derive the chroma quantization parameter for the chroma component based on the chroma QP mapping table, derive the residual samples for the chroma component based on the chroma quantization parameter, and generate a restored picture based on the residual samples.
[0708] Specifically, for example, the decoding device can derive the chroma QP mapping table based on the chroma quantization parameter data. The chroma QP mapping table may be referred to as a chroma quantization parameter table or a user defined quantization parameter mapping table.
[0709] For example, as described above, the chroma QP mapping table can be derived based on a syntax element indicating the number of points in the chroma QP mapping table, a syntax element indicating a delta value used for deriving the input coordinate of a target point in the chroma QP mapping table, and / or a syntax element indicating a delta value used for deriving the output coordinate of the target point in the chroma QP mapping table. That is, for example, a chroma QP mapping table for a chroma component can be derived based on the quantization parameter data. For example, as shown in Table 72 above, a chroma QP mapping table for a chroma component can be derived based on the quantization parameter data.
[0710] For example, when the value of the flag is 0 (i.e., when the flag indicates that a plurality of chroma QP mapping tables are applied to the chroma component), the first chroma QP mapping table for the chroma Cb component can be derived based on the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component. Also, for example, when the value of the flag is 0, the second chroma QP mapping table for the chroma Cr component can be derived based on the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component. Also, for example, when the value of the flag is 0, the first chroma QP mapping table for the chroma joint CbCr component can be derived based on the third chroma quantization parameter data of the third chroma QP mapping table for the joint CbCr component.
[0711] Also, for example, when the value of the flag is 1 (i.e., when the flag indicates that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter table for the chroma component can be derived based on the chroma quantization parameter data of the chroma QP mapping table for the chroma component. The chroma component includes a Cb component, a Cr component, and / or a joint CbCr component.
[0712] Also, for example, the decoding device can derive the chroma quantization parameter for the chroma component based on the chroma QP mapping table.
[0713] For example, when the value of the flag is 0, the first chroma quantization parameter for the Cb component can be derived based on the first chroma QP mapping table, and the second chroma quantization parameter for the Cr component can be derived based on the second chroma QP mapping table. Also, for example, when the value of the flag is 0, the first chroma quantization parameter for the Cb component can be derived based on the first chroma QP mapping table, the second chroma quantization parameter for the Cr component can be derived based on the second chroma QP mapping table, and the third chroma quantization parameter for the joint CbCr component can be derived based on the third chroma QP mapping table. Here, the quantization parameter for the Cb component indicates the aforementioned QP‘Cb, the quantization parameter for the Cr component indicates the aforementioned QP‘Cr, and the quantization parameter for the joint CbCr component indicates the aforementioned Qp‘CbCr.
[0714] For example, an index for a chroma component (Cb component, Cr component, or joint CbCr component) is derived based on a quantization parameter for a luma component, and a chroma quantization parameter for the chroma component can be derived based on the chroma quantization parameter of a point corresponding to the index in the chroma QP mapping table for the chroma component. That is, for example, the chroma quantization parameter for the chroma component can be derived based on the chroma quantization parameter of a point having the same index as the quantization parameter of the luma component in the chroma QP mapping table.
[0715] Also, for example, an offset is added to a chroma quantization parameter (e.g., qPCb, qPCr, or qPCr) of a point corresponding to the index in the chroma QP mapping table for a chroma component (Cb component, Cr component, or joint CbCr component) to derive a chroma quantization parameter (e.g., QP‘Cb, QP‘Cr, or Qp‘CbCr) for the chroma component. The offset can be derived based on a syntax element indicating an offset for deriving a quantization parameter for the chroma component.
[0716] Or, for example, when the value of the flag is 1, a chroma quantization parameter for the chroma component is derived based on one chroma QP mapping table for the chroma component. Accordingly, the same chroma quantization parameter can be applied to the chroma component.
[0717] For example, an index for a chroma component (Cb component, Cr component, and joint CbCr component) is derived based on a quantization parameter for a luma component, and a chroma quantization parameter for the chroma component can be derived based on the chroma quantization parameter of a point corresponding to the index in the chroma QP mapping table for the chroma component. That is, for example, in the chroma QP mapping table, the chroma quantization parameter for the chroma component can be derived based on the chroma quantization parameter of a point having the same index as the quantization parameter of the luma component.
[0718] Also, for example, an offset can be added to the chroma quantization parameter of a point corresponding to the index in the chroma QP mapping table for the chroma component to derive the chroma quantization parameter for the chroma component. The offset is derived based on a syntax element indicating an offset for deriving the chroma quantization parameter for the chroma component.
[0719] Thereafter, for example, a decoding device can derive a residual sample for the chroma component based on the chroma quantization parameter.
[0720] For example, a decoding device can derive a conversion coefficient for a chroma component based on received residual information. The video information includes the residual information. Or, for example, a decoding device can derive a conversion coefficient based on the received residual information, and inverse-transform the conversion coefficient to derive an inverse-transformed conversion coefficient. The conversion coefficient includes a conversion coefficient for the Cb component, a conversion coefficient for the Cr component, and / or a conversion coefficient for the joint CbCr component.
[0721] Thereafter, the decoding device can inverse-quantize the conversion coefficient based on the chroma quantization parameter to derive a residual sample.
[0722] For example, when the value of the flag is 0, the decoding device can inverse-quantize the transform coefficient for the Cb component based on the first chroma quantization parameter for the Cb component to derive the residual sample for the Cb component, and inverse-quantize the transform coefficient for the Cr component based on the second chroma quantization parameter for the Cr component to derive the residual for the Cr component. Or, for example, when the value of the flag is 0, the decoding device inverse-quantizes the transform coefficient for the Cb component based on the first chroma quantization parameter for the Cb component to derive the residual sample for the Cb component, inverse-quantizes the transform coefficient for the Cr component based on the second chroma quantization parameter for the Cr component to derive the residual for the Cr component, and inverse-quantizes the transform coefficient for the joint CbCr component based on the third chroma quantization parameter for the joint CbCr component to derive the residual sample for the joint CbCr component. Or, for example, when the value of the flag is 1, the decoding device can inverse-quantize the transform coefficient for the chroma component based on the chroma quantization parameter to derive the residual sample for the chroma component.
[0723] Alternatively, when the value of the flag is 0, the decoding device can inverse quantize the inverse-transformed transform coefficients for the Cb component based on the first chroma quantization parameter for the Cb component to derive the residual samples for the Cb component, and inverse quantize the inverse-transformed transform coefficients for the Cr component based on the second chroma quantization parameter for the Cr component to derive the residual samples for the Cr component. Alternatively, for example, when the value of the flag is 0, the decoding device can inverse quantize the inverse-transformed transform coefficients for the Cb component based on the first chroma quantization parameter for the Cb component to derive the residual samples for the Cb component, inverse quantize the inverse-transformed transform coefficients for the Cr component based on the second chroma quantization parameter for the Cr component to derive the residual samples for the Cr component, and inverse quantize the inverse-transformed transform coefficients for the joint CbCr component based on the third chroma quantization parameter for the joint CbCr component to derive the residual samples for the joint CbCr component. Alternatively, for example, when the value of the flag is 1, the decoding device can inverse quantize the inverse-transformed transform coefficients for the chroma component based on the chroma quantization parameter to derive the residual samples for the chroma component.
[0724] Thereafter, for example, the decoding device can generate a restored picture based on the residual samples.
[0725] On the other hand, for example, the decoding device can derive prediction samples for the chroma component based on the received prediction information. The video information includes the prediction information. The decoding device can determine whether inter prediction or intra prediction is applied to the chroma component based on the received prediction information, and perform prediction based on this. That is, for example, the decoding device can determine whether inter prediction or intra prediction is applied to the current block for the chroma component based on the prediction information, and perform prediction based on this.
[0726] For example, the decoding device can derive a prediction mode applied to the current block for the chroma component based on the prediction information, and derive a prediction sample of the current block based on the prediction mode. For example, when inter prediction is applied to the current block, the decoding device can derive motion information of the current block based on the prediction information included in the video information, and derive the prediction sample of the current block based on the motion information. Also, for example, when intra prediction is applied to the current block, the decoding device can derive a reference sample based on peripheral samples of the current block, and derive the prediction sample in the current block based on the reference sample and the intra prediction mode of the current block. The reference sample includes an upper reference sample and a left reference sample of the current block. For example, when 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, the left reference sample can be p[-1][0] to p[-1][2N-1], and the upper reference sample can be p[0][-1] to p[2N-1][-1].
[0727] Thereafter, for example, the decoding device can generate a restored picture based on the prediction sample and the residual sample. For example, the decoding device can generate a restored sample and / or a restored picture by adding the prediction sample and the residual sample.
[0728] Thereafter, as described above, in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures can be applied to the restored sample to improve subjective / objective picture quality as necessary.
[0729] FIG. 13 schematically shows a decoding apparatus that performs a video decoding method according to this document. The method disclosed in FIG. 12 is performed by the decoding apparatus disclosed in FIG. 13. Specifically, for example, the entropy decoding unit of the decoding apparatus in FIG. 13 can perform S1200 in FIG. 12, and the residual processing unit of the decoding apparatus in FIG. 13 can perform S1210 in FIG. 12.
[0730] According to the foregoing document, without using a default chroma QP mapping table for deriving a chroma quantization parameter for a chroma component, a chroma QP mapping table derived based on signaled chroma QP mapping parameter data can be used to derive a chroma quantization parameter for the chroma component, whereby coding can be performed based on a quantization parameter according to the characteristics of the video, and coding efficiency can be improved.
[0731] Also, according to this document, a chroma QP mapping table can be derived based on a syntax element indicating a delta value used for deriving an input coordinate of a point of the chroma QP mapping table and / or a syntax element indicating a delta value used for deriving an output coordinate of the point of the chroma QP mapping table, and coding can be performed based on the chroma QP mapping table that more specifically reflects the characteristics of the video, thereby improving coding efficiency.
[0732] In the foregoing embodiments, the method is described based on a flowchart in a series of steps or blocks, but this document is not limited to the order of the steps, and a certain step can occur in a different order from or simultaneously with other steps different from the foregoing. Also, those skilled in the art can understand that the steps shown in the flowchart are not exclusive, other steps are included, or one or more steps in the flowchart can be deleted without affecting the scope of this document.
[0733] The embodiments described in this document 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 for implementation (e.g., information on instructions) or algorithms can be stored in a digital storage medium.
[0734] In addition, the decoding device and encoding device to which the embodiments of this document are applied can be included in a multimedia broadcast transceiver, mobile communication terminal, home cinema video device, digital cinema video device, surveillance camera, video conferencing device, real-time communication device such as video communication, mobile streaming device, storage medium, camcorder, video-on-demand (VoD) service providing device, over-the-top (OTT) video device, Internet streaming service providing device, three-dimensional (3D) video device, picture phone video device, transportation means terminal (e.g., vehicle terminal, airplane terminal, ship terminal, etc.), and medical video device, etc., and can be used to process video signals or data signals. For example, as an over-the-top (OTT) video device, it can be equipped with a game console, Blu-ray player, Internet-connected TV, home theater system, smartphone, tablet PC, digital video recorder (DVR), etc.
[0735] In addition, the processing method to which the embodiments of this document are applied can be produced in the form of a program executed by a computer and can be stored in a computer-readable recording medium. Multimedia data having the data structure according to this document can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which data that can be read by a computer is stored. The computer-readable recording medium can include, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Further, the computer-readable recording medium includes a medium realized in the form of a carrier wave (for example, transmission via the Internet). Also, a bit stream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0736] In addition, the embodiments of this document can be realized by a computer program product with program code, and the program code can be executed by a computer according to the embodiments of this document. The program code can be stored on a carrier readable by a computer.
[0737] FIG. 11 exemplarily shows a structural diagram of a content streaming system to which the embodiments of this document are applied.
[0738] The content streaming system to which the embodiments of this document are applied can generally include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0739] The encoding server compresses the content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream, and serves to transmit this to the streaming server. As another example, when a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server can be omitted.
[0740] The bitstream can be generated by an encoding method or a bitstream generation method to which the embodiments of this document are applied, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0741] The streaming server transmits multimedia data to the user device based on a user request via a web server, and the web server serves as a medium to inform the user of what services are available. When the 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. At this time, the content streaming system can include another control server, and in this case, the control server serves to control commands / responses between each device within the content streaming system.
[0742] The streaming server can receive content from a media repository and / or an encoding server. For example, when it comes to receiving content from the encoding server, the content can be received 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.
[0743] Examples of the user device include mobile phones, smartphones, laptop computers, digital broadcast terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc. Each server in the content streaming system can be operated as a distributed server, and in this case, the data received by each server can be processed distributively.
[0744] The claims described in this specification can be combined in various ways. For example, the technical features of the method claims in this specification can be combined and realized as a device, and the technical features of the device claims in this specification can be combined and realized as a method. Also, the technical features of the method claims in this specification and the technical features of the device claims can be combined and realized as a device, and the technical features of the method claims in this specification and the technical features of the device claims can be combined and realized as a method.
Claims
1. A video decoding method performed by a decoding device, obtaining video information including residual information via a bitstream; deriving a residual sample based on the residual information and a chroma quantization parameter for a chroma component; generating a reconstructed picture based on the residual samples; The step of acquiring the video information includes: obtaining a flag for whether one chroma quantization parameter (QP) mapping table is signaled and applied to the chroma components and a joint CbCr available flag, the chroma components including a Cb component, a Cr component, and a joint CbCr component; and obtaining chroma quantization parameter data of at least one chroma QP mapping table for the chroma components based on the flag and the joint CbCr availability flag; The chroma quantization parameter data includes a syntax element for a number of points in the chroma QP mapping table, a syntax element for a delta value used to derive an input coordinate of a target point in the chroma QP mapping table, and a syntax element for a delta value used to derive an output coordinate of the target point in the chroma QP mapping table; based on the value of the flag being 1, the one chroma QP mapping table is signaled and applied to the Cb component, the Cr component, and the joint CbCr component; a plurality of chroma QP mapping tables are signaled, the plurality of chroma QP mapping tables including respective chroma QP mapping tables for the Cb component, the Cr component, and the joint CbCr component, based on the value of the flag being 0 and the value of the joint CbCr available flag being 1.
2. A video encoding method performed by an encoding device, deriving residual samples for the chroma components; generating residual information for the residual sample; encoding video information including the residual information; generating a bitstream including the video information; The step of encoding the video information includes: generating a flag for whether one chroma quantization parameter (QP) mapping table is signaled and applied to the chroma components and a joint CbCr availability flag, the chroma components including a Cb component, a Cr component, and a joint CbCr component; generating chroma quantization parameter data for at least one chroma QP mapping table for the chroma components based on the flag and the joint CbCr availability flag; The chroma quantization parameter data includes a syntax element for a number of points in the chroma QP mapping table, a syntax element for a delta value used to derive an input coordinate of a target point in the chroma QP mapping table, and a syntax element for a delta value used to derive an output coordinate of the target point in the chroma QP mapping table; based on the value of the flag being 1, the one chroma QP mapping table is signaled and applied to the Cb component, the Cr component, and the joint CbCr component; a plurality of chroma QP mapping tables are signaled, the plurality of chroma QP mapping tables including respective chroma QP mapping tables for the Cb component, the Cr component, and the joint CbCr component, based on the value of the flag being 0 and the value of the joint CbCr available flag being 1.
3. In a method of transmitting data for video, obtaining a bitstream of the video, the bitstream being generated based on deriving residual samples for chroma components, generating residual information for the residual samples, encoding video information including the residual information, and generating a bitstream including the video information; transmitting the data including the bitstream; encoding the video information, generating a flag for whether one chroma quantization parameter (QP) mapping table is signaled and applied to the chroma components and a joint CbCr availability flag, the chroma components including a Cb component, a Cr component, and a joint CbCr component; generating chroma quantization parameter data for at least one chroma QP mapping table for the chroma components based on the flag and the joint CbCr availability flag; The chroma quantization parameter data includes a syntax element for a number of points in the chroma QP mapping table, a syntax element for a delta value used to derive an input coordinate of a target point in the chroma QP mapping table, and a syntax element for a delta value used to derive an output coordinate of the target point in the chroma QP mapping table; based on the value of the flag being 1, the one chroma QP mapping table is signaled and applied to the Cb component, the Cr component, and the joint CbCr component; a plurality of chroma QP mapping tables including respective chroma QP mapping tables for the Cb component, the Cr component, and the joint CbCr component are signaled based on the value of the flag being 0 and the value of the joint CbCr available flag being 1.