Image decoding method and apparatus for residual coding

The image decoding method simplifies residual data coding by deriving prediction modes and residual coefficients without level mapping, addressing the high cost of transmitting and storing high-resolution images by enhancing residual coding efficiency.

JP7833070B2Active Publication Date: 2026-03-18LG ELECTRONICS INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2025-03-26
Publication Date
2026-03-18

AI Technical Summary

Technical Problem

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

Method used

An image decoding method and apparatus that derive prediction modes and residual coefficients without level mapping, simplifying residual data coding to reduce coding complexity and improve efficiency.

Benefits of technology

This approach enhances residual coding efficiency by deriving residual coefficients without level mapping, reducing coding complexity and improving overall residual coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007833070000049
    Figure 0007833070000049
  • Figure 0007833070000050
    Figure 0007833070000050
  • Figure 0007833070000051
    Figure 0007833070000051
Patent Text Reader

Abstract

To provide a method for decoding an image executed by a decoder.SOLUTION: The method for decoding an image executed by a decoder in the present document includes the steps of: acquiring prediction mode information and image information including residual information by a bit stream; deriving a prediction mode of a current block on the basis of the prediction mode information; deriving a prediction sample on the basis of the prediction mode; deriving the current residual coefficient on the basis of a residual syntax element of the current residual coefficient in the curent block; deriving a residual sample on the basis of the current residual coefficient; and deriving a restoration sample of the current block on the basis of the prediction sample and the residual sample.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0004] , , ,

[0006] , , , , , , , , , , , ,

[0005] ,

[0003]

[0001] This document relates to image coding technology, and more particularly, to an image decoding method and apparatus for coding simplified residual data without performing level mapping in an image coding system.

Background Art

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

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

Summary of the Invention

[0007] In another embodiment of this document, a decoding device for performing image decoding is provided. The decoding device is characterized by including: an entropy decoding unit that acquires image information including prediction mode information and residual information via a bitstream; a prediction unit that derives a prediction mode of the current block based on the prediction mode information and derives a prediction sample based on the prediction mode; a residual processing unit that derives the current residual coefficients based on a residual syntax element or the like for the current residual coefficients in the current block and derives a residual sample based on the current residual coefficients; and an addition unit that derives a restored sample of the current block based on the prediction sample and the residual sample.

[0008] Another embodiment of this document provides a video encoding method performed by an encoding device. The method is characterized by comprising the steps of: deriving predicted samples of the current block based on interpretation or intrapretation; deriving residual samples of the current block based on the predicted samples; deriving current residual coefficients based on the residual samples; and encoding image information including prediction mode information representing the prediction mode of the current block, and residual syntax elements for the current residual coefficients.

[0009] Another embodiment of this document provides a video encoding device. The encoding device is characterized by including: a prediction unit that derives a prediction sample of the current block based on interpretation or intrapretation; a residual processing unit that derives a residual sample of the current block based on the prediction sample and derives a current residual coefficient based on the residual sample; and an entropy encoding unit that encodes image information including prediction mode information representing the prediction mode of the current block and a residual syntax element for the current residual coefficient. [Effects of the Invention]

[0010] This document can improve the efficiency of residual coding.

[0011] As per this paper, the residual coefficients to which simplified residual data coding is applied can be derived without level mapping, reducing coding complexity and improving overall residual coding efficiency. [Brief explanation of the drawing]

[0012] [Figure 1] An example of a video / image coding system to which the embodiments described herein may be applied is schematically shown. [Figure 2]This figure schematically illustrates the configuration of a video / image encoding device to which the embodiments described herein may be applied. [Figure 3] This figure schematically illustrates the configuration of a video / image decoding device to which the embodiments described herein may be applied. [Figure 4] This shows an example of a video / image encoding method for the interpretation platform. [Figure 5] This shows an example of a video / image decoding method for the interpretation platform. [Figure 6] An example of an interpretation prediction procedure is shown below. [Figure 7] This example illustrates CABAC (context-adaptive binary arithmetic coding) for encoding syntax elements. [Figure 8] This diagram illustrates examples of conversion coefficients and other factors within a 4x4 block. [Figure 9] This shows an example of simplified residual data coding for a single CG, transform block, or coding block. [Figure 10] Here is another example of simplified residual data coding for a single CG, transform block, or coding block. [Figure 11] Here is another example of simplified residual data coding for a single CG, transform block, or coding block. [Figure 12] This document outlines the image encoding method using the encoding device described herein. [Figure 13] A schematic diagram of the encoding device used for the image encoding method described in this document is shown below. [Figure 14] The image decoding method using the decoding device described in this document is outlined below. [Figure 15]A decoding apparatus for performing the image decoding method according to this document is schematically shown. [Figure 16] An exemplary structural diagram of a content streaming system to which the embodiments of this document are applied is shown.

Embodiments for Carrying Out the Invention

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

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

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

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

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

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

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

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

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

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

[0023] The renderer can render the decoded video / image. The rendered video / image can be displayed via the 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 VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard), or next-generation video / image coding standards (e.g., H.267 or H.268).

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

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

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

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

[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] In this specification, slashes ( / ) and commas may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "A only", "B only", or "both A and B". For example, "A, B, C" may mean "A, B or C".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0052] As shown in Figure 3, the decoding device 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 can include an inter-prediction unit 331 and an intra-prediction unit 332. The residual processor 320 can include a dequantizer 321 and an inverse transformer 322. The aforementioned entropy decoder 310, residual processor 320, predictor 330, adder 340, and filtering unit 350 can be configured by a single hardware component (e.g., a decoder chipset or processor) depending on the embodiment. The memory 360 can also include a decoded picture buffer (DPB) and can be configured by a digital recording medium. The aforementioned hardware component may also further include memory 360 as an internal / external component.

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

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

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

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

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

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

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

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

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

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

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

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

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

[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 be applied identically or in a corresponding manner to the filtering unit 350, inter-prediction unit 332, and intra-prediction unit 331 of the decoding device 300, respectively.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0081] For example, whether the intra-prediction mode currently applied to a block is in MPM candidate (and planner mode) or remaining mode is indicated by the MPM flag (ex.intra_luma_mpm_flag). A value of 1 for the MPM flag indicates that the intra-prediction mode for the current block is in MPM candidate (and planner mode), and a value of 0 for the MPM flag indicates that the intra-prediction mode for the current block is not in MPM candidate (and planner mode). A value of 0 for the not-planner flag (ex.intra_luma_not_planar_flag) indicates that the intra-prediction mode for the current block is planner mode, and a value of 1 for the not-planner flag indicates that the intra-prediction mode for the current block is not planner mode. The MPM index can be signaled in the form of the mpm_idx or intra_luma_mpm_idx syntax element, and the remade intra prediction mode information can be signaled in the form of the rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information can point to one of the remaining intra prediction modes from the overall intra prediction modes that are not included in the MPM candidate (and planner mode), indexed in order of prediction mode number. The intra prediction mode may be an intra prediction mode for a luma component (sample). The intra-prediction mode information below includes at least one of the following: the MPM flag (e.g., intra_luma_mpm_flag), the not-planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), and the remaining intra-prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In this document, the MPM list may be referred to by various terms such as the MPM candidate list or candModeList.If MIP is currently applied to a block, a separate mpm flag (e.g., intra_mip_mpm_flag), mpm index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_remainder) for MIP may be signaled, while the not planar flag is not signaled.

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

[0083] For example, an encoder / decoder can configure an MPM (most probable modes) list for the current block. This MPM list may also be referred to as an MPM candidate list. Here, MPM refers to a mode used in intra predictive mode coding to improve coding efficiency by considering the similarity between the current block and surrounding blocks. As mentioned above, the MPM list may include planner modes or may exclude them. For example, if the MPM list includes planner modes, there may be six candidates in the MPM list. If the MPM list does not include planner modes, there may be five candidates in the MPM list.

[0084] The encoder / decoder can configure an MPM list containing five or six MPMs.

[0085] Three types of modes are considered when constructing the MPM list: default intra modes, neighborhood intra modes, and derved intra modes.

[0086] For the aforementioned peripheral intra-mode, two peripheral blocks are considered: a left peripheral block and an upper peripheral block.

[0087] As mentioned above, if the MPM list is configured not to include planar mode, planar mode is excluded from the list, and the number of MPM list candidates is set to five.

[0088] Furthermore, among the intra-prediction modes, the non-directional mode (or non-angle mode) includes the average-based DC mode or interpolation-based planar mode of the neighboring reference samples of the current block.

[0089] On the other hand, when inter-prediction is applied, the prediction unit of the encoding / decoding device can perform inter-prediction on a block-by-block basis to derive predicted samples. Inter-prediction can represent a prediction derived in a manner that is dependent on data elements (e.g., sample values ​​or motion information) of picture(s) other than the current picture. When inter-prediction is applied to the current block, a predicted block (predicted sample array) for the current block can be derived based on a reference block (reference sample array) identified by motion vectors on the reference picture pointed to by the reference picture index. In this case, in order to reduce the amount of motion information transmitted in inter-prediction mode, the motion information of the current block can be predicted on a block, sub-block, or sample-by-sample basis based on the correlation of motion information between surrounding blocks and the current block. The motion information may include motion vectors and reference picture indexes. The motion information may further include inter-prediction type information (L0 prediction, L1 prediction, Bi prediction, etc.). When interpretation is applied, a surrounding block may include a spatial neighboring block currently present in the picture and a temporal neighboring block present in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal neighboring block may be identical or different. The temporal neighboring block may be called a collocated reference block or colCU, and the reference picture containing the temporal neighboring block may be called a collocated picture (colPic).For example, a list of motion information candidates may be constructed based on the surrounding blocks of the current block, and flags or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled. Interpretation may be performed based on various prediction modes; for example, in skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected surrounding blocks. In skip mode, unlike merge mode, the residual signal may not be transmitted. In motion vector prediction (MVP) mode, the motion vector of the selected surrounding block may be used as the motion vector predictor, and the motion vector difference may be signaled. In this case, the motion vector of the current block can be derived using the sum of the motion vector predictor and the motion vector difference.

