Conversion coefficient coding method and apparatus in a video / image coding system

JP7914319B2Active Publication Date: 2026-09-01LG ELECTRONICS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2025194302
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-09-20
Filing Date
2025-11-13
Publication Date
2026-09-01
Estimated Expiration
2040-08-31

AI Technical Summary

Benefits of technology

【0010】 本文書の一実施例によると、全般的なビデオ/映像の圧縮効率が向上することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007914319000053
    Figure 0007914319000053
  • Figure 0007914319000054
    Figure 0007914319000054
  • Figure 0007914319000055
    Figure 0007914319000055
Patent Text Reader

Abstract

The present invention relates to a video decoding method performed by a decoding device.SOLUTION: A video decoding method performed by a decoding apparatus according to the present disclosure includes obtaining information indicating a level value of a transform coefficient in a current block from a bitstream, selecting one rice parameter lookup table from among a plurality of rice parameter lookup tables based on the information indicating the level value of the transform coefficient, deriving a rice parameter for the information indicating the level value of the transform coefficient based on the selected rice parameter lookup table, deriving a bin string for the information indicating the level value of the transform coefficient based on the rice parameter, and deriving the level value of the transform coefficient based on the bin string.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present technology relates to a method and apparatus for coding transform coefficients when encoding / decoding video.

Background Art

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

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

[0004] Accordingly, high-efficiency image / video compression technology is required in order to effectively compress, transmit, store, and reproduce information of high-resolution, high-quality images / videos having the above-described various characteristics.

Summary of the Invention

Problem to be Solved by the Invention

[0005] The technical object of this document is to provide a method and apparatus for improving video coding efficiency.

[0006] Another technical objective of this paper is to provide methods and apparatus for improving the efficiency of residual coding.

[0007] Another technical objective of this paper is to provide a method and apparatus that can improve the coding performance of level coding with respect to conversion coefficients in residual coding. [Means for solving the problem]

[0008] According to one embodiment of this document, a video decoding method performed by a decoding device includes the steps of: obtaining information from a bitstream indicating the level value of a transform coefficient in the current block; selecting one rice parameter look-up table from a plurality of rice parameter look-up tables for the information indicating the level value of the transform coefficient; deriving rice parameters for the information indicating the level value of the transform coefficient based on the selected rice parameter look-up table; deriving a bin string for the information indicating the level value of the transform coefficient based on the rice parameters; and deriving the level value of the transform coefficient based on the bin string.

[0009] According to other embodiments of this document, a video decoding method performed by a decoding device includes the steps of: obtaining information from a bitstream indicating the level value of a conversion coefficient in the current block; determining an index value in a rice parameter lookup table for the information indicating the level value of the conversion coefficient; deriving a rice parameter for the information indicating the level value of the conversion coefficient from the rice parameter lookup table based on the index value; deriving a bin string for the information indicating the level value of the conversion coefficient based on the rice parameter; and deriving the level value of the conversion coefficient based on the bin string. [Effects of the Invention]

[0010] According to one embodiment of this document, the overall video / image compression efficiency can be improved.

[0011] According to one embodiment of this document, the efficiency of residual coding can be improved.

[0012] According to one embodiment of this document, the coding performance of level coding with respect to conversion coefficients can be improved with residual coding.

[0013] According to one embodiment of this document, when low and high level values ​​of the conversion coefficients are mixed, higher performance can be provided in lossless or high bit rate (low QP) environments with relatively high level values. [Brief explanation of the drawing]

[0014] [Figure 1] This document schematically shows an example of a video / image coding system to which the embodiments described herein can be applied. [Figure 2] This figure schematically illustrates the configuration of a video / image encoding device to which the embodiments described in this document can be applied. [Figure 3] It is a diagram schematically illustrating the configuration of a video decoding apparatus to which an embodiment of the present document can be applied. [Figure 4] CABAC (Context-Adaptive Binary Arithmetic Coding) for encoding syntax elements is exemplarily illustrated. [Figure 5] Transform coefficients within a 4×4 block are exemplarily illustrated. [Figure 6] An example of an entropy encoding method and related components according to an embodiment of the present document is schematically illustrated. [Figure 7] An example of an entropy encoding method and related components according to an embodiment of the present document is schematically illustrated. [Figure 8] An example of an entropy encoding method according to another embodiment of the present document is schematically illustrated. [Figure 9] An example of an entropy decoding method and related components according to an embodiment of the present document is schematically illustrated. [Figure 10] An example of an entropy decoding method and related components according to an embodiment of the present document is schematically illustrated. [Figure 11] An example of an entropy decoding method according to another embodiment of the present document is schematically illustrated. [Figure 12] A video encoding method according to an embodiment of the present document is illustrated. [Figure 13] A video decoding method according to an embodiment of the present document is illustrated. [Figure 14] An example of a content streaming system to which the embodiments disclosed in the present document can be applied is illustrated. MODE FOR CARRYING OUT THE INVENTION

[0015] Since various modifications may be made to the disclosure of the present document and various embodiments may be provided, specific embodiments are illustrated in the drawings and will be described in detail below. Terminology used in the present document is only used to describe specific embodiments, and is not intended to limit the technical idea of the present document. Singular expressions include the expression "at least one" unless the context clearly indicates a different meaning. In the present document, terms such as "comprising" or "having" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and it should be understood that this does not preclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

[0016] On the other hand, each component in the drawings described in the present document is illustrated independently for convenience of description of different characteristic functions from each other, and does not mean that each component is implemented by separate hardware or separate software from each other. For example, two or more of each component may be combined to form one component, and one component may be divided into a plurality of components. Embodiments in which respective components are integrated and / or separated are also included in the scope of the disclosure of the present document, as long as they do not depart from the essence of the method disclosed in the present document.

[0017] Hereinafter, embodiments of the present document will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same components in the drawings, and overlapping descriptions of the same components will be omitted.

[0018] Figure 1 schematically illustrates an example of a video coding system to which an embodiment of the present document can be applied.

[0019] As shown in Figure 1, the video / image coding system comprises 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 file or streaming form via a digital storage medium or network.

[0020] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, which may consist of a separate device or external component.

[0021] A video source can acquire video / images through processes such as video / image capture, synthesis, or generation. A video source may include video / image capture devices and / or video / image generation devices. Video / image capture devices may include, for example, one or more cameras, or video / image archives containing previously captured video / images. Video / image generation devices may include, for example, computers, tablets, and smartphones, and can generate video / images (electronically). For example, virtual video / images may be generated via a computer, in which case the video / image capture process can be replaced by the process of generating the relevant data.

[0022] An encoding device can encode input video / image data. 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.

[0023] The transmitting unit can transmit encoded video / image information or data output in bitstream format to the receiving unit of a receiving device via a digital storage medium or network in file or streaming format. The digital storage medium can include a variety of storage 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.

[0024] 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 an encoding device.

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

[0026] This document relates to video / image coding. For example, the methods / examples disclosed in this document are applicable to the methods disclosed in the VVC (versatile video coding) standard. Furthermore, the methods / examples disclosed in this document are applicable to the methods disclosed in the 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, H.268, etc.).

[0027] This document presents various examples of video / image coding, and unless otherwise noted, these examples can be combined with each other.

[0028] 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 "slice" or "tile" is a unit that constitutes part of a picture in coding. A slice or tile contains one or more CTUs (coding tree units). A single picture consists of one or more slices or tiles. A single picture consists of one or more tile groups. A tile group contains one or more tiles. A brick represents 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 tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture. The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set.The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A slice includes an integer number of bricks of a picture that 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, tile group / tile group header may also be called slice / slice header.

[0029] 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, or it can represent only the luma component pixel / pixel value, or only the chroma component pixel / pixel value. Alternatively, a sample can refer to a pixel value in the spatial domain, and if such a pixel value is converted to the frequency domain, it can also refer to the conversion coefficient in the frequency domain.

[0030] 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.

[0031] In this document, the terms " / " and "," should be interpreted as "and / or". For example, "A / B" is interpreted as "A and / or B," and "A, B" is interpreted as "A and / or B." Additionally, "A / B / C" means "at least one of A, B, and / or C." Similarly, "A, B, C" also means "at least one of A, B, and / or C."

[0032] Furthermore, in this document, "or" should be interpreted as "and / or." For example, "A or B" may mean 1) only "A," 2) only "B," or 3) both "A and B." In other words, "or" in this document may mean "additionally or alternatively."

[0033] Furthermore, the parentheses used in this document can mean "for example." Specifically, when displayed as "prediction (intra prediction)," it means that "intra prediction" is proposed as an example of "prediction." In other words, "prediction" in this document is not limited to "intra prediction," and "intra prediction" is proposed as an example of "prediction." Also, when displayed as "prediction (i.e., intra prediction)," it means that "intra prediction" is proposed as an example of "prediction."

[0034] In this document, technical features described individually within a single drawing may be embodied individually or simultaneously.

[0035] Figure 2 is a schematic diagram illustrating the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, "video encoding device" includes image encoding devices.

[0036] 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-prediction unit 221 and an intra-prediction unit 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 image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, addition unit 250, and filtering unit 260 described above can be configured by one or more hardware components (e.g., an encoder chipset or processor) depending on the embodiment. The memory 270 may also include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.

[0037] 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, the processing units may be called coding units (CUs). In this case, the coding units 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 according to this disclosure may be performed based on the final coding unit that is not further split. In this case, based on coding efficiency due to image characteristics, the largest coding unit can be 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 may be a unit of sample prediction, and the conversion unit may be a unit for deriving conversion coefficients and / or a unit for deriving a residual signal from conversion coefficients.

[0038] 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.

[0039] The encoding device 200 generates 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 video 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 video signal (original block, original sample array) within the encoder 200 is called the subtraction unit 231. The prediction unit 220 makes predictions for the block to be processed (hereinafter referred to as the current block) and can generate a predicted block that includes predicted samples for the current block. The prediction unit 220 determines whether intra-prediction or inter-prediction is applied on a current block or CU basis. The prediction unit 220 can generate various prediction-related information, such as prediction mode information, as will be described later in the explanation of each prediction mode, and transmit it to the entropy encoding unit 240. Information regarding the prediction can be encoded in the entropy encoding unit 240 and output in the form of a bitstream.

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

[0041] 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 that exist in the current picture and temporally adjacent blocks that exist 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, col CU, etc., and the reference picture containing the temporally adjacent block may be called a collocated picture (colPic). For example, the inter-prediction unit 221 can construct a motion information candidate list based on adjacent blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter-prediction can be performed based on various prediction modes, and for example, in skip mode and merge mode, the inter-prediction 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.

[0042] The prediction unit 220 generates prediction signals based on various prediction methods described later. For example, the prediction unit 200 can apply intra-prediction or inter-prediction for predictions on a single block, and can also apply intra-prediction and inter-prediction simultaneously. This is called combined inter and intra prediction (CIIP). The prediction unit may also be based on an intra-block copy (IBC) prediction mode or a palette mode for predictions on blocks. The IBC prediction mode or palette mode can be used, for example, for content video / video coding such as in games, as in SCC (screen content coding). IBC basically performs predictions within the current picture, but is similar 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 considered 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.

[0043] The prediction signal generated via the prediction unit (including the inter-prediction unit 221 and / or the intra-prediction unit 222) can be used to generate a restored signal or to generate a residual signal.

