Video or image coding method and apparatus thereof
By introducing motion information candidate index and residual information encoding in the image encoding method, configuring the motion information candidate list and deriveing the motion information, the problem of low encoding efficiency of high-resolution image is solved, and more efficient image encoding and residual encoding are achieved.
Patent Information
- Application Number
- JP2024035141
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-31
- Filing Date
- 2024-03-07
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2040-08-26
AI Technical Summary
The prior art is difficult to improve the encoding efficiency of high-resolution and high-quality images, resulting in increased transmission and storage costs.
By introducing the encoding of motion information candidate index and residual information in the image encoding method, the motion information candidate list is configured to derive motion information of the current block based on the adjacent block, and generate a recovery sample based on the prediction sample and the residual sample.
This improves the efficiency of image encoding, simplifies residual data encoding, reduces encoding complexity, and improves the overall residual coding efficiency.
Smart Images

Figure 0007675885000049 
Figure 0007675885000050 
Figure 0007675885000051
Abstract
Description
[Technical field]
[0001] The present technology relates to a video or image coding method and apparatus. [Background technology]
[0002] Recently, the demand for high-resolution, high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images is increasing in various fields. As the image data has higher resolution and quality, the amount of information or bits to be transmitted increases relatively compared to existing image data, so that when the image data is transmitted using a medium such as an existing wired or wireless broadband line or when the image data is stored using an existing recording medium, the transmission cost and storage cost increase.
[0003] Thereby, in order to effectively transmit, store and reproduce high resolution, high quality image information, highly efficient image compression techniques are required. Summary of the Invention [Problem to be solved by the invention]
[0004] The technical problem of this document is to provide a method and apparatus for increasing image coding efficiency.
[0005] Another technical problem of this document is to provide a method and apparatus for improving the efficiency of residual coding. [Means for solving the problem]
[0006] According to an embodiment of the present document, an image decoding method is provided, which is executed by a decoding device. The method includes the steps of: acquiring image information including a motion information candidate index and residual information through a bitstream; constructing a motion information candidate list based on neighboring blocks of a current block; deriving motion information of the current block based on a motion information candidate indicated by the motion information candidate index among the motion information candidates of the motion information candidate list; deriving a prediction sample of the current block based on the motion information; deriving the current residual coefficient based on a residual syntax element for a current residual coefficient in the current block; deriving a residual sample based on the current residual coefficient; and deriving a reconstruction sample of the current block based on the prediction sample and the residual sample.
[0007] According to another embodiment of the present document, a decoding device for performing image decoding is provided, which includes an entropy decoding unit for acquiring image information including a motion information candidate index and residual information through a bitstream, a prediction unit for constructing a motion information candidate list based on neighboring blocks of a current block, deriving motion information of the current block based on a motion information candidate indicated by the motion information candidate index among the motion information candidates of the motion information candidate list, and deriving a predicted sample of the current block based on the motion information, a residual processing unit for deriving the current residual coefficient based on a residual syntax element for a current residual coefficient in the current block and deriving a residual sample based on the current residual coefficient, and an adder for deriving a reconstructed sample of the current block based on the predicted sample and the residual sample.
[0008] According to another embodiment of the present document, there is provided a video encoding method executed by an encoding device, the method including: constructing a motion information candidate list based on neighboring blocks of a current block, selecting one motion information candidate from the motion information candidate list, deriving motion information of the current block based on the selected motion information candidate, deriving a prediction sample of the current block based on the motion information, deriving a residual sample of the current block based on the prediction sample, deriving a current residual coefficient based on the residual sample, and encoding image information including a motion information candidate index pointing to the selected motion information candidate and a residual syntax element for the current residual coefficient.
[0009] According to another embodiment of the present document, a video encoding device is provided, comprising: a prediction unit that configures a motion information candidate list based on neighboring blocks of a current block, selects one motion information candidate from the motion information candidate list, derives motion information of the current block based on the selected motion information candidate, and derives a prediction sample of the current block based on the motion information, a residual processing unit that derives a residual sample of the current block based on the prediction sample and derives a current residual coefficient based on the residual sample, and an entropy encoding unit that encodes image information including a motion information candidate index indicating the selected motion information candidate and a residual syntax element for the current residual coefficient. Effect of the Invention
[0010] According to this document, the efficiency of residual coding can be improved.
[0011] According to this document, residual coefficients to which simplified residual data coding is applied can be derived without performing level mapping, thereby reducing coding complexity and improving overall residual coding efficiency. [Brief description of the drawings]
[0012] [Figure 1] 1 illustrates generally an example of a video / image coding system in which embodiments of the present document may be applied; [Diagram 2] FIG. 1 is a diagram illustrating the configuration of a video / image encoding device to which the embodiments of this document can be applied. [Diagram 3] FIG. 1 is a diagram illustrating the configuration of a video / image decoding device to which an embodiment of the present document can be applied. [Figure 4] 1 illustrates an example of an intra-prediction based video / image encoding method. [Diagram 5] 1 illustrates an example of an intra-prediction based video / image encoding method. [Figure 6] 1 illustrates an exemplary intra prediction procedure. [Figure 7] 1 shows an example of an inter-prediction based video / image encoding method. [Figure 8] 1 illustrates an example of an inter-prediction based video / image decoding method. [Figure 9] 1 illustrates an exemplary inter-prediction procedure. [Figure 10] Illustratively, CABAC (context-adaptive binary arithmetic coding) is used to encode syntax elements. [Figure 11] A figure illustrating examples of transform coefficients etc. in a 4x4 block. [Figure 12] An example of simplified residual data coding for one CG, transform block or coding block is shown below. [Figure 13]Another example of simplified residual data coding for one CG, transform block or coding block will be shown. [Figure 14] Another example of simplified residual data coding for one CG, transform block or coding block will be shown. [Figure 15] 1 illustrates a schematic diagram of an image encoding method using an encoding device according to the present document. [Figure 16] 1 shows a schematic diagram of an encoding device for performing an image encoding method according to the present document; [Figure 17] 1 illustrates an image decoding method using a decoding device according to the present document. [Figure 18] 1 shows a schematic diagram of a decoding device for performing an image decoding method according to the present document; [Figure 19] 1 exemplarily illustrates a structural diagram of a content streaming system to which an embodiment of the present document is applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] This document may have various modifications and may have various embodiments, and a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. Commonly used terms in this specification are used merely to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, terms such as "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0014] Meanwhile, each component in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components among the components may be combined to form one component, and one component may be divided into multiple components. An embodiment in which each component is integrated and / or separated is also included in the scope of the rights of this document as long as it does not deviate from the essence of this document.
[0015] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals will be used for the same components in the drawings, and duplicated descriptions of the same components may be omitted.
[0016] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system in which embodiments of the present document may be applied.
[0017] As shown in Figure 1, the video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image information or data to the receiving device in a file or streaming form via a digital recording medium or a network.
[0018] The source device may comprise a video source, an encoding device, and a sending unit. The receiving device may comprise a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may comprise a display unit, which may be a separate device or an external component.
[0019] A video source may acquire video / images through a video / image capture, synthesis, or generation process, etc. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which the associated data is generated.
[0020] An encoding device can encode an input video / image. The encoding device can perform a series of steps such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0021] The transmitting unit may transmit the encoded video / image information or data output in the form of a bitstream to a receiving unit of a receiving device via a digital recording medium or a network in the form of a file or streaming. The digital recording medium may include various recording media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit may include an element for generating a media file through a predetermined file format and may include an element for transmission via a broadcasting / communication network. The receiving unit may receive / extract the bitstream and transmit it to a decoding device.
[0022] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, prediction, etc., which correspond to the operations of the encoding device.
[0023] The renderer can render the decoded video / images, and the rendered video / images can be displayed via a display unit.
[0024] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document can be applied to methods disclosed in the versatile video coding (VVC) standard, the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the 2nd generation of audio video coding standard (AVS2), or the next generation video / image coding standard (e.g., H.267 or H.268, etc.).
[0025] In this document, various embodiments relating to video / image coding are presented, which, unless otherwise stated, may also be implemented in combination with each other.
[0026] In this document, a video may mean a collection of a series of images over time. A picture generally means a unit showing one image at a particular time, and a subpicture / slice / tile is a unit constituting a part of a picture in coding. A subpicture / slice / tile may include one or more coding tree units (CTUs). A picture may consist of one or more subpictures / slices / tiles. A picture may consist of one or more groups of tiles. A tile group may include one or more tiles. A brick may represent a rectangular region of CTU rows within a tile in a picture. A tile may be partitioned into multiple bricks, each of which consisting of one or more CTU rows within the tile. A tile that is not partitioned into multiple bricks may also be referred to as a brick.A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. Additionally, a subpicture may represent a rectangular region of one or more slices within a picture. That is, a subpicture contains one or more slices that collectively cover a rectangular region of a picture. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture. A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture.A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit. A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile. In this document, the terms tile group and slice may be used interchangeably. For example, tile group / tile group header may be referred to as slice / slice header in this document.
[0027] A pixel or a pel may refer to the smallest unit that constitutes one picture (or image). A term corresponding to a pixel may be "sample." A sample may generally indicate a pixel or a pixel value, may indicate only a pixel / pixel value of a luma component, or may indicate only a pixel / pixel value of a chroma component.
[0028] A unit may indicate a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may include one luma block and two chroma (e.g., cb, cr) blocks. A unit may be used in combination with terms such as block or area, depending on the case. In a general case, an M×N block may include a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0029] In this specification, "A or B" may mean "A only," "B only," or "both A and B." In other words, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "A only," "B only," "C only," or "any combination of A, B and C."
[0030] As used herein, a slash ( / ) or a comma may mean "and / or." For example, "A / B" may mean "A and / or B." Thus, "A / B" may mean "A only," "B only," or "both A and B." For example, "A, B, C" may mean "A, B, or C."
[0031] In this specification, "at least one of A and B" may mean "A only," "B only," or "both A and B." In addition, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" may be interpreted similarly to "at least one of A and B."
[0032] In addition, in this specification, "at least one of A, B and C" may mean "A only," "B only," "C only," or "any combination of A, B and C." Furthermore, "at least one of A, B or C" and "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0033] In addition, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." In addition, even when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."
[0034] Technical features described separately in one drawing in this specification may be realized separately or simultaneously.
[0035] The following drawings are created to explain a specific example of the present specification. The names of specific devices and names of specific signals / messages / fields described in the drawings are presented for illustrative purposes only, and the technical features of the present specification are not limited to the specific names used in the following drawings.
[0036] 2 is a diagram for explaining the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, the video encoding device may include an image encoding device.
[0037] As shown in FIG. 2, the encoding device 200 may be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter predictor 221 and an intra predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. The image division unit 210, the prediction unit 220, the residual processing unit 230, the entropy encoding unit 240, the addition unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chip set or a processor) according to an embodiment. In addition, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital recording medium. The hardware components may further include the memory 270 as an internal / external component.
[0038] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, a quad-tree structure may be applied first, and a binary tree structure and / or a ternary structure may be applied later. Alternatively, a binary tree structure may be applied first. The coding procedure according to this document may be performed based on a final coding unit that is not further divided. In this case, the largest coding unit may be used as the final coding unit immediately based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as necessary, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.The prediction unit is a unit of sample prediction, and the transform unit is a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0039] The unit may be used interchangeably with terms such as block or area. In the general case, an M×N block may refer to a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally refer to a pixel or pixel value, may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component. A sample may be used as a term corresponding to a pixel or pel of one picture (or image).
[0040] The encoding device 200 may generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input image signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as illustrated, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoder 200 may be called a subtraction unit 231. The prediction unit may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including a prediction sample for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoding unit 240, as will be described later in the description of each prediction mode. The prediction information can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0041] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction mode applied to the neighboring block.
[0042] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block by forming a motion information candidate list based on neighboring blocks. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of a motion vector prediction (MVP) mode, the motion vector of a neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0043] The prediction unit 220 may generate a prediction signal based on various prediction methods described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, or may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). The prediction unit may also be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding such as games, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information regarding a palette table and a palette index.
[0044] The prediction signal generated through the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) may be used to generate a restored signal or may be used to generate a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same square size, or may be applied to non-square, variable-sized blocks.
[0045] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoder 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal as a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in network abstraction layer (NAL) unit units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may further include general constraint information. Information and / or syntax elements transmitted / signaled from an encoding device to a decoding device in this document may be included in the video / image information. The video / image information may be encoded through the above-mentioned encoding procedure and included in the bitstream.The bitstream may be transmitted via a network or may be stored in a digital recording medium. Here, the network may include a broadcasting network and / or a communication network, and the digital recording medium may include various recording media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitting unit (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storing unit (not shown) for storing the signal 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.
[0046] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be restored by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the current block, such as when a skip mode is applied, a predicted block may be used as a reconstructed block. The adder 250 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering, as described below.
[0047] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or restoration.
[0048] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoding unit 240, as will be described later in relation to each filtering method. The information related to filtering may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0049] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus may avoid prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300, and may also improve encoding efficiency.
[0050] The memory 270DPB may store the modified reconstructed picture to be used as a reference picture in the inter prediction unit 221. The memory 270 may store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 221 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.
[0051] FIG. 3 is a diagram illustrating a schematic configuration of a video / image decoding device to which the embodiments of this document can be applied.
[0052] As shown in FIG. 3, the decoding device 300 may be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. In addition, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital recording medium. The hardware components may further include a memory 360 as an internal / external component.
[0053] When a bitstream including video / image information is input, the decoding apparatus 300 can restore an image corresponding to a process in which the video / image information is processed by the encoding apparatus of FIG. 2. For example, the decoding apparatus 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding apparatus 300 can perform decoding using a processing unit applied in the encoding apparatus. Thus, the processing unit of the decoding is, for example, a coding unit, and the coding unit can be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output by the decoding apparatus 300 can be reproduced by a reproduction device.
[0054] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device may further decode pictures based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration, quantized values of transform coefficients related to residuals, etc. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decode information on the neighboring and blocks to be decoded, or information on symbols / bins decoded in a previous step, predict the occurrence probability of bins according to the determined context model, and perform arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. In this case, the CABAC entropy decoding method may update the context model using information on the decoded symbol / bin for the context model of the next symbol / bin after determining the context model.Among the information decoded by the entropy decoding unit 310, information related to prediction is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and residual values entropy decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to the residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). Also, among the information decoded by the entropy decoding unit 310, information related to filtering may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) for receiving a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the addition unit 340, the filtering unit 350, the memory 360, the inter prediction unit 332, and the intra prediction unit 331.
[0055] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients to output transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scan order performed in the encoding device. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0056] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0057] The prediction unit may perform prediction on a current block and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on information on the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0058] The prediction unit 320 may generate a prediction signal based on various prediction methods described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). In addition, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding such as games, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be seen as an example of intra coding or intra prediction. When the palette mode is applied, information regarding a palette table and a palette index may be included in the video / image information and signaled.
[0059] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on a prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block using a prediction mode applied to a neighboring block.
[0060] The inter prediction unit 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted from an inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter prediction unit 332 may configure a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating a mode of inter prediction for the current block.
[0061] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to a prediction signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 332 and / or the intra prediction unit 331). When there is no residual for a current block, such as when a skip mode is applied, the predicted block may be used as a reconstructed block.
[0062] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in a current picture, and may be output after filtering as described below, or may be used for inter prediction of a next picture.
[0063] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.
[0064] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0065] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 332. The memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 360 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 331.
[0066] In this specification, the embodiments described for the filtering unit 260, inter prediction unit 221, and intra prediction unit 222 of the encoding device 200 can also be applied identically or correspondingly to the filtering unit 350, inter prediction unit 332, and intra prediction unit 331 of the decoding device 300, respectively.
[0067] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When the quantization / dequantization is omitted, the quantized transform coefficients may be referred to as transform coefficients. When the transform / inverse transform is omitted, the transform coefficients may be referred to as coefficients or residual coefficients, or may still be referred to as transform coefficients for uniformity of expression.
[0068] In this document, the quantized transform coefficients and the transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information on the transform coefficient(s), and the information on the transform coefficient(s) may be signaled via a residual coding syntax. A transform coefficient may be derived based on the residual information (or information on the transform coefficient(s)), and a scaled transform coefficient may be derived through an inverse transform (scaling) on the transform coefficient. A residual sample may be derived based on an inverse transform (transform) on the scaled transform coefficient. This may be similarly applied / expressed in other parts of this document.
[0069] As described above, in performing video coding, prediction is performed to improve compression efficiency. Through this, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in a spatial domain (or a pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device, and the encoding device can improve image coding efficiency by signaling information (residual information) about the residual between the original block and the predicted block, which is not the original sample value of the original block itself, to the decoding device. The decoding device can derive a residual block including residual samples based on the residual information, combine the residual block and the predicted block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.
[0070] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the residual samples (residual sample array) included in the residual block to derive transform coefficients, perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and signal related residual information (through a bitstream) to a decoding apparatus. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. The encoding apparatus may further derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.
[0071] Intra prediction may represent a prediction that generates a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, a total of 2×nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0072] However, some of the neighboring reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may substitute the unavailable samples for the available samples to construct the neighboring reference samples used for prediction. Alternatively, the decoder may construct the neighboring reference samples used for prediction through interpolation of the available samples.
[0073] When neighboring reference samples are derived, (i) a predicted sample can be derived based on an average or an interpolation of neighboring reference samples of the current block, or (ii) the predicted sample can be derived based on a reference sample that exists in a specific (prediction) direction with respect to the predicted sample among the neighboring reference samples of the current block. (i) can be called a non-directional mode or a non-angular mode, and (ii) can be called a directional mode or an angular mode.
[0074] In addition, the prediction sample may be generated by interpolating a first neighboring sample located in a prediction direction of an intra prediction mode of the current block and a second neighboring sample located in an opposite direction to the prediction direction based on the prediction sample of the current block among the neighboring reference samples. The above case may be called a linear interpolation intra prediction (LIP). Also, a chroma prediction sample may be generated based on a luma sample using a linear model (LM). In this case, it may be called an LM mode or a CCLM (chroma component LM) mode.
[0075] Also, a provisional prediction sample of the current block may be derived based on the filtered neighboring reference samples, and a prediction sample of the current block may be derived by weighting the provisional prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples, i.e., non-filtered neighboring reference samples. The above case may be called Position Dependent Intra Prediction (PDPC).
[0076] Also, the reference sample line with the highest prediction accuracy is selected from among multiple reference sample lines surrounding the current block, a prediction sample is derived using a reference sample located in a prediction direction on the selected line, and the used reference sample line is signaled to a decoding device, thereby performing intra prediction encoding. The above-mentioned case can be called multi-reference line intra prediction or MRL-based intra prediction.
[0077] In addition, the current block may be divided into vertical or horizontal sub-partitions and intra prediction may be performed based on the same intra prediction mode, but neighboring reference samples may be derived and used in units of the sub-partitions. That is, in this case, the intra prediction mode for the current block is similarly applied to the sub-partitions, but neighboring reference samples may be derived and used in units of the sub-partitions, thereby improving intra prediction performance in some cases. Such a prediction method may be called ISP (intra sub-partitions) based intra prediction.
[0078] The above-mentioned intra prediction methods, etc., may be called intra prediction types, distinguished from intra prediction modes. The intra prediction types may be called various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction types (or additional intra prediction modes, etc.) may include at least one of the above-mentioned LIP, PDPC, MRL, and ISP. A general intra prediction method other than the specific intra prediction types, such as the LIP, PDPC, MRL, and ISP, may be called a normal intra prediction type. The normal intra prediction type may be generally applied when the above-mentioned specific intra prediction types are not applied, and prediction may be performed based on the above-mentioned intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.
[0079] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra prediction mode / type. In addition, a post-processing filtering step may be performed on the derived prediction sample, if necessary.
[0080] FIG. 4 illustrates an example of an intra-prediction based video / image encoding method.
[0081] As shown in FIG. 4, the encoding apparatus performs intra prediction on a current block (S400). The encoding apparatus may derive an intra prediction mode / type for the current block, derive neighboring reference samples for the current block, and generate a prediction sample in the current block based on the intra prediction mode / type and the neighboring reference samples. Here, the intra prediction mode / type determination, neighboring reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or any one procedure may be performed prior to the other procedures. The encoding apparatus may determine a mode / type to be applied to the current block from among a plurality of intra prediction modes / types. The encoding apparatus may compare RD costs for the intra prediction modes / types to determine an optimal intra prediction mode / type for the current block.
[0082] Meanwhile, the encoding apparatus may also perform a prediction sample filtering procedure. The prediction sample filtering may be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0083] The encoding apparatus generates residual samples for the current block based on the (filtered) predicted samples (S410). The encoding apparatus may derive the residual samples by comparing the predicted samples with the original samples of the current block based on a phase.
[0084] The encoding device may encode image information including information related to the intra prediction (prediction information) and residual information related to the residual sample (S420). The prediction information may include the intra prediction mode information and the intra prediction type information. The encoding device may output the encoded image information in the form of a bitstream. The output bitstream may be transmitted to a decoding device via a recording medium or a network.
[0085] The residual information may include a residual coding syntax, which will be described later. An encoding apparatus may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information regarding the quantized transform coefficients.
[0086] Meanwhile, as described above, the encoding apparatus may generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding apparatus may again inverse quantize / inverse transform the quantized transform coefficients to derive (modified) residual samples. The reason for again performing inverse quantization / inverse transform after transforming / quantizing the residual samples is to derive the same residual samples as the residual samples derived from the decoding apparatus, as described above. The encoding apparatus may generate a reconstructed block including reconstructed samples for the current block based on the predicted samples and the (modified) residual samples. A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure, etc. may further be applied to the reconstructed picture.
[0087] FIG. 5 illustrates an example of an intra-prediction based video / image encoding method.
[0088] The decoding device may perform operations corresponding to those performed by the encoding device.
[0089] Prediction information and residual information may be obtained from a bitstream. A residual sample for a current block may be derived based on the residual information. Specifically, a transform coefficient may be derived by performing inverse quantization based on a quantized transform coefficient derived based on the residual information, and a residual sample for the current block may be derived by performing inverse transform on the transform coefficient.
[0090] Specifically, the decoding apparatus may derive an intra prediction mode / type for a current block based on received prediction information (intra prediction mode / type information) (S500). The decoding apparatus may derive neighboring reference samples for the current block (S510). The decoding apparatus generates prediction samples in the current block based on the intra prediction mode / type and the neighboring reference samples (S520). In this case, the decoding apparatus may perform a prediction sample filtering procedure. The prediction sample filtering may be referred to as post filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0091] The decoding apparatus generates a residual sample for the current block based on the received residual information (S530). The decoding apparatus generates a reconstructed sample for the current block based on the predicted sample and the residual sample, and may derive a reconstructed block including the reconstructed sample (S540). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like may be further applied to the reconstructed picture.
[0092] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.
[0093] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information includes intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information includes at least one of reference sample line information (ex. intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (ex. intra_subpartitions_mode_flag) indicating whether the ISP is applied to the block, ISP type information (ex. intra_subpartitions_split_flag) indicating a subpartition split type if the ISP is applied, flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied. Also, the intra prediction type information includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0094] The intra prediction mode information and / or the intra prediction type information may be encoded / decoded by a coding method described in this document. For example, the intra prediction mode information and / or the intra prediction type information may be encoded / decoded through entropy coding (e.g., CABAC, CAVLC).
[0095] FIG. 6 exemplarily illustrates an intra prediction procedure.
[0096] As shown in Fig. 6, as described above, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction execution (prediction sample generation) step. The intra prediction procedure may be performed in an encoding device and a decoding device as described above. In this document, a coding device may include an encoding device and / or a decoding device.
[0097] As shown in FIG. 6, the coding device determines an intra-prediction mode / type (S600).
[0098] The encoding apparatus may determine an intra prediction mode / type to be applied to the current block from among the various intra prediction modes / types described above, and may generate prediction-related information. The prediction-related information may include intra prediction mode information indicating an intra prediction mode to be applied to the current block and / or intra prediction type information indicating an intra prediction type to be applied to the current block. The decoding apparatus may determine an intra prediction mode / type to be applied to the current block based on the prediction-related information.
[0099] The intra prediction mode information may include, for example, flag information (ex.intra_luma_mpm_flag) indicating whether a most probable mode (MPM) or a remaining mode is applied to the current block. If the MPM is applied to the current block, the prediction mode information may further include index information (ex.intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (ex.intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.
[0100] Also, the intra prediction type information may be realized in various forms. As an example, the intra prediction type information includes intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information includes at least one of reference sample line information (ex. intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (ex. intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (ex. intra_subpartitions_split_flag) indicating a subpartition split type if the ISP is applied, flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied. Also, the intra prediction type information includes an MIP flag indicating whether MIP (matrix-based intra prediction) is applied to the current block.
[0101] For example, when intra prediction is applied, the intra prediction mode applied to the current block may be determined using the intra prediction mode of the neighboring blocks. For example, the coding apparatus may select one of the MPM candidates in the MPM (most probable mode) list derived based on the intra prediction modes of the neighboring blocks (e.g., left and / or upper neighboring blocks) of the current block and / or additional candidate modes based on the received MPM index, or may select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on MPM remainder information (remaining intra prediction mode information). The MPM list may be configured to include or not include the planar mode as a candidate. For example, if the MPM list includes the planar mode as a candidate, the MPM list may have six candidates, and if the MPM list does not include the planar mode as a candidate, the MPM list may have five candidates. If the MPM list does not include a planar mode as a candidate, a not planar flag (ex. intra_luma_not_planar_flag) indicating that the intra prediction mode of the current block is not a planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not planar flag may be signaled when the value of the MPM flag is 1. Also, the MPM index may be signaled when the value of the not planar flag is 1. Here, the reason why the MPM list is configured not to include a planar mode as a candidate is that the planar mode is always considered as an MPM, rather than the planar mode being not an MPM, and therefore a flag (not planar flag) is signaled first to first check whether the mode is a planar mode.
[0102] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planar mode) or among the remaining mode may be indicated based on an MPM flag (ex.intra_luma_mpm_flag). A value of 1 of the MPM flag may indicate that the intra prediction mode for the current block is among the MPM candidates (and planar mode), and a value of 0 of the MPM flag may indicate that the intra prediction mode for the current block is not among the MPM candidates (and planar mode). A value of 0 of the not planar flag (ex.intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 of the not planar flag may indicate that the intra prediction mode for the current block is not the planar mode. The MPM index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information may index the remaining intra prediction modes not included in the MPM candidates (and planar modes) among all intra prediction modes in order of prediction mode numbers, and may indicate one of them. The intra prediction mode may be an intra prediction mode for a luma component (sample). Hereinafter, the intra prediction mode information may include at least one of the MPM flag (ex.intra_luma_mpm_flag), the not planar flag (ex.intra_luma_not_planar_flag), the MPM index (ex.mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).In this document, an MPM list may be referred to by various terms, such as an MPM candidate list, a candModeList, etc.
[0103] When MIP is applied to the current block, a separate MPM flag (ex.intra_mip_mpm_flag), MPM index (ex.intra_mip_mpm_idx), and remaining intra-prediction mode information (ex.intra_mip_mpm_remainder) for MIP may be signaled, and the not planar flag may not be signaled.
[0104] In other words, when an image is generally divided into blocks, the current block to be coded and neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are highly likely to have the same or similar intra-prediction modes. Therefore, the encoder can use the intra-prediction modes of the neighboring blocks to encode the intra-prediction mode of the current block.
[0105] A coding apparatus may configure a most probable modes (MPM) list for a current block. The MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency in consideration of similarity between a current block and a neighboring block when performing intra prediction mode coding. As described above, the MPM list may be configured to include a planar mode or may be configured to exclude a planar mode. For example, if the MPM list includes a planar mode, the number of candidates in the MPM list may be six. And, if the MPM list does not include a planar mode, the number of candidates in the MPM list may be five.
[0106] The encoding apparatus may perform prediction based on various intra prediction modes and may determine an optimal intra prediction mode based on rate-distortion optimization (RDO) based on the prediction. In this case, the encoding apparatus may determine the optimal intra prediction mode using only the MPM candidates and planar modes configured in the MPM list, or may determine the optimal intra prediction mode using not only the MPM candidates and planar modes configured in the MPM list but also the remaining intra prediction modes. Specifically, for example, if the intra prediction type of the current block is a specific type other than a normal intra prediction type (e.g., LIP, MRL, or ISP), the encoding apparatus may determine the optimal intra prediction mode by considering only the MPM candidates and planar modes as intra prediction mode candidates for the current block. That is, in this case, the intra prediction mode for the current block may be determined from the MPM candidates and planar modes, and in this case, the MPM flag may not be encoded / signaled. In this case, the decoding device can infer that the MPM flag is 1 even if the MPM flag is not separately signaled.
[0107] Meanwhile, in general, if the intra prediction mode of the current block is not a planar mode but is one of the MPM candidates in the MPM list, the encoding device generates an MPM index (mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not in the MPM list, the encoding device generates MPM remainder information (remaining intra prediction mode information) that points to the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list (and planar mode). The MPM remainder information may include, for example, an intra_luma_mpm_remainder syntax element.
[0108] The decoding device obtains intra prediction mode information from a bitstream. As described above, the intra prediction mode information may include at least one of an MPM flag, a not planar flag, an MPM index, and MPM remainder information (remaining intra prediction mode information). The decoding device may configure an MPM list. The MPM list is configured in the same manner as the MPM list configured in the encoding device. That is, the MPM list may include intra prediction modes of neighboring blocks, and may further include a specific intra prediction mode according to a predetermined method.
[0109] The decoding apparatus may determine an intra prediction mode of the current block based on the MPM list and the intra prediction mode information. For example, when the value of the MPM flag is 1, the decoding apparatus may derive a planar mode as the intra prediction mode of the current block (based on a not planar flag), or may derive a candidate indicated by the MPM index among MPM candidates in the MPM list as the intra prediction mode of the current block. Here, the MPM candidate may represent only candidates included in the MPM list, or may include not only candidates included in the MPM list but also planar modes that can be applied when the value of the MPM flag is 1.
[0110] As another example, when the value of the MPM flag is 0, the decoding device may derive the intra prediction mode pointed to by the remaining intra prediction mode information (which may be referred to as mpm remainder information) from among the remaining intra prediction modes not included in the MPM list and planar mode as the intra prediction mode of the current block. Meanwhile, as yet another example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP, etc.), the decoding device may derive the planar mode or a candidate pointed to by the MPM flag in the MPM list as the intra prediction mode of the current block without parsing / decoding / checking the MPM flag.
[0111] The coding apparatus derives neighboring reference samples of the current block (S610). When intra prediction is applied to the current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a total of 2×nH samples adjacent to the left boundary and bottom-left of the current block having a size of nW×nH, a total of 2×nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0112] On the other hand, when MRL is applied (i.e., when the value of the MRL index is greater than 0), the neighboring reference samples may be located on the 1st or 2nd line, not the 0th line, adjacent to the current block on the left / top side, and in this case, the number of neighboring reference samples may be further increased.On the other hand, when ISP is applied, the neighboring reference samples may be derived in sub-partition units.
[0113] The coding apparatus performs intra prediction on the current block to derive a prediction sample (S620). The coding apparatus may derive the prediction sample based on the intra prediction mode / type and the surrounding samples. The coding apparatus may derive a reference sample according to the intra prediction mode of the current block from among surrounding reference samples of the current block, and may derive a prediction sample of the current block based on the reference sample.
[0114] Meanwhile, when inter prediction is applied, a prediction unit of an encoding device / decoding device may perform inter prediction in units of blocks to derive a prediction sample. Inter prediction may represent a prediction derived in a manner that is dependent on data elements (ex. sample values or motion information) of picture(s) other than the current picture. When inter prediction is applied to a current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) identified by a motion vector on a reference picture pointed to by a reference picture index. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, motion information of the current block may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.) information. When inter prediction is applied, the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring blocks may be the same or different. The temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture including the temporal neighboring blocks may be called collocated pictures (colPic).For example, a motion information candidate list may be constructed based on neighboring blocks of the current block, and flag or index information indicating which candidate is selected (used) to derive a motion vector and / or a reference picture index of the current block may be signaled. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected neighboring block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor, and a motion vector difference may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[0115] The motion information may include L0 motion information and / or L1 motion information depending on an inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). A motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and a motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. Prediction based on an L0 motion vector may be referred to as an L0 prediction, prediction based on an L1 motion vector may be referred to as an L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as a pairwise (Bi) prediction. Here, the L0 motion vector may represent a motion vector associated with a reference picture list L0 (L0), and the L1 motion vector may represent a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may include pictures that are earlier than the current picture in output order as reference pictures, and the reference picture list L1 may include pictures that are later than the current picture in output order. The previous picture may be referred to as a forward (reference) picture, and the subsequent picture may be referred to as a backward (reference) picture. The reference picture list L0 may further include subsequent pictures as reference pictures in output order from the current picture. In this case, the previous picture may be indexed first in the reference picture list L0, and the subsequent picture may be indexed next. The reference picture list L1 may further include previous pictures as reference pictures in output order from the current picture. In this case, the subsequent picture may be indexed first in the reference picture list 1, and the previous picture may be indexed next. Here, the output order may correspond to a picture order count (POC) order.
[0116] A video / image encoding procedure based on inter prediction may generally include, for example:
[0117] FIG. 7 illustrates an example of an inter-prediction based video / image encoding method.
[0118] The encoding apparatus performs inter prediction on a current block (S700). The encoding apparatus may derive an inter prediction mode and motion information of the current block and generate a prediction sample of the current block. Here, the inter prediction mode determination, motion information derivation, and prediction sample generation procedures may be performed simultaneously, or any one procedure may be performed prior to the other procedures. For example, the inter prediction unit of the encoding apparatus may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and the prediction mode determination unit may determine a prediction mode for the current block, the motion information derivation unit may derive motion information of the current block, and the prediction sample derivation unit may derive a prediction sample of the current block. For example, the inter prediction unit of the encoding apparatus may search for a block similar to the current block within a certain area (search area) of a reference picture through motion estimation, and derive a reference block whose difference with the current block is minimum or equal to or less than a certain criterion. Based on this, a reference picture index indicating a reference picture in which the reference block is located may be derived, and a motion vector may be derived based on a position difference between the reference block and the current block. The encoding apparatus may determine a mode to be applied to the current block from among various prediction modes. The encoding apparatus may compare RD costs for the various prediction modes to determine an optimal prediction mode for the current block.
[0119] For example, when a skip mode or a merge mode is applied to the current block, the encoding apparatus may construct a merge candidate list (to be described later) and derive a reference block whose difference between the current block and the current block is minimum or equal to or less than a certain criterion among reference blocks indicated by merge candidates included in the merge candidate list. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and signaled to the decoding apparatus. Motion information of the current block may be derived using motion information of the selected merge candidate.
[0120] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may construct an (A)MVP candidate list described below, and may use a motion vector of a selected MVP candidate among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, a motion vector indicating a reference block derived by the above-mentioned motion estimation may be used as the motion vector of the current block, and an MVP candidate having a motion vector with the smallest difference from the motion vector of the current block among the MVP candidates may become the selected MVP candidate. A motion vector difference (MVD), which is a difference obtained by subtracting the MVP from the motion vector of the current block, may be derived. In this case, information regarding the MVD may be signaled to the decoding apparatus. In addition, when the (A)MVP mode is applied, the value of the reference picture index may be configured as reference picture index information and separately signaled to the decoding apparatus.
[0121] The encoding apparatus may derive a residual sample based on the predicted sample (S710). The encoding apparatus may derive the residual sample through a comparison between an original sample of the current block and the predicted sample.
[0122] The encoding apparatus encodes image information including prediction information and residual information (S720). The encoding apparatus may output the encoded image information in a bitstream form. The prediction information may include prediction mode information (ex. skip flag, merge flag or mode index, etc.) and information on motion information as information related to the prediction procedure. The information on the motion information may include candidate selection information (ex. merge index, mvp flag or mvp index) which is information for deriving a motion vector. In addition, the information on the motion information may include the above-mentioned information on MVD and / or reference picture index information. In addition, the information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information on the residual sample. The residual information may include information on quantized transform coefficients for the residual sample.
[0123] The output bitstream can be stored on a (digital) recording medium and transmitted to the decoding device, or can be transmitted to the decoding device via a network.
[0124] Meanwhile, as described above, the encoding apparatus can generate a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference sample and the residual sample. This is because the encoding apparatus derives the same prediction result as that performed by the decoding apparatus, thereby improving coding efficiency. Therefore, the encoding apparatus can store the reconstructed picture (or reconstructed sample, reconstructed block) in a memory and use it as a reference picture for inter prediction. As described above, an in-loop filtering procedure, etc. can be further applied to the reconstructed picture.
[0125] A video / image decoding procedure based on inter prediction may generally include, for example:
[0126] FIG. 8 illustrates an example of an inter-prediction based video / image decoding method.
[0127] As shown in Fig. 8, the decoding apparatus may perform operations corresponding to those performed by the encoding apparatus, such as performing prediction for a current block based on received prediction information, and deriving a prediction sample.
[0128] Specifically, the decoding device may determine a prediction mode for the current block based on received prediction information (S800). The decoding device may determine which inter prediction mode is applied to the current block based on prediction mode information in the prediction information.
[0129] For example, it may be determined whether the merge mode or (A)MVP mode is applied to the current block based on the merge flag, or one of various inter prediction mode candidates may be selected based on the mode index. The inter prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter prediction modes described below.
[0130] The decoding apparatus derives motion information of the current block based on the determined inter prediction mode (S810). For example, when a skip mode or a merge mode is applied to the current block, the decoding apparatus may form a merge candidate list (described later) and select one merge candidate from among the merge candidates included in the merge candidate list. The selection may be made based on the above-mentioned selection information (merge index). The motion information of the selected merge candidate may be used to derive motion information of the current block. The motion information of the selected merge candidate may be used as motion information of the current block.
[0131] As another example, when the (A)MVP mode is applied to the current block, the decoding apparatus may construct an (A)MVP candidate list described below, and may use a motion vector of a selected MVP candidate among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. The selection may be performed based on the selection information (mvp flag or mvp index) described above. In this case, the MVD of the current block may be derived based on information on the MVD, and the motion vector of the current block may be derived based on the MVP of the current block and the MVD. Also, the reference picture index of the current block may be derived based on the reference picture index information. A picture pointed to by the reference picture index in a reference picture list for the current block may be derived as a reference picture referenced for inter prediction of the current block.
[0132] On the other hand, as described below, the motion information of the current block may be derived without constructing a candidate list, and in this case, the motion information of the current block may be derived according to a procedure disclosed in a prediction mode described below. In this case, the candidate list construction as described above may be omitted.
[0133] The decoding apparatus may generate a prediction sample for the current block based on the motion information of the current block (S820). In this case, the reference picture may be derived based on a reference picture index of the current block, and the prediction sample for the current block may be derived using a sample of a reference block to which the motion vector of the current block points on the reference picture. In this case, as described below, a prediction sample filtering procedure may be further performed on all or some of the prediction samples of the current block, depending on the circumstances.
[0134] For example, the inter prediction unit of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and may determine a prediction mode for the current block based on prediction mode information received by the prediction mode determination unit, derive motion information (such as a motion vector and / or a reference picture index) of the current block based on information regarding the motion information received by the motion information derivation unit, and derive a prediction sample of the current block by the prediction sample derivation unit.
[0135] The decoding apparatus generates a residual sample for the current block based on the received residual information (S830). The decoding apparatus generates a reconstructed sample for the current block based on the predicted sample and the residual sample, and may generate a reconstructed picture based on the reconstructed sample (S840). Thereafter, an in-loop filtering procedure, etc. may be further applied to the reconstructed picture, as described above.
[0136] FIG. 9 exemplarily illustrates an inter prediction procedure.
[0137] As shown in Fig. 9, as described above, the inter prediction procedure may include an inter prediction mode determination step, a motion information derivation step according to the determined prediction mode, and a prediction execution step (prediction sample generation) step based on the derived motion information. The inter prediction procedure may be performed by an encoding device and a decoding device as described above. In this document, a coding device may include an encoding device and / or a decoding device.
[0138] As shown in FIG. 9, the coding apparatus determines an inter prediction mode for a current block (S900). Various inter prediction modes may be used for prediction of a current block in a picture. For example, various modes such as merge mode, skip mode, motion vector prediction mode (MVP), affine mode, sub-block merge mode, and merge with MVD mode (MMVD) may be used. Decoder side motion vector refinement mode (DMVR), adaptive motion vector resolution mode (AMVR), Bi-prediction with CU-level weight (BCW), Bi-directional optical flow (BDOF), etc. may be used in addition to or instead as an additional mode. The affine mode may also be referred to as an affine motion prediction mode. The MVP mode may also be referred to as an advanced motion vector prediction mode (AMVP). In this document, some modes and / or motion information candidates derived by some modes may be included as one of the motion information related candidates of other modes. For example, an HMVP candidate can be added as a merge candidate of the merge / skip mode, or can be added as an MVP candidate of the MVP mode. When the HMVP candidate is used as a motion information candidate of the merge mode or skip mode, the HMVP candidate can be referred to as an HMVP merge candidate.
[0139] Prediction mode information indicating an inter prediction mode of a current block may be signaled from an encoding apparatus to a decoding apparatus. The prediction mode information may be included in a bitstream and received by the decoding apparatus. The prediction mode information may include index information indicating one of a plurality of candidate modes. Alternatively, the inter prediction mode may be indicated through hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether a skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether a merge mode is applied, and if the merge mode is not applied, an MVP mode may be indicated to be applied, or a flag for additional classification may be further signaled. The affine mode may be signaled in an independent mode, or may be signaled in a mode dependent on the merge mode or MVP mode. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0140] The coding apparatus derives motion information for the current block (S910). The motion information may be derived based on the inter prediction mode.
[0141] The coding apparatus may perform inter prediction using motion information of the current block. The encoding apparatus may derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding apparatus may search for a similar reference block with high correlation using an original block in an original picture for the current block in a fractional pixel unit within a determined search range in the reference picture, and may derive motion information through this. The similarity of the blocks may be derived based on a difference in sample values based on phase. For example, the similarity of the blocks may be calculated based on the SAD between the current block (or a template of the current block) and the reference block (or a template of the reference block). In this case, the motion information may be derived based on the reference block with the smallest SAD in the search range. The derived motion information may be signaled to the decoding apparatus by various methods based on the inter prediction mode.
[0142] The coding apparatus performs inter prediction based on motion information for the current block (S920). The coding apparatus may derive a predictive sample (or samples) for the current block based on the motion information. The current block including the predictive sample may be referred to as a predicted block.
[0143] Meanwhile, as described above, the encoding device can perform various encoding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. Also, the decoding device can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration and quantized values of transform coefficients related to residuals.
[0144] For example, the above coding method can be performed as described below.
[0145] FIG. 10 illustrates an example of CABAC (context-adaptive binary arithmetic coding) for encoding a syntax element. For example, in the CABAC encoding process, if an input signal is a syntax element that is not a binary value, an encoding device may binarize the value of the input signal to convert the input signal into a binary value. Also, if the input signal is already a binary value (i.e., the value of the input signal is a binary value), binarization may be bypassed. Here, each binary digit 0 or 1 constituting a binary value may be referred to as a bin. For example, if the binary string after binarization is 110, each of 1, 1, and 0 may be referred to as one bin. The bin (etc.) for one syntax element may represent the value of the syntax element.
[0146] The binarized bins of the syntax elements may then be input to a regular encoding engine or a bypass encoding engine. The regular encoding engine of the encoding device may assign a context model reflecting a probability value to the bin and encode the bin based on the assigned context model. The regular encoding engine of the encoding device may update the context model for each bin after encoding the bin. The bins encoded as described above may be referred to as context-coded bins.
[0147] Meanwhile, when the binarized bins of the syntax elements are input to the bypass encoding engine, they can be coded as follows. For example, the bypass encoding engine of the encoding device omits a procedure of estimating a probability for an input bin and a procedure of updating a probability model applied to the bin after encoding. When bypass encoding is applied, the encoding device can encode the input bin by applying a uniform probability distribution instead of assigning a context model, thereby improving the encoding speed. The bins encoded as described above can be referred to as bypass bins.
[0148] Entropy decoding can refer to a process in which the above-mentioned entropy encoding process is performed in reverse order.
[0149] For example, when a syntax element is decoded based on a context model, a decoding device can receive a bin corresponding to the syntax element through a bitstream, determine a context model using the syntax element and decoding information of a block to be decoded or a neighboring block, or information of a symbol / bin decoded in a previous step, predict an occurrence probability of the received bin according to the determined context model, and derive a value of the syntax element by performing arithmetic decoding of the bin. Then, the context model of the bin to be decoded next can be updated to the determined context model.
[0150] Also, for example, when a syntax element is bypass decoded, the decoding device may receive a bin corresponding to the syntax element through a bitstream and may decode the input bin by applying a uniform probability distribution. In this case, the decoding device may omit a procedure of deriving a context model of the syntax element and a procedure of updating the context model applied to the bin after decoding.
[0151] As described above, the residual samples may be derived into quantized transform coefficients through a transform and quantization process. The quantized transform coefficients may also be referred to as transform coefficients. In this case, the transform coefficients in a block may be signaled in the form of residual information. The residual information may include a residual coding syntax. That is, an encoding device may construct a residual coding syntax as residual information, encode the residual coding syntax, and output the resulting bitstream, and a decoding device may decode the residual coding syntax from the bitstream to derive residual (quantized) transform coefficients. The residual coding syntax may include syntax elements indicating whether a transform has been applied to the block, where the last valid transform coefficient in the block is located, whether a valid transform coefficient exists in a subblock, and what the magnitude / sign of the valid transform coefficient is, as described below.
[0152] For example, the (quantized) transform coefficients (i.e., the residual information) may be encoded and / or decoded based on syntax elements such as transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gt3_flag, abs_remainder, coeff_sign_flag, dec_abs_level, mts_idx, etc. Syntax elements related to residual data encoding / decoding may be represented as follows:
[0153] [Table 1-1]
[0154] [Table 1-2]
[0155] [Table 1-3]
[0156] [Table 1-4]
[0157] Transform_skip_flag indicates whether or not transform is skipped for an associated block. The transform_skip_flag may be a syntax element of a transform skip flag. The associated block may be a coding block (CB) or a transform block (TB). With respect to the transform (and quantization) and residual coding procedures, CB and TB may be used interchangeably. For example, as described above, residual samples may be derived for a CB, and (quantized) transform coefficients may be derived through transform and quantization for the residual samples. Through the residual coding procedure, information (e.g., syntax elements, etc.) efficiently indicating the position, magnitude, code, etc. of the (quantized) transform coefficients may be generated and signaled. The quantized transform coefficients may be simply referred to as transform coefficients, etc. In general, if the CB is not larger than the maximum TB, the size of the CB may be the same as the size of the TB, and in this case, the target block to be transformed (and quantized) and residual coded may be referred to as a CB or a TB. On the other hand, if CB is greater than the maximum TB, the target block to be transformed (and quantized) and residually coded may be called TB. Hereinafter, it will be described that syntax elements related to residual coding are signaled in units of transform blocks TB, but this is merely an example, and as described above, the TB may be used interchangeably with the coding block CB.
[0158] On the other hand, the syntax elements etc. signaled after the conversion skip flag is signaled may be the same as the syntax elements etc. disclosed in Table 2 described below, and a specific explanation of the syntax elements etc. is as described below.
[0159] [Table 2-1]
[0160]
Table 2-2
[0161]
Table 2-3
[0162]
Table 3-1
[0163]
Table 3-2
[0164]
Table 3-3
[0165]
Table 3-4
[0166]
Table 3-5
[0167]
Table 3-6
[0168]
Table 4-1
[0169]
Table 4-2
[0170] [Table 4-3]
[0171] According to the present embodiment, as shown in Table 2, the residual coding may be branched according to the value of the syntax element transform_skip_flag of the transform skip flag. That is, depending on the value of the transform skip flag (depending on whether the transform skip is applied), different syntax elements may be used for the residual coding. Residual coding used when the transform skip is not applied (i.e., the transform is applied) may be referred to as regular residual coding (RRC), and residual coding when the transform skip is not applied (i.e., the transform is not applied) may be referred to as transform skip residual coding (TSRC). In addition, the regular residual coding may be referred to as general residual coding. In addition, the regular residual coding may be referred to as a regular residual coding syntax structure, and the transform skip residual coding may be referred to as a transform skip residual coding syntax structure. Table 3 may represent syntax elements for residual coding when the value of transform_skip_flag is 0, i.e., when a transform is applied, and Table 4 may represent syntax elements for residual coding when the value of transform_skip_flag is 1, i.e., when a transform is not applied.
[0172] Specifically, for example, a transform skip flag indicating whether or not a transform block is to be skipped may be parsed, and it may be determined whether the transform skip flag is 1. If the value of the transform skip flag is 0, syntax elements for residual coefficients of a transform block, such as last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, sb_coded_flag, sig_coeff_flag, abs_level_gtx_flag, par_level_flag, abs_remainder, coeff_sign_flag, and / or dec_abs_level, may be parsed, as shown in Table 3, and the residual coefficients may be derived based on the syntax elements. In this case, the syntax elements may be parsed sequentially, or the parsing procedure may be changed. Also, the abs_level_gtx_flag may indicate abs_level_gt1_flag and / or abs_level_gt3_flag. For example, abs_level_gtx_flag[n][0] may be an example of a first transform coefficient level flag (abs_level_gt1_flag), and the abs_level_gtx_flag[n][1] may be an example of a second transform coefficient level flag (abs_level_gt3_flag).
[0173] Referring to Table 3, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, sb_coded_flag, sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_remainder, coeff_sign_flag, and / or dec_abs_level may be encoded / decoded. Meanwhile, the sb_coded_flag may be denoted as coded_sub_block_flag.
[0174] In one embodiment, the encoding device may encode (x, y) position information of the last non-zero transform coefficient in a transform block based on 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, the last_sig_coeff_x_prefix represents a prefix of a column position of a last significant coefficient in a scanning order in a transform block, the last_sig_coeff_y_prefix represents a prefix of a row position of a last significant coefficient in the scanning order in the transform block, the last_sig_coeff_x_suffix represents a suffix of a column position of a last significant coefficient in the scanning order in the transform block, and the last_sig_coeff_y_suffix represents a suffix of a row position of a last significant coefficient in the scanning order in the transform block. Here, the significant coefficient may represent the non-zero coefficient. In addition, the scan order may be a top right diagonal scan order. Alternatively, the scan order may be a horizontal scan order or a vertical scan order. The scan order may be determined based on whether intra / inter prediction is applied to a current block (CB, or CB including TB) and / or a specific intra / inter prediction mode.
[0175] Next, the encoding device divides the transform block into 4x4 sub-blocks, etc., and then can use a 1-bit syntax element coded_sub_block_flag for each 4x4 sub-block to indicate whether or not there is a non-zero coefficient in the current sub-block.
[0176] If the value of coded_sub_block_flag is 0, there is no more information to transmit, so the encoding device can end the encoding process for the current sub-block. Conversely, if the value of coded_sub_block_flag is 1, the encoding device can continue the encoding process for sig_coeff_flag. Since the last sub-block containing a non-zero coefficient does not need to be coded for coded_sub_block_flag, and since the sub-block containing DC information of the transform block is highly likely to contain a non-zero coefficient, coded_sub_block_flag can be assumed to be 1 without being coded.
[0177] If the value of coded_sub_block_flag is 1 and it is determined that a non-zero coefficient exists in the current sub-block, the encoding apparatus may encode sig_coeff_flag having a binary value according to the reverse scanned order. The encoding apparatus may encode a 1-bit syntax element sig_coeff_flag for each transform coefficient according to the scan order. If the value of the transform coefficient at the current scan position is not 0, the value of sig_coeff_flag may be 1. Here, in the case of a sub-block including the last non-zero coefficient, since sig_coeff_flag does not need to be encoded for the last non-zero coefficient, the encoding process for the sub-block may be omitted. Level information encoding may be performed only when sig_coeff_flag is 1, and four syntax elements may be used in the level information encoding process. More specifically, each sig_coeff_flag[xC][yC" may indicate whether the level (value) of the corresponding transform coefficient at each transform coefficient position (xC, yC) in the current TB is non-zero. In one embodiment, the sig_coeff_flag may correspond to an example of a syntax element of a significant coefficient flag indicating whether the quantized transform coefficient is a significant coefficient other than zero.
[0178] The remaining level value after encoding for sig_coeff_flag may be derived as follows: That is, a syntax element remAbsLevel representing a level value to be encoded may be derived as follows: remAbsLevel=[sig_coeff_flag+remAbsLevel+remAbsLevel]=[sig_coeff_flag+remAbsLevel].
[0179]
number
[0180] Here, coeff means the actual transform coefficient value.
[0181] Also, abs_level_gt1_flag may indicate whether remAbsLevel at the corresponding scanning position (n) is greater than 1. For example, if the value of abs_level_gt1_flag is 0, the absolute value of the transform coefficient at the corresponding position may be 1. Also, if the value of abs_level_gt1_flag is 1, the remAbsLevel, which indicates a level value to be coded later, may be updated according to the following formula.
[0182]
number
[0183] In addition, the least significant coefficient (LSB) value of remAbsLevel described in the above Equation 2 can be encoded as shown in the following Equation 3 via par_level_flag.
[0184]
number
[0185] Here, "par_level_flag[n" can represent the parity of the transform coefficient level (value) at scanning position n.
[0186] The transform coefficient level value remAbsLevel to be encoded after par_level_flag encoding can be updated according to the following equation.
[0187]
number
[0188] abs_level_gt3_flag may indicate whether remAbsLevel at the corresponding scanning position (n) is greater than 3. Encoding for abs_remainder may be performed only if abs_level_gt3_flag is 1. The relationship between the actual transform coefficient value coeff and each syntax element may be as follows.
[0189]
number
[0190] The following table shows examples related to Equation 5 above.
[0191] [Table 5]
[0192] Here, |coeff| represents a transform coefficient level (value) and may be expressed as AbsLevel for the transform coefficient. Also, the sign of each coefficient may be encoded using coeff_sign_flag, which is a 1-bit symbol.
[0193] Also, for example, when the value of the transform skip flag is 1, syntax elements for the residual coefficients of the transform block, such as sb_coded_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gtx_flag, par_level_flag, and / or abs_remainder, may be parsed as shown in Table 4, and the residual coefficients may be derived based on the syntax elements. In this case, the syntax elements may be parsed sequentially, or the parsing procedure may be changed. Also, the abs_level_gtx_flag may indicate abs_level_gt1_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, and / or abs_level_gt9_flag. For example, abs_level_gtx_flag[n][j] may be a flag indicating whether the absolute value or level (value) of a transform coefficient at scanning position n is greater than (j<<1)+1, where (j<<1)+1 may be replaced with a predetermined threshold value such as a first threshold value or a second threshold value, depending on the case.
[0194] On the other hand, CABAC provides high performance but has a drawback of poor throughput performance. This is due to the regular encoding engine of CABAC, and regular encoding (i.e., encoding through the regular encoding engine of CABAC) uses the probability state and range updated through the encoding of the previous bin, so it shows high data dependency and requires a lot of time to read the probability interval and determine the current state. The throughput problem of CABAC can be solved by limiting the number of context-coded bins. For example, as shown in Table 1 or Table 3 above, the sum of bins used to express sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag can be limited to a number according to the size of the block. In addition, for example, as shown in Table 4 above, the sum of the bins used to represent sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, and abs_level_gt9_flag can be limited to a number depending on the size of the block.As an example, if the block is a 4x4 size block, the sum of bins etc. for sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag or sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, abs_level_gt9_flag may be limited to 32 (or, for example, 28), and if the block is a 2x2 size block, the sum of bins etc. for sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag may be limited to 8 (or, for example, 7). The limited number of bins may be indicated by remBinsPass1 or RemCcbs. Alternatively, for example, for higher CABAC throughput, the number of context coded bins may be limited for a block (CB or TB) including a CG to be coded. In other words, the number of context coded bins may be limited in block (CB or TB) units. For example, if the size of the current block is 16×16, the number of context coded bins for the current block may be limited to 1.75 times the number of pixels of the current block, i.e., 448, regardless of the current CG.
[0195] In this case, when the encoding apparatus uses all of the limited number of context coding bins to code the context elements, it can perform bypass coding by binarizing the remaining coefficients through a binarization method for the coefficients described below without using context coding. In other words, for example, when the number of context coded bins coded for 4×4 CG is 32 (or, for example, 28), or the number of context coded bins coded for 2×2 CG is 8 (or, for example, 7), sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag coded to the context coding bins may not be coded any more, and may be coded to dec_abs_level immediately. Or, for example, if the number of context coded bins coded for a 4x4 block is limited to 1.75 times the number of pixels in the entire block, i.e., 28, sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag coded to the context coded bins may not be coded any further, and may be immediately coded to dec_abs_level as shown in Table 6 below.
[0196] [Table 6]
[0197] The |coeff| value can be derived based on dec_abs_level. In this case, the transform coefficient value |coeff| can be derived as follows:
[0198]
number
[0199] Also, the coeff_sign_flag may represent the sign of the transform coefficient level at the corresponding scanning position (n), i.e., the coeff_sign_flag may represent the sign of the transform coefficient at the corresponding scanning position (n).
[0200] FIG. 11 is a diagram illustrating an example of transform coefficients in a 4×4 block.
[0201] The 4x4 blocks in Figure 11 show an example of quantized coefficients, etc. The blocks shown in Figure 11 can be 4x4 transform blocks or 4x4 sub-blocks of 8x8, 16x16, 32x32, 64x64 transform blocks. The 4x4 blocks in Figure 11 can represent luma blocks or chroma blocks.
[0202] Meanwhile, as described above, when an input signal is a syntax element that is not a binary value, the encoding apparatus can binarize the value of the input signal to convert the input signal into a binary value. Also, the decoding apparatus can decode the syntax element to derive a binarized value (i.e., a binarized bin) of the syntax element, and can de-binarize the binarized value to derive the value of the syntax element. The binarization process can be performed as a Truncated Rice (TR) binarization process, a k-th order Exp-Golomb (EGk) binarization process, a k-th order Limited Exp-Golomb (Limited k-th order Exp-Golomb, Limited EGk), or a Fixed-length (FL) binarization process, which will be described later. Also, a debinarization process may represent a process of deriving the value of the syntax element based on the TR binarization process, the EGk binarization process, or the FL binarization process.
[0203] For example, the TR binarization process can be performed as follows.
[0204] The input of the TR binarization process may be the TR binarization request and syntax elements cMax and cRiceParam, and the output of the TR binarization process may be the TR binarization for the value symbolVal corresponding to the bin string.
[0205] Specifically, as an example, if a suffix bin string exists for a syntax element, the TR bin string for the syntax element may be a concatenation of a prefix bin string and a suffix bin string, and if the suffix bin string does not exist, the TR bin string for the syntax element may be the prefix bin string. For example, the prefix bin string may be derived as described below.
[0206] The prefix value of the symbolVal for the syntax element can be derived as follows:
[0207]
number
[0208] Here, prefixVal may represent a prefix value of the symbolVal. The prefix of the TR bin string of the syntax element (ie, the prefix bin string) may be derived as described below.
[0209] For example, if the prefixVal is less than cMax>>cRiceParam, the prefix bin string can be a bit string of length prefixVal+1 indexed by binIdx. That is, if the prefixVal is less than cMax>>cRiceParam, the prefix bin string can be a bit string of prefixVal+1 bits pointed to by binIdx. The bin for binIdx less than prefixVal can be equal to 1. Also, the bin for binIdx equal to prefixVal can be equal to 0.
[0210] For example, the bin string derived by unary binarization for the prefixVal can be as shown in the following table.
[0211]
Table 7
[0212] On the other hand, when the prefixVal is not smaller than cMax >> cRiceParam, the prefix bin string can be a bit string with a length of cMax >> cRiceParam and all bits being 1.
[0213] Also, when cMax is greater than symbolVal and cRiceParam is greater than 0, a suffix bin string of the TR bin string may exist. For example, the suffix bin string can be derived as described later.
[0214] The suffix value of the symbolVal for the syntax element can be derived as in the following formula.
[0215]
Equation
[0216] Here, suffixVal can represent the suffix value of the symbolVal.
[0217] The suffix of the TR bin string (i.e., the suffix bin string) can be derived based on the FL binarization process for suffixVal where the cMax value is (1 << cRiceParam) - 1.
[0218] On the other hand, if the value of the input parameter cRiceParam is 0, the TR binarization can be exactly truncated unary binarization, and a cMax value equal to the maximum possible value of the syntax element being decoded can always be used.
[0219] Also, for example, the EGk binarization process can be performed as follows: The syntax elements coded in ue(v) can be Exp-Golomb coded syntax elements.
[0220] As an example, a 0-th order Exp-Golomb (EG0) binarization process can be performed as follows.
[0221] The parsing process for the syntax element may begin by reading the bits starting from the current position in the bitstream, including the first non-zero bit, and counting the number of leading bits such as 0. This process may be represented as follows:
[0222] [Table 8]
[0223] Also, the variable codeNum can be derived as follows:
[0224]
number
[0225] Here, the value returned by read_bits(leadingZeroBits), i.e., the value represented by read_bits(leadingZeroBits), can be interpreted as a binary representation of an unsigned integer for the first recorded most significant bit.
[0226] The structure of the Exp-Golomb code, which separates a bit string into "prefix" bits and "suffix" bits, can be represented as in the following table.
[0227] [Table 9]
[0228] The "prefix" bits may be parsed bits as described above for the leadingZeroBits calculation and may be represented as 0 or 1 in the bit string in Table 9. That is, the bit strings disclosed as 0 or 1 in Table 9 above may represent the prefix bit string. The "suffix" bits may be parsed bits in the codeNum calculation and may be represented as xi in Table 9 above. That is, the bit strings disclosed as xi in Table 9 above may represent the suffix bit string. Here, i may be a value ranging from 0 to LeadingZeroBits-1. Also, each xi may be equal to 0 or 1.
[0229] The bit string assigned to the codeNum may be as follows:
[0230] [Table 10]
[0231] If the descriptor of a syntax element is ue(v), i.e., if the syntax element is coded with ue(v), the value of the syntax element may be equal to codeNum.
[0232] Also, for example, the EGk binarization process can be performed as follows.
[0233] An input of the EGk binarization process may be a request for EGk binarization, and an output of the EGk binarization process may be an EGk binarization for a value symbolVal corresponding to a bin string.
[0234] The bit string of the EGk binarization process for symbolVal can be derived as follows:
[0235] [Table 11]
[0236] Referring to Table 11 above, a binary value X can be added to the end of the bin string via each call to put(x), where x can be 0 or 1.
[0237] Also, for example, the Limited EGk binarization process can be performed as follows.
[0238] The input of the Limited EGk binarization process may be a request for Limited EGk binarization and a Rice parameter riceParam, a variable representing the binary logarithm of the maximum value log2TransformRange, and a variable representing the maximum prefix extension length maxPreExtLen, and the output of the Limited EGk binarization process may be Limited EGk binarization for a value symbolVal corresponding to a bin string.
[0239] The bit string of the Limited EGk binarization process for symbolVal can be derived as follows:
[0240] [Table 12]
[0241] Also, for example, the FL binarization process can be performed as follows.
[0242] An input of the FL binarization process may be a request for FL binarization and cMax for the syntax element, and an output of the FL binarization process may be an FL binarization for a value symbolVal corresponding to a bin string.
[0243] FL binarization may be implemented using a bit string having a number of bits that is a fixed length of the symbol value symbolVal, where the fixed length bit string may be an unsigned integer bit string. That is, a bit string for the symbol value symbolVal may be derived by FL binarization, and the bit length (i.e., the number of bits) of the bit string may be a fixed length.
[0244] For example, the fixed length can be derived as follows:
[0245]
number
[0246] The indexing of bins for FL binarization may be in a manner that uses values that increase in order from the most significant bit to the least significant bit. For example, the bin index associated with the most significant bit may be binIdx=0.
[0247] Meanwhile, for example, a binarization process for the syntax element abs_remainder of the residual information can be performed as follows.
[0248] The input of the binarization process for the abs_remainder may be a binarization request for the syntax element abs_remainder[n], a color component cIdx, and a luma position (x0, y0), which may refer to the top left sample of the current luma transform block based on the top left luma sample of the picture.
[0249] An output of the binarization process for the abs_remainder may be the binarization of the abs_remainder (i.e., a binarized bin string of the abs_remainder). The binarization process may derive an available bin string for the abs_remainder, etc.
[0250] The Rice parameter cRiceParam for the abs_remainder[n] can be derived through a Rice parameter derivation process that is executed by inputting the hue component cIdx, the luma position (x0, y0), the current coefficient scan position (xC, yC), log2TbWidth, which is the binary logarithm of the width of the transformation block, and log2TbHeight, which is the binary logarithm of the height of the transformation block. The Rice parameter derivation process will be described in detail later.
[0251] Also, for example, cMax for the currently coded abs_remainder[n] can be derived based on the Rice parameter cRiceParam. The cMax can be derived as follows:
[0252]
number
[0253] Meanwhile, the binarization for the abs_remainder, i.e., the bin string for the abs_remainder, may be a concatenation of a prefix bin string and a suffix bin string if a suffix bin string exists, or the bin string for the abs_remainder may be the prefix bin string if the suffix bin string does not exist.
[0254] For example, the prefix bin string can be derived as described below.
[0255] The prefix value prefixVal of the abs_remainder[n] can be derived as follows:
[0256]
number
[0257] The prefix of the bin string of the abs_remainder[n] (ie, the prefix bin string) may be derived by a TR binarization process on the prefixVal using the cMax and the cRiceParam as inputs.
[0258] If the prefix bin string is identical to a bit string with all bits being 1 and a bit length of 6, then a suffix bin string of the bin string of abs_remainder[n] may exist and may be derived as described below.
[0259] The Rice parameter derivation process for abs_remainder[n] may be as follows.
[0260] The input of the Rice parameter derivation process may be a colour component index cIdx, a luma position (x0, y0), a current coefficient scan position (xC, yC), a binary logarithm of a width of a transform block, log2TbWidth, and a binary logarithm of a height of a transform block, log2TbHeight. The luma position (x0, y0) may refer to the top left sample of a current luma transform block based on the top left luma sample of a picture. Also, an output of the Rice parameter derivation process may be the Rice parameter cRiceParam.
[0261] For example, based on a given component index cIdx and an array AbsLevel[x][y] for a transform block having the top left luma position (x0, y0), the variable locSumAbs can be derived as shown in the pseudo code disclosed in the following table.
[0262] [Table 13]
[0263] Then, based on the given variable locSumAbs, the rice parameter cRiceParam can be derived as shown in the following table.
[0264] [Table 14]
[0265] Also, for example, in the Rice parameter derivation process for abs_remainder[n], baseLevel can be set to 4.
[0266] Alternatively, for example, the Rice parameter cRiceParam may be determined based on whether or not a transform skip is performed for the current block. That is, if no transform is applied to the current TB including the current CG, in other words, if a transform skip is applied to the current TB including the current CG, the Rice parameter cRiceParam may be derived to 1.
[0267] In addition, the suffix value suffixVal of the abs_remainder can be derived as follows:
[0268]
number
[0269] The suffix bin string of the bin string of the abs_remainder can be derived by a Limited EGk binarization process on the suffixVal where k is set to cRiceParam+1, riceParam is set to cRiceParam, log2TransformRange is set to 15, and maxPreExtLen is set to 11.
[0270] Meanwhile, for example, a binarization process for the syntax element dec_abs_level of the residual information can be performed as follows.
[0271] Inputs of the binarization process for the dec_abs_level may be a binarization request for syntax element dec_abs_level[n], a color component cIdx, a luma position (x0, y0), a current coefficient scan position (xC, yC), log2TbWidth, which is the binary logarithm of the width of the transform block, and log2TbHeight, which is the binary logarithm of the height of the transform block. The luma position (x0, y0) may refer to the top left sample of the current luma transform block based on the top left luma sample of the picture.
[0272] An output of the binarization process for the dec_abs_level may be the binarization of the dec_abs_level (i.e., a binarized bin string of the dec_abs_level). The binarization process may derive an available bin string for the dec_abs_level, etc.
[0273] The Rice parameter cRiceParam for the dec_abs_level[n] may be derived through a Rice parameter derivation process that is performed using the hue component cIdx, the luma position (x0, y0), the current coefficient scan position (xC, yC), log2TbWidth, which is the binary logarithm of the width of the transform block, and log2TbHeight, which is the binary logarithm of the height of the transform block, as inputs. The Rice parameter derivation process will be described in detail later.
[0274] Also, for example, cMax for the dec_abs_level[n] can be derived based on the Rice parameter cRiceParam. The cMax can be derived as follows:
[0275]
number
[0276] Meanwhile, the binarization for the dec_abs_level[n], i.e., the bin string for the dec_abs_level[n], may be a concatenation of a prefix bin string and a suffix bin string if a suffix bin string exists, or, if the suffix bin string does not exist, the bin string for the dec_abs_level[n] may be the prefix bin string.
[0277] For example, the prefix bin string can be derived as described below.
[0278] The prefix value prefixVal of the dec_abs_level[n] can be derived as follows:
[0279]
number
[0280] The prefix of the bin string of the dec_abs_level[n] (ie, the prefix bin string) may be derived by a TR binarization process on the prefixVal using the cMax and the cRiceParam as inputs.
[0281] If the prefix bin string is identical to a bit string with all bits being 1 and a bit length of 6, then a suffix bin string of the bin string of the dec_abs_level[n] may exist and may be derived as described below.
[0282] The Rice parameter derivation process for dec_abs_level[n] may be as follows.
[0283] The input of the Rice parameter derivation process may be a color component index cIdx, a luma position (x0, y0), a current coefficient scan position (xC, yC), a binary logarithm of a width of a transform block, log2TbWidth, and a binary logarithm of a height of a transform block, log2TbHeight. The luma position (x0, y0) may refer to the top left sample of a current luma transform block based on the top left luma sample of a picture. Also, an output of the Rice parameter derivation process may be the Rice parameter cRiceParam.
[0284] For example, based on a given component index cIdx and an array AbsLevel[x][y] for a transform block having the top left luma position (x0, y0), the variable locSumAbs can be derived as shown in the pseudo code disclosed in the following table.
[0285] [Table 15]
[0286] Then, based on the given variable locSumAbs, the rice parameter cRiceParam can be derived as shown in the following table.
[0287] [Table 16]
[0288] Also, for example, in the process of deriving the Rice parameter for dec_abs_level[n], baseLevel can be set to 0, and the ZeroPos[n] can be derived as follows:
[0289]
number
[0290] In addition, the suffix value suffixVal of the dec_abs_level[n] can be derived as follows:
[0291]
number
[0292] The suffix bin string of the bin string of the dec_abs_level[n] may be derived through a Limited EGk binarization process on the suffixVal, where k is set to cRiceParam+1, truncSuffixLen is set to 15, and maxPreExtLen is set to 11.
[0293] Meanwhile, the above-mentioned RRC and TSRC may have the following differences.
[0294] - For example, the Rice parameter for the syntax element abs_remainder[] in TSRC may be derived to 1. The Rice parameter cRiceParam of the syntax element abs_remainder[] in RRC may be derived based on the lastAbsRemainder and the lastRiceParam as described above, but the Rice parameter cRiceParam of the syntax element abs_remainder[] in TSRC may be derived to 1. That is, for example, when a transform skip is applied to a current block (e.g., a current TB), the Rice parameter cRiceParam for abs_remainder[] of TSRC for the current block may be derived to 1.
[0295] - Also, for example, referring to Tables 3 and 4, in RRC, abs_level_gtx_flag[n][0] and / or abs_level_gtx_flag[n][1] can be signaled, while in TSRC, abs_level_gtx_flag[n][0], abs_level_gtx_flag[n][1], abs_level_gtx_flag[n][2], abs_level_gtx_flag[n][3] and abs_level_gtx_flag[n][4] can be signaled. Here, the abs_level_gtx_flag[n][0] can be indicated as abs_level_gt1_flag or the first coefficient level flag, the abs_level_gtx_flag[n][1] can be indicated as abs_level_gt3_flag or the second coefficient level flag, the abs_level_gtx_flag[n][2] can be indicated as abs_level_gt5_flag or the third coefficient level flag, the abs_level_gtx_flag[n][3] can be indicated as abs_level_gt7_flag or the fourth coefficient level flag, and the abs_level_gtx_flag[n][4] can be indicated as abs_level_gt9_flag or the fifth coefficient level flag. Specifically, the first coefficient level flag may be a flag indicating whether the coefficient level is greater than a first critical value (e.g., 1), the second coefficient level flag may be a flag indicating whether the coefficient level is greater than a second critical value (e.g., 3), the third coefficient level flag may be a flag indicating whether the coefficient level is greater than a third critical value (e.g., 5), the fourth coefficient level flag may be a flag indicating whether the coefficient level is greater than a fourth critical value (e.g., 7), and the fifth coefficient level flag may be a flag indicating whether the coefficient level is greater than a fifth critical value (e.g., 9).As described above, the TSRC may further 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], in comparison with the RRC.
[0296] Also, for example, in RRC, the syntax element coeff_sign_flag can be bypass coded, but in TSRC, the syntax element coeff_sign_flag can be bypass coded or context coded.
[0297] Meanwhile, this document proposes a method of applying a level mapping technique with a simplified residual data coding structure for a transform skip block. Here, the transform skip block may represent a block to which a transform is not applied. In addition, the level mapping technique may refer to a technique in which an absolute coefficient level, i.e., absCoeffLevel, is mapped to a modified level coded by a method based on the (quantized) left residual sample and upper residual sample of a current residual sample (i.e., current residual coefficient) when BDPCM (block based quantized residual domain differential pulse-code modulation) is not applied to a current block (e.g., CU). Under certain conditions such as lossless coding or near-lossless coding, a simplified residual data coding structure may be used for one coding block or the entire transform block, or for some subblocks / coefficient groups (CGs). Alternatively, in the proposed method, the number of context coded bins, etc. that can be used for residual (data) coding within a Transform Unit (TU) can be limited to a specific threshold, and the simplified residual data coding structure can be used when all the context coded bins that can be used for residual coding of the TU are exhausted (i.e., when the number of context coded bins for residual coding of the TU becomes equal to the specific threshold).
[0298] 12 shows an example of simplified residual data coding for one CG, transform block, or coding block. In the simplified residual coding, syntax elements such as sig_coeff_flag, coeff_sign_flag, and abs_remainder may be coded. The syntax elements for the residual coefficients in the CG, transform block, or coding block may be coded in a top-to-bottom order as shown in FIG. 12. That is, the syntax elements for the residual coefficients in the CG, transform block, or coding block may be coded in the order of sig_coeff_flag, coeff_sign_flag, and abs_remainder.
[0299] The sig_coeff_flag may represent a syntax element for a significant coefficient flag. The sig_coeff_flag may represent whether or not a residual coefficient of a current block (CG, transform block, or coding block) is a non-zero residual coefficient. For example, the sig_coeff_flag may have a value of 0 if the value of the residual coefficient at the corresponding position is 0, and may have a value of 1 if the value is not 0. Also, the coeff_sign_flag may represent a syntax element for a sign flag of the residual coefficient. The sig_coeff_flag may represent the sign of the residual coefficient. For example, the coeff_sign_flag may mean the sign value of the residual coefficient at the corresponding position. There may be various methods for applying the coeff_sign_flag. For example, if the residual coefficient at the position is 0, i.e., if the value of sig_coeff_flag for the residual coefficient is 0, the coeff_sign_flag may not be coded, and for a non-zero residual coefficient, if the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, regardless of the value of sig_coeff_flag for the residual coefficient, if the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive or 0, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, if the residual coefficient is positive, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is negative or 0, the coeff_sign_flag may have a value of 0 (or 1). Also, the abs_remainder may represent a syntax element for remainder level value information or coefficient value related information.For example, the abs_remainder may represent a remainder level value. For example, if the value of sig_coeff_flag for a residual coefficient is 0, the abs_remainder for the residual coefficient may not be coded, and if the value of sig_coeff_flag for a residual coefficient is 1, the abs_remainder may have a value obtained by subtracting 1 from the absolute value of the residual coefficient (absolute value -1).
[0300] Meanwhile, even when regular residual coding is performed, if a specific condition is met, it may be converted to simplified residual data coding as shown in Fig. 12. For example, the specific condition may be when residual information of a corresponding coding block is lossless or adjacent lossless coded and / or when all available context coding bins are exhausted when a TU level context coding bin constraint algorithm is applied.
[0301] 13 shows another example of simplified residual data coding for one CG, transform block, or coding block. In the simplified residual coding, syntax elements such as dec_abs_level and coeff_sign_flag can be coded. The syntax elements for the residual coefficients in the CG, transform block, or coding block can be coded in a top-to-bottom order as shown in FIG. 13. That is, the syntax elements for the residual coefficients in the CG, transform block, or coding block can be coded in the order of dec_abs_level, coeff_sign_flag.
[0302] As shown in FIG 13, the dec_abs_level may represent a syntax element for coefficient value related information, and the coeff_sign_flag may represent a syntax element for a sign flag of the residual coefficient. For example, according to the structure shown in FIG 13, if the residual coefficient is 0, the value of dec_abs_level may be 0, and if the residual coefficient is not 0, the value of dec_abs_level may be the absolute value of the residual coefficient. Also, for example, the coeff_sign_flag may represent the sign value of the residual coefficient at the corresponding position. There may be various methods for applying the coeff_sign_flag. For example, if the residual coefficient at the position is 0, the coeff_sign_flag may not be coded, and for non-zero residual coefficients, if the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, it may be always coded regardless of the dec_abs_level of the residual coefficient, if the residual coefficient is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive or 0, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, if the residual coefficient is positive, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is negative or 0, the coeff_sign_flag may have a value of 0 (or 1).
[0303] Meanwhile, even when regular residual coding is performed, if a specific condition is met, it may be converted to simplified residual data coding as shown in Fig. 13. For example, the specific condition may be when residual information of a corresponding coding block is lossless or adjacent lossless coded and / or when all available context coding bins are exhausted when a TU level context coding bin constraint algorithm is applied, etc.
[0304] 14 shows another example of simplified residual data coding for one CG, transform block, or coding block. In the simplified residual coding, syntax elements such as coeff_sign_flag and dec_abs_level may be coded. The syntax elements for the residual coefficients in the CG, transform block, or coding block may be coded in a top-to-bottom order as shown in FIG. 14. That is, the syntax elements for the residual coefficients in the CG, transform block, or coding block may be coded in the order of coeff_sign_flag and dec_abs_level.
[0305] As shown in Fig. 14, the coeff_sign_flag may represent a syntax element for a sign flag of the residual coefficient, and the dec_abs_level may represent a syntax element for coefficient value related information. For example, if the residual coefficient of a position to be coded is negative, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is positive or 0, the coeff_sign_flag may have a value of 0 (or 1). Alternatively, for example, if the residual coefficient is positive, the coeff_sign_flag may have a value of 1 (or 0), and if the residual coefficient is negative or 0, the coeff_sign_flag may have a value of 0 (or 1).
[0306] Meanwhile, even when regular residual coding is performed, if a specific condition is met, it can be converted to simplified residual data coding as shown in Fig. 14. For example, the specific condition may be when residual information of a corresponding coding block is lossless or adjacent lossless coded and / or when all available context coding bins are exhausted when a TU level context coding bin constraint algorithm is applied, etc.
[0307] Meanwhile, as described above, a level mapping technique for transform skip mode may be used. For example, in the level mapping technique, the value of abs_level_gtx_flag[0] may be used as a value indicating whether level mapping is performed. That is, whether level mapping is performed may be determined based on the value of abs_level_gtx_flag[0]. Therefore, in a simplified residual data coding structure in which abs_level_gtx_flag[0] is not coded, decoding of residual coefficients to which level mapping is applied may not be performed correctly. Therefore, this document proposes a method in which level mapping is not used for coding blocks, transform blocks, coefficient groups, and / or residual coefficients to which simplified residual data coding is applied so that the simplified residual data coding structure of FIG. 12, FIG. 13, or FIG. 14 may be used together with level mapping. According to an embodiment of this document, the simplified residual data coding structure and level mapping may be combined without any problem in residual coding for a transform skip block.
[0308] For example, within one coding block, the residual data coding method for the transform skip block shown in Table 4 and the simplified residual data coding method described above can be mixed, and when the residual data coding for the transform skip block is applied, the level mapping technique shown in Table 4 described above can be applied as is, and when the simplified residual data coding is applied, the level mapping technique can be applied.
[0309] Tables 17 and 18 described below exemplarily show syntax to which the embodiment proposed in this document is applied.
[0310] [Table 17]
[0311] [Table 18]
[0312] The above Table 17 may represent a syntax structure for preventing level mapping from being performed when all available context coding bins (MaxCcbs represents the number of available context coding bins) are exhausted and converted to a simplified residual data coding structure when the context coding bin constraint algorithm is applied. Also, the above Table 18 may represent a syntax structure to which the method proposed in this document is applied when a simplified residual data coding structure is used for a lossless coding block. Here, for example, transquant_bypass_flag shown in Table 18 may be a syntax element indicating whether lossless coding is possible. The transquant_bypass_flag may be signaled at the CU, TU, or picture level.
[0313] Meanwhile, the above Tables 17 and 18 are merely examples of the application of the embodiment proposed in this document, and are not limited thereto. In this document, as an embodiment, it is proposed that when a simplified residual data coding structure is performed, a part of correcting the encoded / decoded level is not performed in order to encode / decode the level-mapped residual coefficient. That is, for example, when all the context coding bins for the current block are used, a method may be proposed in which the residual coefficient of the current block is not derived through level mapping, but is derived using a simplified residual data coding structure. The simplified residual data coding structure may be as described above. For example, when all the context coding bins for the current block are used, the residual coefficient may be derived based on the value of information representing the absolute value and sign information. Also, for example, the above Table 4 may represent an example of the application of the embodiment proposed in this document.
[0314] FIG. 15 is a schematic diagram showing an image encoding method by an encoding device according to the present document. The method disclosed in FIG. 15 may be performed by the encoding device disclosed in FIG. 2. Specifically, for example, S1500 to S1530 in FIG. 15 may be performed by a prediction unit of the encoding device, S1540 to S1550 in FIG. 15 may be performed by a residual processing unit of the encoding device, and S1560 may be performed by an entropy encoding unit of the encoding device. In addition, although not shown, a process of generating a reconstructed sample and a reconstructed picture for the current block based on a residual sample and a predicted sample for the current block may be performed by an adder of the encoding device.
[0315] The encoding apparatus configures a motion information candidate list based on neighboring blocks of a current block (S1500). The encoding apparatus may configure the motion information candidate list based on neighboring blocks of a current block. For example, the encoding apparatus may derive motion information of neighboring blocks of the current block as motion information candidates, and may configure the motion information candidate list including the motion information candidates. For example, the neighboring blocks may include spatial neighboring blocks and temporal neighboring blocks. The motion information of the neighboring blocks may include a motion vector and / or a reference picture index of the neighboring blocks. Here, for example, the motion information candidate list may indicate the above-mentioned merge candidate list, and the motion information candidates may indicate the above-mentioned merge candidates.
[0316] The encoding apparatus selects one motion information candidate from the motion information candidates in the motion information candidate list (S1510). The encoding apparatus may select one motion information candidate from the motion information candidates in the motion information candidate list. For example, the encoding apparatus may derive a reference block whose difference from the current block is minimum or equal to or less than a predetermined criterion among reference blocks indicated by the motion information candidates included in the motion information candidate list. In this case, the encoding apparatus may select a motion information candidate associated with the derived reference block.
[0317] The encoding apparatus derives motion information of the current block based on the selected motion information candidate (S1520). The encoding apparatus may derive the motion information of the current block based on the selected motion information candidate. For example, the encoding apparatus may derive a motion vector and / or a reference picture index of the selected motion information candidate as a motion vector and / or a reference picture index of the current block.
[0318] The encoding apparatus derives predictive samples of the current block based on the motion information (S1530). For example, the encoding apparatus may derive the predictive samples of the current block based on the motion information.
[0319] The encoding apparatus derives residual samples of the current block based on the predicted samples (S1540). For example, the encoding apparatus may derive the residual samples by subtracting the predicted samples from original samples of the current block.
[0320] The encoding apparatus derives a current residual coefficient based on the residual sample (S1550). For example, the encoding apparatus may derive a current residual coefficient of the current block based on the residual sample. For example, the encoding apparatus may determine whether a transform is applied to the current block. That is, the encoding apparatus may determine whether a transform is applied to the residual sample of the current block. The encoding apparatus may determine whether a transform is applied to the current block in consideration of coding efficiency. For example, the encoding apparatus may determine that a transform is not applied to the current block. The block to which the transform is not applied may be indicated as a transform skipped block. That is, for example, the current block may be a transform skipped block.
[0321] When a transform is not applied to the current block, i.e., when a transform is not applied to the residual sample, the encoding apparatus may derive the derived residual sample as the current residual coefficient. Also, when a transform is applied to the current block, i.e., when a transform is applied to the residual sample, the encoding apparatus may perform a transform on the residual sample to derive the current residual coefficient. The current residual coefficient may be included in a current sub-block of the current block. The current sub-block may be referred to as a current coefficient crowdup (CG). Also, the size of the current sub-block of the current block may be 4×4 or 2×2. That is, the current sub-block of the current block may include up to 16 non-zero residual coefficients or up to 4 non-zero residual coefficients.
[0322] Here, the current block may be a coding block (CB) or a transform block (TB), and a residual coefficient may be referred to as a transform coefficient.
[0323] Meanwhile, for example, the current residual coefficient may be derived without performing level mapping. For example, the number of context coded residual syntax elements for residual coefficients before the current residual coefficient among the residual coefficients of the current block may be equal to the number of maximum context coded bins of the current block, and the residual syntax element for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag of the residual coefficient, and the current residual coefficient may be derived without performing level mapping. Here, deriving the current residual coefficient only from the absolute level information and the sign flag may be referred to as simplified residual data coding. That is, the residual coefficient may be derived based on simplified residual data coding. In addition, for example, the context coded bins for the current block may all be used as bins of context coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient, and the current residual coefficient may be derived without performing level mapping.For example, when the maximum number of context coded bins for the current block are all used for the residual syntax elements for the previous residual coefficients of the current residual coefficient in the scanning order, the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient, and the current residual coefficient may be derived without performing level mapping. Also, for example, the residual coefficients before the current residual coefficient may be derived by performing the level mapping.
[0324] Meanwhile, for example, the level mapping may be as shown in Table 19 below.
[0325] [Table 19]
[0326] Here, X0 may represent the left absolute coefficient level of the current residual coefficient (i.e., the coefficient level of the left residual sample (left residual coefficient)), and X1 may represent the upper absolute coefficient level (i.e., the coefficient level of the upper residual sample (upper residual coefficient)). Also, absCoeff may represent the absolute level coefficient of the current residual coefficient, and absCoeffMod may represent the level mapped through the above process.
[0327] For example, the level mapping may refer to a process of deriving a maximum value among the absolute level of the left residual coefficient of the residual coefficient and the absolute level of the upper residual coefficient of the residual coefficient, comparing the maximum value with the absolute level of the residual coefficient, and modifying the absolute level of the residual coefficient based on the maximum value.
[0328] For example, a first residual coefficient, which is one of the residual coefficients before the current residual coefficient, may be derived by performing the level mapping. For example, an absolute level of the first residual coefficient may be derived based on a residual syntax element for the first residual coefficient, and a maximum value may be derived among an absolute level of a left residual coefficient of the first residual coefficient and an absolute level of an upper residual coefficient of the residual coefficient. Then, a modified absolute level of the first residual coefficient may be derived by comparing the absolute level of the first residual coefficient with the maximum value. For example, if the absolute level of the first residual coefficient and the maximum value are equal, 1 may be derived as the modified absolute level, if the absolute level of the first residual coefficient and the maximum value are not equal and the absolute level of the first residual coefficient is smaller than the maximum value, a value obtained by adding 1 to the absolute level of the first residual coefficient may be derived as the modified absolute level, if the absolute level of the first residual coefficient and the maximum value are not equal and the absolute level of the first residual coefficient is not smaller than the maximum value, the absolute level of the first residual coefficient may be derived as the modified absolute level. The first residual coefficient may be one of the residual coefficients before the current residual coefficient. The residual information of the current block may include the residual syntax element for the first residual coefficient, etc.
[0329] The encoding apparatus encodes image information including a motion information candidate index indicating the selected motion information candidate and a residual syntax element for the current residual coefficient (S1560). The encoding apparatus may encode image information including a motion information candidate index indicating the selected motion information candidate and a residual syntax element for the current residual coefficient. For example, the encoding apparatus may generate and encode prediction related information for the current block. The prediction related information may include the motion information candidate index. Also, the encoding apparatus may encode residual information including a residual syntax element for the current residual coefficient of the current block. The image information may include the residual information. For example, the encoding apparatus may encode image information including the residual information and output it in the form of a bitstream. The bitstream may be transmitted to a decoding apparatus via a network or a recording medium.
[0330] Also, for example, the number of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block may be the same as the number of maximum context coded bins of the current block. That is, for example, the context coded bins for the current block may be used as bins of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block. In other words, for example, the maximum number of context coded bins for the current block may be used for residual syntax elements for previous residual coefficients of the current residual coefficient in the scanning order. Meanwhile, for example, the number of maximum context coded bins of the current block may be derived based on the width and height of the current block.
[0331] For example, the number of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block may be equal to the number of maximum context coded bins of the current block, and the residual syntax elements for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag of the residual coefficient. For example, the context coded bins for the current block may all be used as bins of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient. For example, for residual syntax elements for previous residual coefficients of a current residual coefficient in a scanning order, when the maximum number of context coded bins for the current block are all used, the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient. The residual syntax elements for the current residual coefficient may be encoded on a bypass basis. That is, the residual syntax elements for the current residual coefficient may be encoded based on a uniform probability distribution. For example, the coefficient level information may represent an absolute value of a coefficient level of the current residual coefficient. Also, the sign flag may represent a sign of the current residual coefficient.For example, if the value of the sign flag is 0, the sign flag may indicate that the coefficient level of the current residual coefficient is a positive value, and if the value of the sign flag is 1, the sign flag may indicate that the coefficient level of the current residual coefficient is a negative value. The coefficient level information may be the abs_remainder described above, and the sign flag may be the coeff_sign_flag described above.
[0332] Also, for example, the residual information may include a transform skip flag for the current block. The transform skip flag may indicate whether a transform is applied to the current block. That is, the transform skip flag may indicate whether a transform is applied to the residual coefficients of the current block. A syntax element representing the transform skip flag may be the above-mentioned transform_skip_flag. For example, if the value of the transform skip flag is 0, the transform skip flag may indicate that a transform is not applied to the current block, and if the value of the transform skip flag is 1, the transform skip flag may indicate that a transform is applied to the current block. For example, if the current block is a transform skip block, the value of the transform skip flag for the current block may be 1.
[0333] Also, for example, the encoding apparatus may generate residual information of the current block based on residual samples of the current block, etc. For example, the image information may include residual information for the current block. For example, the residual information may include residual syntax elements, etc. for residual coefficients before the current residual coefficient in a scanning order. For example, the residual syntax elements, etc. may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0334] For example, the context coded residual syntax elements may include a significant coefficient flag indicating whether the residual coefficient is a non-zero residual coefficient, a parity level flag indicating a parity of a coefficient level for the residual coefficient, a sign flag indicating a sign for the residual coefficient, a first coefficient level flag indicating whether the coefficient level is greater than a first threshold value, and / or a second coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a second threshold value. Also, for example, the context coded residual syntax elements may include a third coefficient level flag indicating whether the coefficient level is greater than a third threshold value, a fourth coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a fourth threshold value, and / or a fifth coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a fifth threshold value. Here, the significance coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the sign flag may be ceff_sign_flag, the first coefficient level flag may be abs_level_gt1_flag, the second coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag, the third coefficient level flag may be abs_level_gt5_flag or abs_level_gtx_flag, the fourth coefficient level flag may be abs_level_gt7_flag or abs_level_gtx_flag, and the fifth coefficient level flag may be abs_level_gt9_flag or abs_level_gtx_flag.
[0335] Also, for example, the residual information may include a syntax element coded on a bypass basis for the residual coefficient of the current block. The bypass coded syntax element may include coefficient level information for the value of the current residual coefficient. The coefficient level information may be abs_remainder and / or dec_abs_level. Also, the bypass coded syntax element may include the sign flag.
[0336] Also, for example, the encoding apparatus may generate prediction related information for the current block. The image information may include prediction related information for the current block. The prediction related information may include prediction mode information applied to the current block. The decoding apparatus may perform inter prediction or intra prediction on the current block based on the prediction related information received via the bitstream, and may derive prediction samples of the current block.
[0337] Meanwhile, the bitstream can be transmitted to the decoding device via a network or a (digital) recording medium, where the network can include a broadcasting network and / or a communication network, and the digital recording medium can include various recording media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
[0338] FIG. 16 is a schematic diagram of an encoding device for performing an image encoding method according to the present document. The method disclosed in FIG. 15 may be performed by the encoding device disclosed in FIG. 16. Specifically, for example, a prediction unit of the encoding device of FIG. 16 may perform S1500 to S1530 of FIG. 15, a residual processing unit of the encoding device of FIG. 16 may perform S1540 to S1550 of FIG. 15, and an entropy encoding unit of the encoding device of FIG. 16 may perform S1560 of FIG. 15. Although not shown, a process of generating a reconstructed sample and a reconstructed picture for the current block based on a residual sample and a predicted sample for the current block may be performed by an adder of the encoding device.
[0339] Figure 17 is a schematic diagram of an image decoding method by a decoding device according to the present document. The method disclosed in Figure 17 can be performed by the decoding device disclosed in Figure 3. Specifically, for example, S1700 in Figure 17 can be performed by an entropy decoding unit of the decoding device, S1710 to S1730 can be performed by a prediction unit of the decoding device, S1740 to S1750 can be performed by a residual processing unit of the decoding device, and S1760 can be performed by an adder unit of the decoding device.
[0340] The decoding device acquires image information including a motion information candidate index and residual information through a bitstream (S1700). The decoding device may acquire image information including prediction related information and residual information for the current block through a bitstream. For example, the image information may include prediction related information for the current block. For example, the prediction related information may include the motion information candidate index. The motion information candidate index may represent one motion information candidate of the motion information candidates in a motion information candidate list of the current block. Here, for example, the motion information candidate index may indicate the above-mentioned merge index, etc. Also, for example, the motion information candidate list may represent the above-mentioned merge candidate list, etc., and the motion information candidate may represent the above-mentioned merge candidate, etc.
[0341] Also, for example, the residual information may include a residual syntax element for a current residual coefficient in a current block. Also, for example, the residual information may include a residual syntax element for a current residual coefficient in the current block. Here, the current block may be a coding block (CB) or a transform block (TB). Also, a residual coefficient may be referred to as a transform coefficient.
[0342] Also, for example, the current block may be a transform skip block.
[0343] Also, for example, the number of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block may be the same as the number of maximum context coded bins of the current block, and the residual syntax elements for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag of the residual coefficient. The number of maximum context coded bins of the current block may be derived based on the width and height of the current block. For example, the context coded bins for the current block may all be used as bins of context coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient. For example, when the maximum number of context coded bins for the current block are all used for the residual syntax elements for the previous residual coefficients of the current residual coefficient in the scanning order, the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient. The residual syntax elements for the current residual coefficient may be decoded on a bypass basis. That is, the residual syntax elements for the current residual coefficient may be decoded based on a uniform probability distribution. For example, the coefficient level information may represent an absolute value of a coefficient level of the current residual coefficient. Also, the sign flag may represent a sign of the current residual coefficient.For example, if the value of the sign flag is 0, the sign flag may indicate that the coefficient level of the current residual coefficient is a positive value, and if the value of the sign flag is 1, the sign flag may indicate that the coefficient level of the current residual coefficient is a negative value. The coefficient level information may be the abs_remainder described above, and the sign flag may be the coeff_sign_flag described above.
[0344] Also, for example, the residual information may include a transform skip flag for the current block. The transform skip flag may indicate whether a transform is applied to the current block. That is, the transform skip flag may indicate whether a transform is applied to the residual coefficients of the current block. A syntax element representing the transform skip flag may be the above-mentioned transform_skip_flag. For example, if the value of the transform skip flag is 0, the transform skip flag may indicate that no transform is applied to the current block, and if the value of the transform skip flag is 1, the transform skip flag may indicate that a transform is applied to the current block. For example, if the current block is a transform skip block, the value of the transform skip flag for the current block may be 1.
[0345] Also, for example, the image information may include residual information for the current block. For example, the residual information may include residual syntax elements for residual coefficients before the current residual coefficient in a scanning order. For example, the residual syntax elements may include syntax elements such as coded_sub_block_flag, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, and / or coeff_sign_flag.
[0346] For example, the context coded residual syntax elements may include a significant coefficient flag indicating whether the residual coefficient is a non-zero residual coefficient, a parity level flag indicating a parity of a coefficient level for the residual coefficient, a sign flag indicating a sign for the residual coefficient, a first coefficient level flag indicating whether the coefficient level is greater than a first threshold value, and / or a second coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a second threshold value. Also, for example, the context coded residual syntax elements may include a third coefficient level flag indicating whether the coefficient level is greater than a third threshold value, a fourth coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a fourth threshold value, and / or a fifth coefficient level flag indicating whether the coefficient level of the residual coefficient is greater than a fifth threshold value. Here, the significance coefficient flag may be sig_coeff_flag, the parity level flag may be par_level_flag, the sign flag may be ceff_sign_flag, the first coefficient level flag may be abs_level_gt1_flag, the second coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag, the third coefficient level flag may be abs_level_gt5_flag or abs_level_gtx_flag, the fourth coefficient level flag may be abs_level_gt7_flag or abs_level_gtx_flag, and the fifth coefficient level flag may be abs_level_gt9_flag or abs_level_gtx_flag.
[0347] Also, for example, the residual information may include a syntax element coded on a bypass basis for the residual coefficient of the current block. The bypass coded syntax element may include coefficient level information for the value of the current residual coefficient. The coefficient level information may be abs_remainder and / or dec_abs_level. Also, the bypass coded syntax element may include the sign flag.
[0348] The decoding apparatus constructs a motion information candidate list based on neighboring blocks of the current block (S1710). The motion information candidate list may be constructed based on neighboring blocks of the current block of the decoding apparatus. For example, the decoding apparatus may derive motion information of neighboring blocks of the current block as motion information candidates, and may construct the motion information candidate list including the motion information candidates. For example, the neighboring blocks may include spatial neighboring blocks and temporal neighboring blocks. The motion information of the neighboring blocks may include motion vectors and / or reference picture indexes of the neighboring blocks.
[0349] The decoding apparatus derives motion information of the current block based on the motion information candidate pointed to by the motion information candidate index among the motion information candidates in the motion information candidate list (S1720). The decoding apparatus may derive the motion information of the current block based on the motion information candidate pointed to by the motion information candidate index. For example, the decoding apparatus may derive a motion vector and / or a reference picture index of the motion information candidate pointed to by the motion information candidate index as a motion vector and / or a reference picture index of the current block.
[0350] The decoding apparatus derives predictive samples of the current block based on the motion information (S1730). For example, the decoding apparatus may derive the predictive samples of the current block based on the motion information.
[0351] The decoding apparatus derives the current residual coefficient based on a residual syntax element for a current residual coefficient in the current block (S1740). The decoding apparatus may derive the current residual coefficient based on the residual syntax element, etc. The residual syntax element, etc. may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient.
[0352] For example, the absolute level of the current residual coefficient may be derived as a value represented by coefficient level information for the current residual coefficient, and the sign of the current residual coefficient may be derived as a sign represented by the sign flag.
[0353] Meanwhile, for example, the current residual coefficient may be derived without performing level mapping. For example, the number of context coded residual syntax elements for the residual coefficients before the current residual coefficient among the residual coefficients of the current block may be equal to the number of maximum context coded bins of the current block, the residual syntax elements for the current residual coefficient may include absolute level information for the current residual coefficient and a sign flag of the residual coefficient, and the current residual coefficient may be derived without performing level mapping. Here, deriving the current residual coefficient only from the absolute level information and the sign flag may be referred to as simplified residual data coding. That is, the residual coefficient may be derived based on simplified residual data coding. In addition, for example, the context coded bins for the current block may all be used as bins of context coded residual syntax elements for residual coefficients prior to the current residual coefficient among the residual coefficients of the current block, and the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag for the residual coefficient, and the current residual coefficient may be derived without performing level mapping.For example, when the maximum number of context coded bins for the current block are all used for the residual syntax elements for the previous residual coefficient of the current residual coefficient in the scanning order, the residual syntax elements for the current residual coefficient may include coefficient level information for the current residual coefficient and a sign flag of the residual coefficient, and the current residual coefficient may be derived without performing level mapping. Also, for example, the residual coefficients before the current residual coefficient may be derived by performing the level mapping.
[0354] Meanwhile, for example, the level mapping may be a scheme shown in Table 19. For example, the level mapping may refer to a process of deriving a maximum value among the absolute level of the left residual coefficient of the residual coefficient and the absolute level of the upper residual coefficient of the residual coefficient, comparing the maximum value with the absolute level of the residual coefficient, and correcting the absolute level of the residual coefficient based on the maximum value.
[0355] For example, a first residual coefficient, which is one of the residual coefficients before the current residual coefficient, may be derived by performing the level mapping. For example, an absolute level of the first residual coefficient may be derived based on a residual syntax element for the first residual coefficient, and a maximum value may be derived among an absolute level of a left residual coefficient of the first residual coefficient and an absolute level of an upper residual coefficient of the residual coefficient. Then, a modified absolute level of the first residual coefficient may be derived by comparing the absolute level of the first residual coefficient with the maximum value. For example, if the absolute level of the first residual coefficient and the maximum value are equal, 1 may be derived as the modified absolute level, if the absolute level of the first residual coefficient and the maximum value are not equal and the absolute level of the first residual coefficient is smaller than the maximum value, a value obtained by adding 1 to the absolute level of the first residual coefficient may be derived as the modified absolute level, if the absolute level of the first residual coefficient and the maximum value are not equal and the absolute level of the first residual coefficient is not smaller than the maximum value, the absolute level of the first residual coefficient may be derived as the modified absolute level. The first residual coefficient may be one of the residual coefficients before the current residual coefficient. The residual information may include the residual syntax element for the first residual coefficient, etc.
[0356] The decoding apparatus derives a residual sample based on the current residual coefficient (S1750). The decoding apparatus may derive a residual sample of the current block based on the current residual coefficient. That is, the decoding apparatus may derive a residual sample of the current block based on the current residual coefficient. For example, when it is determined that no transformation is applied to the current block based on the transform skip flag, i.e., when the value of the transform skip flag is 1, the decoding apparatus may derive the current residual coefficient as the residual sample of the current block. Alternatively, for example, when it is determined that no transformation is applied to the current block based on the transform skip flag, i.e., when the value of the transform skip flag is 1, the decoding apparatus may inversely quantize the current residual coefficient to derive the residual sample of the current block. Alternatively, for example, when it is determined that a transformation is applied to the current block based on the transform skip flag, i.e., when the value of the transform skip flag is 0, the decoding apparatus may inversely transform the current residual coefficient to derive the residual sample of the current block. Alternatively, for example, if it is determined that a transform has been applied to the current block based on the transform skip flag, i.e., if the value of the transform skip flag is 0, the decoding device may dequantize the current residual coefficients and inverse transform the dequantized coefficients to derive the residual samples of the current block.
[0357] The decoding apparatus derives reconstructed samples of the current block based on the predicted samples and the residual samples (S1760).
[0358] For example, the decoding apparatus may derive a reconstructed sample of the current block based on the predicted sample and the residual sample, For example, the decoding apparatus may generate the reconstructed sample by adding the predicted sample and the residual sample.
[0359] As mentioned above, thereafter, if necessary, in-loop filtering procedures such as deblocking filtering, SAO and / or ALF procedures can be applied to the reconstructed picture in order to improve the subjective / objective image quality.
[0360] Figure 18 is a schematic diagram of a decoding device for performing the image decoding method according to the present document. The method disclosed in Figure 17 can be performed by the decoding device disclosed in Figure 18. Specifically, for example, the entropy decoding unit of the decoding device of Figure 18 can perform S1700 of Figure 17, the prediction unit of the decoding device of Figure 18 can perform S1710 to S1730 of Figure 17, the residual processing unit of the decoding device of Figure 18 can perform S1740 to S1750 of Figure 17, and the addition unit of the decoding device of Figure 18 can perform S1760 of Figure 17.
[0361] According to the above-mentioned document, the efficiency of residual coding can be improved.
[0362] In addition, according to this document, residual coefficients to which simplified residual data coding is applied can be derived without performing level mapping, thereby reducing coding complexity and improving overall residual coding efficiency.
[0363] In addition, according to this document, residual coefficients to which simplified residual data coding is applied may have a low correlation with surrounding residual coefficients, and therefore the efficiency of level mapping performed based on the surrounding residual coefficients is low. Therefore, level mapping is not performed on the residual coefficients to which the simplified residual data coding is applied, thereby reducing coding complexity and improving overall residual coding efficiency.
[0364] In the above-described embodiments, the method is described with reference to a flow chart with a series of steps or blocks, but this document is not limited to the order of steps, and certain steps may occur in a different order or simultaneously with other steps than those described above. Also, those skilled in the art will understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps of the flow chart may be deleted without affecting the scope of this document.
[0365] The embodiments described in this document may be implemented and executed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in the drawings may be implemented and executed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information (e.g., information on instructions) or algorithms for implementation may be stored in a digital recording medium.
[0366] In addition, the decoding device and the encoding device to which the embodiment of the present document is applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interactive device, a real-time communication device such as video communication, a mobile streaming device, a recording medium, a camcorder, a custom video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, an image telephone video device, a transportation terminal (e.g., a vehicle terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0367] In addition, the processing method to which the embodiments of this document are applied may be produced in the form of a program executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to this document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium may also include a medium realized in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0368] Also, the embodiments of the present document may be implemented in a computer program product by program code, which may be executed by a computer according to the embodiments of the present document. The program code may be stored on a computer readable carrier.
[0369] FIG. 19 exemplarily illustrates a structural diagram of a content streaming system to which the embodiments of this document are applied.
[0370] A content streaming system to which the embodiments of this document are applied can broadly include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.
[0371] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0372] The bitstream may be generated by an encoding method or a bitstream generation method to which an embodiment of this document is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0373] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, and in this case, the control server controls commands / responses between devices in the content streaming system.
[0374] The streaming server may receive content from a media repository and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a certain period of time in order to provide a smooth streaming service.
[0375] Examples of the user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc. Each server in the content streaming system can be operated as a distributed server, and in this case, data received by each server can be processed in a distributed manner.
[0376] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined and realized as an apparatus, the technical features of the apparatus claims in this specification may be combined and realized as a method, the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as an apparatus, and the technical features of the method claims and the technical features of the apparatus claims in this specification may be combined and realized as a method.
Claims
1. 1. An image decoding method performed by a decoding device, comprising: Obtaining image information including motion information candidate indexes and residual information through a bitstream; constructing a motion information candidate list based on neighboring blocks of a current block; deriving motion information of the current block based on the motion information candidate indicated by the motion information candidate index among the motion information candidates in the motion information candidate list; deriving a prediction sample of the current block based on the motion information; deriving the current residual coefficient based on a residual syntax element for a current residual coefficient in the current block; deriving a residual sample based on the current residual coefficient; deriving a reconstructed sample of the current block based on the predicted sample and the residual sample; the residual information includes the residual syntax element for the current residual coefficient; the number of context-coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context coding bins of the current block; the residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient; an absolute level of the current residual coefficient is derived as a value indicated by the coefficient level information for the current residual coefficient; the sign of the current residual coefficient is derived as the sign indicated by the sign flag; The current residual coefficients are derived without performing level mapping, deriving first residual coefficients by performing the level mapping; the first residual coefficient is one of the residual coefficients prior to the current residual coefficient; an absolute level of the first residual coefficient is derived based on a residual syntax element for the first residual coefficient; A maximum value among an absolute level of a left residual coefficient of the first residual coefficient and an absolute level of an upper residual coefficient of the first residual coefficient is derived; deriving a modified absolute level of the first residual coefficient by comparing the absolute level of the first residual coefficient with the maximum value; The x-coordinate of the left residual coefficient is determined as xC-1 based on the x-coordinate of the first residual coefficient being xC.
2. 2. The image decoding method of claim 1, wherein the context coding bins for the current block are all used as bins of the context coded residual syntax elements for the residual coefficients prior to the current residual coefficient.
3. 1. An image encoding method performed by an encoding device, comprising: constructing a motion information candidate list based on neighboring blocks of a current block; selecting a motion information candidate from among the motion information candidates in the motion information candidate list; deriving motion information of the current block based on the selected motion information candidate; deriving a prediction sample of the current block based on the motion information; deriving a residual sample of the current block based on the predicted sample; deriving current residual coefficients based on the residual samples; encoding image information including a motion information candidate index indicating the selected motion information candidate and a residual syntax element for the current residual coefficient; the number of context-coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context coding bins of the current block; the residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient; the coefficient level information represents an absolute value of a coefficient level of the current residual coefficient; the sign flag of the current residual coefficient indicates a sign of the current residual coefficient; The current residual coefficient is encoded without performing level mapping, A first residual coefficient is encoded by performing the level mapping; the first residual coefficient is one of the residual coefficients prior to the current residual coefficient; A maximum value among an absolute level of a left residual coefficient of the first residual coefficient and an absolute level of an upper residual coefficient of the first residual coefficient is derived; deriving a modified absolute level of the first residual coefficient by comparing the absolute level of the first residual coefficient with the maximum value; the modified absolute level of the first residual coefficient is encoded based on a residual syntax element for the first residual coefficient; The x-coordinate of the left residual coefficient is determined as xC-1 based on the x-coordinate of the first residual coefficient being xC.
4. 4. The method of claim 3, wherein the context coding bins for the current block are all used as bins of the context coded residual syntax elements for the residual coefficients prior to the current residual coefficient.
5. 1. A method for transmitting data for an image, comprising: constructing a motion information candidate list based on neighboring blocks of a current block; selecting a motion information candidate from among the motion information candidates in the motion information candidate list; deriving motion information of the current block based on the selected motion information candidate; deriving a prediction sample of the current block based on the motion information; deriving a residual sample of the current block based on the predicted sample; deriving current residual coefficients based on the residual samples; encoding image information including a motion information candidate index indicating the selected motion information candidate and a residual syntax element for the current residual coefficient to generate a bitstream; transmitting the data including the bitstream; the number of context-coded residual syntax elements for residual coefficients preceding the current residual coefficient among the residual coefficients of the current block is equal to the maximum number of context coding bins of the current block; the residual syntax element for the current residual coefficient includes coefficient level information for the current residual coefficient and a sign flag for the current residual coefficient; the coefficient level information represents an absolute value of a coefficient level of the current residual coefficient; the sign flag of the current residual coefficient indicates a sign of the current residual coefficient; The current residual coefficient is encoded without performing level mapping, A first residual coefficient is encoded by performing the level mapping; the first residual coefficient is one of the residual coefficients prior to the current residual coefficient; A maximum value among an absolute level of a left residual coefficient of the first residual coefficient and an absolute level of an upper residual coefficient of the first residual coefficient is derived; deriving a modified absolute level of the first residual coefficient by comparing the absolute level of the first residual coefficient with the maximum value; the modified absolute level of the first residual coefficient is encoded based on a residual syntax element for the first residual coefficient; The x-coordinate of the left residual coefficient is determined as xC-1 based on the x-coordinate of the first residual coefficient being xC.
Citation Information
Patent Citations
High-throughput residual coding for transform-skipped blocks for cabac in hevc
JP2016514911A
Coefficient coding for transform skip mode.
JP2022523789A
Coefficient coding for transform skip mode
US20200296420A1
High throughput residual coding for a transform skipped block for cabac in hevc
WO2014162749A1
Cited By
Video or image coding method and device therefor
JP2025107253A
Video or image coding method and device therefor
US12739405B2