[0090] The motion information may include L0 motion information and / or L1 motion information depending on the interpretation type (L0 prediction, L1 prediction, Bi prediction, etc.). A motion vector in the L0 direction may be called an L0 motion vector or MVL0, and a motion vector in the L1 direction may be called an L1 motion vector or MVL1. A prediction based on an L0 motion vector may be called an L0 prediction, a prediction based on an L1 motion vector may be called an L1 prediction, and a prediction based on both the L0 motion vector and the L1 motion vector may be called a paired (Bi) prediction. Here, an L0 motion vector may represent a motion vector associated with a reference picture list L0 (L0), and an L1 motion vector may represent a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may contain earlier pictures as reference pictures in the output order from the current picture, and the reference picture list L1 may contain later pictures in the output order from the current picture. The aforementioned earlier picture can be called a forward (reference) picture, and the aforementioned later picture can be called a reverse (reference) picture. The reference picture list L0 may further include later pictures as reference pictures in order of output relative to the current picture. In this case, the earlier picture may be indexed first in the reference picture list L0, and the later picture may be indexed next. The reference picture list L1 may further include earlier pictures as reference pictures in order of output relative to the current picture. In this case, the later picture may be indexed first in the reference picture list L1, and the earlier picture may be indexed next. Here, the output order can correspond to the POC (picture order count) order.

[0091] A video / image encoding procedure based on interpretation could, in general terms, include the following:

[0092] Figure 4 shows an example of a video / image encoding method for the interpretation platform.

[0093] The encoding device performs interpretation for the current block (S400). The encoding device derives the interpretation mode and motion information of the current block and can generate a prediction sample for the current block. Here, the interpretation mode determination, motion information derivation, and prediction sample generation procedures can be performed simultaneously, and any one of the procedures can be performed before the others. For example, the interpretation unit of the encoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit can determine the prediction mode for the current block, the motion information derivation unit can derive the motion information of the current block, and the prediction sample derivation unit can derive a prediction sample for the current block. For example, the interpretation unit of the encoding device can search for blocks similar to the current block within a certain area (search area) of the reference picture via motion estimation and derive a reference block whose difference from the current block is the minimum or below a certain standard. Based on this, a reference picture index pointing to the reference picture where the reference block is located can be derived, and a motion vector can be derived based on the positional difference between the reference block and the current block. The encoding device can determine which of the various prediction modes is applied to the current block. The encoding device can compare the RD costs for the various prediction modes and determine the optimal prediction mode for the current block.

[0094] For example, when skip mode or merge mode is applied to the current block, the encoding device can configure a merge candidate list, as described later, and derive a reference block from among the reference blocks pointed to by the merge candidates included in the merge candidate list whose difference from the current block is the minimum or below a certain standard. In this case, a merge candidate associated with the derived reference block is selected, and merge index information pointing to the selected merge candidate is generated and signaled to the decoding device. The movement information of the current block can be derived using the movement information of the selected merge candidate.

[0095] As another example, when the (A)MVP mode is applied to the current block, the encoding device can configure the (A)MVP candidate list described later, and use the motion vector of the selected mvp candidate from among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list as the mvp of the current block. In this case, for example, the motion vector pointing to the reference block derived by the motion estimation described above can be used as the motion vector of the current block, and the mvp candidate having the motion vector with the smallest difference from the motion vector of the current block can become the selected mvp candidate. The MVD (motion vector difference), which is the difference obtained by subtracting the mvp from the motion vector of the current block, can be derived. In this case, information regarding the MVD can be signaled to the decoding device. Also, when the (A)MVP mode is applied, the value of the reference picture index can be configured with reference picture index information and separately signaled to the decoding device.

[0096] The encoding device can derive a residual sample based on the predicted sample (S410). The encoding device can derive the residual sample by comparing the original sample of the current block with the predicted sample.

[0097] The encoding device encodes image information including prediction information and residual information (S420). The encoding device can output the encoded image information in bitstream format. The prediction information may include prediction mode information (e.g., skip flag, merge flag, or mode index) and motion information as information related to the prediction procedure. The motion information may include candidate selection information (e.g., merge index, mvp flag, or mvp index) which is information for deriving a motion vector. The motion information may also include the above-mentioned MVD information and / or reference picture index information. Furthermore, the motion information may include information indicating whether L0 prediction, L1 prediction, or paired (bi) prediction is applied. The residual information is information about the residual sample. The residual information may include information about the quantized conversion coefficients for the residual sample.

[0098] The output bitstream can be stored on a (digital) recording medium and transmitted to a decoding device, or it can be transmitted to a decoding device via a network.

[0099] On the other hand, as described above, the encoding device can generate a reconstructed picture (including a reconstructed sample and a reconstructed block) based on the reference sample and the residual sample. This is because the encoding device derives the same prediction results as the decoding device, thereby increasing coding efficiency. Therefore, the encoding device can store the reconstructed picture (or reconstructed sample, reconstructed block) in memory and use it as a reference picture for interpretation. As described above, in-loop filtering procedures and the like may be further applied to the reconstructed picture.

[0100] A video / image decoding procedure based on interpretation may, in general, include the following:

[0101] Figure 5 shows an example of a video / image decoding method for the interpretation platform.

[0102] As shown in Figure 5, the decoding device can perform operations corresponding to those performed by the encoding device. Based on the received prediction information, the decoding device can make predictions for the current block and derive prediction samples.

[0103] Specifically, the decoding device can determine the prediction mode for the current block based on the received prediction information (S500). The decoding device can determine which inter-prediction mode is applied to the current block based on the prediction mode information in the prediction information.

[0104] For example, based on the merge flag, it can be determined whether the merge mode is applied to the current block or whether the (A)MVP mode is determined. Alternatively, one of several inter-prediction mode candidates can be selected based on the mode index. The inter-prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter-prediction modes as described later.

[0105] The decoding device derives motion information for the current block based on the determined interpretation mode (S510). For example, if a skip mode or merge mode is applied to the current block, the decoding device can configure a merge candidate list, as described later, and select one merge candidate from among the merge candidates included in the merge candidate list. This selection can be made based on the selection information (merge index) described above. The motion information for the current block can be used to derive motion information for the selected merge candidate. The motion information for the selected merge candidate can be used as motion information for the current block.

[0106] As another example, when the (A)MVP mode is applied to the current block, the decoding device can configure the (A)MVP candidate list described later, and use the motion vector of the selected mvp candidate from among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list as the mvp of the current block. The selection can be made based on the selection information (mvp flag or mvp index) described above. In this case, the MVD of the current block can be derived based on the information regarding the MVD, and the motion vector of the current block can be derived based on the mvp of the current block and the MVD. Furthermore, the reference picture index of the current block can be derived based on the reference picture index information. In the reference picture list for the current block, the picture pointed to by the reference picture index can be derived as the reference picture referenced for interpretation of the current block.

[0107] On the other hand, as will be described later, the movement information of the current block can be derived without constructing a candidate list, and in this case, the movement information of the current block can be derived by the procedure disclosed in the prediction mode described later. In this case, the candidate list construction described above can be omitted.

[0108] The decoding device can generate predicted samples for the current block based on the motion information of the current block (S520). In this case, the reference picture can be derived based on the reference picture index of the current block, and the predicted samples for the current block can be derived using the sample of the reference block pointed to by the motion vector of the current block on the reference picture. In this case, as will be described later, a further predicted sample filtering procedure may be performed on all or some of the predicted samples for the current block.

[0109] For example, the interpretation unit of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit determines the prediction mode for the current block based on the prediction mode information received, the motion information derivation unit derives motion information (motion vector and / or reference picture index, etc.) for the current block based on the motion information received, and the prediction sample derivation unit derives the prediction sample for the current block.

[0110] The decoding device generates a residual sample for the current block based on the received residual information (S530). The decoding device generates a restored sample for the current block based on the predicted sample and the residual sample, and can generate a restored picture based on this (S540). As described above, in-loop filtering procedures and the like may be further applied to the restored picture thereafter.

[0111] Figure 6 illustrates the interpretation prediction procedure.

[0112] Referring to Figure 6, as described above, the interpretation procedure may include an interpretation mode determination step, a motion information derivation step based on the determined prediction mode, and a prediction execution (prediction sample generation) step based on the derived motion information. The interpretation procedure may be performed by an encoding device and a decoding device, as described above. In this document, the coding device may include an encoding device and / or a decoding device.

[0113] As shown in Figure 6, the coding device determines the interpretation mode for the current block (S600). Various interpretation modes can be used to predict the current block in the picture. For example, various modes can be used, such as merge mode, skip mode, MVP (motion vector prediction) mode, affine mode, subblock merge mode, and MMVD (merge with MVD) mode. DMVR (Decoder side motion vector refinement) mode, AMVR (adaptive motion vector resolution) mode, Bi-prediction with CU-level weight (BCW), and Bi-directional optical flow (BDOF) can be used as additional or alternative modes. The affine mode may also be called the affine motion prediction mode. The MVP mode may also be called the AMVP (advanced motion vector prediction) mode. In this document, motion information candidates derived by some modes and / or some modes may be included as one of the motion information related candidates of other modes. For example, an HMVP candidate can be added as a merge candidate in the merge / skip mode, or as an MVP candidate in the MVP mode. When the HMVP candidate is used as a motion information candidate in the merge mode or skip mode, the HMVP candidate can be called an HMVP merge candidate.

[0114] Prediction mode information indicating the inter-prediction mode of the current block can be signaled from the encoding device to the decoding device. The prediction mode information can be included in the bitstream and received by the decoding device. The prediction mode information may include index information indicating one of a plurality of candidate modes. Alternatively, the inter-prediction mode can be indicated via hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether a skip mode is applicable, and if the skip mode is not applicable, a merge flag may be signaled to indicate whether a merge mode is applicable, and if the merge mode is not applicable, it may indicate that the MVP mode is applicable, or flags for additional distinctions may be further signaled. Affine modes can be signaled as independent modes, or as modes dependent on merge modes or MVP modes, etc. For example, affine modes may include affine merge mode and affine MVP mode.

[0115] The coding device derives motion information for the current block (S610). The motion information can be derived based on the inter-prediction mode.

[0116] The coding device can perform interpretation using the motion information of the current block. The encoding device can derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding device can use the original block in the original picture for the current block to search for a highly correlated similar reference block in fractional pixel units within a defined search range in the reference picture, thereby deriving motion information. Block similarity can be derived based on the difference in phase-based sample values. For example, block similarity can be calculated based on the SAD between the current block (or the template of the current block) and the reference block (or the template of the reference block). In this case, motion information can be derived based on the reference block with the smallest SAD within the search area. The derived motion information can be signaled to the decoding device in various ways based on the interpretation mode.

[0117] The coding device performs inter prediction based on motion information for the current block (S620). The coding device can derive predicted samples (etc.) for the current block based on the motion information. The current block containing the predicted samples can be called a predicted block.

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