[0044] The transformation unit 232 can generate transformation coefficients by applying transformation techniques to the residual signal. For example, the transformation techniques include at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT refers to a transformation obtained from a graph when relational information between pixels is represented by this graph. CNT refers to a transformation obtained by generating a prediction signal using all previously reconstructed pixels and based on that. Furthermore, the transformation process may be applied to pixel blocks of the same size and square shape, or to non-square blocks of variable size.

[0045] The quantization unit 233 quantizes the conversion coefficients and transmits them to the entropy encoding unit 240, which encodes the quantized signal (information about the quantized conversion coefficients) and outputs it as a bitstream. The information about the quantized conversion coefficients may also be called residual information. The quantization unit 233 can also rearrange the block-shaped quantized conversion coefficients into a one-dimensional vector form based on the coefficient scan order, and generate information about the quantized conversion coefficients based on the one-dimensional vector form of the quantized conversion coefficients.

[0046] 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. The encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form in units of NAL (network abstraction layer) units. The video / image information further includes 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. In this document, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device are included in video / image information. The video / image information is encoded via the encoding procedure described above and included in the bitstream. The bitstream may be transmitted over a network or stored in a digital storage medium. Here, the network includes broadcast networks and / or communication networks, and the digital storage medium includes various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitting unit (not shown) that transmits and / or stores the signal output from the entropy encoding unit 240 may be configured as an internal / external element of the encoding device 200, or the transmitting unit may be included in the entropy encoding unit 240.

[0047] The quantized conversion coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual sample) is 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 unit 250 adds the reconstructed residual signal to the prediction signal output from the inter-prediction unit 221 or the intra-prediction unit 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). 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 unit 250 may also be called the reconstruction unit or reconstructed block generation unit. The generated reconstructed signal is used for intra-prediction of the next block to be processed in the current picture, and can also be used for inter-prediction of the next picture after filtering, as described later.

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

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

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

[0051] The DPB in memory 270 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 in the current picture has been derived (or encoded) and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 221 for use as motion information of spatially adjacent blocks or motion information of temporally adjacent blocks. Memory 270 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 222.

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

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

[0054] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct the image in accordance with the process by which the video / image information was processed in the encoding device shown in Figure 3. 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. Therefore, the decoding processing unit can be, for example, a coding unit, which can be divided from a coding tree unit or a maximum coding unit according to a quad-tree structure, a binary tree structure, and / or a terminally tree structure. One or more conversion units can be derived from the coding unit. The reconstructed image signal decoded and output via the decoding device 300 can then be reproduced via a playback device.

[0055] The decoding device 300 receives the signal output from the encoding device shown in Figure 2 in the form of a bitstream, and the received signal is decoded by 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 decodes information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC (context-adaptive variable length coding), or CABAC (context-adaptive arithmetic coding), and outputs the values ​​of the syntax elements necessary for image restoration and the quantized values ​​of the conversion coefficients related to the residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using the syntax element information to be decoded and the decoding information of the surrounding and decoded blocks or the symbol / bin information decoded in a previous step, predicts the probability of bin occurrence according to 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, the CABAC entropy decoding method can update the context model after determining the context model by utilizing the decoded symbol / bin information for the context model of the next symbol / bin. The prediction information from the information decoded in the entropy decoding unit 310 is provided to the prediction unit (inter-prediction unit 332 and intra-prediction unit 331), and the residual values ​​that have been entropy decoded in the entropy decoding unit 310, i.e., the quantized conversion coefficients and related parameter information, can be input to the residual processing unit 320.

[0056] The residual processing unit 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). Furthermore, information related to filtering from the information decoded in the entropy decoding unit 310 is provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) that receives signals output from the encoding device may be further configured as an internal / external element of the decoding device 300, and the receiving unit may also be a component of the entropy decoding unit 310. On the other hand, the decoding device according to this document may also be called a video / image / picture decoding device, and the decoding device can be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder includes the entropy decoding unit 310, and the sample decoder includes at least one of the inverse quantization unit 321, inverse transform unit 322, adder unit 340, filtering unit 350, memory 360, inter-prediction unit 332, and intra-prediction unit 331.

[0057] 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) and obtain the transformation coefficients.

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

[0059] The prediction unit 330 makes a prediction for the current block and generates a predicted block that includes prediction samples for the current block. Based on the prediction information output from the entropy decoding unit 310, the prediction unit 330 can determine whether intra-prediction or inter-prediction is applied to the current block, and can determine a specific intra / inter-prediction mode.

[0060] The prediction unit 330 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 may be called combined inter and intra prediction (CIIP). The prediction unit may also be based on an intra-block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content video / movie 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 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 considered an example of intra-coding or intra-prediction. When palette mode is applied, information about the palette table and palette index is included in the video / movie information and signaled.

[0061] The intra-prediction unit 331 can predict the current block by referring to a sample in the current picture. The referenced sample may 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 includes multiple non-directional modes and multiple 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 the surrounding blocks.

[0062] The interprediction unit 332 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by a motion vector on the reference picture. At that time, 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 surrounding blocks and the current block. The motion information includes a motion vector and a reference picture index. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, surrounding blocks include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the interprediction unit 332 can construct a motion information candidate list based on the surrounding 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 information regarding the prediction includes information indicating the interprediction mode for the current block.

[0063] 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.

[0064] The addition 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.

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

[0066] The filtering unit 350 can improve subjective / objective image quality by applying filtering to the restored signal. 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 60, specifically to the DPB of memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter.

[0067] The (modified) restored picture stored in the DPB of memory 360 can be used as a reference picture in 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 is transmitted to the inter-prediction unit 221 for use as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory 360 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 331.

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

[0069] The video / image coding method described in this document can be performed based on the following partitioning structure. Specifically, procedures such as prediction, residual processing ((inverse) transformation, (inverse) quantization, etc.), syntax element coding, and filtering, described later, can be performed based on the CTU, CU (and / or TU, PU) derived from the partitioning structure. The block partitioning procedure is performed in the video splitting unit 210 of the encoding device described above, and the partitioning-related information can be processed (encoded) in the entropy encoding unit 240 and transmitted to the decoding device in bitstream form. The entropy decoding unit 310 of the decoding device derives the block partitioning structure of the current picture based on the partitioning-related information obtained from the bitstream, and can perform a series of procedures for video decoding (e.g., prediction, residual processing, block / picture restoration, in-loop filtering, etc.) based on this. The CU size and TU size may be the same, or multiple TUs may exist within the CU area. On the other hand, the CU size can generally refer to the luma component (sample) CB (coding block) size. The TU size generally refers to the luminous component (sample) TB (transform block) size. The chroma component (sample) CB or TB size can be derived based on the luminous component (sample) CB or TB size by the component ratio according to the picture / video color format (chroma format, e.g., 4:4:4, 4:2:2, 4:2:0, etc.). The TU size can be derived based on maxTbSize. For example, if the CU size is greater than the maxTbSize, multiple TUs (TBs) of the maxTbSize can be derived from the CU, and the transformation / inverse transformation can be performed in units of the TU (TB). Also, for example, when intra-prediction is applied, the intra-prediction mode / type is derived in units of the CU (or CB), and the peripheral reference sample derivation and prediction sample generation procedures can be performed in units of TU (or TB).In this case, one or more TUs (or TBs) can exist within a single CU (or CB) region, and these multiple TUs (or TBs) can share the same intra-prediction mode / type.

[0070] Furthermore, in the video / image coding described in this document, the image processing units can have a hierarchical structure. A single picture can be divided into one or more tiles, bricks, slices, and / or tile groups. A single slice can contain one or more bricks. A single brick can contain one or more CTU rows within a tile. A slice can contain an integer number of bricks in a picture. A single tile group can contain one or more tiles. A single tile can contain one or more CTUs. The CTU can be divided into one or more CUs. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture. A tile group can contain an integer number of tiles obtained by tile raster scanning within a picture. A slice header can carry information / parameters that can be applied to the slice (blocks within the slice). If the encoding / decoding device has a multicore processor, the encoding / decoding procedures for the tiles, slices, bricks, and / or tile groups can be processed in parallel. In this document, slices and tile groups may be used interchangeably. That is, a tile group header may be called a slice header. Here, a slice may have one of the slice types, including intra(I)slice, predictive(P)slice, and bi-predictive(B)slice. For blocks in an I-slice, only intra-predictive prediction may be used for prediction, and inter-predictive prediction may not be used. Of course, in this case as well, it is possible to code and signal the original sample values ​​without prediction. For blocks in a P-slice, either intra-predictive or inter-predictive prediction may be used, and if inter-predictive prediction is used, only uni-predictive prediction may be used.On the other hand, intra-prediction or inter-prediction can be used for blocks within a B-slice, and if inter-prediction is used, up to maximum pair (bi) prediction can be used.

[0071] The encoder determines the tile / tile group, brick, slice, and maximum and minimum coding unit sizes based on the characteristics of the video image (e.g., resolution) or considering coding efficiency or parallel processing, and the bitstream may contain information regarding or that can guide these determinations.

[0072] The decoder can retrieve information such as whether the picture's tiles / tile groups, bricks, slices, and CTUs within a tile have been divided into multiple coding units. Efficiency can be improved by ensuring that this information is retrieved (transmitted) only under specific conditions.

[0073] The slice header (slice header syntax) may include information / parameters that can be commonly applied to the slice. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters that can be commonly applied to one or more pictures. The SPS (SPS syntax) may include information / parameters that can be commonly applied to one or more sequences. The VPS (VPS syntax) may include information / parameters that can be commonly applied to multiple layers. The DPS (DPS syntax) may include information / parameters that can be commonly applied to video in general. The DPS may include information / parameters related to the concatenation of the CVS (coded video sequence).

[0074] In this document, higher-level syntax may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, and slice header syntax.

[0075] Furthermore, information regarding the division and configuration of the tiles / tile groups / bricks / slices, for example, can be configured at the encoding end via the higher-level syntax and transmitted to the decoding device in bitstream form.

[0076] 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 coefficients may be called transformation coefficients. If transformation / inverse transformation is omitted, the transformation coefficients may also be called coefficients or residual coefficients, or for consistency of expression, they may still be called transformation coefficients.

[0077] 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, which may be signaled via residual coding syntax. Transformation coefficients may be derived based on the residual information (or information about the transformation coefficients), and scaled transformation coefficients may be derived via an inverse transformation (scaling) of the transformation coefficients. Residual samples may be derived based on an inverse transformation (transformation) of the scaled transformation coefficients. This may be applied / expressed similarly in other parts of this document.

[0078] As described 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 video restoration and the quantized values ​​of conversion coefficients related to residuals. For example, the coding methods described above can be performed as described later.

[0079] Figure 4 illustrates CABAC (Context-Adaptive Binary Arithmetic Coding) for encoding syntax elements.

[0080] The CABAC encoding process may include a process of converting an input signal to a binary value via binaryization if the input signal is a syntax element that is not a binary value. If the input signal is already a binary value (i.e., the value of the input signal is a binary value), binaryization may be bypassed for that input signal. Here, each binary number that makes up the binary value, whether 0 or 1, can be called a bin. For example, if the binary string after binaryization is 110, then 1, 1, and 0 are each called one bin. The bins for a syntax element can represent the value of the syntax element.

