Image or Video Coding Based on Scaling List Data

By signaling scaling list data through an APS and using hierarchical availability flags, the method addresses the need for efficient image/video compression, enhancing compression efficiency and visual quality in high-resolution media formats.

JP7715878B2Active Publication Date: 2025-07-30LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024079834
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-07-08
Filing Date
2024-05-16
Publication Date
2025-07-30
Estimated Expiration
2040-07-08

AI Technical Summary

Technical Problem

The increasing demand for high-resolution and high-quality images/videos, particularly in immersive media formats like VR and AR, has led to a need for more efficient image/video compression technologies that can reduce transmission and storage costs while maintaining subjective and objective visual quality.

Method used

A method and apparatus for signaling scaling list data through an APS, allowing for hierarchical configuration and availability flag information, which enables efficient scaling list usage and improves coding efficiency by parsing/signaling the scaling list data individually based on availability flags.

Benefits of technology

This approach enhances overall image/video compression efficiency, improves subjective/objective visual quality, and reduces memory requirements by efficiently configuring and signaling scaling lists in a hierarchical manner.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007715878000053
    Figure 0007715878000053
  • Figure 0007715878000054
    Figure 0007715878000054
  • Figure 0007715878000055
    Figure 0007715878000055
Patent Text Reader

Abstract

To provide a method and device for enhancing efficiency of video / image coding.SOLUTION: According to the disclosure of the present document, scaling list data delivered in an adaptation parameter set (APS) may be signaled through a hierarchical structure, and the amount of data that needs to be signaled for video / image coding may be reduced and implementation may be facilitated by placing limits on the scaling list data delivered in the APS.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present technology relates to video or image coding, for example, coding technology based on scaling list data.

Background Art

[0002] In recent years, the demand for high-resolution and high-quality images / videos such as 4K or UHD (Ultra High Definition) images / videos of 8K or higher has been increasing in various fields. As the image / video data becomes higher in resolution and quality, the amount of information or bits to be transmitted relatively increases compared to the existing image / video data. Therefore, when transmitting image data using a medium such as an existing wired or wireless broadband line or storing image / video data using an existing storage medium, the transmission cost and storage cost increase.

[0003] In addition, in recent years, the interest and demand for immersive media such as VR (Virtual Reality), AR (Artificial Reality) content, and holograms have been increasing, and the broadcast of images / videos having image characteristics different from real images, such as game images, has been increasing.

[0004] Therefore, there is a need for a highly efficient image / video compression technology to effectively compress, transmit, store, and reproduce the information of high-resolution and high-quality images / videos having various characteristics as described above.

[0005] In addition, in order to improve the compression efficiency and enhance the subjective / objective visual quality, there has been a discussion on the adaptive frequency weighting quantization technology in the scaling process. A method for signaling related information is required to efficiently apply such technology.

Summary of the Invention

Problems to be Solved by the Invention

[0006] The technical problem of this document is to provide a method and apparatus for increasing video / image coding efficiency.

[0007] Another technical problem of this document is to provide a method and apparatus for increasing coding efficiency in the scaling process.

[0008] Another technical problem of this document is to provide a method and apparatus for efficiently configuring a scaling list used in the scaling process.

[0009] Another technical problem of this document is to provide a method and apparatus for hierarchically signaling scaling list related information used in the scaling process.

[0010] Another technical problem of this document is to provide a method and apparatus for efficiently applying a scaling list based scaling process.

Means for Solving the Problem

[0011] According to an embodiment of this document, scaling list data can be signaled via an APS (adaptation parameter set). Also, the APS can be identified based on the APS ID information included in the APS, and the APS can include the scaling list data based on the APS type information indicating that the APS is for the scaling list data included in the APS. Further, for the APS type information indicating that the APS is for the scaling list data, the value of the APS ID information can have a value within a specific range.

[0012] According to one embodiment of this document, availability flag information indicating the availability of scaling list data can be signaled hierarchically, and availability flag information at a lower-level syntax (e.g., picture header / slice header / type group header, etc.) can be signaled based on the availability flag information signaled at a higher-level syntax (e.g., SPS).

[0013] According to one embodiment of this document, the SPS syntax and the PPS syntax can be configured so as not to directly signal the scaling list data syntax at the SPS or PPS level. Thereby, the coding efficiency can be improved by individually parsing / signaling the scaling list data in the APS based on the availability flag information in the SPS.

[0014] According to one embodiment of this document, a video / image decoding method performed by a decoding device is provided. The video / image decoding method can include the method disclosed in the embodiment of this document.

[0015] According to one embodiment of this document, a decoding device for performing video / image decoding is provided. The decoding device can perform the method disclosed in the embodiment of this document.

[0016] According to one embodiment of this document, a video / image encoding method performed by an encoding device is provided. The video / image encoding method can include the method disclosed in the embodiment of this document.

[0017] According to one embodiment of this document, an encoding device for performing video / image encoding is provided. The encoding device can perform the method disclosed in the embodiment of this document.

[0018] According to one embodiment of the present document, there is provided a computer-readable digital storage medium storing encoded video / image information generated by a video / image encoding method disclosed in at least one of the embodiments of the present document.

[0019] According to one embodiment of the present document, there is provided a computer-readable digital storage medium storing encoded information or encoded video / image information that causes a decoding device to perform a video / image decoding method disclosed in at least one of the embodiments of the present document.

Advantages of the Invention

[0020] The present document can have various advantages. For example, according to one embodiment of the present document, the overall image / video compression efficiency can be increased. Also, according to one embodiment of the present document, the coding efficiency can be increased and the subjective / objective visual quality can be improved by applying an efficient scaling process. Further, according to one embodiment of the present document, the scaling list used in the scaling process can be efficiently configured, and through this, the scaling list-related information can be signaled hierarchically. Also, according to one embodiment of the present document, the coding efficiency can be increased by efficiently applying the scaling process based on the scaling list. Additionally, according to one embodiment of the present document, by imposing restrictions on the scaling list matrix used in the scaling process, the effect of facilitating implementation and limiting the worst case memory requirement can be obtained.

[0021] The effects that can be obtained through the specific embodiments of this document are not limited to the effects listed above. For example, there may be various technical effects that a person having ordinary skill in the related art can understand or derive from this document. Accordingly, the specific effects of this document are not limited to what is explicitly described in this document, and can include various effects that can be understood or derived from the technical features of this document.

Brief Description of the Drawings

[0022]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

DETAILED DESCRIPTION OF THE INVENTION

[0023] While the present disclosure can be modified in various ways and can have various embodiments, specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present disclosure to the specific embodiments. The terms commonly used in this document are merely used to describe the specific embodiments and are not used with the intention of limiting the technical idea of the present disclosure. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "including" or "having" are intended to specify the presence of the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and it should be understood that the presence or addition possibility of one or more other features, numbers, steps, operations, components, parts, or combinations thereof is not precluded in advance.

[0024] On the other hand, each configuration in the drawings described in the present disclosure is independently illustrated for the convenience of explaining different characteristic functions, and it does not mean that each configuration is realized by separate hardware or separate software. For example, among the configurations, two or more configurations may be combined to form one configuration, and one configuration may be divided into a plurality of configurations. Embodiments in which each configuration is integrated and / or separated are also included in the scope of rights of the present disclosure as long as they do not depart from the essence of this document.

[0025] In this document, "A or B" can mean "only A", "only B", or "both A and B". Also, in this document, "A or B" can be interpreted as "A and / or B". For example, in this document, "A, B or C" can mean "only A", "only B", "only C", or "any combination of A, B and C".

[0026] The slash ( / ) or comma used in this document can mean "and / or". For example, "A / B" can mean "A and / or B". Thus, "A / B" can mean "only A", "only B", or "both A and B". For example, "A, B, C" can mean "A, B or C".

[0027] In this document, "at least one of A and B" can mean "only A", "only B", or "both A and B". Also, in this document, expressions such as "at least one of A or B" and "at least one of A and / or B" can be interpreted in the same way as "at least one of A and B".

[0028] Also, in this document, "at least one of A, B and C" can mean "only A", "only B", "only C", or "any combination of A, B and C". Also, "at least one of A, B or C" and "at least one of A, B and / or C" can mean "at least one of A, B and C".

[0029] Also, the parentheses used in this document can mean "for example". Specifically, when displayed as "prediction (intra prediction)", "intra prediction" is proposed as an example of "prediction". As another expression, "prediction" in this document is not limited to "intra prediction", but "intra prediction" is proposed as an example of "prediction". Also, when displayed as "prediction (i.e., intra prediction)", "intra prediction" is proposed as an example of "prediction".

[0030] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to the methods disclosed in the VVC (Versatile Video Coding) standard. Also, the methods / embodiments disclosed in this document can be applied to the methods disclosed in the EVC (essential video coding) standard, the AV1 (AOMedia Video 1) standard, the AVS2 (2nd generation of audio video coding standard), or the next-generation video / image coding standard (e.g., H.267 or H.xxx).

[0031] This document presents various embodiments related to video / image coding, and unless otherwise stated, the embodiments can also be executed in combination with each other.

[0032] In this document, video can mean a collection of a series of images over time. A picture generally means a unit indicating one image in a specific time period, and a slice / tile is a unit that constitutes a part of a picture in coding. A slice / tile can include one or more CTUs (coding tree units). One picture can be composed of one or more slices / tiles. A tile is a rectangular region of CTUs within a particular tile column and 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 that can be specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture.A tile scan can indicate a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A slice can include an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit.

[0033] On the other hand, one picture can be partitioned into two or more sub - pictures. A sub - picture is an rectangular region of one or more slices within a picture.

[0034] A pixel or pel can mean the smallest unit that makes up one picture (or image). Also, the term "sample" can be used as the term corresponding to a pixel. A sample can generally indicate a pixel or the value of a pixel, and can also indicate only the pixel / pixel value of the luma component, or only the pixel / pixel value of the chroma component. Or, a sample can also mean the pixel value in the spatial domain, and when such a pixel value is converted to the frequency domain, it can also mean the conversion coefficient in the frequency domain.

[0035] A unit can indicate the basic unit of image processing. A unit can include at least one of a specific region of a picture and information related to that region. One unit can include one luma block and two chroma (e.g., cb, cr) blocks. A unit can, in some cases, be used interchangeably with terms such as "block" or "area". In a general case, an M×N block can include a set (or array) of samples (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.

[0036] Also, in this document, at least one of quantization / inverse quantization and / or transformation / inverse transformation can be omitted. When quantization / inverse quantization is omitted, the quantized transform coefficient can be called a transform coefficient. When transformation / inverse transformation is omitted, the transform coefficient can also be called a coefficient or a residual coefficient, or, for the sake of uniformity of expression, can still be called a transform coefficient.

[0037] In this document, the quantized transform coefficients and the transform coefficients can each be referred to as the transform coefficients and the scaled transform coefficients, respectively. In this case, the residual information can include information regarding the transform coefficient(s), and the information regarding the transform coefficient(s) can be signaled via a residual coding syntax. The transform coefficients can be derived based on the residual information (or the information regarding the transform coefficient(s)), and the scaled transform coefficients can be derived via an inverse transform (scaling) for the transform coefficients. Based on an inverse transform (transformation) for the scaled transform coefficients, residual samples can be derived. This can be applied / expressed similarly in other parts of this document.

[0038] In this document, the technical features individually described within one drawing can be realized individually or simultaneously.

[0039] Hereinafter, with reference to the accompanying drawings, preferred embodiments of this document will be described in more detail. Hereinafter, for the same components on the drawings, the same reference numerals will be used, and duplicate descriptions for the same components can be omitted.

[0040] FIG. 1 schematically shows an example of a video / image coding system that can be applied to an embodiment of this document.

[0041] Referring to FIG. 1, the video / image coding system can include a first device (source device) and a second device (receiving device). The source device can transmit encoded video / image information or data in a file or streaming form to the receiving device via a digital storage medium or a network.

[0042] The source device can include a video source, an encoding device, and a transmitting unit. The receiving device can include a receiving unit, a decoding device, and a renderer. The encoding device can be called a video / image encoding device, and the decoding device can be called a video / image decoding device. A transmitter can be included in the encoding device. A receiver can be included in the decoding device. The renderer can also include a display unit, and the display unit can also be composed of a separate device or an external component.

[0043] The video source can obtain video / images through processes such as video / image capture, synthesis, or generation. The video source can include a video / image capture device and / or a video / image generation device. The video / image capture device can include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device can include, for example, a computer, a tablet, and a smartphone, etc., and can (electronically) generate video / images. For example, virtual video / images can be generated through a computer, etc., in which case the video / image capture process can be replaced by the process of generating related data.

[0044] The encoding device can encode input video / images. The encoding device can execute a series of procedures such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.

[0045] The transmitting unit can transmit the encoded video / image information or data output in bitstream form to the receiving unit of the receiving device in file or streaming form via a digital storage medium or a network. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating a media file via a predetermined file format and can include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and transmit it to the decoding device.

[0046] The decoding device can execute a series of procedures such as inverse quantization, inverse transformation, prediction, etc. corresponding to the operation of the encoding device to decode the video / image.

[0047] The renderer can render the decoded video / image. The rendered video / image can be displayed via the display unit.

[0048] Figure 2 is a diagram schematically explaining the configuration of a video / image encoding device to which an embodiment of this document can be applied. Hereinafter, the encoding device can include an image encoding device and / or a video encoding device.

[0049] Referring to FIG. 2, the encoding apparatus 200 can be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 can include an inter-prediction unit 221 and an intra-prediction unit 222. The residual processor 230 can include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 can further include a subtractor 231. The adder 250 can be referred to as a reconstructor or a reconstructed block generator. The above-described image partitioner 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 can be configured by one or more hardware components (e.g., an encoder chipset or a processor) according to an embodiment. Also, the memory 270 can include a DPB (decoded picture buffer) and can also be configured by a digital storage medium. The hardware component can further include the memory 270 as an internal / external component.

[0050] The image segmentation unit 210 can divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing unit can be called a coding unit (CU). In this case, the coding unit can be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) by a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit can be divided into multiple coding units with a deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure can be applied first, and then the binary-tree structure and / or the ternary structure can be applied. Or the binary-tree structure can also be applied first. A coding procedure according to this document can be executed based on the final coding unit that is no longer divided. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit can be used as the final coding unit, or, if necessary, the coding unit can be recursively divided into coding units with a deeper depth so that a coding unit of an optimal size can be used as the final coding unit. Here, the coding procedure can include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit can further include a prediction unit (PU: Prediction Unit) or a transform unit (TU: Transform Unit). In this case, the prediction unit and the transform unit can each be divided or partitioned from the aforementioned final coding unit.The prediction unit is a unit of sample prediction, and the conversion unit is a unit for deriving a conversion coefficient and / or a unit for deriving a residual signal from the conversion coefficient.

[0051] The term "unit" can, in some cases, be used interchangeably with terms such as "block" or "area". In general, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally also represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luma component, or only the pixel / pixel value of the chroma component. A sample can be used as a term corresponding to a pixel or a pel for one picture (or image).

[0052] The encoding device 200 can subtract a prediction signal (predicted block, predicted sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input image signal (original block, original sample array) to generate a residual signal (residual signal, residual block, residual sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as shown in the figure, the unit that subtracts the prediction signal (predicted block, predicted sample array) from the input image signal (original block, original sample array) within the encoder 200 can be called the subtraction unit 231. The prediction unit can perform a prediction on a block to be processed (hereinafter referred to as the current block) and generate a predicted block including predicted samples for the current block. The prediction unit can determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit can generate various pieces of information related to prediction, such as prediction mode information, and transmit it to the entropy encoding unit 240 as described later in the description of each prediction mode. The information related to prediction can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.

[0053] The intra prediction unit 222 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located adjacent to the current block or remotely located depending on the prediction mode. The prediction modes in intra prediction can include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes can include, for example, the DC mode and the Planar mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the level of detail of the prediction direction. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the setting. The intra prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction mode applied to the adjacent block.

[0054] 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 the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between adjacent blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block can be called by names such as a collocated reference block and a collocated CU (colCU), and the reference picture including the temporal neighboring block can also be called a collocated picture (colPic). For example, the inter prediction unit 221 can construct a motion information candidate list based on adjacent 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 can be executed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter prediction unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of the motion information prediction (motion vector prediction, MVP) mode, the motion vector of an adjacent block is used as a motion vector predictor, and by signaling the motion vector difference, the motion vector of the current block can be indicated.

[0055] The prediction unit 220 can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can apply intra prediction or inter prediction for the prediction of one block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP). Also, the prediction unit can be based on the intra block copy (IBC) prediction mode for the prediction of a block, or can be based on the palette mode. The IBC prediction mode or the palette mode can be used for content image / video coding such as games, for example, like SCC (screen content coding). IBC basically performs prediction within the current picture, but can be executed in a way similar to inter prediction in terms of deriving a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described in this document. The palette mode can be regarded as an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture can be signaled based on the information regarding the palette table and the palette index.

[0056] The prediction signal generated via the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) can be used to generate a restored signal or can be used to generate a residual signal. The conversion unit 232 can generate transform coefficients by applying a conversion technique to the residual signal. For example, the conversion technique can include at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT means the conversion obtained from the graph when representing the relationship information between pixels as a graph. CNT means the conversion obtained based on generating a prediction signal using all previously reconstructed pixels. Also, the conversion process can be applied to a pixel block having the same size of a square or can be applied to a block of a variable size that is not square.