[0119] For example, the coding methods described above can be carried out as described later.

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

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

[0122] On the other hand, when the binary-evolved 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 the steps of estimating probabilities for the input bins and updating the probability model applied to the bins after encoding. When bypass encoding is applied, the encoding device can encode the input bins by applying a uniform probability distribution instead of assigning a contextual model, thereby improving the encoding speed. The bins encoded as described above can be referred to as bypass bins.

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

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

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

[0126] As described above, residual samples, etc., can be derived into quantized transformation coefficients, etc., through a transformation and quantization process. These quantized transformation coefficients, etc., can also be called transformation coefficients, etc. In this case, the transformation coefficients, etc., within a block can be signaled in the form of residual information. The residual information may include residual coding syntax. That is, an encoding device can construct residual coding syntax as residual information, encode it, and output it in bitstream form, and a decoding device can decode the residual coding syntax from the bitstream to derive residual (quantized) transformation coefficients, etc. The residual coding syntax may include syntax elements, etc., that indicate whether a transformation was applied to the block, where the last effective transformation coefficient in the block is located, whether effective transformation coefficients exist in subblocks, and what the magnitude / sign of the effective transformation coefficients are, as will be described later.

[0127] For example, the (quantized) transformation coefficients (i.e., the residual information) can be encoded and / or decoded based on 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_gt3_flag, abs_remainder, coeff_sign_flag, dec_abs_level, and mts_idx. Syntax elements associated with residual data encoding / decoding can be represented as shown in the following table.

[0128] [Table 1-1]

[0129] [Table 1-2]

[0130] [Table 1-3]

[0131] [Table 1-4]

[0132] The `transform_skip_flag` indicates whether a transformation is omitted in an associated block. The `transform_skip_flag` can be a syntax element of the transformation skip flag. The associated block can be a CB (coding block) or a TB (Transform block). CBs and TBs can be used interchangeably with respect to transformation (and quantization) and residual coding procedures. For example, as mentioned above, residual samples can be derived from a CB, and (quantized) transformation coefficients can be derived through transformation and quantization of the residual samples. Information (e.g., syntax elements) that efficiently represents the position, magnitude, sign, etc., of the (quantized) transformation coefficients can be generated and signaled through the residual coding procedure. Quantized transformation coefficients can simply be called transformation coefficients. Generally, if the CB is not larger than the maximum TB, the size of the CB can be the same as the size of the TB, in which case the block to be transformed (and quantized) and residual coded can be called a CB or a TB. On the other hand, if CB is greater than the maximum TB, the target block to be transformed (and quantized) and resistively coded can be called TB. Hereinafter, it will be explained that syntax elements related to resistive coding are signaled in units of transformation block TB, but this is merely an example, and as mentioned above, TB can be used interchangeably with coding block CB.

[0133] On the other hand, the syntax elements, etc. that are signaled after the conversion skip flag has been signaled can be the same as the syntax elements, etc. disclosed in Table 2 described below, and a specific explanation of the syntax elements, etc. will be given below.

[0134] [Table 2-1]

[0135] Table 2-2

[0136] Table 2-3

[0137] Table 3-1

[0138] Table 3-2

[0139] Table 3-3

[0140] Table 3-4

[0141] Table 3-5

[0142] Table 3-6

[0143] Table 4-1

[0144] Table 4-2

[0145] [Table 4-3]

[0146] In this embodiment, as shown in Table 2, residual coding can be branched by the value of the transform_skip_flag syntax element. That is, different syntax elements can be used for residual coding based on the value of the transform_skip_flag (based on whether or not transformation skipping is possible). Residual coding used when transformation skipping is not applied (i.e., when transformation is applied) may be called Regular Residual Coding (RRC), and residual coding when transformation skipping is not applied (i.e., when transformation is not applied) may be called Transform Skip Residual Coding (TSRC). Regular residual coding may also be called general residual coding. Regular residual coding may also be called Regular Residual Coding syntax structure, and transformation skip residual coding may also be called Transform Skip Residual Coding syntax structure. Table 3 can represent the syntax elements of the residual coding when the value of transform_skip_flag is 0, i.e., when the transformation is applied, and Table 4 can represent the syntax elements of the residual coding when the value of transform_skip_flag is 1, i.e., when the transformation is not applied.

[0147] Specifically, for example, a conversion skip flag indicating whether a conversion block can be skipped can be parsed, and it can be determined whether the conversion skip flag is 1 or not. If the value of the conversion skip flag is 0, as shown in Table 3, syntax elements such as last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, sb_coded_flag, sig_coeff_flag, abs_level_gtx_flag, par_level_flag, abs_remainder, coeff_sign_flag and / or dec_abs_level for the residual coefficients of the conversion block can be parsed, and the residual coefficients can be derived based on the syntax elements. In this case, the syntax elements can be parsed sequentially, and the parsing procedure can be changed. Furthermore, the abs_level_gtx_flag can represent abs_level_gt1_flag and / or abs_level_gt3_flag. For example, abs_level_gtx_flag[n][0] may be an example of the first conversion coefficient level flag (abs_level_gt1_flag), and abs_level_gtx_flag[n][1] may be an example of the second conversion coefficient level flag (abs_level_gt3_flag).

[0148] Referring to Table 3 above, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, sb_coded_flag, sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_remainder, coeff_sign_flag, and / or dec_abs_level can be encoded / decoded. On the other hand, sb_coded_flag can also be represented as coded_sub_block_flag.

[0149] In one embodiment, the encoding device can encode the (x, y) position information of the last non-zero conversion coefficient in the conversion block based on the syntax elements last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix. More specifically, last_sig_coeff_x_prefix represents the prefix of the column position of the last significant coefficient in the scanning order within the transformation block, last_sig_coeff_y_prefix represents the prefix of the row position of the last significant coefficient in the scanning order within the transformation block, last_sig_coeff_x_suffix represents the suffix of the column position of the last significant coefficient in the scanning order within the transformation block, and last_sig_coeff_y_suffix represents the row position of the last significant coefficient in the scanning order within the transformation block. This represents the suffix of the position. Here, the effective coefficient can represent the non-zero coefficient. The scan order can be the upper right diagonal scan order. Alternatively, the scan order can be the horizontal scan order or the vertical scan order. The scan order can be determined based on whether intra / inter prediction is applied to the target block (CB, or CB including TB) and / or the specific intra / inter prediction mode.

[0150] Next, the encoding device divides the conversion block into 4x4 sub-blocks, and then uses a 1-bit syntax element, coded_sub_block_flag, for each 4x4 sub-block to indicate whether or not there are currently non-zero coefficients within the sub-block.

[0151] If the value of coded_sub_block_flag is 0, there is no more information to transmit, and the encoding device can terminate the encoding process for the current subblock. Conversely, if the value of coded_sub_block_flag is 1, the encoding device can continue the encoding process for sig_coeff_flag. Subblocks containing the last non-zero coefficient do not require encoding of coded_sub_block_flag, and subblocks containing DC information for the transform block are highly likely to contain non-zero coefficients, so coded_sub_block_flag can be assumed to be 1 without being encoded.

[0152] If the value of coded_sub_block_flag is 1 and it is determined that there is a non-zero coefficient in the subblock, the encoding device can encode sig_coeff_flag, which has a binary value, in the reverse scan order. The encoding device can encode a 1-bit syntax element sig_coeff_flag for each conversion coefficient in the scan order. If the value of the conversion coefficient at the current scan position is not 0, the value of sig_coeff_flag can be 1. Here, in the case of a subblock containing the last non-zero coefficient, the encoding process for the last non-zero coefficient does not need to be encoded, so the encoding process for that subblock can be omitted. Level information encoding can only be performed if sig_coeff_flag is 1, and four syntax elements may be used in the level information encoding process. More specifically, each sig_coeff_flag[xC][yC] can represent whether the level (value) of the conversion coefficient at each conversion coefficient position (xC, yC) in the current TB is non-zero. In one embodiment, sig_coeff_flag can be an example of a syntax element for an effectiveness coefficient flag that indicates whether the quantized conversion coefficient is a non-zero effectiveness coefficient.

[0153] The remaining level value after encoding for sig_coeff_flag can be derived as shown in the following formula. That is, the syntax element remAbsLevel, which represents the level value to be encoded, can be derived as shown in the following formula.

[0154]

number

[0155] Here, coeff represents the actual conversion coefficient value.

[0156] Furthermore, abs_level_gt1_flag can indicate whether the remAbsLevel at the scanning position (n) is greater than 1. For example, if the value of abs_level_gt1_flag is 0, the absolute value of the conversion coefficient at that position may be 1. Also, if the value of abs_level_gt1_flag is 1, the remAbsLevel, which represents the level value to be encoded later, can be updated as shown in the following formula.

[0157]

number

[0158] Furthermore, the least significant coefficient (LSB) value of remAbsLevel described in equation 2 above can be encoded via par_level_flag as shown in equation 3 below.

[0159]

number

[0160] Here, `par_level_flag[n]` can represent the parity of the transformation coefficient level (value) at scanning position n.

[0161] The conversion coefficient level value remAbsLevel, which should be encoded after par_leve_flag encoding, can be updated as shown in the following formula.

[0162]

number

[0163] abs_level_gt3_flag can indicate whether the remAbsLevel at the scanning position (n) is greater than 3. Encoding for abs_remainder can only be performed if abs_level_gt3_flag is 1. The relationship between the actual conversion coefficient value coeff and each syntax element can be given by the following formula.

[0164]

number

[0165] The following table shows examples related to the above-mentioned formula 5.

[0166] [Table 5]

[0167] Here, |coeff| represents the conversion coefficient level (value), and can also be expressed as AbsLevel for the conversion coefficient. Furthermore, the sign of each coefficient can be encoded using the 1-bit symbol coeff_sign_flag.

[0168] Furthermore, for example, if the value of the conversion skip flag is 1, the syntax elements such as sb_coded_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gtx_flag, par_level_flag and / or abs_remainder for the residual coefficients of the conversion block can be parsed, as shown in Table 4, and the residual coefficients can be derived based on the syntax elements. In this case, the syntax elements can be parsed sequentially, and the parsing procedure can also be changed. Also, abs_level_gtx_flag can represent abs_level_gt1_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag and / or abs_level_gt9_flag. For example, abs_level_gtx_flag[n][j] may be a flag indicating whether the absolute value or level (value) of the conversion coefficient at scanning position n is greater than (j<<1)+1. (j<<1)+1 may, in some cases, be replaced by predetermined critical values ​​such as the first critical value, the second critical value, etc.