[0081] The binary-evolved bin of syntax elements can be input to a regular coding engine or a bypass coding engine. The regular coding engine can assign a context model that reflects probability values ​​to the bin and code the bin based on the assigned context model. After coding each bin, the regular coding engine can update the context model for that bin. As described above, the coded bin can be called a context-coded bin.

[0082] On the other hand, when the binary-evolved bin of the syntax elements is input to a bypass encoding engine, it can be coded as follows. For example, the bypass encoding engine of the encoding device omits the steps of estimating probabilities for the input bin and updating the probability model applied to the bin after encoding. When bypass encoding is applied, the encoding device can encode the input bin by applying a uniform probability distribution instead of assigning a context model, thereby improving the encoding speed. As described above, the bin being encoded can be called a bypass bin.

[0083] Entropy decoding performs the same process as entropy encoding described above, but in reverse order. For example, when a syntax element is decoded based on a context model, the decoding device can receive the bin corresponding to the syntax element via a bitstream. Then, using the decoding information of the syntax element and the block to be decoded or surrounding blocks, or the information of symbols / bins decoded in previous steps, the context model can be determined. The value of the syntax element can then be derived by predicting the probability of occurrence of the received bin based on the determined context model and performing arithmetic decoding of the bin. Subsequently, the context model of the bin to be decoded next can be updated as the determined context model.

[0084] Furthermore, for example, if syntax elements are bypass-decoded, the decoding device can receive the bin corresponding to the syntax element via the bitstream and decode the input bin by applying a uniform probability distribution. In this case, the procedure for deriving the context model of the syntax element and the procedure for updating the context model applied to the bin after decoding can be omitted.

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

[0086] For example, (quantized) transformation coefficients can be encoded and / or decoded based on syntax elements such as 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_gtX_flag, abs_remainder, coeff_sign_flag, and dec_abs_level. This can be called residual (data) coding or (transformation) coefficient coding. Syntax elements associated with encoding / decoding residual data can be shown as in Table 1 or Table 2 below.

[0087] [Table 1-1]

[0088] Table 1-2

[0089] Table 1-3

[0090] Table 1-4

[0091] Table 1-5

[0092] Table 1-6

[0093] Table 1-7

[0094] Table 2-1

[0095] Table 2-2

[0096] Table 2-3

[0097] Table 2-4

[0098] Table 2-5

[0099] Table 2-6

[0100] Table 2-7

[0101] Table 2-8

[0102] In Tables 1 and 2, transform_skip_flag indicates whether a transformation is skipped in an associated block. The transform_skip_flag is a syntax element of the transformation skip flag. The associated block is either 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, a residual sample can be derived for a CB, and (quantized) transformation coefficients can be derived through transformation and quantization of the residual sample. Information (e.g., syntax elements) that efficiently indicates 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 a CB is not greater than the maximum TB, the size of the CB is the same as the size of the TB, in which case the block being transformed (and quantized) and residual coded can be called either a CB or a TB. On the other hand, if the CB is greater than the maximum TB, the block to be transformed (and quantized) and resistively coded can be called the TB. Below, we will explain that syntax elements related to resistive coding are signaled in units of transformable blocks (TB), but this is merely an example, and as mentioned above, the TB can be used interchangeably with the CB.

[0103] The syntax for residual coding using the aforementioned conversion omission flag is as shown in Table 3 or Table 4.

[0104] [Table 3-1]

[0105] [Table 3-2]

[0106] Table 3-3

[0107] Table 3-4

[0108] Table 4-1

[0109] Table 4-2

[0110] Table 4-3

[0111] Table 4-4

[0112] Table 4-5

[0113] According to this embodiment, residual coding can be branched based on the value of the transform_skip_flag. That is, different syntax elements can be used for residual coding based on the value of the transform_skip_flag (based on whether the transformation can be skipped). The residual coding used when the transformation is not skipped (i.e., when the transformation is applied) can be called Regular Residual Coding (RRC), and the residual coding used when the transformation is not skipped (i.e., when the transformation is not applied) can be called Transform Skip Residual Coding (TSRC). Furthermore, the Regular Residual Coding can also be called General Residual Coding. Furthermore, the Regular Residual Coding can be called the Regular Residual Coding Syntax Structure, and the Transform Skip Residual Coding can be called the Transform Skip Residual Coding Syntax Structure. Tables 1 and 2 show the syntax elements of the residual coding when the value of transform_skip_flag is 0, i.e., when the transformation is applied, and Tables 3 and 4 show the syntax elements of the residual coding when the value of transform_skip_flag is 1, i.e., when the transformation is not applied.

[0114] Specifically, as an example, a conversion omission flag indicating whether a conversion block can be omitted can be parsed, and it can be determined whether the conversion omission flag is 1. If the value of the conversion omission flag is 0, the syntax elements 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, dec_abs_level, and / or coeff_sign_flag for the residual coefficients of the conversion block can be parsed, as shown in Table 1 or Table 2, 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 order can also 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] is an example of the first conversion coefficient level flag (abs_level_gt1_flag), and abs_level_gtx_flag[n][1] is an example of the second conversion coefficient level flag (abs_level_gt3_flag).

[0115] 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 indicates the column position prefix of the last significant coefficient in the scanning order within the conversion block, last_sig_coeff_y_prefix indicates the row position prefix of the last significant coefficient in the scanning order within the conversion block, last_sig_coeff_x_suffix indicates the column position suffix of the last significant coefficient in the scanning order within the conversion block, and last_sig_coeff_y_suffix indicates the row position suffix of the last significant coefficient in the scanning order within the conversion block. Here, the effective coefficient can be the non-zero coefficient. The scan order is a diagonal scan order directed upwards. Alternatively, the scan order can be a horizontal scan order or a 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 a specific intra / inter prediction mode.

[0116] 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 there are currently any non-zero coefficients within the sub-block.

[0117] 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 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 more likely to contain non-zero coefficients, so coded_sub_block_flag can be assumed to have a value of 1 without being encoded.

[0118] 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 subblock can be omitted because it is not necessary to encode sig_coeff_flag for the last non-zero coefficient. Level information encoding can be performed only when sig_coeff_flag is 1, and four syntax elements can be used in the level information encoding process. More specifically, each sig_coeff_flag[xC][yC] can indicate whether the level (value) of the corresponding transformation coefficient at each transformation coefficient position (xC, yC) in the current TB is non-zero. In one embodiment, the sig_coeff_flag can be an example of a syntax element of an effectiveness coefficient flag that indicates whether the quantized transformation coefficient is an effective coefficient that is not zero.

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

[0120]

number

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

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

[0123]

number

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

[0125]

number

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

[0127] The conversion coefficient level value remAbsLevel[n] that should be encoded after par_leve_flag[n] can be updated as shown in the following formula.

[0128]

number

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

[0130]

number

[0131] Furthermore, Table 5 below shows examples related to the aforementioned formula 5.

[0132] [Table 5]

[0133] Here, |coeff[n]| 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.

[0134] As another example, if the value of the conversion omission flag is 1, the syntax elements 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 3 or 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 order 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] is a flag indicating whether the absolute value or level (value) of the conversion coefficient at scanning position n is greater than (j<<1)+1. The aforementioned (j<<1)+1 can, depending on the case, be replaced by a predetermined threshold, such as a first threshold or a second threshold.

[0135] 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 probabilistic states and ranges via bin encoding, resulting in high data dependency and potentially long processing times for reading probabilistic intervals and determining the current state. CABAC's throughput problem can be solved by limiting the number of context-coded bins. For example, as shown in Table 5 above, the sum of bins used to represent sig_coeff_flag[n], abs_level_gtx_flag[n][0], par_level_flag[n], and abs_level_gtx_flag[n][1] can be limited to 1.75 per pixel within a transformation block, depending on the size of the transformation block. In this case, once the encoding device has used all of the limited number of context-coded bins to encode the context element, it can perform bypass coding by binary-coding the remaining coefficients via the binary-coded method described later, without using context coding. In other words, if the number of encoded context coding bins is TU width * TU height * 1.75, then any further sig_coeff_flag[n], abs_level_gtx_flag[n][0], par_level_flag[n], and abs_level_gtx_flag[n][1] that are coded into context coding bins will not be coded, and the |coeff[n]| value can be immediately coded into dec_abs_level[n] as shown in Table 6 below.

[0136] [Table 6]

[0137] In this case, the sign of each coefficient can be coded using a 1-bit symbol called coeff_sign_flag[n].

[0138] Figure 5 illustrates the conversion coefficients within a 4x4 block.

[0139] The 4x4 block in Figure 5 shows an example of quantized coefficients. The block shown in Figure 5 is a 4x4 transformation block, or a 4x4 subblock of an 8x8, 16x16, 32x32, or 64x64 transformation block. The 4x4 block in Figure 5 can represent a luma block or a chroma block. However, this is just one example, and in this embodiment, large block-size (up to 64x64 size) transformations are possible, which is mainly useful for high-resolution video (e.g., 1080p and 4K sequences). High-frequency transformation coefficients can be zeroed out for transformation blocks where the size (width or height or both width and height) is 64, and only low-frequency coefficients can be retained. For example, in an MxN transformation block where M is the block width and N is the block height, when M is 64, only the leftmost 32 columns of transformation coefficients can be retained. Alternatively, when N is 64, only the top 32 rows of transformation coefficients can be retained.

[0140] When the conversion omission mode is used for large-sized blocks, the entire block can be used without zeroing for any value. Because the maximum conversion size configurable by SPS is supported, the encoding device can adaptively select conversion sizes of up to 16, 32, or 64 lengths depending on the specific implementation requirements. Specifically, the binary coding of the last non-zero coefficient position coding is coded based on the reduced TU size, and the context model selection for the last non-zero coefficient position coding can be originally determined by the TU size.

[0141] Figure 5 shows an example of the encoding result for coefficients scanned using the inverse diagonal scan. In Figure 5, n (0 to 15) specifies the scan position of the coefficients obtained by the inverse diagonal scan. When n is 15, it indicates the coefficient of the lower right corner, which is scanned first in the 4x4 block, and when n is 0, it indicates the coefficient of the upper left corner, which is scanned last.

[0142] On the other hand, as mentioned above, 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. Furthermore, the decoding device can decode the syntax element to derive the binaryized value of the syntax element (i.e., the binaryized bin), and can derive the value of the syntax element by inverse binaryizing the binaryized value. The binaryization process can be performed using methods such as the Truncated Rice (TR) binaryization process, the k-th order Exp-Golomb (EGk) binaryization process, the Limited K-th order Exp-Golomb (Limited EGk) binaryization process, or the Fixed-length (FL) binaryization process, which will be described later. Furthermore, the inverse binary evolution process can represent a process that is performed based on the TR binary evolution process, the EGk binary evolution process, the Limited EGK binary evolution process, or the FL binary evolution process to derive the value of the syntax element.

[0143] For example, the TR binary evolution process can be executed as follows.

[0144] The input to the aforementioned TR binary evolution process is the request for the TR binary evolution and the cMax and cRiceParam values ​​for the syntax elements. The output to the aforementioned TR binary evolution process is the TR binary evolution for the value symbolVal corresponding to the bin string.

