Image decoding method and apparatus based on BDPCM for luma and chroma components.

By applying BDPCM to luma and chroma blocks with availability and direction flags, the method addresses the inefficiency in high-resolution image coding, reducing bit depth and improving coding efficiency.

JP7879333B2Active Publication Date: 2026-06-23LG ELECTRONICS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2025-05-30
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

The increasing demand for high-resolution and high-quality images leads to a significant increase in transmission and storage costs due to the higher amount of information required, necessitating a high-efficiency image compression technology.

Method used

Applying Block-based Delta Pulse Code Modulation (BDPCM) to both luma and chroma blocks in image decoding, utilizing BDPCM availability and direction flags to determine prediction directions and generating restored pictures based on derived samples.

Benefits of technology

This approach reduces bit depth and improves overall coding efficiency by determining BDPCM availability in luminous and chroma blocks, enhancing image decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007879333000043
    Figure 0007879333000043
  • Figure 0007879333000044
    Figure 0007879333000044
  • Figure 0007879333000045
    Figure 0007879333000045
Patent Text Reader

Abstract

To provide an image decoding method.SOLUTION: An image decoding method to be performed by a decoding device includes the steps of: acquiring a BDPCM availability flag indicating whether block-based delta pulse code modulation (BDPCM) is available for a chroma block and a luma block; acquiring a BDPCM luma flag indicating whether BDPCM of a current luma block is applicable based on the BDPCM availability flag; and acquiring a BDPCM chroma flag indicating whether BDPCM of the current chroma block is applicable based on the BDPCM availability flag.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This document relates to image coding technology, and more particularly, to an image decoding method and apparatus for performing BDPCM in an image coding system.

Background Art

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

[0003] Thus, in order to effectively transmit, store, and reproduce high-resolution and high-quality image information, a high-efficiency image compression technology is required.

Summary of the Invention

Problems to be Solved by the Invention

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

[0005] Another technical problem of this document is to provide a method and apparatus for increasing the efficiency of BDPCM.

Means for Solving the Problems

[0006] According to one embodiment of this document, an image decoding method performed by a decoding device is provided. The method applies BDPCM (Block-based Delta Pulse Code) to chroma blocks and luma blocks. The method is characterized by including the steps of: obtaining a BDPCM availability flag to determine whether Modulation is available; obtaining a BDPCM luma flag to determine whether BDPCM is applicable to the current luma block based on the BDPCM availability flag; obtaining a BDPCM luma direction flag to determine the predicted direction of the current luma block based on the BDPCM luma flag; deriving a predicted sample of the current luma block based on an intra-prediction mode derived based on the BDPCM luma direction flag; obtaining a BDPCM chroma flag to determine whether BDPCM is applicable to the current chroma block based on the BDPCM availability flag; obtaining a BDPCM chroma direction flag to determine the predicted direction of the current chroma block based on the BDPCM chroma flag; deriving a predicted sample of the current chroma block based on an intra-prediction mode derived based on the BDPCM chroma direction flag; and generating a restored picture based on the predicted sample of the current luma block and the predicted sample of the current chroma block.

[0007] According to another embodiment of this document, a decoding device for image decoding is provided. The decoding device applies BDPCM (Block-based Delta Pulse Code) to chroma blocks and luma blocks. The system is characterized by including an entropy decoding unit that obtains a BDPCM availability flag to determine whether Modulation is available, obtains a BDPCM luma flag to determine whether BDPCM is applicable to the current luma block based on the BDPCM availability flag, obtains a BDPCM luma direction flag for the predicted direction of the current luma block based on the BDPCM luma flag, obtains a BDPCM chroma flag to determine whether BDPCM is applicable to the current chroma block based on the BDPCM availability flag, and obtains a BDPCM chroma direction flag for the predicted direction of the current chroma block based on the BDPCM chroma flag; a prediction unit that derives predicted samples of the current luma block based on an intra-prediction mode derived based on the BDPCM luma direction flag, and derives predicted samples of the current chroma block based on an intra-prediction mode derived based on the BDPCM chroma direction flag; and an addition unit that generates a restored picture based on the predicted samples of the current luma block and the predicted samples of the current chroma block.

[0008] Another embodiment of this document provides a video encoding method performed by an encoding device. The method includes the steps of: determining whether BDPCM (Block-based Delta Pulse Code Modulation) is available for a chroma block and a luma block; generating a BDPCM availability flag for the chroma block and the luma block based on the result of the determination; generating a predicted sample for the current luma block based on the BDPCM; generating a predicted sample for the current chroma block based on the BDPCM; generating BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block; and generating the BDPCM availability flag and the current luma block. The method includes the step of encoding image information including the BDPCM-related information and the BDPCM-related information for the current chroma block, wherein the BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applicable to the current chroma block and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block, and the BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applicable to the current chroma block and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block.

[0009] Another embodiment of this document provides a video encoding device. The encoding device determines whether BDPCM (Block-based Delta Pulse Code Modulation) is available for chroma blocks and luma blocks, generates a prediction sample for the current luma block based on the BDPCM, generates a prediction unit that generates a prediction sample for the current chroma block based on the BDPCM, generates a BDPCM availability flag indicating whether the BDPCM is available for the chroma block and the luma block based on the result of the determination, generates BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block, the BDPCM availability flag, the BDPCM-related information for the current luma block, The system also includes an entropy encoding unit that encodes image information including the BDPCM-related information for the current chroma block, wherein the BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applicable to the current chroma block and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block, and the BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applicable to the current chroma block and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block.

[0010] Another embodiment of this document provides a computer-readable digital storage medium that stores a bitstream containing image information triggering an image decoding method. In the computer-readable digital storage medium, the image decoding method applies BDPCM (Block-based Delta Pulse Code) to chroma blocks and luma blocks. The method is characterized by including the steps of: obtaining a BDPCM availability flag to determine whether Modulation is available; obtaining a BDPCM luma flag to determine whether BDPCM is applicable to the current luma block based on the BDPCM availability flag; obtaining a BDPCM luma direction flag to determine the predicted direction of the current luma block based on the BDPCM luma flag; deriving a predicted sample of the current luma block based on an intra-prediction mode derived based on the BDPCM luma direction flag; obtaining a BDPCM chroma flag to determine whether BDPCM is applicable to the current chroma block based on the BDPCM availability flag; obtaining a BDPCM chroma direction flag to determine the predicted direction of the current chroma block based on the BDPCM chroma flag; deriving a predicted sample of the current chroma block based on an intra-prediction mode derived based on the BDPCM chroma direction flag; and generating a restored picture based on the predicted sample of the current luma block and the predicted sample of the current chroma block. [Effects of the Invention]

[0011] According to this document, a single syntax element can determine whether BDPCM is available in the luminous and chroma blocks of an image, thereby reducing the bit depth for BDPCM and improving overall coating efficiency.

[0012] According to this paper, regardless of the image's chroma format, a BDPCM availability flag can be signaled to indicate whether BDPCM is available in the chroma blocks and chroma blocks within the image. This can reduce the complexity for BDPCM and improve overall coating efficiency. [Brief explanation of the drawing]

[0013] [Figure 1] An example of a video / image coding system to which the embodiments described herein may be applied is schematically shown. [Figure 2] This figure schematically illustrates the configuration of a video / image encoding device to which the embodiments described herein may be applied. [Figure 3] This figure schematically illustrates the configuration of a video / image decoding device to which the embodiments described herein may be applied. [Figure 4] This illustrates a hierarchical structure for coated images / videos. [Figure 5] An example of CABAC (context-adaptive binary arithmetic coding) for encoding syntax elements is shown. [Figure 6] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 7] This shows an example of a video / image encoding method for an intranet prediction platform. [Figure 8] The intra-prediction procedure is illustrated with an example. [Figure 9] This document outlines the image encoding method using the encoding device described herein. [Figure 10] A schematic diagram of the encoding device used for the image encoding method described in this document is shown below. [Figure 11] The image decoding method using the decoding device described in this document is outlined below. [Figure 12] A schematic diagram of a decoding device that performs the image decoding method described in this document is shown. [Figure 13]An exemplary structural diagram of a content streaming system to which embodiments of this document are applied is shown.

Best Mode for Carrying Out the Invention

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

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

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

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

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

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

[0020] 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 including previously captured video / images, etc. The video / image generation device can include, for example, a computer, a tablet, and a smartphone, etc., and can (electronically) generate video / images. For example, virtual video / images can be generated via a computer or the like, and in this case, the video / image capture process can be replaced during the process of generating related data.

[0021] An encoding device can encode input video / images. For compression and coding efficiency, the encoding device can perform a series of steps, including prediction, transformation, and quantization. The encoded data (encoded video / image information) can be output in bitstream format.

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

[0023] A decoding device can decode video / images by performing a series of steps, such as inverse quantization, inverse transformation, and prediction, corresponding to the operation of the encoding device.

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

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

[0026] This document presents various embodiments relating to video / image coding, and unless otherwise noted, these embodiments may be implemented in combination with each other.

[0027] In this document, "video" can mean a collection of images over time. "Picture" generally refers to a unit representing a single image at a specific time point in time, while "subpicture," "slice," and "tile" are units that constitute a part of a picture in coding. A subpicture, slice, or tile may contain one or more CTUs (coding tree units). A single picture may consist of one or more subpictures, slices, or tiles. A single picture may consist of one or more groups of tiles. A group of tiles may contain one or more tiles. A brick may represent a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consists of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A subpicture may represent a rectangular region of one or more slices within a picture. In other words, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a width specified by syntax elements in the picture parameter set and a height equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, tile groups and slices may be used interchangeably. For example, in this document, a tile group / tile group header may be called a slice / slice header.

[0028] A pixel or pel can refer to the smallest unit that makes up a picture (or image). Alternatively, the term "sample" can be used as a counterpart to pixel. A sample can generally represent a pixel or a pixel value, and can represent only the luma component pixel / pixel value, or only the chroma component pixel / pixel value.

[0029] A unit can represent a basic unit of image processing. A unit can contain at least one of a specific region of a picture and information associated with that region. A unit can contain one luma block and two chroma (e.g., cb, cr) blocks. The term unit may sometimes be used interchangeably with terms such as block or area. In general, an M×N block can contain a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.

[0030] In this specification, "A or B" may mean "A only," "B only," or "both A and B." In other words, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "A only," "B only," "C only," or "any combination of A, B and C."

[0031] In this specification, slashes ( / ) and commas may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "A only", "B only", or "both A and B". For example, "A, B, C" may mean "A, B or C".

[0032] In this specification, "at least one of A and B" may mean "A only," "B only," or "both A and B." Furthermore, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" may be interpreted similarly to "at least one of A and B."

[0033] Furthermore, in this specification, "at least one of A, B and C" may mean "A only," "B only," "C only," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."

[0034] Furthermore, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Also, when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be proposed as an example of "prediction."

[0035] Technical features described individually in each drawing in this specification may be implemented individually or simultaneously.

[0036] The following drawings have been prepared to illustrate a specific example of this specification. The names of specific devices and signals / messages / fields shown in the drawings are illustrative and not limited to the specific names used in the following drawings.

[0037] Figure 2 is a schematic diagram illustrating the configuration of a video / image encoding device to which the embodiments described in this document may be applied. Hereinafter, the term "video encoding device" may include an image encoding device.

[0038] As shown in Figure 2, the encoding device 200 can be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-predictor 221 and an intra-predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be called a reconstructor or a reconstructed block generator. The aforementioned image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, addition unit 250, and filtering unit 260 can be configured by one or more hardware components (e.g., an encoder chipset or processor) depending on the embodiment. The memory 270 may also include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.

[0039] The image splitting unit 210 can split an input image (or picture, frame) input to the encoding device 200 into one or more processing units. For example, one of these processing units may be called a coding unit (CU). In this case, a coding unit can be recursively split from a coding tree unit (CTU) or the largest coding unit (LCU) using a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, one coding unit can be split into multiple coding units of deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, followed by the binary-tree structure and / or the ternary structure. Alternatively, the binary-tree structure may be applied first. The coding procedure described in this document can be executed based on the final coding unit that cannot be further split. In this case, based on coding efficiency according to image characteristics, the largest coding unit can be immediately used as the final coding unit, or, if necessary, the coding unit can be recursively divided into lower-depth coding units so that the optimally sized coding unit is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further comprise a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit can each be separated or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the conversion unit is a unit that derives a conversion coefficient and / or a unit that derives a residual signal from the conversion coefficient.

[0040] The term "unit" can sometimes be used interchangeably with terms such as "block" or "area." Generally, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and may represent only the luminance (luma) component pixel / pixel value, or only the chroma component pixel / pixel value. A sample can be used as the term corresponding to a single picture (or image) pixel or pel.

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

[0042] The intra-prediction unit 222 can predict the current block by referring to a sample in the current picture. The referenced sample can be located in the vicinity (neighbor) of the current block or at a distance, depending on the prediction mode. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. Non-directional modes can include, for example, DC mode and Planar mode. Directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and more or fewer directional prediction modes can be used depending on the settings. The intra-prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.

[0043] The interprediction unit 221 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks existing in the current picture and temporally adjacent blocks existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporally adjacent block may be the same or different. The temporally adjacent block may be called a collocated reference block, colCU, etc., and the reference picture containing the temporally adjacent block may be called a collocated picture (colPic). For example, the interpretation unit 221 can construct a motion information candidate list based on adjacent blocks and generate information indicating which candidates are used to derive the motion vector and / or reference picture index of the current block. Interpretation can be performed based on various prediction modes; for example, in skip mode and merge mode, the interpretation unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In skip mode, unlike merge mode, a residual signal may not be transmitted.In motion vector prediction (MVP) mode, the motion vector of an adjacent block is used as a motion vector predictor, and the motion vector difference is signaled to indicate the motion vector of the current block.

[0044] The prediction unit 220 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for predictions on a single block, and can also apply intra-prediction and inter-prediction simultaneously. This can be called combined inter and intra prediction (CIIP). The prediction unit can also be based on intra-block copy (IBC) prediction mode or palette mode for predictions on blocks. The IBC prediction mode or palette mode can be used for content image / video coding such as in games, for example, as in SCC (screen content coding). IBC basically performs predictions within the current picture, but can be performed similarly to inter-prediction in that it derives reference blocks within the current picture. That is, IBC can utilize at least one of the inter-prediction techniques described in this document. Palette mode can be seen as an example of intra-coding or intra-prediction. When palette mode is applied, sample values ​​within the picture can be signaled based on information about the palette table and palette index.

