Image decoding method and device

By introducing BDPCM constraint flags in the image encoding system and dynamically adjusting BDPCM according to the image block size, the problem of low encoding efficiency of high-resolution images is solved, and the number of bits and encoding efficiency is improved.

JP7667336B2Active Publication Date: 2025-04-22NOKIA TECHNOLOGIES OY

Patent Information

Application Number
JP2024021012
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-18
Filing Date
2024-02-15
Publication Date
2025-04-22
Estimated Expiration
2040-06-17

AI Technical Summary

Technical Problem

The prior art is difficult to improve image encoding efficiency, especially when processing high resolution and high quality images, resulting in increased transmission and storage costs.

Method used

By introducing BDPCM (Block-based Delta Pulse Code Modulation) constraint flags into the image encoding system, the application range of BDPCM is dynamically adjusted, and whether to apply BDPCM is determined based on the current block size and the maximum transform block size, thereby reducing the number of bits required by BDPCM and improving the overall encoding efficiency.

Benefits of technology

By dynamically adjusting the application range of BDPCM, the number of bits required by BDPCM is reduced, the overall efficiency of image encoding is improved, and the transmission and storage costs are reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007667336000032
    Figure 0007667336000032
  • Figure 0007667336000033
    Figure 0007667336000033
  • Figure 0007667336000034
    Figure 0007667336000034
Patent Text Reader

Abstract

To provide an image decoding method.SOLUTION: An image decoding method implemented with a decoding apparatus according to the present document comprises the steps of: acquiring image information including a block-based delta pulse code modulation (BDPCM) constraint flag indicating whether BDPCM is constrained with respect to an image; acquiring BDPCM-associated information regarding a current block on the basis of the BDPCM constraint flag; and generating reconstructed samples for the current block on the basis of the BDPCM-associated information.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

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

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

[0003] Thereby, in order to effectively transmit or store and reproduce high-resolution, high-quality image information, highly efficient image compression techniques are required. Summary of the Invention [Problem to be solved by the invention]

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

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

[0006] According to an embodiment of the present document, there is provided an image decoding method performed by a decoding device, the method including the steps of: obtaining image information including a BDPCM constraint flag indicating whether or not a block-based delta pulse code modulation (BDPCM) is constrained for an image; obtaining BDPCM-related information for a current block based on the BDPCM constraint flag; and generating a reconstructed sample for the current block based on the BDPCM-related information.

[0007] According to another embodiment of the present document, there is provided a decoding device for decoding an image, comprising: an entropy decoding unit for acquiring image information including a BDPCM constraint flag indicating whether or not a block-based delta pulse code modulation (BDPCM) is constrained for an image, acquiring BDPCM-related information for a current block based on the BDPCM constraint flag, and an adder for generating a reconstructed sample for the current block based on the BDPCM-related information.

[0008] According to yet another embodiment of the present document, there is provided a video encoding method performed by an encoding device, the method including the steps of generating a BDPCM constraint flag indicating whether or not BDPCM (Block-based Delta Pulse Code Modulation) is constrained for an image, and encoding image information including the BDPCM constraint flag, wherein if the BDPCM constraint flag has a value of 1, the BDPCM constraint flag indicates that the BDPCM is not available for the image, and if the BDPCM constraint flag has a value of 0, the BDPCM constraint flag indicates that the BDPCM is not constrained for the image.

[0009] According to yet another embodiment of the present document, there is provided a video encoding device, comprising: a prediction unit that generates a BDPCM constraint flag indicating whether or not BDPCM (Block-based Delta Pulse Code Modulation) is constrained for an image; and an entropy encoding unit that encodes image information including the BDPCM constraint flag, wherein if the BDPCM constraint flag has a value of 1, the BDPCM constraint flag indicates that the BDPCM is not available for the image, and if the BDPCM constraint flag has a value of 0, the BDPCM constraint flag indicates that the BDPCM is not constrained for the image. Effect of the Invention

[0010] According to this document, the BDPCM flag is signaled based on the size of the current block and the maximum transform block size, and the size of the current block and the maximum transform block size can be taken into account when signaling the BDPCM flag and determining whether or not to apply BDPCM, thereby reducing the amount of bits for BDPCM and improving overall coding efficiency.

[0011] According to this document, a syntax element indicating whether BDPCM is restricted for an image can be signaled, thereby making it possible to determine whether BDPCM can be performed for an image with a single syntax element, thereby improving overall image coding efficiency. [Brief description of the drawings]

[0012] [Figure 1] 1 illustrates generally an example of a video / image coding system in which embodiments of the present document may be applied; [Diagram 2] FIG. 1 is a diagram illustrating the configuration of a video / image encoding device to which the embodiments of this document can be applied. [Diagram 3] FIG. 1 is a diagram illustrating the configuration of a video / image decoding device to which an embodiment of the present document can be applied. [Figure 4] 1 shows an exemplary hierarchical structure for coded images / videos. [Diagram 5] Illustrated here is an example of a context-adaptive binary arithmetic coding (CABAC) for encoding syntax elements. [Figure 6] 1 illustrates an example of an intra-prediction based video / image encoding method. [Figure 7] 1 illustrates an example of an intra-prediction based video / image encoding method. [Figure 8] 1 illustrates an exemplary intra prediction procedure. [Figure 9] 1 illustrates a schematic diagram of an image encoding method using an encoding device according to the present document. [Figure 10] 1 shows a schematic diagram of an encoding device for performing an image encoding method according to the present document; [Figure 11] 1 illustrates an image decoding method using a decoding device according to the present document. [Figure 12] 1 shows a schematic diagram of a decoding device for performing an image decoding method according to the present document; [Figure 13] 1 exemplarily illustrates a structural diagram of a content streaming system to which an embodiment of the present document is applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] This document may have various modifications and may have various embodiments, and a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. Commonly used terms in this specification are used merely to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, terms such as "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

[0014] Meanwhile, each component in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components among the components may be combined to form one component, and one component may be divided into multiple components. An embodiment in which each component is integrated and / or separated is also included in the scope of the rights of this document as long as it does not deviate from the essence of this document.

[0015] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals will be used for the same components in the drawings, and duplicated descriptions of the same components may be omitted.

[0016] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system in which embodiments of the present document may be applied.

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

[0018] The source device may comprise a video source, an encoding device, and a sending unit. The receiving device may comprise a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may comprise a display unit, which may be a separate device or an external component.

[0019] A video source may acquire video / images through a video / image capture, synthesis, or generation process, etc. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which the associated data is generated.

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

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

[0022] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, prediction, etc., which correspond to the operations of the encoding device.

[0023] The renderer can render the decoded video / images, and the rendered video / images can be displayed via a display unit.

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

[0025] In this document, various embodiments relating to video / image coding are presented, which, unless otherwise stated, may also be implemented in combination with each other.

[0026] In this document, a video may mean a collection of a series of images over time. A picture generally means a unit showing one image at a particular time, and a subpicture / slice / tile is a unit constituting a part of a picture in coding. A subpicture / slice / tile may include one or more coding tree units (CTUs). A picture may consist of one or more subpictures / slices / tiles. A picture may consist of one or more groups of tiles. A tile group may include 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 consisting of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan 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. Additionally, a subpicture may represent a rectangular region of one or more slices within a picture. That is, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, the terms tile group and slice may be used interchangeably. For example, tile group / tile group header may be referred to as slice / slice header in this document.

[0027] A pixel or a pel may refer to the smallest unit that constitutes one picture (or image). A term corresponding to a pixel may be "sample." A sample may generally indicate a pixel or a pixel value, may indicate only a pixel / pixel value of a luma component, or may indicate only a pixel / pixel value of a chroma component.

[0028] A unit may refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may include one luma block and two chroma (e.g., cb, cr) blocks. A unit may be used interchangeably with terms such as block or area, depending on the case. In a general case, an M×N block may include a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.

[0029] 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."

[0030] As used herein, a slash ( / ) or a comma may mean "and / or." For example, "A / B" may mean "A and / or B." Thus, "A / B" may mean "A only," "B only," or "both A and B." For example, "A, B, C" may mean "A, B, or C."

[0031] In this specification, "at least one of A and B" may mean "A only," "B only," or "both A and B." In addition, 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."

[0032] In addition, 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." Furthermore, "at least one of A, B or C" and "at least one of A, B and / or C" may mean "at least one of A, B and C."

[0033] In addition, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." In addition, even when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."

[0034] Technical features described separately in one drawing in this specification may be realized separately or simultaneously.

[0035] The following drawings are created to explain a specific example of the present specification. The names of specific devices and names of specific signals / messages / fields described in the drawings are presented for illustrative purposes only, and the technical features of the present specification are not limited to the specific names used in the following drawings.

[0036] 2 is a diagram for explaining the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, the video encoding device may include an image encoding device.

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

[0038] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, a quad-tree structure may be applied first, and a binary tree structure and / or a ternary structure may be applied later. Alternatively, a binary tree structure may be applied first. The coding procedure according to this document may be performed based on a final coding unit that is not further divided. In this case, the largest coding unit may be used as the final coding unit immediately based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as necessary, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the transform unit is a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.

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

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

[0041] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction mode applied to the neighboring block.

[0042] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block by forming a motion information candidate list based on neighboring blocks. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of a motion vector prediction (MVP) mode, the motion vector of a neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.

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

[0044] The prediction signal generated through the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) may be used to generate a restored signal or may be used to generate a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same square size, or may be applied to non-square, variable-sized blocks.

[0045] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoder 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal as a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may encode information required for video / image restoration (e.g., values ​​of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of network abstraction layer (NAL) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may further include general constraint information. Information and / or syntax elements transmitted / signaled from an encoding device to a decoding device in this document may be included in the video / image information. The video / image information may be encoded through the above-mentioned encoding procedure and included in the bitstream.The bitstream may be transmitted via a network or may be stored in a digital storage medium, where the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding device 200, or the transmitter may be included in the entropy encoding unit 240.

[0046] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be restored by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the current block, such as when a skip mode is applied, a predicted block may be used as a reconstructed block. The adder 250 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering, as described below.

[0047] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.

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

[0049] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus may avoid prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300, and may also improve encoding efficiency.

[0050] The memory 270DPB may store the modified reconstructed picture to be used as a reference picture in the inter prediction unit 221. The memory 270 may store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 221 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.

[0051] FIG. 3 is a diagram illustrating a schematic configuration of a video / image decoding device to which the embodiments of this document can be applied.

[0052] As shown in FIG. 3, the decoding device 300 may be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. Also, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.

[0053] When a bitstream including video / image information is input, the decoding apparatus 300 can restore an image corresponding to a process in which the video / image information is processed by the encoding apparatus of FIG. 2. For example, the decoding apparatus 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding apparatus 300 can perform decoding using a processing unit applied in the encoding apparatus. Thus, the processing unit of the decoding is, for example, a coding unit, and the coding unit 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 ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output by the decoding apparatus 300 can be reproduced by a reproduction device.

[0054] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device may further decode pictures based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values ​​of syntax elements required for image restoration, quantized values ​​of transform coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decode information on the neighboring and blocks to be decoded, or information on symbols / bins decoded in a previous step, predict the occurrence probability of bins according to the determined context model, and perform arithmetic decoding of the bins to generate symbols corresponding to the values ​​of each syntax element. In this case, the CABAC entropy decoding method may update the context model using information on the decoded symbol / bin for the context model of the next symbol / bin after determining the context model.Among the information decoded by the entropy decoding unit 310, information related to prediction is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and residual values ​​entropy decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to the residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). Also, among the information decoded by the entropy decoding unit 310, information related to filtering may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) for receiving a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the addition unit 340, the filtering unit 350, the memory 360, the inter prediction unit 332, and the intra prediction unit 331.

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