[0145] For example, if a suffix bin string exists for a syntax element, the TR bin string for that syntax element is a concatenation of the prefix bin string and the suffix bin string. If the suffix bin string does not exist, the TR bin string for that syntax element is the prefix bin string. For example, the prefix bin string can be derived as follows.

[0146] The prefix value of symbolVal can be derived using the following formula.

[0147]

number

[0148] Here, prefixVal can represent the prefix value of symbolVal. The prefix of the TR bin string (i.e., the prefix bin string) can be derived as follows.

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

[0150] For example, the bin string derived by unary binarization of prefixVal is shown in Table 7 below.

[0151] [Table 7]

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

[0153] Furthermore, a suffix bin string of a TR bin string can exist if cMax is greater than symbolVal and cRiceParam is greater than 0. For example, the prefix bin string can be derived as follows.

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

[0155]

number

[0156] Here, suffixVal may indicate a suffix value of the symbolVal.

[0157] A suffix of a TR bin string (i.e., a suffix bin string) can be derived based on an FL binarization process for suffixVal whose cMax value is (1<<cRiceParam)-1.

[0158] When the value of the input parameter cRiceParam is 0, the TR binarization is exactly a truncated unary binarization, and a cMax value equal to the largest possible value of the syntax element being decoded is always used. (For the input parameter cRiceParam=0,the TR binarization is exactly a truncated unary binarization and it is always invoked with a cMax value equal to the largest possible value of the syntax element being decoded.)

[0159] On the other hand, the EGk binarization process can be performed as follows.

[0160] The input of the EGk binarization process is a request for EGk binarization, and the output of the EGk binarization process is EGk binarization for the value symbolVal corresponding to a bin string.

[0161] A bit string of the EGk binarization process for symbolVal can be derived as follows.

[0162]

Table 8

[0163] Referring to Table 8, the binary value X can be appended to the end of the bin string via each call of put(X), where X is either 0 or 1.

[0164] Furthermore, the Limited EGk binary evolution process can be executed as follows.

[0165] The input to the Limited EGk binary process is the request for the Limited EGk binary and the rice parameter `riceParam`. The output of the Limited EGk binary process is the Limited EGk binary for the value `symbolVal` associated with the corresponding bin string.

[0166] The bin string for the Limited EGk binary evolution process for symbolVal can be derived as follows:

[0167] [Table 9]

[0168] Referring to Table 9, the binary value X can be appended to the end of the bin string via each call to put(X), where X is either 0 or 1.

[0169] The variables log2TransformRange and maxPrefixExtensionLength can be derived as follows.

[0170]

number

[0171] Furthermore, the FL binary evolution process can be executed as follows:

[0172] The input to the FL binary process is the request for the FL binary and the cMax value for the syntax element. The output of the FL binary process is the FL binary for the value symbolVal corresponding to the bin string.

[0173] FL binary can be constructed using a bin string having a fixed length of bits for the symbol value symbolVal. Here, the fixed length can be derived as shown in the following formula.

[0174]

number

[0175] That is, a bin string for a symbol value symbolVal can be derived via FL binary, and the bin length (i.e., number of bits) of the bin string is fixed.

[0176] The bin indexing for FL binary uses a method that increases in order from the most significant bit to the least significant bit. For example, the bin index associated with the most significant bit is binIdx=0.

[0177] On the other hand, the binary process for the syntax element abs_remainder[n] in the residual information can be performed as follows.

[0178] The input to the binary evolution process for abs_remainder[n] is a request for the binary evolution of the syntax element abs_remainder[n], a color component index cIdx, a luma position (x0, y0) indicating the upper left sample of the current luma transformation block relative to the upper left luma sample of the picture, a current coefficient scan position (xC, yC), the binary logarithm of the transformation block width longTbWidth, and the binary logarithm of the transformation block height log2TbHeight. The output of the binary evolution process for abs_remainder is the binary evolution of abs_remainder (i.e., the binary-evolved bin string of abs_remainder). The available bin string for abs_remainder can be derived through the binary evolution process.

[0179] The Rice parameter cRiceParam for the abs_remainder[n] can be derived through a Rice parameter derivation process that takes the hue component index 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) as inputs. A detailed explanation of the Rice parameter derivation process will be given later.

[0180] The cMax for the currently coded abs_remainder[n] can be derived based on the rice parameter cRiceParam. For example, cMax can be derived as shown in the following formula.

[0181]

number

[0182] On the other hand, the binary representation of the syntax element abs_remainder[n], i.e., the bin string for abs_remainder[n], is the concatenation of the prefix bin string and the suffix bin string if a suffix bin string exists. If the suffix bin string does not exist, the bin string for abs_remainder[n] is the prefix bin string.

[0183] For example, the prefix bin string for abs_remainder[n] can be derived as follows:

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

[0185]

number

[0186] The prefix bin string of abs_remainder[n] can be derived via a TR binary process on prefixVal using cMax and cRiceParam as inputs.

[0187] If the prefix bin string is the same as a bit string where all bits are 1 and the bit length is 6, then the suffix bin string of abs_remainder[n] can exist, and this can be derived as follows.

[0188] The suffix value suffixVal of abs_remainder[n] can be derived as shown in the following formula.

[0189]

number

[0190] The suffix bin string of abs_remainder[n] can be derived via a Limited EGk binary process for the binary evolution of suffixVal, using cRiceParam+1 and cRiceParam as inputs.

[0191] The Rice parameters for abs_remainder[n] can be derived through the following process.

[0192] The inputs to the Rice parameter derivation process are the base level, 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 indicate 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 is the Rice parameter cRiceParam.

[0193] For example, based on the array AbsLevel[x][y] for a transformation block having a given component index cIdx and upper-left luma position (x0, y0), the variable locSumAbs can be derived by the pseudocode disclosed in the table below.

[0194] [Table 10]

[0195] In Table 10, when baseLevel is 0, the variable s is set to Max(0, QState-1), and the rice parameter cRiceParam and the variable ZeroPos[n] can be derived from the variables locSumAbs, trafoSkip, and s as shown in Table 11 below. When baseLevel is greater than 0, the rice parameter cRiceParam can be derived from the variables locSumAbs and trafoSkip as shown in Table 11.

[0196] [Table 11]

[0197] On the other hand, the binary evolution process for the syntax element dec_abs_level among the residual information can be performed as follows.

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

[0199] The output of the binary evolution process for dec_abs_level is the binary evolution of dec_abs_level (i.e., the binary-evolved bin string of dec_abs_level). The available bin string for dec_abs_level can be derived through the binary evolution process.

[0200] The Rice parameter cRiceParam for dec_abs_level[n] can be derived through a Rice parameter derivation process that takes the hue component index cIdx, luma position (x0, y0), 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 as inputs. A detailed explanation of the Rice parameter derivation process will be given later.

[0201] Furthermore, for example, the cMax for dec_abs_level[n] can be derived based on the rice parameter cRiceParam. The cMax can be derived as shown in equation 10.

[0202] On the other hand, the binary representation of dec_abs_level[n], i.e., the bin string for dec_abs_level[n], is the concatenation of the prefix bin string and the suffix bin string if a suffix bin string exists. Also, if the suffix bin string does not exist, the bin string for dec_abs_level[n] is the prefix bin string.

[0203] For example, the prefix bin string can be derived as follows.

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

[0205]

number

[0206] The dec_abs_level[n] prefix bin string can be derived via a TR binary process on prefixVal using cMax and cRiceParam as inputs.

[0207] If the prefix bin string is the same as a bit string where all bits are 1 and the bit length is 6, then the suffix bin string of dec_abs_level[n] can exist, which can be derived as follows.

[0208] The suffix value suffixVal of the aforementioned dec_abs_level[n] can be derived as shown in the following formula.

[0209]

number

[0210] The suffix bin string of dec_abs_level[n] can be derived via a Limited EGk binary process for the binary evolution of suffixVal, where the exp-Golomb order k is set to cRiceParam+1.

[0211] The Rice parameters for dec_abs_level[n] can be derived using the pseudocode in Table 10.

[0212] On the other hand, the aforementioned Regular Residual Coding (RRC) and Transform Skip Residual Coding (TSRC) may have the following differences.

[0213] For example, the rice parameter cRiceParam of the syntax element abs_remainder[] in regular residual coding can be derived as described above, but the rice parameter cRiceParam of the syntax element abs_remainder[] in transform skip residual coding can be derived to 1. That is, for example, if transform skip is applied to the current block (e.g., current TB), the rice parameter cRiceParam for the transform skip residual coding abs_remainder[] for the current block can be derived to 1.

[0214] Furthermore, referring to Tables 1 to 4, in regular residual coding, abs_level_gtx_flag[n][0] and / or abs_level_gtx_flag[n][1] can be signaled, while in conversion-omitted residual coding, 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 is a flag indicating whether the coefficient level is greater than a first threshold (e.g., 1), the second coefficient level flag is a flag indicating whether the coefficient level is greater than a second threshold (e.g., 3), the third coefficient level flag is a flag indicating whether the coefficient level is greater than a third threshold (e.g., 5), the fourth coefficient level flag is a flag indicating whether the coefficient level is greater than a fourth threshold (e.g., 7), and the fifth coefficient level flag is a flag indicating whether the coefficient level is greater than a fifth threshold (e.g., 9).

[0215] As described above, compared to regular residual coding, the conversion-omitted residual coding 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].

[0216] Furthermore, for example, in regular residual coding, the syntax element coeff_sign_flag can be bypassed, while in conversion-omitted residual coding, the syntax element coeff_sign_flag can be bypassed or contextually coded.

[0217] The following description is provided to illustrate a specific example of this document. The names of specific devices and signals / information used below are illustrative examples only; therefore, the technical features of this specification are not limited to the specific names used below.

[0218] The following describes an efficient method for deriving Rice parameters for binary coding of information indicating the level value (or absolute value) of a transformation coefficient (e.g., the syntax element dec_abs_level indicating the level value of the transformation coefficient, the syntax element abs_remainder indicating the residual level value of the transformation coefficient, etc.).

[0219] The Rice parameter is a variable used for binarizing level values of transform coefficients. When residual data coding (regular residual coding) for a transform block is applied to the current block, a Rice parameter look-up table as shown in Table 12 below is used, and when residual data coding for a transform skip block (transform skip residual coding) is applied to the current block, a Rice parameter look-up table as shown in Table 13 below is used. Herein, the Rice parameter look-up table may be referred to as a table related to Rice parameters or a table used for determining Rice parameters, or may alternatively be referred to as a table related to Rice parameter candidates.

[0220]

Table 12

[0221]

Table 13

[0222] In Tables 12 and 13, locSumAbs is a value derived based on a sum of level value(s) of peripheral transform coefficient(s) of a current transform coefficient, and may be derived by the pseudo-code in Table 10 as an example.

[0223] In the binarization step of level values, an encoding device and a decoding device: the smaller the value of the Rice parameter cRiceParam is, the more a shorter code word is assigned to a smaller level value to generate a code word that is favorable for binarization of a small level value; and the larger the value of the Rice parameter is, the more a shorter code word is assigned to a larger level value to generate a code word that is favorable for binarization of a large level value.