[0169] On the other hand, while CABAC offers high performance, it suffers from poor throughput. This is due to CABAC's canonical encoding engine, which uses previously updated stochastic states and ranges through bin encoding, resulting in high data dependency and requiring significant time to read the stochastic intervals and determine the current state. CABAC's throughput problem can be solved by limiting the number of context-coded bins. For example, as shown in Table 1 or Table 3 above, the sum of bins used to represent sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag can be limited to a number determined by the size of the block. Furthermore, as shown in Table 4 above, for example, the sum of the bins used to represent sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, and abs_level_gt9_flag can be limited to a number determined by the size of the block.For example, if the block is a 4x4 size block, the sum of bins etc. for sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag or sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, abs_level_gt9_flag can be limited to 32 (or, for example, 28), and if the block is a 2x2 size block, the sum of bins etc. for sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag can be limited to 8 (or, for example, 7). The limited number of bins, etc., can be indicated by remBinsPass1 or RemCcbs. Alternatively, for example, to increase CABAC processing capacity, the number of context coded bins can be limited per block (CB or TB) containing the CG to be coded. In other words, the number of context coded bins can be limited per block (CB or TB). For example, if the current block size is 16x16, the number of context coded bins for the current block can be limited to 1.75 times the number of pixels in the current block, i.e., 448, regardless of the current CG.

[0170] In this case, once the encoding device has used all of the limited number of context-coded bins to encode the context elements, it can perform bypass coding by binary-coding the remaining coefficients through the binary-coded method for the coefficients described later, without using context coding. In other words, for example, if the number of context-coded bins coded for a 4x4 CG is 32 (or, for example, 28), or if the number of context-coded bins coded for a 2x2 CG is 8 (or, for example, 7), then sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag that would otherwise be coded into context-coded bins may not be coded and can be immediately coded into dec_abs_level. Alternatively, for example, if the number of context-coded bins coded for a 4x4 block is limited to 1.75 times the total number of pixels in the block, i.e., 28, then no further sig_coeff_flag, abs_level_gt1_flag, par_level_flag, or abs_level_gt3_flag may be coded into context-coded bins, and these can be immediately coded into dec_abs_level, as shown in Table 6 below.

[0171] [Table 6]

[0172] The |coeff| value can be derived based on dec_abs_level. In this case, the conversion coefficient value |coeff| can be derived as shown in the following formula.

[0173]

number

[0174] Furthermore, the coeff_sign_flag can represent the sign of the conversion coefficient level at the scanning position (n). In other words, the coeff_sign_flag can represent the sign of the conversion coefficient at the scanning position (n).

[0175] Figure 8 illustrates an example of conversion coefficients and other factors within a 4x4 block.

[0176] The 4x4 block in Figure 8 shows an example of quantized coefficients, etc. The block shown in Figure 8 can be a 4x4 transformation block, or a 4x4 subblock of an 8x8, 16x16, 32x32, or 64x64 transformation block. The 4x4 block in Figure 8 can represent a luma block or a chroma block.

[0177] On the other hand, as described above, if the input signal is a syntax element that is not a binary value, the encoding device can convert the input signal into a binary value by binaryizing the value of the input signal. The decoding device can decode the syntax element to derive the binaryized value of the syntax element (i.e., the binaryized bin), and can decode the binaryized value in reverse binary to derive the value of the syntax element. The binaryization process can be carried out using methods such as the truncated rice (TR) binary process, the k-th order Exp-Golomb (EGk) binary process, the k-th order Limited Exp-Golomb (Limited EGk), or the fixed-length (FL) binary process, as described later. Furthermore, the inverse binary evolution process can represent a process that derives the value of the syntax element based on the TR binary evolution process, the EGk binary evolution process, or the FL binary evolution process.

[0178] For example, the TR binary evolution process can be carried out as follows.

[0179] The input to the TR binary process can be a request for the TR binary and cMax and cRiceParam for the syntax element. The output to the TR binary process can be the TR binary for the value symbolVal corresponding to the binstring.

[0180] Specifically, as an example, if a suffix binstring exists for a syntax element, the TR binstring for the syntax element can be a concatenation of a prefix binstring and a suffix binstring. If the suffix binstring does not exist, the TR binstring for the syntax element can be the prefix binstring. For example, the prefix binstring can be derived as described later.

[0181] The prefix value of symbolVal for the syntax element can be derived as shown in the following formula.

[0182]

number

[0183] Here, prefixVal can represent the prefix value of symbolVal. The prefix of the TR binstring of the syntax element (i.e., the prefix binstring) can be derived as described later.

[0184] For example, if prefixVal is less than cMax>>cRiceParam, the prefix binstring can be a bit string of length prefixVal+1 that is indexed by binIdx. That is, if prefixVal is less than cMax>>cRiceParam, the prefix binstring can be a bit string of prefixVal+1 bits pointed to by binIdx. The bin for a binIdx smaller than prefixVal can be the same as 1. Also, the bin for a binIdx that is the same as prefixVal can be the same as 0.

[0185] For example, the binstring derived by unary binarization of prefixVal can be as shown in the following table.

[0186] [Table 7]

[0187] On the other hand, if prefixVal is not less than cMax>>cRiceParam, the prefix bin string can be a bit string with length cMax>>cRiceParam and all bins being 1.

[0188] Furthermore, if cMax is greater than symbolVal and cRiceParam is greater than 0, a suffix binstring may exist for the TR binstring. For example, the aforementioned suffix binstring can be derived as described later.

[0189] The suffix value of symbolVal for the syntax element can be derived as shown in the following formula.

[0190]

number

[0191] Here, suffixVal can represent the suffix value of the symbolVal.

[0192] The suffix of the TR bin string (i.e., the suffix bin string) can be derived based on the FL binary evolution process for suffixVal where the cMax value is (1 << cRiceParam) - 1.

[0193] On the other hand, if the value of the input parameter cRiceParam is 0, the TR binary evolution can be exactly truncated unary binarization, and the same cMax value as the possible maximum value of the syntax element always decoded can be used.

[0194] Also, for example, the EGk binary evolution process can be performed as follows. The syntax element coded by ue(v) can be an Exp - Golomb coded syntax element.

[0195] As an example, the 0 - th order Exp - Golomb (EG0) binary evolution process can be performed as follows.

[0196] The parsing process for the syntax element can start from the current position of the bit stream, read the bits including the first non - zero bit, and begin by counting the number of leading bits such as 0. The process can be represented as in the following table.

[0197]

Table 8

[0198] Furthermore, the variable codeNum can be derived as shown in the following formula.

[0199]

number

[0200] Here, the value returned by read_bits(leadingZeroBits), that is, the value represented by read_bits(leadingZeroBits), can be interpreted as the binary representation of the unsigned integer for the most significant bit recorded first.

[0201] The structure of the Exp-Golomb code, which separates the bit string into "prefix" bits and "suffix" bits, can be represented as shown in the following table.

[0202] [Table 9]

[0203] The "prefix" bits can be the bits parsed as described above for the leadingZeroBits calculation and can be represented as 0 or 1 in the bitstring in Table 9. That is, the bitstrings disclosed as 0 or 1 in Table 9 above can represent the prefix bitstring. The "suffix" bits can be the bits parsed in the codeNum calculation and can be represented as xi in Table 9 above. That is, the bitstrings disclosed as xi in Table 9 above can represent the suffix bitstring. Here, i can be a value in the range of 0 to LeadingZeroBits-1. Also, each xi can be identical to 0 or 1.

[0204] The bit string assigned to codeNum can be as shown in the following table.

[0205] [Table 10]

[0206] If the descriptor of a syntax element is ue(v), that is, if the syntax element is coded with ue(v), then the value of the syntax element can be the same as codeNum.

[0207] Furthermore, for example, the EGk binary evolution process can be carried out as follows.

[0208] The input to the EGk binary process can be a request for EGk binary. The output to the EGk binary process can be an EGk binary for the value symbolVal corresponding to the binstring.

[0209] The bitstring of the EGk binary evolution process for symbolVal can be derived as follows:

[0210] [Table 11]

[0211] Referring to Table 11 above, the binary value X can be appended to the end of the binstring via each call to put(x), where x can be 0 or 1.

[0212] Furthermore, for example, the Limited EGk binary evolution process can be carried out as follows.

[0213] The input to the Limited EGk binary process can be a request for the Limited EGk binary, a rice parameter riceParam, a variable log2TransformRange representing the binary logarithm of the maximum value, and a variable maxPreExtLen representing the maximum prefix extension length. The output to the Limited EGk binary process can be the Limited EGk binary for the value symbolVal corresponding to the binstring.

[0214] The bitstring for the Limited EGk binary evolution process for symbolVal can be derived as follows:

[0215] [Table 12]

[0216] Furthermore, for example, the FL binary evolution process can be carried out as follows.

[0217] The input to the FL binary process can be a request for the FL binary and cMax for the syntax element. The output to the FL binary process can be the FL binary for the value symbolVal corresponding to the binstring.

[0218] FL binary can be constructed using a bitstring having a fixed length of bits for the symbol value symbolVal. Here, the fixed length bits can be an unsigned integer bitstring. That is, a bitstring for the symbol value symbolVal can be derived by FL binary, and the bit length (i.e., number of bits) of the bitstring can be fixed length.

[0219] For example, the fixed length can be derived as shown in the following formula.

[0220]

number

[0221] Indexing for FL binary can be done using a method that increases from the most significant bit to the least significant bit. For example, the bin index associated with the most significant bit can be binIdx=0.

[0222] On the other hand, for example, the binary evolution process for the syntax element abs_remainder among the residual information can be carried out as follows.

[0223] The input to the binary evolution process for the abs_remainder can be the binary evolution request for the syntax element abs_remainder[n], the color component cIdx, and the luma position (x0, y0). The luma position (x0, y0) can refer to the top-left sample of the current luma transformation block relative to the top-left luma sample of the picture.