[0057] The quantization unit 233 quantizes the transform coefficients and transmits them to the entropy encoding unit 240. The entropy encoding unit 240 can encode the quantized signal (information regarding the quantized transform coefficients) and output it as a bitstream. The information regarding the quantized transform coefficients can be called residual information. The quantization unit 233 can reorder the quantized transform coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and can also generate the information regarding the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoding unit 240 can execute various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit 240 can also encode, together or separately, information necessary for video / image restoration (e.g., values of syntax elements, etc.) in addition to the quantized transform coefficients. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information can further include information regarding various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS), etc. Also, the video / image information can further include general constraint information. In this document, the information and / or syntax elements transmitted / signaled from the encoding device to the decoding device can be included in the video / image information. The video / image information can be encoded through the encoding procedure described above and included in the bitstream.The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network and / or a communication network, etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The signal output from the entropy encoding unit 240 can be configured such that a transmission unit (not shown) for transmission and / or a storage unit (not shown) for storage are internal / external elements of the encoding device 200, or the transmission unit can also be included in the entropy encoding unit 240.

[0058] The quantized transform coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients via the inverse quantization unit 234 and the inverse transformation unit 235, a residual signal (residual block or residual sample) can be restored. The addition unit 155 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the block to be processed, as in the case where the skip mode is applied, the predicted block can be used as the reconstructed block. The addition unit 250 can be called a restoration unit or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture and, as will be described later, can also be used for inter prediction of the next picture after passing through filtering.

[0059] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied in the picture encoding and / or restoration process.

[0060] The filtering unit 260 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and can store the modified restored picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit 260 can generate various information related to filtering and transmit it to the entropy encoding unit 240 as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoding unit 240 and output in the form of a bit stream.

[0061] The modified restored picture transmitted to the memory 270 can be used as a reference picture in the inter prediction unit 221. The encoding device can avoid prediction mismatches between the encoding device 100 and the decoding device and improve the encoding efficiency when inter prediction is applied through this.

[0062] [[ID=X]] The DPB of the memory 270 can store the modified restored picture for use as a reference picture in the inter prediction unit 221. The memory 270 can store the motion information of the blocks for which the motion information in the current picture has been derived (or encoded) and / or the motion information of the blocks in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 221 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 270 can store the restored samples of the restored blocks in the current picture and transmit them to the intra prediction unit 222.

[0063] FIG. 3 is a diagram schematically illustrating the configuration of a video / image decoding apparatus to which an embodiment of the present document can be applied. Hereinafter, the decoding apparatus can include an image decoding apparatus and / or a video decoding apparatus.

[0064] Referring to FIG. 3, the decoding apparatus 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filtering unit 350, and a memory 360. The predictor 330 can include an inter-prediction unit 331 and an intra-prediction unit 332. The residual processor 320 can include a dequantizer 321 and an inverse transformer 321. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filtering unit 350 described above can be configured by one hardware component (e.g., a decoder chipset or a processor) according to an embodiment. Also, the memory 360 can include a DPB (decoded picture buffer) and can also be configured by a digital storage medium. The hardware component can further include the memory 360 as an internal / external component.

[0065] When a bitstream including video / image information is input, the decoding device 300 can restore an image corresponding to the process in which the video / image information was processed by the encoding device of FIG. 2. For example, the decoding device 300 can derive units / blocks based on the block splitting related information obtained from the bitstream. The decoding device 300 can execute decoding using the processing units applied in the encoding device. Therefore, the processing unit for decoding is, for example, a coding unit, and the coding unit can be split according to a quad tree structure, a binary tree structure, and / or a ternary tree structure from a coding tree unit or a maximum coding unit. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output via the decoding device 300 can be reproduced via a reproducing device.

[0066] The decoding device 300 can receive the signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information can further include information regarding various parameter sets such as an Adaptation Parameter Set (APS), a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). Also, the video / image information can further include general constraint information. The decoding device can decode a picture based on the information regarding the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this document can be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 can decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the value of the syntax element necessary for image restoration and the quantized value of the transform coefficient regarding the residual. More specifically, the CABAC entropy decoding method receives the bin corresponding to each syntax element in the bitstream, determines a context model using the information of the syntax element information to be decoded, the information adjacent to the decoding target block, and the decoding information of the decoding target block or the symbol / bin information decoded in the previous step, predicts the occurrence probability of the bin based on the determined context model, and executes arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the symbol / bin decoded for the context model of the next symbol / bin after determining the context model.Of the information decoded by the entropy decoding unit 310, the information related to prediction is provided to the prediction unit (inter prediction unit 332 and intra prediction unit 331), and the residual value for which entropy decoding is performed by the entropy decoding unit 310, that is, the quantized transform coefficient and related parameter information, can be input to the residual processing unit 320. The residual processing unit 320 can derive a residual signal (residual block, residual sample, residual sample array). Also, of the information decoded by the entropy decoding unit 310, the information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives the signal output from the encoding device can be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. On the other hand, the decoding device according to this document can be called a video / image / picture decoding device, and the decoding device can be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder can include the entropy decoding unit 310, and the sample decoder can include at least one of the inverse quantization unit 321, inverse transform unit 322, addition unit 340, filtering unit 350, memory 360, inter prediction unit 332, and intra prediction unit 331.

[0067] In the inverse quantization unit 321, the quantized transform coefficient can be inverse quantized to output a transform coefficient. The inverse quantization unit 321 can reorder the quantized transform coefficients in a two-dimensional block form. In this case, the reordering can be performed based on the coefficient scan order executed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transform coefficient using a quantization parameter (for example, quantization step size information) to obtain a transform coefficient.

[0068] In the inverse conversion unit 322, the conversion coefficient is inversely converted to obtain a residual signal (residual block, residual sample array).

[0069] The prediction unit can perform prediction on the current block and generate a predicted block including predicted samples for the current block. The prediction unit can determine whether intra prediction or inter prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit 310, and can determine a specific intra / inter prediction mode.

[0070] The prediction unit 320 can generate a prediction signal based on various prediction methods to be described later. For example, the prediction unit can not only apply intra prediction or inter prediction for the prediction of one block, but also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP). Also, the prediction unit can be based on the intra block copy (IBC) prediction mode or the palette mode for the prediction of a block. The IBC prediction mode or the palette mode can be used for content image / moving image coding such as games, for example, like SCC (screen content coding). IBC basically performs prediction within the current picture, but can be executed in a manner similar to inter prediction in terms of deriving a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described in this document. The palette mode can be regarded as an example of intra coding or intra prediction. When the palette mode is applied, information regarding the palette table and the palette index can be included in and signaled in the video / image information.

[0071] The intra prediction unit 331 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located adjacent to or away from the current block depending on the prediction mode. The prediction modes in intra prediction can include a plurality of non - directional modes and a plurality of directional modes. The intra prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction mode applied to an adjacent block.

[0072] 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, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub - blocks, or samples based on the correlation of motion information between an adjacent block and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit 332 can construct a motion information candidate list based on adjacent 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 executed based on various prediction modes, and the information regarding the prediction can include information indicating the mode of inter prediction for the current block.

[0073] The adder 340 can generate a restored signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit (including the inter prediction unit 332 and / or the intra prediction unit 331). When there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block can be used as the restored block.

[0074] The adder 340 can be referred to as a restoration unit or a restored block generation unit. The generated restored signal can be used for intra prediction of the next block to be processed in the current picture, and as will be described later, it can also be output after filtering, or can be used for inter prediction of the next picture.

[0075] On the other hand, LMCS (luma mapping with chroma scaling) can also be applied during the picture decoding process.

[0076] The filtering unit 350 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 350 can apply various filtering methods to the restored picture to generate a modified restored picture, and can transmit the modified restored picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0077] The (corrected) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter prediction unit 332. The memory 360 can store the motion information of the blocks for which the motion information in the current picture has been derived (or decoded) and / or the motion information of the blocks in the pictures that have already been reconstructed. The stored motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 360 can store the reconstructed samples of the reconstructed blocks in the current picture and can transmit them to the intra prediction unit 331.

[0078] In this document, the embodiments described in the filtering unit 260, the inter prediction unit 221, and the intra prediction unit 222 of the encoding device 200 can be applied to the filtering unit 350, the inter prediction unit 332, and the intra prediction unit 331 of the decoding device 300 so as to be the same or corresponding, respectively.

[0079] As described above, when performing video coding, prediction is performed to improve the compression efficiency. Through this, a predicted block including prediction samples for the current block, which is the block to be coded, can be generated. Here, the predicted block includes prediction samples in the spatial domain (or pixel domain). The predicted block is also derived in the encoding device and the decoding device, and the encoding device can improve the image coding efficiency by signaling to the decoding device information (residual information) regarding the residual between the original block and the predicted block, which is not the original sample value of the original block itself. The decoding device can derive a residual block including residual samples based on the residual information, and can generate a reconstructed block including reconstructed samples by combining the residual block and the predicted block, and can generate a reconstructed picture including the reconstructed block.

[0080] The residual information can be generated through the conversion and quantization procedures. For example, an encoding device can derive a residual block between an original block and a predicted block, execute a conversion procedure on the residual samples (residual sample array) included in the residual block to derive conversion coefficients, and execute a quantization procedure on the conversion coefficients to derive quantized conversion coefficients, so that the related residual information can be signaled to a decoding device (via a bitstream). Here, the residual information can include information such as the value information, position information, conversion technique, conversion kernel, quantization parameter, etc. of the quantized conversion coefficients. The decoding device can execute an inverse quantization / inverse conversion procedure based on the residual information to derive residual samples (or a residual block). The decoding device can generate a reconstructed picture based on the predicted block and the residual block. Also, the encoding device can inverse quantize / inverse convert the quantized conversion coefficients for reference in the inter prediction of subsequent pictures to derive a residual block, and generate a reconstructed picture based on this.

[0081] Intra prediction can indicate a prediction that generates a prediction sample for a current block based on reference samples within a picture (hereinafter referred to as the current picture) to which the current block belongs. When intra prediction is applied to the current block, adjacent reference samples to be used for intra prediction of the current block can be derived. The adjacent reference samples of the current block can include a total of 2×nH samples adjacent to the left boundary of the current block of size nW×nH and adjacent to the bottom-left, samples adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top-right, and 1 sample adjacent to the top-left of the current block. Alternatively, the adjacent reference samples of the current block can also include a plurality of rows of upper adjacent samples and a plurality of columns of left adjacent samples. Also, the adjacent reference samples of the current block can include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and 1 sample adjacent to the bottom-right of the current block.

[0082] However, some of the adjacent reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder can form adjacent reference samples to be used for prediction by substituting samples that are not available with samples that are available. Alternatively, adjacent reference samples to be used for prediction can be formed through interpolation of available samples.

[0083] When an adjacent reference sample is derived, (i) a predicted sample can be induced based on the average or interpolation of neighboring reference samples of the current block, and (ii) a predicted sample can also be induced based on a reference sample that exists in a specific (predicted) direction with respect to the predicted sample among the adjacent reference samples of the current block. In the case of (i), it is called a non-directional mode or a non-angular mode, and in the case of (ii), it can be called a directional mode or an angular mode.

[0084] Also, based on the adjacent reference samples, with the predicted sample of the current block as a reference, a predicted sample can be generated through interpolation between a first adjacent sample located in the prediction direction of the intra prediction mode of the current block and a second adjacent sample located in the direction opposite to the prediction direction. In the above-mentioned case, it can be called Linear interpolation intra prediction (LIP). Also, a chroma predicted sample can be generated based on a luma sample using a linear model (LM). In this case, it can be called the LM mode or the CCLM (chroma component LM) mode.

[0085] Also, a temporary predicted sample of the current block is derived based on the filtered adjacent reference samples, and a predicted sample of the current block is derived by performing a weighted sum of at least one reference sample derived by the intra prediction mode among the existing adjacent reference samples, that is, the non-filtered adjacent reference samples, and the temporary predicted sample. In the above-mentioned case, it can be called PDPC (Position dependent intra prediction).

[0086] Also, the reference sample line with the highest prediction accuracy is selected from among the adjacent multiple reference sample lines of the current block, and a prediction sample is derived using the reference sample located in the prediction direction on the corresponding line. The reference sample line used at this time is signaled to the decoding device, and intra prediction coding can be performed in this way. In the case described above, it can be called multi-reference line intra prediction or MRL-based intra prediction.

[0087] Also, the current block can be divided into vertical or horizontal sub-partitions, and intra prediction is performed based on the same intra prediction mode. Adjacent reference samples can be derived and used in units of sub-partitions. That is, in this case, the intra prediction mode for the current block is also applied to the sub-partitions, and by deriving and using adjacent reference samples in units of sub-partitions, in some cases, the intra prediction performance can be improved. Such a prediction method can be called ISP (intra sub-partitions)-based intra prediction.

[0088] The intra prediction methods described above can be called intra prediction types, distinguished from the intra prediction modes. Intra prediction types can be called by various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction type (or additional intra prediction mode, etc.) can include at least one of the LIP, PDPC, MRL, and ISP described above. The general intra prediction method excluding specific intra prediction types such as the LIP, PDPC, MRL, and ISP can be called the normal intra prediction type. The normal intra prediction type can be generally applied when the above specific intra prediction types are not applicable, and prediction can be performed based on the intra prediction mode described above. On the other hand, if necessary, post-processing filtering can also be performed on the derived prediction samples.

[0089] Specifically, the intra prediction procedure can include an intra prediction mode / type determination step, an adjacent reference sample derivation step, and an intra prediction mode / type-based predicted sample derivation step. Further, if necessary, a post-filtering step for the derived predicted samples can also be performed.

[0090] When intra prediction is applied, the intra prediction mode applied to the current block can be determined using the intra prediction modes of neighboring blocks. For example, the decoding device can select one of the MPM (most probable mode) candidates in the MPM list derived based on the intra prediction modes of the neighboring blocks (e.g., left and / or upper neighboring blocks) of the current block and additional candidate modes according to the received MPM index, or can select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on the remaining intra prediction mode information. The MPM list can be configured to include or not include the planar mode as a candidate. For example, when the MPM list includes the planar mode as a candidate, the MPM list can have 6 candidates, and when the MPM list does not include the planar mode as a candidate, the MPM list can have 5 candidates. When the MPM list does not include the planar mode as a candidate, a not planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not the planar mode can be signaled. For example, if the MPM flag is signaled first, the MPM index and the not planar flag can be signaled when the value of the MPM flag is 1. Also, the MPM index can be signaled when the value of the not planar flag is 1. Here, the configuration that the MPM list does not include the planar mode as a candidate is to signal the flag (not planar flag) first to confirm whether it is the planar mode first because the planar mode is always considered as an MPM rather than not being an MPM.

[0091] For example, whether the intra prediction mode currently applied to a block is within the MPM candidates (and the planar mode) or within the remaining modes can be indicated based on the MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag can indicate that the intra prediction mode for the current block is within the MPM candidates (and the planar mode), and a value of 0 for the MPM flag can indicate that the intra prediction mode for the current block is not within the MPM candidates (and the planar mode). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) can indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 for the not planar flag can indicate that the intra prediction mode for the current block is not the planar mode. The MPM index can be signaled in the form of the mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information can be signaled in the form of the rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information can index the remaining intra prediction modes not included in the MPM candidates (and the planar mode) among the overall intra prediction modes in ascending order of the prediction mode numbers and point to one of them. The intra prediction mode can be the intra prediction mode for the luma component (samples). Hereinafter, the intra prediction mode information can include at least one of the MPM flag (e.g., intra_luma_mpm_flag), the not planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In this document, the MPM list can be referred to by various terms such as the MPM candidate list, candModeList, etc.When MIP (matrix-based intra prediction) is currently applied to a block, another mpm flag (e.g., intra_mip_mpm_flag), mpm index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) for MIP can be signaled, and the not planar flag is not signaled.

[0092] In other words, generally, when it comes to block partitioning of an image, the current block to be coded and neighboring blocks tend to have similar image characteristics. Therefore, the current block and neighboring blocks are likely to be identical to each other or have similar intra prediction modes. Thus, the encoder can use the intra prediction mode of neighboring blocks to encode the intra prediction mode of the current block.