[0224] However, the average level values ​​generated by level coding, or the frequently occurring level values, differ depending on the characteristics of the video and / or the presence / type of syntax coded prior to the level values ​​of the conversion coefficients. Furthermore, in high-bit-rate environments coded with lossless (or nearest-neighbor lossless) coding or low quantization parameters, level values ​​with different characteristics may be mixed together. In such cases, it is more efficient to use multiple rice parameter lookup tables than to use a single rice parameter lookup table to derive the rice parameters.

[0225] Therefore, according to one embodiment, two or more rice parameter lookup tables can be used in each case: when regular residual coding for conversion blocks is applied to the current block, and when residual coding for conversion-omitted blocks is applied to the current block. Alternatively, two or more rice parameter lookup tables can be used regardless of whether regular residual coding or conversion-omitted residual coding is applied to the current block.

[0226] In this case, for example, the encoding device can derive the rice parameters by selecting at least one table from a number of rice parameter lookup tables based on the configuration of the syntax elements (presence, type, etc.) that are coded prior to the syntax elements indicating the level value of the conversion coefficients (e.g., dec_abs_level, abs_remainder, etc.). Alternatively, the encoding device can derive the rice parameters by selecting at least one table from a number of rice parameter lookup tables based on whether the number of context-coded bins encoded / decoded in residual data coding exceeds the maximum number of available context-coded bins set by the context-coded bin constraint algorithm.

[0227] Here, the numerous rice parameter lookup tables may have different minimum and maximum rice parameter values, and the update positions of the rice parameter values ​​may differ from each other. Furthermore, the syntax element coded prior to the syntax element indicating the level value of the conversion coefficient may include at least one of sig_coeff_flag, abs_level_gtx_flag, par_level_flag, or coeff_sign_flag. The maximum number of usable context coding bins set by the context coding bin constraint algorithm may correspond to remBinsPass1 in Table 1 or Table 2 in the case of residual coding for conversion blocks, and to MaxCcbs in Table 3 in the case of residual coding for conversion omission blocks.

[0228] For example, if there are two rice parameter lookup tables, the first rice parameter lookup table "A" will have m as the minimum value of the rice parameter. A It has n as the maximum value of the rice parameter. AThe second rice parameter lookup table "B" has m as the minimum value of the rice parameter. B It has n as the maximum value of the rice parameter. B It can have. For improved level coding performance, m B is, m A It can be set to a larger value, n B is, n A It can be set to a larger value. For example, the first rice parameter lookup table can be configured as shown in Table 14 below, and the second rice parameter lookup table can be configured as shown in Table 15 below.

[0229] [Table 14]

[0230] [Table 15]

[0231] In Table 14, the minimum and maximum values ​​of the rice parameters are 0 and 2, respectively, while in Table 15, the minimum and maximum values ​​of the rice parameters are 1 and 3, respectively. That is, the rice parameter lookup table in Table 15 has larger minimum and maximum values ​​than the rice parameter lookup table in Table 14. Also, in Table 14, the rice parameter values ​​are updated when the locSumAbs value is 12 and 24, while in Table 15, the rice parameter values ​​are updated when the locSumAbs value is 7 and 18. That is, the rice parameter lookup tables in Table 14 and Table 15 have different update locations for the rice parameter values.

[0232] Therefore, the Rice parameter lookup table in Table 15 may have advantages over the Rice parameter lookup table in Table 14 when relatively large level values ​​appear frequently or when the average level value or coefficient of the lower block being encoded is large.

[0233] The rice parameter lookup tables in Tables 14 and 15 are merely examples of the various rice parameter lookup tables that can be used in this embodiment. When applying this embodiment, the rice parameter lookup tables are not limited to these, and tables with different minimum, maximum, and update positions for the rice parameters can be used.

[0234] On the other hand, the encoding device can signal a syntax element (or flag) for transmitting information about the rice parameter lookup table currently used for the conversion coefficients from among multiple rice parameter lookup tables. The syntax element can be signaled on a coefficient group (CG) basis, or on a conversion block or conversion omission (coding) block basis. For example, if two rice parameter lookup tables are used, a value of 0 in the syntax element indicates the first rice parameter lookup table, and a value of 1 indicates the second rice parameter lookup table. The syntax element can be binarized using one of various methods, such as fixed-length binarization or truncated unary binarization.

[0235] When a decoding device obtains a syntax element (or flag) from the bitstream that indicates information about a rice parameter lookup table, it can select the rice parameter lookup table indicated by the syntax element from among a number of rice parameter lookup tables and derive the rice parameter for the current conversion coefficient based on this.

[0236] Alternatively, the decoding device can infer or derive a rice parameter lookup table used for level coding of the current transformation coefficient (or coefficient group, transformation block, or coding block) from among many rice parameter lookup tables by utilizing information already provided, such as the configuration of syntax elements coded prior to the syntax element indicating the level value of the current transformation coefficient (e.g., dec_abs_level, abs_remainder, etc.) (presence and type of syntax elements, etc.), whether the number of context coding bins coded / decoded in residual data coding exceeds the maximum number of available context coding bins set by the context coding bin constraint algorithm, whether lossless or near lossless coding is performed, or quantization coefficient information. In this case, no syntax elements or flags indicating information about the rice parameter lookup table used for the current transformation coefficient are signaled.

[0237] For example, whether the number of context-coded bins encoded / decoded by residual data coding exceeds the maximum number of available context-coded bins (remBinsPass1 or MaxCcbs) set by the context-coded bin constraint algorithm may be used to select the rice parameter lookup table. In this case, if the number of context-coded bins encoded / decoded by residual data coding exceeds the maximum number of available context-coded bins, a simplified syntax configuration different from the syntax configuration already used in residual coding may be used.

[0238] For example, in residual data coding for a transformation block, (i) if the number of signed / decoded context coding bins does not exceed remBinsPass1, sig_coeff_flag, abs_level_gtx_flag[0], par_level_flag, and abs_level_gtx_flag[1] are coded prior to abs_remainder, which indicates the residual level value of the transformation coefficient. However, (ii) if the number of signed / decoded context coding bins exceeds remBinsPass1, there are no syntax elements to be signed / decoded prior to the coding of the syntax element (dec_abs_level) for the level value of the transformation coefficient. Therefore, in case (ii), the average level value is larger than in case (i) because there are no syntax elements to be signed / decoded prior to the level value coding. Therefore, in case (i), a rice parameter lookup table that generates codewords favorable to small level values ​​can be assigned, as shown in Table 14, and in case (ii), a rice parameter lookup table that generates codewords favorable to large level values ​​can be assigned, as shown in Table 15. Thus, using the remBinsPass1 value, which is already given information, to determine the rice parameter lookup table has the advantage that additional flags or syntax element coding / decoding to know the table information is unnecessary.

[0239] As another example, if the number of context-encoded bins encoded / decoded in residual data coding for the transformation omission mode exceeds MaxCcbs, the existing syntax configuration can be simplified. Some syntax elements of sig_coeff_flag, coeff_sign_flag, abs_level_gtx_flag[0], par_level_flag, abs_level_gtx_flag[1], abs_level_gtx_flag[2], abs_level_gtx_flag[3], abs_level_gtx_flag[4], which are encoded / decoded in the existing transformation omission residual data coding, may be omitted or not encoded / decoded for the sake of encoding performance or complexity reduction. In this case as well, since the average level value changes between the existing syntax configuration and the simplified syntax configuration, using MaxCcbs information and / or coefficient position information to determine the Rice parameter look-up table can provide better encoding performance. Thus, using the already given information, MaxCcbs and coefficient position information, to determine the rice parameter lookup table has the advantage of eliminating the need for additional flags or syntax encoding / decoding to know the table information.

[0240] As another example, whether lossless or near-lossless coding is applied can be used to determine the Rice parameter lookup table without additional encoding / decoding of flags or syntax. Lossless or near-lossless coding can be performed in units of pictures, slices, CU blocks or TU blocks, and generally has larger level values of residual data than lossy coding. Accordingly, the decoding apparatus can use whether a current picture, slice, CU block or TU block is losslessly or near-losslessly coded in determining the Rice parameter lookup table, which also does not require additional encoding / decoding of flags or syntax. For example, when lossless or near-lossless coding is not performed, the decoding apparatus derives a Rice parameter using a Rice parameter lookup table having relatively small minimum / maximum Rice parameter values as shown in Table 14, and when lossless or near-lossless coding is performed, the decoding apparatus can derive the Rice parameter using a Rice parameter lookup table having relatively large minimum / maximum Rice parameter values as shown in Table 15.

[0241] As another example, when block-based variable quantization is used, quantization coefficient information can be used to select the Rice parameter lookup table. In general, large level values frequently occur when the quantization coefficient is low, and small level values frequently occur when the quantization coefficient is high. The same applies to average level values. Accordingly, for example, when the value of the quantization coefficient is equal to or greater than a threshold, the decoding apparatus derives a Rice parameter using a Rice parameter lookup table having relatively small minimum / maximum Rice parameter values as shown in Table 14, and when the value of the quantization coefficient is smaller than the threshold, the decoding apparatus can derive the Rice parameter using a Rice parameter lookup table having relatively large minimum / maximum Rice parameter values as shown in Table 15.

[0242] On the other hand, in another embodiment, a method can be used to achieve the same effect as using multiple rice parameter lookup tables by using one rice parameter lookup table for level coding. For example, the encoding and decoding devices can determine the index of the rice parameter lookup table based on whether certain conditions are met. Here, whether the certain conditions are met can be determined based on the configuration of the syntax coded prior to the syntax element indicating the level value of the conversion coefficient (presence, type, etc. of the syntax element), whether the number of context coding bins coded / decoded in residual data coding exceeds the maximum number of usable context coding bins set by the context coding bin constraint algorithm, whether lossless or proximity lossless coding is applied, and whether the sum of the level values ​​of the peripheral coefficients (locSumAbs) of the current conversion coefficient is greater than the threshold or the size of the table (maximum value of the rice parameter lookup table locSumAbs). The aforementioned specific conditions can also be applied to embodiments that use multiple rice parameter lookup tables. In other words, when selecting one rice parameter lookup table from among many rice parameter lookup tables in order to derive the rice parameter for the conversion coefficient, the aforementioned specific conditions can be used to determine whether they are met.

[0243] In an embodiment where a single rice parameter lookup table is used to derive the rice parameter for the conversion coefficient, the value of the rice parameter can be determined, for example, by the following formula, if the specific conditions are met.

[0244]

number

[0245]

number

[0246] Here, RiceParamTable refers to the rice parameter lookup table. index indicates the index value of the rice parameter lookup table. The index value can be determined, for example, based on locSumAbs derived by the pseudocode in Table 10, or based on a standard index selection method.

[0247] Referring to equations 15 and 16, if the aforementioned specific conditions are not met, the encoding and decoding devices can derive the value by reading the rice parameter corresponding to the index value from the rice parameter lookup table set to the base. If the aforementioned specific conditions are met, a shift and / or offset can be used. Here, the shift and / or offset can be 0, a positive value, or a negative value. If the shift is positive, a rice parameter value greater than the rice parameter selected by the index in the rice parameter lookup table can be derived. If the shift is negative, a rice parameter value smaller than the rice parameter selected by the index in the rice parameter lookup table can be derived.

[0248] For example, in this embodiment, a rice parameter lookup table like the one shown in Table 16 below can be used.

[0249] [Table 16]

