Image decoding method and the apparatus for chroma components
Patent Information
- Application Number
- KR1020267027887
- Authority / Receiving Office
- KR · KR
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-06-11
- Filing Date
- 2020-06-11
- Publication Date
- 2026-09-04
Smart Images

Figure P1020267027887_ABST
Abstract
Description
Technology Field
[0001] This document relates to image coding technology, and more specifically, to an image decoding method and apparatus that codes image information based on chroma quantization parameter data signaled through high-level syntax in an image coding system. Background Technology
[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition), has been increasing across various fields. As video data becomes higher in resolution and quality, the relative amount of information or bits transmitted increases compared to conventional video data. Consequently, when transmitting video data using existing wired or wireless broadband lines or storing it on conventional storage media, transmission and storage costs increase.
[0003] Accordingly, high-efficiency video compression technology is required to effectively transmit, store, and play back high-resolution, high-quality video information. The problem to be solved
[0004] The technical objective of this document is to provide a method and device for increasing image coding efficiency.
[0005] Another technical objective 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 of solving the problem
[0006] According to one embodiment of the present document, an image decoding method performed by a decoding device is provided. The above method comprises the steps of: acquiring image information including a flag indicating whether quantization parameter data for combined chroma coding exists based on a chroma type, prediction information and residual information for a current chroma block; acquiring the quantization parameter data for the combined chroma coding based on the flag; deriving a chroma quantization parameter table based on the quantization parameter data; deriving quantization parameters for the combined chroma coding based on the chroma quantization parameter table; deriving prediction samples of the current chroma block based on the prediction information; deriving transformation coefficients of the current chroma block based on the residual information; deriving residual samples by inversely quantizing the transformation coefficients based on the quantization parameters; and generating a reconstructed picture based on the prediction samples and the residual samples, wherein the quantization parameter data includes a syntax element indicating the starting index of the quantization parameter table for the combined chroma coding and the quantization parameter It is characterized by including a syntax element that indicates the difference between the start index and the end index of the table.
[0007] According to another embodiment of the present document, a decoding device for performing image decoding is provided. The decoding device comprises: an entropy decoding unit that acquires image information including a flag indicating whether quantization parameter data for combined chroma coding exists based on a chroma type, prediction information for a current chroma block, and residual information; an entropy decoding unit that acquires the quantization parameter data for the combined chroma coding based on the flag; a prediction unit that derives prediction samples of the current chroma block based on the prediction information; a residual processing unit that derives a chroma quantization parameter table based on the quantization parameter data, derives quantization parameters for the combined chroma coding based on the chroma quantization parameter table, derives transformation coefficients of the current chroma block based on the residual information, and derives residual samples by inversely quantizing the transformation coefficients based on the quantization parameters; and an adder unit that generates a reconstructed picture based on the prediction samples and the residual samples, wherein the quantization parameter data is a syntax indicating the starting index of the quantization parameter table for the combined chroma coding. It is characterized by including a syntax element and a syntax element representing the difference between the start index and the end index of the quantization parameter table.
[0008] According to another embodiment of the present document, a video encoding method performed by an encoding device is provided. The method comprises the steps of: deriving predicted samples of a current chroma block based on inter-prediction or intra-prediction; deriving residual samples of the current chroma block based on the predicted samples; generating quantization parameter data for combined chroma coding of the residual samples based on the chroma type of the current chroma block; generating a flag indicating whether the quantization parameter data for the combined chroma coding exists; and encoding image information including predicted information for the current chroma block, residual information, the quantization parameter data, and the flag. The quantization parameter data is characterized by including a syntax element indicating the starting index of a quantization parameter table for the combined chroma coding and a syntax element indicating the difference between the starting index and the last index of the quantization parameter table.
[0009] According to another embodiment of the present document, a video encoding device is provided. The encoding device comprises: a prediction unit that derives predicted samples of a current chroma block based on inter-prediction or intra-prediction; a subtraction unit that derives residual samples of the current chroma block based on the predicted samples; a residual processing unit that generates quantization parameter data for combined chroma coding of the residual samples based on the chroma type of the current chroma block and generates a flag indicating whether the quantization parameter data for the combined chroma coding exists; and an entropy encoding unit that encodes image information including prediction information for the current chroma block, residual information, the quantization parameter data, and the flag. The quantization parameter data is characterized by including a syntax element indicating the starting index of a quantization parameter table for the combined chroma coding and a syntax element indicating the difference between the starting index and the last index of the quantization parameter table. Effects of the invention
[0010] According to this document, a quantization parameter table for deriving quantization parameters can be determined based on a flag indicating whether to transmit quantization parameter data for deriving quantization parameters for chroma components, and coding efficiency can be improved by performing coding based on quantization parameters according to the characteristics of the image.
[0011] According to this document, a quantization parameter table for chroma components can be determined based on signaling chroma quantization data, and coding efficiency can be improved by performing coding based on quantization parameters according to image characteristics. Brief explanation of the drawing
[0012] Figure 1 schematically illustrates an example of a video / image coding system to which embodiments of the present document can be applied. FIG. 2 is a diagram schematically illustrating the configuration of a video / image encoding device to which embodiments of the present document can be applied. FIG. 3 is a diagram schematically illustrating the configuration of a video / image decoding device to which embodiments of the present document can be applied. Figure 4 shows an example of an inter-prediction-based video / image encoding method. Figure 5 shows an example of an inter-prediction-based video / image decoding method. Figure 6 illustrates an exemplary inter prediction procedure. Figure 7 schematically illustrates a video encoding method using an encoding device according to the present document. Figure 8 schematically shows an encoding device that performs the video encoding method according to the present document. Figure 9 schematically illustrates an image decoding method by a decoding device according to the present document. Figure 10 schematically shows a decoding device that performs the image decoding method according to the present document. FIG. 11 illustrates an exemplary structural diagram of a content streaming system to which embodiments of the present document are applied. Specific details for implementing the invention
[0013] As this document is subject to various modifications and may have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the embodiments of this document to specific embodiments. Terms used in this specification are used merely to describe specific embodiments and are not intended to limit the technical scope of this document. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as "comprising" or "having" in this specification are intended to indicate the existence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0014] Meanwhile, the components depicted in the drawings described in this document are drawn independently for the convenience of explaining their distinct characteristic functions and do not imply that they are implemented in 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 components are integrated and / or separated are also included within the scope of this document, provided that they do not deviate from the essence of this document.
[0015] Hereinafter, preferred embodiments of the present document will be described in more detail with reference to the attached drawings. In the following, the same reference numerals are used for identical components in the drawings, and redundant descriptions of identical components may be omitted.
[0016] Figure 1 schematically illustrates an example of a video / image coding system to which embodiments of the present document can be applied.
[0017] Referring to FIG. 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 the form of a file or streaming via a digital storage medium or a network.
[0018] The source device may include a video source, an encoding device, and a transmission 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. A transmitter may be included in the encoding device. A receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
[0019] A video source may acquire video / images through processes such as video / image capture, synthesis, or generation. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include, for example, a computer, a tablet, and a smartphone, etc., and may generate video / images (electronically). For example, virtual video / images may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which related data is generated.
[0020] The encoding device can encode input video / images. The encoding device can perform a series of procedures, 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.
[0021] The transmission unit can transmit encoded video / image information or data output in the form of a bitstream to the receiving unit of a receiving device in the form of a file or streaming via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit may include elements for creating a media file through a predetermined file format and elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0022] The decoding device can decode video / images by performing a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoding device.
[0023] The renderer can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0024] This document relates to video / video coding. For example, the methods / executions disclosed in this document may be applied to methods disclosed in the VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard) or next-generation video / video coding standards (e.g., H.267 or H.268).
[0025] This document presents various embodiments regarding video / image coding, and unless otherwise noted, the embodiments may be performed in combination with one another.
[0026] In this document, "video" may refer to a set of images over time. "Picture" generally refers to a unit representing a single image at a specific time, and "subpicture," "slice," or "tile" are units that constitute a part of a picture in coding. A subpicture, slice, or tile may contain one or more CTUs (coding tree units). A single picture may be composed of one or more subpictures, slices, or tiles. A single picture may be composed of one or more tile groups. 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 of which consists of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan may represent a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in a CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. Additionally, a subpicture may represent a rectangular region of one or more slices within a picture. That is, a subpicture may include one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a width specified by syntax elements in the picture parameter set and a height equal to the height of the picture. A tile scan can represent a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in a CTU raster scan in a tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice may include an integer number of bricks of a picture, and said integer number of bricks may be exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, tile group and slice may be used interchangeably. For example, in this document, a tile group / tile group header may be referred to as a slice / slice header.
[0027] A pixel or pel can refer to the smallest unit that constitutes a picture (or image). Additionally, the term 'sample' may be used as a counterpart to pixel. Generally, a sample can represent a pixel or its value, and it may represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chroma component.
[0028] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to that area. A unit may include one luminance block and two chroma (e.g., cb, cr) blocks. Depending on the case, the term unit may be used interchangeably with terms such as block or area. In general, an MxN block may include samples (or sample arrays) or a set (or array) of transform coefficients consisting of M columns and N rows.
[0029] In this specification, "A or B" may mean "only A," "only B," or "both A and B." Alternatively, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "only A," "only B," "only C," or "any combination of A, B and C."
[0030] A slash ( / ) or a comma used in this specification may mean "and / or." For example, "A / B" may mean "A and / or B." Accordingly, "A / B" may mean "only A," "only B," or "both A and B." For example, "A, B, C" may mean "A, B or C."
[0031] In this specification, "at least one of A and B" may mean "only A," "only B," or "both A and B." Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted as synonymous with "at least one of A and B."
[0032] Additionally, in this specification, "at least one of A, B and C" may mean "only A," "only B," "only C," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0033] Additionally, parentheses used in this specification may mean "for example." Specifically, where indicated as "prediction (intra-prediction)," "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Furthermore, even where indicated as "prediction (i.e., intra-prediction)," "intra-prediction" may be proposed as an example of "prediction."
[0034] Technical features described individually within a single drawing in this specification may be implemented individually or simultaneously.
[0035] The following drawings are made to illustrate a specific example of the present specification. The names of specific devices or specific signals / messages / fields described in the drawings are presented as examples, and therefore the technical features of the present specification are not limited to the specific names used in the following drawings.
[0036] FIG. 2 is a diagram schematically illustrating the configuration of a video / image encoding device to which embodiments of the present document may be applied. Hereinafter, the term "video encoding device" may include an image encoding device.
[0037] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a predictor (220), a residual processor (230), an entropy encoder (240), an adder (250), a filter (260), and a memory (270). The predictor (220) may include an inter-predictor (221) and an intra-predictor (222). The residual processor (230) may include a transformer (232), a quantizer (233), a dequantizer (234), and an inverse transformer (235). The residual processor (230) may further include a subtractor (231). The addition unit (250) may be referred to as a reconstructor or a reconstructed block generator. The above-described image segmentation unit (210), prediction unit (220), residual processing unit (230), entropy encoding unit (240), addition unit (250), and filtering unit (260) may be configured by one or more hardware components (e.g., an encoder chipset or processor) according to the embodiment. Additionally, the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0038] The image segmentation unit (210) can divide an input image (or picture, frame) input to an encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit may be divided into multiple coding units of a deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first and the binary-tree structure and / or ternary structure may be applied later. Or the binary-tree structure may be applied first. A coding procedure according to this document may be performed based on the final coding unit that is no longer divided. In this case, based on coding efficiency according to image characteristics, the maximum coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively divided into lower-depth coding units so that a coding unit of the optimal size is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit may further include a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit may each be divided or partitioned from the final coding unit described above.The above prediction unit may be a unit of sample prediction, and the above transformation unit may be a unit that derives transformation coefficients and / or a unit that derives a residual signal from transformation coefficients.
[0039] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the context. In general, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chroma component. A sample may be used to refer to a single picture (or image) as a term corresponding to a pixel or pel.
[0040] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input image signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, as illustrated, the unit that subtracts the prediction signal (predicted block, prediction sample array) from the input image signal (original block, original sample array) within the encoder (200) may be called a subtraction unit (231). The prediction unit performs a prediction for a block to be processed (hereinafter referred to as the current block) and can generate a predicted block containing prediction samples for the current block. The prediction unit can determine whether intra prediction is applied or inter prediction is applied at the current block or CU level. The prediction unit can generate various information regarding prediction, such as prediction mode information, as described below in the description of each prediction mode, and transmit it to the entropy encoding unit (240). The information regarding prediction can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0041] The intra prediction unit (222) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a Planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional prediction modes may be used. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the surrounding blocks.
[0042] The inter prediction unit (221) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in 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 (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference blocks and the reference picture containing the temporal neighboring blocks may be the same or different. The above temporal surrounding blocks may be referred to by names such as collocated reference block, collocated CU (colCU), etc., and the reference picture containing the above temporal surrounding blocks may be referred to as a collocated picture (colPic). For example, the inter prediction unit (221) may construct a list of motion information candidates based on surrounding blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of surrounding blocks as motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0043] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit may be based on 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 video / video coding, such as in games, for example, screen content coding (SCC). IBC basically performs prediction within the current picture, but it can be performed similarly to inter prediction in that it derives 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 can be viewed as an example of intra coding or intra prediction. When palette mode is applied, sample values within the picture can be signaled based on information regarding the palette table and palette index.
[0044] The prediction signal generated through the prediction unit (including the inter prediction unit (221) and / or the intra prediction unit (222)) may be used to generate a restored signal or to generate a residual signal. The transformation unit (232) may generate transform coefficients by applying a transformation technique to the residual signal. For example, the transformation technique may include at least one of the Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform (CNT). Here, GBT refers to a transformation obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transformation obtained based on generating a prediction signal using all previously reconstructed pixels. In addition, the transformation process can be applied to pixel blocks of the same square size, or to non-square blocks of variable size.
[0045] The quantization unit (233) quantizes the transformation coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information regarding the quantized transformation coefficients) and output it as a bitstream. The information regarding the quantized transformation coefficients may be called residual information. The quantization unit (233) can rearrange the block-shaped quantized transformation coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information regarding the quantized transformation coefficients based on the one-dimensional vector-shaped quantized transformation coefficients. The entropy encoding unit (240) can perform various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (240) may encode information necessary for video / image restoration (e.g., values of syntax elements) together or separately, in addition to 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 NAL (network abstraction layer) units. The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. In this document, information and / or syntax elements transmitted / signaled from the encoding device to the decoding device may be included in the video / image information. The video / image information may be encoded through the encoding procedure described above and included in the bitstream.The above bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) that transmits the signal output from the entropy encoding unit (240) and / or a storage unit (not shown) that stores it may be configured as internal / external elements of the encoding device (200), or the transmission unit may be included in the entropy encoding unit (240).
[0046] Quantized transformation coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, a residual signal (residual block or residual samples) can be restored by applying inverse quantization and inverse transformation to the quantized transformation coefficients through the inverse quantization unit (234) and the inverse transformation unit (235). An adder (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter-prediction unit (221) or the intra-prediction unit (222). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. The adder (250) may be called a reconstruction unit or a reconstruction block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below.
[0047] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0048] The filtering unit (260) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (260) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (270), specifically in the DPB of memory (270). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240), as described below in the description of each filtering method. The information regarding filtering can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0049] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter-prediction unit (221). Through this, when inter-prediction is applied, the encoding device can avoid prediction mismatches between the encoding device (200) and the decoding device (300) and improve encoding efficiency.
[0050] The memory (270) DPB can store the modified restored picture to be used as a reference picture in the inter-prediction unit (221). The memory (270) can store motion information of blocks from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (221) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. The memory (270) can store restoration samples of the blocks restored within the current picture and transmit them to the intra-prediction unit (222).
[0051] FIG. 3 is a diagram schematically illustrating the configuration of a video / image decoding device to which embodiments of the present document can be applied.
[0052] Referring to FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-predictor (331) and an intra-predictor (332). The residual processor (320) may include a dequantizer (321) and an inverse transformer (322). The aforementioned entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) may be configured by a single hardware component (e.g., a decoder chipset or a processor) according to an embodiment. Additionally, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0053] When a bitstream containing video / image information is input, the decoding device (300) can restore the image in correspondence with the process in which the video / image information is processed by the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division 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 may be, for example, a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a binary tree structure. One or more conversion units may be derived from the coding unit. And, the restored image signal decoded and output through the decoding device (300) can be played back through a playback device.
[0054] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through an entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The decoding device can decode the picture based on information regarding the parameter sets and / or the general constraint information. The signaling / receiving information and / or syntax elements described below in this document can be obtained from the bitstream by being decoded through the decoding procedure. For example, the entropy decoding unit (310) can decode information within a bitstream based on coding methods such as exponential chord coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration and quantized values of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in a bitstream, determine a context model using information of the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, predict the probability of occurrence of the bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin after determining the context model. Among the information decoded in the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and the residual value for which entropy decoding was performed in the entropy decoding unit (310), i.e., quantized transformation coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive residual signals (residual blocks, residual samples, residual sample array). Additionally, among the information decoded in the entropy decoding unit (310), information regarding filtering can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an 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 the present 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), inverse transform unit (322), adder (340), filtering unit (350), memory (360), inter prediction unit (332), and intra prediction unit (331).
[0055] In the inverse quantization unit (321), the quantized transformation coefficients can be inversely quantized to output transformation coefficients. The inverse quantization unit (321) can rearrange the quantized transformation coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) and obtain transformation coefficients.
[0056] In the inverse conversion unit (322), the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).
[0057] The prediction unit performs a prediction for the current block and can generate a predicted block containing prediction samples for the current block. Based on information regarding the prediction output from the entropy decoding unit (310), the prediction unit can determine whether an intra prediction or an inter prediction is applied to the current block and can determine a specific intra / inter prediction mode.
[0058] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit may be based on 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 video / video coding, such as in games, for example, screen content coding (SCC). IBC basically performs prediction within the current picture, but it can be performed similarly to inter prediction in that it derives 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 can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information regarding the palette table and palette index can be included in the above video / image information and signaled.
[0059] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit (331) may determine the prediction mode applied to the current block by using the prediction mode applied to the surrounding blocks.
[0060] The inter prediction unit (332) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in 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 (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) may construct a motion information candidate list based on the neighboring blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-prediction can be performed based on various prediction modes, and information regarding the prediction may include information indicating the mode of inter-prediction for the current block.
[0061] The adder (340) can generate a restoration signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit (including the inter prediction unit (332) and / or the intra prediction unit (331)). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the restoration block.
[0062] The addition unit (340) may be called a restoration unit or a restoration block generation unit. The generated restoration signal may be used for intra-predicting the next block to be processed within the current picture, may be output after filtering as described below, or may be used for inter-predicting the next picture.
[0063] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0064] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can generate a modified restored picture by applying various filtering methods to the restored picture, and can transmit the modified restored picture to memory (360), specifically to the DPB of memory (360). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0065] The (modified) restored picture stored in the DPB of the memory (360) can be used as a reference picture in the inter-prediction unit (332). The memory (360) can store motion information of blocks from which motion information within the current picture has been derived (or decoded) and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (260) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. The memory (360) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (331).
[0066] In this specification, the embodiments described in the filtering unit (260), inter prediction unit (221), and intra prediction unit (222) of the encoding device (200) may be applied to the filtering unit (350), inter prediction unit (332), and intra prediction unit (331) of the decoding device (300) in the same or corresponding manner.
[0067] In this document, at least one of quantization / inverse quantization and / or transformation / inverse transformation may be omitted. If the quantization / inverse quantization is omitted, the quantized transformation coefficients may be called transformation coefficients. If the transformation / inverse transformation is omitted, the transformation coefficients may be called coefficients or residual coefficients, or for the sake of consistency of expression, they may still be called transformation coefficients.
[0068] 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 regarding the transform coefficient(s), and information regarding said transform coefficient(s) may be signaled through residual coding syntax. Transform coefficients may be derived based on said residual information (or information regarding said transform coefficient(s), and scaled transform coefficients may be derived through inverse transform (scaling) of said transform coefficients. Residual samples may be derived based on the inverse transform (transform) of said scaled transform coefficients. This may be similarly applied / expressed in other parts of this document.
[0069] As described above, prediction is performed to increase compression efficiency during video coding. Through this, a predicted block containing predicted samples for the current block, which is the 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 identically by both the encoding device and the decoding device, and the encoding device can increase video coding efficiency by signaling information regarding the residual between the original block and the predicted block (residual information) to the decoding device, rather than the original sample value of the original block itself. The decoding device derives a residual block containing residual samples based on the residual information, can generate a restored block containing restored samples by combining the residual block and the predicted block, and can generate a restored picture containing the restored blocks.
[0070] The above residual information can be generated through transformation and quantization procedures. For example, an encoding device may derive a residual block between the original block and the predicted block, perform a transformation procedure on residual samples (residual sample array) included in the residual block to derive transformation coefficients, perform a quantization procedure on the transformation coefficients to derive quantized transformation coefficients, and signal the related residual information to a decoding device (via a bitstream). Here, the residual information may include information such as value information, position information, transformation technique, transformation kernel, and quantization parameters of the quantized transformation coefficients. The decoding device may perform an inverse quantization / inverse transformation procedure based on the residual information and 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 can also derive a residual block by inversely quantizing / inversely transforming the quantized transform coefficients for reference to inter-predicting of the picture, and generate a restored picture based thereon.
[0071] Intra prediction may represent a prediction that generates prediction samples for the current block based on reference samples within the picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, surrounding reference samples to be used for the intra prediction of the current block may be derived. The surrounding reference samples of the current block may include a sample adjacent to the left boundary of the current block of size nWxnH and a total of 2xnH samples adjacent to the bottom-left, a sample adjacent to the top boundary of the current block and a total of 2xnW samples adjacent to the top-right, and one sample adjacent to the top-left of the current block. Alternatively, the surrounding reference samples of the current block may include multiple columns of upper surrounding samples and multiple rows of left surrounding samples. Additionally, the surrounding reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nWxnH, 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.
[0072] 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 the surrounding reference samples to be used for prediction by substituting the unavailable samples with available samples. Alternatively, the surrounding reference samples to be used for prediction may be constructed through the interpolation of available samples.
[0073] When neighboring reference samples are derived, (i) a prediction sample may be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the prediction sample may be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode.
[0074] In addition, the prediction sample may be generated through interpolation between a first surrounding sample located in the prediction direction of the intra prediction mode of the current block and a second surrounding sample located in the opposite direction of the prediction direction, based on the prediction sample of the current block among the surrounding reference samples. The above-described case may be called Linear Interpolation Intra Prediction (LIP). Additionally, chroma prediction samples may be generated based on luminance samples using a linear model (LM). This case may be called LM mode or CCLM (chroma component LM) mode.
[0075] In addition, a provisional prediction sample of the current block may be derived based on filtered surrounding reference samples, and a prediction sample of the current block may be derived by performing a weighted sum of the provisional prediction sample and at least one reference sample derived according to the intra prediction mode among the existing surrounding reference samples, i.e., unfiltered surrounding reference samples. The above case may be called PDPC (Position dependent intra prediction).
[0076] In addition, intra-prediction coding can be performed by selecting the reference sample line with the highest prediction accuracy among the surrounding multiple reference sample lines of the current block, deriving a prediction sample using a reference sample located in the prediction direction from that line, and signaling the used reference sample line to a decoding device. The above-described case may be referred to as multi-reference line intra-prediction or MRL-based intra-prediction.
[0077] In addition, the current block can be divided into vertical or horizontal subpartitions to perform intra prediction based on the same intra prediction mode, while utilizing surrounding reference samples derived at the subpartition level. That is, in this case, the intra prediction mode for the current block is applied identically to the subpartitions, but by deriving and utilizing surrounding reference samples at the subpartition level, intra prediction performance can be improved depending on the circumstances. This prediction method can be referred to as ISP (intra sub-partitions) based intra prediction.
[0078] The intra prediction methods described above may be referred to as intra prediction types to distinguish them from intra prediction modes. The aforementioned intra prediction types may be referred to by various terms, such as intra prediction techniques or additional intra prediction modes. For example, the aforementioned intra prediction type (or additional intra prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, and ISP. General intra prediction methods excluding specific intra prediction types such as LIP, PDPC, MRL, and ISP may be referred to as normal intra prediction types. Normal intra prediction types can be generally applied when specific intra prediction types such as those described above are not applied, and predictions can be performed based on the aforementioned intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples as necessary.
[0079] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction mode / type-based prediction sample derivation step. Additionally, a post-filtering step for the derived prediction samples may be performed as needed.
[0080] When intra prediction is applied, the intra prediction mode applied to the current block can be determined using the intra prediction mode of the surrounding blocks. For example, the decoding device may select one of the MPM candidates within the list of most probable modes (MPM) derived based on the intra prediction mode of the surrounding blocks of the current block (e.g., left and / or upper surrounding blocks) and additional candidate modes based on the received MPM index, or select one of the remaining intra prediction modes not included in the said MPM candidates (and planner modes) based on remaining intra prediction mode information. The said MPM list may be configured to include or not include the planner mode as a candidate. For example, if the said MPM list includes the planner mode as a candidate, the said MPM list may have 6 candidates, and if the said MPM list does not include the planner mode as a candidate, the said MPM list may have 5 candidates. If the above MPM list does not include planar mode as a candidate, a not planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not planar flag may be signaled when the value of the MPM flag is 1. Additionally, the MPM index may be signaled when the value of the not planar flag is 1. Here, the reason the above MPM list is configured not to include planar mode as a candidate is not that the planar mode is not an MPM, but rather that since planar mode is always considered as an MPM, the not planar flag is signaled first to check whether it is a planar mode.
[0081] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planner mode) or is in remaining mode can 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 planner 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 planner mode). A value of 0 for the not planner flag (e.g., intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is planner mode, and a value of 1 for the not planner flag may indicate that the intra prediction mode for the current block is not planner mode. The above MPM index may be signaled in the form of the mpm_idx or intra_luma_mpm_idx syntax element, and the above remaining intra prediction mode information may be signaled in the form of the rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the above remaining intra prediction mode information may point to one of the remaining intra prediction modes among all intra prediction modes that are not included in the above MPM candidates (and planar modes) by indexing them in order of prediction mode number. The above intra prediction mode may be an intra prediction mode for the lumina component (sample). Hereinafter, the intra prediction mode information is the above MPM flag (e.g., intra_luma_mpm_flag), the above not planar flag (e.g., intra_luma_not_planar_flag), the above MPM index (e.g.It may include at least one of mpm_idx or intra_luma_mpm_idx) and the remaining intra-prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In this document, the MPM list may be referred to by various terms such as MPM candidate list, candModeList, etc. When a MIP is applied to the current block, a separate mpm flag for the MIP (e.g., intra_mip_mpm_flag), an mpm index (e.g., intra_mip_mpm_idx), and remaining intra-prediction mode information (e.g., intra_mip_mpm_remainder) may be signaled, and the not-planar flag is not signaled.
[0082] In other words, generally, when an image is partitioned into blocks, the current block to be coded and its neighboring blocks will have similar image characteristics. Therefore, the current block and neighboring blocks are highly likely to have identical or similar intra prediction modes. Consequently, the encoder can utilize the intra prediction mode of the neighboring blocks to encode the intra prediction mode of the current block.
[0083] For example, an encoder / decoder can construct a list of most probable modes (MPM) for the current block. The above 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 the similarity between the current block and surrounding blocks during intra-predictive mode coding. As described above, the MPM list may be constructed to include planner modes, or it may be constructed to exclude planner modes. For example, if the MPM list includes planner modes, the number of candidates in the MPM list may be 6. And, if the MPM list does not include planner modes, the number of candidates in the MPM list may be 5.
[0084] The encoder / decoder can configure an MPM list containing 5 or 6 MPMs.
[0085] To construct the MPM list, three types of modes can be considered: default intra modes, neighbor intra modes, and derived intra modes.
[0086] For the above surrounding intra-modes, two surrounding blocks, namely the left surrounding block and the upper surrounding block, can be considered.
[0087] As described above, if the MPM list is configured not to include a planner mode, the planner mode is excluded from the list, and the number of MPM list candidates can be set to 5.
[0088] Additionally, among the intra prediction modes, the non-directional mode (or non-angular mode) may include a DC mode based on the average of neighboring reference samples of the current block or a planar mode based on interpolation.
[0089] Meanwhile, when inter prediction is applied, the prediction unit of the encoding device / decoding device can perform inter prediction on a block-by-block basis to derive prediction samples. Inter prediction can be a prediction derived in a manner that is dependent on data elements (e.g., sample values, or motion information) of picture(s) other than the current picture. When inter prediction is applied to the current block, a predicted block (prediction sample array) for the current block can be derived based on a reference block (reference sample array) specified by a motion vector on the reference picture pointed to by the reference picture index. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block can be predicted on a block, sub-block, or sample basis, based on the correlation of motion information between surrounding 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 (L0 prediction, L1 prediction, Bi prediction, etc.). When inter-prediction is applied, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference blocks and the reference picture containing the temporal neighboring blocks may be the same or different.The above temporal surrounding blocks may be referred to by names such as collocated reference block or collocated CU (colCU), and the reference picture containing the above temporal surrounding blocks may be referred to as a collocated picture (colPic). For example, a list of motion information candidates may be constructed based on the surrounding blocks of the current block, and a 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 the case of skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected surrounding blocks. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the selected surrounding block is used as a motion vector predictor, and the motion vector difference may be signaled. In this case, the motion vector of the current block can be derived by using the sum of the motion vector predictor and the motion vector difference.
[0090] The above 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 called an L0 motion vector or MVL0, and a motion vector in the L1 direction may be called an L1 motion vector or MVL1. A prediction based on an L0 motion vector may be called an L0 prediction, a prediction based on an L1 motion vector may be called an L1 prediction, and a prediction based on both the L0 motion vector and the L1 motion vector may be called a pair (Bi) prediction. Here, the L0 motion vector may represent a motion vector associated with reference picture list L0 (L0), and the L1 motion vector may represent a motion vector associated with reference picture list L1 (L1). Reference picture list L0 may include pictures that are prior to the current picture in output order as reference pictures, and reference picture list L1 may include pictures that are subsequent to the current picture in output order. The aforementioned previous pictures may be referred to as forward (reference) pictures, and the aforementioned subsequent pictures may be referred to as reverse (reference) pictures. The reference picture list L0 may include additional pictures that are output later than the current picture as reference pictures. In this case, within the reference picture list L0, the previous pictures may be indexed first, and the subsequent pictures may be indexed next. The reference picture list L1 may include additional pictures that are output earlier than the current picture as reference pictures. In this case, within the reference picture list L1, the subsequent pictures may be indexed first, and the previous pictures may be indexed next. Here, the output order may correspond to the POC (picture order count) order.
[0091] A video / image encoding procedure based on inter-prediction may include, for example, the following in general.
[0092] Figure 4 shows an example of an inter-prediction-based video / image encoding method.
[0093] The encoding device performs inter prediction for the current block (S400). The encoding device may derive the inter prediction mode and motion information of the current block and generate prediction samples of the current block. Here, the procedures for determining the inter prediction mode, deriving motion information, and generating prediction samples may be performed simultaneously, or one procedure may be performed before the other. For example, the inter prediction unit of the encoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit may determine the prediction mode for the current block, the motion information derivation unit may derive motion information of the current block, and the prediction sample derivation unit may derive prediction samples of the current block. For example, the inter prediction unit of the encoding device may search for a block similar to the current block within a certain area (search area) of reference pictures through motion estimation, and derive a reference block in which the difference from the current block is minimal or below a certain standard. Based on this, a reference picture index pointing to a reference picture where the reference block is located can be derived, and a motion vector can be derived based on the position difference between the reference block and the current block. The encoding device can determine a mode applied to the current block among various prediction modes. The encoding device can compare the RD costs for the various prediction modes and determine the optimal prediction mode for the current block.
[0094] 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 the reference blocks pointed to by the merge candidates included in the merge candidate list, wherein the difference between the current block and the reference block is minimum or below a certain standard. In this case, a merge candidate associated with the derived reference block is selected, and merge index information pointing to the selected merge candidate is generated and signaled to the decoding device. Movement information of the current block can be derived using the movement information of the selected merge candidate.
[0095] As another example, when an (A)MVP mode is applied to the current block, the encoding device may construct a (A)MVP candidate list described below and use the motion vector of a selected MVP candidate among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, 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 among the MVP candidates, the MVP candidate having the motion vector with the smallest difference from the motion vector of the current block may become 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 device. Additionally, when an (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 device.
[0096] The encoding device can derive residual samples based on the predicted samples (S410). The encoding device can derive the residual samples by comparing the original samples of the current block with the predicted samples.
[0097] The encoding device encodes image information including prediction information and residual information (S420). The encoding device may output the encoded image information in the form of a bitstream. The prediction information may include information related to the prediction procedure, such as prediction mode information (e.g., skip flag, merge flag, or mode index, etc.) and information regarding motion information. The information regarding motion information may include candidate selection information (e.g., merge index, mvp flag, or mvp index) which is information for deriving a motion vector. Additionally, the information regarding motion information may include information regarding the aforementioned MVD and / or reference picture index information. Furthermore, the information regarding motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information regarding the residual samples. The residual information may include information regarding quantized transform coefficients for the residual samples.
[0098] The output bitstream can be stored in a (digital) storage medium and transmitted to a decoding device, or it can be transmitted to a decoding device via a network.
[0099] Meanwhile, as described above, the encoding device can generate a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference samples and the residual samples. This is intended to derive the same prediction results from the encoding device as those performed by the decoding device, thereby increasing coding efficiency. Accordingly, the encoding device can store the reconstructed picture (or reconstructed samples, reconstructed blocks) in memory and utilize it as a reference picture for inter-prediction. As described above, an in-loop filtering procedure, etc., may be further applied to the reconstructed picture.
[0100] A video / image decoding procedure based on inter-prediction may include, for example, the following in general.
[0101] Figure 5 shows an example of an inter-prediction-based video / image decoding method.
[0102] Referring to FIG. 5, the decoding device can perform an operation corresponding to the operation performed by the encoding device. The decoding device can perform a prediction on the current block based on the received prediction information and derive prediction samples.
[0103] Specifically, the decoding device can determine a prediction mode for the current block based on the received prediction information (S500). The decoding device can determine which inter-prediction mode is applied to the current block based on the prediction mode information within the prediction information.
[0104] For example, based on the merge flag, it can be determined whether the merge mode is applied to the current block or whether (A)MVP mode is determined. Alternatively, one of various inter-prediction mode candidates can be selected based on the mode index. The inter-prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter-prediction modes described below.
[0105] The decoding device derives movement information of the current block based on the determined inter-prediction mode (S510). For example, if 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 performed based on the selection information (merge index) described above. Movement information of the current block may be derived using the movement information of the selected merge candidate. The movement information of the selected merge candidate may be used as the movement information of the current block.
[0106] As another example, when an (A)MVP mode is applied to the current block, the decoding device may construct the (A)MVP candidate list described below and use the motion vector of a selected MVP candidate among the MVP (motion vector predictor) 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 the information regarding the MVD, and the motion vector of the current block may be derived based on the MVP of the current block and the MVD. Additionally, the reference picture index of the current block may be derived based on the reference picture index information. Within the reference picture list regarding the current block, the picture pointed to by the reference picture index may be derived as the reference picture referenced for inter-prediction of the current block.
[0107] Meanwhile, as described below, movement information of the current block can be derived without constructing a candidate list, and in this case, the movement information of the current block can be derived according to the procedure initiated in the prediction mode described below. In this case, the construction of the candidate list as described above may be omitted.
[0108] The decoding device can generate prediction samples for the current block based on the motion information of the current block (S520). In this case, the reference picture is derived based on the reference picture index of the current block, and prediction samples for the current block can be derived using samples of the reference block that the motion vector of the current block points to on the reference picture. 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 case.
[0109] 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; the prediction mode determination unit determines a prediction mode for the current block based on the prediction mode information received; the motion information derivation unit derives motion information (motion vector and / or reference picture index, etc.) of the current block based on the information regarding the motion information received; and the prediction sample derivation unit derives prediction samples of the current block.
[0110] The decoding device generates residual samples for the current block based on the received residual information (S530). The decoding device generates restoration samples for the current block based on the prediction samples and the residual samples, and can generate a restoration picture based thereon (S540). Subsequently, as described above, an in-loop filtering procedure, etc., may be further applied to the restoration picture.
[0111] Figure 6 illustrates an exemplary inter prediction procedure.
[0112] Referring to FIG. 6, as described above, the inter prediction procedure may include a step of determining an inter prediction mode, a step of deriving motion information according to the determined prediction mode, and a step of performing a prediction based on the derived motion information (generating a prediction sample). As described above, the inter prediction procedure may be performed in an encoding device and a decoding device. In this document, the term "coding device" may include an encoding device and / or a decoding device.
[0113] Referring to FIG. 6, the coding device determines an inter-prediction mode for the current block (S600). Various inter-prediction modes may be used for the prediction of the current block within the picture. For example, various modes such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, and merge with MVD (MMVD) mode may be used. Decoder-side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, bi-prediction with CU-level weight (BCW), and bi-directional optical flow (BDOF) may be used as additional or alternative modes. The affine mode may also be referred to as the affine motion prediction mode. The MVP mode may also be referred to as the advanced motion vector prediction (AMVP) mode. In this document, motion information candidates derived by some modes and / or some modes may be included as one of the motion information related candidates of other modes. For example, an HMVP candidate may be added as a merge candidate for the merge / skip mode, or may be added as an MVP candidate for the MVP mode. When the HMVP candidate is used as a motion information candidate for the merge mode or skip mode, the HMVP candidate may be called an HMVP merge candidate.
[0114] Prediction mode information indicating the inter-prediction mode of the current block may be signaled from the encoding device to the decoding device. The prediction mode information may be received by the decoding device by being included in a bitstream. 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 the skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether the merge mode is applied, and if the merge mode is not applied, an MVP mode may be applied, or additional flags for further distinction may be signaled. The affine mode may be signaled as an independent mode, or it may be signaled as a mode dependent on the merge mode or MVP mode, etc. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0115] The coding device derives movement information for the current block (S610). The movement information may be derived based on the inter prediction mode.
[0116] The coding device can perform inter-prediction using motion information of the current block. The encoding device can derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding device can use the original block within the original picture for the current block to search for similar reference blocks with high correlation in fractional pixel units within a defined search range within the reference picture, thereby deriving motion information. Block similarity can be derived based on the difference between phase-based sample values. For example, block similarity can be calculated based on the SAD between the current block (or the template of the current block) and the reference block (or the template of the reference block). In this case, motion information can be derived based on the reference block with the smallest SAD within the search area. The derived motion information can be signaled to the decoding device according to various methods based on the inter-prediction mode.
[0117] The coding device performs inter prediction based on movement information for the current block (S620). The coding device can derive prediction sample(s) for the current block based on the movement information. The current block containing the prediction samples may be called the predicted block.
[0118] Meanwhile, as described above, the quantization unit of the encoding device can derive quantized conversion coefficients by applying quantization to conversion coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can derive conversion coefficients by applying inverse quantization to quantized conversion coefficients.
[0119] In general, in video / image coding, the quantization rate can be varied, and compression can be adjusted using the varied quantization rate. From an implementation perspective, considering complexity, quantization parameters (QPs) may be used instead of directly using the quantization rate. For example, quantization parameters of integer values from 0 to 63 may be used, and each quantization parameter value can correspond to the actual quantization rate. Additionally, for example, quantization parameters (QPs) for the luminance component (luma sample) Y Quantization parameters (QP) for ) and chroma components (chroma samples) C ) can be set differently.
[0120] The quantization process takes a transformation coefficient (C) as input and a quantization rate (Q step By dividing by ), a quantized transformation coefficient (C') can be obtained based on this. In this case, considering computational complexity, the quantization rate can be multiplied by a scale to form an integer, and a shift operation can be performed by the value corresponding to the scale value. A quantization scale can be derived based on the product of the quantization rate and the scale value. That is, the quantization scale can be derived according to QP. For example, the quantization scale can be applied to the transformation coefficient (C) to derive a quantized transformation coefficient (C') based on this.
[0121] The inverse quantization process is the reverse process of the quantization process, and the quantization rate (Q) is applied to the quantized transformation coefficients (C'). stepBy multiplying by ), a restored transformation coefficient (C'') can be obtained based on this. In this case, a level scale can be derived according to the quantization parameter, and by applying the level scale to the quantized transformation coefficient (C'), a restored transformation coefficient (C'') can be derived based on this. The restored transformation coefficient (C'') may differ slightly from the original transformation coefficient (C) due to loss during the transformation and / or quantization process. Therefore, inverse quantization is performed in the encoding device in the same way as in the decoding device.
[0122] Meanwhile, adaptive frequency-weighted quantization technology, which adjusts the quantization intensity according to frequency, may be applied. The adaptive frequency-weighted quantization technology is a method of applying different quantization intensities for each frequency. The adaptive frequency-weighted quantization can apply different quantization intensities for each frequency using a predefined quantization scaling matrix. That is, the aforementioned quantization / de-quantization process can be performed based on the quantization scaling matrix. For example, different quantization scaling matrices may be used depending on whether the prediction mode applied to the current block to generate the size of the current block and / or the residual signal of the current block is inter-prediction or intra-prediction. The quantization scaling matrix may be referred to as a quantization matrix or a scaling matrix. The quantization scaling matrix may be predefined. Furthermore, for frequency-adaptive scaling, frequency-specific quantization scale information regarding the quantization scaling matrix may be configured / encoded in an encoding device and signaled to a decoding device. The above frequency-specific quantization scale information may be referred to as quantization scaling information. The above frequency-specific quantization scale information may include scaling list data. The above (modified) quantization scaling matrix may be derived based on the above scaling list data. Additionally, the above frequency-specific quantization scale information may include present flag information indicating whether the above scaling list data exists. Alternatively, if the above scaling list data is signaled at a higher level (e.g., SPS), information indicating whether the above scaling list data is modified at a lower level of the higher level (e.g., PPS or tile group header, etc.) may be further included.
[0123] As described above, quantization / inverse quantization can be applied to the luminance and chroma components based on quantization parameters.
[0124] Quantization parameters for a coding unit can be determined based on information signaled at the picture and / or slice level. For example, the quantization parameters can be derived as described below.
[0125] For example, information related to the derivation of quantization parameters through the SPS (sequence parameter set) can be signaled as shown in the following table.
[0126]
[0127] The semantics for the syntax elements of Table 1 described above may be as shown in the following table.
[0128]
[0129] For example, the syntax element bit_depth_luma_minus8 is BitDepth, which is the bit depth of the samples in the luma array. Y and QpBdOffset, which is the luma quantization parameter range offset Y It can represent. That is, for example, the BitDepth based on the above syntax element bit_depth_luma_minus8 Y and the above QpBdOffset Y ...can be derived. For example, the above BitDepth Y can be derived as the value obtained by adding 8 to the value of the above syntax element bit_depth_luma_minus8, and the above QpBdOffset Ycan be derived by multiplying the value of the above syntax element bit_depth_luma_minus8 by 6. In addition, the bit_depth_luma_minus8 may be in the range of 0 to 8.
[0130] Also, for example, the syntax element bit_depth_chroma_minus8 is BitDepth, which is the bit depth of the samples in the chroma array. c and QpBdOffset, which is the chroma quantization parameter range offset c It can represent. That is, for example, the BitDepth based on the above syntax element bit_depth_chroma_minus8 c and the above QpBdOffset c ...can be derived. For example, the above BitDepth c can be derived as the value obtained by adding 8 to the value of the above syntax element bit_depth_chroma_minus8, and the above QpBdOffset c can be derived by multiplying the value of the syntax element bit_depth_chroma_minus8 by 6. Additionally, bit_depth_chroma_minus8 may be in the range of 0 to 8.
[0131] Additionally, for example, information related to the derivation of quantization parameters through the PPS (picture parameter set) can be signaled as shown in the following table. The information may include chroma Cb offset, chroma Cr offset, joint chroma offset, and initial quantization parameters. That is, the information may include syntax elements for chroma Cb offset, chroma Cr offset, joint chroma offset, and initial quantization parameters.
[0132]
[0133] The semantics for the syntax elements of Table 3 described above may be as shown in the following table.
[0134]
[0135] For example, the value of the syntax element init_qp_minus26 plus 26 is the SliceQp for each slice referencing PPS. Y It can represent the initial value of. 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 is -( 26 + QpBdOffset Y It may be in the range of ) to +37.
[0136] Also, for example, the syntax elements pps_cb_qp_offset and pps_cr_qp_offset are Qp' respectively Cb and Qp' Cr The luminance quantization parameter Qp' used to derive YAn offset for can be indicated. The pps_cb_qp_offset and pps_cr_qp_offset may be in the range of -12 to +12. Additionally, if ChromaArrayType is 0, pps_cb_qp_offset and pps_cr_qp_offset may not be used during the decoding process, and the decoding device may ignore the values of the syntax elements.
[0137] Also, for example, the syntax element pps_joint_cbcr_qp_offset is Qp' CbCr The luminance quantization parameter Qp' used to derive Y An offset for can be indicated. The pps_joint_cbcr_qp_offset may be in the range of -12 to +12. Additionally, if ChromaArrayType is 0, pps_joint_cbcr_qp_offset may not be used during the decoding process, and the decoding device may ignore the value of the syntax element.
[0138] Additionally, for example, the syntax element pps_slice_chroma_qp_offsets_present_flag can indicate whether the syntax elements slice_cb_qp_offset and slice_cr_qp_offset are present in the associated slice headers. For example, pps_slice_chroma_qp_offsets_present_flag with a value of 1 can indicate that it is present in the associated slice headers of slice_cb_qp_offset and slice_cr_qp_offset. Also, for example, pps_slice_chroma_qp_offsets_present_flag with a value of 0 can indicate that it is not present in the associated slice headers of slice_cb_qp_offset and slice_cr_qp_offset. Additionally, if ChromaArrayType is 0, pps_slice_chroma_qp_offsets_present_flag may be equal to 0 during the decoding process.
[0139] As described above, the syntax elements parsed from 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 may represent the initial value of SliceQpY for each slice referencing the PPS. Additionally, the syntax elements pps_cb_qp_offset, pps_cr_qp_offset, and pps_joint_cbcr_qp_offset are the luminance quantization parameter Qp' Y It can indicate the offset for. Additionally, the syntax element pps_slice_chroma_qp_offsets_present_flag can indicate whether the offset parameter exists in the slice header.
[0140] In addition, for example, information related to the derivation of quantization parameters can be signaled through a slice header as shown in the following table.
[0141]
[0142] The semantics for the syntax elements of Table 5 described above may be as shown in the following table.
[0143]
[0144]
[0145] For example, slice_qp_delta is the Qp to be used in the coding block within the slice until it is modified by the value of CuQpDeltaVal in the coding unit layer. Y It can represent the initial value of. For example, Qp for a slice Y Initial value of, SliceQp Y It can be derived as 26 + init_qp_minus26 + slice_qp_delta. SliceQp Y The value of is -QpBdOffset Y It may be in the range of up to +63.
[0146] Also, for example, slice_cb_qp_offset is the quantization parameter Qp' Cb When determining the value of slice_cb_qp_offset, the difference to be added to the value of pps_cb_qp_offset may be indicated. The value of slice_cb_qp_offset may be in the range of -12 to +12. Also, for example, if slice_cb_qp_offset does not exist, the slice_cb_qp_offset may be inferred to 0. The value of pps_cb_qp_offset + slice_cb_qp_offset may be in the range of 12 to +12.
[0147] Also, for example, slice_cr_qp_offset is the quantization parameter Qp' Cr When determining the value of slice_cr_qp_offset, the difference to be added to the value of pps_cr_qp_offset may be indicated. 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, the slice_cr_qp_offset may be inferred to 0. The value of pps_cr_qp_offset + slice_cr_qp_offset may be in the range of 12 to +12.
[0148] Also, for example, slice_cbcr_qp_offset is the quantization parameter Qp' CbCr When determining the value of slice_cbcr_qp_offset, the difference to be added to the value of pps_cbcr_qp_offset may be indicated. 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, the slice_cbcr_qp_offset may be inferred to 0. The value of pps_cbcr_qp_offset + slice_cbcr_qp_offset may be in the range of 12 to +12.
[0149] The derivation process for the lumina and chroma quantization parameters may begin with the input to the process being a variable specifying the lumina location, the width and height of the current coding block, and a variable specifying whether it is a single tree or a dual tree. Meanwhile, as described above, the lumina quantization parameter, the chroma quantization parameter, and the joint chroma quantization parameter are Qp' Y , Qp' Cb , Qp'Cr and Qp' CbCr It can be represented as.
[0150] Meanwhile, for example, a syntax element cu_qp_delta_sign_flag representing the sign of CuQpDeltaVal can be parsed. For example, the cu_qp_delta_sign_flag can represent the sign of CuQpDeltaVal as follows.
[0151] For example, if the above cu_qp_delta_sign_flag is 0, the CuQpDeltaVal corresponding to the above cu_qp_delta_sign_flag may have a positive value. Or, for example, if the above cu_qp_delta_sign_flag is 1, the CuQpDeltaVal corresponding to the above cu_qp_delta_sign_flag may have a negative value. Also, if the above cu_qp_delta_sign_flag does not exist, the above cu_qp_delta_sign_flag may be considered as 0.
[0152] Additionally, for example, if cu_qp_delta_abs exists, the variable IsCuQpDeltaCoded can be derived as 1, and the variable CuQpDeltaVal can be derived as cu_qp_delta_abs * ( 1 - 2 * cu_qp_delta_sign_flag ). The above CuQpDeltaVal can be in the range of -( 32 + QpBdOffsetY / 2 ) to +( 31 + QpBdOffsetY / 2 ).
[0153] Subsequently, for example, the above luminance quantization parameter Qp' Y It can be derived as shown in the following mathematical formula.
[0154]
[0155] Additionally, if ChromaArrayType is not 0 and treeType is SINGLE_TREE or DUAL_TREE_CHROMA, the following may apply.
[0156] - If treeType is equal to DUAL_TREE_CHROMA, variable Qp Y Qp is the luminance quantization parameter of the luminance coding unit containing the luminance positions (xCb + cbWidth / 2, yCb + cbHeight / 2). Y It can be set to be the same as.
[0157] - Variable qP Cb , qP Cr and qP CbCr It can be derived as follows.
[0158]
[0159] For example, if ChromaArrayType is 1, variable qP Cb , qP Cr and qP CbCr are qPi respectively Cb , qPi Cr and qPi CbCr Based on the same index qPi, it can be set to the same QpC value specified in Table 7 below.
[0160]
[0161] Or, if ChromaArrayType is not 1, variable qP Cb , qP Cr and qP CbCr are qPi respectively Cb , qPi Cr and qPi CbCr It can be set to be the same as Min(qPi, 63) based on the same index qPi.
[0162] - Chromoma quantization parameters for Cb and Cr components, Qp' Cb and Qp' Cr, chroma quantization parameter Qp' for joint Cb-Cr coding CbCr It can be derived as follows.
[0163]
[0164] Meanwhile, this document proposes measures to improve coding efficiency in the quantization / dequantization process.
[0165] In one embodiment, this document proposes a method in which a user defines and uses a chroma quantization mapping table, rather than a method of obtaining chroma quantization parameter values from luminance quantization parameter values through a chroma quantization mapping table predefined in the existing VVC Draft 5 v.7 when ChromaArrayType is not 0 (e.g., when ChromaArrayType is 1). In the VVC specification text (e.g., VVC Draft 5 v.7), when qPi (luminance quantization parameter value) is given, Qpc (chroma quantization parameter value) is derived through a predefined chroma quantization table (e.g., Table 7 above), but this document proposes a method of deriving Qpc from qPi based on a newly defined chroma quantization mapping table by the user. According to an embodiment of this document, a Qpc value can be derived through a functional relationship of a qPi value, and the function can be signaled as a syntax such as APS, SPS, or PPS through a user-defined functionality method, and the functional relationship transmits the values of predefined syntax elements, and a method is proposed in which a user defines a chroma quantization table mapping based on the transmitted values. As one example, since a Qpc value can be derived through a functional relationship of a qPi value, when syntax element values representing the function are transmitted, a user-defined chroma quantization table can be derived in the form of Table 7.
[0166] In one embodiment, a method is proposed for signaling information regarding syntax elements (Qpc_data) representing chroma quantization mapping related functions in the adaptation parameter set (APS) as shown in the table below.
[0167]
[0168] Referring to Table 8 above, when the aps_params_type represents Qpc_APS, for example, when the value of the aps_params_type is 2, Qpc_data() can be signaled.
[0169] The semantics for the syntax elements of Table 8 described above may be as shown in the following table.
[0170]
[0171] For example, the syntax element adaptation_parameter_set_id can provide an identifier of an APS that is referenced by other syntax elements.
[0172] Additionally, for example, the syntax element aps_extension_flag can indicate whether aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 can indicate that aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure, and a syntax element aps_extension_flag with a value of 0 can indicate that aps_extension_data_flag syntax elements do not exist in the APS RBSP syntax structure.
[0173] Additionally, 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 the decoder's suitability for the profile specified in this version of the specification. For example, a decoding device conforming to this version of the specification may ignore all syntax elements aps_extension_data_flag.
[0174] In addition, for example, the syntax element aps_params_type can represent the types of APS parameters included in the APS as shown in Table 10 described below.
[0175]
[0176] For example, referring to Table 10, if the value of the syntax element aps_params_type is 0, the syntax element aps_params_type may indicate that the types of APS parameters are ALF parameters; if the value of the syntax element aps_params_type is 1, the syntax element aps_params_type may indicate that the types of APS parameters are LMCS parameters; and if the value of the syntax element aps_params_type is 2, the syntax element aps_params_type may indicate that the types of APS parameters are Qpc data parameters. Qpc data parameters may represent chroma quantization data parameters.
[0177] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0178] For example, in this embodiment, a user-defined Qp in the picture parameter set (PPS) C Data (user defined Qp CA method for signaling data is proposed. As an example for implementing the method proposed in this embodiment, a flag indicating whether the PPS contains user-defined data may be introduced in the SPS. That is, a flag indicating whether the PPS contains user-defined data may be signaled in the SPS. Additionally, 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 set of headers.
[0179] A flag indicating whether the PPS contains user-defined data can be signaled as shown in the following table.
[0180]
[0181] For example, the syntax element Qpc_data_default_flag may be the syntax element of the flag described above. The syntax element Qpc_data_default_flag may indicate whether Qpc_data() parameters exist in the PPS RBSP syntax structure. For example, Qpc_data_default_flag being 0 may indicate that Qpc_data() parameters do not exist in the PPS RBSP syntax structure and that a default table is used to assist in determining chroma quantization. Here, the default table may be as described in Table 7 above. Additionally, for example, Qpc_data_default_flag being 1 may indicate that Qpc_data() parameters may exist in the PPS RBSP syntax structure.
[0182] In addition, the user-defined data signaled in the PPS according to the present embodiment may be as shown in the following table.
[0183]
[0184] Meanwhile, for example, Qpc_data() may contain information necessary for deriving chroma quantization when ChromaArrayType is 1.
[0185] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0186] For example, the present embodiment proposes a flexible structure for deriving chroma quantization parameters (QP) and combined chroma QP. The present embodiment proposes a method for signaling an initial flag indicating the existence of a user-defined mode in which parameters representing functions used to derive chroma quantization parameters (QP) in SPS and / or PPS can be used.
[0187] For example, the flag information signaled in the high-level syntax proposed in this embodiment may be as shown in the table below.
[0188]
[0189] For example, Qpc_data_present_flag can indicate whether parameters for deriving chroma quantization coefficients exist in the high-level syntax RBSP syntax structure. For example, Qpc_data_present_flag being 0 can indicate that chroma quantization parameters do not exist in the high-level syntax RBSP syntax structure. Also, for example, Qpc_data_present_flag being 1 can indicate that chroma quantization parameters exist in the high-level syntax RBSP syntax structure.
[0190] Alternatively, the above syntax element Qpc_data_present_flag may be used to indicate how chroma quantization derivation is used in the bitstream. For example, Qpc_data_present_flag may indicate the use of a tool or user-defined mode used for chroma quantization derivation as follows.
[0191] For example, Qpc_data_present_flag can indicate whether user-defined chroma quantization is used in the bitstream. For example, Qpc_data_present_flag being 0 can indicate that user-defined chroma quantization is not used in the bitstream. Additionally, for example, Qpc_data_present_flag being 1 can indicate that user-defined chroma quantization is used alone or in combination with other flags.
[0192] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0193] For example, in this embodiment, user-defined information signaled from a function is used to obtain the chroma quantization parameter (QP), i.e., Qp` Cb , Qp` Cr and Qp` CbCr An example of how this can be derived is proposed. For example, according to the present embodiment, data representing a function for deriving chroma quantization parameters (QP) may be signaled, and chroma quantization parameters may be derived based on said chroma quantization data. The data for deriving said chroma quantization coefficients (or a user-defined QP mapping table) may be signaled as shown in the following table.
[0194]
[0195] The semantics for the syntax elements of Table 14 described above may be as shown in the following table.
[0196]
[0197] For example, the syntax element qPi_min_idx can represent the minimum qPi index used for chroma quantization.
[0198] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in the following mathematical formula.
[0199]
[0200] Also, for example, the syntax element QpC_qPi_val[i] is the Qp for the i-th index C It can represent a value.
[0201] Also, for example, the syntax element QpOffset C is Qp C It can represent the offset value used in deriving.
[0202] Also, for example, the variable Qp for qPi C Idx[qPi] can be derived as follows. Here, qPi can be from 0 to qPiMaxIdx.
[0203] - If qPi < qPi_min_idx, Qp CIdx[qPi] can be set to be the same as qPi.
[0204] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] can be set to be the same as QpC_qPi_val[qPi].
[0205] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - QpOffset C It can be set to.
[0206] Afterwards, Qp C of The value is Qp C It can be derived as Idx[qPi].
[0207] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0208]
[0209]
[0210]
[0211]
[0212]
[0213] Referring to Table 16 above, the derivation process for the luminance and chroma quantization parameters can begin with the inputs to the process being the luminance position (xCb, yCb), variables cbWidth and cbHeight specifying the width and height of the current coding block, and a variable treeType specifying whether it is a single tree or a dual tree. Meanwhile, as described above, the luminance quantization parameter and the chroma quantization parameter are Qp' Y , Qp' Cb and Qp' Cr It can be represented as.
[0214] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0215] For example, the present embodiment proposes an example of using syntax elements that can be used to control the derivation of quantization parameters by having a flag within the SPS have a user-defined mode or a default mode. An example of a syntax element that can be used to derive quantization parameters may be as shown in the following tables. Meanwhile, the structure of the syntax elements is an example and is not limited to the structure shown in the tables below.
[0216]
[0217]
[0218]
[0219] For example, the syntax element Qpc_data_default_flag may indicate whether a user-defined mode is used to derive quantization parameters. For example, Qpc_data_default_flag being 0 may indicate that a user-defined mode is used to derive quantization parameters. Additionally, for example, Qpc_data_default_flag being 1 may indicate that a default table is used to derive chroma quantization parameters. Here, the default table may be as described in Table 7 above. Also, if the syntax element Qpc_data_default_flag does not exist, the syntax element Qpc_data_default_flag may be considered as 1.
[0220] Meanwhile, when the above user-defined mode is used, a corresponding slice header, tile group / header, or other appropriate header may be used to signal the APS ID. For example, as shown in Table 18 above, a syntax element representing the APS ID may be signaled through a slice header.
[0221] For example, the syntax element slice_Qp C _aps_id is the Qp referenced by the slice C Can represent the adaptation_parameter_set_id of APS. slice_Qp C Qp with adaptation_parameter_set_id equal to _aps_id C The TemporalId of the APS NAL unit may be less than or equal to the TemporalId of the coded slice NAL unit. Multiple Qp having the same adaptation_parameter_set_id value. C When APSs are referenced by two or more slices of the same picture, multiple QpC APSs with the same value of adaptation_parameter_set_id may have the same content.
[0222] In addition, the APS structure for transmitting chroma quantization data proposed in this embodiment may be as described in Table 19 above.
[0223] For example, the syntax element adaptation_parameter_set_id can provide an identifier of an APS that is referenced by other syntax elements.
[0224] Additionally, for example, the syntax element aps_extension_flag can indicate whether aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 can indicate that aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure, and a syntax element aps_extension_flag with a value of 0 can indicate that aps_extension_data_flag syntax elements do not exist in the APS RBSP syntax structure.
[0225] Additionally, 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 the decoder's suitability for the profile specified in this version of the specification. For example, a decoding device conforming to this version of the specification may ignore all syntax elements aps_extension_data_flag.
[0226] In addition, for example, the syntax element aps_params_type can represent the types of APS parameters included in the APS as shown in Table 10 above.
[0227] Qp disclosed in the aforementioned Table 19 C _data() can be signaled as shown in the following table.
[0228]
[0229] For example, the syntax element qPi_min_idx can represent the minimum qPi index used for chroma quantization.
[0230] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0231] Also, for example, syntax element Qp C The value of _prec_minus1 plus 1 can represent the number of bits used for the representation of the syntax lmcs_delta_abs_cw[i]. Qp C The value of _prec_minus1 can be in the range of 0 to BitDepthY - 2.
[0232] Also, for example, syntax element Qp C _init_val is the Qp corresponding to qPi_min_idx C It can represent a value.
[0233] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the delta of the value.
[0234] Also, for example, the syntax element QpOffset C is Qp C It can represent the offset value used in deriving.
[0235] For example, the variable Qp for qPi C Idx[qPi] can be derived as follows. Here, qPi can be from 0 to qPiMaxIdx.
[0236] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0237] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0238] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - QpOffset C It can be set to.
[0239] Afterwards, Qp C of The value is Qp C It can be derived as Idx[qPi].
[0240] As in the above-described embodiment, the chroma quantization parameters, namely Qp`Cb, Qp`Cr, and Qp`CbCr, can be derived using user-defined information that is signaled or using default values shown in a default table such as Table 7 above.
[0241] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0242]
[0243]
[0244]
[0245]
[0246]
[0247] Referring to Table 21 mentioned above, ChromaArrayType is 1, and Qp CIf _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment, where ChromaArrayType is 1 and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0248] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0249] For example, the present embodiment proposes syntax elements that can be used to control the derivation of quantization parameters by having the SPS flags indicate a user-defined mode or a default mode. Specifically, the present embodiment proposes a method for signaling syntax elements of the following syntax structure. Meanwhile, the structure of the syntax elements is one example, and is not limited to the structure shown in the table below.
[0250]
[0251] For example, the syntax element qPi_min_idx can represent the minimum qPi index used for chroma quantization.
[0252] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0253] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the delta of the value.
[0254] Also, for example, the syntax element QpOffset C is Qp as described above C It can represent the offset value used in deriving.
[0255] As in the above-described embodiment, the chroma quantization parameters, namely Qp`Cb, Qp`Cr, and Qp`CbCr, can be derived using user-defined information that is signaled or using default values shown in a default table such as Table 7 above.
[0256] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0257]
[0258]
[0259]
[0260]
[0261]
[0262] Referring to Table 23 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. For example, if ChromaArrayType is 1 and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr qPi as follows, respectively Cb , qPi Cr and qPi CbCr Qp based on the same index qPi as . C It can be derived as the same as the value of.
[0263] For example, variable Qp C Idx[i] can be derived as follows.
[0264] - If i < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0265] - If i = qPi_min_idx… qPiMaxIdx, Qp C Idx[i] is Qp C _qPi_delta_val[i] + Qp C It can be set to Idx[i-1].
[0266] - If i > qPiMaxIdx, Qp C Idx[i] is qPi - QpOffset C It can be set to.
[0267] Subsequently, the above Qp C is the above Qp C It can be set to Idx[i].
[0268] Also, referring to Table 23, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0269] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0270] For example, this embodiment describes chroma quantization (Qp) in the Adaptation Parameter Set (APS). C ) proposes syntax elements for derived parameters. For example, an APS ID may be signaled in the slice header. Additionally, a flag within the PPS (picture parameter set) may be proposed, for example, indicating whether a default table is used or a table derived from information signaled in the APS is used. Furthermore, for example, if the default table is not used, a Qp in the slice header C Additional control measures may be added to support access to APS containing data.
[0271] Meanwhile, according to existing video / image standards, the chroma QP can be derived from the luminance QP and can be updated by an additionally signaled chroma QP offset. The existing chroma quantization parameter QpC table may be a default table such as Table 7 described above.
[0272] In this embodiment, the chroma quantization parameter Qp as a function of the index qPi. C We propose adding a function to signal. APS is Qp C It can be used to integrate signaling schemes for values.
[0273] For example, the APS according to the present embodiment may be as shown in the following table.
[0274]
[0275] For example, the syntax element adaptation_parameter_set_id can provide an identifier of an APS that is referenced by other syntax elements.
[0276] In addition, for example, the syntax element aps_params_type can represent the types of APS parameters included in the APS as shown in Table 10 above.
[0277] Additionally, for example, the syntax element aps_extension_flag can indicate whether aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure. For example, a syntax element aps_extension_flag with a value of 1 can indicate that aps_extension_data_flag syntax elements exist in the APS RBSP syntax structure, and a syntax element aps_extension_flag with a value of 0 can indicate that aps_extension_data_flag syntax elements do not exist in the APS RBSP syntax structure.
[0278] Additionally, 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 the decoder's suitability for the profile specified in this version of the specification. For example, a decoding device conforming to this version of the specification may ignore all syntax elements aps_extension_data_flag.
[0279] Qp disclosed in the aforementioned Table 24 C _data() can be signaled as shown in the following table.
[0280]
[0281] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 0 to 63.
[0282] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. Additionally, for example, the value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0283] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index CIt can represent the difference in values. The above difference may also be called delta.
[0284] Also, for example, syntax element Qp C Offset C _present_flag is QpOffset in the bitstream C It can indicate whether exists. For example, Qp that is 1 C Offset C _present_flag is QpOffset in the bitstream C It can be indicated that exists. Also, for example, Qp that is 0 C Offset C _present_flag is QpOffset in the bitstream C It can indicate that does not exist. Qp C Offset C If _present_flag does not exist, Qp C Offset C _present_flag can be considered as 0.
[0285] Also, for example, the syntax element QpOffset C is Qp C It can represent the offset value used in deriving.
[0286] For example, the variable Qp for qPi C Idx[qPi] can be derived as follows. Here, qPi can be from 0 to 63.
[0287] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0288] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C_qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0289] - If qPi > qPiMaxIdx, Qp C Offset C If _present_flag is 1, Qp C Idx[qPi] is qPi - QpOffset C It can be set to, and Qp C Offset C If _present_flag is not 1, i.e., Qp C Offset C If _present_flag is 0, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It can be set to Idx[qPiMaxIdx]).
[0290] Afterwards, Qp C of The value is Qp C It can be derived as Idx[qPi].
[0291] In addition, this embodiment proposes a flag signaled by PPS as shown in the following table.
[0292]
[0293] For example, the syntax element Qp C _data_default_flag can indicate whether a user-defined mode is used for deriving quantization parameters. For example, Qp is 0. C _data_default_flag can indicate that a user-defined mode is used for deriving quantization parameters. Also, for example, Qp that is 1 C_data_default_flag may indicate that the default table described above is used to derive quantization parameters. The default table may be as shown in Table 7 described above. Qp C If _data_default_flag does not exist, Qp C _data_default_flag can be considered as 1.
[0294] In addition, the present embodiment proposes a syntax element that is signaled to a slice header as shown in the following table.
[0295]
[0296] For example, the syntax element slice_Qp C _aps_id is the Qp referenced by the slice C Can represent the adaptation_parameter_set_id of APS. slice_Qp C Qp with adaptation_parameter_set_id equal to _aps_id C The TemporalId of the APS NAL unit may be less than or equal to the TemporalId of the coded slice NAL unit. Multiple Qp having the same adaptation_parameter_set_id value. C When APSs are referenced by two or more slices of the same picture, multiple QpC APSs with the same value of adaptation_parameter_set_id may have the same content.
[0297] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0298]
[0299]
[0300]
[0301]
[0302]
[0303] Referring to Table 28 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. In addition, for example, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0304] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0305] For example, in this embodiment, it is proposed to signal a user-defined induction of chroma quantization in SPS as follows. For example, in this embodiment, user-defined chroma quantization (Qp C ) is proposed. For example, a flag of the SPS may indicate whether a default table is used for deriving chroma quantization or whether the contents of the table for deriving chroma quantization are derived from information signaled in the SPS.
[0306] For example, the present embodiment proposes a method for performing chroma quantization as a function of index qPi using the syntax elements shown in the following table.
[0307]
[0308] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 0 to 63.
[0309] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0310] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the delta of the value.
[0311] For example, variable Qp C Idx[qPi] can be derived as follows.
[0312] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0313] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C_qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0314] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It can be set to Idx[qPiMaxIdx]).
[0315] Subsequently, the above Qp C is the above Qp C It can be set to Idx[qPi].
[0316] In addition, the flag of the SPS indicating whether a default table is used for deriving chroma quantization proposed in this embodiment or whether signaling information is used for deriving chroma quantization may be as shown in the following table.
[0317]
[0318] For example, the syntax element Qp C _data_default_flag can indicate whether a user-defined mode is used for deriving quantization parameters. For example, Qp is 0. C _data_default_flag can indicate that a user-defined mode is used for deriving quantization parameters. Also, for example, Qp that is 1 C _data_default_flag may indicate that a default table is used to derive quantization parameters. The default table may be as shown in Table 7 described above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag can be considered as 1.
[0319] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0320]
[0321]
[0322]
[0323]
[0324]
[0325] Referring to Table 31 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. In addition, for example, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0326] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0327] For example, the present embodiment has a chroma quantization parameter Qp as a function of index qPi. CIt is proposed to add a function for signaling. For example, a method for signaling syntax elements for a user-defined table for deriving quantization parameters in a PPS can be proposed, thereby providing flexibility to switch between the user-defined table and the default table for each picture referencing the PPS.
[0328] The syntax elements for the user-defined table signaled in the PPS proposed in this embodiment may be as shown in the following table.
[0329]
[0330] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 0 to 63.
[0331] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0332] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the delta of the value.
[0333] For example, variable Qp C Idx[qPi] can be derived as follows.
[0334] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0335] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0336] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It can be set to Idx[qPiMaxIdx]).
[0337] Subsequently, the above Qp C is the above Qp C It can be set to Idx[qPi].
[0338] In addition, the flag of the SPS indicating whether a default table is used for deriving chroma quantization proposed in this embodiment or whether signaling information is used for deriving chroma quantization may be as shown in the following table.
[0339]
[0340] For example, the syntax element Qp C _data_default_flag can indicate whether a user-defined mode is used for deriving quantization parameters. For example, Qp is 0. C _data_default_flag can indicate that a user-defined mode is used for deriving quantization parameters. That is, for example, Qp where 0 C _data_default_flag is the above chroma quantization parameter data Qp C It can indicate that _data() is used. The above QpC If _data_default_flag is 0, the chroma quantization parameter data Qp above C _data() can be signaled. Also, for example, Qp that is 1 C _data_default_flag may indicate that a default table is used to derive quantization parameters. The default table may be as shown in Table 7 described above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag can be considered as 1.
[0341] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0342]
[0343]
[0344]
[0345]
[0346]
[0347] Referring to Table 34 above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. In addition, for example, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, QpC When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0348] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0349] For example, in this embodiment, the chroma quantization parameter Qp C We propose a general mode for deriving and signaling.
[0350] Chroma quantization parameter data, Qp for the chroma quantization parameter proposed in this embodiment C _data() can be signaled as shown in the following table.
[0351]
[0352] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 0 to 63.
[0353] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0354] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the delta of the value.
[0355] For example, variable Qp C Idx[qPi] can be derived as follows.
[0356] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0357] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0358] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It can be set to Idx[qPiMaxIdx]).
[0359] Subsequently, the above Qp C is the above Qp C It can be set to Idx[qPi].
[0360] In addition, the present embodiment proposes a method for signaling a flag indicating whether a default table is used for deriving chroma quantization or whether information signaled for deriving chroma quantization is used. The flag may be signaled through high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flag signaled through high-level syntax may be as shown in the following table.
[0361]
[0362] For example, the syntax element Qp C _data_default_flag can indicate whether a user-defined mode is used for deriving quantization parameters. For example, Qp is 0. C _data_default_flag can indicate that a user-defined mode is used for deriving quantization parameters. That is, for example, Qp where 0 C _data_default_flag is the above chroma quantization parameter data Qp C It can indicate that _data() is used. The above Qp C If _data_default_flag is 0, the chroma quantization parameter data Qp above C _data() can be signaled. Also, for example, Qp that is 1 C _data_default_flag may indicate that a default table is used to derive quantization parameters. The default table may be as shown in Table 7 described above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag can be considered as 1.
[0363] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0364]
[0365]
[0366]
[0367]
[0368]
[0369] Referring to Table 37 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. In addition, for example, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Cr and qPi CbCr It can be derived by the default table based on the same index qPi.
[0370] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0371] For example, the present embodiment has a chroma quantization parameter Qp without offset. C A method for deriving a table is proposed. This embodiment may be used in conjunction with APS or may be proposed for independent use. For example, the syntax structure of an APS integrated with chroma quantization data may be as shown in the following table.
[0372]
[0373] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 0 to 63.
[0374] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp C It can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 0 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0375] Also, for example, syntax element Qp C _qPi_delta_val[i] is the Qp for the i-th index C It can represent the difference in values. The above difference may also be called delta.
[0376] For example, variable Qp C Idx[qPi] can be derived as follows. Here, qPi can be from 0 to 63.
[0377] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0378] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is Qp C _qPi_delta_val[qPi] + Qp C It can be set to Idx[qPi-1].
[0379] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp C It can be set to Idx[qPiMaxIdx]).
[0380] Subsequently, the above QpC is the above Qp C It can be set to Idx[qPi].
[0381] In addition, this document proposes another embodiment for signaling information about quantization parameters.
[0382] For example, this embodiment is a continuous Qp C One example is provided of a method in which the delta (or difference) between values is limited to 1.
[0383] For example, the present embodiment proposes a method for additionally including user-defined chroma quantization (QpC) in existing image / video standards. For example, a flag of the sequence parameter set (SPS) proposed in the present embodiment may indicate whether an existing default table is used to derive chroma quantization parameters, or whether the contents of the table are derived based on information signaled in the SPS. According to the present embodiment, a method suitable for the image being coded can be selected by accommodating user-defined chroma quantization, and coding efficiency can be improved.
[0384] For example, the present embodiment uses syntax elements as shown in the following table to perform chroma quantization Qp as a function of index qPi. C It is suggested to add a function to signal.
[0385]
[0386] For example, the syntax element qPi_min_idx may represent the minimum qPi index used for chroma quantization. The value of qPi_min_idx may be in the range of 1 to 63.
[0387] Also, for example, the syntax element qPi_delta_max_idx is Qpi_min_idx and chroma Qp CIt can represent the delta value between the maximum qPi indices used for derivation. The value of qPiMaxIdx can be greater than or equal to qPi_min_idx. The value of qPi_delta_max_idx can be in the range of 1 to 63. For example, Qp C The maximum index qPiMaxIdx used for derivation can be derived as shown in Equation 4 above.
[0388] Also, for example, the syntax element QpC_qPi_flag[i] is Qp C It can indicate whether the value increases by 1. That is, for example, the syntax element QpC_qPi_flag[i] is the i-th Qp C The value is the (i-1)th Qp C It can indicate whether the value increases by 1. For example, QpC_qPi_flag[i] being 1 is Qp C QpC_qPi_flag[i], which can indicate an increase of 1, is 0, Qp C It can indicate that the value does not increase.
[0389] For example, variable Qp C Idx[qPi] can be derived as follows. Here, qPi can be from 0 to 63.
[0390] - If qPi < qPi_min_idx, Qp C Idx[qPi] can be set to be the same as qPi.
[0391] - If qPi = qPi_min_idx… qPiMaxIdx, Qp C Idx[qPi] is QpC_qPi_flag[qPi] + Qp C It can be set to Idx[qPi-1].
[0392] - If qPi > qPiMaxIdx, Qp C Idx[qPi] is qPi - (qPiMaxIdx - Qp CIt can be set to Idx[qPiMaxIdx]).
[0393] Subsequently, the above Qp C is the above Qp C It can be set to Idx[qPi].
[0394] In addition, the present embodiment proposes a method for signaling a flag indicating whether a default table is used for deriving chroma quantization or whether information signaled for deriving chroma quantization is used. The flag may be signaled through high-level syntax such as SPS (sequence parameter set) or PPS (picture parameter set). The flag signaled through high-level syntax may be as shown in the following table.
[0395]
[0396] For example, the syntax element Qp C _data_default_flag can indicate whether a user-defined mode is used for deriving quantization parameters. For example, Qp is 0. C _data_default_flag can indicate that a user-defined mode is used for deriving quantization parameters. That is, for example, Qp where 0 C _data_default_flag is the above chroma quantization parameter data Qp C It can indicate that _data() is used. The above Qp C If _data_default_flag is 0, the chroma quantization parameter data Qp above C _data() can be signaled. Also, for example, Qp that is 1 C_data_default_flag may indicate that a default table is used to derive quantization parameters. The default table may be as shown in Table 7 described above. Also, Qp C If _data_default_flag does not exist, the above Qp C _data_default_flag can be considered as 1.
[0397] For example, the process of deriving quantization parameters according to the present embodiment can be described in a standard format as shown in the following table.
[0398]
[0399]
[0400]
[0401]
[0402]
[0403] Referring to Table 41 mentioned above, ChromaArrayType is 1, and Qp C If _data_default_flag indicates negation (FALSE) (i.e., for example, Qp C When _data_default_flag is 0), variable qP Cb , qP Cr and qP CbCr can be derived based on user-defined information being signaled as proposed in this embodiment. In addition, for example, ChromaArrayType is 1, and Qp C If _data_default_flag indicates a positive (TRUE) (i.e., for example, Qp C When _data_default_flag is 1), variable qP Cb , qP Cr and qP CbCr are respectively qPi Cb , qPi Crand qPi CbCr It can be derived by the default table based on the same index qPi.
[0404] FIG. 7 schematically illustrates a video encoding method by an encoding device according to the present document. The method disclosed in FIG. 7 can be performed by the encoding device disclosed in FIG. 2. Specifically, for example, S700 of FIG. 7 can be performed by the prediction unit of the encoding device, S710 can be performed by the subtraction unit of the encoding device, S720 can be performed by the residual processing unit of the encoding device, and S730 to S740 can be performed by the entropy encoding unit of the encoding device. In addition, although not illustrated, the process of generating restored samples and restored pictures based on residual samples and predicted samples can be performed by the addition unit of the encoding device.
[0405] The encoding device derives predicted samples of the current chroma block based on inter-prediction or intra-prediction (S700). The encoding device may derive predicted samples of the current chroma block based on a prediction mode. In this case, various prediction methods disclosed in this document, such as inter-prediction or intra-prediction, may be applied.
[0406] For example, the encoding device can determine whether to perform inter-prediction or intra-prediction on the current chroma block, and can determine a specific inter-prediction mode or a specific intra-prediction mode based on RD cost. Depending on the determined mode, the encoding device can derive prediction samples for the current chroma block.
[0407] The encoding device derives residual samples of the current chroma block based on the predicted samples (S710). For example, the encoding device may derive the residual samples by subtracting the predicted samples from the original samples for the current chroma block.
[0408] The encoding device generates quantization parameter data for combined chroma coding of the residual samples based on the chroma type of the current chroma block (S720). The encoding device can generate quantization parameter data for combined chroma coding of the residual samples based on the chroma type. Here, the chroma type may refer to the ChromaArrayType described above. For example, if the value of the chroma type is not 0, the encoding device can generate quantization parameter data for combined chroma coding. For example, if the value of the chroma type is 1, the decoding device can generate quantization parameter data for combined chroma coding. Here, when the value of the chroma type is 0, the chroma type may be a Monochrome format; when the value of the chroma type is 1, the chroma type may be a 4:2:0 format; when the value of the chroma type is 2, the chroma type may be a 4:2:2 format; and when the value of the chroma type is 3, the chroma type may be a 4:4:4 format. Additionally, the combined chroma coding may also be referred to as joint coding of chroma components. The chroma components may include Cb components and / or Cr components.
[0409] Additionally, for example, the encoding device may determine whether to perform combined chroma coding for the residual samples for the chroma component based on the chroma type (e.g., if the value of the chroma type is not zero), and if combined chroma coding is performed for the residual samples, it may generate quantization parameter data for the combined chroma coding of the residual samples. For example, the quantization parameter data may be signaled through high-level syntax. For example, the quantization parameter data may be signaled through a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or an adaptation parameter set (APS).
[0410] For example, the quantization parameter data may include a syntax element representing the starting index of the chroma quantization parameter table for the combined chroma coding and / or a syntax element representing the difference between the starting index and the last index of the chroma quantization parameter table. The syntax element representing the starting index may be the qPi_min_idx described above. Additionally, the syntax element representing the difference between the starting index and the last index may be qPi_delta_max_idx. Furthermore, the chroma quantization parameter table may also be referred to as a chroma quantization parameter mapping table or a user-defined quantization parameter mapping table. Additionally, the starting index may also be referred to as a minimum index. Furthermore, for example, the syntax element representing the starting index and / or the syntax element representing the difference between the starting index and the last index may be signaled through high-level syntax. For example, the syntax element indicating the start index and / or the syntax element indicating the difference between the start index and the end index can be signaled through the sequence parameter set (SPS), picture parameter set (PPS), slice header, or adaptation parameter set (APS), etc.
[0411] Additionally, for example, the quantization parameter data may include syntax elements for quantization parameter values of indices of the chroma quantization parameter table. That is, for example, the quantization parameter data may include syntax elements for quantization parameter values of each index of the chroma quantization parameter table. The syntax elements for the quantization parameter values of the indices are the aforementioned Qp C It may be _qPi_val[i]. Also, for example, the syntax element for the quantization parameter value of the index may be signaled through high-level syntax. For example, the syntax element for the quantization parameter value of the index may be signaled through SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0412] Additionally, for example, the quantization parameter data may include a syntax element representing an offset for deriving quantization parameters for the combined chroma coding. The syntax element representing the offset is the above-described QpOffset C It may be. Additionally, for example, the syntax element representing the offset may be signaled through high-level syntax. For example, the syntax element representing the offset may be signaled through an SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0413] Meanwhile, for example, an encoding device can derive quantization parameters for the combined chroma coding based on the quantization parameter data. The quantization parameters for the combined chroma coding are the above-described QP' CbCr It can represent.
[0414] For example, as described above, the chroma quantization parameter table can be derived based on a syntax element representing the starting index of the chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the chroma quantization parameter table, and / or syntax elements for the quantization parameter values of the indices of the chroma quantization parameter table. That is, for example, a chroma quantization parameter table for the combined chroma coding can be derived based on the quantization parameter data. Subsequently, an index for the combined chroma coding can be derived based on the quantization parameter for the luminance component, and the quantization parameter for the combined chroma coding can be derived based on the quantization parameter for the index of the chroma quantization parameter table. That is, for example, the quantization parameter for the combined chroma coding can be derived based on the quantization parameter for the same index as the quantization parameter for the luminance component in the chroma quantization parameter table.
[0415] For example, the quantization parameter for the index of the above chroma quantization parameter table (e.g., QP CbCr By adding an offset to ) the quantization parameter for the combined chroma coding (e.g., QP' CbCr ) can be derived. The above offset can be derived based on a syntax element representing an offset for deriving quantization parameters for the above combined chroma coding.
[0416] The encoding device generates a flag indicating whether the quantization parameter data for the combined chroma coding exists (S730). For example, the encoding device may generate a flag indicating whether the quantization parameter data for the combined chroma coding exists based on the chroma type. For example, if the value of the chroma type is not 0, the encoding device may generate a flag indicating whether the quantization parameter data for the combined chroma coding exists. For example, if the value of the chroma type is 1, the encoding device may generate a flag indicating whether the quantization parameter data for the combined chroma coding exists. For example, the syntax element for the flag is the above-described Qp C It could be _data_present_flag.
[0417] For example, if the value of the flag is 0, the flag may indicate that the quantization parameter data for the combined chroma coding does not exist, and if the value of the flag is 1, the flag may indicate that the quantization parameter data for the combined chroma coding exists.
[0418] Additionally, for example, the above flag may be signaled through high-level syntax. For example, the above flag may be signaled through SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0419] The encoding device encodes image information including prediction information for the current chroma block, residual information, quantization parameter data, and the flag (S740). The encoding device can encode the image information. The image information may include prediction information for the current chroma block, residual information, quantization parameter data, and the flag.
[0420] For example, the encoding device can generate and encode prediction information for the current block. The prediction information may include prediction mode information indicating the prediction mode of the current block. The image information may include the prediction information.
[0421] Additionally, for example, the encoding device may encode residual information for the residual samples. For example, the encoding device may derive transformation coefficients based on the residual samples and generate residual information based on the transformation coefficients. The image information may include the residual information. For example, the residual information may include syntax elements for the transformation coefficients of the current chroma block. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0422] Additionally, for example, the encoding device can encode image information including the quantization parameter data and the flag. Additionally, for example, the encoding device can encode the image information and output it in the form of a bitstream.
[0423] Meanwhile, the bitstream containing the above-mentioned video information may be transmitted to a decoding device via a network or a (digital) storage medium. Here, the network may include a broadcasting network and / or a communication network, etc., and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0424] FIG. 8 schematically illustrates an encoding device that performs a video encoding method according to the present document. The method disclosed in FIG. 7 can be performed by the encoding device disclosed in FIG. 8. Specifically, for example, the prediction unit of the encoding device of FIG. 8 can perform S700, the subtraction unit of the encoding device can perform S710, the residual processing unit of the encoding device can perform S720, and the entropy encoding unit of the encoding device can perform S730 to S740. Additionally, although not illustrated, the process of generating restored samples and a restored picture based on the residual samples and predicted samples can be performed by the addition unit of the encoding device.
[0425] FIG. 9 schematically illustrates an image decoding method by a decoding device according to the present document. The method disclosed in FIG. 9 can be performed by the decoding device disclosed in FIG. 3. Specifically, for example, S900 to S910 of FIG. 9 can be performed by the entropy decoding unit of the decoding device, S920 and S940 to S960 of FIG. 9 can be performed by the residual processing unit of the decoding device, S930 of FIG. 9 can be performed by the prediction unit of the decoding device, and S970 of FIG. 9 can be performed by the addition unit of the decoding device.
[0426] The decoding device acquires image information including a flag indicating whether quantization parameter data for combined chroma coding exists based on a chroma type, prediction information for the current chroma block, and residual information (S900). The decoding device can acquire image information through a bitstream. For example, the image information may include information regarding chroma quantization parameters. For example, the image information may include a flag indicating whether quantization parameter data for combined chroma coding exists. For example, the decoding device can acquire a flag indicating whether quantization parameter data for combined chroma coding exists based on a chroma type. Here, the chroma type may refer to the ChromaArrayType described above. For example, if the value of the chroma type is not zero, the decoding device can acquire a flag indicating whether quantization parameter data for combined chroma coding exists. For example, when the value of the chroma type is 1, the decoding device may obtain a flag indicating whether quantization parameter data for combined chroma coding exists. Here, when the value of the chroma type is 0, the chroma type may be a Monochrome format; when the value of the chroma type is 1, the chroma type may be a 4:2:0 format; when the value of the chroma type is 2, the chroma type may be a 4:2:2 format; and when the value of the chroma type is 3, the chroma type may be a 4:4:4 format. Additionally, the combined chroma coding may also be referred to as joint coding of chroma components. The chroma components may include Cb components and / or Cr components.For example, the syntax element for the above flag is the aforementioned Qp. C It could be _data_present_flag.
[0427] For example, if the value of the flag is 0, the flag may indicate that the quantization parameter data for the combined chroma coding does not exist, and if the value of the flag is 1, the flag may indicate that the quantization parameter data for the combined chroma coding exists.
[0428] Additionally, for example, the above flag may be signaled through high-level syntax. For example, the above flag may be signaled through SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0429] Additionally, for example, the image information may include prediction information and / or residual information for the current chroma block. For example, the image information may include prediction-related information for the current block, and the prediction-related information may include prediction mode information. The prediction mode information may indicate whether inter-prediction or intra-prediction is applied to the current block. Additionally, for example, the residual information may include syntax elements for the transformation coefficients of the current chroma block. For example, the syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0430] The decoding device obtains the quantization parameter data for the combined chroma coding based on the flag (S910). The decoding device can obtain the quantization parameter data for the combined chroma coding based on the flag. For example, the decoding device can obtain the quantization parameter data for the combined chroma coding based on the flag indicating that the quantization parameter data for the combined chroma coding exists. That is, for example, if the value of the flag is 1, the decoding device can obtain the quantization parameter data for the combined chroma coding. In addition, for example, the quantization parameter data can be signaled through high-level syntax. For example, the quantization parameter data can be signaled through SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0431] For example, the quantization parameter data may include a syntax element representing the starting index of the chroma quantization parameter table for the combined chroma coding and / or a syntax element representing the difference between the starting index and the last index of the chroma quantization parameter table. The syntax element representing the starting index may be the qPi_min_idx described above. Additionally, the syntax element representing the difference between the starting index and the last index may be qPi_delta_max_idx. Furthermore, the chroma quantization parameter table may also be referred to as a chroma quantization parameter mapping table or a user-defined quantization parameter mapping table. Additionally, the starting index may also be referred to as a minimum index. Furthermore, for example, the syntax element representing the starting index and / or the syntax element representing the difference between the starting index and the last index may be signaled through high-level syntax. For example, the syntax element indicating the start index and / or the syntax element indicating the difference between the start index and the end index can be signaled through the sequence parameter set (SPS), picture parameter set (PPS), slice header, or adaptation parameter set (APS), etc.
[0432] Additionally, for example, the quantization parameter data may include syntax elements for quantization parameter values of indices of the chroma quantization parameter table. That is, for example, the quantization parameter data may include syntax elements for quantization parameter values of each index of the chroma quantization parameter table. The syntax elements for the quantization parameter values of the indices are the aforementioned Qp C It may be _qPi_val[i]. Also, for example, the syntax element for the quantization parameter value of the index may be signaled through high-level syntax. For example, the syntax element for the quantization parameter value of the index may be signaled through SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0433] Additionally, for example, the quantization parameter data may include a syntax element representing an offset for deriving quantization parameters for the combined chroma coding. The syntax element representing the offset is the above-described QpOffset C It may be. Additionally, for example, the syntax element representing the offset may be signaled through high-level syntax. For example, the syntax element representing the offset may be signaled through an SPS (sequence parameter set), PPS (picture parameter set), slice header, or APS (adaptation parameter set), etc.
[0434] The decoding device derives a chroma quantization parameter table based on the quantization parameter data (S920). The decoding device can derive a chroma quantization parameter table for the combined chroma coding based on the quantization parameter data. The chroma quantization parameter table may be called a chroma quantization parameter mapping table or a user-defined quantization parameter mapping table.
[0435] For example, as described above, the chroma quantization parameter table can be derived based on a syntax element representing the starting index of the chroma quantization parameter table, a syntax element representing the difference between the starting index and the last index of the chroma quantization parameter table, and / or syntax elements for the quantization parameter values of the indices of the chroma quantization parameter table. That is, for example, a chroma quantization parameter table for the combined chroma coding can be derived based on the quantization parameter data.
[0436] The decoding device derives quantization parameters for the combined chroma coding based on the chroma quantization parameter table (S930). The quantization parameters for the combined chroma coding are the above-described QP' CbCr It can represent.
[0437] For example, an index for the combined chroma coding can be derived based on a quantization parameter for a luminance component, and a quantization parameter for the combined chroma coding can be derived based on a quantization parameter for the index of the chroma quantization parameter table. That is, for example, a quantization parameter for the combined chroma coding can be derived based on a quantization parameter for the same index as the quantization parameter of the luminance component in the chroma quantization parameter table.
[0438] In addition, for example, the quantization parameter for the index of the chroma quantization parameter table (e.g., QP CbCr By adding an offset to ) the quantization parameter for the combined chroma coding (e.g., QP' CbCr ) can be derived. The above offset can be derived based on a syntax element representing an offset for deriving quantization parameters for the above combined chroma coding.
[0439] The decoding device derives prediction samples of the current chroma block based on the prediction information (S940). The decoding device can determine whether inter-prediction or intra-prediction is applied to the current chroma block based on the prediction information, and can perform a prediction based on this.
[0440] For example, the decoding device can derive a prediction mode applied to the current chroma block based on the prediction information, and can derive prediction samples of the current chroma block based on the prediction mode. For example, if inter-prediction is applied to the current block, the decoding device can derive motion information of the current chroma block based on prediction-related information included in the image information, and can derive the prediction samples of the current chroma block based on the motion information. Additionally, for example, if intra-prediction is applied to the current chroma block, the decoding device can derive a reference sample based on surrounding samples of the current chroma block, and can derive the prediction samples of the current chroma block based on the reference sample and the intra-prediction mode of the current chroma block. The reference samples may include upper reference samples and left reference samples of the current chroma block. For example, if the size of the current chroma block is NxN and the x component of the top-left sample position of the current chroma block is 0 and the y component is 0, the left reference samples may be p[-1][0] to p[-1][2N-1], and the upper reference samples may be p[0][-1] to p[2N-1][-1].
[0441] The decoding device derives the transformation coefficients of the current chroma block based on the residual information (S950). The decoding device can derive the transformation coefficients of the current chroma block based on the residual information. The residual information may include coefficient level information and sign flag information for the transformation coefficients.
[0442] For example, the absolute level of the transformation coefficient can be derived as the value represented by the coefficient level information included in the residual information, and the sign of the transformation coefficient can be derived as the sign represented by the sign flag information.
[0443] The decoding device derives residual samples by inversely quantizing the transformation coefficients based on the quantization parameter (S960). The decoding device can derive residual samples based on the quantization parameter. For example, the decoding device can derive residual samples by inversely quantizing the transformation coefficients based on the quantization parameter. Alternatively, for example, the decoding device can derive inversely transformed transformation coefficients by inversely transforming the transformation coefficients, and derive residual samples by inversely quantizing the inversely transformed transformation coefficients based on the quantization parameter.
[0444] The decoding device generates a reconstructed picture based on the predicted samples and the residual samples (S970). For example, the decoding device can generate the reconstructed picture based on the predicted samples and the residual samples.
[0445] Meanwhile, for example, a decoding device can generate restored samples and a restored picture through the addition of the predicted samples and the residual samples.
[0446] As previously mentioned, in-loop filtering procedures, such as deblocking filtering, SAO, and / or ALF procedures, may subsequently be applied to the reconstructed samples to improve subjective / objective image quality as needed.
[0447] FIG. 10 schematically illustrates a decoding device that performs an image decoding method according to the present document. The method disclosed in FIG. 9 can be performed by the decoding device disclosed in FIG. 10. Specifically, for example, the entropy decoding unit of the decoding device of FIG. 10 can perform S900 to S910 of FIG. 9, the residual processing unit of the decoding device of FIG. 10 can perform S920 and S940 to S960 of FIG. 9, the prediction unit of the decoding device of FIG. 10 can perform S930 of FIG. 9, and the addition unit of the decoding device of FIG. 10 can perform S970 of FIG. 9.
[0448] According to the above document, a chroma quantization parameter table for deriving quantization parameters can be determined based on a flag indicating whether quantization parameter data for deriving quantization parameters for chroma components is transmitted, and coding efficiency can be improved by performing coding based on quantization parameters according to the characteristics of the image.
[0449] In addition, according to this document, a chroma quantization parameter table for chroma components can be determined based on signaling chroma quantization data, and coding efficiency can be improved by performing coding based on quantization parameters according to the characteristics of the image.
[0450] In the embodiments described above, methods are described based on flowcharts as a series of steps or blocks; however, this document is not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps as described above. Furthermore, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and that other steps may be included, or that one or more steps of the flowcharts may be omitted without affecting the scope of this document.
[0451] The embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each figure may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored on a digital storage medium.
[0452] In addition, the decoding and encoding devices to which the embodiments of the present document are applied may be included in multimedia broadcasting transmission and reception devices, mobile communication terminals, home cinema video devices, digital cinema video devices, surveillance cameras, video conversation devices, real-time communication devices such as video communication, mobile streaming devices, storage media, camcorders, Video on Demand (VoD) service providers, Over-the-top video (OTT) devices, internet streaming service providers, three-dimensional (3D) video devices, video phone video devices, transportation terminals (e.g., vehicle terminals, airplane terminals, ship terminals, etc.), and medical video devices, and may be used to process video signals or data signals. For example, Over-the-top video (OTT) devices may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, Digital Video Recorders (DVRs), etc.
[0453] In addition, the processing method to which the embodiments of the present document are applied may be produced in the form of a program that is executed by a computer and may be stored on a computer-readable recording medium. Multimedia data having a data structure according to the present document may also be stored on 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. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission over the Internet). In addition, a bitstream generated by an encoding method may be stored on a computer-readable recording medium or transmitted through a wired or wireless communication network.
[0454] Additionally, embodiments of this document may be implemented as a computer program product by program code, and said program code may be executed on a computer by way of the embodiments of this document. said program code may be stored on a carrier readable by a computer.
[0455] FIG. 11 illustrates an exemplary structural diagram of a content streaming system to which embodiments of the present document are applied.
[0456] A content streaming system to which the embodiments of this document are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0457] The above encoding server compresses content input from multimedia input devices, such as smartphones, cameras, and camcorders, into digital data to generate a bitstream and transmits it to the streaming server. As another example, if multimedia input devices, such as smartphones, cameras, and camcorders, generate the bitstream directly, the encoding server may be omitted.
[0458] The bitstream above may be generated by an encoding method or a bitstream generation method to which the embodiments of the present document are applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0459] 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 a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits it to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server plays the role of controlling commands and responses between each device within the content streaming system.
[0460] The streaming server may receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content may be received in real time. In this case, to provide a seamless streaming service, the streaming server may store the bitstream for a certain period of time.
[0461] Examples of the above user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage, etc. Each server within the above content streaming system may be operated as a distributed server, and in this case, data received from each server may be processed in a distributed manner.
[0462] 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 implemented as a device, and the technical features of the device claims in this specification may be combined to be implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a device, and the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a method.
Claims
Claim 1 A video decoding method performed by a decoding device comprises: a step of acquiring video information including a flag indicating whether quantization parameter data for combined chroma coding exists based on a chroma type, and residual information for a current chroma block; a step of acquiring the quantization parameter data for the combined chroma coding based on the flag; a step of acquiring quantization parameter data for a chroma cb component and quantization parameter data for a chroma cr component; a step of deriving a chroma quantization parameter table for the combined chroma coding based on the quantization parameter data for the combined chroma coding; a step of deriving a chroma quantization parameter table for the chroma cb component and a chroma quantization parameter table for the chroma cr component based on the quantization parameter data for the chroma cb component and the quantization parameter data for the chroma cr component; and a step of deriving quantization parameters for the combined chroma coding based on the chroma quantization parameter table for the combined chroma coding. A step of deriving quantization parameters for the chroma cb component and quantization parameters for the chroma cr component based on the chroma quantization parameter table for the chroma cb component and the chroma quantization parameter table for the chroma cr component; a step of deriving transformation coefficients of the current chroma block based on the residual information;A video decoding method comprising the step of de-quantizing the transformation coefficients to derive residual samples based on the quantization parameter for the current chroma block among the quantization parameter for the chroma cb component, the quantization parameter for the chroma cr component, and the quantization parameter for the combined chroma coding, wherein the quantization parameter data for the combined chroma coding includes a syntax element for the starting quantization parameter of the chroma quantization parameter table for the combined chroma coding and a syntax element for the number of quantization parameters within the chroma quantization parameter table for the combined chroma coding. Claim 2 A video encoding method performed by an encoding device comprises: a step of deriving predicted samples of a current chroma block; a step of deriving residual samples of the current chroma block; a step of generating quantization parameter data for combined chroma coding of the residual samples based on the chroma type of the current chroma block; a step of generating a flag indicating whether the quantization parameter data for the combined chroma coding exists; and a step of generating quantization parameter data for a chroma cb component and quantization parameter data for a chroma cr component. A video encoding method comprising the step of encoding image information including prediction information for the current chroma block, residual information, quantization parameter data for the chroma cb component, quantization parameter data for the chroma cr component, quantization parameter data for the combined chroma coding, and flag, wherein the quantization parameter data for the combined chroma coding includes a syntax element for the start quantization parameter of the chroma quantization parameter table for the combined chroma coding and a syntax element for the number of quantization parameters within the chroma quantization parameter table for the combined chroma coding. Claim 3 A method for transmitting data for an image, comprising the step of obtaining a bitstream of image information including prediction information and residual information for a current chroma block, quantization parameter data for a chroma cb component, quantization parameter data for a chroma cr component, quantization parameter data for combined chroma coding, and a flag indicating whether the quantization parameter data for the combined chroma coding exists; A data transmission method comprising the step of transmitting data including the bitstream of image information including the prediction information and residual information for the current chroma block, the quantization parameter data for the chroma cb component, the quantization parameter data for the chroma cr component, the quantization parameter data for the combined chroma coding, and the flag, wherein the quantization parameter data for the combined chroma coding is generated based on the chroma type of the current chroma block, and the quantization parameter data for the combined chroma coding includes a syntax element for the start quantization parameter of the chroma quantization parameter table for the combined chroma coding and a syntax element for the number of quantization parameters within the chroma quantization parameter table for the combined chroma coding.