[0093] For example, the encoder / decoder can construct a MPM (most probable modes) list for the current block. The MPM list can also be referred to as a MPM candidate list. Here, MPM can be defined as the mode used to improve coding efficiency by considering the similarity between the current block and neighboring blocks during intra prediction mode coding. As described above, the MPM list can be constructed to include the planar mode or to exclude the planar mode. For example, when the MPM list includes the planar mode, the number of candidates in the MPM list can be six. And when the MPM list does not include the planar mode, the number of candidates in the MPM list can be five. The encoder / decoder can construct a MPM list including five or six MPMs.

[0094] To construct the MPM list, three types of modes can be considered: Default intra modes, Neighbour intra modes, and Derved intra modes. At this time, for the Neighbour intra modes, two neighbouring blocks, namely the left neighbouring block and the upper neighbouring block, can be considered.

[0095] As described above, if the MPM list is configured to not include the planar mode, the planar mode is removed from the list, and the number of candidates for the MPM list can be set to five.

[0096] Also, among the intra prediction modes, the non-directional mode (or non-angle mode) can include the DC mode based on the average of the neighboring reference samples of the current block or the planar mode based on interpolation.

[0097] When inter prediction is applied, the prediction unit of the encoding / decoding device can derive prediction samples by performing inter prediction in block units. 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 (predicted 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 indicated by the reference picture index. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the adjacent block and the current block. The motion information can include a motion vector and a reference picture index. Also, the motion information can further include inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.) information. When inter prediction is applied, the adjacent blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block can be called by names such as collocated reference block and collocated CU (colCU), and the reference picture including the temporal neighboring block can also be called collocated picture (colPic).For example, a motion information candidate list can be configured based on adjacent blocks of a current block, and flag or index information indicating which candidate is selected (used) can be signaled to derive a motion vector and / or a reference picture index of the current block. Inter prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the motion information of the current block is the same as that of the selected adjacent block. In the case of skip mode, different from the merge mode, a residual signal is not transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the selected adjacent block can be used as a motion vector predictor, and a motion vector difference can be signaled. In this case, the motion vector of the current block can be derived by using the sum of the motion vector predictor and the motion vector difference.

[0098] The motion information can include L0 motion information and / or L1 motion information depending on the inter-prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). The motion vector in the L0 direction can be called the L0 motion vector or MVL0, and the motion vector in the L1 direction can be called the L1 motion vector or MVL1. The prediction based on the L0 motion vector can be called L0 prediction, the prediction based on the L1 motion vector can be called L1 prediction, and the prediction based on both the L0 motion vector and the L1 motion vector can be called the dual (Bi) prediction. Here, the L0 motion vector can indicate the motion vector related to the reference picture list L0 (L0), and the L1 motion vector can indicate the motion vector related to the reference picture list L1 (L1). The reference picture list L0 can include the pictures before the current picture in the output order as reference pictures, and the reference picture list L1 can include the pictures after the current picture in the output order. The previous pictures can be called forward (reference) pictures, and the subsequent pictures can be called backward (reference) pictures. The reference picture list L0 can further include the pictures after the current picture in the output order as reference pictures. In this case, the previous pictures can be indexed first within the reference picture list L0, and the subsequent pictures can be indexed next. The reference picture list L1 can further include the pictures before the current picture in the output order as reference pictures. In this case, the subsequent pictures can be indexed first within the reference picture list L1, and the previous pictures can be indexed next. Here, the output order can correspond to the POC (picture order count) order (order).

[0099] FIG. 4 shows an example of a schematic video / image encoding method to which the embodiments of this document are applicable.

[0100] The method disclosed in FIG. 4 can be performed by the encoding apparatus 200 of FIG. 2 described above. Specifically, S400 can be performed by the inter prediction unit 221 or the intra prediction unit 222 of the encoding apparatus 200, and S410, S420, S430, and S440 can be performed by the subtraction unit 231, the conversion unit 232, the quantization unit 233, and the entropy encoding unit 240 of the encoding apparatus 200, respectively.

[0101] As shown in FIG. 4, the encoding apparatus can derive a prediction sample through prediction for the current block (S400). The encoding apparatus can determine whether to perform inter prediction or intra prediction on the current block, and can determine a specific inter prediction mode or a specific intra prediction mode based on the RD cost. According to the determined mode, the encoding apparatus can derive a prediction sample for the current block.

[0102] The encoding apparatus can compare the original sample and the prediction sample for the current block to derive a residual sample (S410).

[0103] The encoding apparatus can derive conversion coefficients through a conversion procedure for the residual sample (S420), and can quantize the derived conversion coefficients to derive quantized conversion coefficients (S430).

[0104] The encoding apparatus can encode image information including prediction information and residual information, and can output the encoded image information in the form of a bit stream (S440). The prediction information is information related to the prediction procedure, and can include prediction mode information and information related to motion information (e.g., when inter prediction is applied). The residual information can include information related to the quantized conversion coefficients. The residual information can be entropy encoded.

[0105] The output bitstream can be transmitted to a decoding device via a storage medium or a network.

[0106] FIG. 5 shows an example of a schematic video / image decoding method to which the embodiments of this document are applicable.

[0107] The method disclosed in FIG. 5 can be performed by the decoding device 300 of FIG. 3 described above. Specifically, S500 can be performed by the inter prediction unit 332 or the intra prediction unit 331 of the decoding device 300. The procedure of decoding the prediction information included in the bitstream in S500 to derive the value of the related syntax element can be performed by the entropy decoding unit 310 of the decoding device 300. S510, S520, S530, and S540 can be performed by the entropy decoding unit 310, the inverse quantization unit 321, the inverse transform unit 322, and the addition unit 340 of the decoding device 300, respectively.

[0108] As shown in FIG. 5, the decoding device can perform operations corresponding to the operations performed by the encoding device. The decoding device can perform inter prediction or intra prediction on the current block based on the received prediction information and derive a prediction sample (S500).

[0109] The decoding device can derive the quantized transform coefficients for the current block based on the received residual information (S510). The decoding device can derive the quantized transform coefficients from the residual information through entropy decoding.

[0110] The decoding device can inverse quantize the quantized transform coefficients to derive the transform coefficients (S520).

[0111] The decoding device derives the residual samples through an inverse transform procedure for the transform coefficients (S530).

[0112] The decoding device can generate a restored sample for the current block based on the predicted sample and the residual sample, and generate a restored picture based on this (S540). Thereafter, as described above, an in-loop filtering procedure can be further applied to the restored picture.

[0113] On the other hand, as described above, the quantization unit of the encoding device can derive quantized transform coefficients by applying quantization to the transform coefficients, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can derive the transform coefficients by applying inverse quantization to the quantized transform coefficients.

[0114] Generally, in video / image coding, the quantization rate can be changed, and compression can be adjusted using the changed quantization rate. From the perspective of implementation, instead of directly using the quantization rate considering complexity, a quantization parameter (QP) can be used. For example, an integer-valued quantization parameter from 0 to 63 can be used, and each quantization parameter value can correspond to an actual quantization rate. The quantization parameter (QP Y ) for the luma component (luma sample) and the quantization parameter (QP C ) for the chroma component (chroma sample) can be set differently.

[0115] The quantization process takes the transform coefficient (C) as input, divides it by the quantization rate (Q step ), and based on this, the quantized transform coefficient (C`) can be obtained. At this time, considering the computational complexity, the quantization rate can be multiplied by a scale to make it in integer form, and a shift operation can be performed for a value corresponding to the scale value. A quantization scale can be derived based on the multiplication of the quantization rate and the scale value. That is, the quantization scale can be derived by QP. The quantization scale can also be applied to the transform coefficient (C), and based on this, the quantized transform coefficient (C`) can be derived.

[0116] The inverse quantization process is the inverse process of the quantization process, where the quantized conversion coefficient (C`) is multiplied by the quantization rate (Q step ) to obtain the restored conversion coefficient (C``) based on this. In this case, the level scale can be derived from the quantization parameter, and the level scale is applied to the quantized conversion coefficient (C`), and the restored conversion coefficient (C``) can be derived based on this. The restored conversion coefficient (C``) is somewhat different from the original conversion coefficient (C) due to the loss in the conversion and / or quantization process. Therefore, the encoding device also performs inverse quantization in the same way as the decoding device.

[0117] In addition, an adaptive frequency weighting quantization technique for adjusting quantization intensity according to frequency can be applied. The adaptive frequency weighting quantization technique is a method of applying different quantization intensities for different frequencies. Adaptive frequency weighting quantization can apply different quantization intensities for different frequencies using a predefined quantization scaling matrix. That is, the quantization / inverse quantization process described above can be further executed based on the quantization scaling matrix. For example, different quantization scaling matrices can be used depending on whether the prediction mode applied to the current block is inter prediction or intra prediction in order to generate the size of the current block and / or the residual signal of the current block. The quantization scaling matrix can be referred to as a quantization matrix or a scaling matrix. The quantization scaling matrix can be predefined. Also, for frequency adaptive scaling, frequency-by-frequency quantization scale information for the quantization scaling matrix can be configured / encoded in the encoding device and signaled to the decoding device. The frequency-by-frequency quantization scale information can be referred to as quantization scaling information. The frequency-by-frequency quantization scale information can include scaling_list_data. A (modified) quantization scaling matrix can be derived based on the scaling_list_data. Also, the frequency-by-frequency quantization scale information can include present flag information indicating the presence or absence of the scaling_list_data. Or, when the scaling_list_data is signaled at a higher level (e.g., SPS), information indicating whether the scaling_list_data is modified at a lower level (e.g., PPS or tile group header etc) can be further included.

[0118] As described above, the scaling list data can be signaled to indicate the scaling matrix (frequency-based quantization) used for quantization / inverse quantization.

[0119] Signaling support for default and user-defined scaling matrices exists in the HEVC standard and has now been adopted in the VVC standard. However, for the VVC standard, additional support for signaling the following functions has been integrated.

[0120] - Three modes for the scaling matrix: OFF, DEFAULT, USER_DEFINED

[0121] - Larger size ranges for blocks (4×4 to 64×64 for luma, 2×2 to 32×32 for chroma)

[0122] - Quadrangular transform blocks (TBs)

[0123] - Dependent quantization

[0124] - Multiple Tranform Selection (MTS)

[0125] - Transforms that zero out high frequency coefficients

[0126] - Intra sub-block partitioning (ISP)

[0127] - Intra Block Copy (IBC) (also currently referred to as current picture referencing (CPR))

[0128] - DEFAULT scaling matrix for all TB sizes, default value is 16

[0129] It should be noted that the scaling matrix should not be applied to Transform Skip (TS) and Secondary Transform (ST) for all sizes.

[0130] Below, the High Level Syntax (HSL) structure for supporting the scaling list in the VVC standard is described in detail. First, a flag can be signaled via the Sequence Parameter Set (SPS) to indicate that the scaling list is available for the currently decoded coded video sequence (CVS). Next, if the flag is available, an additional flag can be parsed to indicate whether specific data exists in the scaling list in the SPS. This can be shown as in Table 1.

[0131] Table 1 is excerpted from the SPS to explain the scaling list for the CVS.

[0132]

Table 1

[0133] The semantics of the syntax elements included in the SPS syntax of Table 1 above can be shown as in Table 2 below.

[0134]

Table 2

[0135] Referring to Table 1 and Table 2 above, the scaling_list_enabled_flag can be signaled from the SPS. For example, when the value of the scaling_list_enabled_flag is 1, it can indicate that the scaling list is used in the scaling process for the conversion coefficients; when the value of the scaling_list_enabled_flag is 0, it can indicate that the scaling list is not used in the scaling process for the conversion coefficients. At this time, when the value of the scaling_list_enabled_flag is 1, the sps_scaling_list_data_present_flag can be further signaled from the SPS. For example, when the value of the sps_scaling_list_data_present_flag is 1, it indicates that the scaling_list_data() syntax structure exists in the SPS; when the value of the sps_scaling_list_data_present_flag is 0, it can indicate that the scaling_list_data() syntax structure does not exist in the SPS. If the sps_scaling_list_data_present_flag does not exist, the value of the sps_scaling_list_data_present_flag can be analogized to 0.

[0136] Also, a flag (e.g., pps_scaling_list_data_present_flag) can be parsed first in the Picture Parameter Set (PPS). If this flag is available, the scaling_list_data() can be parsed in the PPS. If the scaling_list_data() exists in the SPS first and is then parsed in the PPS, the data in the PPS can take precedence over the data in the SPS. Table 3 below is excerpted from the PPS to illustrate the scaling list data.

[0137]

Table 3

[0138] The semantics of the syntax elements included in the PPS syntax of Table 3 above can be shown as in Table 4 below.

[0139]

Table 4

[0140] Referring to Table 3 and Table 4 above, pps_scaling_list_data_present_flag can be signaled from PPS. For example, when the value of pps_scaling_list_data_present_flag is 1, it can be indicated that the scaling list data used for the picture referring to PPS is derived based on the scaling list specified by the active SPS and the scaling list specified by PPS. When the value of pps_scaling_list_data_present_flag is 0, it can be indicated that the scaling list data used for the picture referring to PPS is presumed to be the same as the scaling list specified by the active SPS. At this time, when the value of scaling_list_enabled_flag is 0, the value of pps_scaling_list_data_present_flag must be 0. When the value of scaling_list_enabled_flag is 1, the value of sps_scaling_list_data_present_flag is 0, and the value of pps_scaling_list_data_present_flag is 0, as described in the scaling list data semantics, the default scaling list data can be used to derive the Scaling Factor array.

[0141] The scaling list can be defined in the VVC standard for the following quantization matrix sizes. This can be shown as in Table 5 below. The support range for the quantization matrix was extended in the HEVC standard to include 2×2 and 64×64 in addition to 4×4, 8×8, 16×16, and 32×32.

[0142]

Table 5

[0143] Table 5 above defines the sizeId for all quantization matrix sizes used. Using the combinations described above, matrixIds can be assigned for different combinations of sizeId, the prediction mode of the coding unit (CuPredMode), and color components. Here, the CuPredModes that can be considered are Inter, Intra, and IBC (Intra Block Copy). The Intra mode and the IBC mode can also be treated the same. Therefore, the same matrixId(s) can be shared for a given color component. Here, the color components that can be considered are Luma (Y) and two color components (Cb and Cr). The assigned matrixIds can be shown as in Table 6 below.

[0144] Table 6 shows the matrixIds according to sizeId, prediction mode, and color component.

[0145]

Table 6

[0146] Table 7 below shows an example of the syntax structure for the scaling list data (e.g., scaling_list_data()).

[0147]

Table 7

[0148] The semantics of the syntax elements included in the syntax of Table 7 above can be shown as in Table 8 below.

[0149]

Table 8-1

[0150]

Table 8-2

[0151] Referring to Table 7 and Table 8 above, in order to extract scaling list data (e.g., scaling_list_data()), for all sizeIds from 1 to 6 and matrixIds from 0 to 5, the scaling list data can be applied to the 2×2 chroma components and 64×64 luma components. Next, a flag (e.g., scaling_list_pred_mode_flag) can be parsed to indicate whether the value of the scaling list is the same as the value of the reference scaling list. The reference scaling list is indicated by scaling_list_pred_matrix_id_delta[sizeId][matrixId]. However, when scaling_list_pred_mode_flag[sizeId][matrixId] is 1, the scaling list data can be signaled explicitly. When scaling_list_pred_matrix_id_delta is 0, a DEFAULT mode with default values can be used as shown in Tables 9 to 12. When scaling_list_pred_matrix_id_delta is other values, refMatrixId can be determined first as shown in the semantics of Table 8 above.

[0152] In explicit signaling, i.e., in USER_DEFINED mode, the maximum number of coefficients to be signaled can be determined in advance. For quantization block sizes of 2x2, 4x4, and 8x8, all coefficients can be signaled. For sizes larger than 8x8, i.e., 16x16, 32x32, and 64x64, only 64 coefficients can be signaled. That is, an 8x8 base matrix is signaled, and the remaining coefficients can be upsampled from the base matrix.

[0153] Table 9 below is an example showing the default values of ScalingList[1][matrixId][i] (i=0..3).

[0154] [Table 9]

[0155] Table 10 below is an example showing the default values of ScalingList[2][matrixId][i] (i=0..15).

[0156] [Table 10]

[0157] Table 11 below is an example showing the default values for ScalingList[3..5][matrixId][i] (i=0..63).

[0158] [Table 11]

[0159] Table 12 below is an example showing the default values of ScalingList[6][matrixId][i] (i=0..63).

[0160] [Table 12]

[0161] As described above, the default scaling list data can be used to derive a scaling factor (Scaling Factor).

[0162] The scaling factor ScalingFactor[sizeId][sizeId][matrixId][x][y] of a 5D array (where x, y = 0..(1<<sizeId)-1) can represent an array of scaling factors depending on the variable sizeId shown in Table 5 above and the variable matrixId shown in Table 6 above.

[0163] The following Table 13 shows an example of deriving a scaling factor based on the quantization matrix size according to the aforementioned default scaling list.

[0164]

Table 13-1

[0165]

Table 13-2