[0045] The prediction signal generated via the prediction unit (including the inter-prediction unit 221 and / or the intra-prediction unit 222) can be used to generate a reconstructed signal or a residual signal. The transformation unit 232 can generate transformation coefficients by applying a transformation technique to the residual signal. For example, the transformation technique may include at least one of the following: DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT means a transformation obtained from a graph when the relationship information between pixels is represented by this graph. CNT means a transformation obtained by generating a prediction signal using all previously reconstructed pixels and obtaining a transformation based on it. The transformation process can also be applied to pixel blocks of the same size and square, or to non-square, variable-sized blocks.

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

[0047] The quantized conversion coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be reconstructed by applying inverse quantization and inverse transformation to the quantized conversion coefficients via the inverse quantization unit 234 and the inverse transformation unit 235. The adder 250 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter-prediction unit 221 or the intra-prediction unit 222. If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as the reconstructed block. The adder 250 can be called the reconstructor unit or reconstructed block generator. The generated reconstructed signal can be used for intra-prediction of the next block to be processed in the current picture, and can also be used for inter-prediction of the next picture after filtering, as described later.

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

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

[0050] The corrected restored picture sent to memory 270 can be used as a reference picture in the interpretation unit 221. When interpretation is applied via this, the encoding device can avoid prediction mismatches between the encoding device 200 and the decoding device 300, and can also improve encoding efficiency.

[0051] Memory 270DPB can store the corrected restored picture for use as a reference picture in the inter-prediction unit 221. Memory 270 can store motion information of blocks from which motion information has been derived (or encoded) in the current picture and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 221 for use as motion information of spatially adjacent blocks or motion information of temporally adjacent blocks. Memory 270 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 222.

[0052] Figure 3 is a schematic diagram illustrating the configuration of a video / image decoding device to which the embodiments described in this document may be applied.

[0053] As shown in Figure 3, the decoding device 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 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 322. The aforementioned entropy decoder 310, residual processor 320, predictor 330, adder 340, and filtering unit 350 can be configured by a single hardware component (e.g., a decoder chipset or processor) depending on the embodiment. The memory 360 can also include a decoded picture buffer (DPB) and can be configured by a digital storage medium. The aforementioned hardware component may also further include memory 360 as an internal / external component.

[0054] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct the image in accordance with the process by which the video / image information was processed in the encoding device shown in Figure 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Thus, the decoding processing units are, for example, coding units, which can be divided from a coding tree unit or a maximum coding unit according to a quad-tree structure, a binary tree structure, and / or a terminally tree structure. One or more conversion units can be derived from the coding unit. The reconstructed image signal decoded and output via the decoding device 300 can then be reproduced via a playback device.

[0055] The decoding device 300 can receive the signal output from the encoding device shown in Figure 2 in bitstream form, and the received signal can be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information about various parameter sets, such as the adaptation parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. The decoding device can further decode the picture based on the parameter set information and / or the general constraint information. The signaling / received information and / or syntax elements described later in this document can be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements necessary for image reconstruction, quantized values ​​of conversion coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using the information of the syntax element to be decoded, the decoded information of the surrounding and decoded blocks, or the symbol / bin information decoded in a previous step, predicts the probability of bin occurrence based on the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values ​​of each syntax element. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin.Of the information decoded by the entropy decoding unit 310, information related to prediction is provided to the prediction unit (inter-prediction unit 332 and intra-prediction unit 331), and the residual values ​​from which entropy decoding has been performed in the entropy decoding unit 310, i.e., quantized conversion coefficients and related parameter information, can be input to the residual processing unit 320. The residual processing unit 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). In addition, of the information decoded by the entropy decoding unit 310, information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives signals output from the encoding device can be further configured as an internal / external element of the decoding device 300, or the receiving unit is a component of the entropy decoding unit 310. On the other hand, the decoding device relating to this document may be called a video / image / picture decoding device, and the decoding device may also be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, inverse transformation unit 322, addition unit 340, filtering unit 350, memory 360, inter-prediction unit 332, and intra-prediction unit 331.

[0056] The inverse quantization unit 321 can inverse quantize the quantized transformation coefficients and output the transformation coefficients. The inverse quantization unit 321 can rearrange the quantized transformation coefficients in a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) to obtain the transformation coefficients.

[0057] In the inverse conversion unit 322, the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).

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

[0059] The prediction unit 320 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for prediction of a single block, and can also apply intra-prediction and inter-prediction simultaneously. This can be called combined inter and intra prediction (CIIP). The prediction unit can also be based on intra-block copy (IBC) prediction mode or palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as in games, for example, as in SCC (screen content coding). IBC basically performs prediction within the current picture, but can be performed similarly to inter-prediction in that it derives reference blocks within the current picture. That is, IBC can utilize at least one of the inter-prediction techniques described in this document. Palette mode can be seen as an example of intra-coding or intra-prediction. When palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.

[0060] The intra-prediction unit 331 can predict the current block by referring to a sample in the current picture. The referenced sample can be located in the vicinity (neighbor) of the current block or at a distance from it, depending on the prediction mode. In intra-prediction, the prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The intra-prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction modes applied to adjacent blocks.

[0061] The interprediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) identified by motion vectors on a reference picture. In this case, in order to reduce the amount of motion information transmitted from the interprediction mode, motion information can be predicted in blocks, subblocks, or samples based on the correlation of motion information between adjacent blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, adjacent blocks may include spatially adjacent blocks that exist in the current picture and temporally adjacent blocks that exist in the reference picture. For example, the interprediction unit 332 can construct a motion information candidate list based on adjacent blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Interprediction can be performed based on various prediction modes, and the prediction information may include information indicating the mode of interprediction for the current block.

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

[0063] The summing unit 340 may be called the restoration unit or restoration block generation unit. The generated restoration signal can be used for intra-prediction of the next block to be processed in the current picture, and can be output after filtering as described later, or it can be used for intra-prediction of the next picture.

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

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

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

[0067] In this specification, the embodiments described for the filtering unit 260, inter-prediction unit 221, and intra-prediction unit 222 of the encoding device 200 can be applied identically or in a corresponding manner to the filtering unit 350, inter-prediction unit 332, and intra-prediction unit 331 of the decoding device 300, respectively.

[0068] In this document, at least one of quantization / inverse quantization and / or transformation / inverse transformation may be omitted. If quantization / inverse quantization is omitted, the quantized transformation coefficient may be called a transformation coefficient. If transformation / inverse transformation is omitted, the transformation coefficient may be called a coefficient or residual coefficient, or for consistency of expression, may still be called a transformation coefficient.

[0069] In this document, quantized transformation coefficients and transformation coefficients may be referred to as transformation coefficients and scaled transformation coefficients, respectively. In this case, residual information may include information about the transformation coefficients (etc.), and such information may be signaled via residual coding syntax. Transformation coefficients may be derived based on the residual information (or information about the transformation coefficients (etc.)), and scaled transformation coefficients may be derived via inverse transformation (scaling) of the transformation coefficients. Residual samples may be derived based on inverse transformation (transformation) of the scaled transformation coefficients. This may be applied / expressed similarly in other parts of this document.

[0070] Figure 4 illustrates the hierarchical structure for coated images / videos.

[0071] Referring to Figure 4, the coated image / video is divided into the VCL (video coding layer), which handles the image / video decoding process and the image / video itself; a lower system that transmits and stores the encoded information; and the NAL (network abstraction layer), which exists between the VCL and the lower system and is responsible for network adaptation functions.

[0072] VCL can generate VCL data containing compressed image data (slice data), or it can generate parameter sets containing information such as Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (VPS), or SEI (Supplemental Enhancement Information) messages that are additionally necessary during the image decoding process.

[0073] NAL can generate NAL units by adding header information (NAL unit header) to the RBSP (Raw Byte Sequence Payload) generated by VCL. In this case, RBSP refers to slice data, parameter sets, SEI messages, etc., generated by VCL. The NAL unit header can include NAL unit type information identified by the RBSP data contained in the NAL unit.

[0074] As shown in the figure above, NAL units can be divided into VCL NAL units and Non-VCL NAL units by the RBSP generated by VCL. A VCL NAL unit may mean a NAL unit that contains information about the image (slice data), while a Non-VCL NAL unit may mean a NAL unit that contains information necessary for decoding the image (parameter set or SEI message).

[0075] The aforementioned VCL NAL units and Non-VCL NAL units can be transmitted over a network with header information added according to the data standards of the underlying system. For example, NAL units can be transformed into data formats of predetermined standards such as H.266 / VVC file format, RTP (Real-time Transport Protocol), and TS (Transport Stream), and transmitted over a variety of networks.

[0076] As mentioned above, the NAL unit type can be identified by the RBSP data structure contained within the NAL unit, and information about such NAL unit types can be stored in the NAL unit header and signaled.

[0077] For example, NAL units can be broadly classified into VCL NAL unit types and Non-VCL NAL unit types depending on whether or not they contain information (slice data) about the image. VCL NAL unit types can be further classified according to the nature and type of picture they contain, while Non-VCL NAL unit types can be classified according to the type of parameter set.

[0078] The following is an example of a NAL unit type identified according to the type of parameter set included in the Non-VCL NAL unit type.

[0079] - APS (Adaptation Parameter Set) NAL unit: Type for NAL units that include APS

[0080] - DPS (Decoding Parameter Set) NAL unit: Type for NAL units that include DPS

[0081] - VPS (Video Parameter Set) NAL unit: Type for NAL units including VPS

[0082] - SPS (Sequence Parameter Set) NAL unit: Type for NAL units that include SPS

[0083] - PPS (Picture Parameter Set) NAL unit: Type for NAL units that include PPS

[0084] - PH (Picture header) NAL unit: Type for NAL units that include PH

[0085] The aforementioned NAL unit type has syntax information for the NAL unit type, and this syntax information can be stored in the NAL unit header and signaled. For example, the syntax information may be nal_unit_type, and the NAL unit type can be identified by the nal_unit_type value.

[0086] On the other hand, as mentioned above, the encoding device can perform a variety of encoding methods, such as exponential Golomb, CAVLC (context-adaptive variable length coding), and CABAC (context-adaptive binary arithmetic coding). The decoding device can decode the information in the bitstream based on coding methods such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements necessary for image reconstruction and the quantized values ​​of conversion coefficients related to residuals.

[0087] For example, the coding method described above can be implemented as shown below.

[0088] Figure 5 illustrates CABAC (context-adaptive binary arithmetic coding) for encoding a syntax element. For example, in the CABAC encoding process, if the input signal is a syntax element that is not a binary value, the encoding device can convert the input signal to a binary value by binaryizing the value of the input signal. If the input signal is already a binary value (i.e., the value of the input signal is a binary value), binaryization can be bypassed. Here, each binary number 0 or 1 that makes up the binary value can be called a bin. For example, if the binary string after binaryization is 110, then 1, 1, and 0 are each called one bin. The bins for a syntax element can represent the value of the syntax element.

[0089] Subsequently, the binary-evolved bins of the syntax elements can be input to a regular coding engine or a bypass coding engine. The regular coding engine of the coding device can assign a context model that reflects the probability value to the bin and encode the bin based on the assigned context model. After encoding each bin, the regular coding engine of the coding device can update the context model for that bin. A bin encoded as described above can be referred to as a context-coded bin.

[0090] On the other hand, when the binary-evolved bins of the syntax elements are input to the bypass coding engine, they can be coded as follows. For example, the bypass coding engine of the encoding device omits the steps of estimating probabilities for the input bins and updating the probabilistic model applied to the bins after coding. When bypass coding is applied, the encoding device can apply a uniform probability distribution to encode the input bins instead of assigning a context model, thereby improving the coding speed. Bins coded as described above can be referred to as bypass bins.

[0091] Entropy decoding can be described as a process that performs the same steps as entropy encoding in reverse order.

[0092] For example, when a syntax element is decoded based on a context model, the decoding device can receive the bin corresponding to the syntax element via a bitstream, determine the context model using the syntax element and the decoded information of the block to be decoded or surrounding blocks, or the symbol / bin information decoded in a previous step, predict the probability of the received bin occurring based on the determined context model, perform arithmetic decoding of the bin, and derive the value of the syntax element. Subsequently, the context model of the next bin to be decoded can be updated with the determined context model.

[0093] Furthermore, for example, if a syntax element is bypass-decoded, the decoding device can receive the bins corresponding to the syntax element via a bitstream, apply a uniform probability distribution, and decode the input bins. In this case, the decoding device may omit the steps of deriving a context model of the syntax element and updating the context model applied to the bins after decoding.

[0094] Furthermore, as mentioned above, predictions are made to improve compression efficiency during video coding. Through this, a predicted block containing predicted samples for the current block, which is the block to be coded, can be generated. Here, the predicted block contains predicted samples in the spatial domain (or pixel domain). The predicted block is derived identically by the encoding device and the decoding device, and the encoding device can improve image coding efficiency by signaling the decoding device with information about the residual between the original block and the predicted block (residual information), which is not the original sample value of the original block itself. The decoding device can derive a residual block containing residual samples based on the residual information, and can generate a restored block containing restored samples by combining the residual block and the predicted block, and can generate a restored picture containing the restored block.

[0095] The residual information can be generated through transformation and quantization procedures. For example, an encoding device can derive a residual block between the original block and the predicted block, perform a transformation procedure on the residual samples (residual sample array) contained in the residual block to derive transformation coefficients, perform a quantization procedure on the transformation coefficients to derive quantized transformation coefficients, and signal the associated residual information (via a bitstream) to a decoding device. Here, the residual information may include information such as the value information, position information, transformation technique, transformation kernel, and quantization parameters of the quantized transformation coefficients. The decoding device can perform an inverse quantization / inverse transformation procedure based on the residual information to derive a residual sample (or residual block). The decoding device can generate a reconstructed picture based on the predicted block and the residual block. The encoding device can further inverse quantization / inverse transformation of the quantized transformation coefficients to derive a residual block for reference for subsequent interpretation of the picture, and generate a reconstructed picture based on this.

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

[0097] However, some of the surrounding reference samples in the current block may not yet be decoded or available. In this case, the decoder can construct the surrounding reference samples to be used for prediction by substituting the unavailable samples with the available samples, or by interpolating the available samples.

[0098] If a neighboring reference sample is derived, (i) a predicted sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, or (ii) a predicted sample can be derived based on a reference sample among the neighboring reference samples of the current block that is located in a specific (predicted) direction relative to the predicted sample. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode.

[0099] Furthermore, the predicted sample can also be generated by interpolation between a first peripheral sample located in the prediction direction of the current block's intra-prediction mode and a second peripheral sample located in the opposite direction of the prediction direction, based on the predicted sample of the current block. In the above case, it can be called linear interpolation intra-prediction (LIP). Alternatively, a linear model (LM) can be used to generate chroma prediction samples based on chroma samples. In this case, it can be called LM mode or CCLM (chroma component LM) mode.