[0224] The output of the binary evolution process for the abs_remainder may be the binary evolution of the abs_remainder (i.e., the binary evolution of the abs_remainder's binstring). The binary evolution process may derive the available binstring for the abs_remainder.

[0225] The Rice parameter cRiceParam for the abs_remainder[n] can be derived through a Rice parameter derivation process performed by inputting the hue component cIdx, the luma position (x0, y0), the current coefficient scan position (xC, yC), log2TbWidth (the binary logarithm of the width of the transformation block), and log2TbHeight (the binary logarithm of the height of the transformation block). A detailed explanation of the Rice parameter derivation process will be given later.

[0226] Furthermore, for example, the cMax for the currently coded abs_remainder[n] can be derived based on the rice parameter cRiceParam. The cMax can be derived as follows:

[0227]

number

[0228] On the other hand, the binary representation of abs_remainder, that is, the binstring for abs_remainder, can be a concatenation of a prefix binstring and a suffix binstring if a suffix binstring exists. Also, if the suffix binstring does not exist, the binstring for abs_remainder can be the prefix binstring.

[0229] For example, the aforementioned prefix binstring can be derived as described later.

[0230] The prefix value prefixVal of abs_remainder[n] can be derived as shown in the following formula.

[0231]

number

[0232] The prefix of the bin string of the abs_remainder[n] (i.e., the prefix bin string) can be derived by a TR binary process for the prefixVal that uses the cMax and the cRiceParam as inputs.

[0233] If the prefix bin string is the same as a bit string where all bits are 1 and the bit length is 6, a suffix bin string of the bin string of the abs_remainder[n] may exist and can be derived as described later.

[0234] The process for deriving the Rice parameter for the abs_remainder[n] may be as follows.

[0235] The inputs to the process for deriving the Rice parameter may be the colour component index cIdx, the luma position (x0, y0), the current coefficient scan position (xC, yC), the binary logarithm log2TbWidth of the width of the transform block, and the binary logarithm log2TbHeight of the height of the transform block. The luma position (x0, y0) can refer to the top-left sample of the current luma transform block based on the top-left luma sample of the picture. Also, the output of the process for deriving the Rice parameter may be the Rice parameter cRiceParam.

[0236] For example, based on a given component index cIdx and an array AbsLevel[x][y] for a transform block having the top-left luma position (x0, y0), a variable locSumAbs can be derived as in the pseudo code disclosed in the following table.

[0237] [Table 13]

[0238] After that, based on the given variable locSumAbs, the Rice parameter cRiceParam can be derived as shown in the following table.

[0239] [Table 14]

[0240] Also, for example, in the process of deriving the Rice parameter for abs_remainder[n], baseLevel can be set to 4.

[0241]

[0242] Or, for example, the Rice parameter cRiceParam can be determined based on whether the current block can be transformed and skipped. That is, when no transformation is applied to the current TB including the current CG, in other words, when a transform skip is applied to the current TB including the current CG, the Rice parameter cRiceParam can be derived as 1.

[0243] [Equation]

[0244] The suffix string of the bin string of the abs_remainder can be derived by the Limited EGk binary evolution process for the suffixVal where k is set to cRiceParam + 1, riceParam is set to cRiceParam, log2TransformRange is set to 15, and maxPreExtLen is set to 11.

[0245] ​On the other hand, for example, the binary evolution process for the syntax element dec_abs_level among the residual information can be carried out as follows.

[0246] The input to the binary evolution process for dec_abs_level can be a request for binary evolution of the syntax element dec_abs_level[n], a color component cIdx, a luma position (x0, y0), a current coefficient scan position (xC, yC), log2TbWidth which is the binary logarithm of the width of the transformation block, and log2TbHeight which is the binary logarithm of the height of the transformation block. The luma position (x0, y0) can refer to the top-left sample of the current luma transformation block relative to the top-left luma sample of the picture.

[0247] The output of the binary evolution process for dec_abs_level can be the binary evolution of dec_abs_level (i.e., the binary evolution of the dec_abs_level binstring). The binary evolution process can derive the available binstring for dec_abs_level.

[0248] The Rice parameter cRiceParam for dec_abs_level[n] can be derived through a Rice parameter derivation process that takes the hue component cIdx, luma position (x0, y0), current coefficient scan position (xC, yC), log2TbWidth (the binary logarithm of the width of the transformation block), and log2TbHeight (the binary logarithm of the height of the transformation block) as inputs. A detailed explanation of the Rice parameter derivation process will be given later.

[0249] Furthermore, for example, cMax for dec_abs_level[n] can be derived based on the rice parameter cRiceParam. cMax can be derived as shown in the following formula.

[0250]

Number

[0251] On the one hand, the binary evolution for the dec_abs_level[n], that is, the bin string for the dec_abs_level[n], can be the concatenation of the prefix bin string and the suffix bin string if the suffix bin string exists. Also, if the suffix bin string does not exist, the bin string for the dec_abs_level[n] can be the prefix bin string.

[0252] For example, the prefix bin string can be derived as described later.

[0253] The prefix value prefixVal of the dec_abs_level[n] can be derived as in the following formula.

[0254]

Number

[0255] The prefix of the bin string of the dec_abs_level[n] (that is, the prefix bin string) can be derived by the TR binary evolution process for the prefixVal using the cMax and the cRiceParam as inputs.

[0256] If the prefix bin string is the same as the bit string with all bits being 1 and a bit length of 6, the suffix bin string of the bin string of the dec_abs_level[n] may exist and can be derived as described later.

[0257] The process for deriving the Rice parameter for dec_abs_level[n] can be as follows:

[0258] The inputs to the Rice parameter derivation process can be the color component index cIdx, the luma position (x0, y0), the current coefficient scan position (xC, yC), the binary logarithm of the width of the transformation block log2TbWidth, and the binary logarithm of the height of the transformation block log2TbHeight. The luma position (x0, y0) can refer to the upper-left sample of the current luma transformation block, relative to the upper-left luma sample of the picture. The output of the Rice parameter derivation process can be the Rice parameter cRiceParam.

[0259] For example, based on the array AbsLevel[x][y] for a transformation block having a given component index cIdx and the upper-left corner position (x0, y0), the variable locSumAbs can be derived as shown in the pseudo code disclosed in the following table.

[0260] [Table 15]

[0261] Subsequently, based on the given variable locSumAbs, the rice parameter cRiceParam can be derived as shown in the following table.

[0262] [Table 16]

[0263] Furthermore, for example, in the process of deriving the Rice parameter for dec_abs_level[n], baseLevel can be set to 0, and ZeroPos[n] can be derived as shown in the following formula.

[0264]

number

[0265] Furthermore, the suffix value suffixVal of dec_abs_level[n] can be derived as shown in the following formula.

[0266]

number

[0267] The suffix binstring of the binstring in dec_abs_level[n] can be derived through a Limited EGk binary process for the suffixVal, where k is set to cRiceParam+1, trunkSuffixLen is set to 15, and maxPreExtLen is set to 11.

[0268] On the other hand, the aforementioned RRC and TSRC may have the following differences.

[0269] - For example, the rice parameter for the syntax element abs_remainder[] in TSRC can be derived to 1. The rice parameter cRiceParam for the syntax element abs_remainder[] in RRC can be derived based on lastAbsRemainder and lastRiceParam as described above, but the rice parameter cRiceParam for the syntax element abs_remainder[] in TSRC can be derived to 1. That is, for example, if a transform skip is applied to the current block (e.g., current TB), the rice parameter cRiceParam for abs_remainder[] in TSRC for the current block can be derived to 1.

[0270] - Also, for example, referring to Tables 3 and 4, in RRC, abs_level_gtx_flag[n][0] and / or abs_level_gtx_flag[n][1] can be signaled, while in TSRC, abs_level_gtx_flag[n][0], abs_level_gtx_flag[n][1], abs_level_gtx_flag[n][2], abs_level_gtx_flag[n][3] and abs_level_gtx_flag[n][4] can be signaled. Here, abs_level_gtx_flag[n][0] can be represented as abs_level_gt1_flag or the first coefficient level flag, abs_level_gtx_flag[n][1] can be represented as abs_level_gt3_flag or the second coefficient level flag, abs_level_gtx_flag[n][2] can be represented as abs_level_gt5_flag or the third coefficient level flag, abs_level_gtx_flag[n][3] can be represented as abs_level_gt7_flag or the fourth coefficient level flag, and abs_level_gtx_flag[n][4] can be represented as abs_level_gt9_flag or the fifth coefficient level flag. Specifically, the first coefficient level flag may be a flag indicating whether the coefficient level is greater than a first critical value (e.g., 1), the second coefficient level flag may be a flag indicating whether the coefficient level is greater than a second critical value (e.g., 3), the third coefficient level flag may be a flag indicating whether the coefficient level is greater than a third critical value (e.g., 5), the fourth coefficient level flag may be a flag indicating whether the coefficient level is greater than a fourth critical value (e.g., 7), and the fifth coefficient level flag may be a flag indicating whether the coefficient level is greater than a fifth critical value (e.g., 9).As described above, TSRC can include abs_level_gtx_flag[n][2], abs_level_gtx_flag[n][3] and abs_level_gtx_flag[n][4] in addition to abs_level_gtx_flag[n][0] and abs_level_gtx_flag[n][1], compared to RRC.

[0271] - Also, for example, in RRC, the syntax element coeff_sign_flag can be bypass-coded, but in TSRC, the syntax element coeff_sign_flag can be bypass-coded or context-coded.

[0272] On the other hand, this document proposes a method for applying level mapping techniques to transformation-skip blocks using a simplified residual data coding structure. Here, a transformation-skip block can represent a block to which no transformation is applied. Furthermore, level mapping techniques can mean that when BDPCM (block-based quantized residual domain differential pulse-code modulation) is not applied to the current block (e.g., CU), the absolute coefficient level, i.e., absCoeffLevel, is mapped to a modified level coded by a method based on the (quantized) left residual sample and upper residual sample of the current residual sample (i.e., current residual coefficient). Under certain conditions such as lossless coding or near-lossless coding, a simplified residual data coding structure can be used for an entire coding block or transformation block, or for a portion of a subblock / coefficient group (CG). Alternatively, the proposed method can restrict the number of context-coded bins, etc., that can be used for residual (data) coding within a single TU (Transform Unit, TU) to a specific threshold, and the simplified residual data coding structure can be used when all context-coded bins that can be used for residual coding of a TU are exhausted (i.e., when the number of context-coded bins for residual coding of the TU becomes equal to the specific threshold).

[0273] Figure 9 shows an example of simplified residual data coding for a single CG, transform block, or coding block. Syntax elements such as sig_coeff_flag, coeff_sign_flag, and abs_remainder can be coded using this simplified residual coding. The syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded from top to bottom, as shown in Figure 12. That is, the syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded in the order of sig_coeff_flag, coeff_sign_flag, and abs_remainder.

[0274] The `sig_coeff_flag` can represent a syntax element for the effective coefficient flag. The `sig_coeff_flag` can indicate whether the residual coefficient of the current block (CG, transformation block, or coding block) is a non-zero residual coefficient. For example, the `sig_coeff_flag` can have a value of 0 if the value of the residual coefficient at that location is 0, and a value of 1 if it is not 0. The `coeff_sign_flag` can also represent a syntax element for the sign flag of the residual coefficient. The `sig_coeff_flag` can represent the sign of the residual coefficient. For example, the `coeff_sign_flag` can mean the sign value of the residual coefficient at that location. There are various ways in which the `coeff_sign_flag` can be applied. For example, if the residual coefficient at the position is 0, that is, if the value of sig_coeff_flag for the residual coefficient is 0, then coeff_sign_flag may not be coded. For a residual coefficient that is not 0, if the residual coefficient is negative, then coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive, then coeff_sign_flag may have a value of 0 (or 1). Alternatively, regardless of the value of sig_coeff_flag for the residual coefficient, if the residual coefficient is negative, then coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive or 0, then coeff_sign_flag may have a value of 0 (or 1). Alternatively, if the residual coefficient is positive, then coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is negative or 0, then coeff_sign_flag may have a value of 0 (or 1). Furthermore, the abs_remainder can represent a syntax element for residual level value information or coefficient value-related information.For example, the abs_remainder can represent a residual level value. For instance, if the value of sig_coeff_flag for a residual coefficient is 0, the abs_remainder for the residual coefficient may not be coded, and if the value of sig_coeff_flag for a residual coefficient is 1, the abs_remainder may have the absolute value of the residual coefficient minus 1 (absolute value -1).

[0275] On the other hand, even when regular residual coding is performed, if certain conditions are met, it can be converted to the simplified residual data coding shown in Figure 12. For example, the certain conditions may be that the residual information of the coding block is coded losslessly or with proximity lossless coding, and / or that all context coding bins that can be used when the TU-level context coding bin constraint algorithm is applied are exhausted.

[0276] Figure 10 shows another example of simplified residual data coding for a single CG, transform block, or coding block. Syntax elements such as dec_abs_level and coeff_sign_flag can be coded in this simplified residual coding. The syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded from top to bottom, as shown in Figure 10. That is, the syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded in the order of dec_abs_level and coeff_sign_flag.

[0277] As shown in Figure 10, dec_abs_level can represent a syntax element for coefficient value-related information, and coeff_sign_flag can represent a syntax element for the sign flag of the residual coefficient. For example, according to the structure shown in Figure 10, if the residual coefficient is 0, the value of dec_abs_level may be 0, and if the residual coefficient is not 0, the value of dec_abs_level may be the absolute value of the residual coefficient. Also, for example, coeff_sign_flag may mean the sign value of the residual coefficient at that position. There can be various ways to apply coeff_sign_flag. For example, if the residual coefficient at the position is 0, the coeff_sign_flag may not be coded. For non-zero residual coefficients, if the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, it may always be coded regardless of the dec_abs_level of the residual coefficient. If the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive or 0, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, if the residual coefficient is positive, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is negative or 0, the coeff_sign_flag may have a value of 0 (or 1).

[0278] On the other hand, even when regular residual coding is performed, if certain conditions are met, it can be converted to the simplified residual data coding shown in Figure 13. For example, the certain conditions may include when the residual information of the coding block is coded losslessly or with proximity lossless coding, and / or when all context coding bins that can be used when the TU-level context coding bin constraint algorithm is applied are exhausted.

[0279] Figure 11 shows another example of simplified residual data coding for a single CG, transform block, or coding block. Syntax elements such as coeff_sign_flag and dec_abs_level can be coded in this simplified residual coding. The syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded from top to bottom, as shown in Figure 11. That is, the syntax elements for the residual coefficients within the CG, transform block, or coding block can be coded in the order of coeff_sign_flag and dec_abs_level.

[0280] As shown in Figure 11, the coeff_sign_flag can represent a syntax element for the sign flag of the residual coefficient, and the dec_abs_level can represent a syntax element for coefficient value-related information. For example, if the residual coefficient at the location to be coded is negative, the coeff_sign_flag can have a value of 1 (or 0), and if the residual coefficient is positive or 0, the coeff_sign_flag can have a value of 0 (or 1). Alternatively, for example, if the residual coefficient is positive, the coeff_sign_flag can have a value of 1 (or 0), and if the residual coefficient is negative or 0, the coeff_sign_flag can have a value of 0 (or 1).

[0281] On the other hand, even when regular residual coding is performed, if certain conditions are met, it can be converted to the simplified residual data coding shown in Figure 14. For example, the certain conditions may include when the residual information of the coding block is coded losslessly or with proximity lossless coding, and / or when all context coding bins that can be used when the TU-level context coding bin constraint algorithm is applied are exhausted.

[0282] On the other hand, as mentioned above, level mapping techniques can be used for the transformation skip mode. For example, in the level mapping technique, the value of abs_level_gtx_flag[0] can be used as a value indicating whether level mapping is possible. That is, whether level mapping is possible can be determined based on the value of abs_level_gtx_flag[0]. Therefore, in a simplified residual data coding structure in which abs_level_gtx_flag[0] is not coded, decoding of residual coefficients to which level mapping is applied cannot be performed accurately. Accordingly, this document proposes a method of not using level mapping for coding blocks, transformation blocks, coefficient groups, and / or residual coefficients to which simplified residual data coding is applied, so that the simplified residual data coding structure and level mapping shown in Figure 12, Figure 13, or Figure 14 can be used together. According to the embodiments of this document, the simplified residual data coding structure and level mapping can be combined without problems with residual coding for transformation skip blocks.

[0283] For example, within a single coding block, the residual data coding method for conversion skip blocks shown in Table 4 and the simplified residual data coding method described above can be used in combination. When the residual data coding for conversion skip blocks is applied, the level mapping technique shown in Table 4 can be applied as is, and when the simplified residual data coding is applied, the level mapping technique can be applied.

[0284] Tables 17 and 18, described later, exemplify the syntax to which the embodiments proposed in this document are applied.

[0285] [Table 17]

[0286] [Table 18]

[0287] Table 17, mentioned above, can represent a syntax structure that prevents level mapping from being performed when all usable context coding bins (MaxCcbs represents the number of usable context coding bins) are exhausted and the data is converted to a simplified residual data coding structure, under the application of a context coding bin constraint algorithm. Table 18, also mentioned above, can represent a syntax structure where the method proposed in this document is applied when a simplified residual data coding structure is used for lossless coding blocks. Here, for example, the transquant_bypass_flag shown in Table 18 may be a syntax element indicating whether lossless coding is possible. The transquant_bypass_flag can be signaled at the CU, TU, or picture level.

[0288] On the other hand, Tables 17 and 18 mentioned above are merely examples of the embodiments proposed in this document, and are not limited thereto. In one embodiment, this document proposes that when a simplified residual data coding structure is executed, the part that corrects the encoded / decoded levels in order to encode / decode the level-mapped residual coefficients is not executed. That is, for example, if all context coding bins for the current block are used, a method can be proposed in which the residual coefficients for the current block are not derived through level mapping, but are derived using a simplified residual data coding structure. The simplified residual data coding structure may be as described above. For example, if all context coding bins for the current block are used, the residual coefficients can be derived based on the values ​​of the information representing the absolute value and the sign information. Also, for example, Table 4 mentioned above can represent an example of the embodiments proposed in this document.

[0289] Figure 12 schematically shows an image encoding method using an encoding device relating to this document. The method disclosed in Figure 12 can be performed by the encoding device disclosed in Figure 2. Specifically, for example, S1200 in Figure 12 can be performed by the prediction unit of the encoding device, S1210 to S1220 in Figure 12 can be performed by the residual processing unit of the encoding device, and S1230 can be performed by the entropy encoding unit of the encoding device. Although not shown, the process of generating a restored sample and a restored picture for the current block based on the residual sample and predicted sample for the current block can be performed by the addition unit of the encoding device.

[0290] The encoding device derives predicted samples for the current block based on interpretation or intrapretation (S1200). The encoding device can derive predicted samples for the current block, etc., based on the prediction mode. In this case, various prediction methods disclosed in this document, such as interpretation or intrapretation, can be applied.

[0291] For example, the encoding device can decide whether to perform interpretation or intrapretation on the current block, and can determine a specific interpretation mode or specific intrapretation mode based on the RD cost. Depending on the determined mode, the encoding device can derive prediction samples for the current block.

[0292] The encoding device derives the residual sample of the current block based on the predicted sample (S1210). For example, the encoding device can derive the residual sample by subtracting the original sample and the predicted sample for the current block.

[0293] The encoding device derives the current residual coefficients based on the residual samples (S1220). For example, the encoding device can derive the current residual coefficients of the current block based on the residual samples. For example, the encoding device can decide whether or not a transformation is applied to the current block. That is, the encoding device can decide whether or not a transformation is applied to the residual samples of the current block. The encoding device can decide whether or not a transformation is applicable to the current block considering coding efficiency. For example, the encoding device can decide that no transformation is applied to the current block. A block to which no transformation is applied can be indicated as a transformation skip block. That is, for example, the current block may be a transformation skip block.

[0294] If no transformation is applied to the current block, i.e., if no transformation is applied to the residual sample, the encoding device can derive the derived residual sample as the current residual coefficient. If a transformation is applied to the current block, i.e., if a transformation is applied to the residual sample, the encoding device can perform a transformation on the residual sample to derive the current residual coefficient. The current residual coefficient can be contained in the current subblock of the current block. The current subblock may be called the current CG (coefficient croup). The size of the current subblock of the current block may be 4x4 or 2x2. That is, the current subblock of the current block may contain up to 16 non-zero residual coefficients or up to 4 non-zero residual coefficients.

[0295] Here, the current block can be a coding block (CB) or a transform block (TB). Also, the residual coefficient can be expressed as a transform coefficient.

[0296] On the other hand, for example, the current residual coefficient can be derived without performing level mapping. For example, the number of context-coded residual syntax elements for previous residual coefficients in the current block may be the same as the number of the largest context-coded bins in the current block, and the residual syntax element for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag for the residual coefficient, and the current residual coefficient can be derived without performing level mapping. Here, deriving the current residual coefficient using only the absolute level information and the sign flag can be referred to as simplified residual data coding. That is, the residual coefficient can be derived based on simplified residual data coding. Furthermore, for example, the context-coded bins for the current block can all be used as bins of context-coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient can include coefficient level information and a sign flag for the current residual coefficient, and the current residual coefficient can be derived without performing level mapping.For example, if, in the scanning order, all of the maximum number of context coded bins for the current block are used for the residual syntax elements for previous residual coefficients of the current residual coefficient, the residual syntax elements for the current residual coefficient may include coefficient level information and a sign flag for the current residual coefficient, and the current residual coefficient can be derived without performing level mapping. Alternatively, for example, previous residual coefficients prior to the current residual coefficient can be derived by performing level mapping.

[0297] On the other hand, for example, the level mapping can be represented by the methods shown in Table 19, which will be described later.

[0298] [Table 19]

[0299] Here, X0 can represent the left absolute coefficient level of the current residual coefficient (i.e., the coefficient level of the left residual sample (left residual coefficient)), and X1 can represent the upper absolute coefficient level (i.e., the coefficient level of the upper residual sample (upper residual coefficient)). Also, absCoeff can represent the absolute level coefficient of the current residual coefficient, and absCoeffMod can represent the level mapped through the process described above.

[0300] For example, the level mapping can mean the process of deriving the minimum value among the absolute levels of the left-side residual coefficient and the upper-side residual coefficient of the residual coefficient, comparing the minimum value with the absolute level of the residual coefficient, and modifying the absolute level of the residual coefficient based on the minimum value.

[0301] The encoding device encodes image information including prediction mode information representing the prediction mode of the current block, and residual syntax elements for the current residual coefficients (S1230). The encoding device can encode image information including prediction mode information representing the prediction mode of the current block, and residual syntax elements for the current residual coefficients. For example, the encoding device can generate and encode prediction-related information for the current block. The prediction-related information may include the prediction mode information. The encoding device can also encode residual information including residual syntax elements for the current residual coefficients of the current block. The image information may include the residual information. For example, the encoding device can encode image information including the residual information and output it in bitstream form. The bitstream can be transmitted to a decoding device via a network or recording medium.

[0302] Furthermore, for example, the number of context-coded residual syntax elements, etc., for the residual coefficients of the current block prior to the current residual coefficient may be the same as the number of context-coded bins, etc., of the current block. That is, for example, the context-coded bins for the current block can all be used as bins, etc., for context-coded residual syntax elements, etc., for the residual coefficients of the current block prior to the current residual coefficient. In other words, for example, in the scanning order, the entire number of context-coded bins, etc., of the current block can be used for the residual syntax elements, etc., for the previous residual coefficients of the current residual coefficient. On the other hand, for example, the number of context-coded bins, etc., of the current block can be derived based on the width and height of the current block.

[0303] For example, the number of context-coded residual syntax elements, etc., for residual coefficients prior to the current residual coefficient among the current block's residual coefficients may be the same as the number of the maximum context-coded bins, etc., of the current block, and the residual syntax elements, etc., for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag for the residual coefficient. For example, all of the context-coded bins, etc., of the current block can be used as bins, etc., of context-coded residual syntax elements, etc., for residual coefficients prior to the current residual coefficient among the current block's residual coefficients, and the residual syntax elements, etc., for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient. For example, if, in the scanning order, the maximum number of context-coded bins for the current block is used for the residual syntax elements for previous residual coefficients of the current residual coefficient, then the residual syntax elements for the current residual coefficient may include coefficient level information and a sign flag for the current residual coefficient. The residual syntax elements for the current residual coefficient can be encoded on a bypass basis. That is, the residual syntax elements for the current residual coefficient can be encoded based on a uniform probability distribution. For example, the coefficient level information may represent the absolute value of the coefficient level of the current residual coefficient. The sign flag may represent the sign of the current residual coefficient.For example, if the value of the sign flag is 0, the sign flag can indicate that the coefficient level of the current residual coefficient is a positive value, and if the value of the sign flag is 1, the sign flag can indicate that the coefficient level of the current residual coefficient is a negative value. The coefficient level information may be the aforementioned abs_remainder, and the sign flag may be the aforementioned coeff_sign_flag.

[0304] Furthermore, for example, the residual information may include a transformation skip flag for the current block. The transformation skip flag can indicate whether a transformation is applicable to the current block. That is, the transformation skip flag can indicate whether a transformation has been applied to the residual coefficients of the current block. The syntax element representing the transformation skip flag may be the transform_skip_flag described above. For example, if the value of the transformation skip flag is 0, the transformation skip flag can indicate that no transformation is applied to the current block, and if the value of the transformation skip flag is 1, the transformation skip flag can indicate that a transformation has been applied to the current block. For example, if the current block is a transformation skip block, the value of the transformation skip flag for the current block may be 1.

[0305] Furthermore, for example, the encoding device can generate residual information for the current block based on the residual sample of the current block. For example, the image information may include residual information for the current block. For example, the residual information may include residual syntax elements for residual coefficients prior to the current residual coefficient in the scanning sequence. For example, the residual syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.

[0306] For example, the context-coded resistive syntax element may include an effective coefficient flag indicating whether the resistive coefficient is a non-zero resistive coefficient, a parity level flag indicating the parity of the coefficient level for the resistive coefficient, a sign flag indicating the sign for the resistive coefficient, a first coefficient level flag indicating whether the coefficient level is greater than a first critical value, and / or a second coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a second critical value. Furthermore, for example, the context-coded resistive syntax element may include a third coefficient level flag indicating whether the coefficient level is greater than a third critical value, a fourth coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a fourth critical value, and / or a fifth coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a fifth critical value. Here, the effective coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the sign flag may be ceff_sign_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. Furthermore, the third coefficient level flag may be abs_level_gt5_flag or abs_level_gtx_flag, the fourth coefficient level flag may be abs_level_gt7_flag or abs_level_gtx_flag, and the fifth coefficient level flag may be abs_level_gt9_flag or abs_level_gtx_flag.

[0307] Furthermore, for example, the residual information may include a bypass-based coded syntax element for the residual coefficient of the current block. The bypass-coded syntax element may include coefficient level information for the value of the current residual coefficient. The coefficient level information may be abs_remainder and / or dec_abs_level. The bypass-coded syntax element may also include the sign flag.

[0308] Furthermore, for example, the encoding device can generate prediction-related information for the current block. The image information may include prediction-related information for the current block. The prediction-related information may include prediction mode information applied to the current block. The decoding device can perform inter-prediction or intra-prediction for the current block based on the prediction-related information received via the bitstream, and can derive prediction samples for the current block.

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

[0310] Figure 13 schematically represents an encoding device that performs the image encoding method relating to this document. The method disclosed in Figure 12 can be performed by the encoding device disclosed in Figure 13. Specifically, for example, the prediction unit of the encoding device in Figure 13 can perform S1200 of Figure 12, the residual processing unit of the encoding device in Figure 13 can perform S1210 to S1220 of Figure 12, and the entropy encoding unit of the encoding device in Figure 13 can perform S1230 of Figure 12. In addition, although not shown, the process of generating a restored sample and a restored picture for the current block based on the residual sample and predicted sample for the current block can be performed by the addition unit of the encoding device.

[0311] Figure 14 schematically shows an image decoding method using a decoding device relating to this document. The method disclosed in Figure 14 can be performed by the decoding device disclosed in Figure 3. Specifically, for example, S1400 in Figure 14 can be performed by the entropy decoding unit of the decoding device, S1410 to S1420 can be performed by the prediction unit of the decoding device, S1430 to S1440 can be performed by the residual processing unit of the decoding device, and S1450 can be performed by the addition unit of the decoding device.

[0312] The decoding device acquires image information including prediction mode information and residual information via the bitstream (S1400). The decoding device can acquire image information including prediction mode information and residual information for the current block via the bitstream. For example, the image information may include prediction mode information for the current block. For example, the image information may include prediction-related information for the current block, and the prediction-related information may include the prediction mode information. The prediction mode information may indicate whether interpretation or intraprediction is applied to the current block.

[0313] Furthermore, for example, the residual information may include a residual syntax element for the current residual coefficient within the current block. Here, the current block may be a coding block (CB) or a transform block (TB). The residual coefficient may also be referred to as a transform coefficient.

[0314] Furthermore, for example, the current block may be a conversion skip block.

[0315] Furthermore, for example, the number of context-coded residual syntax elements, etc., for residual coefficients prior to the current residual coefficient among the current block's residual coefficients may be the same as the number of the current block's largest context-coded bins, etc., and the residual syntax elements, etc., for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag for the residual coefficient. The number of the current block's largest context-coded bins, etc., can be derived based on the width and height of the current block. For example, the context-coded bins for the current block may all be used as bins, etc., of context-coded residual syntax elements, etc., for residual coefficients prior to the current residual coefficient among the current block's residual coefficients, and the residual syntax elements, etc., for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient. For example, if, in the scanning order, the maximum number of context-coded bins for the current block is used for the residual syntax elements for previous residual coefficients of the current residual coefficient, then the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient. The residual syntax elements for the current residual coefficient can be decoded on a bypass basis. That is, the residual syntax elements for the current residual coefficient can be decoded based on a uniform probability distribution. For example, the coefficient level information may represent the absolute value of the coefficient level of the current residual coefficient. The sign flag may represent the sign of the current residual coefficient.For example, if the value of the sign flag is 0, the sign flag can indicate that the coefficient level of the current residual coefficient is a positive value, and if the value of the sign flag is 1, the sign flag can indicate that the coefficient level of the current residual coefficient is a negative value. The coefficient level information may be the abs_remainder mentioned above, and the sign flag may be the coeff_sign_flag mentioned above.

[0316] Furthermore, for example, the residual information may include a transformation skip flag for the current block. The transformation skip flag can indicate whether or not a transformation is applicable to the current block. That is, the transformation skip flag can indicate whether or not a transformation has been applied to the residual coefficients, etc., of the current block. The syntax element representing the transformation skip flag may be the transform_skip_flag described above. For example, if the value of the transformation skip flag is 0, the transformation skip flag can indicate that no transformation is applied to the current block, and if the value of the transformation skip flag is 1, the transformation skip flag can indicate that a transformation has been applied to the current block. For example, if the current block is a transformation skip block, the value of the transformation skip flag for the current block may be 1.

[0317] Furthermore, for example, the image information may include residual information for the current block. For example, the residual information may include residual syntax elements for residual coefficients prior to the current residual coefficient in the scanning sequence. For example, the residual syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.

[0318] For example, the context-coded resistive syntax element may include an effective coefficient flag indicating whether the resistive coefficient is a non-zero resistive coefficient, a parity level flag indicating the parity of the coefficient level for the resistive coefficient, a sign flag indicating the sign for the resistive coefficient, a first coefficient level flag indicating whether the coefficient level is greater than a first critical value, and / or a second coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a second critical value. Furthermore, for example, the context-coded resistive syntax element may include a third coefficient level flag indicating whether the coefficient level is greater than a third critical value, a fourth coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a fourth critical value, and / or a fifth coefficient level flag indicating whether the coefficient level of the resistive coefficient is greater than a fifth critical value. Here, the effective coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the sign flag may be ceff_sign_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. Furthermore, the third coefficient level flag may be abs_level_gt5_flag or abs_level_gtx_flag, the fourth coefficient level flag may be abs_level_gt7_flag or abs_level_gtx_flag, and the fifth coefficient level flag may be abs_level_gt9_flag or abs_level_gtx_flag.

[0319] Furthermore, for example, the residual information may include a bypass-based coded syntax element for the residual coefficient of the current block. The bypass-coded syntax element may include coefficient level information for the value of the current residual coefficient. The coefficient level information may be abs_remainder and / or dec_abs_level. The bypass-coded syntax element may also include the sign flag.

[0320] The decoding device derives the prediction mode of the current block based on the prediction mode information (S1410). Based on the prediction mode information, the decoding device can determine whether interpretation or intraprediction is applied to the current block, and can perform prediction based on this determination.

[0321] The decoding device derives a predicted sample based on the prediction mode (S1420).

[0322] For example, the decoding device can derive a prediction mode to be applied to the current block based on the prediction mode information, and can derive predicted samples of the current block based on the prediction mode. For example, when interpretation is applied to the current block, the decoding device can derive motion information of the current block based on prediction-related information included in the image information, and can derive predicted samples of the current block based on the motion information. Also, for example, when intrapretation is applied to the current block, the decoding device can derive reference samples based on peripheral samples of the current block, and can derive predicted samples of the current block based on the reference samples and the intraprediction mode of the current block. The reference samples, etc., may include upper reference samples, left reference samples, etc., of the current block. For example, if the size of the current block is N×N, and the x-component and y-component of the top-left sample position of the current block are 0, then the left reference sample, etc., may be p[-1][0] to p[-1][2N-1], and the upper reference sample, etc., may be p[0][-1] to p[2N-1][-1].

[0323] The decoding device derives the current residual coefficient based on the residual syntax element, etc., for the current residual coefficient in the current block (S1430). The decoding device can derive the current residual coefficient based on the residual syntax element, etc. The residual syntax element, etc., may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient.

[0324] For example, the absolute level of the current residual coefficient can be derived as the value represented by the coefficient level information for the current residual coefficient, and the sign of the current residual coefficient can be derived as the sign represented by the sign flag.

[0325] On the other hand, for example, the current residual coefficient can be derived without performing level mapping. For example, the number of context-coded residual syntax elements for previous residual coefficients in the current block may be the same as the number of the largest context-coded bins in the current block, and the residual syntax elements for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag for the residual coefficient, and the current residual coefficient can be derived without performing level mapping. Here, deriving the current residual coefficient using only the absolute level information and the sign flag can be referred to as simplified residual data coding. That is, the residual coefficient can be derived based on simplified residual data coding. Furthermore, for example, the context-coded bins for the current block can all be used as bins of context-coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient can include coefficient level information and a sign flag for the current residual coefficient, and the current residual coefficient can be derived without performing level mapping.For example, if, in the scanning order, the maximum number of context-coded bins for the current block is used for the residual syntax elements for previous residual coefficients of the current residual coefficient, then the residual syntax elements for the current residual coefficient may include coefficient level information and a sign flag for the current residual coefficient, and the current residual coefficient can be derived without performing level mapping. Alternatively, for example, previous residual coefficients prior to the current residual coefficient can be derived by performing level mapping.

[0326] On the other hand, for example, the level mapping can represent the scheme shown in Table 19 above. For example, the level mapping can mean the process of deriving the minimum value among the absolute levels of the left-side residual coefficient and the upper-side residual coefficient of the residual coefficient, comparing the minimum value with the absolute level of the residual coefficient, and correcting the absolute level of the residual coefficient based on the minimum value.

[0327] The decoding device derives a residual sample based on the current residual coefficients (S1440). The decoding device can derive a residual sample of the current block based on the current residual coefficients. That is, the decoding device can derive a residual sample of the current block based on the current residual coefficients. For example, if it is derived from the transformation skip flag that no transformation is applied to the current block, i.e., if the value of the transformation skip flag is 1, the decoding device can derive the current residual coefficients as the residual sample of the current block. Alternatively, for example, if it is derived from the transformation skip flag that no transformation is applied to the current block, i.e., if the value of the transformation skip flag is 1, the decoding device can de-quantize the current residual coefficients to derive the residual sample of the current block. Alternatively, for example, if it is derived from the transformation skip flag that a transformation has been applied to the current block, i.e., if the value of the transformation skip flag is 0, the decoding device can de-transform the current residual coefficients to derive the residual sample of the current block. Alternatively, for example, if it is derived that a transformation has been applied to the current block based on the transformation skip flag, i.e., if the value of the transformation skip flag is 0, the decoder can de-quantize the current residual coefficients and de-transform the de-quantized coefficients to derive the residual sample of the current block.

[0328] The decoding device derives the restored sample of the current block based on the predicted sample and the residual sample (S1450).

[0329] For example, a decoding device can derive a restored sample of the current block based on the predicted sample and the residual sample. For example, a decoding device can generate the restored sample by adding the predicted sample and the residual sample.

[0330] As previously mentioned, if necessary, in-loop filtering procedures such as deblocking filtering, SAO, and / or ALF procedures can be applied to the restored picture to improve subjective / objective image quality.

[0331] Figure 15 schematically shows a decoding device that performs the image decoding method relating to this document. The method disclosed in Figure 14 can be performed by the decoding device disclosed in Figure 15. Specifically, for example, the entropy decoding unit of the decoding device in Figure 15 can perform S1400 in Figure 14, the prediction unit of the decoding device in Figure 15 can perform S1410 to S1420 in Figure 14, the residual processing unit of the decoding device in Figure 15 can perform S1430 to S1440 in Figure 14, and the addition unit of the decoding device in Figure 15 can perform S1450 in Figure 14.

[0332] As mentioned in the aforementioned document, it is possible to improve the efficiency of residual coding.

[0333] Furthermore, as per this document, the residual coefficients to which simplified residual data coding is applied can be derived without performing level mapping, thereby reducing coding complexity and improving overall residual coding efficiency.

[0334] Furthermore, according to this document, residual coefficients to which simplified residual data coding has been applied may have a low correlation with surrounding residual coefficients, and therefore the efficiency of level mapping performed based on surrounding residual coefficients is low. Therefore, level mapping can be omitted for the residual coefficients to which the simplified residual data coding has been applied, thereby reducing coding complexity and improving overall residual coding efficiency.

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

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

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

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

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

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

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

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

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

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

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

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

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

Claims

1. In an image decoding method performed by a decoding device, A step of acquiring image information including predictive mode information and residual information via a bitstream, The steps include: deriving the prediction mode of the current block based on the aforementioned prediction mode information; A step of deriving a prediction sample based on the prediction mode, The steps include: deriving the current residual coefficient based on the residual syntax element for the current residual coefficient in the current block; The steps include: deriving a resistive sample based on the current resistive coefficients; The step of deriving a restored sample of the current block based on the residual sample and the predicted sample, The residual information includes the residual syntax element for the current residual coefficient, The number of context-coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context-coded bins of the current block. The residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient. The absolute level of the current residual coefficient is derived as the value indicated by the coefficient level information for the current residual coefficient, and the sign of the current residual coefficient is derived as the sign indicated by the sign flag. The aforementioned current residual coefficients were derived without performing level mapping. The absolute level of the residual coefficient prior to the current residual coefficient is derived based on the effectiveness coefficient flags that indicate whether each of the residual coefficients is a non-zero residual coefficient. The absolute level of the residual coefficient prior to the current residual coefficient is corrected by performing the level mapping. The aforementioned current block is a conversion skip block in the image decoding method.

2. The image decoding method according to claim 1, wherein the context-coded bin for the current block is used entirely as the bin of the context-coded residual syntax element for the residual coefficients prior to the current residual coefficient.

3. In an image encoding method performed by an encoding device, The steps include: deriving prediction samples for the current block based on inter-prediction or intra-prediction; The steps include: deriving the current block's residual sample based on the predicted sample; The steps include: deriving the current resistive coefficient based on the aforementioned resistive sample; The steps include encoding image information including prediction mode information representing the prediction mode of the current block and a residual syntax element for the current residual coefficient, The number of context-coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context-coded bins of the current block. The residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient. The coefficient level information represents the absolute value of the coefficient level of the current residual coefficient, and the sign flag of the current residual coefficient represents the sign of the current residual coefficient. The aforementioned current residual coefficients are encoded without performing level mapping. The absolute level of the residual coefficient prior to the current residual coefficient is corrected by performing the level mapping. The modified absolute level of the residual coefficient prior to the current residual coefficient is encoded based on an effective coefficient flag that indicates whether each of the residual coefficients is a non-zero residual coefficient. The aforementioned current block is an image encoding method, which is a conversion skip block.

4. The image encoding method according to claim 3, wherein the context-coded bin for the current block is used entirely as the bin of the context-coded residual syntax element for the residual coefficients prior to the current residual coefficient.

5. A method for transmitting data for an image, The steps include: deriving prediction samples for the current block based on inter-prediction or intra-prediction; The steps include: deriving the current block's residual sample based on the predicted sample; The steps include: deriving the current resistive coefficient based on the aforementioned resistive sample; A step of encoding image information including prediction mode information representing the prediction mode of the current block and a resistive syntax element for the current resistive coefficient to generate a bitstream, The step of transmitting the data, which includes the bitstream, The number of context-coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context-coded bins of the current block. The residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient. The coefficient level information represents the absolute value of the coefficient level of the current residual coefficient, and the sign flag of the current residual coefficient represents the sign of the current residual coefficient. The aforementioned current residual coefficients are encoded without performing level mapping. The absolute level of the residual coefficient prior to the current residual coefficient is corrected by performing the level mapping. The modified absolute level of the residual coefficient prior to the current residual coefficient is encoded based on an effective coefficient flag that indicates whether each of the residual coefficients is a non-zero residual coefficient. The aforementioned current block is a conversion skip block, in this method.

Citation Information

Patent Citations

  • JPP7657997B

  • JPP7453337B