[0166] For a quantization matrix of rectangle size, the scaling factor ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y] of a 5D array (where x = 0..(1<<sizeIdW)-1, y = 0..(1<<sizeIdH)-1, sizeIdW!= sizeIdH) can represent an array of scaling factors depending on the variables sizeIdW and sizeIdH shown in Table 15 below and can be derived as shown in Table 14 below.

[0167]

Table 14

[0168] The quantization matrix of the quadrilateral size must be set to zero for samples that satisfy the following conditions.

[0169] -x > 32

[0170] -y > 32

[0171] - The decoded TU is not coded in the default transform mode, (1 << sizeIdW) == 32 and x > 16

[0172] - The decoded TU is not coded in the default transform mode, (1 << sizeIdH) == 32 and y > 16

[0173] The following Table 15 is an example showing sizeIdW and sizeIdH according to the quantization matrix size.

[0174]

Table 15

[0175] Also, as an example, the above-mentioned scaling list data (e.g., scaling_list_data()) can be described based on the syntax structure as shown in the following Table 16 and the semantics as shown in the following Table 17. As described above based on the syntax elements included in the scaling list data (e.g., scaling_list_data()) disclosed in Table 16 and Table 17, the scaling list, scaling matrix, scaling factor, etc. can be derived, and this process is the same as or similar procedures can be applied to those in the above-mentioned Tables 5 to 15.

[0176]

Table 16

[0177]

Table 17-1

[0178]

Table 17-2

[0179] Hereinafter, in this document, a method for efficiently signaling scaling list data is proposed for applying the adaptive frequency-weighted quantization technique in the quantization / inverse quantization process.

[0180] FIG. 6 exemplarily shows a hierarchical structure for a coded image / video.

[0181] As shown in FIG. 6, the coded image / video is divided into a VCL (video coding layer) that performs the decoding process of the image / video and handles itself, a lower system that transmits and stores the encoded information, and a NAL (network abstraction layer) that exists between the VCL and the lower system and is responsible for the network adaptation function.

[0182] In the VCL, VCL data including compressed image data (slice data) can be generated, or parameter sets including information such as a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), and a Video Parameter Set (VPS), or SEI (Supplemental Enhancement Information) messages additionally required in the decoding process of the image can be generated.

[0183] In the NAL, a NAL unit can be generated by adding header information (NAL unit header) to the RBSP (Raw Byte Sequence Payload) generated by the VCL. At this time, the RBSP means slice data, parameter set, SEI message, etc. generated by the VCL. The NAL unit header can include NAL unit type information specified by the RBSP data included in the NAL unit.

[0184] Also, the NAL unit can be divided into a VCL NAL unit and a Non-VCL NAL unit according to the RBSP generated by the VCL. The VCL NAL unit can mean a NAL unit including information (slice data) for an image, and the Non-VCL NAL unit can mean a NAL unit including information (parameter set or SEI message) necessary for decoding an image.

[0185] The VCL NAL unit and the Non-VCL NAL unit can be transmitted via a network with header information attached according to the data standard of the lower system. For example, the NAL unit can be transformed into a data form of a predetermined standard such as the H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc. and transmitted via various networks.

[0186] As described above, the NAL unit type can be specified by the RBSP data structure included in the NAL unit, and information about such a NAL unit type can be stored in the NAL unit header and signaled.

[0187] For example, depending on whether the NAL unit contains information (slice data) for an image, it can be broadly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture contained in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of parameter set, etc.

[0188] The following is an example of the NAL unit type specified according to the type of parameter set included in the Non-VCL NAL unit type, etc.

[0189] - APS (Adaptation Parameter Set) NAL unit: The type for the NAL unit containing APS

[0190] - DPS (Decoding Parameter Set) NAL unit: The type for the NAL unit containing DPS

[0191] - VPS (Video Parameter Set) NAL unit: The type for the NAL unit containing VPS

[0192] - SPS (Sequence Parameter Set) NAL unit: The type for the NAL unit containing SPS

[0193] - PPS (Picture Parameter Set) NAL unit: The type for the NAL unit containing PPS

[0194] - PH (Picture header) NAL unit: The type for the NAL unit containing PH

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

[0196] On the other hand, as described above, one picture can include a plurality of slices, and one slice can include a slice header and slice data. In this case, one picture header can be further added for a plurality of slices (a set of slice headers and slice data) within one picture. The picture header (picture header syntax) can include information / parameters that are commonly applicable to the picture. In this document, a tile group can be used interchangeably or substituted for a slice or a picture. Also, in this document, a tile group header can be used interchangeably or substituted for a slice header or a picture header.

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

[0198] In this document, the image / video information encoded from an encoding device and signaled in bitstream form to a decoding device can include not only information related to partitioning within a picture, intra / inter prediction information, residual information, in-loop filtering information, etc., but also information included in the slice header, information included in the picture header, information included in APS, information included in PPS, information included in SPS, information included in VPS, and / or information included in DPS. Further, the image / video information can further include information of the NAL unit header.

[0199] On the one hand, the APS (Adaptation Parameter Set) is used to transmit information for the ALF (Adaptive Loop Filter) and LMCS (Luma Mapping with Chroma Scaling) procedures in the VVC standard. Also, the APS has an extensible structure so that it can be used to transmit other data structures (i.e., other syntax structures). Accordingly, this document proposes a method of parsing / signaling scaling list data used for frequency-dependent weighted quantization via the APS.

[0200] As described above, the scaling list data is quantization scale information for frequency-dependent weighted quantization that can be applied in the quantization / inverse quantization process, and is a list that associates scale factors with each frequency index.

[0201] As an embodiment, Table 18 below shows an example of the APS (adaptation parameter set) structure used to transmit scaling list data.

[0202]

Table 18

[0203] The semantics of the syntax elements included in the APS syntax of Table 18 above can be shown as in Table 19 below.

[0204]

Table 19

[0205] Referring to Table 18 and Table 19 above, the adaptation_parameter_set_id syntax element can be parsed / signaled in the APS. The adaptation_parameter_set_id provides an identifier for the APS for reference of other syntax elements. That is, the APS can be identified based on the adaptation_parameter_set_id syntax element. The adaptation_parameter_set_id syntax element can be called APS ID information. The APS can be shared between pictures and may be different in other tile groups within a picture.

[0206] Also, the aps_params_type syntax element can be parsed / signaled in the APS. The aps_params_type can indicate the type of APS parameters transmitted in the APS, as shown in Table 18 below. The aps_params_type syntax element can be called APS parameter type information or APS type information.

[0207] For example, Table 20 below is an illustration showing the types of APS parameters that can be transmitted via the APS, and each APS parameter type can be shown corresponding to the value of aps_params_type.

[0208]

Table 20

[0209] Referring to Table 20 above, aps_params_type is a syntax element for classifying the type of the APS. When the value of aps_params_type is 0, the APS type is ALF_APS, and the APS can carry ALF data, and the ALF data can include ALF parameters for deriving filters / filter coefficients. When the value of aps_params_type is 1, the APS type is LMCS_APS, and the APS can carry LMCS data, and the LMCS data can include LMCS parameters for deriving LMCS models / bin / mapping indexes. When the value of aps_params_type is 2, the APS type is SCALING_APS, and the APS can carry SCALING list data, and the SCALING list data can include SCALING list data parameters for deriving frequency-based quantization scaling matrices / scaling factors / scaling list values.

[0210] For example, as shown in Table 18 above, the aps_params_type syntax element can be parsed / signaled in the APS. At this time, when the value of aps_params_type indicates 0 (i.e., when aps_params_type indicates ALF_APS), ALF data (i.e., alf_data()) can be parsed / signaled. Or, when the value of aps_params_type indicates 1 (i.e., when aps_params_type indicates LMCS_APS), LMCS data (i.e., lmcs_data()) can be parsed / signaled. Or, when the value of aps_params_type indicates 2 (i.e., when aps_params_type indicates SCALING_APS), SCALING list data (i.e., scaling_list_data()) can be parsed / signaled.

[0211] Also, referring to Table 18 and Table 19, the aps_extension_flag syntax element can be parsed / signaled in APS. The aps_extension_flag can indicate whether the APS extension data flag (aps_extension_data_flag) syntax element exists. The aps_extension_flag can be used, for example, to provide an extension point for future versions of the VVC standard. The aps_extension_flag syntax element can be called the APS extension flag. For example, when the value of aps_extension_flag is 0, it can indicate that the APS extension data flag (aps_extension_data_flag) does not exist in the APS RBSP syntax structure. Or, when the value of aps_extension_flag is 1, it can indicate that the APS extension data flag (aps_extension_data_flag) exists in the APS RBSP syntax structure.

[0212] Based on the aps_extension_flag syntax element, the aps_extension_data_flag syntax element can be parsed / signaled. The aps_extension_data_flag syntax element can be called the APS extension data flag. For example, when the value of aps_extension_flag is 1, the aps_extension_data_flag can be parsed / signaled, and at this time, the aps_extension_data_flag can have any value.

[0213] As described above, according to one embodiment of the present document, by allocating a data type (e.g., SCALING_APS) for indicating scaling list data and parsing / signaling a syntax element (e.g., aps_params_type) indicating the data type, the scaling list data can be efficiently carried. That is, according to one embodiment of the present document, the structure of APS integrated with the scaling list data can be used.

[0214] On one hand, in the current VVC standard, the use of scaling list data (i.e., scaling_list_data()) can be first indicated based on whether there is a flag (i.e., sps_scaling_list_enabled_flag) in the SPS (Sequence Parameter Set) indicating the availability of the scaling list data. If the flag (i.e., sps_scaling_list_enabled_flag) is enabled (i.e., indicating that the scaling list data is available, which is 1 or true), another flag (i.e., sps_scaling_list_data_present_flag) can be parsed. Also, when sps_scaling_list_data_present_flag is enabled (i.e., indicating that the scaling list data exists in the SPS, which is 1 or true), the scaling list data (i.e., scaling_list_data()) can be parsed. That is, in the current VVC standard, the scaling list data is signaled in the SPS. In this case, since the SPS enables session negotiation and is generally transmitted out-of-band, it can be used during the decoding process, and it is not necessary to transmit the scaling list data with information related to the determination of the scaling factor of the transform block. When the decoder transmits the scaling list data in the SPS, the decoder needs to allocate a significant amount of memory to store the information obtained from the scaling list data and also needs to maintain the information until it is used in the transform block decoding. Therefore, such a process is unnecessary at the SPS level, and it is more effective to be parsed / signaled at a lower level. Thus, this document proposes a hierarchical structure to effectively parse / signaling the scaling list data.

[0215] As one embodiment, it is made possible to parse / signal scaling list data with a lower-level syntax such as PPS, tile group header, slice header, and / or other appropriate headers, without parsing / signaling it from the SPS which is a higher-level syntax.

[0216] For example, the SPS syntax can be modified as shown in Table 21 below. Table 19 below shows an example of the SPS syntax for explaining the scaling list for CVS.

[0217] [Table 21]

[0218] The semantics of the syntax elements included in the SPS syntax of Table 21 above can be shown as in Table 22 below.

[0219] [Table 22]

[0220] Referring to Table 21 and Table 22 above, the scaling_list_enabled_flag syntax element can be parsed / signaled in the SPS. The scaling_list_enabled_flag syntax element can indicate whether the scaling list is available based on whether its value is 0 or 1. For example, when the value of scaling_list_enabled_flag is 1, it indicates that the scaling list is used in the scaling process for the conversion coefficient, and when the value of scaling_list_enabled_flag is 0, it can indicate that the scaling list is not used in the scaling process for the conversion coefficient.

[0221] That is, the scaling_list_enabled_flag syntax element can be called the scaling list availability flag and can be signaled at the SPS (or SPS level). That is, based on the value of scaling_list_enabled_flag signaled at the SPS level, it can be determined that the scaling list is basically available for the pictures in the CVS referring to the SPS. Then, additional availability flags can be signaled at a level lower than the SPS (e.g., PPS, tile group header, slice header, and / or other appropriate headers) to obtain the scaling list.

[0222] Also, the sps_scaling_list_data_present_flag syntax element can be not parsed / signaled in the SPS. That is, by removing the sps_scaling_list_data_present_flag syntax element in the SPS, this flag information can be made not to be parsed / signaled. The sps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the SPS, and according to this flag information, the scaling list data specified by the SPS can be parsed / signaled. However, by removing the sps_scaling_list_data_present_flag syntax element, at the SPS level, the scaling list data can be made not to be parsed / signaled.

[0223] As described above, according to one embodiment of this document, at the SPS level, instead of directly signaling the scaling_list_data(), it can be configured to explicitly signal only the scaling_list_enabled_flag. Subsequently, based on the available flag (scaling_list_enabled_flag) in the SPS, the scaling_list_data() can be individually parsed in the lower-level syntax. Therefore, according to one embodiment of this document, since the scaling list data can be parsed / signaled by a hierarchical structure, the coding efficiency can be improved.

[0224] On the other hand, the presence and use of the scaling list data are conditional on the presence of the tool enabling flag. Here, the tool enabling flag is information indicating whether to enable the corresponding tool and can include, for example, the scaling_list_enabled_flag syntax element. That is, the scaling_list_enabled_flag syntax element can be used to indicate whether to enable the scaling list by indicating the availability of the scaling list data. However, this tool should have syntax constraints for the decoder. That is, this tool should have a constraint flag that informs the decoder that it is not currently used for decoding the CVS (coded video sequence). Therefore, this document proposes a method for applying the constraint flag to the scaling list data.

[0225] As one embodiment, Table 23 below shows an example of the syntax (e.g., general constraint information syntax) for signaling the scaling list data using the constraint flag.

[0226]

Table 23

[0227] The semantics of the syntax elements included in the syntax of Table 23 above can be shown as in Table 22 below.

[0228]

Table 24

[0229] Referring to Table 23 and Table 24 above, the restriction flag can be parsed / signaled via general_constraint_info(). general_constraint_info() is called information regarding the general restriction information field or the restriction flag. For example, the no_scaling_list_constraint_flag syntax element can be used as a restriction flag. Here, the restriction flag can be used to specify the conformance bitstream properties. For example, when the value of the no_scaling_list_constraint_flag syntax element is 1, it indicates the bitstream conformance requirement that scaling_list_enabled_flag should be specified as 0, and when the value of the no_scaling_list_constraint_flag syntax element is 0, it can indicate that there is no restriction.

[0230] On the other hand, as described above, according to an embodiment of this document, the scaling list data can be transmitted via a hierarchical structure. Thereby, this document proposes a structure of the scaling list data that can be parsed / signaled via a slice header. Here, the slice header can also be called a tile group header, or can be mixed or substituted in the picture header.

[0231] As an embodiment, Table 25 below shows an example of slice header syntax for signaling scaling list data.

[0232]

Table 25

[0233] The semantics of the syntax elements included in the slice header syntax of Table 25 above can be shown as in Table 26 below.

[0234]

Table 26

[0235] Referring to Table 25 and Table 26 above, the slice_pic_parameter_set_id syntax element can be parsed / signaled in the slice header. The slice_pic_parameter_set_id syntax element can indicate an identifier for the PPS in use. That is, the slice_pic_parameter_set_id syntax element is information for identifying the PPS referred to in the slice and can indicate the value of pps_pic_parameter_set_id. The value of slice_pic_parameter_set_id must be within the range of 0 to 63. The slice_pic_parameter_set_id syntax element can be referred to as PPS identification information or PPS ID information referred to in the slice.

[0236] Also, the slice_scaling_list_enabled_flag syntax element can be parsed / signaled in the slice header. The slice_scaling_list_enabled_flag syntax element can indicate whether a scaling list is available in the current slice. For example, if the value of slice_scaling_list_enabled_flag is 1, it can indicate that the scaling list is available in the current slice, and if the value of slice_scaling_list_enabled_flag is 0, it can indicate that the scaling list is not available in the current slice. Or, if slice_scaling_list_enabled_flag does not exist in the slice header, its value can be inferred to be 0.

[0237] At this time, the parsing availability of the slice_scaling_list_enabled_flag syntax element can be determined based on the scaling_list_enabled_flag syntax element signaled in the upper-level syntax (i.e., SPS). For example, if the value of scaling_list_enabled_flag signaled in the SPS is 1 (i.e., when it is determined that scaling list data is available at the upper level), the slice_scaling_list_enabled_flag in the slice header can be parsed to determine whether to perform the scaling process using the scaling list in the slice.

[0238] Also, the slice_scaling_list_aps_id syntax element can be parsed / signaled in the slice header. The slice_scaling_list_aps_id syntax element can indicate an identifier for the APS referenced in the slice. That is, the slice_scaling_list_aps_id syntax element can indicate the ID information (adaptation_parameter_set_id) of the APS containing the scaling list data referenced in the slice. On the other hand, the TemporalId (i.e., TemporalID) of the APS NAL unit having the same APS ID information (adaptation_parameter_set_id) as slice_scaling_list_aps_id (i.e., the APS NAL unit containing the scaling list data) must be less than or equal to the TemporalId (i.e., TemporalID) of the slice NAL unit being coded.