[0100] Alternatively, a temporary predicted sample for the current block can be derived based on filtered peripheral reference samples, and the predicted sample for the current block can be derived by weighting the temporary predicted sample with at least one reference sample derived by the intra-prediction mode from the existing peripheral reference samples, i.e., the unfiltered peripheral reference samples. In the above case, it can be called PDPC (Position dependent intra-prediction).

[0101] Furthermore, intra-predictive coding can be performed by selecting the reference sample line with the highest prediction accuracy from among the multiple reference sample lines surrounding the current block, deriving the predicted sample using the reference sample located in the prediction direction on that line, and then instructing (signaling) the decoding device to use the reference sample line. In the above case, it can be called multi-reference line intra-prediction or MRL-based intra-prediction.

[0102] Furthermore, while intra-prediction is performed based on the same intra-prediction mode for dividing the current block into vertical or horizontal subpartitions, peripheral reference samples can be derived and used on a subpartition-by-subpartition basis. In other words, in this case, the intra-prediction mode for the current block is similarly applied to the subpartition, but by deriving and using peripheral reference samples on a subpartition-by-subpartition basis, intra-prediction performance can be improved in some cases. Such a prediction method can be called ISP (intra sub-partitions) based intra-prediction.

[0103] The intra-prediction methods described above can be distinguished from intra-prediction modes and referred to as intra-prediction types. These intra-prediction types can be referred to by various terms, such as intra-prediction techniques or additional intra-prediction modes. For example, the intra-prediction type (or additional intra-prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, and ISP. General intra-prediction methods that do not include specific intra-prediction types such as LIP, PDPC, MRL, and ISP can be referred to as normal intra-prediction types. Normal intra-prediction types can be generally applied when the aforementioned specific intra-prediction types are not applicable, and predictions may be made based on the aforementioned intra-prediction modes. On the other hand, post-processing filtering may be performed on the derived prediction samples as needed.

[0104] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction mode / type-based prediction sample derivation step. Additionally, a post-filtering step may be performed on the derived prediction samples, if necessary.

[0105] Figure 6 shows an example of a video / image encoding method for an intra-prediction platform.

[0106] As shown in Figure 6, the encoding device performs intraprediction for the current block (S600). The encoding device derives an intraprediction mode / type for the current block, derives peripheral reference samples for the current block, and generates predicted samples within the current block based on the intraprediction mode / type and the peripheral reference samples. Here, the intraprediction mode / type determination, peripheral reference sample derivation, and predicted sample generation procedures can be performed simultaneously, and any one procedure can be performed before the others. The encoding device can determine which mode / type to apply to the current block from among a plurality of intraprediction modes / types. The encoding device can compare the RD costs for the intraprediction modes / types and determine the optimal intraprediction mode / type for the current block.

[0107] On the other hand, the encoding device can also perform a predictive sample filtering procedure. This predictive sample filtering may be called post-filtering. The predictive sample filtering procedure may filter some or all of the predictive samples. In some cases, the predictive sample filtering procedure may be omitted.

[0108] The encoding device generates a residual sample for the current block based on the (filtered) predicted sample (S610). The encoding device can derive the residual sample by comparing the predicted sample with the original sample of the current block on a phase basis.

[0109] The encoding device can encode image information including information relating to the intra-prediction (prediction information) and residual information relating to the residual sample (S620). The prediction information may include the intra-prediction mode information and the intra-prediction type information. The encoding device can output the encoded image information in bitstream form. The output bitstream can be transmitted to a decoding device via a storage medium or network.

[0110] The residual information may include the residual coding syntax described later. The encoding device can transform / quantize the residual samples to derive quantized transformation coefficients. The residual information may include information regarding the quantized transformation coefficients.

[0111] On the other hand, as mentioned above, the encoding device can generate a restored picture (including restored samples and restored blocks). To this end, the encoding device can decrypt the quantized conversion coefficients again to derive (corrected) residual samples. The reason for decrypting the residual samples again after conversion / quantization is, as mentioned above, to derive the same residual samples as those derived from the decoding device. The encoding device can generate a restored block containing restored samples for the current block based on the predicted samples and the (corrected) residual samples. Based on the restored block, a restored picture for the current picture can be generated. As mentioned above, further procedures such as in-loop filtering may be applied to the restored picture.

[0112] Figure 7 shows an example of a video / image encoding method for an intra-prediction platform.

[0113] The decoding device can perform operations corresponding to those performed by the encoding device.

[0114] Predictive information and residual information can be obtained from the bitstream. Based on the residual information, a residual sample for the current block can be derived. Specifically, based on the quantized transformation coefficients derived from the residual information, inverse quantization can be performed to derive the transformation coefficients, and an inverse transformation can be performed on the transformation coefficients to derive a residual sample for the current block.

[0115] Specifically, the decoding device can derive an intra-prediction mode / type for the current block based on the received prediction information (intra-prediction mode / type information) (S700). The decoding device can derive surrounding reference samples for the current block (S710). The decoding device generates prediction samples within the current block based on the intra-prediction mode / type and the surrounding reference samples (S720). In this case, the decoding device can perform a prediction sample filtering procedure. Prediction sample filtering can be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.

[0116] The decoding device generates a residual sample for the current block based on the received residual information (S730). The decoding device generates a restored sample for the current block based on the predicted sample and the residual sample, and can derive a restored block containing the restored sample (S740). A restored picture for the current picture can be generated based on the restored block. As previously mentioned, in-loop filtering procedures and the like may be further applied to the restored picture.

[0117] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.

[0118] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information includes intra-prediction type index information that indicates one of the intra-prediction types. As another example, the intra-prediction type information includes at least one of the following: reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the block; or ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied. The intra-prediction type information also includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.

[0119] The intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded by the coding methods described in this document. For example, the intra-prediction mode information and / or the intra-prediction type information can be encoded / decoded via entropy coding (e.g., CABAC, CAVLC).

[0120] Figure 8 illustrates the intra-prediction procedure.

[0121] Referring to Figure 8, as mentioned above, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction execution (prediction sample generation) step. The intra-prediction procedure may be performed by an encoding device and a decoding device, as mentioned above. In this document, a coding device may include an encoding device and / or a decoding device.

[0122] As shown in Figure 8, the coding device determines the intra-prediction mode / type (S800).

[0123] The encoding device can determine which intra-prediction mode / type to apply to the current block from among the various intra-prediction modes / types described above, and can generate prediction-related information. The prediction-related information may include intra-prediction mode information representing the intra-prediction mode applied to the current block and / or intra-prediction type information representing the intra-prediction type applied to the current block. The decoding device can determine which intra-prediction mode / type to apply to the current block based on the prediction-related information.

[0124] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the MPM (most probable mode) or the remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) pointing to one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information.

[0125] Furthermore, the intra-prediction type information can be implemented in various forms. For example, the intra-prediction type information includes intra-prediction type index information that indicates one of the intra-prediction types. As another example, the intra-prediction type information includes at least one of the following: reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; or ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition if the ISP is applied. The intra-prediction type information also includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.

[0126] For example, when intra-prediction is applied, the intra-prediction mode applied to the current block may be determined using the intra-prediction modes of the surrounding blocks. For example, the coding device may select one of the MPM (most probable mode) candidates in the MPM (most probable mode) list derived based on the intra-prediction modes and / or additional candidate modes of the surrounding blocks of the current block (e.g., the left and / or upper surrounding blocks) based on the received MPM index, or it may select one of the remaining intra-prediction modes not included in the MPM candidates (and planar modes) based on MPM retainer information (remaining intra-prediction mode information). The MPM list may or may not include planar modes as candidates. For example, if the MPM list includes planar modes as candidates, the MPM list may have 6 candidates, and if the MPM list does not include planar modes as candidates, the MPM list may have 5 candidates. If the MPM list does not include planar mode as a candidate, a not-planar flag (e.g., intra_luma_not_planar_flag) indicating that the current intra-prediction mode of the block is not planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and not-planar flag may be signaled if the value of the MPM flag is 1. Also, the MPM index may be signaled if the value of the not-planar flag is 1. Here, the reason why the MPM list is configured not to include planar mode as a candidate is not because planar mode is not an MPM, but because planar mode is always considered as an MPM, so the flag (not-planar flag) is signaled first to check whether or not it is planar mode.

[0127] For example, whether the intra-prediction mode currently applied to a block is among the MPM candidates (and planar modes) or in the remaining mode can be indicated based on the MPM flag (e.g., intra_luma_mpm_flag). A value of 1 for the MPM flag indicates that the intra-prediction mode for the current block is among the MPM candidates (and planar modes), and a value of 0 for the MPM flag indicates that the intra-prediction mode for the current block is not among the MPM candidates (and planar modes). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) indicates that the intra-prediction mode for the current block is planar mode, and a value of 1 for the not planar flag indicates that the intra-prediction mode for the current block is not planar mode. The MPM index can be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra-prediction mode information can be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra-prediction mode information can be one of the remaining intra-prediction modes from the overall intra-prediction modes that are not included in the MPM candidate (and planar mode), indexed in order of prediction mode number. The intra-prediction mode can be an intra-prediction mode for a luma component (sample). The intra prediction mode information may include at least one of the following: the MPM flag (e.g., intra_luma_mpm_flag), the not planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), or the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, the MPM list may be referred to by various terms such as MPM candidate list, candModeList, etc.

[0128] If MIP is currently applied to a block, a separate MPM flag (e.g., intra_mip_mpm_flag), MPM index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) for MIP may be signaled, while the not planar flag may not be signaled.

[0129] In other words, when an image is generally divided into blocks, the current block and neighboring blocks to be coded will have similar image characteristics. Therefore, there is a high probability that the current block and neighboring blocks are identical or have similar intra-prediction modes. Thus, the encoder can use the intra-prediction mode of the neighboring block to encode the intra-prediction mode of the current block.

[0130] The coding device can construct an MPM (most probable modes) list for the current block. This MPM list can also be referred to as an MPM candidate list. Here, MPM refers to modes used in intra predictive mode coding to improve coding efficiency by considering the similarity between the current block and surrounding blocks. As mentioned above, the MPM list can be composed of planar modes or it can be composed of excluding planar modes. For example, if the MPM list includes planar modes, the number of candidates in the MPM list can be 6. If the MPM list does not include planar modes, the number of candidates in the MPM list can be 5.

[0131] The encoding device can perform predictions based on various intra-prediction modes and determine the optimal intra-prediction mode based on rate-distortion optimization (RDO) derived from these predictions. In this case, the encoding device can determine the optimal intra-prediction mode using only the MPM candidates and planar modes configured in the MPM list, or it can determine the optimal intra-prediction mode using not only the MPM candidates and planar modes configured in the MPM list but also the remaining intra-prediction modes. Specifically, for example, if the intra-prediction type of the current block is a specific type other than the normal intra-prediction type (e.g., LIP, MRL, or ISP), the encoding device can determine the optimal intra-prediction mode by considering only the MPM candidates and planar modes as intra-prediction mode candidates for the current block. That is, in this case, the intra-prediction mode for the current block can be determined from among the MPM candidates and planar modes, and in this case, the MPM flag does not need to be encoded / signaled. In this case, the decoding device can infer that the MPM flag is 1, even if the MPM flag is not separately signaled.

[0132] On the other hand, generally, if the intra prediction mode of the current block is not planar mode and is one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not found in the MPM list, the device generates MPM retainer information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block from among the remaining intra prediction modes not included in the MPM list (and planar mode). The MPM retainer information may include, for example, an intra_luma_mpm_remainder syntax element.

[0133] The decoding device obtains intra-prediction mode information from the bitstream. The intra-prediction mode information may include at least one of the following: the MPM flag, the not-planar flag, the MPM index, and the MPM retainer information (remaining intra-prediction mode information). The decoding device can configure an MPM list. The MPM list is configured similarly to the MPM list configured by the encoding device. That is, the MPM list may include intra-prediction modes of surrounding blocks and may further include specific intra-prediction modes in a predetermined manner.

[0134] The decoding device can determine the intra-prediction mode for the current block based on the MPM list and the intra-prediction mode information. For example, if the value of the MPM flag is 1, the decoding device can derive the planar mode as the intra-prediction mode for the current block (not based on the planar flag), or it can derive the candidate pointed to by the MPM index from among the MPM candidates in the MPM list as the intra-prediction mode for the current block. Here, the MPM candidates can represent only the candidates included in the MPM list, or they can include not only the candidates included in the MPM list but also the planar mode that can be applied when the value of the MPM flag is 1.

[0135] As another example, if the value of the MPM flag is 0, the decoding device can derive the intra-prediction mode pointed to by the remaining intra-prediction mode information (which may be called mpm remainder information) among the remaining intra-prediction modes not included in the MPM list and planar modes as the intra-prediction mode of the current block. On the other hand, as yet another example, if the intra-prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP), the decoding device can derive the candidate pointed to by the MPM flag in the planar mode or the MPM list as the intra-prediction mode of the current block without parsing / decoding / verifying the MPM flag.

