Video decoding method and device for the same
By employing a chroma QP mapping table based on signaled data, the method addresses the inefficiencies in coding high-resolution images, improving efficiency and reducing costs through better alignment with image characteristics.
Patent Information
- Application Number
- JP2025090484
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-07-05
- Filing Date
- 2025-05-30
- Publication Date
- 2025-08-20
AI Technical Summary
The increasing demand for high-resolution, high-quality images leads to higher transmission and storage costs due to the increased amount of information, necessitating more efficient image coding techniques, particularly for deriving quantization parameters for chroma components.
A video decoding method that uses a chroma QP mapping table derived based on signaled chroma quantization parameter data to improve coding efficiency by reflecting the characteristics of the image, incorporating syntax elements for delta values to determine input and output coordinates in the mapping table.
This approach enhances coding efficiency by deriving chroma quantization parameters that better match image characteristics, reducing transmission and storage costs while maintaining image quality.
Smart Images

Figure 2025122194000001_ABST
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 technology]
[0002] Recently, the demand for high-resolution, high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images has been increasing in various fields. As the resolution and quality of image data increases, the amount of information or bits to be transmitted increases relatively compared to existing image data. Therefore, when image data is transmitted using a medium such as an existing wired or wireless broadband line or when image data is stored using an existing storage medium, transmission costs and storage costs increase.
[0003] Therefore, highly efficient image compression techniques are required to effectively transmit, store and reproduce high-resolution, high-quality image information. Summary of the Invention [Problem to be solved by the invention]
[0004] The technical problem of this document is to provide a method and apparatus for increasing image coding efficiency.
[0005] Another technical problem of this document is to provide a method and apparatus for improving the efficiency of data coding for deriving quantization parameters for chroma components. [Means for solving the problem]
[0006] According to one embodiment of the present document, there is provided a video decoding method performed by a decoding device, the method comprising the steps of obtaining video information via a bitstream and generating a reconstructed picture based on the video information.
[0007] According to another embodiment of the present document, there is provided a decoding device for performing video decoding, the decoding device including an entropy decoding unit for acquiring video information through a bitstream, and a residual processing unit for generating a reconstructed picture based on the video information.
[0008] According to another embodiment of the present document, there is provided a video encoding method performed by an encoding device, the method comprising the steps of encoding video information and generating a bitstream including the video information.
[0009] According to another embodiment of the present disclosure, there is provided a video encoding device, comprising: an entropy encoding unit configured to encode video information and generate a bitstream including the video information. [Effects of the Invention]
[0010] According to this document, instead of using a default chroma QP mapping table to derive chroma quantization parameters for chroma components, chroma quantization parameters for chroma components can be derived using a chroma QP mapping table derived based on signaled chroma quantization parameter data, thereby improving coding efficiency based on quantization parameters according to the characteristics of the image.
[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 input coordinates of a point in a chroma QP mapping table and / or a syntax element indicating a delta value used to derive output coordinates of the point in the chroma QP mapping table, and coding can be performed based on a chroma QP mapping table that more specifically reflects the characteristics of an image, thereby improving coding efficiency. [Brief explanation of the drawings]
[0012] [Figure 1] 1 illustrates schematically an example of a video / image coding system to which embodiments of the present document may be applied.
[0013] [Figure 2] 1 is a diagram illustrating a schematic configuration of a video / image encoding device to which embodiments of the present document can be applied;
[0014] [Figure 3] 1 is a diagram illustrating the configuration of a video / image decoding device to which the embodiments of the present document can be applied;
[0015] [Figure 4] 1 shows an example of an intra-prediction based video / image encoding method.
[0016] [Figure 5] 1 shows an example of an intra-prediction based video / image encoding method.
[0017] [Figure 6] 1 illustrates an exemplary intra-prediction procedure.
[0018] [Figure 7] 1 shows an example of an inter-prediction based video / image encoding method.
[0019] [Figure 8]1 shows an example of an inter-prediction based video / image decoding method.
[0020] [Figure 9] 1 illustrates an exemplary inter-prediction procedure.
[0021] [Figure 10] 1 illustrates a schematic diagram of an image encoding method using an encoding device according to the present document.
[0022] [Figure 11] 1 shows a schematic diagram of an encoding device for performing the image encoding method according to the present document;
[0023] [Figure 12] 1 illustrates an image decoding method using a decoding device according to the present document.
[0024] [Figure 13] 1 shows a schematic diagram of a decoding device for performing the image decoding method according to the present document;
[0025] [Figure 14] 1 exemplarily illustrates a structural diagram of a content streaming system to which an embodiment of the present document is applied. DETAILED DESCRIPTION OF THE INVENTION
[0026] This document may be modified in various ways and may 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 the specific embodiment. Common terms used in this document are used merely to describe specific embodiments and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to specify the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0027] Meanwhile, each component in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components may be combined to form a single component, or a single component may be divided into multiple components. Embodiments in which each component is integrated and / or separated are also within the scope of this document as long as they do not deviate from the essence of this document.
[0028] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals will be used to refer to the same components in the drawings, and duplicated descriptions of the same components may be omitted.
[0029] FIG. 1 illustrates schematically an example of a video / image coding system in which embodiments of the present document may be applied.
[0030] As shown in Figure 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image information or data to the receiving device in file or streaming form via a digital storage medium or a network.
[0031] The source device may include a video source, an encoding device, and a transmitting unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, which may be a separate device or an external component.
[0032] A video source can acquire video / images through a video / image capture, synthesis, or generation process. A video source can include a video / image capture device and / or a video / image generation device. A video / image capture device can include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device can include, for example, a computer, a tablet, a smartphone, etc., and can (electronically) generate video / images. For example, virtual video / images can be generated via a computer, etc., in which case the video / image capture process can be replaced by a process in which the associated data is generated.
[0033] An encoding device can encode input video / images. The encoding device can perform a series of steps such as prediction, transformation, and quantization for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0034] The transmitter may transmit the encoded video / image information or data output in the form of a bitstream to a receiver of a receiving device via a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. The transmitter may include elements for generating a media file in a predetermined file format and elements for transmission via a broadcasting / communication network. The receiver may receive / extract the bitstream and transmit it to a decoding device.
[0035] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transform, prediction, etc., which correspond to the operations of the encoding device.
[0036] The renderer can render the decoded video / image, and the rendered video / image can be displayed via a display unit.
[0037] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to methods disclosed in the versatile video coding (VVC) standard, the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or next generation video / image coding standards (e.g., H.267 or H.268).
[0038] This document presents various embodiments relating to video / image coding, which, unless otherwise stated, may also be implemented in combination with one another.
[0039] In this document, video may refer to a collection of a series of images over time. A picture generally refers to a unit that shows an image at a specific time, and a subpicture, slice, or tile is a unit that constitutes part of a picture in coding. A subpicture, slice, or tile may contain one or more coding tree units (CTUs). A picture may be composed of one or more subpictures, slices, or tiles. A picture may be composed of one or more groups of tiles. A tile group may contain one or more tiles. A brick may represent a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each consisting of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan refers to 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 may represent a rectangular region of one or more slices within a picture. That is, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the height of the picture. A tile scan refers to a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in a CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, the terms tile group and slice may be used interchangeably. For example, in this document, tile group / tile group header may be called slice / slice header.
[0040] A pixel or a pel may refer to the smallest unit that constitutes one picture (or image). A "sample" may also be used as a term corresponding to a pixel. A sample may generally refer to a pixel or a pixel value, or may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component.
[0041] A unit may refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to that region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. The term unit may be used interchangeably with terms such as block or area. In a general case, an M×N block may include samples (or a sample array) consisting of M columns and N rows, or a set (or an array) of transform coefficients.
[0042] As used herein, "A or B" may mean "A only," "B only," or "both A and B." In other words, as used herein, "A or B" may be interpreted as "A and / or B." For example, as used herein, "A, B, or C" may mean "A only," "B only," "C only," or "any combination of A, B, and C."
[0043] As used herein, a slash ( / ) or a comma may mean "and / or." For example, "A / B" may mean "A and / or B." Thus, "A / B" may mean "A only," "B only," or "both A and B." For example, "A, B, C" may mean "A, B, or C."
[0044] As used herein, "at least one of A and B" can mean "A only," "B only," or "both A and B." Furthermore, as used herein, the expressions "at least one of A or B" and "at least one of A and / or B" can be interpreted in the same way as "at least one of A and B."
[0045] Furthermore, in this specification, "at least one of A, B and C" can mean "A only," "B only," "C only," or "any combination of A, B and C." Furthermore, "at least one of A, B or C" and "at least one of A, B and / or C" can mean "at least one of A, B and C."
[0046] Furthermore, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." Furthermore, when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."
[0047] Technical features described separately in one drawing in this specification may be realized separately or simultaneously.
[0048] The following drawings are created to explain a specific example of the present specification. The names of specific devices and names of specific signals / messages / fields shown in the drawings are provided for illustrative purposes only, and the technical features of the present specification are not limited to the specific names used in the following drawings.
[0049] 2 is a diagram for explaining the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, the video encoding device may include an image encoding device.
[0050] As shown in FIG. 2, the encoding device 200 may include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter predictor 221 and an intra predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. The image dividing unit 210, the predicting unit 220, the residual processing unit 230, the entropy encoding unit 240, the adding unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chipset or a processor) depending on the embodiment. Also, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0051] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. For example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree, binary-tree, ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into multiple coding units of deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and then the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied first. The coding procedure according to this document may be performed based on the final coding unit that is not further divided. In this case, the largest coding unit may be immediately used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as needed, and the coding unit of the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit.The prediction unit is a unit of sample prediction, and the transform unit is a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0052] The term "unit" can be used interchangeably with terms such as "block" or "area." In general, an MxN block can refer to a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally refer to a pixel or pixel value, and can refer to only a pixel / pixel value of the luma component, or only a pixel / pixel value of the chroma component. A sample can also be used as a term corresponding to one pixel or pel of a picture (or image).
[0053] The encoding apparatus 200 may generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input image signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as shown in the figure, a unit in the encoder 200 that subtracts the prediction signal (predicted block, prediction sample array) from the input image signal (original block, original sample array) may be referred to as a subtraction unit 231. The prediction unit may perform prediction on a current block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoding unit 240, as will be described later in the description of each prediction mode. The prediction information can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0054] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located far away, depending on the prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, DC mode and planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the granularity of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the settings. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction modes applied to neighboring blocks.
[0055] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. To reduce the amount of motion information transmitted in inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on an inter prediction direction (such as L0 prediction, L1 prediction, or Bi prediction). In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), or the like, and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter predictor 221 may configure a motion information candidate list based on neighboring blocks and generate information indicating which candidates are used to derive a motion vector and / or a reference picture index for the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode or a merge mode, the inter predictor 221 may use motion information of neighboring blocks as motion information of the current block. In the case of the skip mode, unlike in the merge mode, a residual signal may not be transmitted.In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block is 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 predictor 220 may generate a prediction signal based on various prediction methods, which will be described later. For example, the predictor may apply intra prediction or inter prediction for prediction of a block, or may simultaneously apply intra prediction and inter prediction. This may be referred to as combined inter and intra prediction (CIIP). The predictor may also use an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding, such as games, such as screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described herein. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, sample values within a picture may be signaled based on information about a palette table and a palette index.
[0057] The prediction signal generated by the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) may be used to generate a reconstructed signal or a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, GBT refers to a transform obtained from a graph representing inter-pixel relationship information. CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. The transform process may be applied to pixel blocks having the same square size or non-square blocks of variable size.
[0058] The quantizer 233 quantizes the transform coefficients and transmits them to the entropy encoder 240. The entropy encoder 240 encodes the quantized signal (information about the quantized transform coefficients) and outputs it as a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. In addition to the quantized transform coefficients, the entropy encoder 240 may also encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of network abstraction layer (NAL) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may also include general constraint information. Information and / or syntax elements transmitted / signaled from an encoding device to a decoding device in this document may be included in the video / image information. The video / image information may be encoded through the above-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 broadcasting network and / or a communication network, and the digital storage medium can include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal can be configured as an internal / external element of the encoding device 200, or the transmitter can be included in the entropy encoding unit 240.
[0059] The quantized transform coefficients output from the quantization unit 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be reconstructed by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantization unit 234 and the inverse transform unit 235. The adder 250 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the current block, such as when skip mode is applied, a predicted block may be used as the reconstructed block. The adder 250 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, or may be used for inter prediction of the next picture after filtering, as described below.
[0060] Meanwhile, luma mapping with chroma scaling (LMCS) can be applied during picture encoding and / or reconstruction.
[0061] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture and store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoding unit 240, as will be described later in connection with each filtering method. The filtering information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0062] The modified reconstructed 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 apparatus can avoid prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300 and can also improve encoding efficiency.
[0063] The memory 270DPB may store modified reconstructed pictures for use as reference pictures in the inter predictor 221. The memory 270 may store motion information of blocks from which motion information in the current picture is derived (or encoded) and / or motion information of blocks in already reconstructed pictures. The stored motion information may be transmitted to the inter predictor 221 to be used as motion information of spatially neighboring blocks or temporally neighboring blocks. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra predictor 222.
[0064] FIG. 3 is a diagram illustrating the configuration of a video / image decoding device to which the embodiments of this document can be applied.
[0065] As shown in FIG. 3, the decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-predictor 331 and an intra-predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 may be configured as a single hardware component (e.g., a decoder chipset or processor) according to an embodiment. The memory 360 may include a decoded picture buffer (DPB) or may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.
[0066] When a bitstream including video / image information is input, the decoding device 300 can reconstruct an image corresponding to the process by which the video / image information was processed by the encoding device of FIG. 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using a processing unit applied by the encoding device. Accordingly, the processing unit for decoding is, for example, a coding unit, and the coding unit can be divided from a coding tree unit or a maximal coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 can be reproduced through a playback device.
[0067] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may also include general constraint information. The decoding device may further decode pictures based on the information on the parameter sets and / or the general constraint information. Signaling / received information and / or syntax elements, which will be described later in this document, may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as Exponential-Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration, quantized values of transform coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using information on the syntax element to be decoded and decoded information on neighboring and current blocks, or information on symbols / bins decoded in previous steps, predicts the occurrence probability of the bins according to the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. After determining the context model, the CABAC entropy decoding method may update the context model using information on the decoded symbols / bins for the context model of the next symbol / bin.Among the information decoded by the entropy decoding unit 310, information related to prediction is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and residual values entropy decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to a residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). In addition, among the information decoded by the entropy decoding unit 310, information related to filtering may be provided to a filtering unit 350. Meanwhile, a receiving unit (not shown) that receives a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the addition unit 340, the filtering unit 350, the memory 360, the inter prediction unit 332, and the intra prediction unit 331.
[0068] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block format. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0069] The inverse transform unit 322 performs inverse transform on the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0070] The prediction unit may perform prediction on a current block and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on information about the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0071] The predictor 320 may generate a prediction signal based on various prediction methods, which will be described later. For example, the predictor may apply intra prediction or inter prediction for predicting a block, or may simultaneously apply intra prediction and inter prediction. This may be referred to as combined inter and intra prediction (CIIP). The predictor may also use an intra block copy (IBC) prediction mode or a palette mode for predicting a block. The IBC prediction mode or palette mode may be used for content image / video coding, such as games, such as screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, information regarding a palette table and a palette index may be included in the video / image information and signaled.
[0072] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located far away from the current block depending on the prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block using prediction modes applied to neighboring blocks.
[0073] The inter prediction unit 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. To reduce the amount of motion information transmitted from the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (e.g., L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. For example, the inter prediction unit 332 may construct a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on received candidate selection information. Inter prediction may be performed based on various prediction modes, and the prediction information may include information indicating the inter prediction mode for the current block.
[0074] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to a predicted signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 332 and / or the intra prediction unit 331). When there is no residual for the current block, such as when a skip mode is applied, the predicted block may be used as a reconstructed block.
[0075] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in the current picture, may be output after filtering as described below, or may be used for inter prediction of a next picture.
[0076] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.
[0077] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0078] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter predictor 332. The memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter predictor 260 to be used as motion information of a spatially neighboring block or a temporally neighboring block. The memory 360 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra predictor 331.
[0079] In this specification, the embodiments described for the filtering unit 260, inter prediction unit 221, and intra prediction unit 222 of the encoding device 200 can also be applied identically or correspondingly to the filtering unit 350, inter prediction unit 332, and intra prediction unit 331 of the decoding device 300, respectively.
[0080] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When the quantization / dequantization is omitted, the quantized transform coefficients may be referred to as transform coefficients. When the transform / inverse transform is omitted, the transform coefficients may be referred to as coefficients or residual coefficients, or may still be referred to as transform coefficients for consistency of expression.
[0081] In this document, quantized transform coefficients and transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, residual information may include information about the transform coefficient(s), and the information about the transform coefficient(s) may be signaled via a residual coding syntax. Transform coefficients may be derived based on the residual information (or information about the transform coefficient(s)), and scaled transform coefficients may be derived through an inverse transform (scaling) of the transform coefficient(s). Residual samples may be derived based on an inverse transform (transform) of the scaled transform coefficient(s). This may be similarly applied / expressed in other parts of this document.
[0082] As described above, prediction is performed to improve compression efficiency during video coding. Through this, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in the spatial domain (or pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device. The encoding device can improve image coding efficiency by signaling to a decoding device information (residual information) regarding the residual between the original block and the predicted block, rather than the original sample values of the original block themselves. The decoding device can derive a residual block including residual samples based on the residual information, combine the residual block with the predicted block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.
[0083] The residual information may be generated through a transform and quantization procedure. For example, an encoding device may derive a residual block between the original block and the predicted block, perform a transform procedure on residual samples (residual sample array) included in the residual block to derive transform coefficients, perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and signal the related residual information (via a bitstream) to a decoding device. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. A decoding device may perform an inverse quantization / inverse transform procedure based on the residual information to derive residual samples (or residual blocks). The decoding device may generate a reconstructed picture based on the predicted block and the residual block. The encoding device may further derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a subsequent picture, and generate a reconstructed picture based on the residual block.
[0084] Intra prediction may refer to a prediction that generates prediction samples for a current block based on reference samples in a picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include samples adjacent to the left boundary and bottom-left neighboring samples of a current block having a size of nW×nH, a total of 2×nH samples, samples adjacent to the top boundary and top-right neighboring samples of the current block, a total of 2×nW samples, and one sample adjacent to the top-left neighboring sample of the current block. Alternatively, the neighboring reference samples of the current block may include multiple columns of upper neighboring samples and multiple rows of left neighboring samples. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0085] However, some of the surrounding reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may construct surrounding reference samples to be used for prediction by substituting unavailable samples for available samples, or may construct surrounding reference samples to be used for prediction through interpolation of available samples.
[0086] When neighboring reference samples are derived, (i) a predicted sample can be derived based on an average or interpolation of neighboring reference samples of the current block, or (ii) the predicted sample can be derived based on a reference sample that exists in a specific (prediction) direction with respect to the predicted sample among the neighboring reference samples of the current block. (i) can be called a non-directional mode or a non-angular mode, and (ii) can be called a directional mode or an angular mode.
[0087] In addition, the predicted sample may be generated by interpolating a first neighboring sample located in the prediction direction of the intra prediction mode of the current block and a second neighboring sample located in the opposite direction to the prediction direction based on the predicted sample of the current block among the neighboring reference samples. This case may be called linear interpolation intra prediction (LIP). Alternatively, a chroma predicted sample may be generated based on a luma sample using a linear model (LM). This case may be called an LM mode or a CCLM (chroma component LM) mode.
[0088] Alternatively, a provisional predicted sample of the current block may be derived based on filtered neighboring reference samples, and the predicted sample of the current block may be derived by weighting the provisional predicted sample with at least one reference sample derived according to the intra prediction mode from the existing neighboring reference samples, i.e., non-filtered neighboring reference samples. The above case may be referred to as Position Dependent Intra Prediction (PDPC).
[0089] In addition, intra-prediction coding may be performed by selecting a reference sample line with the highest prediction accuracy from among multiple reference sample lines surrounding the current block, deriving a prediction sample using a reference sample located in the prediction direction of the selected line, and signaling the used reference sample line to a decoding device. This case may be called multi-reference line intra-prediction or MRL-based intra-prediction.
[0090] In addition, the current block may be divided into vertical or horizontal sub-partitions and intra prediction may be performed based on the same intra prediction mode, but neighboring reference samples may be derived and used for each sub-partition. That is, in this case, the intra prediction mode for the current block is applied to the sub-partitions in the same manner, but neighboring reference samples may be derived and used for each sub-partition, thereby improving intra prediction performance in some cases. This prediction method may be called intra sub-partitions (ISP)-based intra prediction.
[0091] The above-described intra prediction methods may be referred to as intra prediction types, distinguished from intra prediction modes. The intra prediction types may be referred to by various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction types (or additional intra prediction modes, etc.) may include at least one of the above-described LIP, PDPC, MRL, and ISP. A general intra prediction method other than the specific intra prediction types, such as LIP, PDPC, MRL, and ISP, may be referred to as a normal intra prediction type. The normal intra prediction type may be generally applied when the above-described specific intra prediction types are not applied, and prediction may be performed based on the above-described intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.
[0092] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra prediction mode / type. In addition, a post-processing filtering step may be performed on the derived prediction sample, if necessary.
[0093] FIG. 4 shows an example of an intra-prediction based video / image encoding method.
[0094] As shown in FIG. 4, the encoding apparatus performs intra prediction on a current block (S400). The encoding apparatus may derive an intra prediction mode / type for the current block, derive neighboring reference samples for the current block, and generate predicted 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 predicted sample generation procedures may be performed simultaneously, or one procedure may be performed before the other procedures. The encoding apparatus may determine a mode / type to be applied to the current block from among multiple intra prediction modes / types. The encoding apparatus may compare RD costs for the intra prediction modes / types to determine the optimal intra prediction mode / type for the current block.
[0095] Meanwhile, the encoding apparatus may also perform a prediction sample filtering procedure, which may be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0096] The encoding apparatus generates residual samples for the current block based on the (filtered) predicted samples (S410). The encoding apparatus can derive the residual samples by comparing the predicted samples with the original samples of the current block based on phase.
[0097] The encoding device may encode image information including information related to the intra prediction (prediction information) and residual information related to the residual samples (S420). The prediction information may include the intra prediction mode information and the intra prediction type information. The encoding device may output the encoded image information in the form of a bitstream. The output bitstream may be transmitted to a decoding device via a storage medium or a network.
[0098] The residual information may include a residual coding syntax, which will be described later. An encoding device may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information about the quantized transform coefficients.
[0099] Meanwhile, as described above, the encoding apparatus can generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding apparatus can again inverse-quantize / inverse-transform the quantized transform coefficients to derive (modified) residual samples. The reason for again performing inverse-quantization / inverse-transformation on the residual samples after transforming / quantizing them is to derive residual samples that are the same as the residual samples derived by the decoding apparatus, as described above. The encoding apparatus can generate a reconstructed block including reconstructed samples for the current block based on the predicted samples and the (modified) residual samples. A reconstructed picture for the current picture can be generated based on the reconstructed block. As described above, an in-loop filtering procedure, etc., can be further applied to the reconstructed picture.
[0100] FIG. 5 illustrates an example of an intra-prediction based video / image encoding method.
[0101] The decoding device can perform operations corresponding to those performed by the encoding device.
[0102] Prediction information and residual information can be obtained from a bitstream. Residual samples for a current block can be derived based on the residual information. Specifically, transform coefficients can be derived by performing inverse quantization based on quantized transform coefficients derived based on the residual information, and residual samples for the current block can be derived by performing inverse transform on the transform coefficients.
[0103] Specifically, the decoding apparatus may derive an intra-prediction mode / type for a current block based on received prediction information (intra-prediction mode / type information) (S500). The decoding apparatus may derive neighboring reference samples for the current block (S510). The decoding apparatus may generate prediction samples within the current block based on the intra-prediction mode / type and the neighboring reference samples (S520). In this case, the decoding apparatus may perform a prediction sample filtering procedure. The prediction sample filtering may be referred to as post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0104] The decoding device generates residual samples for the current block based on the received residual information (S530). The decoding device generates reconstructed samples for the current block based on the predicted samples and the residual samples, and may derive a reconstructed block including the reconstructed samples (S540). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure may be further applied to the reconstructed picture.
[0105] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding device may determine the intra prediction mode of the current block based on the intra prediction mode information.
[0106] The intra prediction type information may be implemented in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. For another example, the intra prediction type information may include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the block, ISP type information (e.g., intra_subpartitions_split_flag) indicating a subpartition split type if the ISP is applied, and flag information indicating whether PDCP is applied or flag information indicating whether LIP is applied or not. The intra prediction type information may also include an MIP flag indicating whether matrix-based intra prediction (MIP) is applied to the current block.
[0107] The intra prediction mode information and / or the intra prediction type information may be encoded / decoded using the coding methods described herein, for example, via entropy coding (e.g., CABAC, CAVLC).
[0108] FIG. 6 exemplarily illustrates the intra prediction procedure.
[0109] 6, as described above, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction execution (prediction sample generation) step. The intra prediction procedure may be performed by an encoding device and a decoding device as described above. In this document, a coding device may include an encoding device and / or a decoding device.
[0110] As shown in FIG. 6, the coding device determines an intra-prediction mode / type (S600).
[0111] The encoding device may determine an intra-prediction mode / type to be applied to the current block from among the various intra-prediction modes / types described above and generate prediction-related information. The prediction-related information may include intra-prediction mode information indicating the intra-prediction mode to be applied to the current block and / or intra-prediction type information indicating the intra-prediction type to be applied to the current block. The decoding device may determine the intra-prediction mode / type to be applied to the current block based on the prediction-related information.
[0112] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding device may determine the intra prediction mode of the current block based on the intra prediction mode information.
[0113] The intra prediction type information may be implemented in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. For another example, the intra prediction type information may include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating a subpartition split type if the ISP is applied, and flag information indicating whether PDCP is applied or flag information indicating whether LIP is applied. The intra prediction type information may also include an MIP flag indicating whether matrix-based intra prediction (MIP) is applied to the current block.
[0114] For example, when intra prediction is applied, the intra prediction mode to be applied to the current block may be determined using the intra prediction mode of a neighboring block. For example, the coding apparatus may select one of MPM candidates in an MPM (most probable mode) list derived based on the intra prediction modes of neighboring blocks (e.g., left and / or upper neighboring blocks) of the current block and / or additional candidate modes based on a received MPM index, or may select one of the remaining intra prediction modes not included in the MPM candidates (and planar mode) based on MPM remainder information (remaining intra prediction mode information). The MPM list may be configured to include or not include a planar mode as a candidate. For example, if the MPM list includes a planar mode as a candidate, the MPM list may have six candidates, and if the MPM list does not include a planar mode as a candidate, the MPM list may have five candidates. If the MPM list does not include a planar mode as a candidate, a not planar flag (e.g., intra_luma_not_planar_flag) indicating that the intra prediction mode of the current block is not a planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not planar flag may be signaled if the MPM flag has a value of 1. Also, the MPM index may be signaled if the not planar flag has a value of 1. Here, the reason why the MPM list is configured not to include a planar mode as a candidate is that, rather than the planar mode not being an MPM, the planar mode is always considered as an MPM, and therefore a flag (not planar flag) is signaled first to first confirm whether or not the mode is a planar mode.
[0115] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planar mode) or among the remaining mode may be indicated based on an MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag may indicate that the intra prediction mode for the current block is among the MPM candidates (and planar mode), and a value of 0 for the MPM flag may indicate that the intra prediction mode for the current block is not among the MPM candidates (and planar mode). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is planar mode, and a value of 1 for the not planar flag may indicate that the intra prediction mode for the current block is not planar mode. The MPM index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information may index the remaining intra prediction modes not included in the MPM candidates (and planar modes) among all intra prediction modes in order of prediction mode numbers and point to one of them. The intra prediction mode may be an intra prediction mode for a luma component (sample). Hereinafter, the intra prediction mode information may include at least one of the MPM flag (ex. intra_luma_mpm_flag), the not planar flag (ex. intra_luma_not_planar_flag), the MPM index (ex. mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, an MPM list may be referred to by various terms, such as an MPM candidate list, a candModeList, etc.
[0116] If MIP is applied to the current block, a separate MPM flag (ex. intra_mip_mpm_flag), MPM index (ex. intra_mip_mpm_idx), and remaining intra-prediction mode information (ex. intra_mip_mpm_remainder) for MIP may be signaled, and the not planar flag may not be signaled.
[0117] In other words, when an image is generally divided into blocks, the current block to be coded and neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are likely to have the same or similar intra-prediction modes. Therefore, an encoder can use the intra-prediction modes of neighboring blocks to encode the intra-prediction mode of the current block.
[0118] A coding apparatus may configure an MPM (Most Probable Modes) list for a current block. The MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency by considering similarities between a current block and neighboring blocks during intra-prediction mode coding. As described above, the MPM list may be configured to include or exclude planar modes. For example, if the MPM list includes planar modes, the number of candidates in the MPM list may be six. If the MPM list does not include planar modes, the number of candidates in the MPM list may be five.
[0119] An encoding device may perform prediction based on various intra prediction modes and determine an optimal intra prediction mode based on rate-distortion optimization (RDO) based on the prediction. In this case, the encoding device may determine the optimal intra prediction mode using only the MPM candidates and planar modes configured in the MPM list, or may determine the optimal intra prediction mode using not only the MPM candidates and planar modes configured in the MPM list but also the remaining intra prediction modes. Specifically, for example, if the intra prediction type of the current block is a specific type other than a normal intra prediction type (e.g., LIP, MRL, or ISP), the encoding device may determine the optimal intra prediction mode by considering only the MPM candidates and planar modes as intra prediction mode candidates for the current block. That is, in this case, the intra prediction mode for the current block may be determined from the MPM candidates and planar modes, and in this case, the MPM flag may not be encoded / signaled. In this case, the decoding device can infer that the MPM flag is 1 even if the MPM flag is not separately signaled.
[0120] Meanwhile, in general, if the intra prediction mode of the current block is not a planar mode but one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not in the MPM list either, the encoding device generates MPM remainder information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list (and planar modes). The MPM remainder information may include, for example, an intra_luma_mpm_remainder syntax element.
[0121] The decoding device obtains intra prediction mode information from a bitstream. As described above, the intra prediction mode information may include at least one of an MPM flag, a not planar flag, an MPM index, and MPM remainder information (remaining intra prediction mode information). The decoding device may configure an MPM list. The MPM list is configured in the same manner as the MPM list configured in the encoding device. That is, the MPM list may include intra prediction modes of neighboring blocks and may further include a specific intra prediction mode according to a predetermined method.
[0122] The decoding device may determine the intra prediction mode of the current block based on the MPM list and the intra prediction mode information. For example, if the MPM flag has a value of 1, the decoding device may derive a planar mode as the intra prediction mode of the current block (not based on the planar flag), or may derive a candidate indicated by the MPM index from among MPM candidates in the MPM list as the intra prediction mode of the current block. Here, the MPM candidate may refer to only candidates included in the MPM list, or may include not only candidates included in the MPM list but also planar modes that can be applied when the MPM flag has a value of 1.
[0123] As another example, if the value of the MPM flag is 0, the decoding device may derive the intra prediction mode pointed to by the remaining intra prediction mode information (which may be referred to as mpm remainder information) from among the remaining intra prediction modes not included in the MPM list and planar mode as the intra prediction mode of the current block. Meanwhile, as yet another example, if the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP), the decoding device may derive the planar mode or a candidate pointed to by the MPM flag in the MPM list as the intra prediction mode of the current block without parsing / decoding / checking the MPM flag.
[0124] The coding apparatus derives neighboring reference samples for a current block (S610). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples for the current block may include samples adjacent to the left boundary and bottom-left neighboring samples of the current block having a size of nW×nH, a total of 2×nH samples, samples adjacent to the top boundary and top-right neighboring samples of the current block, a total of 2×nW samples, and one sample adjacent to the top-left neighboring sample of the current block. Alternatively, the neighboring reference samples for the current block may include multiple columns of upper neighboring samples and multiple rows of left neighboring samples. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0125] On the other hand, when MRL is applied (i.e., when the value of the MRL index is greater than 0), the neighboring reference samples may be located on the 1st or 2nd line adjacent to the current block on the left / top side, not on the 0th line, and in this case, the number of neighboring reference samples may be further increased.On the other hand, when ISP is applied, the neighboring reference samples may be derived in sub-partition units.
[0126] The coding apparatus performs intra prediction on the current block to derive predicted samples (S620). The coding apparatus may derive the predicted samples based on the intra prediction mode / type and the surrounding samples. The coding apparatus may derive reference samples according to the intra prediction mode of the current block from the surrounding reference samples of the current block, and may derive predicted samples of the current block based on the reference samples.
[0127] Meanwhile, when inter prediction is applied, a prediction unit of an encoding / decoding device may perform inter prediction on a block-by-block basis to derive a prediction sample. Inter prediction may represent a prediction derived in a manner that is dependent on data elements (e.g., sample values or motion information) of picture(s) other than the current picture. When inter prediction is applied to a current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) identified by a motion vector on a reference picture indicated by a reference picture index. In this case, to reduce the amount of motion information transmitted in the inter prediction mode, motion information of the current block may be predicted on a block, sub-block, or sample-by-block basis based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction type information (e.g., L0 prediction, L1 prediction, Bi prediction, etc.). When inter-prediction is applied, the neighboring blocks may 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 blocks may be the same or different. The temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture including the temporal neighboring blocks may be called collocated pictures (colPics).For example, a motion information candidate list may be constructed based on neighboring blocks of the current block, and flag or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled. Inter prediction may be performed based on various prediction modes. For example, in skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected neighboring block. In skip mode, unlike merge mode, a residual signal may not be transmitted. In motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor, and a motion vector difference may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[0128] The motion information may include L0 motion information and / or L1 motion information depending on the inter-prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). A motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and a motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. Prediction based on an L0 motion vector may be referred to as L0 prediction, prediction based on an L1 motion vector may be referred to as L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as bi-prediction. Here, the L0 motion vector may represent a motion vector associated with a reference picture list L0(L0), and the L1 motion vector may represent a motion vector associated with a reference picture list L1(L1). The reference picture list L0 may include pictures that precede the current picture in output order as reference pictures, and the reference picture list L1 may include pictures that follow the current picture in output order. The previous picture may be referred to as a forward (reference) picture, and the subsequent picture may be referred to as a backward (reference) picture. The reference picture list L0 may further include subsequent pictures in output order relative to the current picture as reference pictures. In this case, the previous picture may be indexed first in the reference picture list L0, and the subsequent picture may be indexed next. The reference picture list L1 may further include previous pictures in output order relative to the current picture as reference pictures. In this case, the subsequent picture may be indexed first in the reference picture list L1, and the previous picture may be indexed next. Here, the output order may correspond to a picture order count (POC) order.
[0129] A video / image encoding procedure based on inter prediction may generally include, for example:
[0130] FIG. 7 illustrates an example of an inter-prediction based video / image encoding method.
[0131] The encoding apparatus performs inter prediction on a current block (S700). The encoding apparatus may derive an inter prediction mode and motion information of the current block and generate a predicted sample for the current block. Here, the inter prediction mode determination, motion information derivation, and predicted sample generation procedures may be performed simultaneously, or one procedure may be performed before the other procedures. For example, the inter prediction unit of the encoding apparatus may include a prediction mode determination unit, a motion information derivation unit, and a predicted sample derivation unit, in which the prediction mode determination unit may determine a prediction mode for the current block, the motion information derivation unit may derive motion information for the current block, and the predicted sample derivation unit may derive a predicted sample for the current block. For example, the inter prediction unit of the encoding apparatus may search for a block similar to the current block within a certain region (search region) of a reference picture through motion estimation and derive a reference block whose difference from the current block is minimum or equal to or less than a certain criterion. Based on this, a reference picture index indicating a reference picture in which the reference block is located can be derived, and a motion vector can be derived based on a position difference between the reference block and the current block. The encoding device can determine a mode to be applied to the current block from various prediction modes. The encoding device can compare RD costs for the various prediction modes to determine an optimal prediction mode for the current block.
[0132] For example, when a skip mode or a merge mode is applied to the current block, the encoding device may construct a merge candidate list (described below) and derive a reference block, among reference blocks indicated by merge candidates included in the merge candidate list, whose difference from the current block is minimum or equal to or less than a certain criterion. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and signaled to the decoding device. Motion information of the current block may be derived using motion information of the selected merge candidate.
[0133] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may construct an (A)MVP candidate list (described below) and use the motion vector of a selected MVP (motion vector predictor) candidate from among the MVP candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, a motion vector pointing to a reference block derived by the motion estimation described above may be used as the motion vector of the current block, and the MVP candidate having the smallest difference from the motion vector of the current block may be the selected MVP candidate. A motion vector difference (MVD), which is the difference obtained by subtracting the MVP from the motion vector of the current block, may be derived. In this case, information regarding the MVD may be signaled to the decoding apparatus. Furthermore, when the (A)MVP mode is applied, the value of the reference picture index may be configured as reference picture index information and separately signaled to the decoding apparatus.
[0134] The encoding apparatus may derive residual samples based on the predicted samples (S710) by comparing the original samples of the current block with the predicted samples.
[0135] The encoding apparatus encodes image information including prediction information and residual information (S720). The encoding apparatus may output the encoded image information in the form of a bitstream. The prediction information may include prediction mode information (e.g., skip flag, merge flag, or mode index) and information on motion information, which are information related to the prediction procedure. The information on the motion information may include candidate selection information (e.g., merge index, MVP flag, or MVP index), which is information for deriving a motion vector. The information on the motion information may also include the above-mentioned information on MVD and / or reference picture index information. The information on the motion information may also include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information on the residual sample. The residual information may include information on quantized transform coefficients for the residual sample.
[0136] The output bitstream can be stored in a (digital) storage medium and transmitted to the decoding device, or can be transmitted to the decoding device via a network.
[0137] Meanwhile, as described above, the encoding apparatus can generate a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference samples and the residual samples. This is because the encoding apparatus derives the same prediction result as that performed by the decoding apparatus, thereby improving coding efficiency. Therefore, the encoding apparatus can store the reconstructed picture (or reconstructed samples, reconstructed blocks) in memory and use it as a reference picture for inter prediction. As described above, an in-loop filtering procedure can be further applied to the reconstructed picture.
[0138] A video / image decoding procedure based on inter prediction may generally include, for example:
[0139] FIG. 8 illustrates an example of an inter-prediction based video / image decoding method.
[0140] As shown in Figure 8, the decoding device may perform operations corresponding to those performed by the encoding device. The decoding device may perform prediction for the current block based on received prediction information and derive predicted samples.
[0141] Specifically, the decoding device may determine a prediction mode for the current block based on received prediction information (S800). The decoding device may determine which inter-prediction mode is applied to the current block based on prediction mode information in the prediction information.
[0142] For example, it may determine whether the merge mode or (A)MVP mode is applied to the current block based on the merge flag. Alternatively, it may select one of various inter prediction mode candidates based on the mode index. The inter prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter prediction modes described below.
[0143] The decoding device derives motion information of the current block based on the determined inter prediction mode (S810). For example, when a skip mode or a merge mode is applied to the current block, the decoding device may construct a merge candidate list (described below) and select one merge candidate from among the merge candidates included in the merge candidate list. The selection may be made based on the selection information (merge index) described above. The motion information of the selected merge candidate may be used to derive motion information of the current block. The motion information of the selected merge candidate may 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 apparatus may construct an (A)MVP candidate list (described below) and use a motion vector of a selected MVP (motion vector predictor) candidate from among the MVP candidates included in the (A)MVP candidate list as the MVP of the current block. The selection may be performed based on the selection information (MVP flag or MVP index) described above. In this case, the MVD of the current block may be derived based on information related to the MVD, and the motion vector of the current block may be derived based on the MVP of the current block and the MVD. Furthermore, the decoding apparatus may derive a reference picture index of the current block based on the reference picture index information. A picture pointed to by the reference picture index in the reference picture list for the current block may be derived as a reference picture referenced for inter-prediction of the current block.
[0145] On the other hand, as will be described later, the motion information of the current block may be derived without constructing a candidate list, and in this case, the motion information of the current block may be derived according to a procedure disclosed in the prediction mode section, which will be described later. In this case, the candidate list construction as described above may be omitted.
[0146] The decoding device may generate prediction samples for the current block based on the motion information of the current block (S820). In this case, the reference picture may be derived based on a reference picture index of the current block, and the prediction samples of the current block may be derived using samples of a reference block pointed to in the reference picture by the motion vector of the current block. In this case, as described below, a prediction sample filtering procedure may be further performed on all or some of the prediction samples of the current block, depending on the circumstances.
[0147] For example, the inter-prediction unit of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and may determine a prediction mode for the current block based on prediction mode information received by the prediction mode determination unit, derive motion information (such as a motion vector and / or a reference picture index) of the current block based on information regarding the motion information received by the motion information derivation unit, and derive a prediction sample of the current block by the prediction sample derivation unit.
[0148] The decoding device generates residual samples for the current block based on the received residual information (S830). The decoding device generates reconstructed samples for the current block based on the predicted samples and the residual samples, and can generate a reconstructed picture based on the reconstructed samples (S840). Thereafter, an in-loop filtering procedure, etc., can be further applied to the reconstructed picture, as described above.
[0149] FIG. 9 exemplarily illustrates an inter prediction procedure.
[0150] 9, as described above, the inter prediction procedure may include an inter prediction mode determination step, a motion information deriving step according to the determined prediction mode, and a prediction (prediction sample generation) step based on the derived motion information. The inter prediction procedure may be performed by an encoding device and a decoding device, as described above. In this document, a coding device may include an encoding device and / or a decoding device.
[0151] As shown in FIG. 9, a coding apparatus determines an inter prediction mode for a current block (S900). Various inter prediction modes may be used for predicting a current block in a picture. For example, various modes may be used, such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, and merge with MVD (MMVD) mode. Decoder side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, bi-prediction with CU-level weight (BCW), bi-directional optical flow (BDOF), etc. may be used additionally or alternatively as auxiliary modes. Affine mode may also be referred to as affine motion prediction mode. MVP mode may also be referred to as advanced motion vector prediction mode. In this document, some modes and / or motion information candidates derived by some modes may be included as one of the motion information-related candidates of other modes. For example, an HMVP candidate can be added as a merge candidate in the merge / skip mode, or as an MVP candidate in the MVP mode. When the HMVP candidate is used as a motion information candidate in the merge mode or skip mode, the HMVP candidate can be referred to as an HMVP merge candidate.
[0152] Prediction mode information indicating the inter prediction mode of a current block may be signaled from an encoding apparatus to a decoding apparatus. The prediction mode information may be included in a bitstream and received by the decoding apparatus. The prediction mode information may include index information indicating one of a plurality of candidate modes. Alternatively, the inter prediction mode may be indicated through hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether a skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether a merge mode is applied, and if the merge mode is not applied, an MVP mode may be applied, or a flag for additional classification may be further signaled. The affine mode may be signaled in an independent mode or in a mode dependent on the merge mode or MVP mode. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0153] The coding apparatus derives motion information for the current block (S910). The motion information may be derived based on the inter prediction mode.
[0154] A coding apparatus may perform inter-prediction using motion information of a current block. An encoding apparatus may derive optimal motion information for a current block through a motion estimation procedure. For example, the encoding apparatus may search for a similar reference block with high correlation using an original block in an original picture for the current block in fractional pixel units within a predetermined search range in the reference picture, thereby deriving motion information. Block similarity may be derived based on a phase-based sample value difference. For example, block similarity may be calculated based on the SAD between the current block (or a template of the current block) and a reference block (or a template of the reference block). In this case, motion information may be derived based on the reference block with the smallest SAD within the search range. The derived motion information may be signaled to a decoding apparatus in various ways based on the inter-prediction mode.
[0155] The coding apparatus performs inter prediction based on motion information for the current block (S920). The coding apparatus may derive predictive samples (and the like) for the current block based on the motion information. The current block including the predictive samples may be referred to as a predicted block.
[0156] Meanwhile, as described above, the quantization unit of the encoding device can apply quantization to the transform coefficients to derive the quantized transform coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can apply inverse quantization to the quantized transform coefficients to derive the transform coefficients.
[0157] Generally, in video / image coding, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From an implementation perspective, a quantization parameter (QP) is used instead of directly using the quantization rate due to complexity considerations. For example, an integer quantization parameter ranging from 0 to 63 is used, and each quantization parameter value corresponds to an actual quantization rate. Also, for example, the quantization parameter (QPY) for the luma component (luma sample) and the quantization parameter (QPC) for the chroma component (chroma sample) can be set differently.
[0158] The quantization process takes a transform coefficient C as input, divides it by a quantization rate Qstep, and obtains a quantized transform coefficient C' based on the input. In this case, taking into consideration the computational complexity, the quantization rate can be multiplied by a scale to convert it into an integer, and a shift operation can be performed by the value corresponding to the scale value. The 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 based on the QP. For example, the quantization scale can be applied to the transform coefficient C, and the quantized transform coefficient C' can be derived based on the quantization scale.
[0159] The inverse quantization process is the inverse process of the quantization process, and involves multiplying the quantized transform coefficients (C') by a quantization rate (Qstep) to obtain reconstructed transform coefficients (C''). In this case, a level scale is derived according to the quantization parameter, and the level scale is applied to the quantized transform coefficients (C') to obtain reconstructed transform coefficients (C''). The reconstructed transform coefficients (C'') may differ slightly from the original transform coefficients (C) due to losses in the transform and / or quantization processes. Therefore, the encoding device also performs inverse quantization, just like the decoding device.
[0160] Meanwhile, an adaptive frequency weighting quantization technique that adjusts quantization strength according to frequency may be applied. The adaptive frequency weighting quantization technique is a method of applying different quantization strengths to different frequencies. The adaptive frequency weighting may apply different quantization strengths to different frequencies using predefined quantization scaling metrics. That is, the quantization / dequantization process may be performed based on the quantization scaling metrics. For example, different quantization scaling metrics may be used depending on the size of a current block and / or whether a prediction mode applied to the current block is inter-prediction or intra-prediction to generate a residual signal of the current block. The quantization scaling metrics may be referred to as quantization metrics or scaling metrics. The quantization scaling metrics may be predefined. For frequency adaptive scaling, frequency-specific quantization scale information for the quantization scaling metrics is constructed / encoded in an encoding device and signaled to a decoding device. The frequency-specific quantization scale information may be referred to as quantization scaling information. The frequency-specific quantization scale information includes scaling list data (scaling_list_data). The (modified) quantization scaling metrics are derived based on the scaling list data. The frequency-specific quantization scale information also includes present flag information indicating whether the scaling list data is present. Alternatively, if the scaling list data is signaled at a higher level (e.g., SPS), the frequency-specific quantization scale information may further include information indicating whether the scaling list data is modified at a lower level (e.g., PPS or tile group header) below the higher level.
[0161] As described above, quantization / dequantization is applied to the luma and chroma components based on the quantization parameters.
[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 may be derived as described below.
[0163] For example, information regarding derivation of quantization parameters is signaled via an 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 follows:
[0166] [Table 2]
[0167] For example, the syntax element bit_depth_luma_minus8 indicates BitDepthY, which is the bit depth of samples in a luma array, and QpBdOffsetY, which is a luma quantization parameter range offset. 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 a value obtained by adding 8 to the value of the syntax element bit_depth_luma_minus8, and the QpBdOffsetY is derived as a value obtained by multiplying the value of the syntax element bit_depth_luma_minus8 by 6. Also, the bit_depth_luma_minus8 can range from 0 to 8.
[0168] Also, for example, the syntax element bit_depth_chroma_minus8 indicates BitDepthc, which is the bit depth of a sample in a chroma array, and QpBdOffsetc, which is a chroma quantization parameter range offset. That is, for example, BitDepthc and QpBdOffsetc can be derived based on the syntax element bit_depth_chroma_minus8. For example, BitDepthc is derived as a value obtained by adding 8 to the value of the syntax element bit_depth_chroma_minus8, and QpBdOffsetc is derived as a value obtained by multiplying the value of the syntax element bit_depth_chroma_minus8 by 6. Also, bit_depth_chroma_minus8 can range from 0 to 8.
[0169] Also, for example, information regarding 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 a chroma Cb offset, a chroma Cr offset, a joint chroma offset, and an initial quantization parameter.
[0170] [Table 3]
[0171] The semantics for the syntax elements in Table 3 above are as follows:
[0172] [Table 4]
[0173] For example, adding 26 to the syntax element init_qp_minus26 indicates the initial value of SliceQpY for each slice that references a PPS. If a non-zero value of slice_qp_delta is decoded, the initial value of SliceQpY can be modified in the slice layer. The init_qp_minus26 0 can be in the range of -(26+QpBdOffsetY) to +37.
[0174] For example, syntax elements pps_cb_qp_offset and pps_cr_qp_offset indicate offsets for the luma quantization parameter Qp'Y used to derive Qp'Cb and Qp'Cr, respectively. The pps_cb_qp_offset and pps_cr_qp_offset may range from -12 to +12. If ChromaArrayType is 0, pps_cb_qp_offset and pps_cr_qp_offset may not be used in the decoding process, and the decoding device may ignore the values of the syntax elements.
[0175] For example, the syntax element pps_joint_cbcr_qp_offset indicates an offset for the luma quantization parameter Qp'Y used to derive Qp'CbCr. The pps_joint_cbcr_qp_offset may be in the range of -12 to +12. If ChromaArrayType is 0, the pps_joint_cbcr_qp_offset may not be used in the decoding process, and the decoding device may 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 associated slice header. For example, a value of 1 in pps_slice_chroma_qp_offsets_present_flag indicates that slice_cb_qp_offset and slice_cr_qp_offset are present in the associated slice header. Also, a value of 0 in pps_slice_chroma_qp_offsets_present_flag indicates that slice_cb_qp_offset and slice_cr_qp_offset are not present in the associated slice header. Also, if ChromaArrayType is 0, pps_slice_chroma_qp_offsets_present_flag is set to 0 during the decoding process.
[0177] As described above, the syntax elements parsed in the PPS may be init_qp_minus26, pps_cb_qp_offset_pps_cr_qp_offset, pps_joint_cbcr_qp_offset, and pps_slice_chroma_qp_offsets_present_flag. The syntax element init_qp_minus26 indicates the initial value of SliceQpY for each slice referring to the PPS. Furthermore, the syntax elements pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset indicate offsets for the luma quantization parameter Qp'Y. Furthermore, the syntax element pps_slice_chroma_qp_offsets_present_flag indicates whether an offset parameter is present in the slice header.
[0178] Also, information regarding derivation of the quantization parameter can be signaled, for example, via a slice header, as shown in the following table.
[0179] [Table 5]
[0180] The semantics for the syntax elements in Table 5 above are as follows:
[0181] [Table 6-1]
[0182] [Table 6-2]
[0183] For example, slice_qp_delta indicates the initial value of QpY used for coding blocks in a slice until it is modified by the value of CuQpDeltaVal at 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 range from -QpBdOffsetY to +63.
[0184] Also, for example, slice_cb_qp_offset indicates a difference to be added to the value of pps_cb_qp_offset when determining the value of the quantization parameter Qp'Cb. The value of slice_cb_qp_offset may range from -12 to +12. Also, for example, if slice_cb_qp_offset does not exist, slice_cb_qp_offset is inferred as 0. The value of pps_cb_qp_offset+slice_cb_qp_offset may range from 12 to +12.
[0185] Also, for example, slice_cr_qp_offset indicates a difference to be added to the value of pps_cr_qp_offset when determining the value of the quantization parameter Qp'Cr. The value of slice_cr_qp_offset may be in the range of -12 to +12. Also, for example, if slice_cr_qp_offset does not exist, slice_cr_qp_offset is inferred as 0. The value of pps_cr_qp_offset+slice_cr_qp_offset may be in the range of 12 to +12.
[0186] Also, for example, slice_cbcr_qp_offset indicates a difference to be added to the value of pps_cbcr_qp_offset when determining the value of the quantization parameter Qp'CbCr. The value of slice_cbcr_qp_offset may be in the range of -12 to +12. Also, for example, if slice_cbcr_qp_offset does not exist, slice_cbcr_qp_offset is inferred as 0. The value of pps_cbcr_qp_offset+slice_cbcr_qp_offset may be in the range of 12 to +12.
[0187] The derivation process for luma and chroma quantization parameters begins with the inputs being the luma location, variables specifying the width and height of the current coding block, and variables specifying whether the tree is a single tree or a dual tree. Meanwhile, as described above, the luma quantization parameter, chroma quantization parameter, and joint chroma quantization parameter can be denoted as Qp'Y, Qp'Cb, Qp'Cr, and Qp'CbCr.
[0188] Meanwhile, 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. Alternatively, 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, if cu_qp_delta_abs is present, then 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), where CuQpDeltaVal can be in the range of -(32+QpBdOffsetY / 2) to +(31+QpBdOffsetY / 2).
[0191] Then, for example, the luma quantization parameter Qp'Y is derived as follows:
[0192]
number
[0193] Also, if ChromaArrayType is not 0 and treeType is SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:
[0194] When treeType is DUAL_TREE_CHROMA, the variable QpY can be set equal to the luma quantization parameter QpY of the luma coding unit containing the luma position (xCb+cbWidth / 2, yCb+cbHeight / 2).
[0195] The variables qPCb, qPCr and qPCbCr are derived as follows:
[0196]
number
[0197] For example, if ChromaArrayType is 1, the variables qPCb, qPCr, and qPCbCr can be set equal to the QpC values specified in Table 7 below based on the same index qPi as qPiCb, qPiCr, and qPiCbCr, respectively.
[0198] [Table 7]
[0199] Alternatively, if ChromaArrayType is not 1, the variables qPCb, qPCr, and qPCbCr can be set equal to Min(qPi,63) based on the index qPi being equal to qPiCb, qPiCr, and qPiCbCr, respectively.
[0200] chroma quantization parameters for the Cb and Cr components, Qp'Cb and Qp'Cr; the chroma quantization parameter Qp'CbCr for joint Cb-Cr coding is derived as follows:
[0201]
number
[0202] Meanwhile, this paper proposes a method for improving coding efficiency in the quantization / dequantization process.
[0203] In one embodiment, when ChromaArrayType is not 0 (for example, when ChromaArrayType is 1), this document proposes a method in which a user defines and uses a user-defined Chroma Quantization Table, rather than a method in which a chroma quantization parameter value is obtained from a luma quantization parameter value through a chroma quantization mapping table predefined in the existing VVC Draft 5v.7. In the VVC specification text (for example, VVC Draft 5v.7), when a qPi (luma quantization parameter value) is given, a Qpc (chroma quantization parameter value) is derived through a predefined chroma quantization table (for example, the above-mentioned Table 7). However, this document proposes a method in which a user derives Qpc from qPi based on a newly defined chroma quantization mapping table. According to an embodiment of this document, the Qpc value is derived from a functional relationship of the qPi values, and the function can be signaled in a syntax such as APS, SPS, or PPS by a user-defined functionality method, and the functional relationship is transmitted by transmitting a value of a predefined syntax element, and a method is proposed in which the user defines a chroma quantization table mapping based on the transmitted value. As an example, since the Qpc value can be derived from a functional relationship of the qPi values, when a syntax element value indicating the function is transmitted, a user-defined chroma quantization mapping table can be derived in the format shown in Table 7.
[0204] As an embodiment, a method is proposed in which information about a syntax element (Qpc_data) indicating a chroma quantization mapping related function is signaled in an adaptation parameter set (APS) as shown in the table below.
[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:
[0208] [Table 9]
[0209] For example, the syntax element adaptation_parameter_set_id provides an identifier for an APS that is referenced by other syntax elements.
[0210] For example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure. For example, a value of 1 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure, and a value of 0 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is not present 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 decoder conformance to the profile specified in this standard version. For example, a decoding device conforming to this standard version may ignore all syntax elements aps_extension_data_flag.
[0212] Also, for example, the syntax element aps_params_type indicates the type of APS parameters included in the APS, as shown in Table 10 below.
[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 the 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 the APS parameter is an LMCS parameter, and when the value of the syntax element aps_params_type is 2, the syntax element aps_params_type indicates that the type of the APS parameter is a Qpc parameter. The Qpc data parameter may indicate a chroma quantization data parameter.
[0215] This document also proposes another embodiment for signaling information about the quantization parameters.
[0216] For example, this embodiment proposes a scheme for signaling user-defined QpC data in a picture parameter set (PPS). As an example of implementing the scheme proposed in this embodiment, a flag indicating whether the PPS includes user-defined data may be introduced in the SPS. That is, a flag indicating whether the PPS includes user-defined data may be signaled in the SPS. Also, according to this embodiment, the user-defined data may be signaled in the PPS. Alternatively, the user-defined data may be signaled in a slice header and / or another header set.
[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 aforementioned flag syntax element. The syntax element Qpc_data_default_flag indicates whether or not the Qpc_data() parameter is present in the PPS RBSP syntax structure. For example, a Qpc_data_default_flag of 0 indicates that the Qpc_data() parameter is not present in the PPS RBSP syntax structure and that a default table is used to help determine chroma quantization. Here, the default table is as shown in Table 7 above. Also, for example, a Qpc_data_default_flag of 1 indicates that the Qpc_data() parameter is present in the PPS RBSP syntax structure.
[0220] 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 the information necessary for chroma quantization derivation when ChromaArrayType is 1.
[0223] This document also proposes another embodiment for signaling information about the quantization parameters.
[0224] For example, this embodiment proposes a flexible structure for chroma quantization parameter (QP) derivation and combined chroma QP derivation. This embodiment proposes a scheme for signaling an initial flag indicating whether a user-defined mode is available in which parameters indicating a function used to derive a chroma quantization parameter (QP) in an SPS and / or PPS can be used.
[0225] For example, flag information signaled in the high level syntax proposed in this embodiment is as shown in the table below.
[0226] [Table 13]
[0227] For example, Qpc_data_present_flag indicates whether parameters for deriving chroma quantization coefficients are present in the high-level syntax RBSP syntax structure. For example, a Qpc_data_present_flag of 0 indicates that chroma quantization parameters are not present in the high-level syntax RBSP syntax structure. Also, for example, a Qpc_data_present_flag of 1 indicates that chroma quantization parameters are present in the high-level syntax RBSP syntax structure.
[0228] Alternatively, the syntax element Qpc_data_present_flag may be used to indicate the usage of a chroma quantization derivation method in a bitstream. For example, Qpc_data_present_flag may indicate the use of a tool or user-defined mode used for chroma quantization derivation as follows:
[0229] For example, 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] This document also proposes another embodiment for signaling information about the quantization parameters.
[0231] For example, this embodiment proposes an embodiment of how chroma quantization parameters (QP), i.e., 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 (QP) is signaled, and the chroma quantization parameters are derived based on the chroma quantization data. The data for deriving the chroma quantization coefficients (or a 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 follows:
[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 in chroma QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used in QpC derivation can be derived using the following formula:
[0237]
number
[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 an 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 luma and chroma quantization parameters begins with the inputs being the luma position (xCb, yCb), variables cbWidth and cbHeight specifying the width and height of the current coding block, and variable treeType specifying whether the tree is a single tree or a dual tree. Meanwhile, as mentioned above, the luma quantization parameter and chroma quantization parameter are denoted as Qp'Y, Qp'Cb, and Qp'Cr.
[0251] This document also proposes another embodiment for signaling information about the quantization parameters.
[0252] For example, this embodiment proposes an example of using syntax elements that can be used to control the derivation of quantization parameters by having a flag in the SPS have a user-defined mode or a default mode. An example of a syntax element that can be used to derive a quantization parameter is shown in the following table. Meanwhile, the structure of the syntax element is an example, and the structure is not limited to the structure shown in the table below.
[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 to derive the quantization parameters. For example, a Qpc_data_default_flag of 0 indicates that a user-defined mode is used to derive the quantization parameters. Also, for example, a Qpc_data_default_flag of 1 indicates that a default table is used to derive the chroma quantization parameters. Here, the default table is as shown in Table 7 above. Also, if the syntax element Qpc_data_default_flag does not exist, the syntax element Qpc_data_default_flag is considered to be 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 to signal the APS ID. For example, a syntax element indicating the APS ID may be signaled via a slice header as shown in Table 18.
[0258] For example, the syntax element slice_QpC_aps_id indicates the adaptation_parameter_set_id of the QpC APS to which the slice is referenced. The TemporalId of a QpC APS NAL unit with 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 with the same adaptation_parameter_set_id value are referenced by two or more slices of the same picture, the multiple QpC APSs with the same adaptation_parameter_set_id value may have the same content.
[0259] The APS structure for transmitting chroma quantized 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 for an APS that is referenced by other syntax elements.
[0261] For example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure. For example, a value of 1 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure, and a value of 0 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is not present 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 conformance to the profile specified in this standard version. For example, a decoding device conforming to this standard version may 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 the 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 a delta value between Qpi_min_idx and the maximum qPi index used in chroma QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used in 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 previous embodiment, the chroma quantization parameters, i.e., Qp'Cb, Qp'Cr, and Qp'CbCr, can be derived using signaled user-defined information or using default values shown in a default table such as Table 7 above.
[0278] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 the user-defined information signaled as proposed in this embodiment, and 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 the default table based on the index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0285] This document also proposes another embodiment for signaling information about the quantization parameters.
[0286] For example, this embodiment proposes a syntax element that can be used to control the derivation of a quantization parameter by indicating a user-defined mode or a default mode in an SPS flag. Specifically, this embodiment proposes a scheme for signaling a syntax element having the following syntax structure. Meanwhile, the structure of the syntax element is an example, and the structure is not limited to the structure shown in the table below.
[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 a delta value between Qpi_min_idx and the maximum qPi index used in chroma QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. For example, the maximum index qPiMaxIdx used in QpC derivation can be derived as shown 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 an offset value used to derive the above-mentioned QpC.
[0292] As in the previous embodiment, the chroma quantization parameters, i.e., Qp'Cb, Qp'Cr, and Qp'CbCr, can be derived using signaled user-defined information or using default values shown in a default table such as Table 7 above.
[0293] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 QpC values respectively based on the same index qPi as qPiCb, qPiCr, and qPiCbCr as follows.
[0300] For example, the variable QpCIdx[i] is derived as follows.
[0301] - When -i < qPi_min_idx, QpCIdx[qPi] is set to be the same as qPi.
[0302] - When i = qPi_min_idx ··· qPiMaxIdx, QpCIdx[i] is set to QpC_qPi_delta_val[i] + QpCIdx[i - 1].
[0303] - When -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, if ChromaArrayType is 1 and QpC_data_default_flag indicates affirmative (TRUE) (i.e., for example, if QpC_data_default_flag is 1), the variables qPCb, qPCr, and qPCbCr are derived from the default table based on the index qPi, which is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0306] This document also proposes another embodiment for signaling information about the quantization parameters.
[0307] For example, this embodiment proposes a syntax element for chroma quantization (QpC) derived parameters in an adaptation parameter set (APS). For example, an APS ID can be signaled in the slice header. Also, for example, a flag in a picture parameter set (PPS) is proposed to indicate whether a default table is used or a table derived from information signaled in the APS is used. Also, for example, if the default table is not used, an additional control scheme is added to support access to an APS that includes QpC data in the slice header.
[0308] On the other hand, according to existing video / image standards, the chroma QP is derived from the luma QP and can be additionally updated by a signaled chroma QP offset. The existing chroma quantization parameter QpC table can be a default table such as Table 7 above.
[0309] This embodiment proposes to add a function for signaling the chroma quantization parameter QpC as a function of the index qPi, and APS is used to integrate the signaling scheme for the QpC value.
[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 for an 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] For example, the syntax element aps_extension_flag indicates whether the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure. For example, a value of 1 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure, and a value of 0 for the syntax element aps_extension_flag indicates that the aps_extension_data_flag syntax element is not present in the APS RBSP syntax structure.
[0315] Also, for example, the syntax element aps_extension_data_flag may have any value. The presence and value of the aps_extension_data_flag may not affect decoder conformance to the profile specified in this standard version. For example, a decoding device conforming to this standard version may ignore all syntax elements aps_extension_data_flag.
[0316] The 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 range from 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 in 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 in 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 value for the i-th index, which may be referred to as delta.
[0321] Also, for example, the syntax element QpCOffsetC_present_flag indicates whether or not QpOffsetC is present in the bitstream. For example, a QpCOffsetC_present_flag of 1 indicates that QpOffsetC is present in the bitstream. Also, for example, a QpCOffsetC_present_flag of 0 indicates that QpOffsetC is not present in the bitstream. If QpCOffsetC_present_flag does not exist, QpCOffsetC_present_flag is considered to be 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 as 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 to derive the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used to derive the quantization parameters. Also, for example, a QpC_data_default_flag of 1 indicates that the above-mentioned default table is used to derive the quantization parameters. The default table is as shown in Table 7 above. If QpC_data_default_flag is not present, QpC_data_default_flag is considered to be 1.
[0331] Furthermore, this embodiment proposes syntax elements 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 referenced by the slice. The TemporalId of a QpC APS NAL unit with 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 with the same adaptation_parameter_set_id value are referenced by two or more slices of the same picture, the multiple QpC APSs with the same adaptation_parameter_set_id value may have the same content.
[0334] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 28, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0341] This document also proposes another embodiment for signaling information about the quantization parameters.
[0342] For example, in this embodiment, it is proposed to signal user-defined derivation of chroma quantization in the SPS as follows: For example, this embodiment proposes user-defined chroma quantization (QpC). For example, a flag in the SPS can indicate whether to use a default table for chroma quantization derivation or to derive the contents of the table for chroma quantization derivation from information signaled in the SPS.
[0343] For example, the present 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 range from 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 in chroma QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can range from 0 to 63. For example, the maximum index qPiMaxIdx used in QpC derivation can be derived as shown 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, 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 for the derivation of quantization parameters. The said 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.
[0356] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 the above Table 31, 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 from a default table based on the index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0363] This document also proposes another embodiment for signaling information about the quantization parameters.
[0364] For example, this embodiment proposes to add a function for signaling a chroma quantization parameter QpC as a function of the index qPi. For example, a scheme is proposed to signal a syntax element for a user-defined table for deriving a quantization parameter in a PPS, thereby providing the flexibility to switch between the user-defined table and the default table for each picture that references the PPS.
[0365] The syntax elements for the user defined table signaled in the PPS proposed in this embodiment are as follows:
[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 range from 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 in chroma QpC derivation. The value of qPiMaxIdx is greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can range from 0 to 63. For example, the maximum index qPiMaxIdx used in QpC derivation can be derived as shown in Equation 4 above.
[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 in 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 deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0378] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 the above-mentioned Table 34, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0385] This document also proposes another embodiment for signaling information about the quantization parameters.
[0386] For example, the present embodiment proposes a general mode of deriving and signaling the chroma quantization parameter QpC.
[0387] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameters proposed in this embodiment 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 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 a default table is used for chroma quantization derivation or signaled information is used for chroma quantization derivation. The flag can be signaled via a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). 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 deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0400] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 the above-mentioned Table 37, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0407] This document also proposes another embodiment for signaling information about the 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] If −qPi=qPi_min_idx···qPiMaxIdx, then QpCIdx[qPi] is set to QpC_qPi_delta_val[qPi]+QpCIdx[qPi−1].
[0416] If -qPi>qPiMaxIdx, then QpCIdx[qPi] is set to qPi-(qPiMaxIdx-QpCIdx[qPiMaxIdx]).
[0417] Then, the QpC is set to the QpCIdx[qPi].
[0418] This document also proposes another embodiment for signaling information about the quantization parameters.
[0419] For example, this embodiment presents a scheme in which the delta (or difference) between successive QpC values is limited to 1 as an example.
[0420] For example, this embodiment proposes a method for adding user-defined chroma quantization (QpC) to an existing image / video standard. For example, a flag in a sequence parameter set (SPS) proposed in this embodiment indicates whether to use an existing default table for deriving chroma quantization parameters or to derive the table contents based on information signaled in the SPS. According to this embodiment, a method suitable for an image to be coded by accepting user-defined chroma quantization can be selected, thereby improving coding efficiency.
[0421] For example, this embodiment proposes to add a function to signal Chroma Quantization QpC as a function of 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] If -qPi>qPiMaxIdx, then QpCIdx[qPi] is set to qPi-(qPiMaxIdx-QpCIdx[qPiMaxIdx]).
[0430] Then, the QpC is set to the QpCIdx[qPi].
[0431] Furthermore, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or signaled information is used for chroma quantization derivation. The flag can be signaled via a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). The flag signaled via a 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 deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0434] For example, the process of deriving the quantization parameters according to this embodiment can be written in a standard format 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 the above-mentioned Table 41, when ChromaArrayType is 1 and QpC_data_default_flag indicates negative (FALSE) (i.e., for example, when QpC_data_default_flag is 0), qPCb, variables 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), variables qPCb, qPCr, and qPCbCr can be derived by a default table based on the index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0441] This document also proposes another embodiment for signaling information about the quantization parameters.
[0442] For example, this embodiment proposes an example of a data signaling structure for deriving a chroma QP. Specifically, this embodiment proposes a method of adding a new syntax element, chroma_qp_mapping_flag, to an SPS. For example, if the value of the chroma_qp_mapping_flag is 0, a default chroma QP mapping table may be used to derive a chroma quantization parameter. Also, for example, if the value of the chroma_qp_mapping_flag is 1, the syntax elements used to derive the chroma QP mapping table may 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 the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. 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 the 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 the quantization parameters. The default table is as shown in Table 7 above. Also, if the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0445] Also, for example, a 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] Based on the chroma quantization parameter data shown in Table 42, the chroma QP mapping table can be derived as follows:
[0449] For example, the variable cQpFlatSize can be derived as follows:
[0450]
number
[0451] Also, for example, the variable cQpFlat[ ] can be derived as shown in the following table.
[0452] [Table 43]
[0453] Then, based on the variables cQpFlatSize and cQpFlat[ ], a chroma QP mapping table can be derived as shown in the following table.
[0454] [Table 44]
[0455] This document also proposes another embodiment for signaling information about the quantization parameters.
[0456] For example, this embodiment proposes adding a new syntax element, chroma_qp_mapping_flag, to the SPS. For example, if the value of the chroma_qp_mapping_flag is 0, a default chroma QP mapping table is used to derive a chroma quantization parameter. Also, for example, if the value of the chroma_qp_mapping_flag is 1, the syntax elements used to derive the chroma QP mapping table are signaled as shown in the following table.
[0457] [Table 45]
[0458] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. 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 the 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 deriving the quantization parameters. The default table is as shown in Table 7 above. Also, if the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0459] Also, for example, a 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 of the syntax element qPi_min_idx_minus1 plus 1 indicates the first element of the set of points at which the mapping function does not increase.
[0461] Also, for example, the value of the syntax element QpC_qPi_idx_minus1[i] plus 1 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, a chroma QP mapping table can be derived based on the variable cQpFlatSize and the variable cQpFlat[ ]. 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 about the quantization parameters.
[0468] For example, this embodiment proposes a scheme for signaling an individual table for each chroma component, i.e., for example, this embodiment proposes a scheme for signaling a syntax element used to derive a chroma QP mapping table for each chroma component.
[0469] For example, a chroma QP mapping table for each chroma component can be 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 (Cb residual), the Cr residual (Cr residual), and the CbCr residual (CbCr residual). For example, when the value of qp_luma_to_chroma_joint_map_flag is 1, the common luma-chroma quantization parameter mapping table is used for the chroma components Cb, Cr, and CbCr. 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 of the syntax element qPi_min_idx_minus1 plus 1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx_minus1 can range from 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 from 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] If -qPi>qPiMaxIdx, then QpCIdx[qPi] is set to qPi-(qPiMaxIdx-QpCIdx[qPiMaxIdx]).
[0480] The value of QpC can then be derived as QpCIdx[i][qPi].
[0481] Meanwhile, according to this embodiment, a flag indicating whether a syntax element used to derive a chroma QP mapping table in the SPS is signaled or a default table is used may be signaled. For example, the flag may be 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 deriving the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. 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 deriving the 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 deriving the quantization parameters. The default table is as shown in Table 7 above. Also, if the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0484] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 49, 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 the default table based on the index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0491] This document also proposes another embodiment for signaling information related to quantization parameters. This embodiment proposes a method for signaling the maximum difference between a starting point and an end point by signaling the end point as a delta relative to the maximum QP. That is, for example, according to this embodiment, a syntax element indicating a delta value between maxQp and the maximum qPi index used in chroma QpC derivation 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 range from 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 in 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 in QpC derivation can be derived using the following formula:
[0496]
number
[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 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.
[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 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 an SPS (sequence parameter set) or a PPS (picture parameter set). The flag signaled via the high-level syntax is as follows 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 deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0506] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 52, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0513] This document also proposes another embodiment for signaling information about quantization parameters, which proposes signaling the maximum difference between a start point and an end point by signaling the end point as a delta relative to the maximum QP or the difference between the start point and the delta.
[0514] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameters proposed in this embodiment is signaled as shown in the following table.
[0515] [Table 53]
[0516] For example, the value of the syntax element qPi_min_idx_minus1 plus 1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can range from 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, is_delta_maxQp of 1 indicates that qPiMaxIdx is derived from the maxQp value. Also, for example, is_delta_maxQp of 0 indicates that qPiMaxIdx is derived from the syntax element qPi_min_idx_minus1.
[0518] Also, for example, adding 1 to the syntax element qPi_delta_max_idx_minus1 indicates the delta value between maxQp and the maximum qPi index used in 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 in QpC derivation can be derived as shown in the following table.
[0519] [Table 54]
[0520] Furthermore, for example, the syntax element QpC_qPi_flag[i] indicates whether the QpC value is increased by 1. That is, for example, the syntax element QpC_qPi_flag[i] indicates whether the i-th QpC value is increased by 1 from the (i-1)-th QpC value. For example, a QpC_qPi_flag[i] of 1 indicates that the QpC value is increased by 1, and a QpC_qPi_flag[i] of 0 indicates that the QpC value is not increased.
[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 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.
[0527]
Table 55
[0528] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. 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 the quantization parameters. The default table is as shown in Table 7 above. Also, if QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0529] For example, the process of deriving the quantization parameters according to this embodiment can be written in standard format 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 the above-mentioned Table 56, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0536] This document also proposes another embodiment for signaling information about quantization parameters, which proposes signaling the maximum difference between a start point and an end point by signaling the end point as a delta relative to the maximum QP or the difference between the start point and the delta.
[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 of the syntax element qPi_min_idx_minus1 plus 1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can 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] If −qPi=qPi_min_idx_minus1···qPiMaxIdx, then QpCIdx[qPi] is set to QpC_qPi_flag[qPi]+QpCIdx[qPi−1].
[0546] If -qPi>qPiMaxIdx, then QpCIdx[qPi] is set to qPi-(qPiMaxIdx-QpCIdx[qPiMaxIdx]).
[0547] Then, the QpC can be set to the QpCIdx[qPi].
[0548] Furthermore, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or signaled information is used for chroma quantization derivation. The flag is signaled via a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). The flag signaled via the high level syntax is as shown in the following table.
[0549] [Table 58]
[0550] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving the quantization parameters. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameters. 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 the quantization parameters. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0551] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 59, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0558] This document also proposes another embodiment for signaling information about quantization parameters, which uses minus1 nomenclature instead of actual values to signal an index to a chroma QP mapping table.
[0559] The chroma quantization parameter data, QpC_data(), for the chroma quantization parameters proposed in this embodiment is signaled as shown in the following table.
[0560] [Table 60]
[0561] For example, the value of the syntax element qPi_min_idx_minus1 plus 1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can range from 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]
Equation
[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 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.
[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] Then, the QpC can be set to the QpCIdx[qPi].
[0570] Furthermore, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or signaled information is used for chroma quantization derivation. The flag can be signaled via a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). The flag signaled via a 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 deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0573] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 62, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0580] This document also proposes another embodiment for signaling information about quantization parameters, in which a separate chroma quantization table is used for each chroma component.
[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 a default chroma quantization parameter table is used. For example, a QpC_data_default_flag of 1 indicates that a default chroma quantization parameter table is used to derive 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 a default chroma quantization parameter table is not used to derive chroma quantization parameters. That is, for example, a QpC_data_default_flag of 0 indicates that a chroma quantization parameter table derived based on chroma quantization parameter data signaled to derive chroma quantization parameters is used.
[0584] Furthermore, 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 may indicate whether separate luma-chroma quantization parameter mapping tables are used for each of the Cb residual (Cb residual) and the Cr residual (Cr residual). For example, an sps_separate_qpc_table_flag of 1 indicates that separate QpC tables are used for each of the Cb samples and the Cr samples, and an sps_separate_qpc_table_flag of 0 indicates that one QpC table is used for each of the Cb samples and the Cr samples.
[0585] Meanwhile, for example, the variable QpCb[i] indicates the QpC table used for the Cb sample. For example, the variable QpCr[i] indicates the QpC table used for the Cr sample. For example, if the value of sps_separate_qpc_table_flag is 0, QpCr[i] may be the same as QpCb[i], where i can range from 0 to 69.
[0586] Also, for example, the value of the syntax element qPi_cb_min_idx_minus1 plus 1 indicates the minimum qPi index used for the Cb chroma component. The value of qPi_cb_min_idx_minus1 can range from 1 to 69.
[0587] Also, for example, 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 in deriving the Cb chroma QpC. 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 in deriving the QpC 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 value between the ith 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 range from 0 to 1.
[0590] For example, the variable QpCb[i] is derived as follows: where i can be from 0 to 69.
[0591] -For i=0..qPiMaxIdxCb, qPCb[i] is set equal to i.
[0592] If -i=qPi_cb_min_idx_minus1+1+1..qPiMaxIdxCb, then QpCb[i] is set to QpCb[i-1]+QpC_cb_qPi_flag[i].
[0593] For −i=qPiMaxIdxCb+1...69, QpCb[i] is set to i-deltaEnd, and deltaEnd can be derived as qPiMaxIdxCb-qPCb[qPiMaxIdxCb].
[0594] Furthermore, for example, the syntax elements qPi_cr_min_idx_minus1, qPiMaxIdxCr, and QpC_cr_qPi_flag[i] 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 method for signaling parameters for multiple chroma QP tables. This embodiment can be combined with at least one of the above-described embodiments. That is, for example, the embodiments of this document can be commonly applied.
[0596] Specifically, for example, this embodiment proposes including a user-defined chroma quantization parameter (QpC) in the VVC Specification Text. For example, according to this embodiment, a flag in a sequence parameter set (SPS) indicates whether to use a default table for deriving a chroma quantization parameter or whether to derive a chroma QP mapping table based on information signaled in the SPS. This allows a user-defined chroma quantization parameter to be used in consideration of video content characteristics in video coding, thereby improving coding efficiency. In addition, this embodiment provides flexibility by providing an option for using one user-defined table for chroma components and an option for using separate user-defined tables for the Cb and Cr components.
[0597] For example, the chroma quantization parameter data QpC_data() for the chroma quantization parameter 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 in the aforementioned Equation 4.
[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] - If -qPi < qPi_min_Idx, QpCIdx[qPi] is set to be the same as qPi.
[0604] - If -qPi = qPi_min_idx ··· qPiMaxIdx, QpCIdx[qPi] is set to QpC_qPi_flag[qPi] + QpCIdx[qPi - 1].
[0605] If -qPi>qPiMaxIdx, then QpCIdx[qPi] is set to qPi-(qPiMaxIdx-QpCIdx[qPiMaxIdx]).
[0606] Then, the QpC is set to the QpCIdx[qPi].
[0607] Furthermore, 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 a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). The flag signaled via the high level syntax is as shown 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 the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0610] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 66, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0617] Also, for example, when a separate user-defined table is used for each chroma component proposed in this embodiment, the chroma quantization parameter data QpC_data() 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 and Cr components. That is, the syntax element "is_separate_chroma_table" may indicate whether two separate chroma quantization parameter mapping tables are used for the Cb and Cr components. For example, the syntax element "is_separate_chroma_table" may indicate whether separate luma-chroma quantization parameter mapping tables are used for the Cb residual and the Cr residual. For example, "is_separate_chroma_table" of 1 indicates that separate chroma quantization parameter mapping tables are signaled for the Cb and Cr components, and "is_separate_chroma_table" of 0 indicates that one chroma quantization parameter mapping table is used for the Cb component, the Cr component, and the joint CbCr component. For example, if 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 may be signaled. Also, if 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, Cr component, and joint CbCr component may be signaled.
[0620] Also, for example, the value of the syntax element qPi_min_idx_minus1[i] plus 1 indicates the minimum qPi index used for chroma quantization. The value of qPi_min_idx can range from 1 to 69. The variable qPi_min_Idx[i] is set equal to the value of qPi_min_idx_minus1[i] plus 1.
[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 in 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 range from 0 to 69. For example, the maximum index qPiMaxIdx[i] used in QpC derivation can be derived as follows:
[0622]
number
[0623] The value of qPiMaxIdx[i] is greater than or equal to qPi_min_idx_minus1[i].
[0624] Furthermore, for example, the syntax element QpC_qPi_flag[i][j] indicates whether the jth QpC value of the ith chroma component is increased by 1. That is, for example, the syntax element QpC_qPi_flag[i][j] indicates whether the jth QpC value of the ith chroma component is increased by 1 compared to the (j-1)th QpC value. For example, a QpC_qPi_flag[j] of 1 indicates that the jth QpC value of the ith chroma component is increased by 1, and a QpC_qPi_flag[j] of 0 indicates that the jth QpC value of the ith chroma component is not increased.
[0625] For example, the variables QpCIdx[i][qPi] can be derived as follows: where qPi can range 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] [[ID=ID=18]] 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] If -qPi>qPiMaxIdx, then QpCIdx[i][qPi] is set to qPi-(qPiMaxIdx[i]-QpCIdx[i][qPiMaxIdx]).
[0633] The value of QpC can then be derived as QpCIdx[i][qPi].
[0634] Furthermore, this embodiment proposes a scheme for signaling a flag indicating whether a default table is used for chroma quantization derivation or signaled information is used for chroma quantization derivation. The flag can be signaled via a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS). The flag signaled via a high level syntax is as shown in the following table.
[0635] [Table 69]
[0636] For example, the syntax element QpC_data_default_flag indicates whether a user-defined mode is used for deriving the quantization parameter. For example, a QpC_data_default_flag of 0 indicates that a user-defined mode is used for deriving the quantization parameter. 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 the quantization parameter. The default table is as shown in Table 7 above. Also, when the QpC_data_default_flag is not present, the QpC_data_default_flag is regarded as 1.
[0637] For example, the process of deriving the quantization parameter according to this embodiment can be written in a standard format as shown 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 the above-mentioned Table 70, 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 index qPi that is the same as qPiCb, qPiCr, and qPiCbCr, respectively.
[0644] This document also proposes another embodiment for signaling information related to quantization parameters. For example, this embodiment proposes a method for signaling parameters for a chroma QP table without default settings. This embodiment can be combined with at least one of the above-described embodiments. That is, for example, the embodiments of this document can be commonly applied.
[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 to the Cb component, the Cr component, and the joint CbCr component. That is, for example, the syntax element is_same_qp_table_for_cb_cr indicates whether only one chroma QP mapping table-related parameter is signaled and one chroma QP mapping table is applied to the Cb component, the Cr component, and the joint CbCr component. For example, an is_same_qp_table_for_cb_cr of 1 indicates that only one chroma QP mapping table is signaled and applied to the Cb component, the Cr component, and the joint CbCr component. That is, for example, an is_same_qp_table_for_cb_cr of 1 indicates that only one chroma QP mapping table-related parameter is signaled and one chroma QP mapping table is applied to the Cb component, the Cr component, and the joint CbCr component. Also, for example, is_same_qp_table_for_cb_cr of 0 indicates that multiple chroma QP mapping tables are signaled and applied to the Cb component, the Cr component, and the joint CbCr component. That is, for example, is_same_qp_table_for_cb_cr of 0 indicates that multiple chroma QP mapping table-related parameters are signaled and multiple chroma QP mapping tables are applied to the Cb component, the Cr component, and the joint CbCr component. For example, is_same_qp_table_for_cb_cr of 0 indicates that three chroma QP mapping tables are signaled and applied to the Cb component, the Cr component, and the joint CbCr component.
[0648] Also, for example, the syntax element qPi_table_len_Idx[i] indicates the number of points used to describe 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 a delta value used to derive the input coordinate of the j-th pivot point of the i-th chroma QP mapping table.
[0650] Also, for example, the syntax element qpC_qPi_out_idx[i][j] indicates a delta value used to derive the output coordinate of the j-th pivot point of the i-th chroma QP mapping table.
[0651] Based on the above syntax elements, the ith QP mapping table cQPTable[i] can be derived as shown in the following table: where i is 0 if same_qp_table_for_cb_cr is 1, and can be one of 0 to 2 if same_qp_table_for_cb_cr is 1.
[0652] [Table 72]
[0653] Referring to Table 72 above, the input coordinate of the j-th pivot point of the i-th chroma QP mapping table can be derived based on qpC_qPi_in_Idx[i][j]. qpVal[i][j] shown in Table 72 above indicates the input coordinate of the j-th pivot point. Also, referring to Table 72 above, the output coordinate of the j-th pivot point of the i-th chroma QP mapping table can be derived based on qpC_qPi_out_Idx[i][j]. cQPTable[i][j] shown in Table 72 above indicates the output coordinate of the j-th pivot point.
[0654] Furthermore, according to this embodiment, the following changes may be made to derive the chroma QP. For example, the constraints 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], where j can be any one of 1 to qPi_table_len_Idx[i].
[0657] Also, if the chroma type is not 0, for example, if the chroma type is 1, and chroma_qp_table_present_flag is 1, the variables qPCb and qPCr are set to be equal to ChromaQpTable[0][qPiCb], ChromaQpTable[1][qPiCr], and ChromaQpTable[1][qPiCbCr], respectively.
[0658] This document also proposes another embodiment for signaling information related to quantization parameters. This embodiment can be combined with at least one of the above-described embodiments. For example, this embodiment proposes a method for limiting the range of qp indices to be signaled. As an example, this embodiment proposes signaling 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 to describe the chroma QP mapping table, and the value of the syntax element qPi_table_len_Idx[i] can range from 0 to 69+QpBdOffsetC.
[0660] As described above, in this embodiment, a method is proposed to limit a parameter (e.g., the number of points in the chroma QP mapping table indicated by qPi_table_len_Idx[i]) to the minimum range that can be signaled or inferred in other ways.
[0661] Figure 10 outlines a video encoding method by an encoding device according to this document. The method disclosed in Figure 10 is performed by the encoding device disclosed in Figure 2. Specifically, for example, steps S1000 to S1010 in Figure 10 are performed by an entropy encoding unit of the encoding device. Also, although not shown, a process of deriving predicted samples for chroma components is performed by a prediction unit of the encoding device, and a process of generating reconstructed samples and reconstructed pictures based on residual samples and predicted samples for chroma components is performed by an adder of the encoding device.
[0662] The encoding device encodes the video information (S1000).
[0663] The encoding device may encode the video information, for example, the video information including prediction information for chroma components, residual information for the chroma components, and / or chroma quantization parameter (QP) data of at least one chroma quantization parameter (QP) mapping table for the chroma components, where the chroma components include a Cb component, a Cr component, and / or a joint CbCr component.
[0664] For example, the encoding device may derive prediction samples for the chroma components based on a prediction mode, i.e., the encoding device may derive prediction samples for the chroma components of the current block based on a prediction mode, in which case various prediction methods disclosed herein, such as inter prediction or intra prediction, may be applied.
[0665] For example, the encoding device may determine whether to perform inter prediction or intra prediction on the current block for the chroma components, and may determine a specific inter prediction mode or a specific intra prediction mode based on the RD cost. The encoding device may derive prediction samples for the current block according to the determined mode.
[0666] Then, for example, the encoding device may generate and encode prediction information for the current block, the prediction information including prediction mode information indicating a prediction mode of the current block for the chroma components, and the video information including the prediction information.
[0667] Also, for example, the encoding device may derive the residual samples by subtracting the original samples and predicted samples of the current block for the chroma components in the current picture.
[0668] Then, for example, the encoding device encodes residual information for the residual samples. For example, the encoding device may derive transform coefficients based on the residual samples and generate the residual information based on the transform coefficients. For example, the encoding device may quantize the residual samples based on a chroma quantization parameter to derive quantized residual samples, derive transform coefficients based on the quantized residual samples, and generate and encode the residual information based on the transform coefficients. Alternatively, for example, the encoding device may quantize the residual samples based on a chroma quantization parameter to derive quantized residual samples, transform the quantized residual samples to derive transform coefficients, and generate and encode the residual information based on the transform coefficients.
[0669] For example, the residual information may include syntax elements for transform coefficients of the current chroma block, 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 data of at least one chroma quantization parameter (QP) mapping table for the chroma components. A default chroma QP mapping table for the chroma components may not be used. That is, if a chroma quantization parameter for a chroma component is used, the encoding device may generate chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma components. The video information includes chroma quantization parameter data of at least one chroma QP mapping table for the chroma components. Also, for example, the chroma components include a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the chroma quantization parameter data may include a syntax element indicating the number of points in the chroma QP mapping table, a syntax element indicating a delta value used to derive an input coordinate of a target point in the chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an output coordinate of the target point in the chroma QP mapping table. Also, for example, the value of the syntax element indicating the number of points in the chroma QP mapping table may be in the range of 0 to a specific value. The specific value may be 69+QpBdOffsetC.Also, for example, the syntax element indicating the number of points in the chroma QP mapping table may be the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the chroma QP mapping table may be the aforementioned qpC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the chroma QP mapping table may be the aforementioned qpC_qPi_out_idx[i][j].
[0671] Furthermore, for example, the encoding device may 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 apparatus may 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 refers to the aforementioned ChromaArrayType. For example, if the value of the chroma type is not 0, the encoding apparatus may generate a flag indicating whether one chroma QP mapping table is applied to the chroma component. For example, if the value of the chroma type is 1, the encoding apparatus may generate a flag indicating whether one chroma QP mapping table is applied to the chroma component. Here, if the value of the chroma type is 0, the chroma type may be the Monochrome format; if the value of the chroma type is 1, the chroma type may be the 4:2:0 format; if the value of the chroma type is 2, the chroma type may be the 4:2:2 format; and if the value of the chroma type is 3, the chroma type may be the 4:4:4 format. For example, the syntax element for the flag may be the above-mentioned 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, if the value of the flag is 1, the flag indicates that one chroma QP mapping table is applied to the chroma component. Also, if the value of the flag is 0, the flag indicates that multiple chroma QP mapping tables are applied to the chroma component. That is, if 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, if the value of the flag is 1, chroma quantization parameter data of one chroma QP mapping table for the chroma component is signaled, and if the value of the flag is 0, chroma quantization parameter data of multiple chroma QP mapping tables for the chroma component is signaled. That is, for example, if the value of the flag is 0, chroma quantization parameter data of individual chroma QP mapping tables for each of the chroma components is signaled.
[0675] Furthermore, for example, the flag is signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0676] Furthermore, for example, the encoding device can generate chroma quantization parameter data for the chroma components based on the flag.
[0677] For example, the chroma quantization parameter data of the plurality of chroma QP mapping tables for the chroma components may include first chroma quantization parameter data of a first chroma QP mapping table for a Cb component and second chroma quantization parameter data of a second chroma QP mapping table for a Cr component, or may include first chroma quantization parameter data of a first chroma QP mapping table for a Cb component, second chroma quantization parameter data of a second chroma QP mapping table for a Cr component, and / or third chroma quantization parameter data of a third chroma QP mapping table for a joint CbCr component.
[0678] Meanwhile, for example, the encoding apparatus may generate a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. That is, for example, the encoding apparatus may determine whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component and generate the joint CbCr availability flag. Furthermore, for example, the encoding apparatus may generate a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component based on a chroma type. Here, the chroma type may refer to the above-mentioned ChromaArrayType. For example, if the value of the chroma type is not 0, the encoding apparatus may generate a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. For example, if the value of the chroma type is 1, the encoding apparatus may generate a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. Also, for example, the joint CbCr availability flag may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0679] In this case, if the value of the flag is 0 (i.e., it is determined that multiple chroma QP mapping tables are applied to the chroma components) and the value of the joint CbCr available flag is 1 (i.e., it is determined that third chroma quantization parameter data of a third chroma QP mapping table for the joint CbCr component exists), the chroma quantization parameter data includes first chroma quantization parameter data of a first chroma QP mapping table for the Cb component, second chroma quantization parameter data of a second chroma QP mapping table for the Cr component, and third chroma quantization parameter data of a third chroma QP mapping table for the joint CbCr component.
[0680] Furthermore, for example, the first chroma quantization parameter data may include a syntax element indicating the number of points in a first chroma QP mapping table for a Cb component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the first chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the first chroma QP mapping table may be the above-mentioned qPC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the first chroma QP mapping table may be the above-mentioned qPC_qPi_out_idx[i][j]. Also, for example, the first chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0681] Furthermore, for example, the second chroma quantization parameter data may include a syntax element indicating the number of points in a second chroma QP mapping table for a Cr component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the second chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the second chroma QP mapping table may be the above-mentioned qPC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the second chroma QP mapping table may be the above-mentioned qPC_qPi_out_idx[i][j]. Also, for example, the second chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0682] Furthermore, for example, the third chroma quantization parameter data may include a syntax element indicating the number of points in a third chroma QP mapping table for a joint CbCr component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the third chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the third chroma QP mapping table may be the above-mentioned qPC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the third chroma QP mapping table may be the above-mentioned qPC_qPi_out_idx[i][j]. Also, for example, the third chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0683] Also, for example, if the value of the flag is 1 (i.e., if it is determined that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter data includes 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 containing the video information (S1010).
[0685] For example, the encoding apparatus may output a bitstream including video information including prediction information for chroma components, residual information for the chroma components, and / or chroma quantization parameter (QP) data of at least one chroma quantization parameter (QP) mapping table for the chroma components. The bitstream includes prediction information, residual information, and / or chroma quantization parameter (QP) data of at least one chroma quantization parameter (QP) mapping table for the chroma components. The video information may further include a flag indicating whether one chroma QP mapping table is applied to the chroma components and / or the joint CbCr availability flag.
[0686] The encoding device encodes video information and outputs it in the form of a bitstream.
[0687] Meanwhile, the bitstream containing the image information can be transmitted to the decoding device via a network or a (digital) storage medium, where the network can include a broadcasting network and / or a communication network, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0688] Figure 11 schematically illustrates an encoding device that performs the video encoding method according to the present document. The method disclosed in Figure 10 is performed by the encoding device disclosed in Figure 11. Specifically, for example, the entropy encoding unit of the encoding device in Figure 11 can perform steps S1000 to S1010. Also, although not shown, a process of deriving predicted samples for chroma components is performed by a prediction unit of the encoding device, and a process of generating reconstructed samples and reconstructed pictures based on residual samples and predicted samples for chroma components is performed by an adder of the encoding device.
[0689] Figure 12 schematically illustrates a video decoding method by a decoding device according to the present document. The method disclosed in Figure 12 can be performed by the decoding device disclosed in Figure 3. Specifically, for example, step S1200 of Figure 12 is performed by an entropy decoding unit of the decoding device, and step S1210 of Figure 12 is performed by a residual processing unit of the decoding device.
[0690] The decoding device obtains video information via a bitstream (S1200).
[0691] For example, the video information includes information about chroma quantization parameters.
[0692] For example, the video information includes chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table. For example, a decoding device may obtain chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for a chroma component. A default chroma QP mapping table for the chroma component may not be used. That is, if a chroma quantization parameter for the chroma component is used, the decoding device may obtain chroma quantization parameter data of at least one chroma quantization parameter (QP) mapping table for the chroma component. For example, the chroma components include a Cb component, a Cr component, and / or a joint CbCr component. Also, for example, the chroma quantization parameter data may include a syntax element indicating the number of points in the chroma QP mapping table, a syntax element indicating a delta value used to derive an input coordinate of a target point in the chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an output coordinate of the target point in the chroma QP mapping table. Also, for example, the value of the syntax element indicating the number of points in the chroma QP mapping table may be in the range of 0 to a specific value. The specific value may be 69+QpBdOffsetC.Also, for example, the syntax element indicating the number of points in the chroma QP mapping table may be the aforementioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the chroma QP mapping table may be the aforementioned qpC_qPi_in_idx_[i][j], and the syntax element indicating the delta value used to derive 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, chroma quantization parameter data of a chroma QP mapping table can be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0694] Furthermore, for example, the decoding device may acquire a flag indicating whether one chroma QP mapping table is applied to a chroma component. That is, for example, the decoding device may acquire a flag indicating whether one chroma QP mapping table is signaled and applied to a chroma component. The video information includes the flag. Meanwhile, for example, the decoding device may acquire a flag indicating whether one chroma QP mapping table is applied based on a chroma type. Here, the chroma type may refer to the above-mentioned ChromaArrayType. For example, if the value of the chroma type is not 0, the decoding device may acquire a flag indicating whether one chroma QP mapping table is applied. For example, if the value of the chroma type is 1, the decoding device may acquire a flag indicating whether one chroma QP mapping table is applied. Here, if the value of the chroma type is 0, the chroma type may be in Monochrome format, if the value of the chroma type is 1, the chroma type may be in 4:2:0 format, if the value of the chroma type is 2, the chroma type may be in 4:2:2 format, and if the value of the chroma type is 3, the chroma type may be in 4:4:4 format. For example, the syntax element for the flag may be the above-mentioned 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, if the value of the flag is 1, the flag indicates that one chroma QP mapping table is applied to the chroma component. Also, if the value of the flag is 0, the flag indicates that multiple chroma QP mapping tables are applied to the chroma component. That is, if 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, if the value of the flag is 1, chroma quantization parameter data of one chroma QP mapping table for the chroma component is signaled, and if the value of the flag is 0, chroma quantization parameter data of multiple chroma QP mapping tables for the chroma component may be signaled. That is, for example, if the value of the flag is 0, chroma quantization parameter data of individual chroma QP mapping tables for each of the chroma components may be signaled.
[0697] Also, for example, the flag may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0698] Also, for example, the chroma quantization parameter data of the plurality of chroma QP mapping tables for the chroma components may include first chroma quantization parameter data of a first chroma QP mapping table for a Cb component and second chroma quantization parameter data of a second chroma QP mapping table for a Cr component, or, for example, the chroma quantization parameter data may include first chroma quantization parameter data of a first chroma QP mapping table for a Cb component, second chroma quantization parameter data of a second chroma QP mapping table for a Cr component, and / or third chroma quantization parameter data of a third chroma QP mapping table for a joint CbCr component.
[0699] Meanwhile, for example, the decoding device may acquire a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. For example, the image information includes a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. Furthermore, for example, the decoding device may acquire a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component based on a chroma type. Here, the chroma type may refer to the aforementioned ChromaArrayType. For example, if the value of the chroma type is not 0, the decoding device may acquire a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. For example, if the value of the chroma type is 1, the decoding device may acquire a joint CbCr availability flag indicating whether third chroma quantization parameter data exists in the third chroma QP mapping table for the joint CbCr component. Also, for example, the joint CbCr availability flag can be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0700] In this case, if the value of the flag is 0 (i.e., the flag indicates that multiple chroma QP mapping tables are applied to the chroma components) and the value of the joint CbCr usage flag is 1 (i.e., the joint CbCr availability flag indicates that third chroma quantization parameter data of a third chroma QP mapping table for the joint CbCr component exists), the chroma quantization parameter data includes first quantization parameter data of a first chroma QP mapping table for the Cb component, second chroma quantization parameter data of a second chroma QP mapping table for the Cr component, and third chroma quantization parameter data of a third chroma QP mapping table for the joint CbCr component.
[0701] Furthermore, for example, the first chroma quantization parameter data may include a syntax element indicating the number of points in a first chroma QP mapping table for a Cb component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the first chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the first chroma QP mapping table may be the above-mentioned qpC_qPi_in_idx_[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the first chroma QP mapping table may be the above-mentioned qpC_qPi_out_idx_[i][j]. Also, for example, the first chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0702] Furthermore, for example, the second chroma quantization parameter data may include a syntax element indicating the number of points in a second chroma QP mapping table for a Cr component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the second chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive the input coordinate of the target point in the second chroma QP mapping table may be the above-mentioned qpC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive the output coordinate of the target point in the second chroma QP mapping table may be the above-mentioned qpC_qPi_out_idx[i][j]. Also, for example, the second chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0703] For example, the third chroma quantization parameter data may include a syntax element indicating the number of points in a third chroma QP mapping table for a joint CbCr component, a syntax element indicating a delta value used to derive an input coordinate of a target point in the third chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 may be the above-mentioned qPi_table_len_Idx[i], the syntax element indicating the delta value used to derive an input coordinate of a target point in the third chroma QP mapping table may be the above-mentioned qpC_qPi_in_idx[i][j], and the syntax element indicating the delta value used to derive an output coordinate of the target point in the third chroma QP mapping table may be the above-mentioned qpC_qPi_out_idx[i][j]. Also, for example, the third chroma quantization parameter data may be signaled via a high level syntax, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0704] Also, for example, if the value of the flag is 1 (i.e., if the flag indicates that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter data includes chroma quantization parameter data of (one) chroma QP mapping table for the Cb component, the Cr component, and the joint CbCr component.
[0705] Meanwhile, for example, the video information may include prediction information and / or residual information for the chroma components. For example, the video information may include prediction information for the chroma components, and the prediction information may include prediction mode information. The prediction mode information may indicate whether inter prediction or intra prediction is applied to the current block for the chroma components. Also, for example, the residual information may include syntax elements for transform coefficients of the current block for the chroma components. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0706] The decoding device generates a reconstructed picture based on the video information (S1210).
[0707] For example, the decoding device may derive the chroma QP mapping table based on the chroma quantization parameter data, derive chroma quantization parameters for the chroma components based on the chroma QP mapping table, derive residual samples for the chroma components based on the chroma quantization parameters, and generate a reconstructed picture based on the residual samples.
[0708] Specifically, for example, the decoding device may derive the chroma QP mapping table based on the chroma quantization parameter data, which may also 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 may 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 to derive an input coordinate of a target point in the chroma QP mapping table, and / or a syntax element indicating a delta value used to derive an 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 may 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 may be derived based on the quantization parameter data.
[0710] For example, if the value of the flag is 0 (i.e., if the flag indicates that multiple chroma QP mapping tables are applied to the chroma components), the first chroma QP mapping table for the chroma Cb component may be derived based on the first chroma quantization parameter data of the first chroma QP mapping table for the Cb component. Also, if the value of the flag is 0, the second chroma QP mapping table for the chroma Cr component may be derived based on the second chroma quantization parameter data of the second chroma QP mapping table for the Cr component. Also, if the value of the flag is 0, the first chroma QP mapping table for the chroma joint CbCr component may 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, if the value of the flag is 1 (i.e., if the flag indicates that one chroma QP mapping table is applied to the chroma component), the chroma quantization parameter table for the chroma component may be derived based on chroma quantization parameter data of the chroma QP mapping table for the chroma component, where 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 chroma quantization parameters for the chroma components based on the chroma QP mapping table.
[0713] For example, when the value of the flag is 0, a first chroma quantization parameter for the Cb component may be derived based on the first chroma QP mapping table, and a second chroma quantization parameter for the Cr component may be derived based on the second chroma QP mapping table. Furthermore, when the value of the flag is 0, a first chroma quantization parameter for the Cb component may be derived based on the first chroma QP mapping table, a second chroma quantization parameter for the Cr component may be derived based on the second chroma QP mapping table, and a third chroma quantization parameter for the joint CbCr component may be derived based on the third chroma QP mapping table. Here, the quantization parameter for the Cb component represents the aforementioned QP'Cb, the quantization parameter for the Cr component represents the aforementioned QP'Cr, and the quantization parameter for the joint CbCr component represents the aforementioned Qp'CbCr.
[0714] For example, an index for a chroma component (Cb component, Cr component, or joint CbCr component) may be derived based on a quantization parameter for the luma component, and a chroma quantization parameter for the chroma component may be derived based on a chroma quantization parameter for a point corresponding to the index in a chroma QP mapping table for the chroma component. That is, for example, a chroma quantization parameter for the chroma component may be derived based on a chroma quantization parameter for a point having the same index as the quantization parameter for the luma component in the chroma QP mapping table.
[0715] Also, for example, the chroma quantization parameter (e.g., QP'Cb, QP'Cr, or Qp'CbCr) for a chroma component (Cb component, Cr component, or joint CbCr component) is derived by adding an offset to the chroma quantization parameter (e.g., qPCb, qPCr, or qPCr) of the point corresponding to the index in the chroma QP mapping table for the chroma component. The offset may be derived based on a syntax element indicating an offset for deriving a quantization parameter for the chroma component.
[0716] Alternatively, for example, if the value of the flag is 1, the chroma quantization parameters for the chroma components are derived based on one chroma QP mapping table for the chroma components, so that the same chroma quantization parameters can be applied to the chroma components.
[0717] For example, an index for a chroma component (Cb component, Cr component, and joint CbCr component) may be derived based on a quantization parameter for the luma component, and a chroma quantization parameter for the chroma component may be derived based on a chroma quantization parameter for a point corresponding to the index in a chroma QP mapping table for the chroma component. That is, for example, a chroma quantization parameter for the chroma component may be derived based on a chroma quantization parameter for a point having the same index as the quantization parameter for the luma component in the chroma QP mapping table.
[0718] Also, for example, the chroma quantization parameter for the chroma component may be derived by adding an offset to the chroma quantization parameter for the index point of the chroma QP mapping table for the chroma component, where the offset is derived based on a syntax element indicating an offset for deriving a chroma quantization parameter for the chroma component.
[0719] For example, a decoding device can then derive residual samples for the chroma components based on the chroma quantization parameters.
[0720] For example, the decoding device may derive transform coefficients for chroma components based on received residual information. The video information may include the residual information. Alternatively, for example, the decoding device may derive transform coefficients based on the received residual information and derive inverse-transformed transform coefficients by inverse-transforming the transform coefficients. The transform coefficients may include transform coefficients for the Cb component, transform coefficients for the Cr component, and / or transform coefficients for the joint CbCr component.
[0721] The decoding device can then dequantize the transform coefficients based on the chroma quantization parameter to derive residual samples.
[0722] For example, if the flag value is 0, the decoding device may dequantize the transform coefficients for the Cb component based on a first chroma quantization parameter for the Cb component to derive a residual sample for the Cb component, and may dequantize the transform coefficients for the Cr component based on a second chroma quantization parameter for the Cr component to derive a residual for the Cr component. Alternatively, if the flag value is 0, the decoding device may dequantize the transform coefficients for the Cb component based on a first chroma quantization parameter for the Cb component to derive a residual sample for the Cb component, dequantize the transform coefficients for the Cr component based on a second chroma quantization parameter for the Cr component to derive a residual for the Cr component, and dequantize the transform coefficients for the joint CbCr component based on a third chroma quantization parameter for the joint CbCr component to derive a residual sample for the joint CbCr component. Alternatively, for example, if the value of the flag is 1, the decoding apparatus may dequantize the transform coefficients for the chroma components based on a chroma quantization parameter to derive residual samples for the chroma components.
[0723] Alternatively, if the value of the flag is 0, the decoding device may inverse quantize the inverse transformed transform coefficients for the Cb component based on a first chroma quantization parameter for the Cb component to derive residual samples for the Cb component, and inverse quantize the inverse transformed transform coefficients for the Cr component based on a second chroma quantization parameter for the Cr component to derive residual samples for the Cr component. Alternatively, for example, if the value of the flag is 0, the decoding device may inverse quantize the inverse transformed transform coefficients for the Cb component based on a first chroma quantization parameter for the Cb component to derive residual samples for the Cb component, inverse quantize the inverse transformed transform coefficients for the Cr component based on a second chroma quantization parameter for the Cr component to derive residual samples for the Cr component, and inverse quantize the inverse transformed transform coefficients for the joint CbCr component based on a third chroma quantization parameter for the joint CbCr component to derive residual samples for the joint CbCr component. Alternatively, for example, if the value of the flag is 1, the decoding device may inverse quantize the inverse transformed transform coefficients for the chroma components based on a chroma quantization parameter to derive residual samples for the chroma components.
[0724] A decoding device, for example, can then generate a reconstructed picture based on the residual samples.
[0725] Meanwhile, for example, a decoding device may derive prediction samples for the chroma components based on received prediction information. The video information includes the prediction information. The decoding device may determine whether inter prediction or intra prediction is applied to the chroma components based on the received prediction information, and perform prediction based on the determination. That is, for example, the decoding device may determine whether inter prediction or intra prediction is applied to a current block for the chroma components based on the prediction information, and perform prediction based on the determination.
[0726] For example, the decoding device may derive a prediction mode to be applied to the current block for the chroma components based on the prediction information, and derive predicted samples of the current block based on the prediction mode. For example, if inter prediction is applied to the current block, the decoding device may derive motion information of the current block based on prediction information included in the video information, and derive the predicted samples of the current block based on the motion information. Furthermore, for example, if intra prediction is applied to the current block, the decoding device may derive reference samples based on neighboring samples of the current block, and derive the predicted samples of the current block based on the reference samples and the intra prediction mode of the current block. The reference samples include an upper reference sample and a left reference sample of the current block. For example, if the size of the current block is NxN and the x component and y component of the top-left sample position of the current block are 0 and 0, respectively, the left reference sample may be p[-1][0] to p[-1][2N-1], and the upper reference sample may be p[0][-1] to p[2N-1][-1].
[0727] Thereafter, for example, a decoding device can generate a reconstructed picture based on the predicted samples and the residual samples. For example, the decoding device can generate reconstructed samples and / or a reconstructed picture by adding the predicted samples and the residual samples.
[0728] As mentioned above, in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures may then be applied to the reconstructed samples to improve the subjective / objective image quality as needed.
[0729] Figure 13 schematically illustrates a decoding device that performs the video decoding method according to this document. The method disclosed in Figure 12 is performed by the decoding device disclosed in Figure 13. Specifically, for example, the entropy decoding unit of the decoding device of Figure 13 can perform S1200 of Figure 12, and the residual processing unit of the decoding device of Figure 13 can perform S1210 of Figure 12.
[0730] According to the above-mentioned document, instead of using a default chroma QP mapping table to derive chroma quantization parameters for chroma components, chroma quantization parameters for chroma components can be derived using a chroma QP mapping table derived based on signaled chroma QP mapping parameter data, thereby improving coding efficiency by performing coding based on quantization parameters according to image characteristics.
[0731] Furthermore, according to this document, a chroma QP mapping table is derived based on a syntax element indicating a delta value used to derive an input coordinate of a point in a 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, thereby performing coding based on a chroma QP mapping table that more specifically reflects the characteristics of an image, thereby improving coding efficiency.
[0732] In the above-described embodiments, the method is described based on a flow chart as a series of steps or blocks, but this document is not limited to the order of steps, and some steps may occur in a different order or simultaneously with other steps than those described above. Furthermore, those skilled in the art will understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps of the flow chart may be deleted without affecting the scope of this document.
[0733] The embodiments described herein may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in the figures may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information (e.g., information on instructions) or algorithms for implementation may be stored on a digital storage medium.
[0734] In addition, the decoding device and encoding device to which the embodiments of this document are applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interaction device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a custom video (VoD) service providing device, an over-the-top (OTT) video (over-the-top) device, an internet streaming service providing device, a three-dimensional (3D) video device, an image telephone video device, a vehicle terminal (e.g., a vehicle terminal, an airplane terminal, a ship terminal, etc.), a medical video device, etc., and may be used to process video signals or data signals. For example, an over-the-top (OTT) video (over-the-top) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0735] In addition, a processing method to which an embodiment of this document is applied may be produced in the form of a computer-executable program and stored in a computer-readable recording medium. Multimedia data having a data structure according to this document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium may also include media implemented in the form of a carrier wave (e.g., transmission via the Internet). The bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0736] Furthermore, the embodiments of the present document may be implemented in a computer program product by program code, which may be executed by a computer in accordance with the embodiments of the present document. The program code may be stored on a computer-readable carrier.
[0737] FIG. 11 exemplarily illustrates a structural diagram of a content streaming system to which the embodiments of this document are applied.
[0738] A content streaming system to which the embodiments of this document are applied can broadly include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.
[0739] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0740] The bitstream can be generated by an encoding method or a bitstream generation method to which an embodiment of this document is 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 a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, which then transmits the multimedia data to the user. The content streaming system may include a separate control server, which controls commands and responses between devices in the content streaming system.
[0742] The streaming server can receive content from a media repository and / or an encoding server. For example, if content is received from the encoding server, the content can be received in real time. In this case, the streaming server can store the bitstream for a certain period of time to provide a smooth streaming service.
[0743] Examples of the user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, and head mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc. Each server in the content streaming system can be operated as a distributed server, and in this case, data received by each server can be processed in a distributed manner.
[0744] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined to be realized as an apparatus, and the technical features of the apparatus claims in this specification may be combined to be realized as a method. Furthermore, the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined to be realized as an apparatus, and the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined to be 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 residual samples based on the residual information and chroma quantization parameters for the chroma components; 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; and based on the flag being 0 and the joint CbCr available flag being 1, 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.
2. A video encoding method performed by an encoding device, deriving residual samples for chroma components; generating residual information for the residual sample; encoding video information including the residual information; generating a bitstream containing 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 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 including respective chroma QP mapping tables for the Cb component, the Cr component, and the joint CbCr component are signaled based on the flag having a value of 0 and the joint CbCr available flag having a value of 1.
3. In a method of transmitting data for video, obtaining a bitstream of the video, the bitstream being generated by 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 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; and based on the value of the flag being 0 and the value of the joint CbCr available flag being 1, multiple chroma QP mapping tables including respective chroma QP mapping tables for the Cb component, the Cr component, and the joint CbCr component are signaled.
Citation Information
Patent Citations
Signalling chroma quantization parameter (QP) mapping tables
WO2020264164A1