[0239] Also, the parsing availability of the slice_scaling_list_aps_id syntax element can be determined based on the slice_scaling_list_enabled_flag syntax element. For example, when the value of slice_scaling_list_aps_id is 1 (i.e., when it is determined that the scaling list is available in the slice header), slice_scaling_list_aps_id can be parsed. Thereafter, the scaling list data can be obtained from the APS indicated by the parsed slice_scaling_list_aps_id.

[0240] Also, when multiple SCALING DATA APSs (multiple APSs including scaling list data) having the same value of APS ID information (adaptation_parameter_set_id) are referenced by two or more slices within the same picture, the multiple SCALING DATA APSs having the same value of APS ID information (adaptation_parameter_set_id) must contain the same content.

[0241] Also, when the above-described syntax elements exist, the values of each of the slice header syntax elements slice_pic_parameter_set_id, slice_pic_order_cnt_lsb, and slice_temporal_mvp_enabled_flag must be the same for all slice headers within the coded picture.

[0242] As described above, according to one embodiment of this document, a hierarchical structure can be used to efficiently signal scaling list data. That is, a validity flag (e.g., scaling_list_enabled_flag) indicating the availability of scaling list data is signaled first at a higher level (SPS syntax), and then, at lower levels (e.g., slice header, picture header, etc.), an additional validity flag (e.g., slice_scaling_list_enabled_flag) is signaled to determine whether to use the scaling list data at each lower level. Also, the APS ID information (e.g., slice_scaling_list_aps_id) referenced by the slice or tile group is signaled via a lower level (e.g., slice header, picture header, etc.), and the scaling list data can be derived from the APS identified by the APS ID information.

[0243] In addition, this document can also be applied as proposed in Tables 23 and 24 described above when signaling scaling list data in a hierarchical structure, and can also transmit scaling list data through the structure of a slice header as shown in Table 25 below.

[0244] As an embodiment, Table 27 below shows an example of a slice header syntax for signaling scaling list data. Here, the slice header can also be called a tile group header, or can be mixed or replaced in the picture header.

[0245]

Table 27

[0246] The semantics of the syntax elements included in the slice header syntax of Table 27 above can be shown as in Table 28 below.

[0247]

Table 28

[0248] Referring to Tables 27 and 28 above, the slice_pic_parameter_set_id syntax element can be parsed / signaled in the slice header. The slice_pic_parameter_set_id syntax element can indicate an identifier for the PPS in use. That is, the slice_pic_parameter_set_id syntax element is information for identifying the PPS referred to in the slice, and can indicate the value of pps_pic_parameter_set_id. The value of slice_pic_parameter_set_id must be within the range of 0 to 63. The slice_pic_parameter_set_id syntax element can be referred to as slice reference PPS identification information or PPS ID information.

[0249] Also, the slice_scaling_list_aps_id syntax element can be parsed / signaled in the slice header. The slice_scaling_list_aps_id syntax element can indicate an identifier for the APS referred to in the slice. That is, the slice_scaling_list_aps_id syntax element can indicate the ID information (adaptation_parameter_set_id) of the APS containing the scaling list data referred to in the slice. As an example, the TemporalId (i.e., TemporalID) of the APS NAL unit having the same APS ID information (adaptation_parameter_set_id) as slice_scaling_list_aps_id (i.e., the APS NAL unit containing the scaling list data) must be less than or equal to the TemporalId (i.e., TemporalID) of the slice NAL unit being coded.

[0250] At this time, the parsing availability of the slice_scaling_list_aps_id syntax element can be determined based on the scaling_list_enabled_flag syntax element signaled in the upper-level syntax (i.e., SPS). For example, when the value of the scaling_list_enabled_flag signaled in the SPS is 1 (i.e., when it is determined that the scaling list data is available at the upper level), slice_scaling_list_aps_id can be parsed in the slice header. Thereafter, the scaling list data can be obtained from the APS indicated by the parsed slice_scaling_list_aps_id.

[0251] That is, according to this embodiment, the APS ID including the scaling list data can be parsed when the corresponding flag in the SPS (e.g., scaling_list_enabled_flag) is enabled. Therefore, as shown in Table 25 described above, based on the scaling_list_enabled_flag syntax element signaled at the upper-level syntax (i.e., SPS), the APS ID (e.g., slice_scaling_list_aps_id) information including the scaling list data referenced at the corresponding lower level (e.g., slice header or picture header) can be parsed.

[0252] In addition, this document proposes a method for using multiple APSs to signal scaling list data. In the following, a method for efficiently signaling multiple APS IDs including scaling list data according to an embodiment of this document will be described. This method is useful during bitstream merge.

[0253] As an embodiment, Table 29 below shows an example of the slice header syntax for signaling scaling list data using multiple APSs. Here, the slice header can also be called a tile group header, or can be mixed or substituted in the picture header.

[0254]

Table 29

[0255] The semantics of the syntax elements included in the slice header syntax of Table 29 above can be shown as in Table 30 below.

[0256]

Table 30

[0257] Referring to Table 29 and Table 30 above, the slice_pic_parameter_set_id syntax element can be parsed / signaled in the slice header. The slice_pic_parameter_set_id syntax element can indicate an identifier for the PPS that is in use. That is, the slice_pic_parameter_set_id syntax element is information for identifying the PPS referred to in the slice and can indicate the value of pps_pic_parameter_set_id. The value of slice_pic_parameter_set_id must be within the range of 0 to 63. The slice_pic_parameter_set_id syntax element can be referred to as PPS identification information or PPS ID information referred to in the slice.

[0258] Also, the slice_scaling_list_enabled_flag syntax element can be parsed / signaled in the slice header. The slice_scaling_list_enabled_flag syntax element can indicate whether a scaling list is available in the current slice. For example, when the value of slice_scaling_list_enabled_flag is 1, it can indicate that the scaling list is available in the current slice, and when the value of slice_scaling_list_enabled_flag is 0, it can indicate that the scaling list is not available in the current slice. Or, when slice_scaling_list_enabled_flag does not exist in the slice header, its value can be analogized to 0.

[0259] At this time, the parsing availability of the slice_scaling_list_enabled_flag syntax element can be determined based on the scaling_list_enabled_flag syntax element signaled in the upper-level syntax (i.e., SPS). For example, when the value of scaling_list_enabled_flag signaled in the SPS is 1 (i.e., when it is determined that scaling list data is available at the upper level), the slice_scaling_list_enabled_flag can be parsed in the slice header to determine whether to perform the scaling process using the scaling list in the slice.

[0260] Also, the num_scaling_list_aps_ids_minus1 syntax element can be parsed / signaled in the slice header. The num_scaling_list_aps_ids_minus1 syntax element is information for indicating the number of APSs including the scaling list data referred to by the slice. For example, the value obtained by adding 1 to the value of the num_scaling_list_aps_ids_minus1 syntax element is the number of APSs. The value of num_scaling_list_aps_ids_minus1 must be within the range of 0 to 7.

[0261] Here, the num_scaling_list_aps_ids_minus1 syntax element can have its parsing determined based on the slice_scaling_list_enabled_flag syntax element. For example, when the value of slice_scaling_list_enabled_flag is 1 (i.e., it is determined that scaling list data is available for the slice), num_scaling_list_aps_ids_minus1 can be parsed. In this case, the slice_scaling_list_aps_id[i] syntax element can be parsed / signaled based on the value of num_scaling_list_aps_ids_minus1.

[0262] That is, slice_scaling_list_aps_id[i] can indicate the identifier (adaptation_parameter_set_id) of the APS that contains the i-th scaling list data (i.e., the i-th SCALING LIST APS). That is, as many APS ID information as the number of APSs indicated by the num_scaling_list_aps_ids_minus1 syntax element can be signaled. On the other hand, the TemporalId (i.e., TemporalID) of the APS NAL unit that has the same APS ID information (adaptation_parameter_set_id) as slice_scaling_list_aps_id[i] (i.e., the APS NAL unit that contains scaling list data) must be less than or equal to the TemporalId (i.e., TemporalID) of the slice NAL unit being coded.

[0263] Also, when multiple SCALING DATA APSs (multiple APSs including scaling list data) having the same value of APS ID information (adaptation_parameter_set_id) are referenced by two or more slices within the same picture, the multiple SCALING DATA APSs having the same value of APS ID information (adaptation_parameter_set_id) must contain the same content.

[0264] In addition, this document proposes a solution to avoid duplicate signaling when signaling scaling list data in a hierarchical structure. As one embodiment, signaling of scaling list data can be removed in the PPS (Picture Parameter Set). The scaling list data can be sufficiently signaled in the SPS, or APS, and / or other appropriate header sets.

[0265] As one embodiment, Table 31 below shows an example of the PPS syntax that does not signal scaling list data.

[0266]

Table 31

[0267] Table 32 below is an example showing the semantics for syntax elements (e.g., pps_scaling_list_data_present_flag) that can be removed to avoid duplicate signaling of scaling list data in the PPS syntax of Table 31 above.

[0268]

Table 32

[0269] Referring to Table 31 and Table 32, information for signaling scaling list data by PPS, for example, the pps_scaling_list_data_present_flag syntax element can be removed. The pps_scaling_list_data_present_flag syntax element can indicate whether to signal scaling list data by PPS based on whether its value is 0 or 1. For example, when the value of the pps_scaling_list_data_present_flag syntax element is 1, it can indicate that the scaling list data used for the picture referring to PPS is derived based on the scaling list specified by the active SPS and the scaling list data specified by PPS. When the value of the pps_scaling_list_data_present_flag syntax element is 0, it can indicate that the scaling list data used for the picture referring to PPS is analogized to be the same as that specified by the active SPS. That is, the pps_scaling_list_data_present_flag syntax element can be information indicating whether there is scaling list data signaled from PPS.

[0270] That is, in this embodiment, in order to prevent redundant signaling of scaling list data, as shown in Table 31, by removing the pps_scaling_list_data_present_flag syntax element (that is, by not signaling the pps_scaling_list_data_present_flag syntax element), PPS can be prevented from parsing / signaling scaling list data.

[0271] In addition, this document proposes a solution for signaling the scaling list matrix in APS. The existing solution uses three modes, namely, OFF, DEFAULT, and USER_DEFINED modes. The OFF mode indicates that the scaling list data is not applied to the conversion block. The DEFAULT mode indicates that fixed values are used to generate the scaling matrix. The USER_DEFINED mode indicates that the scaling matrix is used based on the block size, prediction mode, and color component. The total number of scaling matrices currently supported in VVC is 44, which is a significant increase from 28 in HEVC. Currently, the scaling list data is signaled in the SPS and can optionally exist in the PPS. By signaling the scaling list data in APS, redundant signaling of the same data in the SPS and PPS can be removed as it is unnecessary.

[0272] For example, the scaling matrix currently defined in VVC indicates whether it is available (enabled) in the SPS using the scaling_list_enabled_flag. When this flag indicates availability, the scaling list is used in the scaling process for the transform coefficients, and when this flag indicates unavailability, the scaling list is not used in the scaling process for the transform coefficients (e.g., OFF mode). Also, the sps_scaling_list_data_present_flag indicating whether the scaling list data exists in the SPS can be parsed. In addition to signaling in the SPS, the scaling list data can further exist in the PPS. When the pps_scaling_list_data_present_flag indicates availability in the PPS, the scaling list data can exist in the PPS. When the scaling list data exists in both the SPS and the PPS, the scaling list data from the PPS can be used for the frames referring to the active PPS. When the scaling_list_enable_flag indicates availability, but the scaling list data exists only in the SPS and not in the PPS, the scaling list data from the SPS can be referred to by the frames. When the scaling_list_enable_flag indicates availability and the scaling list data does not exist in the SPS or the PPS, the DEFAULT mode can be used. Also, the use of the DEFAULT mode can be signaled within the scaling list data itself. When the scaling list data is explicitly signaled, the USER DEFINED mode can be used. The scaling factor for a given transform block can be determined using the information signaled in the scaling list. This is proposed to signal the scaling list data in the APS.

[0273] Currently, in VVC, scaling list data is adopted and used, and the scaling matrices supported in VVC are more extensive than those in HEVC. The scaling matrices supported in VVC enable the selection of block sizes from 4×4 to 64×64 for luma and from 2×2 to 32×32 for chroma. Also, rectangular transform block (TB) size, dependent quantization, multiple transform selection, large transform with zeroing out high frequency coefficients, intra subblock partitioning (ISP), and intra block copy (IBC) can be integrated. Intra block copy (IBC) and the intra coding mode can share the same scaling matrix.

[0274] Therefore, in the case of the USER_DEFINED mode, the number of matrices to be signaled can be as follows.

[0275] ·MatrixType:30 = 2 (2 for intra & IBC / inter) × 3 (Y / Cb / Cr components) × 5 (square TB size: from 4×4 to 64×64 for luma, from 2×2 to 32×32 for chroma)

[0276] ·MatrixType_DC:14 = 2 (2 for intra & IBC / inter × 1 for Y component) × 3 (TB size: 16×16, 32×32, 64×64) + 4 (2 for intra & IBC / inter × 2 for Cb / Cr components) × 2 (TB size: 16×16, 32×32)

[0277] The DC value can be coded separately for scaling matrices of sizes 16×16, 32×32, and 64×64. When the transform block (TB) size is smaller than 8×8, signaling can be done for all elements within one scaling matrix. When the transform block (TB) size is larger than or equal to 8×8, only the basic scaling matrix can be signaled for 64 elements within one 8×8 scaling matrix. To obtain a square matrix larger than 8×8, the basic 8×8 matrix can be upsampled according to the required size. When the DEFAULT mode is used, the scaling matrix can be set to 16. Therefore, in VVC, 44 different matrices are supported, while in HEVC, only 28 matrices are supported. Since the number of scaling matrices supported in VVC is more extensive than that in HEVC, APS can be used as a more practical option for signaling scaling list data to avoid redundant signaling in SPS and / or PPS. This can avoid unnecessary and redundant signaling of scaling list data.

[0278] To solve the problems as described above, this document proposes a scheme for signaling the scaling matrix with APS. For this purpose, the scaling list data can be signaled only with APS, without being signaled in SPS or conditionally present in PPS. Also, the APS ID can be signaled in the slice header.

[0279] As one embodiment, by signaling a flag (e.g., scaling_list_enable_flag) indicating whether scaling list data is available in SPS and removing a flag (e.g., pps_scaling_list_data_present_flag) indicating whether scaling list data exists in PPS without signaling, scaling list data can be signaled in APS. Also, the APS ID can be signaled in the slice header. At this time, when the value of the scaling_list_enable_flag signaled in SPS is 1 (i.e., indicating that scaling list data is available) and the APS ID is not signaled in the slice header, the DEFAULT scaling matrix can be used. One embodiment of such a document can be realized with the syntax and semantics as shown in Tables 33 to 41 below.

[0280] Table 33 below shows an example of the APS structure used to signal scaling list data.

[0281] [Table 33]

[0282] The semantics of the syntax elements included in the APS syntax of Table 33 above can be represented as shown in Table 34 below.

[0283] [Table 34]

[0284] Referring to Table 33 and Table 34 above, the adaptation_parameter_set_id syntax element can be parsed / signaled in the APS. The adaptation_parameter_set_id provides an identifier for the APS for reference of other syntax elements. That is, the APS can be identified based on the adaptation_parameter_set_id syntax element. The adaptation_parameter_set_id syntax element can be called APS ID information. The APS can be shared between pictures and can be different in other slices within a picture.

[0285] Also, the aps_params_type syntax element can be parsed / signaled in the APS. The aps_params_type can represent the type of APS parameters transmitted from the APS, as shown in Table 35 below. The aps_params_type syntax element can be called APS parameter type information or APS type information.

[0286] For example, the following Table 35 is an illustration showing the types of APS parameters that can be transmitted via the APS, and each APS parameter type can be represented corresponding to the value of aps_params_type.

[0287]

Table 35

[0288] Referring to Table 35 above, aps_params_type can be a syntax element for classifying the type of the APS. When the value of aps_params_type is 0, the APS type can be ALF_APS, the APS can carry ALF data, and the ALF data can include ALF parameters for deriving filter / filter coefficients. When the value of aps_params_type is 1, the APS type can be LMCS_APS, the APS can carry LMCS data, and the LMCS data can include LMCS parameters for deriving LMCS model / bin / mapping indexes. When the value of aps_params_type is 2, the APS type can be SCALING_APS, the APS can carry SCALING list data, and the SCALING list data can include SCALING list data parameters for deriving frequency-based quantization scaling matrix / scaling factor / scaling list values.

[0289] For example, as shown in Table 33 above, the aps_params_type syntax element can be parsed / signaled in the APS. At this time, when the value of aps_params_type represents 0 (i.e., aps_params_type represents ALF_APS), the ALF data (i.e., alf_data()) can be parsed / signaled. Or, when the value of aps_params_type represents 1 (i.e., aps_params_type represents LMCS_APS), the LMCS data (i.e., lmcs_data()) can be parsed / signaled. Or, when the value of aps_params_type represents 2 (i.e., aps_params_type represents SCALING_APS), the SCALING list data (i.e., scaling_list_data()) can be parsed / signaled.