[0136] The coding device derives peripheral reference samples for the current block (S810). If intraprediction is applied to the current block, peripheral reference samples to be used for intraprediction of the current block may be derived. The peripheral reference samples for the current block may include a total of 2 × nH samples adjacent to the left boundary and bottom-left of the current block of nW × nH size, a total of 2 × nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the peripheral reference samples for the current block may include upper peripheral samples in multiple columns and left peripheral samples in multiple rows. Furthermore, the surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block (nW × nH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.

[0137] On the other hand, if MRL is applied (i.e., if the value of the MRL index is greater than 0), the peripheral reference samples can be located on lines 1 or 2 that are not line 0 adjacent to the current block on the left / above side, and in this case, the number of peripheral reference samples can increase further. On the other hand, if ISP is applied, the peripheral reference samples can be derived on a subpartition basis.

[0138] The coding device performs intraprediction on the current block and derives predicted samples (S820). The coding device can derive the predicted samples based on the intraprediction mode / type and the surrounding samples. The coding device can derive reference samples from the surrounding reference samples of the current block based on the intraprediction mode of the current block, and can derive predicted samples for the current block based on the reference samples.

[0139] On the other hand, in one embodiment, the BDPCM (block differential pulse coded modulation or Block-based Delta Pulse Code Modulation) technique may be used. BDPCM is sometimes also called RDPCM (quantized Residual block-based Delta Pulse Code Modulation).

[0140] When BDPCM is applied to predict a block, the reconstructed sample can be used to predict the rows or columns of the block line by line. In this case, the reference sample used may be an unfiltered sample. The direction of the BDPCM can indicate whether vertical or horizontal prediction is being used. That is, when BDPCM is applied, the vertical or horizontal direction may be selected as the direction of the BDPCM, and the prediction may be made in the direction of the BDPCM. The prediction error can be quantized in the spatial domain, and the sample can be reconstructed by adding the inversely quantized prediction error to the prediction (i.e., the predicted sample). The prediction error may mean residual. As an alternative to such a BDPCM, a quantized residual domain BDPCM may be proposed, in which the prediction direction and signaling may be the same as that of the BDPCM applied to the spatial domain. That is, the quantization coefficients themselves can be superimposed via the quantized residual domain BDPCM, similar to DPCM (Delta Pulse Code Modulation), and then the residual can be reconstructed via inverse quantization. Therefore, the term "quantized residual domain BDPCM" can be used to mean applying DPCM at the coding stage of the residual. The quantized residual domain used below refers to a domain for quantized residual samples where the residual derived based on predictions is quantized without transformation. For example, a quantized residual domain may include quantized residuals (or quantized residual coefficients) to which transformation skipping is applied, i.e., transformation is skipped for residual samples, but quantization is applied. Alternatively, for example, a quantized residual domain may include quantized transformation coefficients.

[0141] For an MXN-sized block, the residual derived using predicted values ​​obtained by performing intra-prediction horizontally (copying the sample lines around the left edge to the prediction block line by line) or vertically (copying the sample lines around the upper edge to the prediction block line by line) using unfiltered samples from the left or upper boundary (i.e., samples around the left edge or samples around the upper edge), is r (i,j) We can assume (0≦i≦M-1, 0≦j≦N-1), where M can represent a row or height, and N can represent a column or width. (i,j) The quantized value of Q(r (i,j) We can assume that (0 ≤ i ≤ M-1, 0 ≤ j ≤ N-1). Here, the residual means the difference between the original block value and the predicted block value.

[0142] Subsequently, when BDPCM is applied to quantized residual samples, A modified M×N array consisting of JPEG0007879333000001.jpg10116 JPEG0007879333000002.jpg7138 can be derived.

[0143] For example, when vertical BDPCM is signaled (i.e., when vertical BDPCM is applied), JPEG0007879333000003.jpg8132 can be derived as follows:

[0144]

number

[0145] That is, for example, when vertical BDPCM is applied, the encoding device can perform vertical intra-predictions based on the upper peripheral samples, and the quantized residual samples for the current block can be derived as shown in Equation 1 above. Referring to Equation 1 above, the quantized residual samples for all rows of the current block except the first row can be derived as the difference between the quantized value for the position in question and the quantized value for the position in the previous row of that position (i.e., the position in the upper peripheral area of ​​that position).

[0146] Furthermore, when applied similarly to horizontal prediction (i.e., when horizontal BDPCM is applied), the residual quantized samples can be derived as follows:

[0147]

number

[0148] That is, for example, when horizontal BDPCM is applied, the encoding device can perform horizontal intra-predictions based on samples around the left side, and the quantized residual samples for the current block can be derived as shown in Equation 2 above. Referring to Equation 2 above, the quantized residual samples for all columns of the current block except the first column can be derived as the difference between the quantized value for the position and the quantized value for the position in the previous column of the position (i.e., the position around the left side of the position).

[0149] The quantized residual sample JPEG0007879333000006.jpg10117 can be sent to a decoding device.

[0150] In the decoding device, Q(r (i,j)To derive (0≦i≦M-1, 0≦j≦N-1), the above operation can be performed in reverse.

[0151] For vertical forecasting, the following formula can be applied.

[0152]

number

[0153] Furthermore, the following formula can be applied to horizontal forecasting.

[0154]

number

[0155] Inverse quantized quantized resistive JPEG0007879333000009.jpg12122 is combined with the predicted values ​​of the intrablock to derive the recovered sample values.

[0156] The main advantage of this technique is that inverse BDPCM can be performed by simply adding predictors during or after the coefficient parsing.

[0157] As described above, BDPCM can be applied to quantized residual domains, which can contain quantized residuals (or quantized residual coefficients), in which case transformation skipping can be applied to the residuals. That is, when BDPCM is applied, transformation is skipped for residual samples, and quantization can be applied. Alternatively, quantized residual domains can contain quantized transformation coefficients. A flag indicating the applicability of BDPCM can be signaled at the sequence level (SPS), and such a flag may also be signaled only when the SPS signals that transformation skipping mode is possible. The flag may be called the BDPCM-enabled flag or the SPS BDPCM-enabled flag.

[0158] When BDPCM is applied, intra-prediction can be performed on the entire block by sample copies in a prediction direction similar to the intra-prediction direction (e.g., vertical or horizontal prediction). The residual, which is the difference between the original and the predicted block, is quantized with the transformation skipped, and the delta value between the quantized residual and the predictor for the horizontal or vertical direction (i.e., the quantized residual for the horizontal or vertical direction) is the difference value. It is possible to code JPEG0007879333000010.jpg10130.

[0159] If BDPCM is applicable, and the CU size is less than or equal to MaxTsSize (maximum transformation skip block size) for the luma sample, and the CU is coated with intra-prediction, then flag information can be transmitted at the CU level. The flag information may be called the BDPCM flag, where MaxTsSize may mean the maximum block size for which transformation skip mode is permitted. The flag information can indicate whether normal intra-coding is applied or whether BDPCM is applied. If BDPCM is applied, a BDPCM prediction direction flag can be transmitted indicating whether the prediction direction is horizontal or vertical. The BDPCM prediction direction flag may be called the BDPCM direction flag. The block can then be predicted through a normal horizontal or vertical intra-prediction process using an unfiltered reference sample. The residuals may also be quantized, and the difference between each quantized residual and its predictor, for example, the difference between already quantized residuals at peripheral positions that are horizontal or vertical by the BDPCM prediction direction, may be coded.

[0160] On the other hand, the aforementioned BDPCM can be described in the format of a standard document, as will be discussed later.

[0161] For example, the syntax element for the aforementioned BDPCM availability flag and the semantics for the syntax element can be shown in the following table.

[0162] [Table 1]

[0163] [Table 2]

[0164] Table 1 shows the sps_bdpcm_enabled_flag and sps_bdpcm_chroma_enabled_flag signaled by the SPS (Sequence parameter set). If the syntax element sps_bdpcm_enabled_flag is 1, it indicates that flag information indicating whether BDPCM is applied to the coding chroma unit where intra prediction is performed, i.e., that "intra_bdpcm_luma_flag" exists in the coding chroma unit. If the syntax element sps_bdpcm_chroma_enabled_flag is 1, it indicates that flag information indicating whether BDPCM is applied to the coding chroma unit where intra prediction is performed, i.e., that "intra_bdpcm_chroma_flag" exists in the coding chroma unit. The syntax elements sps_bdpcm_enabled_flag and sps_bdpcm_chroma_enabled_flag can be syntax elements for the BDPCM availability flags mentioned above. Furthermore, if the syntax element "sps_bdpcm_enabled_flag" does not exist, its value may be considered 0. In addition, if the syntax element "sps_bdpcm_chroma_enabled_flag" does not exist, its value may be considered 0.

[0165] Furthermore, for example, the syntax elements for the BDPCM flag and BDPCM direction flag mentioned above can be separately signaled for the luminous and chroma components. For example, the coding unit syntax including the syntax elements and the semantics for the syntax elements can be shown in the following table.

[0166] [Table 3-1]

[0167] Table 3-2

[0168] Table 3-3

[0169] Table 3-4

[0170] Table 3-5

[0171] Table 3-6

[0172] Table 3-7

[0173] Table 3-8

[0174] Table 4

[0175] As described above, the syntax element intra_bdpcm_luma_flag in Table 3 can indicate whether BDPCM is currently applied to the luma block, and intra_bdpcm_chroma_flag can indicate whether BDPCM is currently applied to the luma block or the chroma block. For example, if the value of intra_bdpcm_luma_flag or intra_bdpcm_chroma_flag is 1, the transformation for that coding block is skipped, and the prediction mode for the coding block can be set horizontally or vertically by intra_bdpcm_luma_dir_flag or intra_bdpcm_chroma_dir_flag, which indicates the prediction direction. If intra_bdpcm_luma_flag or intra_bdpcm_chroma_flag does not exist, this value may be considered 0.

[0176] Furthermore, for example, if the value of intra_bdpcm_luma_dir_flag or intra_bdpcm_chroma_dir_flag, which indicates the prediction direction, is 0, it can be said that the prediction direction of the BDPCM is horizontal, and if the value of intra_bdpcm_luma_dir_flag or intra_bdpcm_chroma_dir_flag is 1, it can be said that the prediction direction of the BDPCM is vertical.

[0177] On the other hand, intra_bdpcm_luma_flag can represent the syntax element of the BDPCM luma flag for the current luma block, intra_bdpcm_chroma_flag can represent the syntax element of the BDPCM chroma flag for the current chroma block, intra_bdpcm_luma_dir_flag can represent the syntax element of the BDPCM luma direction flag for the current luma block, and intra_bdpcm_chroma_dir_flag can represent the syntax element of the BDPCM chroma direction flag for the current chroma block.

[0178] Furthermore, when BDPCM is applied, an example of the inverse quantization process can be shown in the following table.

[0179] [Table 5-1]

[0180] [Table 5-2]

[0181] [Table 5-3]

[0182] Alternatively, when BDPCM is applied, an example of the inverse quantization process can be shown in the following table.

[0183] [Table 6-1]

[0184] [Table 6-2]

[0185] [Table 6-3]

[0186] [Table 6-4]

[0187] Referring to Table 5 or Table 6, if the value of bdpcm_flag is 1, the inversely quantized residual value d[x][y] can be derived based on the intermediate variable dz[x][y]. Here, x is a horizontal coordinate increasing from left to right, and y is a vertical coordinate increasing from top to bottom, and the position within a 2D block can be denoted as (x,y). Furthermore, the position within a 2D block indicates the position of (x,y) when the top-left position of the block is set to (0,0).

[0188] For example, if the value of bdpcm_dir_flag is 0, i.e., if horizontal BDPCM is applied, the variable dz[x][y] can be derived based on TransCoeffLevel[xTbY][yTbY][cIdx][x][y] if x is 0, and on dz[x-1][y]+dz[x][y] if x is not 0. That is, when horizontal BDPCM is applied (value of bdpcm_dir_flag is 0), the variable dz[x][y] of a sample located in the first column where x is 0 can be derived from TransCoeffLevel[xTbY][yTbY][cIdx][x][y] derived based on the residual information of the sample, and the variable dz[x][y] of a sample located in a column other than the first column where x is not 0 can be derived from the sum of dz[x-1][y] of the samples to the left of the sample and dz[x][y] for the sample. Here, the dz[x][y] for the sample, which is combined with the dz[x-1][y], can be derived based on residual information for the signaled sample.

[0189] Furthermore, for example, if the value of bdpcm_dir_flag is 1, that is, if vertical BDPCM is applied, the variable dz[x][y] can be derived based on dz[x][y-1] + dz[x][y]. That is, when vertical BDPCM is applied (the value of bdpcm_dir_flag is 1), the variable dz[x][y] of a sample located in the first row where y is 0 can be derived from TransCoeffLevel[xTbY][yTbY][cIdx][x][y] derived based on the residual information of the said sample, and the variable dz[x][y] of a sample located in any row other than the first row where y is not 0 can be derived from the sum of dz[x][y-1] of the samples above the said sample and dz[x][y] for the said sample. Here, the dz[x][y] for the said sample that is combined with dz[x][y-1] can be derived based on the residual information for the said sample that is signaled.

[0190] As described above, the residual at a particular location can be derived based on the sum of the residual at a previous horizontal or vertical location (i.e., to the left or above) and the value received in the residual information for that particular location. This is because, when BDPCM is applied, the difference between the residual sample value at the particular location (x,y) and the residual sample value at a previous horizontal or vertical location (i.e., (x-1,y) or (x,y-1)) is signaled in the residual information.

[0191] As described above, information for BPDCM can be signaled, but this document proposes another embodiment for signaling information for BDPCM. For example, according to existing video standards, YUV420 can only perform BDPCM on luma blocks, while YUV444 can perform BDPCM on both luma and chroma blocks. As shown in Table 1 above, the SPS (sequence parameter set) syntax allows the transmission of sps_bdpcm_enabled_flag, which is the syntax element for the BDPCM enabled flag for luma blocks, and sps_bdpcm_chroma_enabled_flag, which is the syntax element for the BDPCM enabled flag for chroma blocks. In particular, the BDPCM enabled flag for chroma blocks can only be transmitted if BDPCM is enabled for luma blocks and the chroma format of the image is YUV444 (i.e., chroma_format_idc=3).

[0192] Unlike the above, this document proposes an embodiment that controls whether BDPCM is available for both luminous and chroma blocks based on a single flag. For example, in the proposed embodiment, only one syntax element sps_bdpcm_enabled_flag for whether BDPCM is available may be sent in the SPS syntax, as shown in Table 7 below, and the availability / unavailability of BDPCM for both luminous and chroma blocks can be derived from this. According to this embodiment, it is possible to determine whether BDPCM is available in the luminous and chroma blocks of an image using a single syntax element, thereby reducing the bit count for BDPCM and improving overall coating efficiency.

[0193] [Table 7]

[0194] [Table 8]

[0195] For example, referring to Table 8, if sps_bdpcm_enabled_flag is 1, it means that BDPCM is available for both luma blocks and chroma blocks, and if sps_bdpcm_enabled_flag is 0, it may mean that BDPCM is not available for both luma blocks and chroma blocks. In other words, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can indicate that BDPCM is available for coding units where intra-prediction is performed (including luma and chroma components), and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that BDPCM is not available for coding units where intra-prediction is performed. That is, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can be indicated that intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag exist in the coding unit, and if the syntax element sps_bdpcm_enabled_flag is 0, it can be indicated that intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag do not exist in the coding unit. intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag may also be denoted as intra_bdpcm_flag.

[0196] On the other hand, the flag indicating whether BDPCM is available may be sent not only in the SPS syntax shown as an example, but also in APS (Adaptation Parameter Set) syntax, PPS (Picture Parameter Set) syntax, VPS (Video Parameter Set) syntax, DPS (Decoding Parameter Set) syntax, picture header syntax, or slice header syntax.

[0197] Furthermore, in the proposed embodiment, the semantics for the syntax element sps_bdpcm_enabled_flag may be modified as shown in Table 8.

[0198] Furthermore, in this embodiment, the syntax element sps_bdpcm_enabled_flag controls at once whether BDPCM is available for both the luma block and the chroma block, so the syntax of the coding unit according to this embodiment is as shown in the following table.

[0199] [Table 9-1]

[0200] [Table 9-2]

[0201] [Table 9-3]

[0202] [Table 9-4]

[0203] [Table 9-5]

[0204] [Table 9-6]

[0205] [Table 9-7]

[0206] [Table 9-8]

[0207] Furthermore, this document proposes another embodiment for signaling information regarding BDPCM. For example, this document proposes an embodiment that controls whether BDPCM is available for both luma blocks and chroma blocks, regardless of the image's chroma format. According to this embodiment, information regarding the availability of BDPCM for luma blocks and information regarding the availability of BDPCM for chroma blocks can be transmitted, regardless of the image's chroma format. According to this embodiment, a BDPCM chroma availability flag indicating whether BDPCM is available for chroma blocks in an image can be signaled, regardless of the image's chroma format, thereby reducing the complexity for BDPCM and improving overall coding efficiency.

[0208] For example, in the proposed embodiment, if the transformation skip mode is available as shown in Table 10 below (i.e., sps_transform_skip_enabled_flag is 1), the SPS syntax can send the syntax element sps_bdpcm_enabled_flag indicating whether the BDPCM for the chroma block is available and the syntax element sps_bdpcm_chroma_enabled_flag indicating whether the BDPCM for the chroma block is available.

[0209] [Table 10]

[0210] [Table 11]

[0211] For example, if sps_bdpcm_enabled_flag is 1, it means that BDPCM is available for the luma block, and if sps_bdpcm_enabled_flag is 0, it may mean that BDPCM is not available for the luma block. In other words, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can indicate that BDPCM is available for the luma coding unit where intra prediction is performed, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that BDPCM is not available for the luma coding unit where intra prediction is performed. In other words, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can indicate that intra_bdpcm_luma_flag exists in the coding unit, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that intra_bdpcm_luma_flag does not exist in the coding unit.

[0212] Furthermore, for example, if sps_bdpcm_chroma_enabled_flag is 1, it means that BDPCM is available for the chroma block, and if sps_bdpcm_chroma_enabled_flag is 0, it may mean that BDPCM is not available for the chroma block. In other words, for example, if the syntax element sps_bdpcm_chroma_enabled_flag is 1, it can indicate that BDPCM is available for the chroma coding unit where intra prediction is performed, and if the syntax element sps_bdpcm_chroma_enabled_flag is 0, it can indicate that BDPCM is not available for the chroma coding unit where intra prediction is performed. In other words, for example, if the syntax element sps_bdpcm_chroma_enabled_flag is 1, it can indicate that intra_bdpcm_chroma_flag exists in the coding unit, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that intra_bdpcm_chroma_flag does not exist in the coding unit.

[0213] On the other hand, the flag indicating whether BDPCM is available may be sent not only in the SPS syntax shown as an example, but also in APS (Adaptation Parameter Set) syntax, PPS (Picture Parameter Set) syntax, VPS (Video Parameter Set) syntax, DPS (Decoding Parameter Set) syntax, picture header syntax, or slice header syntax.

[0214] Furthermore, in the proposed embodiment, the semantics for the syntax elements sps_bdpcm_enabled_flag and sps_bdpcm_chroma_enabled_flag may be modified as shown in Table 11.

[0215] Furthermore, this document proposes another embodiment for signaling information regarding BDPCM. For example, this document proposes an embodiment that controls whether BDPCM is available for both luma blocks and chroma blocks, regardless of the image's chroma format. According to this embodiment, information regarding whether BDPCM is available for luma blocks and information regarding whether BDPCM is available for chroma blocks are transmitted, respectively, regardless of the image's chroma format, and the information regarding whether BDPCM is available for chroma blocks can be transmitted only if BDPCM is available for luma blocks. According to this embodiment, a BDPCM availability flag indicating whether BDPCM is available for luma blocks and chroma blocks in an image can be signaled, regardless of the image's chroma format, thereby reducing the complexity for BDPCM and improving overall coding efficiency.

[0216] For example, in the proposed embodiment, as shown in Table 12 below, if the transformation skip mode is available (i.e., sps_transform_skip_enabled_flag is 1), the syntax element sps_bdpcm_enabled_flag can be sent in SPS syntax to indicate whether BDPCM is available for the luma block, and if BDPCM is available for the luma block (i.e., sps_bdpcm_enabled_flag is 1), the syntax element sps_bdpcm_chroma_enabled_flag can be sent to indicate whether BDPCM is available for the chroma block.

[0217] [Table 12]

[0218] [Table 13]

[0219] For example, if sps_bdpcm_enabled_flag is 1, it means that BDPCM is available for the luma block, and if sps_bdpcm_enabled_flag is 0, it may mean that BDPCM is not available for the luma block. In other words, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can indicate that BDPCM is available for the luma coding unit where intra prediction is performed, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that BDPCM is not available for the luma coding unit where intra prediction is performed. In other words, for example, if the syntax element sps_bdpcm_enabled_flag is 1, it can indicate that intra_bdpcm_luma_flag exists in the coding unit, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that intra_bdpcm_luma_flag does not exist in the coding unit.

[0220] Furthermore, for example, if sps_bdpcm_chroma_enabled_flag is 1, it means that BDPCM is available for the chroma block, and if sps_bdpcm_chroma_enabled_flag is 0, it may mean that BDPCM is not available for the chroma block. In other words, for example, if the syntax element sps_bdpcm_chroma_enabled_flag is 1, it can indicate that BDPCM is available for the chroma coding unit where intra prediction is performed, and if the syntax element sps_bdpcm_chroma_enabled_flag is 0, it can indicate that BDPCM is not available for the chroma coding unit where intra prediction is performed. In other words, for example, if the syntax element sps_bdpcm_chroma_enabled_flag is 1, it can indicate that intra_bdpcm_chroma_flag exists in the coding unit, and if the syntax element sps_bdpcm_enabled_flag is 0, it can indicate that intra_bdpcm_chroma_flag does not exist in the coding unit.

[0221] On the other hand, the flag indicating whether BDPCM is available may be sent not only in the SPS syntax shown as an example, but also in APS (Adaptation Parameter Set) syntax, PPS (Picture Parameter Set) syntax, VPS (Video Parameter Set) syntax, DPS (Decoding Parameter Set) syntax, picture header syntax, or slice header syntax.

[0222] Furthermore, this document proposes another embodiment for signaling information to BDPCM. For example, this document proposes an embodiment in which one of the above embodiments is further processed as described below. For example, according to this embodiment, BDPCM is available for both luma blocks and chroma blocks in SPS syntax, VPS syntax, DPS syntax, picture header syntax, or slice header syntax, and certain conditions for BDPCM to be performed are met, in which case intra_bdpcm_chroma_flag and intra_bdpcm_chroma_dir_flag are not sent in CU syntax or TU syntax, and the value of intra_bdpcm_chroma_flag may be derived from the value of intra_bdpcm_luma_flag, and the value of intra_bdpcm_chroma_dir_flag may be derived from the value of intra_bdpcm_luma_dir_flag. Here, for example, the specific conditions may be that the tree type is a dual tree and / or that the width and height of the current block are all smaller than the maximum size of the transformation skip block (i.e., cbWidth <= MaxTsSize && cbHeight <= MaxTsSize).

[0223] Alternatively, for example, according to this embodiment, if certain conditions are met under which the BDPCM can be performed, intra_bdpcm_chroma_flag is not transmitted, and the value of intra_bdpcm_chroma_flag may be derived from the value of intra_bdpcm_luma_flag. This means that if the luma block of the current block is coded in BDPCM mode, the chroma block of the current block is coded in BDPCM mode without the transmission of an additional syntax element (i.e., intra_bdpcm_chroma_flag). However, in the above embodiment, intra_bdpcm_chroma_dir_flag may have a different value independently of intra_bdpcm_luma_dir_flag. That is, in the above embodiment, intra_bdpcm_chroma_dir_flag for the current block can be transmitted.

[0224] As another example, if the BDPCM is performed under certain conditions, and both intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag for the current block are 1, then intra_bdpcm_chroma_dir_flag is not sent, and the value of intra_bdpcm_chroma_dir_flag can be derived from the value of intra_bdpcm_luma_dir_flag.

[0225] Furthermore, this document proposes another embodiment for signaling information to BDPCM. For example, this document proposes an embodiment in which one of the above embodiments is further modified by performing the process described below.

[0226] For example, according to this embodiment, BDPCM for chroma blocks is available based on intra_bdpcm_enabled_flag or intra_bdpcm_chroma_enabled_flag in high-level syntax (e.g., SPS syntax, VPS syntax, DPS syntax, picture header syntax, or slice header syntax), and the tree type is single tree. In this case, intra_bdpcm_chroma_flag and intra_bdpcm_chroma_dir_flag for each chroma block (Cb chroma block and Cr chroma block) are not sent separately in CU syntax or TU syntax, and intra_bdpcm_chroma_flag and intra_bdpcm_chroma_dir_flag for Cb chroma block and Cr chroma block can be sent. In other words, if the transmitted value of intra_bdpcm_chroma_flag is 1, it means that both the Cb chroma block and Cr chroma block of the current block will be coded in BDPCM mode, and if the transmitted value of intra_bdpcm_chroma_flag is 0, it means that neither the Cb chroma block nor Cr chroma block of the current block will be coded in BDPCM mode. Also, if the value of intra_bdpcm_chroma_dir_flag is 0, it means that the predicted direction of BDPCM for the Cb chroma block and Cr chroma block of the current block is horizontal, and if the value of intra_bdpcm_chroma_dir_flag is 1, it may mean that the predicted direction of BDPCM for the Cb chroma block and Cr chroma block of the current block is vertical.

[0227] Alternatively, for example, according to this embodiment, BDPCM for chroma blocks is available based on intra_bdpcm_enabled_flag or intra_bdpcm_chroma_enabled_flag in high-level syntax (e.g., SPS syntax, VPS syntax, DPS syntax, picture header syntax, or slice header syntax), and if the tree type is single tree, then intra_bdpcm_chroma_flag for each chroma block (Cb chroma block and Cr chroma block) is not sent separately in CU syntax or TU syntax, and intra_bdpcm_chroma_flag for both Cb and Cr chroma blocks can be sent. In other words, if the transmitted value of intra_bdpcm_chroma_flag is 1, it means that both the Cb chroma block and the Cr chroma block of the current block will be coded in BDPCM mode, and if the transmitted value of intra_bdpcm_chroma_flag is 0, it means that neither the Cb chroma block nor the Cr chroma block of the current block will be coded in BDPCM mode. Here, an intra_bdpcm_chroma_dir_flag may be transmitted for each chroma block, and the intra_bdpcm_chroma_dir_flag for each chroma block may have different values.

[0228] For example, according to this embodiment, BDPCM for chroma blocks is available based on intra_bdpcm_enabled_flag or intra_bdpcm_chroma_enabled_flag in high-level syntax (e.g., SPS syntax, VPS syntax, DPS syntax, picture header syntax, or slice header syntax), and if the tree type is single tree, then intra_bdpcm_chroma_flag may be sent for each chroma block (Cb chroma block and Cr chroma block) in CU syntax or TU syntax, and intra_bdpcm_chroma_dir_flag may be sent for both the Cb chroma block and the Cr chroma block.

[0229] In other words, if the value of intra_bdpcm_chroma_flag sent to both chroma blocks is 1, the intra_bdpcm_chroma_dir_flag for the chroma block that is coded later will not be coded, and the intra_bdpcm_chroma_dir_flag for the chroma color difference block that is coded earlier may be directly derived as the intra_bdpcm_chroma_dir_flag for the chroma block that is coded later. For example, if the value of intra_bdpcm_chroma_dir_flag is 0, it means that the predicted direction of the BDPCM for the Cb chroma block and Cr chroma block of the current block is horizontal, and if the value of intra_bdpcm_chroma_dir_flag is 1, it may mean that the predicted direction of the BDPCM for the Cb chroma block and Cr chroma block of the current block is vertical.

[0230] Figure 9 schematically illustrates the image encoding method using the encoding device described in this document. The method disclosed in Figure 9 can be performed using the encoding device disclosed in Figure 2. Specifically, for example, steps S900 and S920 to S930 in Figure 9 may be performed by the prediction unit of the encoding device, and steps S910 and S940 to S950 may be performed by the entropy encoding unit of the encoding device. Although not shown, the process of deriving the residual sample may be performed by the residual processing unit of the encoding device, and the process of generating the restored sample and restored picture based on the residual sample and predicted sample may be performed by the addition unit of the encoding device.

[0231] The encoding device determines whether BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma blocks and luma blocks (S900). For example, the encoding device can determine whether BDPCM is available for the chroma blocks and luma blocks in the image.

[0232] The encoding device generates a BDPCM availability flag for the chroma block and the luma block based on the result of the determination (S910). The encoding device can generate a BDPCM availability flag for the chroma block and the luma block based on the result of the determination. For example, the image information may include a BDPCM availability flag indicating whether BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma block and the luma block. For example, the BDPCM availability flag may indicate whether BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma block and the luma block. For example, if the value of the BDPCM availability flag is 1, the BDPCM availability flag can indicate that BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma block and luma block, and if the value of the BDPCM availability flag is 0, the BDPCM availability flag can indicate that BDPCM (Block-based Delta Pulse Code Modulation) is not available for the chroma block and luma block. That is, for example, the BDPCM availability flag can indicate whether a BDPCM flag exists for the chroma block and luma block. For example, if the value of the BDPCM availability flag is 1, the BDPCM availability flag can indicate that a BDPCM flag may exist for the chroma block and luma block, and if the value of the BDPCM availability flag is 0, the BDPCM availability flag can indicate that a BDPCM flag does not exist for the chroma block and luma block. Also, for example, the chroma block may include a chroma Cb component block (chroma Cb block) and / or a chroma Cr component block (chroma Cr block).

[0233] Also, for example, the BDPCM available flag can be signaled regardless of the chroma format of the image. For example, the BDPCM available flag can be signaled when the chroma format of the image is YUV444, YUV420, or YUV422. That is, for example, even when the chroma format of the image is YUV444, the BDPCM available flag can be signaled.

[0234] Also, for example, the BDPCM available flag can be signaled in a higher-level syntax. For example, the BDPCM available flag can be signaled in the SPS (Sequence Parameter Set, SPS) syntax. Alternatively, for example, the BDPCM available flag can be signaled in the APS (Adaptation Parameter Set) syntax, PPS (Picture Parameter Set) syntax, VPS (Video Parameter Set) syntax, DPS (Decoding Parameter Set) syntax, PH syntax (picture header syntax), or slice header syntax. For example, the syntax element of the BDPCM available flag may be the aforementioned sps_bdpcm_enabled_flag.

[0235] The encoding device generates prediction samples for the current luma block based on the BDPCM (S920). For example, the encoding device can determine whether the BDPCM is applicable to the current luma block and can determine the direction in which the BDPCM is performed.

[0236] The encoding device can derive prediction samples by performing intra prediction on the current luma block based on the prediction direction in which BDPCM is performed. For example, the prediction direction may be the vertical direction or the horizontal direction, and prediction samples for the current luma block can be generated according to the intra prediction mode thereby.

[0237] For example, when the prediction direction for the current luma block is derived as the horizontal direction, the encoding device can derive the prediction samples of the current luma block based on the horizontal intra prediction mode. In other words, for example, when the prediction direction for the current luma block is derived as the horizontal direction, the encoding device can perform intra prediction based on the peripheral samples on the left side of the current luma block to derive the prediction samples of the current luma block. For example, when the prediction direction for the current luma block is derived as the horizontal direction, the encoding device can derive the sample value of the peripheral sample on the left side in the same row as the prediction sample as the sample value of the prediction sample.

[0238] Also, for example, when the prediction direction for the current luma block is derived as the vertical direction, the encoding device can derive the prediction samples of the current luma block based on the vertical intra prediction mode. In other words, for example, when the prediction direction for the current luma block is derived as the vertical direction, the encoding device can derive the prediction samples of the current luma block based on the upper peripheral samples of the current luma block. For example, when the prediction direction for the current luma block is derived as the vertical direction, the encoding device can derive the sample value of the upper peripheral sample in the same column as the prediction sample as the sample value of the prediction sample.

[0239] The encoding device generates predicted samples for the current chroma block based on the BDPCM (S930). For example, the encoding device can determine whether the BDPCM is applied to the current chroma block and can determine the direction in which the BDPCM is applied.

[0240] The encoding device can perform intra-prediction on the current chroma block based on the prediction direction in which BDPCM is performed, and derive predicted samples. For example, the prediction direction may be vertical or horizontal, and predicted samples for the current chroma block can be generated by this intra-prediction mode.

[0241] For example, if the prediction direction for the current chroma block is derived horizontally, the encoding device may derive predicted samples for the current chroma block based on a horizontal intra-prediction mode. In other words, for example, if the prediction direction for the current chroma block is derived horizontally, the encoding device may perform intra-prediction based on left-side peripheral samples for the current chroma block to derive predicted samples for the current chroma block. For example, if the prediction direction for the current chroma block is derived horizontally, the encoding device may derive the sample value of the left-side peripheral sample in the same row as the predicted sample as the sample value of the predicted sample.

[0242] Furthermore, for example, if the prediction direction for the current chroma block is derived vertically, the encoding device may derive predicted samples for the current chroma block based on a vertical intra-prediction mode. In other words, for example, if the prediction direction for the current chroma block is derived vertically, the encoding device may derive predicted samples for the current chroma block based on upper peripheral samples of the current chroma block. For example, if the prediction direction for the current chroma block is derived vertically, the encoding device may derive sample values ​​of upper peripheral samples in the same column as the predicted samples as the sample values ​​of the predicted samples.

[0243] The encoding device generates BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block (S940).

[0244] For example, if the value of the BDPCM availability flag is 1 (i.e., if it is determined that BDPCM is available for the chroma block and the luma block), the encoding device can generate BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block. The image information may include BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block.

[0245] For example, the BDPCM-related information for the current luma block may include the BDPCM luma flag and / or BDPCM luma direction flag for the current luma block.

[0246] For example, an encoding device can determine whether BDPCM is currently applied to a luma block and can generate a BDPCM luma flag indicating whether BDPCM (Block-based Delta Pulse Code Modulation) is applicable to the current luma block.

[0247] For example, the BDPCM luma flag can indicate whether the BDPCM is applied to the current luma block and whether a BDPCM luma direction flag exists for the current luma block. For example, if the value of the BDPCM luma flag is 1, the BDPCM luma flag can indicate that the BDPCM is applied to the current luma block and a BDPCM luma direction flag exists for the current luma block; if the value of the BDPCM luma flag is 0, the BDPCM luma flag can indicate that the BDPCM is not applied to the current luma block and no BDPCM luma direction flag exists for the current luma block. For example, the syntax element of the BDPCM luma flag may be the aforementioned bdpcm_flag or intra_bdpcm_luma_flag. Also, for example, the BDPCM luma flag can be signaled on a CU (coding unit) basis.

[0248] Furthermore, for example, the encoding device can determine whether BDPCM is currently applied to a luma block and can determine the direction in which the BDPCM is performed. For example, if the BDPCM luma flag indicates that BDPCM is currently applied to the luma block, the encoding device can generate and encode the BDPCM luma direction flag. For example, the BDPCM luma direction flag can indicate vertical or horizontal as the predicted direction for the current luma block. For example, if the value of the BDPCM luma direction flag is 0, the BDPCM luma direction flag can indicate that the predicted direction for the current luma block is horizontal, and if the value of the BDPCM luma direction flag is 1, the BDPCM luma direction flag can indicate that the predicted direction for the current luma block is vertical. For example, the syntax element of the BDPCM luma direction flag may be the aforementioned bdpcm_dir_flag or intra_bdpcm_luma_dir_flag. Furthermore, for example, the BDPCM luma direction flag can be signaled on a CU (coding unit) basis.

[0249] For example, the BDPCM-related information for the current chroma block may include a BDPCM chroma flag and / or a BDPCM chroma direction flag for the current chroma block. Also, for example, the BDPCM-related information for the current chroma block (i.e., for all of the current chroma blocks) may be signaled when the image tree type is a single tree and the value of the BDPCM availability flag is 1. That is, for example, the BDPCM-related information for the current chroma block (i.e., for all of the current chroma blocks) may be signaled when the image tree type is a single tree and BDPCM is available for the current chroma block. On the other hand, the tree type of the current block can be classified as a single tree (SINGLE_TREE) or a dual tree (DUAL_TREE) depending on whether the current chroma block and the corresponding current chroma block have separate partition structures. For example, if the current chroma block has the same partition structure as the current luma block, it can be represented as a single tree; if the current chroma block has a different partition structure than the current luma block, it can be represented as a dual tree.

[0250] For example, the encoding device can determine whether BDPCM is currently applied to a chroma block and can generate a BDPCM chroma flag indicating whether BDPCM (Block-based Delta Pulse Code Modulation) is applicable to the current chroma block. For example, the BDPCM chroma flag can indicate whether BDPCM is applied to the current chroma block and whether a BDPCM chroma direction flag exists for the current chroma block. For example, if the value of the BDPCM chroma flag is 1, the BDPCM chroma flag can indicate that BDPCM is applied to the current chroma block and a BDPCM chroma direction flag exists for the current chroma block; if the value of the BDPCM chroma flag is 0, the BDPCM chroma flag can indicate that BDPCM is not applied to the current chroma block and no BDPCM chroma direction flag exists for the current chroma block. That is, for example, if the value of the BDPCM chroma flag is 1, the BDPCM chroma flag can indicate that the BDPCM is applied to all of the current chroma blocks and that a BDPCM chroma direction flag exists for all of the current chroma blocks. If the value of the BDPCM chroma flag is 0, the BDPCM chroma flag can indicate that the BDPCM is not applied to all of the current chroma blocks and that a BDPCM chroma direction flag does not exist for all of the current chroma blocks. Here, for example, the current chroma blocks may include the current chroma Cb block and the current chroma Cr block. For example, the syntax element of the BDPCM chroma flag may be the aforementioned bdpcm_flag or intra_bdpcm_chroma_flag. Also, for example, the BDPCM chroma flag can be signaled on a CU (coding unit) basis.

[0251] Furthermore, for example, the encoding device can determine whether BDPCM is currently applied to a chroma block and can determine the direction in which the BDPCM is performed. For example, if the BDPCM chroma flag indicates that the BDPCM is currently applied to the chroma block, the encoding device can generate and encode the BDPCM chroma direction flag. For example, the BDPCM chroma direction flag can indicate vertical or horizontal as the predicted direction for the current chroma block. For example, if the value of the BDPCM chroma direction flag is 0, the BDPCM chroma direction flag can indicate that the predicted direction for the current chroma block is horizontal, and if the value of the BDPCM chroma direction flag is 1, the BDPCM chroma direction flag can indicate that the predicted direction for the current chroma block is vertical. For example, the syntax element of the BDPCM chroma direction flag may be the aforementioned bdpcm_dir_flag or intra_bdpcm_chroma_dir_flag. Furthermore, for example, the BDPCM chroma direction flag can be signaled on a CU (coding unit) basis.

[0252] On the other hand, for example, an encoding device may derive the residual sample of the current chroma block based on the predicted sample of the current chroma block. For example, the encoding device may derive the residual sample by subtracting the original sample and the predicted sample for the current chroma block. Also, for example, an encoding device may derive the residual sample of the current chroma block based on the predicted sample of the current chroma block. For example, the encoding device may derive the residual sample by subtracting the original sample and the predicted sample for each of the current chroma blocks.

[0253] The encoding device encodes image information including the BDPCM availability flag, the BDPCM-related information for the current luma block, and the BDPCM-related information for the current chroma block (S950). The encoding device can encode image information including the BDPCM availability flag, the BDPCM-related information for the current luma block, and the BDPCM-related information for the current chroma block. For example, the BDPCM-related information for the current luma block may include a BDPCM luma flag indicating whether the BDPCM is applied to the current luma block and / or a BDPCM luma direction flag indicating the predicted direction of the current luma block, and the BDPCM-related information for the current chroma block may include a BDPCM chroma flag indicating whether the BDPCM is applied to the current chroma block and / or a BDPCM chroma direction flag indicating the predicted direction of the current chroma block.

[0254] On the other hand, for example, the image information may include residual information. For example, the encoding device may derive the residual coefficients of the current luma block or current chroma block based on the residual samples of the current luma block or current chroma block. For example, if the BDPCM is applied to the current luma block or current chroma block, the encoding device may determine that no transformation is applied to the current luma block or current chroma block. In this case, for example, the encoding device may perform quantization on the residual samples of the current luma block or current chroma block to derive the residual coefficients. Here, for example, the block to which no transformation is applied can be referred to as a transformation skip block. That is, for example, the current luma block or current chroma block may be a transformation skip block.

[0255] Subsequently, for example, the encoding device can encode the residual information for the residual coefficients. For example, the residual information may include the residual information for the residual coefficients of the residual sample.

[0256] For example, the residual information may include a syntax element for the current luma block or current chroma block's residual sample, and based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient values ​​of the residual samples to the left or above the target residual sample can be derived. For example, if the prediction direction of the current luma block or current chroma block is horizontal, based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual samples to the left of the target residual sample can be derived. That is, for example, if the prediction direction of the current luma block or current chroma block is horizontal, the syntax element for the target residual sample can indicate the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual samples to the left of the target residual sample. Furthermore, for example, if the prediction direction of the current luma block or current chroma block is vertical, the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples above and surrounding the target resistive sample can be derived based on the syntax element for the target resistive sample. That is, for example, if the prediction direction of the current luma block or current chroma block is vertical, the syntax element for the target resistive sample can indicate the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples above and surrounding the target resistive sample. Also, if the target resistive sample is located in the first row or column of the current luma block or current chroma block, the resistive coefficient value of the target resistive sample can be derived based on the syntax element for the target resistive sample.That is, when the residual sample of the object is located in the first row or column of the current luma block or the current chroma block, the syntax element for the residual sample of the object can indicate the residual coefficient value of the residual sample of the object.

[0257] On the other hand, the bitstream including the image information can be transmitted to a decoding device via a network or a (digital) storage medium. Here, the network can include a broadcast network and / or a communication network, etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.

[0258] FIG. 10 schematically shows an encoding device for performing the image encoding method according to this document. The method disclosed in FIG. 9 can be performed by the encoding device disclosed in FIG. 10. Specifically, for example, the prediction unit of the encoding device in FIG. 10 can perform S900 and S920 to S930 in FIG. 9, and the entropy encoding unit of the encoding device can perform S910 and S940 to S950. Also, although not shown, the process of deriving the residual sample is performed by the residual processing unit of the encoding device, and the process of generating the restored sample and the restored picture based on the residual sample and the predicted sample can be performed by the addition unit of the encoding device.

[0259] FIG. 11 schematically shows an image decoding method by the decoding device according to this document. The method disclosed in FIG. 11 can be performed by the decoding device disclosed in FIG. 3. Specifically, for example, S1100 to S1120 and S1140 to S1150 in FIG. 11 are performed by the entropy decoding unit of the decoding device, S1130 and S1160 in FIG. 11 are performed by the prediction unit of the decoding device, and S1170 in FIG. 11 can be performed by the addition unit of the decoding device.

[0260] The decoding device obtains a BDPCM availability flag for the chroma block and luma block to indicate whether BDPCM (Block-based Delta Pulse Code Modulation) is available (S1100). The decoding device can obtain a BDPCM availability flag for the chroma block and luma block to indicate whether BDPCM is available. The decoding device can obtain image information via the bitstream. For example, the image information may include a BDPCM availability flag for the chroma block and luma block to indicate whether BDPCM (Block-based Delta Pulse Code Modulation) is available. For example, the BDPCM availability flag may indicate whether BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma block and luma block. For example, if the value of the BDPCM availability flag is 1, the BDPCM availability flag can indicate that BDPCM (Block-based Delta Pulse Code Modulation) is available for the chroma block and luma block, and if the value of the BDPCM availability flag is 0, the BDPCM availability flag can indicate that BDPCM (Block-based Delta Pulse Code Modulation) is not available for the chroma block and luma block. In other words, for example, the BDPCM availability flag can indicate whether a BDPCM flag exists for the chroma block and luma block. For example, if the value of the BDPCM availability flag is 1, the BDPCM availability flag can indicate that a BDPCM flag may exist for the chroma block and luma block, and if the value of the BDPCM availability flag is 0, the BDPCM availability flag can indicate that a BDPCM flag does not exist for the chroma block and luma block.Furthermore, for example, the chroma block may include a chroma Cb component block (chroma Cb block) and / or a chroma Cr component block (chroma Cr block).

[0261] Furthermore, for example, the BDPCM availability flag can be signaled regardless of the image's chroma format. For instance, the BDPCM availability flag can be signaled when the image's chroma format is YUV444, YUV420, or YUV422. That is, for example, the BDPCM availability flag can be signaled even when the image's chroma format is YUV444.

[0262] Furthermore, for example, the BDPCM enabled flag can be signaled to higher-level syntax. For example, the BDPCM enabled flag can be signaled to SPS (Sequence Parameter Set) syntax. Alternatively, for example, the BDPCM enabled flag can be signaled to APS (Adaptation Parameter Set) syntax, PPS (Picture Parameter Set) syntax, VPS (Video Parameter Set) syntax, DPS (Decoding Parameter Set) syntax, PH syntax (picture header syntax), or slice header syntax. For example, the syntax element of the BDPCM enabled flag may be the aforementioned sps_bdpcm_enabled_flag.

[0263] The decoding device obtains a BDPCM luma flag indicating whether BDPCM is applicable to the current luma block based on the BDPCM availability flag (S1110). The decoding device can obtain BDPCM-related information for the current luma block based on the BDPCM availability flag. For example, the BDPCM-related information for the current luma block may include the BDPCM luma flag for the current luma block. The decoding device can obtain a BDPCM luma flag for the current luma block based on the BDPCM availability flag.

[0264] For example, if the value of the BDPCM availability flag is 1 (i.e., the BDPCM availability flag indicates that the BDPCM is available for the chroma block and the luma block), the decoding device can obtain the BDPCM luma flag indicating whether the BDPCM is applied to the current luma block. For example, the BDPCM luma flag can indicate whether the BDPCM is applied to the current luma block and whether a BDPCM luma direction flag exists for the current luma block. For example, if the value of the BDPCM luma flag is 1, the BDPCM luma flag can indicate that the BDPCM is applied to the current luma block and a BDPCM luma direction flag exists for the current luma block; if the value of the BDPCM luma flag is 0, the BDPCM luma flag can indicate that the BDPCM is not applied to the current luma block and no BDPCM luma direction flag exists for the current luma block. For example, the syntax element of the BDPCM luma flag may be the aforementioned bdpcm_flag or intra_bdpcm_luma_flag. Also, for example, the BDPCM luma flag can be signaled on a CU (coding unit) basis.

[0265] The decoding device obtains a BDPCM luma direction flag for the predicted direction of the current luma block based on the BDPCM luma flag (S1120). For example, the BDPCM-related information for the current luma block may include the BDPCM luma flag and / or the BDPCM luma direction flag for the current luma block.

[0266] For example, a decoding device can obtain a BDPCM luma direction flag for the predicted direction of the current luma block based on the BDPCM luma flag. For example, if the BDPCM luma flag indicates that the BDPCM is applied to the current luma block, the decoding device can obtain the BDPCM luma direction flag. That is, for example, if the value of the BDPCM luma flag is 1, the decoding device can obtain the BDPCM luma direction flag. For example, the BDPCM luma direction flag can indicate vertical or horizontal as the predicted direction for the current luma block. For example, if the value of the BDPCM luma direction flag is 0, the BDPCM luma direction flag can indicate that the predicted direction for the current luma block is horizontal, and if the value of the BDPCM luma direction flag is 1, the BDPCM luma direction flag can indicate that the predicted direction for the current luma block is vertical. For example, the syntax element of the BDPCM luma direction flag may be the aforementioned bdpcm_dir_flag or intra_bdpcm_luma_dir_flag. Also, for example, the BDPCM luma direction flag can be signaled on a CU (coding unit) basis.

[0267] The decoding device derives the predicted sample of the current luma block based on the intra prediction mode derived based on the BDPCM luma direction flag (S1130).

[0268] For example, the decoding device may derive predicted samples of the current luma block based on the intra-prediction mode derived based on the BDPCM luma direction flag.

[0269] For example, if the value of the BDPCM Luma Direction Flag is 0, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction for the current Luma Block is horizontal, the decoding device may derive a horizontal intra-prediction mode as the intra-prediction mode for the current Luma Block. For example, if the value of the BDPCM Luma Direction Flag is 0, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction for the current Luma Block is horizontal, the decoding device may derive predicted samples for the current Luma Block based on the horizontal intra-prediction mode. In other words, for example, if the value of the BDPCM Luma Direction Flag is 0, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction for the current Luma Block is horizontal, the decoding device may perform an intra-prediction based on left peripheral samples for the current Luma Block and derive predicted samples for the current Luma Block. For example, if the prediction direction for the current luma block is derived horizontally, the decoding device may derive the sample values ​​of the samples to the left of the same row as the predicted sample as the sample values ​​of the predicted sample.

[0270] Furthermore, for example, if the value of the BDPCM Luma Direction Flag is 1, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction relative to the current Luma Block is vertical, the decoding device may derive a vertical intra-prediction mode as the intra-prediction mode for the current Luma Block. For example, if the value of the BDPCM Luma Direction Flag is 1, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction relative to the current Luma Block is vertical, the decoding device may derive predicted samples for the current Luma Block based on the vertical intra-prediction mode. In other words, for example, if the value of the BDPCM Luma Direction Flag is 1, that is, for example, if the BDPCM Luma Direction Flag indicates that the predicted direction relative to the current Luma Block is vertical, the decoding device may derive predicted samples for the current Luma Block based on the upper peripheral samples of the current Luma Block. For example, if the prediction direction for the current luma block is derived in a vertical direction, the decoding device may derive the sample value of the upper peripheral sample in the same column as the predicted sample as the sample value of the predicted sample.

[0271] The decoding device obtains a BDPCM chroma flag indicating whether BDPCM is applicable to the current chroma block based on the BDPCM availability flag (S1140). The decoding device can obtain BDPCM-related information for the current chroma block based on the BDPCM availability flag. For example, the BDPCM-related information for the current chroma block may include a BDPCM chroma flag for the current chroma block. The decoding device can obtain a BDPCM chroma flag for the current chroma block based on the BDPCM availability flag.

[0272] Furthermore, for example, the BDPCM-related information for the current chroma block (i.e., for both the current chroma block and the current chroma block) can be signaled when the image tree type is a single tree and the value of the BDPCM availability flag is 1. That is, for example, the BDPCM-related information for the current chroma block (i.e., for both the current chroma block and the current chroma block) can be signaled when the image tree type is a single tree and BDPCM is available for the current chroma block. On the other hand, the tree type of the current block can be classified as a single tree or a dual tree depending on whether the current chroma block and the corresponding current chroma block have separate partition structures. For example, if the current chroma block has the same partition structure as the current chroma block, it can be indicated as a single tree, and if the current chroma block has a different partition structure from the current chroma block, it can be indicated as a dual tree.

[0273] For example, the BDPCM chroma flag can indicate whether the BDPCM is applied to the current chroma block and whether a BDPCM chroma direction flag exists for the current chroma block. For example, if the value of the BDPCM chroma flag is 1, the BDPCM chroma flag can indicate that the BDPCM is applied to the current chroma block and that a BDPCM chroma direction flag exists for the current chroma block. If the value of the BDPCM chroma flag is 0, the BDPCM chroma flag can indicate that the BDPCM is not applied to the current chroma block and that a BDPCM chroma direction flag does not exist for the current chroma block. That is, for example, if the value of the BDPCM chroma flag is 1, the BDPCM chroma flag can indicate that the BDPCM is applied to both the current chroma blocks and that a BDPCM chroma direction flag exists for both the current chroma blocks. If the value of the BDPCM chroma flag is 0, the BDPCM chroma flag can indicate that the BDPCM is not applied to both the current chroma blocks and that a BDPCM chroma direction flag does not exist for both the current chroma blocks. Here, for example, the current chroma blocks may include the current chroma Cb block and the current chroma Cr block. For example, the syntax element of the BDPCM chroma flag may be the aforementioned bdpcm_flag or intra_bdpcm_chroma_flag. Also, for example, the BDPCM chroma flag can be signaled in units of CU (coding unit).

[0274] The decoding device obtains a BDPCM chroma direction flag for the predicted direction of the current chroma block based on the BDPCM chroma flag (S1150). For example, the BDPCM-related information for the current chroma block may include the BDPCM chroma flag and / or the BDPCM chroma direction flag for the current chroma block.

[0275] For example, a decoding device can obtain a BDPCM chroma direction flag for the predicted direction of the current chroma block based on the BDPCM chroma flag. For example, if the BDPCM chroma flag indicates that the BDPCM is applied to the current chroma block, the decoding device can obtain the BDPCM chroma direction flag. That is, for example, if the value of the BDPCM chroma flag is 1, the decoding device can obtain the BDPCM chroma direction flag. For example, the BDPCM chroma direction flag can indicate vertical or horizontal as the predicted direction for the current chroma block. For example, if the value of the BDPCM chroma direction flag is 0, the BDPCM chroma direction flag can indicate that the predicted direction for the current chroma block is horizontal, and if the value of the BDPCM chroma direction flag is 1, the BDPCM chroma direction flag can indicate that the predicted direction for the current chroma block is vertical. For example, the syntax element of the BDPCM chroma direction flag may be the aforementioned bdpcm_dir_flag or intra_bdpcm_chroma_dir_flag. Also, for example, the BDPCM chroma direction flag can be signaled on a CU (coding unit) basis.

[0276] The decoding device derives the predicted sample of the current chroma block based on the intra-prediction mode derived based on the BDPCM chroma direction flag (S1160). For example, the decoding device may derive the predicted sample of the current chroma block based on the intra-prediction mode derived based on the BDPCM chroma direction flag.

[0277] For example, if the value of the BDPCM chroma direction flag is 0, that is, for example, if the BDPCM chroma direction flag indicates that the predicted direction for the current chroma block is horizontal, the decoding device may derive a horizontal intra-prediction mode as the intra-prediction mode for the current chroma block. For example, if the value of the BDPCM chroma direction flag is 0, that is, for example, if the BDPCM chroma direction flag indicates that the predicted direction for the current chroma block is horizontal, the decoding device may derive predicted samples for the current chroma block based on the horizontal intra-prediction mode. In other words, for example, if the value of the BDPCM chroma direction flag is 0, that is, for example, if the BDPCM chroma direction flag indicates that the predicted direction for the current chroma block is horizontal, the decoding device may perform an intra-prediction based on left peripheral samples for the current chroma block and derive predicted samples for the current chroma block. For example, if the prediction direction for the current chroma block is derived horizontally, the decoding device may derive the sample values ​​of the samples to the left of the same row as the predicted sample as the sample values ​​of the predicted sample.

[0278] Furthermore, for example, if the value of the BDPCM chroma direction flag is 1, that is, if the BDPCM chroma direction flag indicates that the predicted direction to the current chroma block is vertical, the decoding device may derive a vertical intra-prediction mode as the intra-prediction mode for the current chroma block. For example, if the value of the BDPCM chroma direction flag is 1, that is, if the BDPCM chroma direction flag indicates that the predicted direction to the current chroma block is vertical, the decoding device may derive predicted samples for the current chroma block based on the vertical intra-prediction mode. In other words, for example, if the value of the BDPCM chroma direction flag is 1, that is, if the BDPCM chroma direction flag indicates that the predicted direction to the current chroma block is vertical, the decoding device may derive predicted samples for the current chroma block based on the upper peripheral samples for the current chroma block. For example, if the prediction direction for the current chroma block is derived in a perpendicular direction, the decoding device may derive the sample values ​​of the upper peripheral samples in the same column as the predicted sample as the sample values ​​of the predicted sample.

[0279] The decoding device generates a reconstructed picture based on the predicted sample of the current luma block and the predicted sample of the current chroma block (S1170).

[0280] The decoding device can derive restored samples and / or restored pictures for the current luma block and the current chroma block based on the predicted sample of the current luma block and the predicted sample of the current chroma block. For example, the decoding device can derive the restored sample of the current luma block by adding the predicted sample of the current luma block and the residual sample of the current luma block. Also, for example, the decoding device can derive the restored sample of the current chroma block by adding the predicted sample of the current chroma block and the residual sample of the current chroma block. That is, for example, the decoding device can derive the restored sample of the current chroma Cb block by adding the predicted sample of the current chroma Cb block and the residual sample of the current chroma Cb block, and can derive the restored sample of the current chroma Cr block by adding the predicted sample of the current chroma Cr block and the residual sample of the current chroma Cr block.

[0281] On the other hand, for example, a decoding device can derive the residual sample of the current chroma block based on the received residual information, and can derive the residual sample of the current chroma block (the residual sample of the current chroma Cb block and the residual sample of the current chroma Cr block) based on the received residual information.

[0282] For example, when BDPCM is applied to the current luma block, the residual information may include a syntax element for the residual sample of the current luma block (i.e., when BDPCM is applied to the current luma block, the residual information may include a syntax element for the target residual sample of the current luma block), and the syntax element for the target residual sample may indicate the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual sample to the left or above the target residual sample.

[0283] For example, if BDPCM is applied to the current luma block and the prediction direction for the current luma block is horizontal, the syntax element for the target residual sample can represent the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual samples to the left of the target residual sample. That is, for example, based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual samples to the left of the target residual sample can be derived. Then, the residual coefficient of the target residual sample can be derived by summing the residual coefficient value of the residual samples to the left of the target residual sample and the difference. Here, the target residual sample may be a residual sample in a column other than the first column of the current luma block. For example, the residual coefficient of the target residual sample can be derived based on the above formula 4. On the other hand, for example, if the target residual sample is a residual sample in the first column of the current Luma block, the residual coefficient of the target residual sample can be derived based on the syntax element of the target residual sample.

[0284] Furthermore, for example, if BDPCM is applied to the current luma block and the prediction direction relative to the current luma block is perpendicular, the syntax element for the target residual sample can represent the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the upper peripheral residual sample of the target residual sample. That is, for example, based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the upper peripheral residual sample of the target residual sample can be derived. Subsequently, the residual coefficient of the target residual sample can be derived by summing the residual coefficient value of the upper peripheral residual sample of the target residual sample with the difference. Here, the target residual sample may be a residual sample in a row other than the first row of the current luma block. For example, the residual coefficient of the target residual sample can be derived based on the above formula 3. On the other hand, for example, if the target residual sample is the residual sample in the first row of the current luma block, the residual coefficient of the target residual sample can be derived based on the syntax element of the target residual sample.

[0285] Subsequently, for example, the decoding device can derive the target resistive sample by inverse quantizing the resistive coefficients. That is, for example, the target resistive sample can be derived by inverse quantizing the resistive coefficients.

[0286] Furthermore, for example, when BDPCM is applied to the current chroma block (e.g., the current chroma Cb block or the current chroma Cr block), the residual information may include syntax elements for the resistive samples of the current chroma block (i.e., when BDPCM is applied to the current chroma block, the residual information may include syntax elements for the target resistive samples of the current chroma block (current chroma Cb block and current chroma Cr block)), and the syntax elements for the target resistive samples may indicate the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the left peripheral resistive sample or the upper peripheral resistive sample of the target resistive sample. That is, for example, when BDPCM is applied to the current chroma block, the resistive information may include syntax elements for the resistive sample of the current chroma block (e.g., the current chroma Cb block or the current chroma Cr block), and based on the syntax elements for the resistive sample of the target, the difference between the resistive coefficient value of the resistive sample of the target and the resistive coefficient value of the left peripheral resistive sample or the upper peripheral resistive sample of the target resistive sample can be derived.

[0287] For example, if BDPCM is applied to the current chroma block and the prediction direction for the current chroma block is horizontal, the syntax element for the target resistive sample can represent the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples to the left of the target resistive sample. That is, for example, based on the syntax element for the target resistive sample, the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples to the left of the target resistive sample can be derived. Then, the resistive coefficient of the target resistive sample can be derived by summing the resistive coefficient value of the resistive samples to the left of the target resistive sample with the difference. Here, the target resistive sample may be a resistive sample in a column other than the first column of the current chroma block. For example, the resistive coefficient of the target resistive sample can be derived based on the above formula 4. On the other hand, for example, if the target resistive sample is the resistive sample in the first column of the current chroma block, the resistive coefficient of the target resistive sample can be derived based on the syntax element of the target resistive sample.

[0288] Furthermore, for example, if BDPCM is applied to the current chroma block and the prediction direction relative to the current chroma block is perpendicular, the syntax element for the target resistive sample can represent the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples above and surrounding the target resistive sample. That is, for example, based on the syntax element for the target resistive sample, the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient value of the resistive samples above and surrounding the target resistive sample can be derived. Subsequently, the resistive coefficient of the target resistive sample can be derived by summing the resistive coefficient value of the resistive samples above and surrounding the target resistive sample with the difference. Here, the target resistive sample may be a resistive sample in a row other than the first row of the current chroma block. For example, the resistive coefficient of the target resistive sample can be derived based on the aforementioned formula 3. On the other hand, if, for example, the target residual sample is the residual sample in the first row of the current chroma block, the residual coefficient of the target residual sample can be derived based on the syntax element of the target residual sample.

[0289] Subsequently, for example, the decoding device can dequantize the resistive coefficients and derive the target resistive sample. That is, for example, the target resistive sample can be derived by dequantizing the resistive coefficients.

[0290] On the other hand, although not shown in the figure, for example, the decoding device can obtain residual information for the current luma block based on the BDPCM luma flag. For example, if the BDPCM luma flag indicates that the BDPCM is applied to the current luma block, i.e., the BDPCM is applied to the current luma block, the residual information may include a syntax element for the residual sample of the current luma block, and based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient values ​​of the residual sample to the left or above the target residual sample can be derived. For example, if the predicted direction of the current luma block is horizontal, i.e., if the predicted direction of the current luma block is derived to be horizontal based on the BDPCM luma direction flag, the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual sample to the left of the target residual sample can be derived based on the syntax element for the target residual sample. Furthermore, for example, if the predicted direction of the current luma block is vertical, that is, if the predicted direction of the current luma block is derived to be vertical based on the BDPCM luma direction flag, the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient values ​​of the upper peripheral resistive samples of the target resistive sample can be derived based on the syntax element for the target resistive sample. Also, if the target resistive sample is located in the first row or column of the current block, the resistive coefficient value of the target resistive sample can be derived based on the syntax element for the target resistive sample.

[0291] Furthermore, for example, the decoding device can obtain residual information for the current chroma block based on the BDPCM chroma flag. For example, if the BDPCM chroma flag indicates that the BDPCM is applied to the current chroma block, i.e., if the BDPCM is applied to the current chroma block, the residual information may include a syntax element for the residual sample of the current chroma block, and based on the syntax element for the target residual sample, the difference between the residual coefficient value of the target residual sample and the residual coefficient values ​​of the residual sample to the left or above the target residual sample can be derived. For example, if the predicted direction of the current chroma block is horizontal, i.e., if the predicted direction of the current chroma block is derived to be horizontal based on the BDPCM chroma direction flag, the difference between the residual coefficient value of the target residual sample and the residual coefficient value of the residual sample to the left of the target residual sample can be derived based on the syntax element for the target residual sample. Furthermore, for example, if the predicted direction of the current chroma block is vertical, that is, if the predicted direction of the current chroma block is derived to be vertical based on the BDPCM chroma direction flag, the difference between the resistive coefficient value of the target resistive sample and the resistive coefficient values ​​of the resistive samples above and surrounding the target resistive sample can be derived based on the syntax element for the target resistive sample. Also, if the target resistive sample is located in the first row or column of the current chroma block, the resistive coefficient value of the target resistive sample can be derived based on the syntax element for the target resistive sample.

[0292] The decoding device can derive the reconstructed sample by adding the predicted sample and the residual sample. Subsequently, as previously mentioned, in-loop filtering procedures such as deblocking filtering, SAO and / or ALF procedures can be applied to the reconstructed sample to improve subjective / objective image quality as needed.

[0293] Figure 12 schematically shows a decoding device that performs the image decoding method according to this document. The method disclosed in Figure 11 can be performed by the decoding device disclosed in Figure 12. Specifically, for example, the entropy decoding unit of the decoding device in Figure 12 can perform S1100 to S1120 and S1140 to S1150 of Figure 11, the prediction unit of the decoding device in Figure 12 can perform S1130 and S1160 of Figure 11, and the addition unit of the decoding device in Figure 12 can perform S1170 of Figure 11.

[0294] According to the aforementioned document, a single syntax element can determine whether BDPCM is available for lumen and chroma blocks within an image, thereby reducing the bit depth for BDPCM and improving overall coding efficiency.

[0295] Furthermore, according to this document, a BDPCM availability flag can be signaled to indicate whether BDPCM is available for chroma blocks and chroma blocks within an image, regardless of the image's chroma format. This reduces the complexity required for BDPCM and improves overall coding efficiency.

[0296] In the embodiments described above, the method is explained based on a flowchart in a series of steps or blocks, but this document is not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps than those described above. Furthermore, those skilled in the art will understand that the steps shown in the flowchart are not exclusive, other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of this document.

[0297] The embodiments described herein can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each drawing can be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on implementation (e.g., information on instructions) or algorithms can be stored on a digital storage medium.

[0298] Furthermore, the decoding and encoding devices to which the embodiments of this document apply can include multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video interaction devices, real-time communication devices such as video communications, mobile streaming devices, storage media, camcorders, video-on-demand (VoD) service providers, over-the-top (OTT) video equipment, internet streaming service providers, 3D video equipment, image-phone video equipment, transportation terminals (e.g., vehicle terminals, airplane terminals, ship terminals, etc.), and medical video equipment, and can be used to process video signals or data signals. For example, over-the-top (OTT) video equipment can include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, and DVRs (Digital Video Recorders).

[0299] Furthermore, the processing methods to which the embodiments of this document apply can be produced in the form of programs executed on a computer and stored on a computer-readable recording medium. Multimedia data having the data structure relating to this document can also be stored on a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices that store data that can be read by a computer. The computer-readable recording medium can include, for example, Blu-ray discs (BDs), general-purpose serial buses (USBs), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium also includes media implemented in the form of carrier waves (e.g., transmission over the Internet). Furthermore, bitstreams generated by encoding methods can be stored on a computer-readable recording medium or transmitted over a wireless network.

[0300] Furthermore, the embodiments described in this document can be implemented as a computer program product using program code, and the program code can be executed on a computer according to the embodiments described in this document. The program code can be stored on a computer-readable carrier.

[0301] Figure 13 illustrates a content streaming system structure diagram to which the embodiments described in this document apply.

[0302] The content streaming system to which the embodiments described herein apply may broadly include an encoding server, a streaming server, a web server, a media storage facility, user equipment, and multimedia input devices.

[0303] The encoding server is responsible for compressing content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and then transmitting this bitstream to the streaming server. In other cases, if a multimedia input device such as a smartphone, camera, or camcorder directly generates the bitstream, the encoding server can be omitted.

[0304] The bitstream can be generated by an encoding method or bitstream generation method to which an embodiment of this document applies, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0305] The streaming server transmits multimedia data to user devices based on user requests via a web server, and the web server acts as an intermediary to inform users about available services. When a user requests a desired service from the web server, the web server transmits this to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include another control server, in which case the control server controls the commands / responses between each device within the content streaming system.

[0306] The streaming server can receive content from a media storage and / or encoding server. For example, if it starts receiving content from the encoding server, it can receive the content in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.

[0307] Examples of user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (such as smartwatches, smart glasses, and HMDs), digital TVs, desktop computers, and digital signage. Each server in the content streaming system can be operated as a distributed server, in which case the data received by each server can be processed in a distributed manner.

[0308] The claims described herein can be combined in various ways. For example, the technical features of the method claims herein can be combined to realize an apparatus, and the technical features of the apparatus claims herein can be combined to realize a method. Furthermore, the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize an apparatus, and the technical features of the method claims and the technical features of the apparatus claims herein can be combined to realize a method.

Claims

1. In an image decoding method performed by a decoding device, A step of obtaining a BDPCM availability flag that indicates whether BDPCM (Block-based Delta Pulse Code Modulation) is available for both luma blocks and chroma blocks, The steps include obtaining a BDPCM luma flag indicating whether the BDPCM is currently applied to the luma block based on the BDPCM availability flag, The steps include obtaining a BDPCM luma direction flag for the predicted direction of the current luma block based on the BDPCM luma flag, The steps include: deriving a prediction sample of the current luma block based on the intra prediction mode derived based on the BDPCM luma direction flag; The steps include obtaining a BDPCM chroma flag indicating whether the BDPCM is currently applied to a chroma block based on the BDPCM availability flag, The steps include obtaining a BDPCM chroma direction flag for the predicted direction of the current chroma block based on the BDPCM chroma flag, The steps include: deriving the predicted sample of the current chroma block based on the intra prediction mode derived based on the BDPCM chroma direction flag; The step of generating a restored picture based on the predicted sample of the current luma block and the predicted sample of the current chroma block, Whether the BDPCM is available for the chroma block in the current sequence is determined in the same way as whether the BDPCM is available for the chroma block in the current sequence, according to the value of the BDPCM availability flag. The aforementioned BDPCM availability flag is signaled via SPS (sequence parameter set), The BDPCM luma flag, the BDPCM luma direction flag, the BDPCM chroma flag, and the BDPCM chroma direction flag are signaled on a coding unit basis. A value equal to 0 for the BDPCM availability flag indicates that the BDPCM is not available for both the luma block and the chroma block in the current sequence. The value of the BDPCM availability flag being equal to 1 indicates that the BDPCM is available for both the luma block and the chroma block in the current sequence. Whether the BDPCM luma flag for the luma block currently exists in the coding unit is determined based solely on the size of the luma block and the value of the BDPCM available flag. Whether the BDPCM chroma flag for the chroma block is present in the current coding unit is determined based solely on the size of the chroma block and the value of the BDPCM available flag. Based on the fact that the value of the BDPCM available flag is equal to 0, the BDPCM chroma flag and the BDPCM chroma flag are not obtained from the bitstream. A method in which the BDPCM chroma flag and the BDPCM chroma flag are obtained from the bitstream based on the value of the BDPCM available flag being equal to 1.

2. In an image encoding method performed by an encoding device, A step to determine whether BDPCM (Block-based Delta Pulse Code Modulation) is available for chromablocks and lumablocks, Based on the result of the above decision, a step of generating a BDPCM availability flag indicating whether the BDPCM is available for the chroma block and the luma block, Based on the aforementioned BDPCM, the steps include generating a prediction sample for the current luma block, The steps include generating a predictive sample for the current chroma block based on the BDPCM, The steps include generating BDPCM-related information for the current luma block and BDPCM-related information for the current chroma block, The process includes a step of encoding image information that includes the BDPCM availability flag, the BDPCM-related information for the current luma block, and the BDPCM-related information for the current chroma block, The BDPCM-related information for the current luma block includes a BDPCM luma flag indicating whether the BDPCM is applied to the current luma block, and a BDPCM luma direction flag indicating the predicted direction of the current luma block. The BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applied to the current chroma block, and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block. Whether the BDPCM is available for the chroma block in the current sequence is determined in the same way as whether the BDPCM is available for the chroma block in the current sequence, according to the value of the BDPCM availability flag. The aforementioned BDPCM availability flag is signaled via SPS (sequence parameter set), The BDPCM luma flag, the BDPCM luma direction flag, the BDPCM chroma flag, and the BDPCM chroma direction flag are signaled on a coding unit basis. A value equal to 0 for the BDPCM availability flag indicates that the BDPCM is not available for both the luma block and the chroma block in the current sequence. The value of the BDPCM availability flag being equal to 1 indicates that the BDPCM is available for both the luma block and the chroma block in the current sequence. Whether the BDPCM luma flag for the luma block currently exists in the coding unit is determined based solely on the size of the luma block and the value of the BDPCM available flag. Whether the BDPCM chroma flag for the chroma block is present in the current coding unit is determined based solely on the size of the chroma block and the value of the BDPCM available flag. Based on the fact that the value of the BDPCM available flag is equal to 0, the BDPCM chroma flag and the BDPCM chroma flag are not signaled. A method in which the BDPCM chroma flag and the BDPCM chroma flag are signaled based on the value of the BDPCM available flag being equal to 1.

3. A method for transmitting image-related data, A step of obtaining a bitstream of image information including a BDPCM (Block-based Delta Pulse Code Modulation) availability flag, BDPCM-related information for the current luma block, and BDPCM-related information for the current chroma block. The step of transmitting the data, which includes the bitstream of the image information, which includes the BDPCM availability flag, the BDPCM-related information for the current luma block, and the BDPCM-related information for the current chroma block, The BDPCM availability flag indicates whether BDPCM is available for chroma blocks and luma blocks. The BDPCM-related information for the current luma block includes a BDPCM luma flag indicating whether the BDPCM is applied to the current luma block, and a BDPCM luma direction flag indicating the predicted direction of the current luma block. The BDPCM-related information for the current chroma block includes a BDPCM chroma flag indicating whether the BDPCM is applied to the current chroma block, and a BDPCM chroma direction flag indicating the predicted direction of the current chroma block. Whether the BDPCM is available for the chroma block in the current sequence is determined in the same way as whether the BDPCM is available for the chroma block in the current sequence, according to the value of the BDPCM availability flag. The aforementioned BDPCM availability flag is signaled via SPS (sequence parameter set), The BDPCM luma flag, the BDPCM luma direction flag, the BDPCM chroma flag, and the BDPCM chroma direction flag are signaled on a coding unit basis. A value equal to 0 for the BDPCM availability flag indicates that the BDPCM is not available for both the luma block and the chroma block in the current sequence. The value of the BDPCM availability flag being equal to 1 indicates that the BDPCM is available for both the luma block and the chroma block in the current sequence. Whether the BDPCM luma flag for the luma block currently exists in the coding unit is determined based solely on the size of the luma block and the value of the BDPCM available flag. Whether the BDPCM chroma flag for the chroma block is present in the current coding unit is determined based solely on the size of the chroma block and the value of the BDPCM available flag. Based on the fact that the value of the BDPCM available flag is equal to 0, the BDPCM chroma flag and the BDPCM chroma flag are not signaled. A method in which the BDPCM chroma flag and the BDPCM chroma flag are signaled based on the value of the BDPCM available flag being equal to 1.