[0056] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).

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

[0058] The prediction unit 320 may generate a prediction signal based on various prediction methods described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). In addition, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding such as games, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, information regarding a palette table and a palette index may be included in the video / image information and signaled.

[0059] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on a prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block using a prediction mode applied to a neighboring block.

[0060] The inter prediction unit 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted from an inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter prediction unit 332 may configure a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating a mode of inter prediction for the current block.

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

[0062] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in a current picture, and may be output after filtering as described below, or may be used for inter prediction of a next picture.

[0063] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.

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

[0065] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 332. The memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 360 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 331.

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

[0067] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. If the quantization / dequantization is omitted, the quantized transform coefficients may be referred to as transform coefficients. If the transform / inverse transform is omitted, the transform coefficients may be referred to as coefficients or residual coefficients, or may still be referred to as transform coefficients for uniformity of expression.

[0068] In this document, the quantized transform coefficients and the transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information on the transform coefficient(s), and the information on the transform coefficient(s) may be signaled via a residual coding syntax. A transform coefficient may be derived based on the residual information (or information on the transform coefficient(s)), and a scaled transform coefficient may be derived through an inverse transform (scaling) on ​​the transform coefficient. A residual sample may be derived based on an inverse transform (transform) on the scaled transform coefficient. This may be similarly applied / expressed in other parts of this document.

[0069] FIG. 4 shows an exemplary hierarchical structure for coded images / video.

[0070] As shown in Figure 4, the coded image / video is divided into a VCL (video coding layer), which handles the image / video decoding process and the video itself, a subsystem that transmits and stores the coded information, and a NAL (network abstraction layer), which exists between the VCL and the subsystem and is responsible for network adaptation functions.

[0071] In VCL, it is possible to generate VCL data including compressed image data (slice data), or to generate parameter sets including information such as a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), and a Video Parameter Set (VPS), or a Supplemental Enhancement Information (SEI) message that is additionally required for the image decoding process.

[0072] In NAL, NAL units can be generated by adding header information (NAL unit header) to RBSP (Raw Byte Sequence Payload) generated by VCL. In this case, RBSP refers to slice data, parameter set, SEI message, etc. generated by VCL. The NAL unit header can include NAL unit type information identified by the RBSP data included in the NAL unit.

[0073] As shown in the drawing, NAL units can be classified into VCL NAL units and non-VCL NAL units according to the RBSP generated in the VCL. The VCL NAL unit can refer to a NAL unit that contains information about an image (slice data), and the non-VCL NAL unit can refer to a NAL unit that contains information required to decode an image (parameter set or SEI message).

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

[0075] As described above, the NAL unit type of an NAL unit can be identified by the RBSP data structure included in the NAL unit, and information regarding such NAL unit type can be stored and signaled in the NAL unit header.

[0076] For example, NAL units can be broadly classified into VCL NAL unit types and non-VCL NAL unit types depending on whether the NAL units include information about images (slice data). The VCL NAL unit types can be classified according to the nature and type of pictures included in the VCL NAL units, and the non-VCL NAL unit types can be classified according to the type of parameter sets.

[0077] The following is an example of a NAL unit type specified by the type of parameter set that the Non-VCL NAL unit type includes.

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

[0079] DPS (Decoding Parameter Set) NAL unit: Type for NAL units that contain DPS

[0080] VPS (Video Parameter Set) NAL unit: Type for NAL units that contain VPS

[0081] SPS (Sequence Parameter Set) NAL unit: Type for NAL units that contain SPS

[0082] PPS (Picture Parameter Set) NAL unit: Type for NAL unit that contains PPS

[0083] PH(Picture header) NAL unit: Type for NAL unit containing PH

[0084] The above-mentioned NAL unit types have syntax information for the NAL unit types, and the syntax information can be stored in a NAL unit header and signaled. For example, the syntax information can be nal_unit_type, and the NAL unit type can be specified by the nal_unit_type value.

[0085] Meanwhile, as described above, the encoding device can perform various encoding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. Also, the decoding device can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values ​​of syntax elements required for image restoration, quantized values ​​of transform coefficients related to residuals, etc.

[0086] For example, the above coding method can be performed as described below.

[0087] FIG. 5 illustrates an example of CABAC (context-adaptive binary arithmetic coding) for encoding a syntax element. For example, in the CABAC encoding process, if an input signal is a syntax element that is not a binary value, an encoding device may binarize the value of the input signal to convert the input signal into a binary value. Also, if the input signal is already a binary value (i.e., the value of the input signal is a binary value), binarization may be bypassed. Here, each binary digit 0 or 1 constituting a binary value may be referred to as a bin. For example, if the binary string after binarization is 110, each of 1, 1, and 0 may be referred to as one bin. The bin (etc.) for one syntax element may represent the value of the syntax element.

[0088] The binarized bins of the syntax elements may then be input to a regular encoding engine or a bypass encoding engine. The regular encoding engine of the encoding device may assign a context model reflecting a probability value to the bin and encode the bin based on the assigned context model. The regular encoding engine of the encoding device may update the context model for each bin after encoding the bin. A bin encoded as described above may be referred to as a context-coded bin.

[0089] Meanwhile, when the binarized bins of the syntax elements are input to the bypass encoding engine, they can be coded as follows. For example, the bypass encoding engine of the encoding device omits a procedure of estimating a probability for an input bin and a procedure of updating a probability model applied to the bin after encoding. When bypass encoding is applied, the encoding device can encode the input bin by applying a uniform probability distribution instead of assigning a context model, thereby improving the encoding speed. The bins encoded as described above can be referred to as bypass bins.

[0090] Entropy decoding can refer to a process of performing the same process as the entropy encoding described above in reverse order.

[0091] For example, when a syntax element is decoded based on a context model, a decoding device can receive a bin corresponding to the syntax element through a bitstream, determine a context model using the syntax element and decoded information of a block to be decoded or a neighboring block, or information of a symbol / bin decoded in a previous step, predict an occurrence probability of the received bin according to the determined context model, and derive a value of the syntax element by performing arithmetic decoding of the bin. Then, the context model of the bin to be decoded next can be updated to the determined context model.

[0092] Also, for example, when a syntax element is bypass decoded, the decoding device may receive a bin corresponding to the syntax element through a bitstream and may decode the input bin by applying a uniform probability distribution. In this case, the decoding device may omit a procedure of deriving a context model of the syntax element and a procedure of updating the context model applied to the bin after decoding.

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

[0094] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the residual samples (residual sample array) included in the residual block to derive transform coefficients, perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and signal related residual information (through a bitstream) to a decoding apparatus. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. The encoding apparatus may further derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.

[0095] Intra prediction may represent a prediction that generates a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, 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 neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.

[0096] However, some of the neighboring reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may substitute the unavailable samples for the available samples to construct the neighboring reference samples used for prediction. Alternatively, the decoder may construct the neighboring reference samples used for prediction through interpolation of the available samples.

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

[0098] In addition, the prediction sample may be generated by interpolating a first neighboring sample located in a prediction direction of an intra prediction mode of the current block and a second neighboring sample located in an opposite direction to the prediction direction based on the prediction sample of the current block among the neighboring reference samples. The above case may be called a linear interpolation intra prediction (LIP). Also, a chroma prediction sample may be generated based on a luma sample using a linear model (LM). In this case, it may be called an LM mode or a CCLM (chroma component LM) mode.

[0099] Also, a provisional prediction sample of the current block may be derived based on the filtered neighboring reference samples, and a prediction sample of the current block may be derived by weighting the provisional prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples, i.e., the unfiltered neighboring reference samples. The above case may be called Position Dependent Intra Prediction (PDPC).

[0100] Also, the reference sample line with the highest prediction accuracy may be selected from among multiple reference sample lines surrounding the current block, a prediction sample may be derived using a reference sample located in a prediction direction on the selected line, and the reference sample line used may be signaled to a decoding device, thereby performing intra prediction encoding. The above case may be called multi-reference line intra prediction or MRL-based intra prediction.

[0101] In addition, the current block may be divided into vertical or horizontal sub-partitions and intra prediction may be performed based on the same intra prediction mode, but neighboring reference samples may be derived and used in units of the sub-partitions. That is, in this case, the intra prediction mode for the current block is similarly applied to the sub-partitions, but neighboring reference samples may be derived and used in units of the sub-partitions, thereby improving intra prediction performance in some cases. Such a prediction method may be called ISP (intra sub-partitions) based intra prediction.

[0102] The above-mentioned intra prediction methods, etc., may be called intra prediction types, distinguished from intra prediction modes. The intra prediction types may be called various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction types (or additional intra prediction modes, etc.) may include at least one of the above-mentioned LIP, PDPC, MRL, and ISP. A general intra prediction method other than the specific intra prediction types, such as the LIP, PDPC, MRL, and ISP, may be called a normal intra prediction type. The normal intra prediction type may be generally applied when the above-mentioned specific intra prediction types are not applied, and prediction may be performed based on the above-mentioned intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.

[0103] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra prediction mode / type. In addition, a post-processing filtering step may be performed on the derived prediction sample, if necessary.

[0104] FIG. 6 illustrates an example of an intra-prediction based video / image encoding method.

[0105] As shown in FIG. 6, the encoding apparatus performs intra prediction on a current block (S600). The encoding apparatus may derive an intra prediction mode / type for the current block, derive a neighboring reference sample for the current block, and generate a prediction sample in the current block based on the intra prediction mode / type and the neighboring reference sample. Here, the intra prediction mode / type determination, neighboring reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or any one procedure may be performed prior to the other procedures. The encoding apparatus may determine a mode / type to be applied to the current block from among a plurality of intra prediction modes / types. The encoding apparatus may compare RD costs for the intra prediction modes / types to determine an optimal intra prediction mode / type for the current block.

[0106] Meanwhile, the encoding apparatus may also perform a prediction sample filtering procedure. The prediction sample filtering may be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.