[0290] Also, referring to Table 33 and Table 34, the aps_extension_flag syntax element can be parsed / signaled in APS. The aps_extension_flag can indicate whether the APS extension data flag (aps_extension_data_flag) syntax element exists. The aps_extension_flag can be used, for example, to provide an extension point for future versions of the VVC standard. The aps_extension_flag syntax element can be called the APS extension flag. For example, when the value of aps_extension_flag is 0, it can indicate that the APS extension data flag (aps_extension_data_flag) does not exist in the APS RBSP syntax structure. Or, when the value of aps_extension_flag is 1, it can indicate that the APS extension data flag (aps_extension_data_flag) exists in the APS RBSP syntax structure.

[0291] Based on the aps_extension_flag syntax element, the aps_extension_data_flag syntax element can be parsed / signaled. The aps_extension_data_flag syntax element can be called the APS extension data flag. For example, when the value of aps_extension_flag is 1, aps_extension_data_flag can be parsed / signaled, and at this time, aps_extension_data_flag can have any value.

[0292] As described above, according to one embodiment of this document, by allocating a data type (e.g., SCALING_APS) for representing scaling list data and parsing / signaling a syntax element (e.g., aps_params_type) representing the data type, the scaling list data can be efficiently carried. That is, according to one embodiment of this document, the structure of APS integrated with scaling list data can be used.

[0293] Also, when signaling scaling list data in APS, it is possible to signal whether the scaling list data is available in SPS, and based on this, parse / signal the scaling list data by the APS parameter type (e.g., aps_params_type) in APS. Further, in one embodiment of this document, in order to avoid signaling duplicate scaling list data in the upper-level syntax, the scaling list data syntax structure (e.g., scaling_list_data()) is not parsed / signaled from SPS or PPS for the flag information indicating whether it exists in SPS or PPS, so that the scaling list data can be not signaled in SPS or PPS. This can be realized with the syntax and semantics as shown in Table 36 to Table 39 below.

[0294] For example, the SPS syntax can be modified as shown in Table 36 below. Table 36 below shows an example of the SPS syntax structure that does not signal the scaling list data in SPS.

[0295]

Table 36

[0296] The semantics of the syntax elements included in the SPS syntax of Table 36 above can be modified as shown in Table 37 below. As an example, in Tables 36 and 37, in order to avoid redundant signaling of scaling list data, some syntax elements (e.g., sps_scaling_list_data_present_flag) included in the SPS may be removed.

[0297]

Table 37

[0298] Referring to Tables 36 and 37 above, the scaling_list_enabled_flag syntax element can be parsed / signaled in the SPS. The scaling_list_enabled_flag syntax element can indicate whether a scaling list is available based on whether its value is 0 or 1. For example, when the value of scaling_list_enabled_flag is 1, it indicates that the scaling list is used in the scaling process for the conversion coefficients, and when the value of scaling_list_enabled_flag is 0, it can indicate that the scaling list is not used in the scaling process for the conversion coefficients.

[0299] [[ID=1,6]]

[0300] That is, the scaling_list_enabled_flag syntax element can be called the scaling list availability flag and can be signaled in the SPS (or at the SPS level). In other words, based on the value of scaling_list_enabled_flag signaled at the SPS level, it can be determined that a scaling list is basically available for the pictures in the CVS referring to the SPS. And additional availability flags can be signaled at levels lower than the SPS (e.g., PPS, tile group header, slice header, and / or other appropriate headers) to obtain the scaling list. Also, in the SPS, the sps_scaling_list_data_present_flag syntax element can be not parsed / signaled. That is, by removing the sps_scaling_list_data_present_flag syntax element in the SPS, this flag information can be made not to be parsed / signaled. The sps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the SPS, and according to this flag information, the scaling list data specified by the SPS can be parsed / signaled. However, by removing the sps_scaling_list_data_present_flag syntax element, at the SPS level, it can be configured to directly signal only the scaling_list_enabled_flag without directly signaling the scaling list data.

[0301] Also, the signaling of the scaling list data in the PPS can be removed as shown in Table 38 below. For example, Table 38 below shows an example of the PPS syntax structure that does not signal the scaling list data in the PPS.

[0302]

Table 38

[0303] The semantics of the syntax elements included in the PPS syntax of Table 38 above can be modified as shown in Table 39 below. As an example, Table 39 below shows the semantics for the syntax elements (e.g., pps_scaling_list_data_present_flag) that can be removed to avoid duplicate signaling of the scaling list data in the PPS syntax.

[0304]

Table 39

[0305] Referring to Table 38 and Table 39 above, in the PPS, the pps_scaling_list_data_present_flag syntax element can be not parsed / signaled. That is, by removing the pps_scaling_list_data_present_flag syntax element in the PPS, this flag information can be configured not to be parsed / signaled. The pps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the PPS, and according to this flag information, the scaling list data specified by the PPS can be parsed / signaled. However, by removing the pps_scaling_list_data_present_flag syntax element, at the PPS level, the scaling list data cannot be directly signaled.

[0306] As described above, by removing the flag information indicating whether the scaling list data exists at the SPS or PPS level, the SPS syntax and the PPS syntax can be configured not to directly signal the scaling list data syntax at the SPS or PPS level. Only the scaling list enabled flag (scaling_list_enabled_flag) is explicitly signaled in the SPS, and then based on the enabled flag (scaling_list_enabled_flag) in the SPS, the scaling list (scaling_list_data()) can be individually parsed at the lower-level syntax (e.g., APS). Therefore, according to an embodiment of this document, since the scaling list data can be parsed / signaled by a hierarchical structure, the coding efficiency can be improved.

[0307] Also, when signaling scaling list data with APS, signal the APS ID with a slice header, identify the APS based on the APS ID obtained from the slice header, and parse / signal the scaling list data from the identified APS. Here, the slice header is only for illustrative purposes, and the slice header can also be mixed or replaced with various headers such as a tile group header or a picture header.

[0308] For example, Table 40 below represents an example of a slice header syntax including APS ID syntax elements for signaling scaling list data with APS.

[0309]

Table 40

[0310] The semantics of the syntax elements included in the slice header syntax of Table 40 above can be represented as shown in Table 41 below.

[0311]

Table 41

[0312] Referring to Table 40 and Table 41, the slice_pic_parameter_set_id syntax element can be parsed / signaled in the slice header. The slice_pic_parameter_set_id syntax element can represent an identifier for the PPS in use. That is, the slice_pic_parameter_set_id syntax element is information for identifying the PPS referred to in the slice and can represent the value of pps_pic_parameter_set_id. The value of slice_pic_parameter_set_id should be within the range of 0 to 63. The slice_pic_parameter_set_id syntax element can be said to be PPS identification information or PPSID information referred to in the slice.

[0313] Also, the slice_scaling_list_present_flag syntax element can be parsed / signaled in the slice header. The slice_scaling_list_present_flag syntax element can be information indicating whether a scaling list matrix exists for the current slice. For example, when the value of slice_scaling_list_present_flag is 1, it can indicate that a scaling list matrix exists for the current slice, and when the value of slice_scaling_list_present_flag is 0, it can indicate that default scaling list data is used to derive the ScalingFactor array. Or, when slice_scaling_list_present_flag does not exist in the slice header, its value can be analogized to 0.

[0314] At this time, the parsing availability of the slice_scaling_list_present_flag syntax element can be determined based on the scaling_list_enabled_flag syntax element signaled in the upper-level syntax (i.e., SPS). For example, when the value of scaling_list_enabled_flag signaled in the SPS is 1 (i.e., when it is determined that the scaling list data is available at the upper level), the slice_scaling_list_present_flag can be parsed in the slice header to determine whether to perform the scaling process using the scaling list in the slice.

[0315] Also, the slice_scaling_list_aps_id syntax element can be parsed / signaled in the slice header. The slice_scaling_list_aps_id syntax element can represent an identifier for the APS referred to in the slice. That is, the slice_scaling_list_aps_id syntax element can represent the ID information (adaptation_parameter_set_id) of the APS containing the scaling list data referred to in the slice. On the other hand, the TemporalId (i.e., Temporal ID) of the APS NAL unit having the same APS ID information (adaptation_parameter_set_id) as slice_scaling_list_aps_id (i.e., the APS NAL unit containing the scaling list data) must be smaller than or the same as the TemporalId (i.e., Temporal ID) of the slice NAL unit to be coded.

[0316] Also, the parsing availability of the slice_scaling_list_aps_id syntax element can be determined based on the slice_scaling_list_present_flag syntax element. For example, when the value of slice_scaling_list_present_flag is 1 (i.e., when the scaling list exists in the slice header), slice_scaling_list_aps_id can be parsed. Then, the scaling list data can be obtained from the APS indicated by the parsed slice_scaling_list_aps_id.

[0317] Also, when multiple SCALING DATA APSs (multiple APSs including scaling list data) having the same value of APS ID information (adaptation_parameter_set_id) are referenced by two or more slices within the same picture, the multiple SCALING DATA APSs having the same value of APS ID information (adaptation_parameter_set_id) must contain the same content.

[0318] According to Tables 40 and 41 described above, it has been explained that the APS ID is signaled in the slice header, but this is just one example. In this document, the APS ID can also be signaled in the picture header or the tile group header, etc.

[0319] Also, this document proposes a general solution to reposition the scaling list data in other header sets. As one embodiment, a general structure including the scaling list data in the header set is proposed. In the current case of VVC, the APS is used as the appropriate header set, but it may also be possible to encapsulate the scaling list data identified by the Nal Unit Type (NUT) in its own header set. It can be realized as shown in Tables 42 and 43 below.

[0320] For example, the following Table 42 is an example showing the NAL unit type and the corresponding RBSP syntax structure. Here, as described above, the NAL unit type can be specified by the RBSP data structure included in the NAL unit, and information regarding such NAL unit type can be stored in the NAL unit header and signaled.

[0321]

Table 42-1

[0322]

Table 42-2

[0323] As shown in Table 42, the scaling list data can be defined as one NAL unit type (e.g., SCALING_NUT), and a specific value (e.g., 21, or one of the reserved values not specified for the NAL unit type) can be specified by the value of the NAL unit type for SCALING_NUT. SCALING_NUT can be the type for the NAL unit including the scaling list data parameter set (e.g., Scaling_list_data_parameter set).

[0324] Also, the availability of SCALING_NUT can be determined at a higher level than APS, PPS, and / or other appropriate headers, or can also be determined at a lower level than other NAL unit types.

[0325] For example, the following Table 43 shows the syntax of the scaling list data parameter set used for signaling the scaling list data.

[0326]

Table 43

[0327] The semantics of the syntax elements included in the scaling list data parameter set syntax of Table 43 above can be expressed as in Table 44 below.

[0328] [Table 44]

[0329] Referring to Table 43 and Table 44 above, a scaling list data parameter set (e.g., scaling_list_data_parameter_set) can be a set of headers specified by the value of the NAL unit type for SCALING_NUT (e.g., 21). The scaling_list_data_parameter_set_id syntax element can be parsed / signaled in the scaling list data parameter set. The scaling_list_data_parameter_set_id syntax element provides an identifier for the scaling list data for reference by other syntax elements. That is, the scaling list parameter set can be identified based on the scaling_list_data_parameter_set_id syntax element. The scaling_list_data_parameter_set_id syntax element can be referred to as scaling list data parameter set ID information. The scaling list data parameter set can be shared between pictures and can be different in other slices within a picture.

[0330] Scaling list data (e.g., scaling_list_data syntax) can be parsed / signaled from the scaling list data parameter set identified by scaling_list_data_parameter_set_id.

[0331] Also, the scaling_list_data_extension_flag syntax element can be parsed / signaled in the scaling list data parameter set. The scaling_list_data_extension_flag syntax element can indicate whether the scaling list data extension flag (scaling_list_data_extension_flag) syntax element exists in the scaling list data RBSP syntax structure. For example, if the value of scaling_list_data_extension_flag is 1, it can indicate that the scaling list data extension flag (scaling_list_data_extension_flag) syntax element exists in the scaling list data RBSP syntax structure. Or, if the value of scaling_list_data_extension_flag is 0, it can indicate that the scaling list data extension flag (scaling_list_data_extension_flag) syntax element does not exist in the scaling list data RBSP syntax structure.

[0332] <L Based on the scaling_list_data_extension_flag syntax element, the scaling_list_data_extension_data_flag syntax element can be parsed / signaled. The scaling_list_data_extension_data_flag syntax element can be referred to as the extension data flag for the scaling list data. For example, if the value of scaling_list_data_extension_flag is 1, scaling_list_data_extension_data_flag can be parsed / signaled, and at this time, scaling_list_data_extension_data_flag can have any value.

[0333] As described above, according to one embodiment of this document, one header set structure for scaling list data can be defined and used, and the header set for scaling list data can be specified by the NAL unit type (e.g., SCALING_NUT). In this case, the header set for scaling list data can be defined as a scaling list data parameter set (e.g., scaling_list_data_parameter_set), from which the scaling list data can be obtained.

[0334] On the other hand, this document proposes a solution for effectively coding the syntax element scaling_lsit_pred_matrix_id_delta included in the scaling list data.

[0335] In the current case of VVC, the scaling_lsit_pred_matrix_id_delta syntax element is coded using an unsigned integer 0-th order Exp-Golomb-coded syntax element with the left bit first. However, in order to improve the coding efficiency, in one embodiment of this document, as shown in Table 45 below, a solution is proposed to code the scaling_lsit_pred_matrix_id_delta syntax element having a range of 0 to 5 using a fixed-length code (e.g., u(3)). At this time, in order to improve the efficiency for the entire range, it can be sufficient to code using only 3 bits.

[0336] For example, the following Table 45 represents an example of the scaling list data syntax structure.

[0337]

Table 45

[0338] The semantics of the syntax elements included in the scaling list data syntax of Table 45 above can be represented as in Table 46 below.

[0339]

Table 46-1

[0340]

Table 46-2

[0341] As represented in Tables 45 and 46 above, the scaling_list_pred_matrix_id_delta syntax element can be parsed / signaled from the scaling list data syntax. The scaling_list_pred_matrix_id_delta syntax element can represent a reference scaling list used to derive a scaling list. At this time, when parsing scaling_list_pred_matrix_id_delta, a fixed-length code (e.g., u(3)) can be used for parsing.

[0342] On the other hand, when signaling scaling list data in APS, restrictions can be placed on the scaling list matrix. In this regard, this document proposes a method for restricting the number of scaling list matrices. According to the method proposed in this document, it is possible to facilitate implementation and obtain the effect of restricting the worst case memory requirement.

[0343] As an embodiment, the number of APSs (i.e., APSs that signal the scaling list data syntax) containing scaling list data can be restricted. For this purpose, the following constraint conditions can be added. Such constraint conditions are for placing holders, i.e., different values can be used. (It should be noted that these constraints are meant to place holders i.e., different values can be used.)

[0344] For the sake of explanation, an APS containing scaling list data (i.e., an APS that signals the scaling list data syntax) can be referred to as a SCALING LIST APS. In other words, as described above, when the APS parameter type (e.g., aps_params_type) transmitted from the APS represents a scaling list data parameter type (e.g., SCALING_APS), the scaling list data transmitted from the APS can be represented as a SCALING LIST APS.

[0345] For example, the total number of APSs (i.e., SCALING LIST APSs) containing scaling list data can be less than 3. Of course, other appropriate values can also be used. For example, appropriate values can be used within the range of 0 to 7. That is, the total number of APSs (i.e., SCALING LIST APSs) containing scaling list data can be determined within the range of 0 to 7.

[0346] Also, for example, an APS (i.e., a SCALING LIST APS) containing scaling list data can be allowed to have only 1 SCALING LIST APS per picture.

[0347] The following Table 47 is an example showing the syntax elements for the constraint conditions to limit the APS including the scaling list data as described above and their semantics.

[0348]

Table 47

[0349] Referring to the above Table 47, the number of APSs (i.e., SCALING LIST APS) including the scaling list data can be restricted based on the syntax element (e.g., slice_scaling_list_aps_id) representing the APS identification information (i.e., APS ID information) of the SCALING LIST APS.

[0350] For example, the syntax element slice_scaling_list_aps_id can represent the APS identification information (i.e., APS ID information) of the SCALING LIST APS referred to by a slice. At this time, the value of the syntax element slice_scaling_list_aps_id can be restricted to a specific value. As an example, the value of the syntax element slice_scaling_list_aps_id can be restricted to be in the range of 0 to 3. This is one example, and it can be restricted to have other values. As another example, the value of the syntax element slice_scaling_list_aps_id can also be restricted to be in the range of 0 to 7.