[0250] Referring to Table 16, if the index is 3 and the specific conditions are not met, a rice parameter value of 0 is derived. If the specific conditions are met, the index is 3, and the shift is 1 (offset is 0), a rice parameter value of 1 is derived despite the index being 3.

[0251] On the other hand, if the offset is a positive number, a rice parameter value greater than the maximum rice parameter value in the rice parameter lookup table can be derived.

[0252] For example, when the rice parameter lookup table in Table 16 is used, if the index is 31 and the aforementioned specific conditions are met, the rice parameter value derived is 3. If the aforementioned specific conditions are met and the offset is 2 (shift is 0), the rice parameter value derived is 5, even though the index is 31. In other words, when an offset is used, it is possible to derive a rice parameter value higher than the maximum rice parameter value defined in the rice parameter lookup table. Therefore, while the rice parameter lookup table in Table 16 can only derive rice parameters from order 0 to 3, when an offset is used, the usable range of rice parameters can be increased from order 0 to 5.

[0253] Thus, binarization can be efficiently performed up to high level values ​​through the Maximum Rice parameter extension. Therefore, this embodiment can have coding advantages not only in general coding environments but also in high-bitrate environments (using low quantization parameters), nearby lossless, and lossless environments. Furthermore, according to this embodiment, there is no need to send additional rice parameter lookup tables and / or additional syntax.

[0254] Figures 6 and 7 schematically show an example of an entropy encoding method and related components according to one embodiment of this document.

[0255] The rice parameter derivation method disclosed in Figure 6 can be performed by the encoding device 200 disclosed in Figures 2 and 7. Specifically, for example, steps S600 to S620 in Figure 6 can be performed by the rice parameter derivation unit 241 of the entropy encoding unit 240. Step S630 in Figure 6 can be performed by the binary conversion unit 242 of the entropy encoding unit 240, and step S640 in Figure 6 can be performed by the entropy encoding processing unit 243 of the entropy encoding unit 240.

[0256] The entropy encoding method disclosed in Figure 6 may include the embodiments described in detail in this document.

[0257] Referring to Figures 6 and 7, the entropy encoding unit 240 performs a residual coding procedure for (quantized) transformation coefficients. Here, transformation coefficients can be used interchangeably with residual coefficients. The entropy encoding unit 240 can residual code (quantized) transformation coefficients within the current block (current CB or current TB) according to the scan order. The entropy encoding unit 240 can generate and encode various syntax elements relating to residual information, for example, as shown in Tables 1 to 4. As an example, the Rice parameter derivation unit 241 of the entropy encoding unit 240 can generate (or derive) information indicating the level value of the current transformation coefficient (quantized transformation coefficient or current (quantized) residual coefficient) within the current block (S600). Here, the information indicating the level value of the current transformation coefficient may include at least one of abs_remainder[n] or dec_abs_level[n]. The value of abs_remainder[n] can be derived based on values ​​such as sig_coeff_flag[xC][yC], abs_level_gtx_flag[n][0], par_level_flag[n], and abs_level_gtx_flag[n][1]. The value of dec_abs_level[n] can be derived as the level value of the conversion coefficient. When the number of predetermined context coding bins in the relevant block (CU or TU) reaches a certain threshold according to the scan order, the encoding device can code the level values ​​of subsequent conversion coefficients based on dec_abs_level[n].

[0258] The rice parameter derivation unit 241 of the entropy encoding unit 240 can configure multiple rice parameter lookup tables and can select one of these tables for information indicating the level value of the conversion coefficients (S610). For example, the rice parameter derivation unit 241 of the entropy encoding unit 240 can select a rice parameter lookup table from among many rice parameter lookup tables to be used for level coding of the current conversion coefficient (or coefficient group or conversion block or coding block) by utilizing already given information such as the configuration of syntax elements coded prior to the syntax element indicating the level value of the conversion coefficient (presence or absence of syntax elements, type, etc.), whether the number of context coding bins coded / decoded in residual data coding exceeds the maximum number of usable context coding bins set by the context coding bin constraint algorithm, whether lossless or near lossless coding is performed, or quantization coefficient information. The selection information for the relevant rice parameter lookup table can be implicitly or explicitly signaled. For example, the selection information can correspond to syntax elements for transmitting information indicating a rice parameter lookup table selected by the encoding device.

[0259] The rice parameter derivation unit 241 of the entropy encoding unit 240 can derive rice parameters for information indicating the level value of the current conversion coefficient (abs_remainder[n] or dec_abs_level[n]) based on the selected rice parameter lookup table and the peripheral (or reference) conversion coefficients of the current conversion coefficient (S620). Specifically, the rice parameter derivation unit 241 of the entropy encoding unit 240 can derive rice parameters for the current scanning position (or its coefficients) using the selected rice parameter lookup table based on the locSumAbs described above. The locSumAbs can be derived based on the AbsLevel and / or sig_coeff_flag of the peripheral conversion coefficient. It will be obvious to those skilled in the art that the procedure for deriving the rice parameters can be omitted for sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., which are binary converted to a fixed length without using rice parameters. For the aforementioned sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., other binary evolution methods that do not use Rice parameter-based binary evolution can be performed.

[0260] The binary evolution unit 242 of the entropy encoding unit 240 can perform binary evolution based on the derived Rice parameters to derive a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S630). The length of the bin string can be adaptively determined by the derived Rice parameters.

[0261] The entropy encoding processing unit 243 of the entropy encoding unit 240 can perform entropy encoding based on a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S640). The entropy encoding processing unit 243 of the entropy encoding unit 240 can perform context-based entropy encoding of the bin string based on the CABAC (context-adaptive arithmetic coding) entropy coding technique, and the output can be included in a bitstream. In this case, the encoding device can derive context information for each bin of the bin string, entropy code it, and update the bin-specific context information. As described above, the bitstream can include various information for video decoding, such as prediction information, in addition to residual information including information for abs_remainder[n] or dec_abs_level[n]. The bitstream can further include selection information for the Rice parameter table. The bitstream can be transmitted to a decoding device via a (digital) storage medium or network.

[0262] Figure 8 schematically shows an example of an entropy encoding method according to other embodiments of this document.

[0263] The rice parameter derivation method disclosed in Figure 8 can be performed by the encoding device 200 disclosed in Figures 2 and 7. Specifically, for example, steps S800 to S820 in Figure 8 can be performed by the rice parameter derivation unit 241 of the entropy encoding unit 240. Step S830 in Figure 8 can be performed by the binary conversion unit 242 of the entropy encoding unit 240, and step S840 in Figure 8 can be performed by the entropy encoding processing unit 243 of the entropy encoding unit 240.

[0264] The entropy encoding method disclosed in Figure 8 may include the embodiments described in detail in this document.

[0265] Referring to Figures 7 and 8, the entropy encoding unit 240 performs a residual coding procedure for (quantized) transformation coefficients. Here, transformation coefficients can be used interchangeably with residual coefficients. The entropy encoding unit 240 can residual code (quantized) transformation coefficients within the current block (current CB or current TB) according to the scan order. The entropy encoding unit 240 can generate and encode various syntax elements relating to residual information, for example, as shown in Tables 1 to 4. As an example, the Rice parameter derivation unit 241 of the entropy encoding unit 240 can generate (or derive) information indicating the level value of the current transformation coefficient (quantized transformation coefficient or current (quantized) residual coefficient) within the current block (S800). Here, the information indicating the level value of the current transformation coefficient may include at least one of abs_remainder[n] or dec_abs_level[n]. The value of abs_remainder[n] can be derived based on values ​​such as sig_coeff_flag[xC][yC], abs_level_gtx_flag[n][0], par_level_flag[n], and abs_level_gtx_flag[n][1]. The value of dec_abs_level[n] can be derived as the level value of the conversion coefficient. When the number of predetermined context coding bins in the relevant block (CU or TU) reaches a certain threshold according to the scan order, the encoding device can code the level values ​​of subsequent conversion coefficients based on dec_abs_level[n].

[0266] The rice parameter derivation unit 241 of the entropy encoding unit 240 can determine the index value of the rice lookup table for the information indicating the level value of the conversion coefficient (S810). For example, the rice parameter derivation unit 241 of the entropy encoding unit 240 can determine the index value of the rice parameter lookup table based on the configuration of the syntax element that is coded prior to the syntax element indicating the level value of the conversion coefficient (presence or absence of syntax elements, type, etc.), whether the number of context coding bins coded / decoded in residual data coding exceeds the maximum number of usable context coding bins set by the context coding bin constraint algorithm, whether lossless or near lossless coding is performed, quantization coefficient information (value), or whether the sum of the level values ​​of the peripheral coefficients of the current conversion coefficient is greater than a threshold (or the size of the rice parameter lookup table), or it can change the index value by adding a shift to the index value.

[0267] The rice parameter derivation unit 241 of the entropy encoding unit 240 can derive a rice parameter for information indicating the level value of the current conversion coefficient (abs_remainder[n] or dec_abs_level[n]) from the rice parameter lookup table based on the index value (S820). For example, the rice parameter derivation unit 241 of the entropy encoding unit 240 can derive a rice parameter for the current scanning position (or its coefficient) based on the index value using the aforementioned formulas 15 and / or 16. When formula 16 is used, the value of the rice parameter can be changed to a value obtained by adding an offset value to the index value. The index value can be derived based on the aforementioned locSumAbs or determined based on a standard index selection method. The locSumAbs can be derived based on the AbsLevel and / or sig_coeff_flag of the peripheral conversion coefficient.

[0268] It is obvious to those skilled in the art that the procedure for deriving the aforementioned Rice parameters can be omitted for sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., which are binary converted to a fixed length without using Rice parameters. For sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., other binary conversion methods that do not use Rice parameter-based binary conversion can be performed.

[0269] The binary evolution unit 242 of the entropy encoding unit 240 can perform binary evolution based on the derived Rice parameters to derive a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S830). The length of the bin string can be adaptively determined by the derived Rice parameters.

[0270] The entropy encoding processing unit 243 of the entropy encoding unit 240 can perform entropy encoding based on a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S840). The entropy encoding processing unit 243 of the entropy encoding unit 240 can perform context-based entropy encoding of the bin string based on the CABAC (context-adaptive arithmetic coding) entropy coding technique, and the output can be included in a bitstream. In this case, the encoding device can derive context information for each bin of the bin string, entropy code it, and update the bin-specific context information. As described above, the bitstream can include various information for video decoding, such as prediction information, in addition to residual information including information for abs_remainder[n] or dec_abs_level[n]. The bitstream can further include selection information for the Rice parameter table. The bitstream can be transmitted to a decoding device via a (digital) storage medium or network.

[0271] Figures 9 and 10 schematically show an example of an entropy decoding method and related components according to the embodiments described in this document.

[0272] The rice parameter derivation method disclosed in Figure 9 can be performed by the decoding device 300 disclosed in Figures 3 and 10. Specifically, for example, steps S900 to S920 in Figure 9 can be performed by the rice parameter derivation unit 311 of the entropy decoding unit 310. Step S930 in Figure 9 can be performed by the binary evolution unit 312 of the entropy decoding unit 310, and step S940 in Figure 9 can be performed by the entropy decoding processing unit 313 of the entropy decoding unit 310.

[0273] The entropy decoding method disclosed in Figure 9 may include the embodiments described in detail in this document.