[0107] The encoding apparatus generates residual samples for the current block based on the (filtered) predicted samples (S610). The encoding apparatus may derive the residual samples by comparing the predicted samples with the original samples of the current block based on a phase.

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

[0109] The residual information may include a residual coding syntax, which will be described later. An encoding apparatus may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information regarding the quantized transform coefficients.

[0110] Meanwhile, as described above, the encoding apparatus may generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding apparatus may again inverse quantize / inverse transform the quantized transform coefficients to derive (modified) residual samples. The reason for again performing inverse quantization / inverse transform after transforming / quantizing the residual samples is to derive the same residual samples as the residual samples derived from the decoding apparatus, as described above. The encoding apparatus may generate a reconstructed block including reconstructed samples for the current block based on the predicted samples and the (modified) residual samples. A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure, etc. may further be applied to the reconstructed picture.

[0111] FIG. 7 illustrates an example of an intra-prediction based video / image encoding method.

[0112] The decoding device may perform operations corresponding to those performed by the encoding device.

[0113] Prediction information and residual information may be obtained from a bitstream. A residual sample for a current block may be derived based on the residual information. Specifically, a transform coefficient may be derived by performing inverse quantization based on a quantized transform coefficient derived based on the residual information, and a residual sample for the current block may be derived by performing inverse transform on the transform coefficient.

[0114] Specifically, the decoding apparatus may derive an intra prediction mode / type for a current block based on received prediction information (intra prediction mode / type information) (S700). The decoding apparatus may derive neighboring reference samples for the current block (S710). The decoding apparatus generates prediction samples in the current block based on the intra prediction mode / type and the neighboring reference samples (S720). In this case, the decoding apparatus may perform a prediction sample filtering procedure. The prediction sample filtering may be referred to as post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.

[0115] The decoding apparatus generates a residual sample for the current block based on the received residual information (S730). The decoding apparatus generates a reconstructed sample for the current block based on the prediction sample and the residual sample, and may derive a reconstructed block including the reconstructed sample (S740). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like may be further applied to the reconstructed picture.

[0116] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.