[0351] Also, for example, the TemporalId (i.e., Temporal ID) of the SCALING LIST APS NAL unit having an APS ID (adaptation_parameter_set_id) such as slice_lmcs_aps_id must be smaller than or the same as the TemporalId (i.e., Temporal ID) of the coded slice NAL unit.

[0352] Also, for example, when a plurality of SCALING LIST APSs with the same APS ID (adaptation_parameter_set_id) value are referenced by two or more slices on the same picture, the plurality of SCALING LIST APSs having the same APS ID (adaptation_parameter_set_id) value must have the same content.

[0353] Also, for example, only one SCALING LIST APS having the same APS ID (adaptation_parameter_set_id) value and the same content must be referenced by one or more slices on the same picture. In other words, one or more slices within the same picture must reference the same APS containing scaling list data.

[0354] The following drawings are created to illustrate a specific example of this document. The names of specific devices, specific terms, and names described in the drawings (for example, the names of syntax / syntax elements, etc.) are presented by way of example, so the technical features of this document are not limited to the specific names used in the following drawings.

[0355] FIG. 7 and FIG. 8 schematically show an example of a video / image encoding method and related components according to an embodiment (etc.) of this document.

[0356] The method disclosed in FIG. 7 can be performed by the encoding device 200 disclosed in FIG. 2. Specifically, step S700 in FIG. 7 can be performed by the subtraction unit 231 disclosed in FIG. 2, step S710 in FIG. 7 can be performed by the conversion unit 232 disclosed in FIG. 2, steps S720 - S730 in FIG. 7 can be performed by the quantization unit 233 disclosed in FIG. 2, and step S740 in FIG. 7 can be performed by the entropy encoding unit 240 disclosed in FIG. 2. Also, the method disclosed in FIG. 7 can be performed including the embodiments described above in this document. Therefore, in FIG. 7, specific descriptions regarding the content overlapping with the above-described embodiments are omitted or simplified.

[0357] As shown in FIG. 7, the encoding device can derive a residual sample for the current block (S700).

[0358] As one embodiment, first, the encoding device can determine a prediction mode for the current block and derive a prediction sample. For example, the encoding device can determine whether to perform inter prediction or intra prediction on the current block, and can also determine a specific inter prediction mode or a specific intra prediction mode based on the RD cost. The encoding device can perform prediction according to the determined prediction mode to derive a prediction sample for the current block. At this time, various prediction methods disclosed in this document, such as inter prediction or intra prediction, can be applied. Also, the encoding device can generate and encode information (e.g., prediction mode information) related to the prediction applied to the current block. Then, the encoding device can compare the original sample and the prediction sample for the current block to derive a residual sample.

[0359] The encoding device can derive conversion coefficients based on the residual sample (S710).

[0360] As one embodiment, the encoding device can derive conversion coefficients through a conversion process for residual samples. At this time, the encoding device can determine whether to apply conversion to the current block in consideration of coding efficiency. That is, the encoding device can determine whether conversion is applied to the residual samples. For example, when conversion is not applied to the residual samples, the encoding device can derive the residual samples with conversion coefficients. Or, when conversion is applied to the residual samples, the encoding device can perform conversion on the residual samples to derive conversion coefficients. In this case, the encoding device can generate conversion skip flag information based on whether conversion is applied to the current block and perform encoding. The conversion skip flag information can be information indicating whether conversion is applied to the current block or conversion is skipped.

[0361] The encoding device can derive quantized conversion coefficients based on the conversion coefficients (S720).

[0362] As one embodiment, the encoding device can derive quantized conversion coefficients by applying a quantization process to the conversion coefficients. At this time, the encoding device can apply frequency-dependent weighted quantization that adjusts the quantization intensity according to the frequency. In this case, the quantization process can be further performed based on frequency-dependent quantization scale values. The quantization scale values for frequency-dependent weighted quantization can be derived using a scaling matrix. For example, the encoding device / decoding device can use a predefined scaling matrix, the encoding device can configure and encode frequency-dependent quantization scale information for the scaling matrix, and can also signal this to the decoding device. The frequency-dependent quantization scale information can include scaling list data. A (modified) scaling matrix can be derived based on the scaling list data.

[0363] Also, similar to the decoding device, the encoding device can perform an inverse quantization process. In this case, the encoding device can derive a (modified) scaling matrix based on the scaling list data, and based on this, apply inverse quantization to the quantized transform coefficients to derive the restored transform coefficients. At this time, due to the loss in the transform / quantization process, the restored transform coefficients may differ from the original transform coefficients.

[0364] Here, the scaling matrix can be referred to as the quantization scaling matrix based on the frequencies described above, and for convenience of explanation, it can be used interchangeably or alternatively with the quantization scaling matrix, quantization matrix, scaling matrix, scaling list, etc., and is not limited to the specific names used in this embodiment.

[0365] That is, when performing the quantization process, the encoding device can further apply frequency-dependent weighted quantization, and at this time, generate scaling list data as information regarding the scaling matrix. Since this process has been specifically described by taking Tables 5 to 17 as examples, in this embodiment, duplicate content and specific descriptions are omitted.

[0366] The encoding device can generate residual information based on the quantized transform coefficients (S730).

[0367] Here, the residual information is information generated through the transform and / or quantization procedure, and can be information regarding the quantized transform coefficients, and can include, for example, value information, position information, transform technique, transform kernel, quantization parameter, etc. of the quantized transform coefficients.

[0368] Also, when further applying frequency-dependent weighted quantization in deriving the quantization coefficients quantized in the quantization process, scaling list data for the quantized conversion coefficients can be generated. The scaling list data can include scaling list parameters used to derive the quantized conversion coefficients. In this case, the encoding device can generate scaling list data-related information, for example, generate an APS including the scaling list data.

[0369] The encoding device can encode image information (or video information) (S740). Here, the image information can include the residual information. Also, the image information can include information related to the prediction used to derive the prediction sample (for example, prediction mode information). Also, the image information can include information regarding the scaling list data. That is, the image information can include various information derived in the encoding process and can be encoded including such various information.

[0370] As one embodiment, the image information can include various information according to the embodiments (etc.) described above in this document and can include information disclosed in at least one of Tables 1 to 47 described above.

[0371] Further, for example, the image information can include an APS (adaptation parameter set). The APS can include APS ID information (APS identification information) and APS type information (type information of APS parameters). That is, the APS can be identified based on the APS ID information, and the APS parameters corresponding to the type can be included in the APS based on the APS type information. For example, the APS type information can include an ALF (adaptive loop filter) type related to ALF parameters, an LMCS (luma mapping with chroma scaling) type related to LMCS parameters, and a scaling list type related to scaling list data parameters. It can be expressed as shown in Table 35 described above. For example, when the value of the APS type information is 2, the APS type information can indicate that the APS includes scaling list data parameters.

[0372] As an example, the APS can be configured as described in Table 33 (or Table 18) above. The APS ID information (APS identification information) can be the adaptation_parameter_set_id described in Tables 33 and 34 (or Tables 18 and 19). The APS type information can be the aps_params_type described in Tables 33 to 35 (or Tables 18 to 20). For example, when the type information of the APS parameter (e.g., aps_params_type) is the SCALING_APS type indicating that the APS includes scaling list data (or when the value of the type information of the APS parameter (e.g., aps_params_type) is 2), the APS can include scaling list data (e.g., scaling_list_data()). That is, the encoding device can signal the scaling list data (e.g., scaling_list_data()) via the APS based on the SCALING_APS type information indicating that the APS includes the scaling list data. That is, the scaling list data can be included in the APS based on the APS type information (SCALING_APS type information). The scaling list data can include, as described above, the scaling list parameters for deriving the scaling list / scaling matrix / scale factor used in the quantization / inverse quantization process. In other words, the scaling list data can include the syntax elements used to construct the scaling list.

[0373] Also, as an example, the APS ID information can have values within a specific range. For example, the value of the APS ID information can have values within a specific range from 0 to 3 or from 0 to 7. However, this is an example of listing values, and the value range of the APS ID information can have other values. Also, the value range of the APS ID information can be determined based on the APS type information (e.g., aps_params_type). If, for the APS type information (e.g., SCALING_APS type) indicating that it is an APS related to the scaling list data, the value of the APS ID information can be represented based on the syntax element (e.g., slice_scaling_list_aps_id) as shown in Table 47 above. For example, when the APS type information (e.g., aps_params_type) represents an APS including the scaling list data (e.g., when it is the SCALING_APS type), the value of the APS ID information can have values within the range from 0 to 3 or from 0 to 7. Here, slices within one picture can refer to the same APS related to the scaling list data. Or, when the APS type information (e.g., aps_params_type) represents an APS related to ALF (e.g., when it is the ALF_APS type), the value of the APS ID information can have values within the range from 0 to 7. Or, when the APS type information (e.g., aps_params_type) represents an APS related to LMCS (e.g., when it is the LMCS_APS type), the value of the APS ID information can have values within the range from 0 to 3.

[0374] Also, for example, the image information can include an SPS (Sequence Parameter Set). The SPS can include first availability flag information indicating the availability of scaling list data. As an example, the SPS can be configured as described in Table 36 (or Table 21) above, and the first availability flag information can be the scaling_list_enabled_flag described in Tables 36 and 37 (or Tables 21 and 22). Also, the SPS can prevent this flag information from being parsed / signaled by removing the sps_scaling_list_data_present_flag syntax element. The sps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the SPS, and according to this flag information, the scaling list data specified by the SPS can be parsed / signaled. However, by removing the sps_scaling_list_data_present_flag syntax element, at the SPS level, it can be configured to explicitly signal only the scaling list availability flag (scaling_list_enabled_flag) without directly signaling the scaling list data.

[0375] Also, for example, the image information can include a PPS (Picture Parameter Set). As an example, the PPS can be configured as shown in Table 38 described above. In this case, the PPS can be configured not to include the availability flag information indicating the availability of the scaling list data. That is, by removing the pps_scaling_list_data_present_flag syntax element in the PPS, this flag information can be configured not to be parsed / signaled. The pps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the PPS. According to this flag information, the scaling list data specified by the PPS can be parsed / signaled. However, by removing the pps_scaling_list_data_present_flag syntax element, the scaling list data cannot be directly signaled at the PPS level.

[0376] In this case, the first availability flag information (e.g., scaling_list_enabled_flag) indicating the availability of the scaling list data can be signaled in the SPS and not signaled in the PPS. Therefore, based on the first availability flag information signaled in the SPS (e.g., when the value of the first availability flag information (e.g., scaling_list_enabled_flag) is 1 or true), the scaling list data included in the APS can be obtained.

[0377] Also, for example, the image information can include header information. The header information can be header information related to a slice or picture including the current block, and can include, for example, a picture header or a slice header. The header information can include APS identification information related to scaling list data. The APS identification information related to the scaling list data included in the header information can represent APS ID information for an APS including the scaling list data. As an example, the APS ID information related to the scaling list data included in the header information can be the slice_scaling_list_aps_id described in Table 40 to Table 41 (or Table 25 to Table 28), and can be identification information for an APS (including scaling list data; that is, SCALING LIST APS) referred to by a slice / picture including the current block. That is, based on the APS ID information related to the scaling list data in the header information (for example, slice_scaling_list_aps_id), an APS including the scaling list data can be identified.

[0378] At this time, whether the header information parses / signals the APS ID information for an APS including the scaling list data can be determined based on the first available flag information (scaling_list_enabled_flag) parsed / signaled in the SPS. For example, based on the first available flag information indicating that the scaling list in the SPS is available (for example, when the value of the first available flag information (for example, scaling_list_enabled_flag) is 1 or true), the header information can include the APS ID information for an APS including the scaling list data.

[0379] Also, for example, the header information can include second availability flag information indicating the availability of scaling list data in a picture or a slice. As an example, the second availability flag information can be the slice_scaling_list_present_flag (or the slice_scaling_list_enabled_flag) described in the above Table 40 and Table 41 (or the above Tables 25 to 28).

[0380] At this time, whether the header information parses / signals the second availability flag information can be determined based on the first availability flag information (scaling_list_enabled_flag) parsed / signaled in the SPS. For example, based on the first availability flag information indicating that the scaling list in the SPS is available (e.g., when the value of the first availability flag information (e.g., scaling_list_enabled_flag) is 1 or true), the header information can include the second availability flag information. And based on the second availability flag information (e.g., when the value of the second availability flag information (e.g., slice_scaling_list_present_flag) is 1 or true), the header information can include the APS ID information related to the scaling list data.

[0381] As an example, as shown in Table 40 described above, the encoding device can signal second available flag information (e.g., slice_scaling_list_present_flag) via header information based on first available flag information (e.g., scaling_list_enabled_flag) signaled in the SPS, and then can signal APS ID information (e.g., slice_scaling_list_aps_id) for the APS including scaling list data via header information based on the second available flag information (e.g., slice_scaling_list_present_flag). Then, the encoding device can signal scaling list data from the APS indicated by the signaled APS ID information (e.g., slice_scaling_list_aps_id).

[0382] As described above, the SPS syntax and the PPS syntax can be configured so as not to directly signal the scaling list data syntax at the SPS or PPS level. For example, only the scaling list available flag (scaling_list_enabled_flag) is explicitly signaled in the SPS, and thereafter the scaling list (scaling_list_data()) can be individually parsed in the lower-level syntax (e.g., APS) based on the available flag (scaling_list_enabled_flag) in the SPS. Therefore, according to an embodiment of this document, since the scaling list data can be parsed / signaled by a hierarchical structure, the coding efficiency can be improved more.

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

[0384] FIG. 9 and FIG. 10 schematically show an example of a video / image decoding method and related components according to an embodiment (etc.) of this document.

[0385] The method disclosed in FIG. 9 can be performed by the decoding device 300 disclosed in FIG. 3. Specifically, steps S900 to S910 in FIG. 9 can be performed by the entropy decoding unit 310 disclosed in FIG. 3, step S920 in FIG. 9 can be performed by the inverse quantization unit 321 disclosed in FIG. 3, step S930 in FIG. 9 can be performed by the inverse transformation unit 321 disclosed in FIG. 3, and step S940 in FIG. 9 can be performed by the addition unit 340 disclosed in FIG. 3. Also, the method disclosed in FIG. 9 can be performed including the embodiments described above in this document. Therefore, in FIG. 9, specific descriptions regarding the content overlapping with the above-described embodiments are omitted or simplified.

[0386] As shown in FIG. 9, the decoding device can receive image information (or video information) from the bitstream (S900).

[0387] As an embodiment, the decoding device can parse a bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). At this time, the image information can include residual information, and the residual information can include information such as the value information of quantized transform coefficients, position information, transformation techniques, transformation kernels, quantization parameters, etc. Further, the image information can include information related to prediction (e.g., prediction mode information). Also, the image information can include information related to scaling list data. That is, the image information can include various information necessary in the decoding process and can be decoded based on coding methods such as exponential Golomb coding, CAVLC, or CABAC.

[0388] As an embodiment, the image information can include various information according to the embodiments (etc.) described above in this document and can include information disclosed in at least one of Tables 1 to 47 described above.

[0389] For example, the image information can include an APS (adaptation parameter set). The APS can include APS ID information (APS identification information) and APS type information (type information of APS parameters). That is, the APS can be identified based on the APS ID information, and the APS parameters corresponding to the type can be included in the APS based on the APS type information. For example, the APS type information can include an ALF type related to ALF (adaptive loop filter) parameters, an LMCS type related to LMCS (luma mapping with chroma scaling) parameters, and a scaling list type related to scaling list data parameters. It can be represented as shown in Table 35 above. For example, when the value of the APS type information is 2, the APS type information can represent that the APS includes scaling list data parameters.

[0390] As an example, the APS can be configured as shown in Table 33 (or Table 18) described above. The APS ID information (APS identification information) can be the adaptation_parameter_set_id described in Tables 33 and 34 (or Tables 18 and 19). The APS type information can be the aps_params_type described in Tables 33 to 35 (or Tables 18 to 20). For example, when the type information of the APS parameter (e.g., aps_params_type) is the SCALING_APS type indicating that the APS includes scaling list data (or when the value of the type information of the APS parameter (e.g., aps_params_type) is 2), the APS can include scaling list data (e.g., scaling_list_data()). That is, the decoding device can obtain and parse the scaling list data (e.g., scaling_list_data()) via the APS based on the SCALING_APS type information indicating that the APS includes the scaling list data. That is, the scaling list data can be included in the APS based on the APS type information (SCALING_APS type information). The scaling list data can include, as described above, the scaling list parameters for deriving the scaling list / scaling matrix / scale factor used in the quantization / inverse quantization process. In other words, the scaling list data can include the syntax elements used to construct the scaling list.