[0274] Referring to Figures 9 and 10, the entropy decoding unit can decode the encoded residual information to derive (quantized) conversion coefficients. Here, the conversion coefficients can be used interchangeably with the residual coefficients. The decoding device can decode the encoded residual information for the current block (current CB or current TB) to derive (quantized) conversion coefficients. The decoding device can, for example, decode various syntax elements relating to the residual information, as shown in Tables 1 to 4, analyze the values ​​of the relevant syntax elements, and derive the (quantized) conversion coefficients based on this.

[0275] Specifically, the rice parameter derivation unit 311 of the entropy decoding unit 310 can obtain information (abs_remainder[n] or dec_abs_level[n]) indicating the level value of the current transformation coefficient (quantized transformation coefficient or current (quantized) residual coefficient) from the bitstream (S900). Then, it can select a rice parameter lookup table for the information indicating the level value from among a plurality of rice parameter lookup tables (S910).

[0276] For example, the rice parameter derivation unit 311 of the entropy decoding unit 310 can configure multiple rice parameter lookup tables and select one from among them. For this purpose, selection information for selecting one from among the tables can be explicitly signaled. The selection information can correspond to syntax elements for transmitting information indicating the rice parameter lookup table selected by the encoding device. In this case, the rice parameter derivation unit 311 of the entropy decoding unit 310 can obtain syntax elements indicating information about the rice parameter lookup table from the bitstream and, based on this, select one of the multiple rice parameter lookup tables.

[0277] Alternatively, the rice parameter derivation unit 311 of the entropy decoding unit 310 can select a rice parameter lookup table from a number of rice parameter lookup tables to be used for level coding of the current transformation coefficient (or coefficient group or transformation block or coding block) based on at least one of the already given pieces of information, such as the configuration of the syntax element that is coded prior to the syntax element that indicates the level value of the current transformation coefficient (presence or absence of the syntax element, type, etc.), information on the maximum number of usable context coding bins set by the context coding bin constraint algorithm, whether the current block is lossless or near lossless coding, or quantization coefficient information for the current transformation coefficient. Here, the syntax element that is coded prior to the syntax element that indicates the level value of the current transformation coefficient may include at least one of sig_coeff_flag, abs_level_gtx_flag, par_level_flag, or coeff_sign_flag, and a rice parameter lookup table can be selected based on whether at least one of these is decoded.

[0278] The rice parameter derivation unit 311 of the entropy decoding unit 310 can derive rice parameters for information indicating the level value of the current transformation coefficient (abs_remainder[n] or dec_abs_level[n]) based on the selected rice parameter lookup table and the peripheral (or reference) transformation coefficients of the current transformation coefficient (S920). Specifically, the rice parameter derivation unit 311 of the entropy decoding unit 310 can derive rice parameters for the current scanning position (or its coefficients) using the selected rice parameter lookup table based on the locSumAbs described above. The locSumAbs can be derived based on the AbsLevel and / or sig_coeff_flag of the peripheral transformation coefficient. It will be obvious to those skilled in the art that the procedure for deriving the rice parameters can be omitted for sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., which are binary converted to a fixed length without using rice parameters. For the aforementioned sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., other binary evolution methods that do not use Rice parameter-based binary evolution can be performed.

[0279] The binary evolution unit 312 of the entropy decoding unit 310 can perform binary evolution based on the derived Rice parameters to derive a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S930). As an example, the binary evolution unit 312 of the entropy decoding unit 310 can derive an available bin string for the available value of abs_remainder[n] or dec_abs_level[n] via the binary evolution procedure. The length of the available bin string can be adaptively determined by the derived Rice parameters.

[0280] The entropy decoding processing unit 313 of the entropy decoding unit 310 can derive the level value of the conversion coefficient by performing entropy decoding based on the bin string for the information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S940). For example, the entropy decoding processing unit 313 of the entropy decoding unit 310 can compare the derived bin string with the available bin strings while sequentially parsing and decoding each bin / bit for abs_remainder[n] or dec_abs_level[n]. If the derived bin string is the same as one of the available bin strings, the value corresponding to that bin string can be derived as the value of abs_remainder[n]. If not, the comparison procedure can be performed after further parsing and decoding the next bit in the bitstream. Through this process, the information can be signaled using variable-length bits without using start bits or end bits for specific information (specific syntax elements) in the bitstream. This allows for the allocation of relatively fewer bits to lower values, thereby improving overall coding efficiency.

[0281] The decoding device can perform context-based entropy decoding of each bin in the bin string from the bitstream based on the CABAC entropy coding technique. In this case, the decoding device can derive context information for each bin of the bin string, entropy code it, and update the bin-specific context information. The entropy decoding procedure can be performed by the entropy decoding processing unit 313 within the entropy decoding unit 310. As mentioned above, the bitstream can contain various information for video decoding, such as predictive information, in addition to residual information including information for abs_remainder[n] or dec_abs_level[n]. The bitstream can further contain selection information for the Rice parameter lookup table. As mentioned above, the bitstream can be transmitted to the decoding device via a (digital) storage medium or a network.

[0282] The decoding device can derive (quantized) transform / residual coefficients based on the entropy decoding, and based on these, it can optionally perform inverse quantization and / or inverse transform procedures to derive residual samples for the current block. Based on the residual samples and predicted samples derived via interprediction and / or intraprediction, restored samples can be generated, and restored blocks / pictures containing the restored samples can be generated.

[0283] Figure 11 schematically shows an example of an entropy decoding method relating to other embodiments of this document.

[0284] The rice parameter derivation method disclosed in Figure 11 can be performed by the decoding device 300 disclosed in Figures 3 and 10. Specifically, for example, steps S1100 to S1120 in Figure 11 can be performed by the rice parameter derivation unit 311 of the entropy decoding unit 310. Step S1130 in Figure 11 can be performed by the binary evolution unit 312 of the entropy decoding unit 310, and step S1140 in Figure 11 can be performed by the entropy decoding processing unit 313 of the entropy decoding unit 310.

[0285] The entropy decoding method disclosed in Figure 11 may include the embodiments described in detail in this document.

[0286] Referring to Figures 10 and 11, the entropy decoding unit can decode the encoded residual information to derive (quantized) conversion coefficients. Here, the conversion coefficients can be used interchangeably with the residual coefficients. The decoding device can decode the encoded residual information for the current block (current CB or current TB) to derive (quantized) conversion coefficients. The decoding device can, for example, decode various syntax elements relating to the residual information, as shown in Tables 1 to 4, analyze the values ​​of the relevant syntax elements, and derive the (quantized) conversion coefficients based on this.

[0287] Specifically, the rice parameter derivation unit 311 of the entropy decoding unit 310 can obtain information (abs_remainder[n] or dec_abs_level[n]) indicating the level value of the current transformation coefficient (quantized transformation coefficient or current (quantized) residual coefficient) from the bitstream (S1100). Then, it can determine the index value of the rice parameter lookup table for the information indicating the level value (S1110). For example, the rice parameter derivation unit 311 of the entropy decoding unit 310 can determine and / or change the index value of the rice parameter lookup table based on at least one of the following: the configuration of the syntax elements coded prior to the information indicating the level value of the current transformation coefficient (presence or absence of syntax elements, type, etc.), the maximum number of usable context coding bins set by the context coding bin constraint algorithm, whether lossless or near lossless coding is performed, the quantization coefficient information (value) for the transformation coefficient, or the level values ​​(etc.) of the peripheral coefficients (etc.) of the current transformation coefficient.

[0288] For example, the rice parameter derivation unit 311 of the entropy decoding unit 310 can determine the index value or change the index value by adding a shift to the index value based on whether at least one of the syntax elements sig_coeff_flag, abs_level_gtx_flag, par_level_flag, or coeff_sign_flag is decoded from the bitstream. Alternatively, it can determine the index value or change the index value by adding a shift to the index value based on whether the sum of the level values ​​of the peripheral conversion coefficients of the conversion coefficient is greater than or equal to a threshold.

[0289] The rice parameter derivation unit 311 of the entropy decoding unit 310 can derive a rice parameter for information indicating the level value of the current conversion coefficient (abs_remainder[n] or dec_abs_level[n]) from the rice parameter lookup table based on the index value (S1120). For example, the rice parameter derivation unit 311 of the entropy decoding unit 310 can derive a rice parameter for the current scanning position (or its coefficient) based on the index value using the aforementioned formulas 15 and / or 16. When formula 16 is used, the value of the rice parameter can be changed to a value obtained by adding an offset value to the index value. The index value can be derived based on the aforementioned locSumAbs or determined based on a standard index selection method.

[0290] It is obvious to those skilled in the art that the procedure for deriving the aforementioned Rice parameters can be omitted for sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., which are binary converted to a fixed length without using Rice parameters. For sig_coeff_flag, par_level_flag, abs_level_gtx_flag, etc., other binary conversion methods that do not use Rice parameter-based binary conversion can be performed.

[0291] The binary evolution unit 312 of the entropy decoding unit 310 can perform binary evolution based on the derived Rice parameters to derive a bin string for information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S1130). As an example, the binary evolution unit 312 of the entropy decoding unit 310 can derive an available bin string for the available value of abs_remainder[n] or dec_abs_level[n] via the binary evolution procedure. The length of the available bin string can be adaptively determined by the derived Rice parameters.

[0292] The entropy decoding processing unit 313 of the entropy decoding unit 310 can derive the level value of the conversion coefficient by performing entropy decoding based on the bin string for the information indicating the level value of the conversion coefficient (abs_remainder[n] or dec_abs_level[n]) (S940). For example, the entropy decoding processing unit 313 of the entropy decoding unit 310 can compare the derived bin string with the available bin strings while sequentially parsing and decoding each bin / bit for abs_remainder[n] or dec_abs_level[n]. If the derived bin string is the same as one of the available bin strings, the value corresponding to that bin string can be derived as the value of abs_remainder[n]. If not, the comparison procedure can be performed after further parsing and decoding the next bit in the bitstream. Through this process, the information can be signaled using variable-length bits without using start bits or end bits for specific information (specific syntax elements) in the bitstream. This allows for the allocation of relatively fewer bits to lower values, thereby improving overall coding efficiency.

[0293] The decoding device can perform context-based entropy decoding of each bin in the bin string from the bitstream based on the CABAC entropy coding technique. In this case, the decoding device can derive context information for each bin of the bin string, entropy code it, and update the bin-specific context information. The entropy decoding procedure can be performed by the entropy decoding processing unit 313 within the entropy decoding unit 310. As mentioned above, the bitstream can contain various information for video decoding, such as predictive information, in addition to residual information including information for abs_remainder[n] or dec_abs_level[n]. The bitstream can further contain selection information for the Rice parameter lookup table. As mentioned above, the bitstream can be transmitted to the decoding device via a (digital) storage medium or a network.

[0294] The decoding device can derive (quantized) transform / residual coefficients based on the entropy decoding, and based on these, it can optionally perform inverse quantization and / or inverse transform procedures to derive residual samples for the current block. Based on the residual samples and predicted samples derived via interprediction and / or intraprediction, restored samples can be generated, and restored blocks / pictures containing the restored samples can be generated.

[0295] Figure 12 shows a video / image encoding method according to the embodiment described in this document.