[0117] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (ex.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 (ex.intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, or ISP type information (ex.intra_subpartitions_split_flag) indicating a subpartition split type when the ISP is applied. Also, the intra prediction type information may include an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.

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

[0119] FIG. 8 exemplarily illustrates an intra prediction procedure.

[0120] 8, as described above, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction execution (prediction sample generation) step. The intra prediction procedure may be performed in an encoding device and a decoding device as described above. In this document, a coding device may include an encoding device and / or a decoding device.

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

[0122] The encoding apparatus may determine an intra prediction mode / type to be applied to the current block from among the various intra prediction modes / types described above, and may generate prediction related information. The prediction related information may include intra prediction mode information indicating an intra prediction mode to be applied to the current block and / or intra prediction type information indicating an intra prediction type to be applied to the current block. The decoding apparatus may determine an intra prediction mode / type to be applied to the current block based on the prediction related information.

[0123] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.

[0124] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (ex.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 (ex.intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, or ISP type information (ex.intra_subpartitions_split_flag) indicating a subpartition split type when the ISP is applied. Also, the intra prediction type information may include an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.

[0125] For example, when intra prediction is applied, the intra prediction mode applied to the current block may be determined using the intra prediction mode of the neighboring blocks. For example, the coding apparatus may select one of the MPM candidates in the MPM (most probable mode) list derived based on the intra prediction modes of the neighboring blocks (ex. left and / or upper neighboring blocks) of the current block and / or additional candidate modes based on the received MPM index, or may select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on MPM remainder information (remaining intra prediction mode information). The MPM list may be configured to include or not include the planar mode as a candidate. For example, if the MPM list includes the planar mode as a candidate, the MPM list may have six candidates, and if the MPM list does not include the planar mode as a candidate, the MPM list may have five candidates. If the MPM list does not include a planar mode as a candidate, a not planar flag (ex. intra_luma_not_planar_flag) indicating that the intra prediction mode of the current block is not a planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not planar flag may be signaled when the value of the MPM flag is 1. Also, the MPM index may be signaled when the value of the not planar flag is 1. Here, the reason why the MPM list is configured not to include a planar mode as a candidate is that the planar mode is always considered as an MPM, rather than the planar mode being not an MPM, and therefore a flag (not planar flag) is signaled first to first check whether the mode is a planar mode.

[0126] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planar mode) or among the remaining mode may be indicated based on an MPM flag (ex.intra_luma_mpm_flag). A value of 1 of the MPM flag may indicate that the intra prediction mode for the current block is among the MPM candidates (and planar mode), and a value of 0 of the MPM flag may indicate that the intra prediction mode for the current block is not among the MPM candidates (and planar mode). A value of 0 of the not planar flag (ex.intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 of the not planar flag may indicate that the intra prediction mode for the current block is not the planar mode. The MPM index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information may index the remaining intra prediction modes not included in the MPM candidates (and planar modes) among all intra prediction modes in order of prediction mode numbers, and may indicate one of them. The intra prediction mode may be an intra prediction mode for a luma component (sample). Hereinafter, the intra prediction mode information may include at least one of the MPM flag (ex.intra_luma_mpm_flag), the not planar flag (ex.intra_luma_not_planar_flag), the MPM index (ex.mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, an MPM list may be referred to by various terms, such as an MPM candidate list, a candModeList, etc.

[0127] When MIP is applied to the current block, a separate MPM flag (ex.intra_mip_mpm_flag), MPM index (ex.intra_mip_mpm_idx), and remaining intra-prediction mode information (ex.intra_mip_mpm_remainder) for MIP may be signaled, and the not planar flag may not be signaled.

[0128] In other words, when an image is generally divided into blocks, the current block to be coded and neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are highly likely to have the same or similar intra-prediction modes. Therefore, the encoder can use the intra-prediction modes of the neighboring blocks to encode the intra-prediction mode of the current block.

[0129] A coding apparatus may configure a most probable modes (MPM) list for a current block. The MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency in consideration of similarity between a current block and a neighboring block when performing intra prediction mode coding. As described above, the MPM list may be configured to include a planar mode or may be configured to exclude a planar mode. For example, if the MPM list includes a planar mode, the number of candidates in the MPM list may be six. And, if the MPM list does not include a planar mode, the number of candidates in the MPM list may be five.

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

[0131] Meanwhile, in general, if the intra prediction mode of the current block is not a planar mode but is one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) pointing to one of the MPM candidates. If the intra prediction mode of the current block is not in the MPM list, the encoding device generates MPM remainder information (remaining intra prediction mode information) pointing to the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list (and planar modes). The MPM remainder information may include, for example, an intra_luma_mpm_remainder syntax element.

[0132] The decoding device obtains intra prediction mode information from a bitstream. The intra prediction mode information may include at least one of an MPM flag, a not planar flag, an MPM index, and MPM remainder information (remaining intra prediction mode information) as described above. The decoding device may configure an MPM list. The MPM list is configured in the same manner as the MPM list configured in the encoding device. That is, the MPM list may include intra prediction modes of neighboring blocks, and may further include a specific intra prediction mode according to a predetermined method.

[0133] The decoding apparatus may determine an intra prediction mode of the current block based on the MPM list and the intra prediction mode information. For example, when the value of the MPM flag is 1, the decoding apparatus may derive a planar mode as the intra prediction mode of the current block (based on a not planar flag), or may derive a candidate indicated by the MPM index among MPM candidates in the MPM list as the intra prediction mode of the current block. Here, the MPM candidate may represent only candidates included in the MPM list, or may include not only candidates included in the MPM list but also planar modes that can be applied when the value of the MPM flag is 1.

[0134] As another example, when the value of the MPM flag is 0, the decoding device may derive the intra prediction mode pointed to by the remaining intra prediction mode information (which may be referred to as mpm remainder information) from among the remaining intra prediction modes not included in the MPM list and planar mode as the intra prediction mode of the current block. Meanwhile, as yet another example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP, etc.), the decoding device may derive the planar mode or a candidate pointed to by the MPM flag in the MPM list as the intra prediction mode of the current block without parsing / decoding / checking the MPM flag.

[0135] The coding apparatus derives neighboring reference samples of the current block (S810). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, 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 neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.

[0136] On the other hand, when MRL is applied (i.e., when the value of the MRL index is greater than 0), the neighboring reference samples may be located on the 1st or 2nd line, not the 0th line, adjacent to the current block on the left / top side, and in this case, the number of neighboring reference samples may be further increased.On the other hand, when ISP is applied, the neighboring reference samples may be derived in sub-partition units.

[0137] The coding apparatus performs intra prediction on the current block to derive a prediction sample (S820). The coding apparatus may derive the prediction sample based on the intra prediction mode / type and the surrounding samples. The coding apparatus may derive a reference sample according to the intra prediction mode of the current block from among surrounding reference samples of the current block, and may derive a prediction sample of the current block based on the reference sample.

[0138] Meanwhile, according to one embodiment, a block differential pulse coded modulation (BDPCM) or block-based Delta Pulse Code Modulation (RDPCM) technique may be used. BDPCM may also be named quantized residual block-based Delta Pulse Code Modulation (RDPCM).

[0139] When predicting a block by applying BDPCM, the reconstructed samples may be used to predict rows or columns of the block line-by-line. In this case, the reference samples used may be unfiltered samples. The BDPCM direction may indicate whether vertical or horizontal prediction is used. That is, when BDPCM is applied, the vertical or horizontal direction may be selected as the BDPCM direction, and prediction may be performed in the BDPCM direction. A prediction error may be quantized in the spatial domain, and a sample may be reconstructed by adding a dequantized prediction error to a prediction (i.e., a prediction sample). The prediction error may represent a residual. As an alternative to such BDPCM, a quantized residual domain BDPCM may be proposed, and the prediction direction and signaling may be the same as those of the BDPCM applied to the spatial domain. That is, the quantized coefficients themselves may be multiplied through the quantized residual domain BDPCM as in DPCM (Delta Pulse Code Modulation), and then the residual may be reconstructed through dequantization. Therefore, the quantized residual domain BDPCM can be used to mean applying DPCM at the residual coding end. The quantized residual domain used below means a domain for quantized residual samples, in which the residual derived based on the prediction is quantized without transformation. For example, the quantized residual domain can include quantized residuals (or quantized residual coefficients) to which a transform skip is applied, i.e., the transform is skipped but quantization is applied to the residual samples. Or, for example, the quantized residual domain can include quantized transform coefficients.

[0140] For a block of size M × N, the residual is derived by using the predicted values ​​obtained by performing horizontal intra prediction (copying the left peripheral sample line to the predicted block line-by-line) or vertical intra prediction (copying the upper peripheral sample line to the predicted block line-by-line) using the unfiltered samples from the left or upper boundary samples (i.e., the left peripheral samples or the upper peripheral samples). (i、j) (0≦i≦M-1, 0≦j≦N-1), where M can represent row or height, and N can represent column or width. Then, the residual r (i、j) The quantized value of Q(r (i、j) ) (0≦i≦M−1, 0≦j≦N−1), where the residual refers to the difference between the original block and the predicted block.

[0141] Then, by applying BDPCM to the quantized residual samples, M×N transformed array with JPEG0007667336000001.jpg10109 as the component JPEG0007667336000002.jpg566 can be derived.

[0142] For example, if vertical BDPCM is signaled (i.e., vertical BDPCM is applied), JPEG0007667336000003.jpg1082 can be derived as follows:

[0143]

number

[0144] That is, for example, when vertical BDPCM is applied, the encoding apparatus may perform vertical intra prediction based on upper neighboring samples, and quantized residual samples for the current block may be derived as shown in Equation 1. Referring to Equation 1, quantized residual samples of rows other than the first row of the current block may be derived as a difference between a quantized value for the corresponding position and a quantized value for a position of a previous row of the corresponding position (i.e., an upper neighboring position of the corresponding position).

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

[0146]

number

[0147] That is, for example, when horizontal BDPCM is applied, the encoding apparatus may perform horizontal intra prediction based on the left neighboring samples, and the quantized residual samples for the current block may be derived as shown in Equation 2. Referring to Equation 2, the quantized residual samples of columns other than the first column of the current block may be derived as a difference between a quantized value for a position and a quantized value for a position in a previous column of the position (i.e., a position to the left of the position).

[0148] The quantized residual samples JPEG0007667336000006.jpg798 can be sent to a decoding device.

[0149] In the decoding device, Q(r (i、j) ) (0≦i≦M-1, 0≦j≦N-1), the above operations can be reversed.

[0150] For vertical prediction, the following formula may be applied:

[0151]

number

[0152] And for horizontal prediction the following formula may be applied:

[0153]

number

[0154] Dequantized quantized residual JPEG0007667336000009.jpg11116 is combined with the intrablock predictor to derive the reconstructed sample values.

[0155] The main advantage of such a technique is that inverse BDPCM can be performed by simply adding a predictor during or even after parsing the coefficients.

[0156] As described above, BDPCM may be applied to the quantized residual domain, which may include quantized residuals (or quantized residual coefficients), and in this case, transform skip may be applied to the residuals. That is, when BDPCM is applied, transform may be skipped and quantization may be applied to the residual samples. Alternatively, the quantized residual domain may include quantized transform coefficients. A flag for whether BDPCM is applicable may be signaled at the sequence level (SPS), and such a flag may be signaled only if it is signaled that transform skip mode is possible in the SPS. The flag may be referred to as a BDPCM available flag or an SPS BDPCM available flag.

[0157] When BDPCM is applied, intra prediction can be performed on the entire block by sample copying according to a prediction direction similar to the intra prediction direction (e.g., vertical prediction or horizontal prediction). The residual, which is a difference value between the original and the predicted block, is quantized with the transform 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), i.e., the difference value JPEG0007667336000010.jpg995 can be coded.

[0158] If BDPCM is applicable, if the CU size is smaller than or equal to MaxTsSize (maximum transform skip block size) for luma samples and the CU is coded by intra prediction, flag information may be transmitted at the CU level. The flag information may be referred to as a BDPCM flag. Here, MaxTsSize may mean the maximum block size for which transform skip mode is allowed. The flag information may indicate whether normal intra coding or BDPCM is applied. If BDPCM is applied, a BDPCM prediction direction flag indicating whether the prediction direction is horizontal or vertical may be transmitted. The BDPCM prediction direction flag may also be referred to as a BDPCM direction flag. Then, the block may be predicted through a normal horizontal or vertical intra prediction process using unfiltered reference samples. In addition, the residuals may be quantized, and a difference value between each quantized residual and its predictor, e.g., an already quantized residual at a neighboring position in the horizontal or vertical direction according to the BDPCM prediction direction, may be coded.

[0159] Meanwhile, the above-mentioned BDPCM can be written in a standard document format, as will be described later.

[0160] For example, the syntax elements for the above-mentioned BDPCM available flag and the semantics for the syntax elements can be expressed as shown in the following table.

[0161] [Table 1]

[0162] [Table 2]

[0163] Table 1 shows sps_bdpcm_enabled_flag signaled in a Sequence Parameter Set (SPS). If the syntax element sps_bdpcm_enabled_flag is 1, it indicates that flag information indicating whether BDPCM is applied to a coding unit where intra prediction is performed, i.e., 'intra_bdpcm_luma_flag' and 'intra_bdpcm_chroma_flag', is present in the coding unit. The syntax element sps_bdpcm_enabled_flag may be a syntax element for the above-mentioned BDPCM enabled flag. Also, if the syntax element 'sps_bdpcm_enabled_flag' does not exist, its value may be regarded as 0.

[0164] Also, for example, syntax elements for the above-mentioned BDPCM flag and BDPCM direction flag and semantics for the syntax elements can be expressed as shown in the following table.

[0165] [Table 3]

[0166] [Table 4]

[0167] The syntax element bdpcm_flag in Table 3 may indicate whether BDPCM is applied to the current block. The syntax element bdpcm_flag may be a syntax element for the BDPCM flag described above. For example, if the value of bdpcm_flag is 1, the BDPCM is applied to the current block, transformation for the current block is skipped, and bdpcm_dir_flag indicating a prediction direction for the current block may be present. Also, for example, if the value of bdpcm_flag is 0, it may not be applied to the current block. Also, for example, if bdpcm_flag is not present, this value may be regarded as 0. The current block may be a coding block. The bdpcm_dir_flag may indicate a prediction direction for the current block. For example, referring to Table 4, if the value of the bdpcm_dir_flag is 1, the prediction direction for the current block may be vertical, and if the value of the bdpcm_dir_flag is 0, the prediction direction for the current block may be horizontal. The syntax element bdpcm_flag may be a syntax element for the above-mentioned BDPCM flag, and the syntax element bdpcm_dir_flag may be a syntax element for the above-mentioned BDPCM direction flag.

[0168] Also, for example, the syntax elements for the BDPCM flag and the BDPCM direction flag described above may be signaled separately for the luma component and the chroma component. For example, the semantics of the syntax elements may be expressed as shown in the following table.

[0169] [Table 5]

[0170] [Table 6]

[0171] As described above, the syntax element intra_bdpcm_luma_flag in Table 5 may indicate whether BDPCM is applied to the current luma block, and intra_bdpcm_chroma_flag may indicate whether BDPCM is applied to the current luma block or the current chroma block. For example, if the value of intra_bdpcm_luma_flag or intra_bdpcm_chroma_flag is 1, the transform for the coding block is skipped, and the prediction mode for the coding block may be set to horizontal or vertical by intra_bdpcm_luma_dir_flag or intra_bdpcm_chroma_dir_flag indicating the prediction direction. If intra_bdpcm_luma_flag or intra_bdpcm_chroma_flag is not present, this value may be regarded as 0.

[0172] Also, 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 indicate that the BDPCM prediction direction is horizontal, and if the value of intra_bdpcm_luma_dir_flag or intra_bdpcm_chroma_dir_flag is 1, it can indicate that the BDPCM prediction direction is vertical.

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

[0174] [Table 7-1] [Table 7-2] [Table 7-3]

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

[0176] [Table 8-1] [Table 8-2] [Table 8-3] [Table 8-4]

[0177] Referring to Table 7 or Table 8, if the value of bdpcm_flag is 1, the dequantized residual value d[x][y] may be derived based on the intermediate variable dz[x][y]. Here, x is a horizontal coordinate that increases from left to right, and y is a vertical coordinate that increases from top to bottom, and a position in a two-dimensional block may be expressed as (x, y). Also, a position in a two-dimensional block represents a (x, y) position when the top left corner of the block is placed at (0, 0).

[0178] For example, if the value of bdpcm_dir_flag is 0, i.e., if horizontal BDPCM is applied, the variable dz[x][y] may be derived based on TransCoeffLevel[xTbY][yTbY][cIdx][x][y] when x is 0, and dz[x-1][y]+dz[x][y] when x is not 0. That is, if horizontal BDPCM is applied (the value of bdpcm_dir_flag is 0), the variable dz[x][y] of a sample located in the first column where x is 0 may be derived to 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 may be derived as the sum of dz[x-1][y] of a sample to the left of the sample and dz[x][y] for the sample. Here, dz[x][y] for the sample to be added to dz[x-1][y] can be derived based on the residual information for the sample that is signaled.

[0179] Also, for example, if the value of bdpcm_dir_flag is 1, that is, if vertical BDPCM is applied, the variable dz[x][y] may 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 may be derived to TransCoeffLevel[xTbY][yTbY][cIdx][x][y] derived based on residual information of the sample, and the variable dz[x][y] of a sample located in a row other than the first row where y is not 0 may be derived as the sum of dz[x][y-1] of a neighboring sample above the sample and dz[x][y] for the sample. Here, the dz[x][y] for the sample to be added to the dz[x][y-1] may be derived based on residual information for the sample to be signaled.

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

[0181] Meanwhile, this document proposes the following method for applying BDPCM between residual signals in the process of coding a transform-skipped residual signal. A transform-skipped residual signal may be distributed evenly within a transform unit (TU) unlike a transform-applied coefficient, and a transform-skipped residual coefficient is highly likely to be similar to a residual coefficient around the component. In addition, in the case of an intra-predicted transform-skipped block, the larger the block size is, the higher the probability that the level of the residual generated at the lower right end of the block is higher than the level of the residual generated at the upper left end of the block due to the distance from the prediction reference sample. Therefore, according to BDPCM, in order to improve coding efficiency by utilizing the above-mentioned characteristics of residual distribution, as described above, line-by-line inter-residual prediction may be performed in the row or column direction. And, the residual of the block to which the BDPCM is applied may be encoded / decoded by a residual coding grammar for transform skipping.

[0182] Therefore, it may be reasonable to consider BDPCM as yet another transform skip method. Accordingly, this document proposes a method of determining whether BDPCM is applicable depending on the transform skip condition. For example, in one embodiment, a scheme may be proposed in which a BDPCM flag indicating whether BDPCM is applicable is signaled / parsed / coded when transform_skip_enabled_flag is true (i.e., the value of transform_skip_enabled_flag is 1). In addition, this embodiment may propose a scheme in which a BDPCM flag is signaled / parsed / coded based on a size of a current block. For example, when the size of the current block is equal to or smaller than the maximum transform block size (i.e., when the width and height of the current block are equal to or smaller than the maximum transform block size), a BDPCM flag may be signaled / parsed / coded. In addition, this embodiment may propose a scheme in which a BDPCM flag is signaled / parsed / coded based on transform_skip_enabled_flag and / or the size of the current block. For example, if transform_skip_enabled_flag is true (i.e., the value of transform_skip_enabled_flag is 1) and the size of the current block is less than or equal to the maximum transform block size (i.e., the width and height of the current block are less than or equal to the maximum transform block size), the BDPCM flag may be signaled / parsed / coded.

[0183] For example, the syntax proposed in this embodiment may be as follows:

[0184] [Table 9]

[0185] Referring to Table 9, the syntax element of the BDPCM flag may be intra_bdpcm_flag. Or, for example, the syntax element of the BDPCM flag may be intra_bdpcm_luma_flag. Referring to Table 9, the BDPCM flag for the current block may be signaled based on the transform_skip_enabled_flag and / or the size of the current block. For example, if the width and height of the current block are equal to or smaller than the maximum transform block size, the BDPCM flag may be signaled, and if the width or height of the current block is greater than the maximum transform block size, the BDPCM flag may not be signaled. Here, for example, the maximum transform block size may be derived based on information representing the maximum transform block size. Also, for example, if the BDPCM flag does not exist (i.e., if the BDPCM flag is not signaled), the BDPCM flag may be inferred to 0.

[0186] In addition, this document proposes the following method for applying BDPCM between residual signals in the process of coding a transform-skipped residual signal. As described above, a transform-skipped residual signal can be evenly distributed within a transform unit (TU) unlike a transform-applied coefficient, and a transform-skipped residual coefficient is highly likely to be similar to a residual coefficient in the vicinity of the component. In addition, in the case of an intra-predicted transform-skipped block, the larger the block size is, the higher the probability that the level of the residual generated at the bottom right end of the block is higher than the level of the residual generated at the top left end of the block due to the distance from the prediction reference sample.

[0187] Therefore, in the present embodiment, although BDPCM is regarded as yet another transform skip method, a method of determining whether BDPCM is applicable by regarding it as a coding tool separate from the transform skip mode is proposed. The method proposed in the present embodiment is based on the fact that the BDPCM mode is inferred as the transform skip mode as in the past.

[0188] For example, the syntax and semantics proposed in this embodiment may be as follows:

[0189] [Table 10]

[0190] [Table 11]

[0191] For example, according to the present embodiment, a syntax element no_bdpcm_constraint_flag may be signaled. The syntax element no_bdpcm_constraint_flag may indicate whether BDPCM is constrained. For example, no_bdpcm_constraint_flag may be referred to as a BDPCM constraint flag.

[0192] For example, referring to Table 11, no_bdpcm_constraint_flag equal to 1 may indicate that the value of the BDPCM enabled flag is 0. That is, for example, no_bdpcm_constraint_flag equal to 1 may indicate that BDPCM is not enabled (for the entire image). no_bdpcm_constraint_flag equal to 0 may not impose a constraint on BDPCM. Also, for example, a syntax element of the BDPCM enabled flag may be bdpcm_enabled_flag. Meanwhile, for example, the BDPCM enabled flag may be defined in one or more of a sequence parameter set (SPS), a picture parameter set (PPS), a video parameter set (VPS), and a slice header. That is, for example, the BDPCM enabled flag can be signaled via a sequence parameter set (SPS), a picture parameter set (PPS), a video parameter set (VPS), and / or a slice header.

[0193] Also, for example, referring to Table 11, if the value of the BDPCM available flag is 0 or the BDPCM flag is not present, the BDPCM flag may be regarded as 0. Thus, for example, if the value of the above-mentioned no_bdpcm_constraint_flag is 1, the BDPCM available flag may be 0 and the BDPCM flag may also be regarded as 0. Also, for example, the BDPCM flag may indicate whether or not BDPCM is applied to the current block. For example, a BDPCM flag of 0 may indicate that BDPCM is not applied to the current block, and a BDPCM flag of 1 may indicate that BDPCM is applied to the current block. That is, a BDPCM flag of 1 may indicate that transformation is skipped for the current block and prediction for the current block is performed in the intra prediction mode represented by the BDPCM direction flag. The syntax element for the BDPCM direction flag can be intra_bdpcm_dir_flag, intra_bdpcm_luma_dir_flag, or intra_bdpcm_chroma_dir_flag.

[0194] Also, for example, referring to Table 11, if the transform skip flag is not present, the value of the BDPCM available flag is 1 and the value of BdcpmFlag is 1, the transform skip flag may be regarded as 1. Also, for example, if the transform skip flag is not present, the value of the BDPCM available flag is 0 or the value of BdcpmFlag is 0, the transform skip flag may be regarded as 0. Here, the value of BdcpmFlag may be set to the same value as the BDPCM Flag.

[0195] In addition, this document proposes the following method for applying BDPCM between residual signals in the process of coding a transform-skipped residual signal. As described above, a transform-skipped residual signal can be evenly distributed within a transform unit (TU) unlike a transform-applied coefficient, and a transform-skipped residual coefficient is highly likely to be similar to a residual coefficient in the vicinity of the component. In addition, in the case of an intra-predicted transform-skipped block, the larger the block size is, the higher the probability that the level of the residual generated at the bottom right end of the block is higher than the level of the residual generated at the top left end of the block due to the distance from the prediction reference sample.

[0196] Therefore, in this embodiment, although BDPCM is regarded as yet another transform skip method, it is regarded as a coding tool separate from the transform skip mode, and another method for determining whether BDPCM is applicable is proposed. The method proposed in this embodiment is based on the fact that BDPCM is performed completely independently of the transform skip mode.

[0197] For example, the syntax and semantics proposed in this embodiment may be as follows:

[0198] [Table 12-1] [Table 12-2]

[0199] [Table 13]

[0200] For example, according to the present embodiment, a syntax element no_bdpcm_constraint_flag may be signaled, which may indicate whether BDPCM is constrained or not.

[0201] For example, referring to Table 13, no_bdpcm_constraint_flag being 1 may indicate that the value of the BDPCM enabled flag is 0. no_bdpcm_constraint_flag being 0 may not impose a constraint on BDPCM. Also, for example, a syntax element of the BDPCM enabled flag may be bdpcm_enabled_flag. Meanwhile, for example, the BDPCM enabled flag may be defined in one or more of a sequence parameter set (SPS), a picture parameter set (PPS), a video parameter set (VPS), and a slice header. That is, for example, the BDPCM enabled flag may be signaled via a sequence parameter set (SPS), a picture parameter set (PPS), a video parameter set (VPS), and / or a slice header.

[0202] Also, for example, referring to Table 13, if the value of the BDPCM available flag is 0 or the BDPCM flag is not present, the BDPCM flag may be regarded as 0. Thus, for example, if the value of the above-mentioned no_bdpcm_constraint_flag is 0, the BDPCM available flag may be 0 and the BDPCM flag may also be regarded as 0. Also, for example, the BDPCM flag may indicate whether or not BDPCM is applied to the current block. For example, a BDPCM flag of 0 may indicate that BDPCM is not applied to the current block, and a BDPCM flag of 1 may indicate that BDPCM is applied to the current block. That is, a BDPCM flag of 1 may indicate that transformation is skipped for the current block and prediction for the current block is performed in the intra prediction mode represented by the BDPCM direction flag. The syntax element for the BDPCM direction flag can be intra_bdpcm_dir_flag, intra_bdpcm_luma_dir_flag, or intra_bdpcm_chroma_dir_flag.

[0203] Also, for example, referring to Table 13, if the transform skip flag is not present, the transform skip flag may be regarded as 0. That is, the transform skip mode may be performed independently of the BDPCM.

[0204] In addition, this document proposes the following method for applying BDPCM between residual signals in the process of coding a transform-skipped residual signal. As described above, a transform-skipped residual signal can be evenly distributed within a transform unit (TU) unlike a transform-applied coefficient, and a transform-skipped residual coefficient is highly likely to be similar to a residual coefficient in the vicinity of the component. In addition, in the case of an intra-predicted transform-skipped block, the larger the block size is, the higher the probability that the level of the residual generated at the bottom right end of the block is higher than the level of the residual generated at the top left end of the block due to the distance from the prediction reference sample.

[0205] Therefore, in this embodiment, although BDPCM is regarded as yet another transform skip method, it is regarded as a coding tool separate from the transform skip mode, and another method of determining whether BDPCM is applicable is proposed. The method proposed in this embodiment is based on the fact that BDPCM is performed completely independently of the transform skip mode, and unlike the previously disclosed embodiment, a flag signaled in a high level syntax, i.e., no_bdpcm_constraint_flag, may not be separately defined.

[0206] For example, the syntax and semantics proposed in this embodiment may be as follows:

[0207] [Table 14]

[0208] [Table 15]

[0209] Referring to Table 14, residual coding may branch based on the BDPCM flag, i.e., different syntax elements may be used for residual coding based on the value of the BDPCM flag (based on whether BDPCM is applicable).

[0210] For example, referring to Table 14, if the value of the transform skip flag is 0 and the value of the BDPCM flag is 0 (i.e., transform is applied and BDPCM is not applied), Regular Residual Coding (RRC) may be applied to the current block, and if the value of the transform skip flag is 1 or the value of the BDPCM flag is 1 (i.e., transform is skipped or BDPCM is applied), Transform Skip Residual Coding (TSRC) may be applied to the current block. That is, for example, if the transform skip flag has a value of 0 and the BDPCM flag has a value of 0 (i.e., a transform is applied and BDPCM is not applied), a syntax element of Regular Residual Coding (RRC) may be signaled for the current block, and if the transform skip flag has a value of 1 or the BDPCM flag has a value of 1 (i.e., a transform is skipped or BDPCM is applied), a syntax element of Transform Skip Residual Coding (TSRC) may be signaled for the current block. The regular residual coding may also be referred to as general residual coding. In addition, the regular residual coding may be referred to as a regular residual coding syntax structure, and the transform skip residual coding may be referred to as a transform skip residual coding syntax structure.

[0211] Also, for example, referring to Table 15, if the transform skip flag is not present, the transform skip flag may be regarded as 0. That is, the transform skip mode may be performed independently of the BDPCM.

[0212] Fig. 9 illustrates an image encoding method by the encoding device according to the present document. The method disclosed in Fig. 9 may be performed by the encoding device disclosed in Fig. 2. Specifically, for example, S900 in Fig. 9 may be performed by a prediction unit of the encoding device, and S910 may be performed by an entropy encoding unit of the encoding device.

[0213] The encoding apparatus generates a BDPCM constraint flag indicating whether or not block-based delta pulse code modulation (BDPCM) is constrained for an image (S900). The encoding apparatus may determine whether or not block-based delta pulse code modulation (BDPCM) is constrained for an image. For example, the encoding apparatus may determine whether or not BDPCM is constrained in consideration of image characteristics and coding efficiency.

[0214] Thereafter, the encoding apparatus may generate a BDPCM constraint flag indicating whether the BDPCM is constrained. The BDPCM constraint flag may indicate whether the BDPCM is constrained. For example, a BDPCM constraint flag of 1 may indicate that a value of a BDPCM availability flag is 0. That is, for example, a BDPCM constraint flag of 1 may indicate that BDPCM is not available (for the entire image). In other words, for example, when the value of the BDPCM constraint flag is 1, the BDPCM constraint flag may indicate that BDPCM is not available (for the entire image). Thus, when the value of the BDPCM constraint flag is 1, the BDPCM flag may not be signaled, and the BDPCM flag may be inferred to 0. Also, for example, a BDPCM constraint flag of 0 may not impose a constraint on the BDPCM. In other words, for example, when the value of the BDPCM constraint flag is 0, the BDPCM constraint flag may not impose a constraint on the BDPCM. The BDPCM constraint flag syntax element may be no_bdpcm_constraint_flag.

[0215] The encoding device encodes the image information including the BDPCM constraint flag (S910). The encoding device can encode the image information including the BDPCM constraint flag. That is, for example, the encoding device can encode a BDPCM constraint flag indicating whether the BDPCM is restricted for an image.

[0216] Meanwhile, although not shown, for example, an encoding device may generate a reconstructed picture within an image based on the BDPCM, and may generate and encode BDPCM-related information. The image information may include the BDPCM-related information.

[0217] For example, when the BDPCM is not constrained, i.e., when the value of the BDPCM constrained flag is 0, an encoding device can generate a reconstructed picture in an image based on the BDPCM, and can generate and encode BDPCM-related information. The image information can include the BDPCM-related information.

[0218] For example, if the value of the BDPCM constraint flag is 0, the encoding device may determine whether the width and height of the current block are smaller than or equal to the maximum transform block size. The encoding device may determine the maximum transform block size and generate and encode information representing the maximum transform block size. For example, the information representing the maximum transform block size may be signaled via a high-level syntax. For example, the information representing the maximum transform block size may be signaled via a Sequence Parameter Set (SPS). For example, a syntax element of the information representing the maximum transform block size may be sps_log2_transform_skip_max_size_minus2.

[0219] Also, for example, if the width and the height are smaller than or equal to the maximum transform block size, the encoding apparatus may determine whether BDPCM is applied to the current block and may generate a BDPCM flag indicating whether BDPCM (Block-based Delta Pulse Code Modulation) is applied to the current block. For example, if the width and the height are smaller than or equal to the maximum transform block size, the BDPCM-related information may include the BDPCM flag.

[0220] Also, for example, if the width or the height is larger than the maximum transform block size, i.e., at least one of the width and the height is larger than the maximum transform block size, the encoding apparatus may determine that BDPCM is not applied to the current block, and may not generate a BDPCM flag indicating whether or not BDPCM (Block-based Delta Pulse Code Modulation) is applied to the current block. The BDPCM flag may be regarded as 0. That is, for example, if the width or the height is larger than the maximum transform block size, i.e., at least one of the width and the height is larger than the maximum transform block size, a BDPCM flag indicating whether or not BDPCM (Block-based Delta Pulse Code Modulation) is applied to the current block may not be signaled, and BDPCM may not be applied to the current block. For example, if the width or the height is larger than the maximum transform block size, i.e., at least one of the width and the height is larger than the maximum transform block size, the BDPCM-related information may not include the BDPCM flag for the current block.

[0221] Also, for example, when the value of the BDPCM flag is 0, the BDPCM flag may indicate that the BDPCM is not applied to the current block, and when the value of the BDPCM flag is 1, the BDPCM is applied to the current block and a BDPCM direction flag for the current block is present. That is, for example, when the value of the BDPCM flag is 0, the BDPCM flag may indicate that the BDPCM is not applied to the current block and general intra prediction, IBC prediction, inter prediction, or palette prediction is performed, and when the value of the BDPCM flag is 1, the BDPCM is applied to the current block and a BDPCM direction flag for the current block is present. For example, the syntax element of the BDPCM flag may be the above-mentioned bdpcm_flag, intra_bdpcm_luma_flag, or intra_bdpcm_chroma_flag. Also, for example, the BDPCM flag may be signaled in units of coding units (CUs). For example, the current block may be a coding block.

[0222] Also, for example, the encoding apparatus may determine whether BDPCM is applied to the current block and may determine the direction in which the BDPCM is performed. Also, for example, the encoding apparatus may generate and encode a BDPCM direction flag indicating a prediction direction for the current block. The BDPCM-related information may include the BDPCM direction flag.

[0223] For example, the BDPCM direction flag may represent a prediction direction for the current block. For example, if the value of the BDPCM flag is 1, an encoding device may generate and encode the BDPCM direction flag. For example, the BDPCM direction flag may represent a vertical direction or a horizontal direction as a prediction direction for the current block. For example, if the value of the BDPCM direction flag is 0, the BDPCM direction flag may represent that the prediction direction for the current block is horizontal, and if the value of the BDPCM direction flag is 1, the BDPCM direction flag may represent that the prediction direction for the current block is vertical. For example, the syntax element of the BDPCM direction flag may be the above-mentioned bdpcm_dir_flag, intra_bdpcm_luma_dir_flag, or intra_bdpcm_chroma_dir_flag.

[0224] Also, for example, the encoding device may derive a prediction sample by performing intra prediction on the current block based on a prediction direction in which BDPCM is performed. For example, the prediction direction may be vertical or horizontal, and a prediction sample for the current block may be generated according to the corresponding intra prediction mode.

[0225] For example, when the value of the BDPCM direction flag is 0, i.e., when the prediction direction for the current block is derived as horizontal, the encoding apparatus may derive a prediction sample of the current block based on a horizontal intra prediction mode. In other words, when the value of the BDPCM direction flag is 0, i.e., when the prediction direction for the current block is derived as horizontal, the encoding apparatus may derive a prediction sample of the current block by performing intra prediction based on a left peripheral sample of the current block. For example, when the prediction direction for the current block is derived as horizontal, the encoding apparatus may derive a sample value of a left peripheral sample in the same row as a prediction sample as a sample value of the prediction sample.

[0226] Also, for example, when the value of the BDPCM direction flag is 1, i.e., when the prediction direction for the current block is derived as a vertical direction, the encoding device may derive a prediction sample of the current block based on a vertical intra prediction mode. In other words, for example, when the value of the BDPCM direction flag is 1, i.e., when the prediction direction for the current block is derived as a vertical direction, the encoding device may derive a prediction sample of the current block based on an upper neighboring sample of the current block. For example, when the prediction direction for the current block is derived as a vertical direction, the encoding device may derive a sample value of an upper neighboring sample in the same column as the prediction sample as the sample value of the prediction sample.

[0227] Meanwhile, the tree type of the current block may be classified as a single tree SINGLE_TREE or a dual tree DUAL_TREE depending on whether the luma block and the corresponding chroma block have separate partition structures. If the chroma block has the same partition structure as the luma block, it may be referred to as a single tree, and if the chroma component block has a partition structure different from that of the luma component block, it may be referred to as a dual tree. As an example, BDPCM may be applied separately to the luma block or chroma block of the current block.

[0228] If the tree structure of the current block is a dual tree, the BDPCM may be applied to only one of the component blocks, and if the current block has a single tree structure, the BDPCM may be applied to only one of the component blocks.

[0229] Also, for example, the encoding apparatus may derive residual samples of the current block based on the predicted samples, for example, by subtracting original samples for the current block from the predicted samples.

[0230] Meanwhile, for example, the image information may include the residual information. For example, the encoding apparatus may derive residual coefficients of the current block based on the residual samples. For example, when the BDPCM is applied to the current block, the encoding apparatus may determine that no transform is applied to the current block. In this case, for example, the encoding apparatus may derive residual coefficients by performing quantization on the residual samples. Here, for example, the block to which the transform is not applied may be represented as a transform skip block. That is, for example, the current block may be a transform skip block.

[0231] Then, for example, an encoding device may encode residual information for the residual coefficients, where the residual information may include residual information for the residual coefficients of the residual samples.

[0232] For example, the residual information may include a syntax element for a residual sample of a current block, and a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample or an upper peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample. For example, if the prediction direction of the current block is a horizontal direction, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample. That is, for example, if the prediction direction of the current block is a horizontal direction, a syntax element for the target residual sample may represent a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample of the target residual sample. Also, for example, if the prediction direction of the current block is a vertical direction, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of an upper peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample. That is, for example, when the prediction direction of the current block is a vertical direction, a syntax element for a target residual sample may represent a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a neighboring residual sample above the target residual sample. Also, when the target residual sample is located in the first row or column of the current block, a residual coefficient value of the target residual sample may be derived based on the syntax element for the target residual sample. That is, when the target residual sample is located in the first row or column of the current block, a syntax element for the target residual sample may represent a residual coefficient value of the target residual sample.

[0233] For example, the residual information may include syntax elements such as transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level, and / or mts_idx.

[0234] Specifically, for example, the residual information may include a transform skip flag for the current block. The transform skip flag may indicate whether a transform is applied to the current block. That is, the transform skip flag may indicate whether a transform is applied to the residual coefficients of the current block. Also, for example, when the BDPCM is applied to the current block, the transform skip flag for the current block may not be signaled, and a value of the transform skip flag may be inferred to 1. That is, when the BDPCM is applied to the current block, the residual information may not include the transform skip flag for the current block, and a value of the transform skip flag may be inferred to 1, and the current block may be a transform skip block. A syntax element representing the transform skip flag may be the above-mentioned transform_skip_flag.

[0235] Also, for example, the residual information may include position information representing a position of a last non-zero residual coefficient in a residual coefficient array of the current block. That is, the residual information may include position information representing a position of a last non-zero residual coefficient in a scanning order of the current block. The position information may include information representing a prefix of a column position of the last non-zero residual coefficient, information representing a prefix of a row position of the last non-zero residual coefficient, information representing a suffix of a column position of the last non-zero residual coefficient, and information representing a suffix of a row position of the last non-zero residual coefficient. The syntax elements for the position information may be last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix. Meanwhile, the non-zero residual coefficient may be called a significant coefficient. Also, for example, if the current block is a transform skip block, the residual information may not include position information indicating the position of the last non-zero residual coefficient in the residual coefficient array of the current block.

[0236] Also, for example, the residual information may include a significance coefficient flag indicating whether a residual coefficient of a residual sample of the current block is a non-zero residual coefficient, a parity level flag for parity of a coefficient level for the residual coefficient, a first coefficient level flag for whether the coefficient level is greater than a first threshold, and a second coefficient level flag for whether the coefficient level of the residual coefficient is greater than a second threshold. Here, the significance coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the first coefficient level flag may be abs_level_gt1_flag, and the second coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag.

[0237] Also, for example, the residual information may include a sign flag indicating a sign of a residual coefficient of a residual sample of a current block, and the sign flag may be coeff_sign_flag.

[0238] Also, for example, the residual information may include coefficient value related information for values ​​of residual coefficients of residual samples of the current block, and the coefficient value related information may be abs_remainder and / or dec_abs_level.

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

[0240] Fig. 10 is a schematic diagram of an encoding device for performing the image encoding method according to the present document. The method disclosed in Fig. 9 can be performed by the encoding device disclosed in Fig. 10. Specifically, for example, a prediction unit of the encoding device of Fig. 10 can perform S900 of Fig. 9, and an entropy encoding unit of the encoding device can perform S910.

[0241] Fig. 11 is a schematic diagram showing an image decoding method by a decoding device according to the present document. The method disclosed in Fig. 11 can be performed by the decoding device disclosed in Fig. 3. Specifically, for example, S1100 to S1110 in Fig. 11 can be performed by an entropy decoding unit of the decoding device, and S1120 in Fig. 11 can be performed by a prediction unit, a residual processing unit, and an addition unit of the decoding device.

[0242] The decoding device acquires image information including a BDPCM constraint flag indicating whether or not block-based delta pulse code modulation (BDPCM) is constrained for the image (S1100).

[0243] The decoding device may obtain image information through a bitstream. For example, the decoding device may obtain image information including a BDPCM constraint flag indicating whether or not BDPCM (Block-based Delta Pulse Code Modulation) is constrained for an image. The image information may include a BDPCM constraint flag indicating whether or not the BDPCM is constrained. That is, for example, a BDPCM constraint flag may be signaled. The BDPCM constraint flag may indicate whether or not BDPCM is constrained. For example, a BDPCM constraint flag of 1 may indicate that a BDPCM usable flag has a value of 0. That is, for example, a BDPCM constraint flag of 1 may indicate that BDPCM is not usable (for the entire image). In other words, for example, if the value of the BDPCM constraint flag is 1, the BDPCM constraint flag may indicate that BDPCM is not usable (for the entire image). Therefore, if the value of the BDPCM constraint flag is 1, the BDPCM flag may not be signaled, and the BDPCM flag may be inferred to 0. Also, for example, a BDPCM constraint flag that is 0 may not impose a constraint on the BDPCM. In other words, for example, the BDPCM constraint flag may not impose a constraint on the BDPCM when the value of the BDPCM constraint flag is 0. The syntax element of the BDPCM constraint flag may be no_bdpcm_constraint_flag.

[0244] The decoding apparatus obtains BDPCM related information for the current block based on the BDPCM constraint flag (S1110).

[0245] For example, if the value of the BDPCM constraint flag is 1, the BDPCM-related information for the current block may not be signaled.

[0246] Also, for example, the BDPCM-related information for the current block may be signaled when the value of the BDPCM constraint flag is 0. For example, the BDPCM-related information may include a BDPCM flag indicating whether or not Block-based Delta Pulse Code Modulation (BDPCM) is applicable to the current block.

[0247] Specifically, for example, the decoding device may determine whether the width and height of the current block are smaller than or equal to a maximum transform block size. The maximum transform block size may be derived based on information representing the maximum transform block size. For example, the information representing the maximum transform block size may be signaled via a high-level syntax. For example, the information representing the maximum transform block size may be signaled via a Sequence Parameter Set (SPS). For example, a syntax element of the information representing the maximum transform block size may be sps_log2_transform_skip_max_size_minus2.

[0248] For example, if the width and the height are smaller than or equal to the maximum transform block size, the decoding apparatus may acquire a BDPCM flag indicating whether or not block-based delta pulse code modulation (BDPCM) is applied to the current block. That is, for example, if the width and the height are smaller than or equal to the maximum transform block size, the BDPCM-related information may include the BDPCM flag. Alternatively, if the width or the height is larger than the maximum transform block size, i.e., if at least one of the width and the height is larger than the maximum transform block size, a BDPCM flag indicating whether or not block-based delta pulse code modulation (BDPCM) is applied to the current block may not be acquired. For example, if the width or the height is larger than the maximum transform block size, i.e., if at least one of the width and the height is larger than the maximum transform block size, a BDPCM flag indicating whether or not block-based delta pulse code modulation (BDPCM) is applied to the current block may not be signaled, and BDPCM may not be applied to the current block. That is, for example, if the width or the height is larger than the maximum transform block size, i.e., if at least one of the width and the height is larger than the maximum transform block size, the image information may not include the BDPCM flag for the current block.

[0249] Also, for example, when the value of the BDPCM flag is 0, the BDPCM flag may indicate that the BDPCM is not applied to the current block, and when the value of the BDPCM flag is 1, the BDPCM is applied to the current block and a BDPCM direction flag for the current block is present. That is, for example, when the value of the BDPCM flag is 0, the BDPCM flag may indicate that the BDPCM is not applied to the current block and general intra prediction, IBC prediction, inter prediction, or palette prediction is performed, and when the value of the BDPCM flag is 1, the BDPCM is applied to the current block and a BDPCM direction flag for the current block is present. The BDPCM related information may include the BDPCM direction flag. For example, a syntax element of the BDPCM flag may be the above-mentioned bdpcm_flag, intra_bdpcm_luma_flag, or intra_bdpcm_chroma_flag. Also, for example, the BDPCM flag may be signaled in units of coding units (CUs). For example, the current block may be a coding block.

[0250] Also, for example, the BDPCM direction flag may represent a vertical direction or a horizontal direction as a prediction direction for the current block. For example, when the value of the BDPCM direction flag is 0, the BDPCM direction flag may represent that the prediction direction for the current block is horizontal, and when the value of the BDPCM direction flag is 1, the BDPCM direction flag may represent that the prediction direction for the current block is vertical. For example, the syntax element of the BDPCM direction flag may be the above-mentioned bdpcm_dir_flag, intra_bdpcm_luma_dir_flag, or intra_bdpcm_chroma_dir_flag.

[0251] The decoding apparatus generates a reconstructed sample for the current block based on the BDPCM-related information (S1120). The decoding apparatus can generate a reconstructed sample for the current block based on the BDPCM-related information.

[0252] For example, the decoding device can generate a predicted sample for the current block based on the BDPCM-related information.

[0253] For example, when the value of the BDPCM direction flag is 0, i.e., when the BDPCM direction flag indicates that the prediction direction for the current block is horizontal, the decoding apparatus may derive the prediction sample of the current block based on a horizontal intra prediction mode. In other words, when the value of the BDPCM direction flag is 0, i.e., when the BDPCM direction flag indicates that the prediction direction for the current block is horizontal, the decoding apparatus may derive the prediction sample of the current block by performing intra prediction based on the left peripheral sample of the current block. For example, when the prediction direction for the current block is derived as horizontal, the decoding apparatus may derive the sample value of the left peripheral sample in the same row as the prediction sample as the sample value of the prediction sample.

[0254] Also, for example, when the value of the BDPCM direction flag is 1, i.e., when the BDPCM direction flag indicates that the prediction direction for the current block is vertical, the decoding device may derive the prediction sample of the current block based on a vertical intra prediction mode. In other words, for example, when the value of the BDPCM direction flag is 1, i.e., when the BDPCM direction flag indicates that the prediction direction for the current block is vertical, the decoding device may derive the prediction sample of the current block based on the upper surrounding sample of the current block. For example, when the prediction direction for the current block is derived as vertical, the decoding device may derive the sample value of the upper surrounding sample in the same column as the prediction sample as the sample value of the prediction sample.

[0255] Thereafter, the decoding device may derive a reconstructed sample or a reconstructed picture of the current block based on the predicted sample, for example, by adding the predicted sample and a residual sample of the current block.

[0256] Meanwhile, for example, the decoding device can derive a residual sample of the current block based on the residual information.

[0257] For example, when BDPCM is applied to the current block, the residual information may include a syntax element for a residual sample of the current block (i.e., when BDPCM is applied to the current block, the residual information may include a syntax element for a target residual sample of the current block), and the syntax element for the target residual sample may represent a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample or an upper peripheral residual sample of the target residual sample. That is, for example, when BDPCM is applied to the current block, the residual information may include a syntax element for a target residual sample of the current block, and a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample or an upper peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample.

[0258] For example, when BDPCM is applied to the current block and the prediction direction for the current block is horizontal, a syntax element for a target residual sample may represent a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample of the target residual sample. That is, for example, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample of the target residual sample may be derived based on a syntax element for the target residual sample. Then, a residual coefficient of the target residual sample may be derived by summing the residual coefficient value of the left peripheral residual sample 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 block. For example, the residual coefficient of the target residual sample may be derived according to Equation 4 above. Meanwhile, for example, if the target residual sample is a residual sample in the first column of the current block, a residual coefficient of the target residual sample may be derived based on the syntax elements of the target residual sample.

[0259] Also, for example, when BDPCM is applied to the current block and the prediction direction for the current block is a vertical direction, a syntax element for a target residual sample may represent a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a residual sample adjacent to the target residual sample. That is, for example, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a residual sample adjacent to the target residual sample may be derived based on a syntax element for the target residual sample. Then, a residual coefficient of the target residual sample may be derived by summing the residual coefficient value of the residual sample adjacent to the target residual sample and the difference. Here, the target residual sample may be a residual sample in a row other than the first row of the current block. For example, the residual coefficient of the target residual sample may be derived according to Equation 3 above. Meanwhile, for example, if the target residual sample is a residual sample in the first row of the current block, a residual coefficient of the target residual sample may be derived based on the syntax elements of the target residual sample.

[0260] Thereafter, for example, the decoding device may dequantize the residual coefficients to derive the target residual samples. That is, for example, the target residual samples may be derived by dequantizing the residual coefficients.

[0261] Meanwhile, although not shown in the drawings, for example, the decoding device may obtain residual information for the current block based on the BDPCM flag. For example, when the BDPCM flag indicates that the BDPCM is applied to the current block, i.e., when the BDPCM is applied to the current block, the residual information may include a syntax element for a residual sample of the current block, and a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample or an upper peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample. For example, when the prediction direction of the current block is a horizontal direction, i.e., when the prediction direction of the current block is derived as a horizontal direction based on the BDPCM direction flag, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left peripheral residual sample of the target residual sample may be derived based on the syntax element for the target residual sample. For example, when the prediction direction of the current block is vertical, i.e., when the prediction direction of the current block is derived as vertical based on the BDPCM direction flag, a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a neighboring residual sample above the target residual sample may be derived based on a syntax element for the target residual sample. Also, when the target residual sample is located in the first row or column of the current block, a residual coefficient value of the target residual sample may be derived based on a syntax element for the target residual sample.

[0262] For example, the residual information may include syntax elements such as transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level, and / or mts_idx.

[0263] Specifically, for example, the residual information may include a transform skip flag for the current block. The transform skip flag may indicate whether a transform is applied to the current block. That is, the transform skip flag may indicate whether a transform is applied to the residual coefficients of the current block. Also, for example, when the value of the BDPCM flag is 1, i.e., when the BDPCM is applied to the current block, the transform skip flag for the current block may not be signaled, and the value of the transform skip flag may be inferred to 1. That is, when the value of the BDPCM flag is 1, i.e., when the BDPCM is applied to the current block, the image information may not include the transform skip flag for the current block, and the value of the transform skip flag may be inferred to 1, and the current block may be a transform skip block. A syntax element representing the transform skip flag may be the above-mentioned transform_skip_flag.

[0264] Also, for example, the residual information may include position information representing a position of a last non-zero residual coefficient in a residual coefficient array of the current block. That is, the residual information may include position information representing a position of a last non-zero residual coefficient in a scanning order of the current block. The position information may include information representing a prefix of a column position of the last non-zero residual coefficient, information representing a prefix of a row position of the last non-zero residual coefficient, information representing a suffix of a column position of the last non-zero residual coefficient, and information representing a suffix of a row position of the last non-zero residual coefficient. The syntax elements for the position information may be last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix. Meanwhile, the non-zero residual coefficient may be called a significant coefficient. Also, for example, if the current block is a transform skip block, the residual information may not include position information indicating the position of the last non-zero residual coefficient in the residual coefficient array of the current block.

[0265] Also, for example, the residual information may include a significance coefficient flag indicating whether a residual coefficient of a residual sample of the current block is a non-zero residual coefficient, a parity level flag for parity of a coefficient level for the residual coefficient, a first coefficient level flag for whether the coefficient level is greater than a first threshold, and a second coefficient level flag for whether the coefficient level of the residual coefficient is greater than a second threshold. Here, the significance coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the first coefficient level flag may be abs_level_gt1_flag, and the second coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag.

[0266] Also, for example, the residual information may include a sign flag indicating a sign of a residual coefficient of a residual sample of a current block, and the sign flag may be coeff_sign_flag.

[0267] Also, for example, the residual information may include coefficient value related information for values ​​of residual coefficients of residual samples of the current block, and the coefficient value related information may be abs_remainder and / or dec_abs_level.

[0268] As mentioned above, the decoding device can derive the reconstructed samples via addition of the predicted samples and the residual samples, after which in-loop filtering procedures such as deblocking filtering, SAO and / or ALF procedures can be applied to the reconstructed samples to improve the subjective / objective image quality, if necessary.

[0269] Fig. 12 is a schematic diagram of a decoding device that performs the image decoding method according to the present document. The method disclosed in Fig. 11 can be performed by the decoding device disclosed in Fig. 12. Specifically, for example, the entropy decoding unit of the decoding device of Fig. 12 can perform S1100 to S1110 of Fig. 11, and the prediction unit, residual processing unit, and addition unit of the decoding device of Fig. 12 can perform S1120 of Fig. 11.

[0270] According to the above-mentioned document, the BDPCM flag can be signaled based on the size of the current block and the maximum transform block size, and the size of the current block and the maximum transform block size can be taken into consideration when signaling the BDPCM flag and determining whether or not to apply BDPCM, thereby reducing the amount of bits for BDPCM and improving overall coding efficiency.

[0271] In addition, according to this document, a syntax element indicating whether BDPCM is restricted for an image can be signaled, thereby making it possible to determine whether BDPCM can be executed for an image with a single syntax element, thereby improving overall image coding efficiency.

[0272] In the above-described embodiments, the method is described with reference to a flow chart with a series of steps or blocks, but this document is not limited to the order of steps, and certain steps may occur in a different order or simultaneously with other steps than those described above. Also, those skilled in the art will understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps of the flow chart may be deleted without affecting the scope of this document.

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

[0274] In addition, the decoding device and the encoding device to which the embodiment of this document is applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interactive device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a custom video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, an image telephone video device, a transportation terminal (e.g., a vehicle terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.

[0275] In addition, the processing method to which the embodiments of this document are applied may be produced in the form of a program executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to this document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium may also include a medium realized in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0276] Also, the embodiments of the present document may be implemented in a computer program product by program code, which may be executed by a computer according to the embodiments of the present document. The program code may be stored on a computer readable carrier.

[0277] FIG. 13 exemplarily illustrates a structural diagram of a content streaming system to which the embodiments of this document are applied.

[0278] A content streaming system to which the embodiments of this document are applied can broadly include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.

[0279] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.

[0280] The bitstream may be generated by an encoding method or a bitstream generation method to which an embodiment of this document is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

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

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

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

[0284] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined and realized as an apparatus, the technical features of the apparatus claims in this specification may be combined and realized as a method, the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as an apparatus, and the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as a method.

Claims

1. 1. A method for decoding an image performed by a decoding device, comprising: obtaining image information including a BDPCM constraint flag indicating whether a block-based delta pulse code modulation (BDPCM) is constrained for the image; obtaining BDPCM-related information for a current block, the BDPCM-related information including at least one of a BDPCM flag indicating whether the BDPCM is applied to the current block, or a BDPCM direction flag indicating a prediction direction for the current block; generating a reconstruction sample for the current block based on the BDPCM-related information; Including, the BDPCM constraint flag equal to 1 indicates that a constraint that the BDPCM enable flag must be equal to 0 is imposed, and the BDPCM constraint flag equal to 0 indicates that the constraint is not imposed; the BDPCM enabled flag equal to 1 indicates that the BDPCM is enabled, and the BDPCM enabled flag equal to 0 indicates that the BDPCM is not enabled; the BDPCM flag equal to 1 indicates that the BDPCM is applied to the current block, and the BDPCM flag equal to 0 indicates that the BDPCM is not applied to the current block; the BDPCM direction flag is signaled based on the BDPCM flag being equal to one; if the BDPCM constrained flag is equal to 1, the BDPCM enabled flag is equal to 0; A method according to claim 1, wherein if the BDPCM enable flag is equal to 0, then the BDPCM flag is considered to be equal to 0.

2. The method of claim 1 , wherein if the BDPCM constraint flag is equal to 1, the BDPCM-related information for the current block is not signaled.

3. generating the reconstructed samples for the current block based on the BDPCM-related information, deriving a prediction sample of the current block based on an intra prediction mode derived based on the BDPCM direction flag; deriving the reconstructed samples based on the predicted samples; The method of claim 1 , comprising:

4. the BDPCM direction flag equal to 0 indicates that the prediction direction for the current block is horizontal; The method of claim 3 , wherein the BDPCM direction flag equal to 1 indicates that the prediction direction for the current block is vertical.

5. based on the BDPCM direction flag being equal to 0, the intra prediction mode of the current block is derived as a horizontal intra prediction mode; The method of claim 3 , wherein the intra-prediction mode of the current block is derived as a vertical intra-prediction mode based on the BDPCM direction flag being equal to one.

6. The step of generating the reconstructed sample based on the predicted sample comprises: deriving a target residual sample of the current block based on residual information about the current block; deriving a reconstructed sample by adding a prediction sample for the residual sample of interest and the residual sample of interest; The method of claim 4 , comprising:

7. If the BDPCM is applied to the current block and the prediction direction for the current block is the vertical direction, the residual information includes a syntax element for the target residual sample, The method of claim 6 , wherein the syntax element of the target residual sample represents a difference between a residual coefficient value of the target residual sample and a residual coefficient value of an upper surrounding residual sample of the target residual sample.

8. The difference is derived based on the syntax element for the target residual sample; The method of claim 7 , wherein the residual coefficient value of the target residual sample is derived by summing the residual coefficient value of the upper surrounding residual sample and the difference.

9. If the BDPCM is applied to the current block and the prediction direction for the current block is the horizontal direction, the residual information includes a syntax element for a target residual sample of the current block; The method of claim 6 , wherein the syntax element for the target residual sample represents a difference between a residual coefficient value of the target residual sample and a residual coefficient value of a left neighboring residual sample of the target residual sample.

10. 1. A method of encoding an image performed by an encoding device, comprising: generating a BDPCM constraint flag indicating whether BDPCM is constrained for the image; encoding BDPCM-related information for a current block based on the BDPCM constraint flag, the BDPCM-related information including at least one of a BDPCM flag indicating whether the BDPCM is applied to the current block or a BDPCM direction flag indicating a prediction direction for the current block; Including, the BDPCM constraint flag equal to 1 indicates that a constraint that the BDPCM enable flag must be equal to 0 is imposed, and the BDPCM constraint flag equal to 0 indicates that the constraint is not imposed; the BDPCM enabled flag equal to 1 indicates that the BDPCM is enabled, and the BDPCM enabled flag equal to 0 indicates that the BDPCM is not enabled; the BDPCM flag equal to 1 indicates that the BDPCM is applied to the current block, and the BDPCM flag equal to 0 indicates that the BDPCM is not applied to the current block; the BDPCM direction flag is encoded based on the BDPCM flag being equal to one; if the BDPCM constrained flag is equal to 1, the BDPCM enabled flag is equal to 0; A method according to claim 1, wherein if the BDPCM enable flag is equal to 0, then the BDPCM flag is considered to be equal to 0.

11. 1. A method for transmitting data for image information, comprising: generating a bitstream of the image information by the steps of: generating a BDPCM constraint flag indicating whether Block-based Delta Pulse Code Modulation (BDPCM) is constrained for an image; and encoding BDPCM-related information for a current block based on the BDPCM constraint flag, the BDPCM-related information including at least one of a BDPCM flag indicating whether BDPCM is applied to the current block, or a BDPCM direction flag indicating a prediction direction for the current block; transmitting the bitstream of the image information; the BDPCM constraint flag equal to 1 indicates that a constraint that the BDPCM enable flag must be equal to 0 is imposed, and the BDPCM constraint flag equal to 0 indicates that the constraint is not imposed; the BDPCM enabled flag equal to 1 indicates that the BDPCM is enabled, and the BDPCM enabled flag equal to 0 indicates that the BDPCM is not enabled; the BDPCM flag equal to 1 indicates that the BDPCM is applied to the current block, and the BDPCM flag equal to 0 indicates that the BDPCM is not applied to the current block; the BDPCM direction flag is encoded based on the BDPCM flag being equal to one; if the BDPCM constrained flag is equal to 1, the BDPCM enabled flag is equal to 0; A method according to claim 1, wherein if the BDPCM enable flag is equal to 0, then the BDPCM flag is considered to be equal to 0.

Citation Information

Patent Citations

  • Video signal processing method and apparatus using Block DPCM prediction method

    JP2022537805A

Cited By

  • Image decoding method and apparatus therefor

    JP2025106492A