[0391] Also, as an example, the APS ID information can have values within a specific range. For example, the value of the APS ID information can have values within a specific range from 0 to 3, or from 0 to 7. However, this is only an example of the values described, and the value range of the APS ID information can have other values. Also, the value range of the APS ID information can be determined based on the APS type information (e.g., aps_params_type). Suppose, for the APS type information (e.g., SCALING_APS type) indicating that it is an APS related to the scaling list data, the value of the APS ID information can be represented based on the syntax element (e.g., slice_scaling_list_aps_id) as shown in Table 47 above. For example, when the APS type information (e.g., aps_params_type) represents an APS including the scaling list data (e.g., when it is the SCALING_APS type), the value of the APS ID information can have values within the range from 0 to 3, or from 0 to 7. Here, slices within one picture can refer to the same APS related to the scaling list data. Or, when the APS type information (e.g., aps_params_type) represents an APS related to ALF (e.g., when it is the ALF_APS type), the value of the APS ID information can have values within the range from 0 to 7. Or, when the APS type information (e.g., aps_params_type) represents an APS related to LMCS (e.g., when it is the LMCS_APS type), the value of the APS ID information can have values within the range from 0 to 3.

[0392] Also, for example, the image information can include an SPS (Sequence Parameter Set). The SPS can include first availability flag information indicating the availability of scaling list data. As an example, the SPS can be configured as described in Table 36 (or Table 21) above, and the first availability flag information can be the scaling_list_enabled_flag described in Tables 36 and 37 (or Tables 21 and 22). Also, the SPS can prevent this flag information from being parsed / signaled by removing the sps_scaling_list_data_present_flag syntax element. The sps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the SPS, and the scaling list data specified by the SPS can be parsed / signaled according to this flag information. However, by removing the sps_scaling_list_data_present_flag syntax element, at the SPS level, it can be configured to explicitly signal only the scaling list availability flag (scaling_list_enabled_flag) without directly signaling the scaling list data.

[0393] Also, for example, the image information can include a PPS (Picture Parameter Set). As an example, the PPS can be configured as shown in Table 38 described above. In this case, the PPS can be configured not to include availability flag information indicating the availability of scaling list data. That is, by removing the pps_scaling_list_data_present_flag syntax element from the PPS, this flag information can be configured not to be parsed / signaled. The pps_scaling_list_data_present_flag syntax element is flag information indicating whether the syntax structure of the scaling list data exists in the PPS, and according to this flag information, the scaling list data specified by the PPS can be parsed / signaled. However, by removing the pps_scaling_list_data_present_flag syntax element, at the PPS level, the scaling list data cannot be directly signaled.

[0394] In this case, the first availability flag information (e.g., scaling_list_enabled_flag) indicating the availability of the scaling list data can be signaled in the SPS and not signaled in the PPS. Therefore, based on the first availability flag information signaled in the SPS (e.g., when the value of the first availability flag information (e.g., scaling_list_enabled_flag) is 1 or true), the scaling list data included in the APS can be obtained.

[0395] Also, for example, the image information can include header information. The header information can be header information related to a slice or picture including the current block, and can include, for example, a picture header or a slice header. The header information can include APS identification information related to scaling list data. The APS identification information related to scaling list data included in the header information can represent APS ID information for the APS including the scaling list data. As an example, the APS ID information related to scaling list data included in the header information can be the slice_scaling_list_aps_id described in Table 40 to Table 41 (or Table 25 to Table 28), and can be identification information for the APS (including scaling list data; that is, SCALING LIST APS) referred to by the slice / picture including the current block. That is, based on the APS ID information (for example, slice_scaling_list_aps_id) of the header information, the APS including the scaling list data can be identified. That is, the decoding device can identify the APS based on the APS ID information (e.g., slice_scaling_list_aps_id) of the header information and obtain the scaling list data from the APS.

[0396] At this time, whether the header information parses / signals the APS ID information for the APS including the scaling list data can be determined based on the first available flag information (scaling_list_enabled_flag) parsed / signaled in the SPS. For example, based on the first available flag information indicating that the scaling list in the SPS is available (e.g., when the value of the first available flag information (e.g., scaling_list_enabled_flag) is 1 or true), the header information can include the APS ID information for the APS including the scaling list data.

[0397] Also, for example, the header information may include second availability flag information indicating the availability of scaling list data in a picture or slice. As an example, the second availability flag information can be the slice_scaling_list_present_flag (or slice_scaling_list_enabled_flag) described in Table 40 and Table 41 (or Tables 25 to 28).

[0398] At this time, whether the header information parses / signals the second availability flag information can be determined based on the first availability flag information (scaling_list_enabled_flag) parsed / signaled in the SPS. For example, based on the first availability flag information indicating that the scaling list in the SPS is available (e.g., when the value of the first availability flag information (e.g., scaling_list_enabled_flag) is 1 or true), the header information can include the second availability flag information. And based on the second availability flag information (e.g., when the value of the second availability flag information (e.g., slice_scaling_list_present_flag) is 1 or true), the header information can include APS ID information for the APS containing the scaling list data.

[0399] As an example, as shown in the above-mentioned Table 40 (or Table 25), the decoding device can obtain second available flag information (e.g., slice_scaling_list_present_flag) via header information based on the first available flag information (e.g., scaling_list_enabled_flag) signaled by the SPS, and then obtain APS ID information (e.g., slice_scaling_list_aps_id) for the APS including scaling list data via header information based on the second available flag information (e.g., slice_scaling_list_present_flag). Then, the decoding device can obtain the scaling list data from the APS indicated by the APS ID information (e.g., slice_scaling_list_aps_id) obtained via the header information.

[0400] As described above, the SPS syntax and the PPS syntax can be configured so as not to directly signal the scaling list data syntax at the SPS or PPS level. For example, only the scaling list available flag (scaling_list_enabled_flag) is explicitly signaled in the SPS, and thereafter, the scaling list (scaling_list_data()) can be individually parsed in the lower-level syntax (e.g., APS) based on the available flag (scaling_list_enabled_flag) in the SPS. Therefore, according to an embodiment of this document, since the scaling list data can be parsed / signaled in a hierarchical structure, the coding efficiency can be improved.

[0401] The decoding device can derive the quantized transform coefficients for the current block based on the residual information (S910).

[0402] As an embodiment, the decoding device can acquire the residual information included in the image information. As described above, the residual information can include information such as the value information of the quantized transform coefficients, position information, transform technique, transform kernel, quantization parameter, and the like. The decoding device can derive the quantized transform coefficients for the current block based on the quantized transform coefficient information included in the residual information.

[0403] The decoding device can derive the transform coefficients based on the quantized transform coefficients (S920).

[0404] As an embodiment, the decoding device can derive the transform coefficients by applying an inverse quantization process to the quantized transform coefficients. At this time, the decoding device can apply frequency-dependent weighted quantization that adjusts the quantization intensity according to the frequency. In this case, the inverse quantization process can be further performed based on the frequency-dependent quantization scale value. The quantization scale value for frequency-dependent weighted quantization can be derived using a scaling matrix. For example, the decoding device can use a predefined scaling matrix, or can also use the frequency-dependent quantization scale information for the scaling matrix signaled from the encoding device. The frequency-dependent quantization scale information can include scaling list data. A (modified) scaling matrix can be derived based on the scaling list data.

[0405] That is, when performing the inverse quantization process, the decoding device can further apply frequency-dependent weighted quantization. At this time, the decoding device can derive the transform coefficients by applying the inverse quantization process to the quantized transform coefficients based on the scaling list data.

[0406] As an embodiment, the decoding device can obtain the APS included in the image information and can obtain the scaling list data based on the APS type information included in the APS. For example, the decoding device can obtain the scaling list data included in the APS based on the SCALING_APS type information indicating that the APS includes the scaling list data. In this case, the decoding device can derive a scaling matrix based on the scaling list data, can derive a scaling factor based on the scaling matrix, and can apply inverse quantization based on the scaling factor to derive conversion coefficients. Since the process of performing scaling based on such scaling list data has been specifically described by taking Tables 5 to 17 as examples, in this embodiment, duplicate content and specific descriptions are omitted.

[0407] Also, the decoding device can determine whether to apply frequency-dependent weighted quantization in the inverse quantization process (that is, whether to derive conversion coefficients using a (frequency-based quantization) scaling list in the inverse quantization process). For example, the decoding device can determine the availability of using the scaling list data based on the first available flag obtained from the SPS included in the image information and / or the second available flag information obtained from the header information included in the image information. If it is determined to use the scaling list data based on the first available flag and / or the second available flag information, the decoding device can obtain the APS ID information for the APS including the scaling list data via the header information, identify the APS based on the APS ID information, and obtain the scaling list data from the identified APS.

[0408] The decoding device can derive residual samples based on the conversion coefficients (S930).

[0409] As one embodiment, the decoding device can derive the residual samples of the current block by performing inverse transformation on the transform coefficients for the current block. At this time, the decoding device acquires information indicating whether to apply inverse transformation to the current block (i.e., transform skip flag information), and can derive the residual samples based on this information (i.e., transform skip flag information).

[0410] For example, when inverse transformation is not applied to the transform coefficients (when the value of the transform skip flag information for the current block is 1), the decoding device can derive the transform coefficients as the residual samples of the current block. Or, when inverse transformation is applied to the transform coefficients (when the value of the transform skip flag information for the current block is 0), the decoding device can perform inverse transformation on the transform coefficients to derive the residual samples of the current block.

[0411] The decoding device can generate restored samples based on the residual samples (S940).

[0412] As one embodiment, the decoding device can determine whether to perform inter prediction or intra prediction on the current block based on the prediction information (e.g., prediction mode information) included in the image information, and can derive the prediction samples for the current block by performing the prediction according to the determination. Then, the decoding device can generate restored samples based on the prediction samples and the residual samples. At this time, the decoding device can immediately use the prediction samples as the restored samples according to the prediction mode, or can also generate the restored samples by adding the residual samples to the prediction samples. Also, a restored block or a restored picture can be derived based on the restored samples. Thereafter, as described above, the decoding device can apply in-loop filtering procedures such as deblocking filtering and / or SAO procedures to the restored picture to improve the subjective / objective image quality as necessary.

[0413] In the foregoing embodiments, the method is described based on a flowchart in a series of steps or blocks, but the embodiments of this document are not limited to the order of the steps, and a certain step can occur in a different order or simultaneously with steps different from the foregoing. Also, those skilled in the art can understand that the steps shown in the flowchart are not exclusive, other steps can be included, or one or more steps of the flowchart can be deleted without affecting the scope of this document.

[0414] The method according to the foregoing document can be realized in the form of software, and the encoding device and / or decoding device according to this document can be included in a device that executes image processing such as a TV, computer, smartphone, set-top box, display device, etc.

[0415] When the embodiments in this document are realized by software, the foregoing method can be realized by modules (processes, functions, etc.) that perform the foregoing functions. The modules can be stored in a memory and executed by a processor. The memory can be inside or outside the processor and can be connected to the processor by various well-known means. The processor can include an ASIC (application-specific integrated circuit), other chip sets, logic circuits, and / or data processing devices. The memory can include a ROM (read-only memory), RAM (random access memory), flash memory, memory card, storage medium, and / or other storage devices. That is, the embodiments described in this document can be realized and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing can be realized and executed on a computer, processor, microprocessor, controller, or chip. In this case, information for realization (for example, information on instructions) or algorithms can be stored in a digital storage medium.

[0416] In addition, the decoding device and encoding device to which this document is applicable can be included in multimedia broadcast transmission / reception devices, mobile communication terminals, home cinema video devices, digital cinema video devices, surveillance cameras, video conferencing devices, real-time communication devices such as video communication, mobile streaming devices, storage media, camcorders, video-on-demand (VoD) service providing devices, over-the-top (OTT) video devices, Internet streaming service providing devices, three-dimensional (3D) video devices, virtual reality (VR) devices, augmented reality (AR) devices, picture phone video devices, transportation means terminals (e.g., vehicles (including autonomous driving vehicles), airplane terminals, ship terminals, etc.), and medical video devices, etc., and can be used to process video signals or data signals. For example, OTT video devices can include game consoles, Blu-ray players, Internet-connected TVs, home theater systems, smartphones, tablet PCs, digital video recorders (DVRs), etc.

[0417] In addition, the processing method to which this document is applicable can be produced in the form of a program executed by a computer and can be stored in a computer-readable recording medium. Also, multimedia data having a data structure according to this document can be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which data that can be read by a computer is stored. The computer-readable recording medium can include, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Further, the computer-readable recording medium includes a medium realized in the form of a carrier wave (for example, transmission via the Internet). Also, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0418] In addition, the embodiments of this document can be realized by a computer program product with program code, and the program code can be executed by a computer according to the embodiments of this document. The program code can be stored on a carrier readable by a computer.

[0419] FIG. 11 shows an example of a content streaming system to which the embodiments disclosed in this document can be applied.

[0420] Referring to FIG. 11, the content streaming system to which the embodiments of this document are applied can generally include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.

[0421] The encoding server compresses the content input from a multimedia input device such as a smartphone, a camera, or a camcorder into digital data to generate a bitstream, and serves to transmit this to the streaming server. As another example, when a multimedia input device such as a smartphone, a camera, or a camcorder directly generates a bitstream, the encoding server can be omitted.

[0422] The bitstream can be generated by an encoding method or a bitstream generation method applicable to the embodiments of this document, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0423] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server serves as a medium to inform the user of what services are available. When the user requests a desired service from the web server, the web server transmits this to the streaming server, and the streaming server transmits multimedia data to the user. At this time, the content streaming system can include a separate control server, and in this case, the control server serves to control commands / responses between each device within the content streaming system.

[0424] The streaming server can receive content from a media repository and / or an encoding server. For example, when it comes to receiving content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.

[0425] Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcast terminal, a PDA (personal digital assistants), a PMP (portable multimedia player), a navigation device, a slate PC, a tablet PC, an ultrabook, a wearable device (for example, a smartwatch, a smart glass, an HMD (head mounted display)), a digital TV, a desktop computer, and a digital signage.

[0426] Each server in the content streaming system can be operated as a distributed server. In this case, the data received by each server can be distributedly processed.

[0427] The claims described in this document can be combined in various ways. For example, the technical features of the method claims in this document can be combined and implemented in a device, and the technical features of the device claims in this document can be combined and implemented in a method. Also, the technical features of the method claims in this document and the technical features of the device claims can be combined and implemented in a device, and the technical features of the method claims in this document and the technical features of the device claims can be combined and implemented in a method.

Claims

1. An image decoding method performed by a decoding device, obtaining image information including residual information and prediction information from a bitstream; deriving a predicted sample for a current block by performing prediction based on the prediction information; deriving quantized transform coefficients for the current block based on the residual information; deriving transform coefficients based on the quantized transform coefficients; deriving residual samples based on the transform coefficients; generating reconstructed samples based on the predicted samples and the residual samples; the image information includes an adaptation parameter set (APS) including scaling list data; The APS includes APS ID information and APS type information, The APS is identified based on the APS ID information; the APS type information specifies whether the APS is related to an adaptive loop filter (ALF), a luma mapping with chroma scaling (LMCS), or the scaling list data; The APS includes the scaling list data based on the APS type information; the APS ID information has a value within a specific range based on the APS type information that identifies the APS as an APS related to the scaling list data; The method, wherein the specific range is predetermined for the APS type information that identifies the APS as an APS related to the scaling list data.

2. An image encoding method performed by an encoding device, deriving a predicted sample for the current block by performing a prediction; deriving a residual sample for the current block based on the predicted sample; deriving transform coefficients based on the residual samples; deriving quantized transform coefficients by applying a quantization process to the transform coefficients; generating forecast information based on the forecast; generating residual information including information about the quantized transform coefficients; encoding image information including the prediction information and the residual information; the image information includes an adaptation parameter set (APS) including scaling list data; The APS includes APS ID information and APS type information, The APS is identified based on the APS ID information; the APS type information specifies whether the APS is related to an adaptive loop filter (ALF), a luma mapping with chroma scaling (LMCS), or the scaling list data; The APS includes the scaling list data based on the APS type information; the APS ID information has a value within a specific range based on the APS type information that identifies the APS as an APS related to the scaling list data; The method, wherein the specific range is predetermined for the APS type information that identifies the APS as an APS related to the scaling list data.

3. In a method for transmitting data for an image, obtaining a bitstream for the image, the bitstream comprising: deriving a predicted sample for the current block by performing a prediction; deriving a residual sample for the current block based on the predicted sample; deriving transform coefficients based on the residual samples; deriving quantized transform coefficients by applying a quantization process to the transform coefficients; generating forecast information based on the forecast; generating residual information including information about the quantized transform coefficients; encoding image information including the prediction information and the residual information; transmitting the data including the bitstream; the image information includes an adaptation parameter set (APS) including scaling list data; The APS includes APS ID information and APS type information, The APS is identified based on the APS ID information; the APS type information specifies whether the APS is related to an adaptive loop filter (ALF), a luma mapping with chroma scaling (LMCS), or the scaling list data; The APS includes the scaling list data based on the APS type information; the APS ID information has a value within a specific range based on the APS type information that identifies the APS as an APS related to the scaling list data; The method, wherein the specific range is predetermined for the APS type information that identifies the APS as an APS related to the scaling list data.