[0296] The video / image encoding method disclosed in Figure 12 can be performed by the encoding device 200 disclosed in Figure 2. Specifically, for example, S1200 in Figure 12 can be performed by the prediction unit 220 of the encoding device, S1210 can be performed by the subtraction unit 231 of the encoding device, S1220 can be performed by the conversion unit 232 of the encoding device, S1230 can be performed by the quantization unit 233 of the encoding device, and S1240 can be performed by the entropy encoding unit 240 of the encoding device. Steps S800 to S830 detailed in Figure 8 can be included in step S1240.

[0297] Referring to Figure 12, the encoding device can derive predicted samples through predictions for the current block (S1200). The encoding device can decide whether to perform interpretation or intrapretation on the current block, and can determine a specific interpretation mode or a specific intrapretation mode based on the RD cost. Depending on the determined mode, the encoding device can derive predicted samples for the current block.

[0298] The encoding device can derive a residual sample by comparing the original sample and the predicted sample for the current block (S1210).

[0299] The encoding device derives conversion coefficients through the conversion procedure for the residual sample (S1220). The derived conversion coefficients can be quantized, and quantized conversion coefficients can be derived (S1230).

[0300] The encoding device encodes video information including prediction information and residual information, and outputs the encoded video information in bitstream format (S1240). The prediction information may include information related to the prediction procedure, such as prediction mode information and motion information (for example, when interpretation is applied). The residual information may include, for example, the information disclosed in Tables 1 to 4 above, as information regarding the quantized conversion coefficients.

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

[0302] Figure 13 shows a video / image decoding method according to the embodiment described in this document.

[0303] The video / image decoding method disclosed in Figure 13 can be performed by the decoding device 300 disclosed in Figure 3. Specifically, for example, S1300 in Figure 13 can be performed by the prediction unit 330 of the decoding device. In S1300, the procedure of decoding the prediction information contained in the bitstream to derive the values ​​of the relevant syntax elements can be performed by the entropy decoding unit 310 of the decoding device. S1310, S1320, S1330, and S1340 can be performed by the entropy decoding unit 310, the inverse quantization unit 321, the inverse transformation unit 322, and the addition unit 340 of the decoding device, respectively. S1000 to S1030, detailed in Figure 10, can be included in the S1310 procedure.

[0304] The decoding device can perform operations corresponding to those performed by the encoding device. Based on the received prediction information, the decoding device can perform inter-prediction or intra-prediction for the current block to derive prediction samples (S1300).

[0305] The decoding device can derive quantized conversion coefficients for the current block based on the received residual information (S1310).

[0306] The decoding device can derive the conversion coefficients by inverse quantization of the quantized conversion coefficients (S1320).

[0307] The decoding device can derive the residual sample via an inverse conversion procedure for the conversion coefficients (S1330).

[0308] The decoding device can generate a reconstructed sample for the current block based on the predicted sample and the residual sample, and generate a reconstructed picture based on this (S1340). As previously mentioned, an in-loop filtering procedure can be further applied to the reconstructed picture thereafter.

[0309] In the embodiments described above, the method is explained based on a flowchart in a series of steps or blocks, but the embodiments are not limited to the order of the steps, and some steps may occur with other steps, in a different order, or simultaneously. 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 the embodiments described herein.

[0310] The methods described in the embodiments of this document above can be implemented in software form, and the encoding and / or decoding devices described in this document can be included in devices that perform video processing, such as TVs, computers, smartphones, set-top boxes, and display devices.

[0311] In this document, when embodiments are implemented in software, the methods described above can be implemented by modules (processes, functions, etc.) that perform the functions described above. These modules are stored in memory and can be executed by a processor. The memory may be internal or external to the processor and may be connected to the processor by a variety of well-known means. The processor may include an ASIC (application-specific integrated circuit), other chipsets, logic circuits, and / or data processing devices. The memory may include ROM (read-only memory), RAM (random access memory), flash memory, memory cards, storage media, and / or other storage devices. That is, the embodiments described in this document can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing can be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored on a digital storage medium.

[0312] Furthermore, the decoding and encoding devices to which the embodiments(et al.) of this document apply can include multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video interaction devices, real-time communication devices such as video communications, mobile streaming devices, storage media, camcorders, video-on-demand (VoD) service providers, over-the-top (OTT) video equipment, internet streaming service providers, 3D video equipment, virtual reality (VR) equipment, argumentative reality (AR) equipment, image-phone video equipment, transportation terminals (e.g., vehicle terminals (including autonomous vehicles), 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 digital video recorders (DVRs).

[0313] Furthermore, the processing methods to which the embodiments(et al.) 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 structures according to the embodiments(et al.) of 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 (USB), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium also includes media embodied 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.

[0314] Furthermore, the embodiments(e) of this document can be embodied in computer program products using program code, and said program code can be executed on a computer according to the embodiments(e) of this document. The said program code can be stored on a computer-readable carrier.

[0315] Figure 14 shows an example of a content streaming system to which the embodiments disclosed in this document can be applied.

[0316] Referring to Figure 14, the content streaming system to which the embodiments of this document apply may largely include an encoding server, a streaming server, a web server, a media storage facility, user equipment, and multimedia input devices.

[0317] 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 may be omitted.

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

[0319] 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 and responses between the devices within the content streaming system.

[0320] 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.

[0321] 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, HMDs (head-mounted displays)), digital TVs, desktop computers, and digital signage.

[0322] Each server within the aforementioned 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.

Claims

1. In a video decoding method performed by a decoding device, The steps include receiving a bitstream containing information related to the level values ​​of the conversion coefficients in the current block, The steps include determining the index value of the rice parameter lookup table for the information related to the level value of the conversion coefficient, A step of deriving the rice parameter for the information related to the level value of the conversion coefficient based on the rice parameter lookup table and the index value, A step of deriving a bin string for the information related to the level value of the conversion coefficient based on the Rice parameter, The step includes deriving the level value of the conversion coefficient based on the bin string, The step of deriving the aforementioned rice parameters is: The steps include: deriving temporary rice parameters based on the aforementioned index values ​​and the aforementioned rice parameter lookup table; The step of deriving the rice parameter by adding an offset to the temporary rice parameter includes, The information relating to the level value of the conversion coefficient includes a syntax element dec_abs_level indicating the level value of the conversion coefficient, or a syntax element abs_remainder indicating the remaining level value of the conversion coefficient. A video decoding method in which the syntax element abs_remainder is included in the information relating to the level value of the conversion coefficient, based on the fact that the absolute value of the conversion coefficient is greater than 3.

2. The step of deriving the Rice parameter is: The steps include: deriving a corrected index value based on the aforementioned index value; The step of deriving the rice parameters by using the modified index values ​​and the rice parameter lookup table is included, The video decoding method according to claim 1, wherein the step of deriving the modified index value includes the step of deriving the modified index value based on whether the sum of the level values ​​of adjacent conversion coefficients of the conversion coefficient is less than a threshold.

3. The video decoding method according to claim 2, wherein the step of deriving the modified index value includes the step of deriving the modified index value based on the index value and the shift value.

4. The step of deriving the rice parameter is: The steps include: deriving a modified index value based on the aforementioned index value and shift value; The steps include: deriving temporary rice parameters based on the modified index values ​​and the rice parameter lookup table; A video decoding method according to claim 1, comprising the step of deriving the rice parameter by adding an offset to the temporary rice parameter.

5. Based on a specific syntax element coded prior to the information related to the level value of the conversion coefficient, The modified index value is derived by using the shift value, The video decoding method according to claim 4, wherein the Rice parameter is derived by using the offset.

6. The video decoding method according to claim 5, wherein the index value is derived based on the sum of the level values ​​of adjacent conversion coefficients of the conversion coefficient.

7. A video encoding method performed by an encoding device, The current step is to generate information related to the level value of the transformation coefficient within the block, The steps include determining the index value of the rice parameter lookup table for the information related to the level value of the conversion coefficient, A step of deriving the rice parameter for the information related to the level value of the conversion coefficient based on the index value and the rice parameter lookup table, A step of deriving a bin string for the information related to the level value of the conversion coefficient based on the Rice parameter, The steps include encoding the bin string, The step of deriving the aforementioned rice parameters is: The steps include: deriving temporary rice parameters based on the aforementioned index values ​​and the aforementioned rice parameter lookup table; The step of deriving the rice parameter by adding an offset to the temporary rice parameter includes, The information relating to the level value of the conversion coefficient includes a syntax element dec_abs_level indicating the level value of the conversion coefficient, or a syntax element abs_remainder indicating the remaining level value of the conversion coefficient. A video encoding method in which the syntax element abs_remainder is included in the information relating to the level value of the conversion coefficient, based on the absolute value of the conversion coefficient being greater than 3.

8. The step of deriving the rice parameter is: The steps include: deriving a corrected index value based on the aforementioned index value; The step of deriving the rice parameters by using the modified index values ​​and the rice parameter lookup table is included, The video encoding method according to claim 7, wherein the step of deriving the modified index value includes the step of deriving the modified index value based on whether the sum of the level values ​​of adjacent conversion coefficients of the conversion coefficient is less than a threshold.

9. The video encoding method according to claim 8, wherein the step of deriving the modified index value includes the step of deriving the modified index value based on the index value and the shift value.

10. The step of deriving the rice parameter is: The steps include: deriving a modified index value based on the aforementioned index value and shift value; The steps include: deriving temporary rice parameters based on the modified index values ​​and the rice parameter lookup table; A video encoding method according to claim 7, comprising the step of deriving the rice parameter by adding an offset to the temporary rice parameter.

11. Based on a specific syntax element coded prior to the information related to the level value of the conversion coefficient, The modified index value is derived by using the shift value, The video encoding method according to claim 10, wherein the Rice parameter is derived by using the offset.

12. The video encoding method according to claim 11, wherein the index value is derived based on the sum of the level values ​​of adjacent conversion coefficients of the conversion coefficient.

13. A method for transmitting a bitstream generated by a video encoding method, The aforementioned video encoding method is The current step is to generate information related to the level value of the transformation coefficient within the block, The steps include determining the index value of the rice parameter lookup table for the information related to the level value of the conversion coefficient, A step of deriving the rice parameter for the information related to the level value of the conversion coefficient based on the index value and the rice parameter lookup table, A step of deriving a bin string for the information related to the level value of the conversion coefficient based on the Rice parameter, The step of generating the bitstream by encoding the bin string includes, The step of deriving the aforementioned rice parameters is: The steps include: deriving temporary rice parameters based on the aforementioned index values ​​and the aforementioned rice parameter lookup table; The step of deriving the rice parameter by adding an offset to the temporary rice parameter includes, The information relating to the level value of the conversion coefficient includes a syntax element dec_abs_level indicating the level value of the conversion coefficient, or a syntax element abs_remainder indicating the remaining level value of the conversion coefficient. The syntax element abs_remainder is included in the information relating to the level value of the conversion coefficient, based on the fact that the absolute value of the conversion coefficient is greater than 3.

Citation Information

Patent Citations

  • High throughput coding for cabac in hevc

    WO2013108639A1

  • Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data

    WO2013152401A1

  • Rice parameter initialization for coefficient level coding in video coding process

    WO2015006602A2

  • Coefficient level coding in video coding

    WO2017040828A1

  • Regular coded bin reduction for coefficient coding using threshold and rice parameter

    WO2020051324A1