WO2020149594A1 - 영상 코딩 시스템에서 고주파 제로잉을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치 - Google Patents
영상 코딩 시스템에서 고주파 제로잉을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치 Download PDFInfo
- Publication number
- WO2020149594A1 WO2020149594A1 PCT/KR2020/000587 KR2020000587W WO2020149594A1 WO 2020149594 A1 WO2020149594 A1 WO 2020149594A1 KR 2020000587 W KR2020000587 W KR 2020000587W WO 2020149594 A1 WO2020149594 A1 WO 2020149594A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transform coefficient
- current block
- information
- block
- low
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
Definitions
- This document relates to an image coding technique, and more particularly, to an image decoding method and apparatus for coding residual information based on high frequency zeroing in an image coding system.
- a high-efficiency image compression technique is required to effectively transmit, store, and reproduce high-resolution, high-quality image information.
- the technical problem of this document is to provide a method and apparatus for improving image coding efficiency.
- Another technical task of this document is to provide a method and apparatus for increasing the efficiency of residual coding.
- Another technical task of this document is to provide a method and apparatus for increasing the residual coding efficiency by coding transform coefficients based on high-frequency zeroing.
- Another technical task of this document is to provide a method and apparatus for coding location information of a last significant coefficient in a current block (or current transform block) based on high-frequency zeroing.
- Another technical problem of this document is that when coding transform coefficients for a current block (or a current transform block) based on high-frequency zeroing, the last effective transform is based on the size of a region to which the high-frequency zeroing is not applied in the current block.
- Disclosed is a method and apparatus for deriving a context model of information representing coefficients.
- an image decoding method performed by a decoding apparatus includes receiving a bitstream including residual information of a current block, decoding syntax elements for the current block included in the residual information, and decoding the current block based on the decoded syntax elements. Deriving transform coefficients for the current step, deriving residual samples for the current block based on the transform coefficients, and generating a reconstructed picture based on the residual samples, and Each of the transform coefficients is associated with a high-frequency transform coefficient region consisting of transform coefficients 0 or a low-frequency transform coefficient region comprising at least one effective transform coefficient, and the syntax elements are the last valid transform of the transform coefficients for the current block. It includes a last significant coefficient prefix information for the position of the coefficient, the context model for the effective coefficient prefix information is characterized in that it is derived based on the height and width of the low-frequency transform coefficient region.
- a decoding apparatus for performing image decoding.
- the decoding apparatus receives a bitstream including residual information of the current block, decodes syntax elements for the current block included in the residual information, and decodes syntax elements for the current block based on the decoded syntax elements.
- An entropy decoding unit for deriving transform coefficients, an inverse transform unit for deriving residual samples for the current block based on the transform coefficients, and an adder for generating a reconstructed picture based on the residual samples, in the current block
- Each of the transform coefficients for is associated with a high frequency transform coefficient region composed of transform coefficients 0 or a low frequency transform coefficient region including at least one effective transform coefficient, and the syntax elements are the last of the transform coefficients for the current block. It includes a last significant coefficient prefix information for the position of the effective transform coefficient, and the context model for the effective coefficient prefix information is derived based on the height and width of the low-frequency transform coefficient region do.
- a video encoding method performed by an encoding device comprises deriving residual samples for the current block, deriving transform coefficients of the current block based on the residual samples, and for the current block including syntax syntax elements for the transform coefficients.
- Encoding residual information each of the transform coefficients for the current block being associated with a high frequency transform coefficient region consisting of transform coefficients 0 or a low frequency transform coefficient region comprising at least one effective transform coefficient
- the syntax elements include last significant coefficient prefix information for the position of the last significant transform coefficient among the transform coefficients for the current block, and the context model for the effective coefficient prefix information is the low frequency It is characterized by being derived based on the height and width of the transform coefficient region.
- a video encoding apparatus may include a subtraction unit for deriving residual samples for the current block, a transformation unit for deriving transformation coefficients of the current block based on the residual samples, and the current including syntax elements for the transformation coefficients. And an entropy encoding unit for encoding residual information for the block, wherein each of the transform coefficients for the current block is a high-frequency transform coefficient region composed of transform coefficient 0 or a low-frequency transform coefficient region including at least one effective transform coefficient.
- the syntax elements include last significant coefficient prefix information for the position of the last significant transform coefficient among the transform coefficients for the current block, and the context for the effective coefficient prefix information.
- the model is characterized in that it is derived based on the height and width of the low frequency transform coefficient region.
- the efficiency of residual coding can be improved.
- image coding efficiency may be improved by coding position information of the last effective transform coefficient in the current block (or the current transform block) based on high-frequency zeroing.
- more efficient encoding is performed by determining the context model for the location information of the last effective transform coefficient based on the size of the high-frequency zeroing region (more precisely, the region where no high-frequency zeroing is applied), and the context encoding bin ( By reducing the number of context-coded bins, the throughput of CABAC can be improved.
- FIG. 1 schematically shows an example of a video/image coding system to which embodiments of the present document can be applied.
- FIG. 2 is a diagram schematically illustrating a configuration of a video/video encoding apparatus to which embodiments of the present document can be applied.
- FIG. 3 is a diagram schematically illustrating a configuration of a video/video decoding apparatus to which embodiments of the present document can be applied.
- CABAC context-adaptive binary arithmetic coding
- FIG. 5 is a diagram illustrating an example of transform coefficients in a 4x4 block.
- FIG. 6 is a view for explaining high-frequency zeroing according to an embodiment.
- FIG. 7 is a diagram for explaining an example of a method of scanning transform coefficients for a current block to which high-frequency zeroing is applied.
- FIG. 8 is a diagram for explaining another example of a method of scanning transform coefficients for a current block to which high-frequency zeroing is applied.
- 9A and 9B are diagrams for explaining the configuration and operation of an entropy encoding unit according to an embodiment.
- 10A and 10B are diagrams for explaining a configuration and operation method of an entropy decoding unit according to an embodiment.
- FIG. 11 schematically shows a video encoding method by an encoding device according to the present document.
- FIG. 12 schematically shows an encoding apparatus that performs a video encoding method according to the present document.
- FIG. 13 schematically shows an image decoding method by a decoding apparatus according to the present document.
- FIG. 14 schematically shows a decoding apparatus for performing an image decoding method according to the present document.
- 15 exemplarily shows a structure diagram of a content streaming system to which embodiments of the present document are applied.
- each component in the drawings described in this document is independently shown for convenience of description of different characteristic functions, and does not mean that each component is implemented with separate hardware or separate software.
- two or more components of each component may be combined to form a single component, or one component may be divided into a plurality of components.
- Embodiments in which each component is integrated and/or separated are also included in the scope of this document as long as they do not depart from the nature of this document.
- FIG. 1 schematically shows an example of a video/image coding system to which embodiments of the present document can be applied.
- a video/image coding system may include a first device (source device) and a second device (receiving device).
- the source device may transmit the encoded video/image information or data to a receiving device through a digital storage medium or network in the form of a file or streaming.
- the source device may include a video source, an encoding device, and a transmission unit.
- the receiving device may include a receiving unit, a decoding apparatus, and a renderer.
- the encoding device may be referred to as a video/video encoding device, and the decoding device may be referred to as a video/video decoding device.
- the transmitter can be included in the encoding device.
- the receiver may be included in the decoding device.
- the renderer may include a display unit, and the display unit may be configured as a separate device or an external component.
- the video source may acquire a video/image through a capture, synthesis, or generation process of the video/image.
- the video source may include a video/image capture device and/or a video/image generation device.
- the video/image capture device may include, for example, one or more cameras, a video/image archive including previously captured video/images, and the like.
- the video/image generating device may include, for example, a computer, a tablet and a smartphone, and may (electronically) generate a video/image.
- a virtual video/image may be generated through a computer or the like, and in this case, a video/image capture process may be replaced by a process in which related data is generated.
- the encoding device can encode the input video/video.
- the encoding apparatus may perform a series of procedures such as prediction, transformation, and quantization for compression and coding efficiency.
- the encoded data (encoded video/image information) may be output in the form of a bitstream.
- the transmitting unit may transmit the encoded video/video information or data output in the form of a bitstream to a receiving unit of a receiving device through a digital storage medium or a network in a file or streaming format.
- the digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD.
- the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast/communication network.
- the receiver may receive/extract the bitstream and deliver it to a decoding device.
- the decoding apparatus may decode a video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding apparatus.
- the renderer can render the decoded video/image.
- the rendered video/image may be displayed through the display unit.
- VVC versatile video coding
- EVC essential video coding
- AV1 AOMedia Video 1
- AVS2 2nd generation of audio video coding standard
- next-generation video/ It can be applied to the method disclosed in the video coding standard (ex. H.267 or H.268, etc.).
- video may mean a set of images over time.
- a picture generally refers to a unit representing one image in a specific time period, and a slice/tile is a unit constituting a part of a picture in coding.
- the slice/tile may include one or more coding tree units (CTUs).
- CTUs coding tree units
- One picture may be composed of one or more slices/tiles.
- One picture may be composed of one or more tile groups.
- One tile group may include one or more tiles.
- the brick may represent a rectangular region of CTU rows within a tile in a picture. Tiles can be partitioned into multiple bricks, and each brick can be composed of one or more CTU rows in the tile (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 be also referred to as a brick.
- a brick scan can indicate a specific sequential ordering of CTUs partitioning a picture, the CTUs can be aligned with a CTU raster scan within a brick, and the bricks in a tile can be aligned sequentially with a raster scan of the bricks of the tile.
- A, and tiles in a picture can be sequentially aligned with a raster scan of the tiles of the picture
- a brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick , bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture).
- a tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture.
- the tile column is a rectangular area of CTUs, the rectangular area has a height equal to the height of the picture, and the width can be specified by syntax elements in a picture parameter set (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, the rectangular region has a width specified by syntax elements in a picture parameter set, and the height can be the same as the height of the picture (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 can indicate a specific sequential ordering of CTUs partitioning a picture, the CTUs can be successively aligned with a CTU raster scan in a tile, and the tiles in a picture can be successively aligned with a raster scan of the tiles 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 may include an integer number of bricks of a picture, and the integer number of bricks may be included in one NAL unit (A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit). A slice may consist of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile ).
- Tile groups and slices are used interchangeably in this document. For example, the tile group/tile group header in this document may be referred to as a slice/slice header.
- a pixel or a pel may mean a minimum unit constituting one picture (or image). Also, as a term corresponding to a pixel,'sample' may be used.
- the sample may generally represent a pixel or a pixel value, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
- the unit may represent a basic unit of image processing.
- the unit may include at least one of a specific region of a picture and information related to the region.
- One unit may include one luma block and two chroma (ex. cb, cr) blocks.
- the unit may be used interchangeably with terms such as a block or area in some cases.
- the MxN block may include samples (or sample arrays) of M columns and N rows or a set (or array) of transform coefficients.
- the video encoding device may include a video encoding device.
- the encoding apparatus 200 includes an image partitioner 210, a predictor 220, a residual processor 230, and an entropy encoder 240. It may be configured to include an adder (250), a filtering unit (filter, 260) and a memory (memory, 270).
- the prediction unit 220 may include an inter prediction unit 221 and an intra prediction unit 222.
- the residual processing unit 230 may include a transform unit 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235.
- the residual processing unit 230 may further include a subtractor 231.
- the adder 250 may be referred to as a reconstructor or a recontructged block generator.
- the above-described image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, adding unit 250, and filtering unit 260 may include one or more hardware components (for example, it may be configured by an encoder chipset or processor).
- the memory 270 may include a decoded picture buffer (DPB), or may be configured by a digital storage medium.
- the hardware component may further include a memory 270 as an internal/external component.
- the image division unit 210 may divide an input image (or picture, frame) input to the encoding apparatus 200 into one or more processing units.
- the processing unit may be called a coding unit (CU).
- the coding unit is recursively divided according to a quad-tree binary-tree ternary-tree (QTBTTT) structure from a coding tree unit (CTU) or a largest coding unit (LCU).
- QTBTTT quad-tree binary-tree ternary-tree
- CTU coding tree unit
- LCU largest coding unit
- 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.
- a quad tree structure may be applied first, and a binary tree structure and/or ternary structure may be applied later.
- a binary tree structure may be applied first.
- the coding procedure according to this document may be performed based on the final coding unit that is no longer split.
- the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than optimal if necessary.
- the coding unit of the size of can be used as the final coding unit.
- the coding procedure may include procedures such as prediction, transformation, and reconstruction, which will be described later.
- the processing unit may further include a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may be partitioned or partitioned from the above-described final coding unit, respectively.
- the prediction unit may be a unit of sample prediction
- the transformation unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.
- the unit may be used interchangeably with terms such as a block or area in some cases.
- the MxN block may represent samples of M columns and N rows or a set of transform coefficients.
- the sample may generally represent a pixel or a pixel value, and may indicate only a pixel/pixel value of a luma component or only a pixel/pixel value of a saturation component.
- the sample may be used as a term for one picture (or image) corresponding to a pixel or pel.
- the encoding device 200 subtracts a prediction signal (a predicted block, a prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from the input image signal (original block, original sample array).
- a signal residual signal, residual block, residual sample array
- 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 prediction samples 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 about prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the generated information to the entropy encoding unit 240.
- the prediction information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
- 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 apart depending on a prediction mode.
- prediction modes 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 (Planar mode).
- the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the degree of detail of the prediction direction. However, this is an example, and more or less directional prediction modes may be used depending on the setting.
- the intra prediction unit 222 may determine a prediction mode applied to the current block by using a prediction mode applied to neighboring blocks.
- the inter prediction unit 221 may derive the predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on the reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between a neighboring block and a 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.
- 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 name such as a collocated reference block or a CUCU, and a reference picture including the temporal neighboring block may be called a collocated picture (colPic). It might be.
- the inter prediction unit 221 constructs a motion information candidate list based on neighboring blocks, and provides information indicating which candidate is used to derive the motion vector and/or reference picture index of the current block. Can be created. Inter prediction may be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter prediction unit 221 may use motion information of neighboring blocks as motion information of the current block.
- the residual signal may not be transmitted.
- the motion vector of the current block is obtained by using the motion vector of the neighboring block as a motion vector predictor and signaling a motion vector difference. I can order.
- the prediction unit 220 may generate a prediction signal based on various prediction methods described below.
- the prediction unit may apply intra prediction or inter prediction as well as intra prediction and inter prediction at the same time for prediction for one block. This can be called combined inter and intra prediction (CIIP).
- 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 video/video coding such as a game, such as screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, the IBC can use at least one of the inter prediction techniques described in this document.
- the palette mode can be regarded as an example of intra coding or intra prediction. When the palette mode is applied, a sample value in a picture may be signaled based on information on the palette table and palette index.
- the prediction signal generated by the prediction unit may be used to generate a reconstructed 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, at least one of a DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform) It can contain.
- GBT means a transformation obtained from this graph when it is said that the relationship information between pixels is graphically represented.
- CNT means a transform obtained by generating a prediction signal using all previously reconstructed pixels and based on it.
- the transform process may be applied to pixel blocks having the same size of a square, or may be applied to blocks of variable sizes other than squares.
- the quantization unit 233 quantizes the transform coefficients and transmits them to the entropy encoding unit 240, and the entropy encoding unit 240 encodes a quantized signal (information about quantized transform coefficients) and outputs it as a bitstream. have. Information about the quantized transform coefficients may be called residual information.
- the quantization unit 233 may rearrange block-type quantized transform coefficients into a one-dimensional vector form based on a coefficient scan order, and quantize the quantized transform coefficients based on the one-dimensional vector form. Information regarding transform coefficients may be generated.
- the entropy encoding unit 240 may perform various encoding methods such as exponential Golomb (CAVLC), context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- CAVLC exponential Golomb
- CAVLC context-adaptive variable length coding
- CABAC context-adaptive binary arithmetic coding
- the entropy encoding unit 240 may encode information necessary for video/image reconstruction (eg, a value of syntax elements, etc.) together with the quantized transform coefficients together or separately.
- the encoded information (ex. encoded video/video information) may be transmitted or stored in units of network abstraction layer (NAL) units in the form of a bitstream.
- NAL network abstraction layer
- the video/video information may further include information regarding 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/video information may further include general constraint information.
- information and/or syntax elements transmitted/signaled from an encoding device to a decoding device may be included in video/video information.
- the video/video information may be encoded through the above-described encoding procedure and included in the bitstream.
- the bitstream can be transmitted over a network or stored on a digital storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD.
- the signal output from the entropy encoding unit 240 may be configured as an internal/external element of the encoding device 200 by a transmitting unit (not shown) and/or a storing unit (not shown) for storing, or the transmitting unit It may be included in the entropy encoding unit 240.
- the quantized transform coefficients output from the quantization unit 233 may be used to generate a prediction signal.
- a residual signal residual block or residual samples
- the adder 250 adds the reconstructed residual signal to the predicted signal output from the inter predictor 221 or the intra predictor 222, so that the reconstructed signal (restored picture, reconstructed block, reconstructed sample array) Can be generated. If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as a reconstructed block.
- the adder 250 may be called a restoration unit or a restoration block generation unit.
- the generated reconstructed signal may be used for intra prediction of a next processing target block in a current picture, or may be used for inter prediction of a next picture through filtering as described below.
- LMCS luma mapping with chroma scaling
- the filtering unit 260 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
- the filtering unit 260 may generate a modified restoration picture by applying various filtering methods to the restoration picture, and the modified restoration picture may be a DPB of the memory 270, specifically, the memory 270. Can be stored in.
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
- the filtering unit 260 may generate various pieces of information regarding filtering as described later in the description of each filtering method, and transmit them to the entropy encoding unit 240.
- the filtering information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
- the modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221.
- inter prediction When the inter prediction is applied through the encoding apparatus, prediction mismatches in the encoding apparatus 200 and the decoding apparatus 300 can be avoided, and encoding efficiency can be improved.
- the memory 270 DPB may store the modified reconstructed picture for use 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 a current picture is derived (or encoded) and/or motion information of blocks in a picture that has already been reconstructed.
- 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 blocks reconstructed in the current picture, and may transmit the reconstructed samples to the intra prediction unit 222.
- FIG. 3 is a diagram schematically illustrating a configuration of a video/video decoding apparatus to which embodiments of the present document can be applied.
- the decoding apparatus 300 includes an entropy decoder (310), a residual processor (320), a prediction unit (predictor, 330), an adder (340), and a filtering unit (filter, 350) and memory (memory, 360).
- the prediction unit 330 may include an inter prediction unit 331 and an intra prediction unit 332.
- the residual processing unit 320 may include a deequantizer 321 and an inverse transformer 322.
- the entropy decoding unit 310, the residual processing unit 320, the prediction unit 330, the adding unit 340, and the filtering unit 350 described above may include one hardware component (eg, a decoder chipset or processor) according to an embodiment. ).
- the memory 360 may include a decoded picture buffer (DPB), or may be configured by a digital storage medium.
- the hardware component may further include a memory 360 as an internal/external component.
- the decoding apparatus 300 may restore an image corresponding to a process in which the video/image information is processed in the encoding apparatus of FIG. 2.
- the decoding apparatus 300 may derive units/blocks based on block partitioning related information obtained from the bitstream.
- the decoding apparatus 300 may perform decoding using a processing unit applied in the encoding apparatus.
- the processing unit of decoding may be, for example, a coding unit, and the coding unit may be divided along a quad tree structure, a binary tree structure and/or a ternary tree structure from a coding tree unit or a largest coding unit.
- One or more transform units can be derived from the coding unit. Then, the decoded video signal decoded and output through the decoding device 300 may be reproduced through the reproduction device.
- the decoding apparatus 300 may receive the signal output from the encoding apparatus of FIG. 2 in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 310.
- the entropy decoding unit 310 may parse the bitstream to derive information (eg, video/image information) necessary for image reconstruction (or picture reconstruction).
- the video/video information may further include information regarding 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/video information may further include general constraint information.
- the decoding apparatus may decode a picture further based on the information on the parameter set and/or the general restriction information.
- Signaling/receiving information and/or syntax elements described later in this document may be decoded through the decoding procedure and obtained from the bitstream.
- the entropy decoding unit 310 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and quantizes a value of a syntax element required for image reconstruction and a transform coefficient for residual.
- a coding method such as exponential Golomb coding, CAVLC, or CABAC
- the CABAC entropy decoding method receives bins corresponding to each syntax element in a bitstream, and decodes syntax element information to be decoded and decoding information of neighboring and decoding target blocks or symbol/bin information decoded in the previous step.
- the context model is determined by using, and the probability of occurrence of the bin is predicted according to the determined context model, and arithmetic decoding of the bin is performed to generate a symbol corresponding to the value of each syntax element. have.
- the CABAC entropy decoding method may update the context model using the decoded symbol/bin information for the next symbol/bin context model after determining the context model.
- prediction information is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and the entropy decoding unit 310 performs entropy decoding.
- the dual value, that is, quantized transform coefficients and related parameter information may be input to the residual processing unit 320.
- the residual processor 320 may derive a residual signal (residual block, residual samples, residual sample array). Also, information related to filtering among information decoded by the entropy decoding unit 310 may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) 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.
- the decoding device may be called a video/picture/picture decoding device, and the decoding device may be classified into an information decoder (video/picture/picture information decoder) and a sample decoder (video/picture/picture sample decoder). It might be.
- the information decoder may include the entropy decoding unit 310, and the sample decoder may include the inverse quantization unit 321, an inverse transformation unit 322, an addition unit 340, a filtering unit 350, and a memory 360 ), at least one of an inter prediction unit 332 and an intra prediction unit 331.
- 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 reordering may be performed based on the coefficient scan order performed by the encoding device.
- the inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients by using a quantization parameter (for example, quantization step size information), and obtain transform coefficients.
- a quantization parameter for example, quantization step size information
- the inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
- the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction is applied to the current block or inter prediction is applied based on the information on the prediction output from the entropy decoding unit 310, and may determine a specific intra/inter prediction mode.
- the prediction unit 320 may generate a prediction signal based on various prediction methods described below.
- the prediction unit may apply intra prediction or inter prediction as well as intra prediction and inter prediction at the same time for prediction for one block. This can be called combined inter and intra prediction (CIIP).
- 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 video/video coding such as a game, such as screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, the IBC can use at least one of the inter prediction techniques described in this document.
- the palette mode can be regarded as an example of intra coding or intra prediction. When the palette mode is applied, information on the palette table and palette index may be signaled by being included in the video/image information.
- the intra prediction unit 331 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 apart depending on a prediction mode.
- prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- the intra prediction unit 331 may determine a prediction mode applied to the current block using a prediction mode applied to neighboring blocks.
- the inter prediction unit 332 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between a neighboring block and a 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.
- 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 inter prediction unit 332 may construct a motion information candidate list based on neighboring blocks, and derive a motion vector and/or reference picture index of the current block based on the received candidate selection information. Inter-prediction may be performed based on various prediction modes, and information on the prediction may include information indicating a mode of inter-prediction for the current block.
- the adder 340 reconstructs the obtained residual signal by adding it to the predicted signal (predicted block, predicted sample array) output from the predictor (including the inter predictor 332 and/or the intra predictor 331) A signal (restored picture, reconstructed block, reconstructed sample array) can be generated. If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as a reconstructed block.
- the adding unit 340 may be called a restoration unit or a restoration block generation unit.
- the generated reconstructed signal may be used for intra prediction of a next processing target block in a current picture, may be output through filtering as described below, or may be used for inter prediction of a next picture.
- LMCS luma mapping with chroma scaling
- the filtering unit 350 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
- the filtering unit 350 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture may be a DPB of the memory 360, specifically, the memory 360 Can be transferred to.
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
- the (corrected) 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 a current picture is derived (or decoded) and/or motion information of blocks in a picture that has already been reconstructed.
- the stored motion information may be transmitted to the inter prediction unit 260 for use as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory 360 may store reconstructed samples of blocks reconstructed in the current picture, and may transmit the reconstructed samples to the intra prediction unit 331.
- the embodiments described in the filtering unit 260, the inter prediction unit 221, and the intra prediction unit 222 of the encoding device 200 are respectively the filtering unit 350 and the inter prediction of the decoding device 300.
- the unit 332 and the intra prediction unit 331 may be applied to the same or corresponding.
- the encoding device may perform various encoding methods such as exponential Golomb (CABLC), context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- CABLC exponential Golomb
- CAVLC context-adaptive variable length coding
- CABAC context-adaptive binary arithmetic coding
- the decoding apparatus may decode information in the bitstream based on coding methods such as exponential Golomb coding, CAVLC, or CABAC, and output quantized values of syntax elements necessary for image reconstruction and transform coefficients related to residuals. have.
- the above-described coding methods may be performed as described below.
- CABAC context-adaptive binary arithmetic coding
- the encoding device may convert the input signal to a binary value by binarizing the input signal when the input signal is a syntax element rather than a binary value.
- the input signal is already a binary value (ie, when the value of the input signal is a binary value)
- binarization is not performed and may be bypassed.
- each binary 0 or 1 constituting the binary value may be referred to as a bin.
- each of 1, 1, and 0 is called a bin.
- the bin(s) for a single syntax element may indicate the value of the syntax element.
- the binarized bins of the syntax element can be input to a regular encoding engine or a bypass encoding engine.
- the regular encoding engine of the encoding device may allocate a context model reflecting a probability value for the bean, and encode the bean based on the assigned context model.
- the regular encoding engine of the encoding apparatus may update the context model for the bin after encoding for each bin.
- the bin encoded as described above may be referred to as a context-coded bin.
- the bypass encoding engine of the encoding apparatus omits the procedure of estimating the probability of the input bin and updating the probability model applied to the bin after encoding.
- the encoding apparatus can encode the input bin by applying a uniform probability distribution instead of allocating a context model, thereby improving the encoding speed.
- the bin encoded as described above may be referred to as a bypass bin.
- the entropy decoding may indicate a process of performing the same process as the entropy encoding described above in reverse order.
- the decoding apparatus may receive a bin corresponding to the syntax element through a bitstream, and decoding information of the syntax element and a decoding target block or a neighboring block, or A context model may be determined using the information of the symbol/bin decoded in the previous step, and arithmetic decoding of the bin may be predicted by predicting the probability of occurrence of the received bin according to the determined context model By performing, it is possible to derive the value of the syntax element. Thereafter, the context model of the next decoded bean may be updated with the determined context model.
- the decoding apparatus may receive the bin corresponding to the syntax element through a bitstream, and decode the input bin by applying a uniform probability distribution.
- the decoding device may omit the procedure of deriving the context model of the syntax element and the procedure of updating the context model applied to the bean after decoding.
- residual samples may be derived as quantized transform coefficients through a transform and quantization process.
- the quantized transform coefficients can also be called transform coefficients.
- the transform coefficients in the block may be signaled in the form of residual information.
- the residual information may include residual coding syntax. That is, the encoding device may construct a residual coding syntax with residual information, encode it, and output it in the form of a bitstream, and the decoding device decodes the residual coding syntax from the bitstream and converts residual (quantized) transform coefficients. Can be derived.
- the residual coding syntax has a transformation applied to a corresponding block, a location of the last valid transform coefficient in a block, a valid transform coefficient in a subblock, and a size/sign of the effective transform coefficient. And syntax elements representing the back.
- syntax elements such as (quantized) transformation coefficients (that is, the residual information) 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, rem_abs_gt1_flag, rem_abs_gt2_flag, abs_remainder, coeff_sign_flag, mts_idx (syntax elements) may be encoded and/or decoded. Syntax elements related to residual data encoding/decoding may be represented as the following table.
- transform_skip_flag indicates whether transform is omitted in an associated block.
- the transform_skip_flag may be a syntax element of the transform skip flag.
- the associated block may be a coding block (CB) or a transform block (TB).
- CB and TB can be mixed.
- Information eg, syntax elements
- the quantized transform coefficients can simply be called transform coefficients.
- 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 called CB or TB.
- the target block to be transformed (and quantized) and residual coded may be called TB.
- syntax elements related to residual coding are described as being signaled in units of a transform block (TB), but as an example, the TB may be mixed with the coding block (CB) as described above.
- the encoding device may encode (x, y) position information of the last non-zero transform coefficient in the transform block based on the syntax elements last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix and last_sig_coeff_y_suffix.
- the last_sig_coeff_x_prefix indicates the prefix of the column position of the last significant coefficient in the scan order in the transform block, and the last_sig_coeff_y_prefix is within the transform block
- the prefix of the row position of the last significant coefficient in the scan order, and the last_sig_coeff_x_suffix is the scan order in the transform block.
- the suffix of the column position of the last significant coefficient, and the last_sig_coeff_y_suffix is the last significant coefficient in the scanning order in the transform block. It represents the suffix of the row position of coefficient.
- the effective coefficient may represent the non-zero coefficient.
- the scan order may be a diagonal upward scan order.
- 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 target block (CB, or CB including TB) and/or a specific intra/inter prediction mode.
- the encoding apparatus divides the transform block into 4x4 sub-blocks, and then uses a 1-bit syntax element coded_sub_block_flag for each 4x4 sub-block to determine whether a non-zero coefficient exists in the current sub-block. Can be represented.
- coded_sub_block_flag If the value of coded_sub_block_flag is 0, since there is no more information to be transmitted, the encoding apparatus may end the encoding process for the current subblock. Conversely, when the value of coded_sub_block_flag is 1, the encoding apparatus may continuously perform the encoding process for sig_coeff_flag. Since the sub-block containing the last non-zero coefficient does not require encoding for coded_sub_block_flag, and the sub-block containing the DC information of the transform block has a high probability of including the non-zero coefficient, coded_sub_block_flag is not encoded and its value This can be assumed to be 1.
- the encoding apparatus may encode sig_coeff_flag having a binary value according to the reversed scan order.
- the encoding apparatus may encode the 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.
- the encoding process for the sub-block may be omitted.
- Level information encoding can be performed only when sig_coeff_flag is 1, and four syntax elements can be used in the level information encoding process. More specifically, each sig_coeff_flag[xC][yC] 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 valid coefficient flag indicating whether the quantized transform coefficient is a non-zero valid coefficient.
- the remaining level value after encoding for sig_coeff_flag can be derived as shown in the following equation. That is, the syntax element remAbsLevel indicating the level value to be encoded can be derived from the following equation.
- coeff means the actual transform coefficient value
- Equation 2 the least significant coefficient (LSB) value of remAbsLevel described in Equation 1 above may be encoded as Equation 2 below through par_level_flag.
- par_level_flag[n] may indicate parity of the transform coefficient level (value) at the scanning position n.
- the transform coefficient level value remAbsLevel to be encoded may be updated as shown in the following equation.
- rem_abs_gt1_flag may indicate whether remAbsLevel' at the corresponding scanning position (n) is greater than 1
- rem_abs_gt2_flag indicates whether remAbsLevel' at the corresponding scanning position (n) is greater than 2.
- the encoding for abs_remainder can be performed only when rem_abs_gt2_flag is 1.
- the relationship between the actual transform coefficient value coeff and each syntax element may be expressed by the following equation.
- coeff represents the transform coefficient level (value), and may be expressed as AbsLevel for the transform coefficient. Also, the sign of each coefficient can be encoded using a 1-bit symbol, coeff_sign_flag.
- the par_level_flag may represent an example of a syntax element of a parity level flag for a parity of a transform coefficient level for the quantized transform coefficient
- the rem_abs_gt1_flag indicates whether a transform coefficient level is greater than a first threshold
- An example of the syntax element of the first transform coefficient level flag for may be represented
- the rem_abs_gt2_flag may represent an example of the syntax element of the second transform coefficient level flag for whether the transform coefficient level is greater than a second threshold.
- the coeff_sign_flag may indicate a sign of a transform coefficient level at a corresponding scanning position (n). That is, the coeff_sign_flag may indicate a sign of a transform coefficient at a corresponding scanning position (n).
- the mts_idx may indicate transform kernels applied in a horizontal direction and a vertical direction with respect to residual samples in the current transform block.
- FIG. 5 is a diagram illustrating an example of transform coefficients in a 4x4 block.
- the 4x4 block of FIG. 5 shows an example of quantized coefficients.
- the block illustrated in FIG. 5 may be a 4x4 transform block or a 4x4 subblock of 8x8, 16x16, 32x32, and 64x64 transform blocks.
- the 4x4 block of FIG. 5 may represent a luma block or a chroma block.
- the encoding result for the inverse diagonally scanned coefficients of FIG. 5 may be as shown in the following table.
- scan_pos indicates the position of the coefficient according to the inverse diagonal scan.
- scan_pos 15 may be the first to be scanned in the 4x4 block, that is, the transform coefficient of the lower right corner
- scan_pos 0 may be the last to be scanned, that is, the transform coefficient of the upper left corner.
- the scan_pos may be referred to as a scan position.
- scan_pos 0 may be referred to as scan position 0.
- the encoding device may convert the input signal to a binary value by binarizing the value of the input signal when the input signal is a syntax element rather than a binary value.
- the decoding apparatus may derive the binary value (ie, binarized bin) of the syntax element by decoding the syntax element, and inversely binarize the binary value to derive the value of the syntax element.
- the binarization process may include a truncated rice (TR) binarization process, k-th order Exp-Golomb (EGk) binarization process, or fixed length (described later). Fixed-length, FL) can be performed by a binarization process.
- an inverse binarization process may be performed based on the TR binarization process, the EGk binarization process, or the FL binarization process to represent a process of deriving the value of the syntax element.
- the TR binarization process can be performed as follows.
- the input of the TR binarization process may be a request for TR binarization and cMax and cRiceParam for a syntax element. Further, the output of the TR binarization process may be TR binarization for the value symbolVal corresponding to the empty string.
- the TR empty string for the syntax element may be a concatenation of a prefix empty string and a suffix empty string. If the suffix empty string does not exist, the TR empty string for the syntax element may be the prefix empty string.
- the prefix empty string can be derived as described below.
- the prefix value of the symbolVal for the syntax element can be derived as in the following equation.
- prefixVal may indicate the prefix value of the symbolVal.
- the prefix (ie, the prefix empty string) of the TR empty string of the syntex element may be derived as described below.
- the prefix empty string may be a bit string of length prefixVal + 1 indexed by binIdx. That is, when the prefixVal is smaller than cMax >> cRiceParam, the prefix empty string may be a bit string of prefixVal + 1 bit number indicated by binIdx.
- the bin for binIdx smaller than prefixVal may be equal to 1.
- a bin for binIdx equal to prefixVal may be equal to 0.
- an empty string derived by unary binarization for the prefixVal may be as shown in the following table.
- the prefix empty string may be a bit string having a length of cMax >> cRiceParam and all the bins being 1.
- suffix empty string of the TR empty string may exist.
- the suffix empty string can be derived as described below.
- the suffix value of the symbolVal for the syntax element can be derived as in the following equation.
- suffixVal may indicate the suffix value of symbolVal.
- the suffix of the TR empty string (ie, the suffix empty string) can be derived based on the FL binarization process for suffixVal with a cMax value of (1 ⁇ cRiceParam)-1.
- the TR binarization may be precisely truncated unary binarization, and a cMax value equal to the maximum possible value of the always-decoded syntax syntax element may be used.
- the syntax element coded with ue(v) may be an Exp-Golomb coded syntax element.
- the 0-th order Exp-Golomb (EG0) binarization process may be performed as follows.
- the parsing process for the syntax element can be started by counting the number of leading bits, such as zero, by reading the bit including the first non-zero bit starting at the current position in the bitstream. have.
- the above process can be represented as the following table.
- variable codeNum can be derived as follows.
- the value returned from read_bits(leadingZeroBits), that is, the value indicated by read_bits(leadingZeroBits) is a binary representation of the unsigned integer for the most significant bit recorded first. Can be interpreted.
- the "prefix” bit may be a bit parsed as described above for calculation of leadingZeroBits, and may be indicated as 0 or 1 of a bit string in Table 6. That is, the bit strings disclosed as 0 or 1 in Table 6 above may indicate prefix bit strings.
- the "suffix” bit may be a bit parsed in the calculation of codeNum, and may be indicated by xi in Table 6 above. That is, the bit string disclosed by xi in Table 6 described above may represent a suffix bit string.
- i may be a value ranging from 0 to LeadingZeroBits-1.
- each xi can be equal to 0 or 1.
- the bit string allocated to the codeNum may be as shown in the following table.
- the value of the syntax element may be the same as codeNum.
- the EGk binarization process can be performed as follows.
- the input of the EGk binarization process may be a request for EGk binarization. Further, the output of the EGk binarization process may be EGk binarization for the value symbolVal corresponding to the empty string.
- bit string of the EGk binarization process for symbolVal can be derived as follows.
- a binary value X may be added to the end of an empty string through each call of put(X).
- X may be 0 or 1.
- the FL binarization process may be performed as follows.
- the input of the FL binarization process may be a request for FL binarization and cMax for the syntax element.
- the output of the FL binarization process may be FL binarization for a value symbolVal corresponding to an empty string.
- FL binarization may be configured using a bit string having a fixed number of bits of the symbol value symbolVal.
- the fixed length bit may be an unsigned integer bit string. That is, a bit string for the symbol value symbolVal may be derived through FL binarization, and the bit length (ie, the number of bits) of the bit string may be a fixed length.
- the fixed length can be derived by the following equation.
- Indexing of bins for FL binarization may be a method using an increasing value from the most significant bit to the least significant bit.
- the binarization process for the syntax element abs_remainder among the residual information may be performed as follows.
- the input of the binarization process for the abs_remainder is a request for binarization of the syntax element abs_remainder[n], color component cIdx, luma position (x0, y0), current count scan position (xC, yC), transform block It can be log2TbWidth, which is the binary logarithm of the width, and log2TbHeight, which is the binary logarithm of the height of the transform block.
- the luma positions (x0, y0) may refer to the upper left sample of the current luma transform block based on the upper left luma sample of the picture.
- the output of the binarization process for the abs_remainder may be the binarization of the abs_remainder (ie, the binarized empty string of the abs_remainder). Available empty strings for the abs_remainder may be derived through the binarization process.
- the rice parameter cRiceParam for the abs_remainder is a rice parameter derivation process performed by inputting log2TbHeight which is a binary logarithm of the color component cIdx and luma position (x0, y0), current coefficient scan position (xC, yC), and height of the transform block. Can be derived through A detailed description of the rice parameter derivation process will be described later.
- cMax for the abs_remainder may be derived based on the rice parameter cRiceParam.
- the cMax can be derived by the following equation.
- the cMax when the value of the cRiceParam is 1, the cMax can be derived as 6 ⁇ cRiceParam, and when the value of the cRiceParam is not 1, the cMax can be derived as 7 ⁇ cRiceParam.
- the binarization for the abs_remainder that is, the empty string for the abs_remainder may be a concatenation of a prefix empty string and a suffix empty string when a suffix empty string exists. Further, when the suffix empty string does not exist, the empty string for the abs_remainder may be the prefix empty string.
- the prefix empty string can be derived as described below.
- the prefix value prefixVal of the abs_remainder can be derived as in the following equation.
- the prefix of the empty string of the abs_remainder (ie, the prefix empty string) can be derived through the TR binarization process for the prefixVal using the cMax and the cRiceParam as inputs.
- a suffix empty string of the empty string of the abs_remainder may exist, and may be derived as described below.
- the suffixVal of the suffix value of abs_remainder can be derived as the following equation.
- the suffix empty string of the empty string of abs_remainder can be derived through the EGk binarization process for the suffixVal where k is set to cRiceParam+1.
- the input of the rice parameter derivation process includes color component index cIdx, luma position (x0, y0), current coefficient scan position (xC, yC), log2TbWidth, which is a binary logarithm of the transform block width, and It can be log2TbHeight, which is a binary logarithm of the height of the transform block.
- the luma positions (x0, y0) may refer to the upper left sample of the current luma transform block based on the upper left luma sample of the picture.
- the output of the rice parameter derivation process may be the rice parameter cRiceParam.
- variable locSumAbs is based on the array AbsLevel[x][C] for the transform block with the given syntax elements sig_coeff_flag[x][y], the component index cIdx, and the upper left luma position (x0, y0). It can be derived as a pseudo code (pseudo code) disclosed in the following table.
- the rice parameter cRiceParam can be derived as follows.
- the cRiceParam when the locSumAbs is less than 12, the cRiceParam may be set to 0. Alternatively, if the above-described conditions are not satisfied, and the locSumAbs is less than 25 (ie, the locSumAbs is 12 or more and less than 25), the cRiceParam may be set to 1. Alternatively, when the above-described conditions are not satisfied (ie, the locSumAbs is greater than or equal to 25), the cRiceParam may be set to 2.
- transformation for a block having a large block size for example, a maximum size of 64x64, is available, and thus may be useful in coding high-resolution images such as 1080p and 4k sequences.
- a small residual may exist for a large block partition, and the residual energy may be concentrated in low frequency variables in the transform domain.
- a scheme may be proposed in which high-frequency transform coefficients for a large-size block (eg, a transform block having a width and/or height of 64) become 0 and only low-frequency coefficients are maintained.
- the above-described method may be referred to as high frequency zeroing. That is, the high frequency zeroing zeroes the transform coefficients related to frequencies higher than a certain value in a (transformation) block having a first width W1 and a first height H1 (ie, zero). Decision).
- a WxH sized transform block when W is 64, transform coefficients of the left 32 columns in the transform block can be maintained, and the remaining transform coefficients can be zeroed.
- the transform skip mode when the transform skip mode is applied to a large block, the high-frequency zeroing is not applied, and total coefficient values of the large block may be used.
- the above-mentioned high frequency zeroing may be performed in a transform and/or quantization process, or may be performed in a residual coding process.
- the remaining transform coefficients except for the lower left-frequency coefficients may be set to 0 in the process of transforming residual samples. have.
- the remaining transform coefficients may be set to 0.
- the values of the remaining transform coefficients in the residual coding process It may be treated as regarded as being zero (ie, the remaining transform coefficients are not considered to be non-zero significant coefficients).
- FIG. 6 is a view for explaining high-frequency zeroing according to an embodiment.
- high frequency zeroing in this document zeroes the transform coefficients related to frequencies higher than a certain value in the (transformation) block having the first horizontal size (or length) W1 and the first vertical size (or length) H1. It means the process (that is, it is determined as 0).
- all of the transform coefficients of the transform coefficients outside the low frequency transform coefficient region configured based on the second horizontal size W2 and the second vertical size H2 among the transform coefficients in the (conversion) block are all 0 Can be determined (set).
- the outside of the low frequency transform coefficient region may be referred to as a high frequency transform coefficient region.
- the low frequency transform coefficient region may be a rectangular shape region located from the upper left of the (transformed) block.
- high frequency zeroing may be replaced with various terms such as high frequency zeroing, high frequency zeroing, high frequency zeroing, high frequency zero-out, zero out
- the "high frequency conversion coefficient region” may be a high frequency zeroing application region
- High frequency zeroing region, high frequency region, high frequency coefficient region, high frequency zero out region, zero out region, etc. can be replaced with various terms
- the "low frequency transform coefficient region” is a high frequency zero unapplied region, low frequency region, low frequency coefficient region
- the interpretation of the term should not be limited to the name. It is necessary to pay attention to and interpret various actions, functions, and effects according to the content to be displayed.
- a method of performing binarization of syntax elements last_sig_coeff_x_prefix and last_sig_coeff_y_prefix for a (transformation) block (TB, TU or CB) to which high frequency zeroing is applied may be proposed.
- the last_sig_coeff_x_prefix and last_sig_coeff_y_prefix can be binarized with the truncated rice code described above, and the value of cRiceParam can be 0.
- cMax used for binarization for truncated rice code may be determined based on Equation 1 when performing binarization of last_sig_coeff_x_prefix, and based on Equation 2 when performing binarization of last_sig_coeff_y_prefix.
- W1 may represent the horizontal length (or width) of the (converted) block
- H1 may represent the vertical length (or height) of the transform block.
- W1 is 64 and H1 is 32. Accordingly, a value of cMax for binarization of last_sig_coeff_x_prefix may be 11, and a value of cMax for binarization of last_sig_coeff_y_prefix may be 9.
- Table 10 below shows the binarization when W1 or H1 is 32
- Table 2 below shows the binarization codeword when W1 or H1 is 64.
- last_sig_coeff_x_prefix for encoding a case where the values of LastSignificantCoeffX or LastSignificantCoeffY are 32 to 47 as shown in Table 11 below.
- the codeword of last_sig_coeff_y_prefix may be '11111111110', and the codeword for encoding the case of 48 to 63 may be '11111111111', in both cases based on 11 bins.
- the codeword may be called an empty string.
- the encoding apparatus may perform a residual coding procedure on (quantized) transform coefficients.
- the encoding apparatus may residual code (quantized) transform coefficients in a current block (current coding block (CB) or current transform block (TB)) according to a scan order.
- the encoding apparatus may generate and encode various syntax elements related to residual information as described in Table 1 above.
- LastSignificantCoeffX may be derived based on the value of last_sig_coeff_x_suffix.
- the codeword of last_sig_coeff_x_prefix for encoding the case where the value of LastSignificantCoeffX is 32 to 47 may be '11111111110', and which value from 32 to 47 is used may be determined based on the value of last_sig_coeff_x_suffix have.
- LastSignificantCoeffY may be derived based on the value of last_sig_coeff_y_suffix.
- the codeword of last_sig_coeff_x_prefix for encoding a case where the value of LastSignificantCoeffY is 32 to 47 is '11111111110', and which value from 32 to 47 is used may be determined based on the value of last_sig_coeff_y_suffix.
- LastSignificantCoeffX or LastSignificantCoeffY may be performed, for example, as shown in Table 12 below.
- High-frequency zeroing zeroes the coefficients of frequencies higher than a certain level (ie, is determined as 0) in a transform block having a first horizontal size (W1) or a first vertical size (H1) to convert the residual transform coefficients to a second horizontal size ( W2) or the second vertical size (H2).
- W1 first horizontal size
- H1 first vertical size
- W2 second horizontal size
- a method of performing binarization based on the truncated rice code based on the second vertical size may be considered.
- the truncated rice code derived based on Equation 14 or Equation 15 is It may be as shown in Table 13 below.
- W2 and H2 may be set to fixed values. Alternatively, W2 and H2 may be determined based on W1 and H1. Alternatively, information indicating W2 and H2 may be signaled from the encoding device to the decoding device. In one example, the W2 and H2 may be set to 32 or 16, respectively. In another example, W2 and H2 may be derived as 1/2 of W1 and 1/2 of H1, respectively. In another example, W2 and H2 may be derived by 1/2 of max(W1,H1). However, this is an example, and the W2 and H2 may be determined by another various methods set in the encoding device and the decoding device.
- the proposed method can effectively reduce the codeword length for some values of LastSignificantCoeffX or LastSignificantCoeffY.
- the coding bin saved through this is a context coding bin, it may have an advantage in terms of throughput.
- a residual coding method described later in FIGS. 9A to 10B may be performed. Further, in another example, based on the embodiments described in FIG. 6, an encoding method to be described later in FIG. 11 or a decoding method to be described later in FIG. 13 may be performed.
- FIG. 7 is a diagram for explaining an example of a method of scanning transform coefficients for a current block to which high-frequency zeroing is applied.
- residual coding may be performed while scanning the transform coefficient group in the inverse diagonal direction from the position of the last transform coefficient group including the last non-zero coefficient.
- the scan order of the transform coefficient group may be changed for a transform block to which high frequency zeroing is applied.
- the part indicated by L means a 4x4 transform coefficient group including the last non-zero coefficient.
- High frequency zeroing zeroes (or zeros out) the transform coefficients related to high frequencies above a certain frequency in a transform block having a first horizontal size W1 and/or a first vertical size H1 to convert a residual transform coefficient to a second horizontal size It means to be limited to (W2) and/or the second vertical size (H2), and the 4x4 blocks marked with dots in FIG. 7 represent areas that are zeroed out through high-frequency zeroing.
- the hatched area may be referred to as a low frequency conversion coefficient area
- the dot-marked area may be referred to as a high frequency conversion coefficient area.
- W2 and/or H2 may be set to a fixed value, or may be determined based on W1 and/or H1. Alternatively, information indicating W2 and/or H2 may be signaled from the encoding device to the decoding device. In one example, the W2 and H2 may be set to 32 or 16, respectively. In another example, W2 and/or H2 may be derived from 1/2 of W1 and/or 1/2 of H1, respectively. In another example, W2 and/or H2 may be derived by 1/2 of max(W1,H1). However, the above-described examples are only a part, and the W2 and/or H2 may be determined based on various methods in an encoding device and a decoding device.
- the area that is zeroed out through high frequency zeroing should also be scanned in the reverse diagonal scan order.
- a coded sub-block flag (a sub-block within the current block) in the zero-out area (a region constituted by 4x4 blocks indicated by x in FIG. 7)
- a flag indicating whether all of the transform coefficient levels of the transform coefficients for are 0, for example, a bundle that may be coded that coded_sub_block_flag) is 0 may occur.
- FIG. 8 is a diagram for explaining another example of a method of scanning transform coefficients for a current block to which high-frequency zeroing is applied.
- the encoding device is a coded sub-block for a sub-block located in a region (ie, a high-frequency transform coefficient region) exceeding W2 and/or H2 in a current (transformed) block
- the flag may not be included in the residual coding syntax (or bitstream). That is, the bit related to the syntax element coded_sub_block_flag for the sub-block located in the area exceeding W2 and/or H2 may not be allocated.
- the decoding apparatus may infer that the last effective coefficient is not located in the area exceeding W2 and/or H2 without performing a scan for the subblock located in the area exceeding W2 and/or H2. .
- the decoding apparatus does not parse the syntax element coded_sub_block_flag for the subblock located in the region exceeding W2 and/or H2 from the residual coding syntax (or bitstream), and sets the value of the syntax element coded_sub_block_flag. Can be inferred as 0.
- the residual coding method described later in FIGS. 9A to 10B may be performed based on the embodiments described with reference to FIGS. 7 and 8. In another example, based on the embodiments described in FIGS. 7 and 8, an encoding method described later in FIG. 11 or a decoding method described later in FIG. 13 may be performed.
- 9A and 9B are diagrams for explaining the configuration and operation of an entropy encoding unit according to an embodiment.
- the encoding apparatus may perform a residual coding procedure on (quantized) transform coefficients.
- the (quantized) transform coefficients may be transform coefficients to which high-frequency zeroing is applied in one example, and may include non-zero high-frequency coefficients in another example, where high frequency is applied in the residual coding procedure performed by the entropy encoding unit. Coefficients can be considered or treated as zero.
- the encoding apparatus may residual code (quantized) transform coefficients in the current block (current coding block (CB) or current transform block (TB)) according to a scan order.
- the encoding apparatus may generate and encode various syntax elements related to residual information, for example, as described in Table 1 above. S900 and S910 may be included in the residual information encoding procedure of FIG. 2.
- the encoding apparatus may perform binarization for residual related syntax elements (S900).
- binarization according to the above-described embodiments in FIG. 6 may be performed on last_sig_coeff_x_prefix and last_sig_coeff_y_prefix.
- the last_sig_coeff_x_prefix and the last_sig_coeff_y_prefix may be derived based on the position of the last valid coefficient in the current block.
- binarization may be performed according to a predetermined method with respect to the remaining syntax elements of Table 1 above.
- transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, fixed-length, sequential, num_reduced, fixed Corresponding binarization can be performed.
- last_sig_coeff_x_prefix and last_sig_coeff_y_prefix may represent examples of last significant coefficient prefix information for the position of the last non-zero transform coefficient among the transform coefficients for the current block. More specifically, last_sig_coeff_x_prefix may represent an example of x-axis prefix information that is one of the last valid coefficient prefix information, and last_sig_coeff_y_prefix may represent an example of y-axis prefix information that is one of the last valid coefficient prefix information.
- a value of cRiceParam may be 0.
- the encoding apparatus may derive an empty string for each of the last_sig_coeff_x_prefix and last_sig_coeff_y_prefix through the binarization procedure.
- the binarization procedure may be performed by the binarization unit 242 in the entropy encoding unit 240.
- cMax values for each of last_sig_coeff_x_prefix and last_sig_coeff_y_prefix may be derived based on whether high-frequency zeroing is applied.
- the specific equation for deriving cMax has been described above in FIG. 6.
- the cMax may indicate the maximum length of a codeword (empty string) derived in the binarization process for last_sig_coeff_x_prefix or last_sig_coeff_y_prefix.
- the encoding apparatus may perform entropy encoding for the syntax elements related to the residual coding (S910).
- the encoding apparatus may omit the transform coefficient scan for the region to which the high frequency zeroing is applied, and may not encode coded_sub_block_flag for the region to which the high frequency zeroing is applied. That is, the encoding apparatus may not include the syntax element coded_sub_block_flag for a sub-block located in a region to which high-frequency zeroing is applied in generating a residual coding syntax (or bitstream).
- the encoding apparatus may encode coded_sub_block_flag only in a region to which high-frequency zeroing is not applied, that is, a top-left transform coefficient region (or a low-frequency transform coefficient region) and include it in a residual coding syntax (or bitstream). Through this, the number of bits allocated to residual coding can be reduced.
- the encoding device may context- or bypass-based encode the empty string based on entropy coding techniques such as CABAC (context-adaptive arithmetic coding) or CAVLC (context-adaptive variable length coding). Can be included.
- the entropy encoding procedure may be performed by the entropy encoding processing unit 244 in the entropy encoding unit 240.
- the bitstream may include various information for video/video decoding, such as prediction information, as well as residual information including information about last_sig_coeff_x_prefix and last_sig_coeff_y_prefix.
- the bitstream may be delivered to a decoding device via a (digital) storage medium or a network.
- 10A and 10B are diagrams for explaining a configuration and operation method of an entropy decoding unit according to an embodiment.
- a decoding apparatus may decode transformed residual information to derive (quantized) transform coefficients.
- the decoding apparatus may derive (quantized) transform coefficients by decoding the encoded residual information for the current block (current coding block or current transform block) as described above in FIG. 6. .
- the decoding apparatus decodes various syntax elements related to residual information as described in Table 1 above, interprets the values of related syntax elements, and converts the (quantized) based on the values of the interpreted syntax elements. Coefficients can be derived.
- S1000 to S1010 may be included in the procedure for deriving the (quantized) transform coefficients of FIG. 3 described above.
- the decoding apparatus may perform binarization for residual related syntax elements (S1000). For example, binarization based on the above-described embodiments in FIG. 6 may be performed on last_sig_coeff_x_prefix and last_sig_coeff_y_prefix. At this time, the value of cRiceParam may be 0. In the binarization procedure, the decoding apparatus may derive available empty strings for available values of each of the last_sig_coeff_x_prefix and last_sig_coeff_y_prefix through the binarization procedure. The binarization procedure may be performed by the binarization unit 312 in the entropy decoding unit 310.
- cMax values for each of last_sig_coeff_x_prefix and last_sig_coeff_y_prefix may be derived based on whether high-frequency zeroing is applied.
- the specific equation for deriving cMax has been described above in FIG. 6.
- the cMax may indicate the maximum length of a codeword (empty string) derived in the binarization process for last_sig_coeff_x_prefix or last_sig_coeff_y_prefix.
- cMax When the value of cMax is reduced, the length of a codeword for last_sig_coeff_x_prefix or last_sig_coeff_y_prefix can be effectively reduced, and since the coded bin saved by reducing the codeword is a context coded bin, image coding throughput is achieved. In terms of this.
- binarization may also be performed for the remaining syntax elements in Table 1 according to a predetermined method. For example, transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, fixed-length for the number of times, fixed for the length of the number of times, fixed for the number of times, Binarization can be performed.
- the decoding apparatus may perform entropy decoding on the syntax elements related to the residual coding (S1010).
- the decoding device may parse and decode each bin for each syntax element sequentially, and compare the derived bin string with the available bin strings. If the derived empty string is equal to one of the available empty strings, a value corresponding to the empty string may be derived as the value of the syntax element. If the derived empty string is not equal to any of the available empty strings, the decoding apparatus may further parse and decode the next bit in the bitstream and then perform the comparison procedure.
- the corresponding information can be signaled using a variable length bit without using a start bit or an end bit for specific information (a specific syntax element) in the bitstream, and through this, relatively fewer bits for low values.
- the overall coding efficiency can be increased.
- the decoding apparatus may omit the transform coefficient scan for an area to which high-frequency zeroing is applied, and may parse and/or decode coded_sub_block_flag for an area to which high-frequency zeroing is applied, and regard it as 0. That is, the decoding apparatus may infer that the last effective coefficient is not located without performing a scan on the sub-block located in the region to which high-frequency zeroing is applied, and syntax for the sub-block located in the region to which high-frequency zeroing is applied.
- the element coded_sub_block_flag may not be parsed from the residual coding syntax (or bitstream), and the value of the syntax element coded_sub_block_flag may be inferred as 0.
- the decoding apparatus may infer that the syntax element coded_sub_block_flag parsed and/or decoded in residual information (eg, residual coding syntax) for the current block is not for an area to which high frequency zeroing is applied, It can be inferred that the syntax element coded_sub_block_flag first parsed and/or decoded in the residual information (eg, residual syntax) for the upper left transform block is for the first subblock derived based on the scan order.
- residual information eg, residual coding syntax
- the decoding apparatus may decode each bin in the bin string from a bitstream based on context or bypass based on an entropy coding technique such as CABAC or CAVLC.
- the entropy decoding procedure may be performed by the entropy decoding processing unit 314 in the entropy decoding unit 310.
- the decoding apparatus may derive the position of the last valid coefficient based on the value of last_sig_coeff_x_prefix and the value of last_sig_coeff_y_prefix. Specific calculation may be performed based on, for example, Table 14 below.
- LastSignificantCoeffX represents the x-axis position of the last non-zero effective coefficient in the current (transformed) block
- LastSignificantCoeffY represents the y-axis position of the last non-zero effective coefficient in the current (transformed) block.
- the bitstream may include various information for video/video decoding, such as prediction information, as well as residual information including information about last_sig_coeff_x_prefix and last_sig_coeff_y_prefix.
- the bitstream can be delivered to a decoding device through a (digital) storage medium or a network.
- the decoding apparatus may derive residual samples for the current block by performing an inverse quantization and/or inverse transform procedure based on the (quantized) transform coefficients.
- Restoration samples may be generated based on the residual samples and prediction samples derived through inter/intra prediction, and a reconstruction picture including the reconstruction samples may be generated.
- log2TbWidth and log2TbHeight representing the horizontal and vertical sizes of the transform block of the context models of the last_sig_coeff_x_prefix and last_sig_coeff_y_prefix are considered in consideration of a region that is zeroed (or zero-out) in the high-frequency zeroing.
- Min(log2TbWidth, 5) can represent the smaller of log2TbWidth and 5
- Min(log2TbHeight, 5) can represent the smaller of log2TbHeight and 5.
- the context models of the last_sig_coeff_x_prefix and last_sig_coeff_y_prefix can be derived as shown in the following table.
- the context index (ctxIdx) indicating the context model may be determined based on ctxInc.
- ctxInc may be determined based on Min(log2TbWidth, 5) and/or Min(log2TbHeight, 5), and a context index indicating a context model may be determined based on the determined ctxInc.
- Min(log2TbWidth, 5) may indicate the width (ie, the second horizontal length) of the low-frequency transform coefficient region described above
- Min(log2TbHeight, 5) is the height (ie, the low-frequency transform coefficient region described above) , The second vertical length).
- the log2TbWidth can be derived as 6, so the Min(log2TbWidth, 5) can be derived as 5, and the 5 is 32 as the derived width.
- the log2TbHeight can be derived as 6, and thus the Min(log2TbHeight, 5) can be derived as 5, which indicates that the derived height is 32 have. That is, it can be seen that the height of the low-frequency transform coefficient region is 32.
- log2TbSize may be set to Min(log2TbWidth, 5) for the last_sig_coeff_x_prefix, and if cIdx is 0, ctxOffset is 3 * (log2TbSize-2) + (( log2TbSize-1) >> 2 ), ctxShift can be set to (log2TbSize + 1) >> 2, if cIdx is greater than 0, ctxOffset is 21, ctxShift is set to Clip3( 0, 2, 2 log2TbSize >> 3) Can be.
- ctxInc for the last_sig_coeff_x_prefix may be set as (binIdx >> ctxShift) + ctxOffset.
- log2TbSize may be set to Min(log2TbHeight, 5) for the last_sig_coeff_y_prefix, and then, if cIdx is 0, ctxOffset is 3 * (log2TbSize-2) + ((log2TbSize-1) >> 2 ), ctxShift can be set to (log2TbSize + 1) >> 2, and if cIdx is greater than 0, ctxOffset can be set to 21, and ctxShift can be set to Clip3( 0, 2, 2 log2TbSize >> 3 ). Thereafter, ctxInc for the last_sig_coeff_y_prefix may be set as (binIdx >> ctxShift) + ctxOffset.
- the bins of the empty string of the last_sig_coeff_x_prefix and the bins of the empty string of the last_sig_coeff_y_prefix may be context-based coded based on the context model for each bin, and in this case, the context model may be derived based on the ctxInc. have.
- the encoding apparatus may derive the value of the syntax element last_sig_coeff_x_prefix, derive binarization bins corresponding to the value through a binarization process, and derive a context model for each of the bins to encode the bins.
- the encoding device may derive the value of the syntax element last_sig_coeff_y_prefix, derive binarization bins corresponding to the value through a binarization process, and derive a context model for each of the bins to encode the bins.
- a bit string having a length equal to or shorter than the length of binarization bins corresponding to the value may be output.
- the decoding apparatus may derive candidate bin strings through the binarization process for the syntax element last_sig_coeff_x_prefix, and may decode bins for the syntax element last_sig_coeff_x_prefix while sequentially parsing bits for the syntax element last_sig_coeff_x_prefix from a bitstream.
- the decoding device may derive a context model for each of the bins to decode the bins. Thereafter, the decoding apparatus may determine whether the decoded bins correspond to one of the candidate bin strings, and when the decoded bins correspond to one of the candidate bin strings, indicate a value indicated by the corresponding bin string.
- the decoding apparatus may repeat the above-described procedure while parsing the bit for the syntax element last_sig_coeff_x_prefix. Also, the decoding apparatus may derive candidate bin strings through the binarization process for the syntax element last_sig_coeff_y_prefix, and sequentially decode the bits for the syntax element last_sig_coeff_y_prefix from the bitstream while decoding the bins for the syntax element last_sig_coeff_y_prefix have.
- the decoding device may derive a context model for each of the bins to decode the bins. Thereafter, the decoding apparatus may determine whether the decoded bins correspond to one of the candidate bin strings, and when the decoded bins correspond to one of the candidate bin strings, indicate a value indicated by the corresponding bin string. It can be derived as the value of the last_sig_coeff_y_prefix syntax element. Further, when the decoded bins do not correspond to one of the candidate bin strings, the decoding apparatus may repeat the above-described procedure while parsing the bit for the syntax element last_sig_coeff_y_prefix.
- position information indicating the position of the last non-zero transform coefficient that is, coding of the last valid coefficient position information (the syntax element last_sig_coeff_x_prefix and the syntax element last_sig_coeff_y_prefix)
- ctxInc and/or ctxIdx may be differently determined based on Min(log2TbWidth, 5) and/or Min(log2TbHeight, 5), in which case different context models for bins of the same bin index may be used without signaling additional information. It can be applied adaptively.
- semantics for the syntax elements to which the above-described embodiment is applied can be represented as in the following table.
- FIG. 11 schematically shows a video encoding method by an encoding device according to the present document.
- the method disclosed in FIG. 11 may be performed by the encoding device disclosed in FIG. 2.
- S1100 of FIG. 11 may be performed by a subtraction unit of the encoding device
- S1110 may be performed by a conversion unit and a quantization unit of the encoding device
- S1120 may be entropy encoding of the encoding device It can be done by wealth.
- a process of deriving a prediction sample may be performed by the prediction unit of the encoding apparatus, and reconstruction samples for the current block based on residual samples and prediction samples for the current block.
- the process of deriving may be performed by the addition unit of the encoding device, and the process of encoding the prediction information for the current block may be performed by the entropy encoding unit of the encoding device.
- the encoding device derives residual samples for the current block (S1100).
- the encoding apparatus may determine whether to perform inter prediction or intra prediction on the current block, and may determine a specific inter prediction mode or a specific intra prediction mode based on RD cost. According to the determined mode, the encoding apparatus may derive prediction samples for the current block, and derive the residual samples through subtraction of the original samples and the prediction samples for the current block.
- the encoding device derives transform coefficients of the current block based on the residual samples (S1110).
- the encoding apparatus may derive the transform coefficients based on the residual samples of the current block.
- the encoding apparatus may determine whether transformation is applied to the residual samples. When transformation is not applied to the residual samples, the encoding apparatus may derive the derived residual samples as the transform coefficients. In addition, when transformation is applied to the residual samples, the encoding apparatus may derive the transformation coefficients by performing transformation on the derived residual samples.
- the transform coefficients may be included in a sub-block of the current block.
- the sub-block may be called CG (coefficient croup).
- the size of the sub-block of the current block may be 4x4 size or 2x2 size. That is, the sub-block of the current block may include up to 16 non-zero transform coefficients or up to 4 non-zero transform coefficients.
- the current block may include a low frequency transform coefficient region and a high frequency transform coefficient region.
- the high-frequency conversion coefficient region may represent an area composed of 0 conversion coefficients
- the low-frequency conversion coefficient area may represent an area including at least one effective conversion coefficient (ie, a non-zero conversion coefficient).
- the encoding apparatus may perform transform coefficient scanning in the low frequency transform region to derive transform coefficients related to the low frequency transform region, and do not perform transform coefficient scanning in the high frequency transform region, and perform the high frequency transform coefficient region. It is possible to derive transform coefficients related to transform coefficients having a transform coefficient level of 0. That is, transform coefficient scanning may be performed on transform coefficients related to the low frequency transform coefficient region among transform coefficients for the current block. Also, for example, the transform coefficient scanning may not be performed on transform coefficients related to the high frequency transform coefficient region.
- the encoding apparatus may derive the low-frequency transform coefficient region based on the size of the current block.
- the high frequency transform coefficient region may be derived from the current block as an area excluding the low frequency transform coefficient region.
- the width of the low-frequency transform coefficient region or the height of the low-frequency transform coefficient region may be 32 or less.
- the width of the low frequency transform coefficient region may be determined to be the same as the width of the current block. That is, based on the determination that the width of the current block is less than 32, the width of the low-frequency transform coefficient region may be determined to be the same as the width of the current block.
- the height of the current block is less than 32, the height of the low-frequency transform coefficient region may be determined to be the same as the height of the current block.
- the height of the low-frequency transform coefficient region may be determined to be the same as the height of the current block. Further, for example, when the width of the current block is 32 or more, the width of the low-frequency transform coefficient region may be determined as 32. That is, based on the determination that the width of the current block is 32 or more, the width of the low-frequency transform coefficient region may be determined as 32. In addition, when the height of the current block is 32 or more, the height of the low-frequency transform coefficient region may be determined as 32. That is, based on the determination that the height of the current block is 32 or more, the height of the low-frequency transform coefficient region may be determined as 32.
- the width of the low-frequency transform coefficient region and the height of the low-frequency transform coefficient region may be determined based on Equation 16 described below.
- the encoding device may generate and encode a transform skip flag indicating whether to apply transforms of transform coefficients of the current block.
- the bitstream may include a transform skip flag for the current block.
- the transform skip flag may indicate whether transform coefficients of the current block are applied. That is, the transform skip flag may indicate whether transform is applied to the transform coefficients.
- the syntax element representing the transform skip flag may be transform_skip_flag described above.
- the encoding apparatus encodes residual information for the current block including syntax elements for the transform coefficients (S1120).
- the encoding device may generate and encode residual information for the current block including syntax elements for the transform coefficients.
- the residual information may include syntax elements for the current block.
- the syntax elements may include coded syntax elements based on a context model and bypass-coded syntax elements (ie, syntax code elements based on a uniform probability distribution).
- the residual information is to include the syntax elements such as transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level and / or mts_idx (syntax elements) Can.
- transform_skip_flag the 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, code
- the residual information may include a conversion skip flag for the current block.
- the transform skip flag may indicate whether transform coefficients of the current block are applied. That is, the transform skip flag may indicate whether transform is applied to the transform coefficients.
- the syntax element representing the transform skip flag may be transform_skip_flag described above.
- the residual information may include last valid coefficient position information indicating the position of the last non-zero transform coefficient in the transform coefficient array of the current block. That is, for example, the syntax elements are the last significant coefficient prefix information and/or the last significant coefficient prefix for the position of the last non-zero transform coefficient among the transform coefficients for the current block.
- Information last significant coefficient suffix information.
- the last effective coefficient prefix information may include x-axis prefix information and y-axis prefix information.
- the syntax element representing the x-axis prefix information may be the last_sig_coeff_x_prefix described above, and the syntax element representing the y-axis prefix information may be the last_sig_coeff_y_prefix described above.
- the last effective coefficient suffix information may include x-axis suffix information and y-axis suffix information.
- the syntax element representing the x-axis suffix information may be the last_sig_coeff_x_suffix described above, and the syntax element representing the y-axis suffix information may be the last_sig_coeff_y_suffix described above.
- the non-zero transform coefficient may be called a significant coefficient.
- the residual information may include a coded subblock flag indicating whether the transform coefficient level of transform coefficients for a subblock in the current block is all 0, and the sub The block may be associated with a low frequency transform coefficient region. That is, the sub-block may be included in the low frequency transform coefficient region.
- the coded sub-block flag may be coded_sub_block_flag described above.
- the residual information may include syntax-coded syntax elements based on a transform coefficient in a sub-block of the current block.
- the syntax elements have an effective coefficient flag indicating whether the transform coefficient is a non-zero transform coefficient, a parity level flag for parity of a transform coefficient level for the transform coefficient, and the transform coefficient level. It may include a first transform coefficient level flag for whether it is greater than a first threshold and a second transform coefficient level flag for whether the transform coefficient level of the transform coefficient is greater than a second threshold.
- the effective coefficient flag may be sig_coeff_flag
- the parity level flag may be par_level_flag
- the first transform coefficient level flag may be abs_level_gt1_flag
- the second transform coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag.
- the syntax elements have a valid coefficient flag indicating whether the transform coefficient is a non-zero transform coefficient, a sign flag indicating the sign of the transform coefficient, and the transform coefficient level.
- a first transform coefficient level flag for whether or not greater than a first threshold and a parity level flag for parity of the transform coefficient level for the transform coefficient may be included.
- the effective coefficient flag may be sig_coeff_flag
- the sine flag may be coeff_sign_flag
- the first transform coefficient level flag may be abs_level_gt1_flag
- the parity level flag may be par_level_flag.
- the residual information may include a syntax element coded based on a bypass for a transform coefficient in the sub-block of the current block.
- the syntax element may include information related to a coefficient value for the value of the transform coefficient.
- the coefficient value related information may be abs_remainder and/or dec_abs_level.
- the encoding apparatus may derive a context model for the syntax-based coded syntax element, and encode the syntax element based on the derived context model.
- the syntax elements may include last significant coefficient prefix information for the position of the last significant transform coefficient among the transform coefficients for the current block.
- the context model for the effective coefficient prefix information may be derived based on the height and width of the low-frequency transform coefficient region.
- the effective coefficient prefix information may include the x-axis prefix information and the y-axis prefix information, and a context model for the x-axis prefix information may be derived based on the width of the low-frequency transform coefficient region, ,
- the context model for the y-axis prefix information may be derived based on the height of the low-frequency transform coefficient region.
- the position of the last effective transform coefficient may be determined based on a prefix codeword representing the last valid coefficient prefix information and the last valid coefficient suffix information, and a maximum length of the prefix codeword (maximum lenghth) ) May be determined based on the size of the low frequency transform coefficient region.
- the last valid coefficient prefix information may include x-axis prefix information and y-axis prefix information, and the prefix codeword may be a codeword for the x-axis prefix information or a codeword for the y-axis prefix information.
- the maximum length of the codeword representing the x-axis prefix information may be determined to be 9. Further, for example, based on the determination that the height of the low-frequency transform coefficient region is 32, the maximum length of the codeword representing the y-axis prefix information may be determined to be 9. Further, for example, based on the determination that the width of the current block is greater than 32 and the width of the low frequency transform coefficient region is 32, the maximum of the codeword for the x-axis prefix information of the low frequency transform coefficient region The maximum binarized value may be determined as 111111111.
- the maximum of the codeword for the y-axis prefix information of the low-frequency transform coefficient region The binary value can be determined as 111111111. Further, for example, the maximum length of the codeword for the x-axis prefix information may be determined based on Equation 14 described above. Further, for example, the width of the low-frequency transform coefficient region is 32, and the maximum length of the codeword for the x-axis prefix information may be determined based on Equation 15 described above.
- the prefix codeword may be a truncated rice code based on a truncated rice binarization process.
- the encoding device may encode the syntax element coded based on the bypass based on the bypass. That is, the encoding apparatus may encode the syntax elements coded based on the bypass based on a uniform probability distribution.
- the syntax element coded based on the bypass may include last significant coefficient suffix information about the position of the last significant transform coefficient among the transform coefficients for the current block.
- the effective coefficient suffix information may include the x-axis suffix information and the y-axis suffix information.
- the encoding device may generate and output a bitstream including the residual information.
- the bitstream may include prediction information for the current block.
- the prediction information may include information on an inter prediction mode or an intra prediction mode performed on the current block.
- the encoding device may generate and encode prediction information for the current block.
- the bitstream may be transmitted to a decoding device through a network or (digital) storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD.
- FIG. 12 schematically shows an encoding apparatus that performs a video encoding method according to the present document.
- the method disclosed in FIG. 11 may be performed by the encoding device disclosed in FIG. 12.
- the subtraction unit of the encoding device of FIG. 12 may perform S1100 of FIG. 11
- the conversion unit and the quantization unit of the encoding device of FIG. 12 may perform S1110 of FIG. 11
- the entropy encoding unit of the encoding device may perform S1120 of FIG. 11.
- a process of deriving a prediction sample may be performed by the prediction unit of the encoding apparatus, and reconstruction samples for the current block based on residual samples and prediction samples for the current block.
- the process of deriving may be performed by the addition unit of the encoding device, and the process of encoding the prediction information for the current block may be performed by the entropy encoding unit of the encoding device.
- FIG. 13 schematically shows an image decoding method by a decoding apparatus according to the present document.
- the method disclosed in FIG. 13 may be performed by the decoding apparatus disclosed in FIG. 3.
- S1300 to S1310 of FIG. 13 may be performed by an entropy decoding unit of the decoding device
- S1320 to S1330 may be performed by an inverse quantization unit and an inverse transform unit of the decoding device
- S1340 is It can be performed by the adding unit of the decoding device.
- a process of deriving a prediction sample may be performed by the prediction unit of the decoding apparatus.
- the decoding apparatus receives a bitstream including residual information of the current block (S1300).
- the decoding apparatus may receive image information including residual information on the current block through a bitstream.
- the current block may be a coding block (CB) or a transform block (TB).
- the current block may include a high frequency transform coefficient region and a low frequency transform coefficient region.
- the high-frequency conversion coefficient region may represent an area composed of 0 conversion coefficients
- the low-frequency conversion coefficient area may represent an area including at least one effective conversion coefficient (ie, a non-zero conversion coefficient). have.
- the low frequency transform coefficient region may be determined based on the size of the current block as described above, and the high frequency transform coefficient region may be determined as an area excluding the low frequency transform coefficient region in the current block.
- the transform coefficient 0 may indicate a transform coefficient having a transform coefficient level of 0. That is, the transform coefficient 0 may represent a transform coefficient having a value of 0.
- the width of the low-frequency transform coefficient region or the height of the low-frequency transform coefficient region may be 32 or less.
- the width of the low-frequency transform coefficient region may be determined to be the same as the width of the current block. That is, based on the determination that the width of the current block is less than 32, the width of the low-frequency transform coefficient region may be determined to be the same as the width of the current block.
- the height of the low-frequency transform coefficient region may be determined to be the same as the height of the current block.
- the height of the low-frequency transform coefficient region may be determined to be the same as the height of the current block. Further, for example, when the width of the current block is 32 or more, the width of the low-frequency transform coefficient region may be determined as 32. That is, based on the determination that the width of the current block is 32 or more, the width of the low-frequency transform coefficient region may be determined as 32. Further, when the height of the current block is 32 or more, the height of the low-frequency transform coefficient region may be determined as 32. That is, based on the determination that the height of the current block is 32 or more, the height of the low-frequency transform coefficient region may be determined as 32.
- the width of the low frequency transform coefficient region and the height of the low frequency transform coefficient region may be determined based on Equation 16 below.
- the ZoTbWidth represents the width of the low frequency transform coefficient region
- the ZoTbHeight represents the height of the low frequency transform coefficient region
- the TbWidth represents the width of the current block
- the TbHeight is the current block.
- the residual information may include syntax elements for the current block.
- the syntax elements may include coded syntax elements based on a context model and bypass-coded syntax elements (ie, syntax code elements based on a uniform probability distribution).
- the residual information is to include the syntax elements such as transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level and / or mts_idx (syntax elements) Can.
- transform_skip_flag the 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, code
- the residual information may include a conversion skip flag for the current block.
- the transform skip flag may indicate whether transform coefficients of the current block are applied. That is, the transform skip flag may indicate whether transform is applied to the transform coefficients.
- the syntax element representing the transform skip flag may be transform_skip_flag described above.
- the residual information may include last valid coefficient position information indicating the position of the last non-zero transform coefficient in the transform coefficient array of the current block. That is, for example, the syntax elements are the last significant coefficient prefix information and/or the last significant coefficient prefix for the position of the last non-zero transform coefficient among the transform coefficients for the current block.
- Information last significant coefficient suffix information.
- the last effective coefficient prefix information may include x-axis prefix information and y-axis prefix information.
- the syntax element representing the x-axis prefix information may be the last_sig_coeff_x_prefix described above, and the syntax element representing the y-axis prefix information may be the last_sig_coeff_y_prefix described above.
- the last effective coefficient suffix information may include x-axis suffix information and y-axis suffix information.
- the syntax element representing the x-axis suffix information may be the last_sig_coeff_x_suffix described above, and the syntax element representing the y-axis suffix information may be the last_sig_coeff_y_suffix described above.
- the non-zero transform coefficient may be called a significant coefficient.
- the residual information may include a coded subblock flag indicating whether the transform coefficient level of transform coefficients for a subblock in the current block is all 0, and the sub The block may be associated with a low frequency transform coefficient region. That is, the sub-block may be included in the low frequency transform coefficient region.
- the coded sub-block flag may be coded_sub_block_flag described above.
- the residual information may include syntax-coded syntax elements based on a transform coefficient in a sub-block of the current block.
- the syntax elements have an effective coefficient flag indicating whether the transform coefficient is a non-zero transform coefficient, a parity level flag for parity of a transform coefficient level for the transform coefficient, and the transform coefficient level. It may include a first transform coefficient level flag for whether it is greater than a first threshold and a second transform coefficient level flag for whether the transform coefficient level of the transform coefficient is greater than a second threshold.
- the effective coefficient flag may be sig_coeff_flag
- the parity level flag may be par_level_flag
- the first transform coefficient level flag may be abs_level_gt1_flag
- the second transform coefficient level flag may be abs_level_gt3_flag or abs_level_gtx_flag.
- the syntax elements have a valid coefficient flag indicating whether the transform coefficient is a non-zero transform coefficient, a sign flag indicating the sign of the transform coefficient, and the transform coefficient level.
- a first transform coefficient level flag for whether or not greater than a first threshold and a parity level flag for parity of the transform coefficient level for the transform coefficient may be included.
- the effective coefficient flag may be sig_coeff_flag
- the sine flag may be coeff_sign_flag
- the first transform coefficient level flag may be abs_level_gt1_flag
- the parity level flag may be par_level_flag.
- the residual information may include a syntax element coded based on a bypass for a transform coefficient in the sub-block of the current block.
- the syntax element may include information related to a coefficient value for the value of the transform coefficient.
- the coefficient value related information may be abs_remainder and/or dec_abs_level.
- the bitstream may include prediction information for the current block.
- the prediction information may include information on an inter prediction mode or an intra prediction mode performed on the current block.
- the decoding apparatus may perform inter prediction or intra prediction on the current block based on the prediction information received through the bitstream and derive prediction samples of the current block.
- the decoding apparatus decodes syntax elements for the current block included in the residual information (S1310).
- the decoding apparatus may derive a context model for the syntax-based coded syntax element, and may decode the syntax element based on the derived context model.
- the syntax elements may include last significant coefficient prefix information for the position of the last significant transform coefficient among the transform coefficients for the current block.
- the context model for the effective coefficient prefix information may be derived based on the height and width of the low-frequency transform coefficient region.
- the effective coefficient prefix information may include the x-axis prefix information and the y-axis prefix information, and a context model for the x-axis prefix information may be derived based on the width of the low-frequency transform coefficient region, ,
- the context model for the y-axis prefix information may be derived based on the height of the low-frequency transform coefficient region.
- the position of the last effective transform coefficient may be determined based on a prefix codeword representing the last valid coefficient prefix information and the last valid coefficient suffix information, and a maximum length of the prefix codeword (maximum lenghth) ) May be determined based on the size of the low frequency transform coefficient region.
- the last valid coefficient prefix information may include x-axis prefix information and y-axis prefix information, and the prefix codeword may be a codeword for the x-axis prefix information or a codeword for the y-axis prefix information.
- the maximum length of the codeword representing the x-axis prefix information may be determined to be 9. Further, for example, based on the determination that the height of the low-frequency transform coefficient region is 32, the maximum length of the codeword representing the y-axis prefix information may be determined to be 9. Further, for example, based on the determination that the width of the current block is greater than 32 and the width of the low frequency transform coefficient region is 32, the maximum of the codeword for the x-axis prefix information of the low frequency transform coefficient region The maximum binarized value may be determined as 111111111.
- the maximum of the codeword for the y-axis prefix information of the low-frequency transform coefficient region The binary value can be determined as 111111111. Further, for example, the maximum length of the codeword for the x-axis prefix information may be determined based on Equation 14 described above. Further, for example, the width of the low-frequency transform coefficient region is 32, and the maximum length of the codeword for the x-axis prefix information may be determined based on Equation 15 described above.
- the prefix codeword may be a truncated rice code based on a truncated rice binarization process.
- the decoding apparatus may decode the syntax-based elements coded on the basis of the bypass based on the bypass. That is, the decoding apparatus may decode the syntax component coded based on the bypass based on a uniform probability distribution.
- the syntax element coded based on the bypass may include last significant coefficient suffix information about the position of the last significant transform coefficient among the transform coefficients for the current block.
- the effective coefficient suffix information may include the x-axis suffix information and the y-axis suffix information.
- the decoding apparatus derives transform coefficients for the current block based on the decoded syntax elements (S1320).
- the decoding apparatus may derive a transform coefficient level (ie, value or magnitude) of the transform coefficient based on values of decoded syntax elements for the transform coefficient level of the transform coefficient.
- the syntax elements for the transform coefficient level may include the valid coefficient flag, the parity level flag, the first transform coefficient level flag, the second transform coefficient level flag and/or the coefficient value related information.
- the residual information may include a sign flag indicating a sign of the transform coefficient.
- the decoding apparatus may derive the sign of the transform coefficient based on the sine flag.
- the syntax element representing the sign flag may be coeff_sign_flag.
- the decoding apparatus may derive the transform coefficient based on the transform coefficient level and the sign of the transform coefficient.
- the decoding apparatus may derive the transform coefficients by performing transform coefficient scanning. That is, the transform coefficient can be derived according to the scanning order.
- transform coefficient scanning may be performed on transform coefficients related to the low frequency transform coefficient region among transform coefficients for the current block.
- the transform coefficient scanning may not be performed on transform coefficients related to the high frequency transform coefficient region. That is, the transform coefficient scanning is not performed on transform coefficients related to the high-frequency transform coefficient region, and it can be determined that the transform coefficient level is 0. Determining that the transform coefficient level of the transform coefficients related to the high-frequency transform coefficient region is 0 may indicate that zeroing is applied to the transform coefficients. That is, zeroing may be applied to transform coefficients related to the high frequency transform coefficient region.
- the number of transform coefficients to which the zeroing is applied may be determined based on the width of the low frequency transform coefficient region or the height of the low frequency transform coefficient region.
- the decoding apparatus derives residual samples for the current block based on the transform coefficients (S1330). For example, the decoding apparatus may derive residual samples of the current block based on the transform coefficients.
- the decoding apparatus may derive the transform coefficients to the residual samples of the current block. For example, when it is determined that no transform is applied to the current block based on the transform skip flag, the decoding apparatus may dequantize the transform coefficients to derive the residual samples of the current block. Or, for example, when it is derived that a transform is applied to the current block based on the transform skip flag, the decoding apparatus may inverse transform the transform coefficients to derive the residual samples of the current block.
- the decoding apparatus when it is determined that a transform is applied to the current block based on the transform skip flag, the decoding apparatus inverse quantizes the transform coefficients and inverse transforms the inverse quantized transform coefficients to the Residual samples can be derived.
- the decoding apparatus generates a reconstructed picture based on the residual samples (S1340).
- the decoding apparatus may derive prediction samples by performing an inter prediction mode or an intra prediction mode for the current block based on prediction information received through a bitstream, and the prediction samples and the residual samples The reconstructed picture may be generated through the addition of.
- the prediction information may include information indicating an intra prediction mode of the current block.
- the decoding apparatus may derive the intra prediction mode of the current block based on information indicating the intra prediction mode of the current block, and predict the current block based on reference samples of the current block and the intra prediction mode Samples can be derived.
- the reference samples may include upper reference samples and left reference samples of the current block.
- the left reference samples are p[-1][0 ] To p[-1][2N-1]
- the upper reference samples may be p[0][-1] to p[2N-1][-1].
- an in-loop filtering procedure such as deblocking filtering, SAO and/or ALF procedure can be applied to the reconstructed picture to improve subjective/objective image quality as needed.
- FIG. 14 schematically shows a decoding apparatus for performing an image decoding method according to the present document.
- the method disclosed in FIG. 13 may be performed by the decoding apparatus disclosed in FIG. 14.
- the entropy decoding unit of the decoding apparatus of FIG. 14 may perform S1300 to S1310 of FIG. 13, and the inverse quantization unit and inverse transformation unit of the decoding apparatus of FIG. 14 may perform S1320 to S1330 of FIG. 13.
- the adder of the decoding apparatus of FIG. 14 may perform S1340 of FIG. 13.
- a process of obtaining prediction information of a current block through a bitstream may be performed by an entropy decoding unit of the decoding apparatus of FIG. 14, and prediction for the current block based on the prediction information
- the process of deriving the sample may be performed by the prediction unit of the decoding apparatus of FIG. 14.
- the efficiency of residual coding can be improved.
- image coding efficiency may be improved by coding position information of the last effective transform coefficient in a current block (or a current transform block) based on high-frequency zeroing.
- more efficient encoding is performed by determining a context model for the location information of the last effective transform coefficient based on the size of a high-frequency zeroing region (more precisely, a region to which high-frequency zeroing is not applied), and context coding
- a context model for the location information of the last effective transform coefficient based on the size of a high-frequency zeroing region (more precisely, a region to which high-frequency zeroing is not applied)
- context coding By reducing the number of context-coded bins, the throughput of CABAC can be improved.
- the embodiments described in this document may be implemented and implemented on a processor, microprocessor, controller, or chip.
- the functional units shown in each figure may be implemented and implemented on a computer, processor, microprocessor, controller, or chip.
- information for implementation (ex. information on instructions) or an algorithm may be stored in a digital storage medium.
- the decoding device and the encoding device to which the embodiments of the present document are applied include a multimedia broadcast transmission/reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video communication device, and a real-time communication device such as video communication.
- the OTT video (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, and a digital video recorder (DVR).
- DVR digital video recorder
- the processing method to which the embodiments of the present document is 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 can also be stored in a computer-readable recording medium.
- the computer-readable recording medium includes all kinds of storage devices and distributed storage devices in which computer-readable data is stored.
- the computer-readable recording medium includes, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk and optical. It may include a data storage device.
- the computer-readable recording medium includes media implemented in the form of a carrier wave (for example, transmission via the Internet).
- the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
- embodiments of the present document may be implemented as a computer program product using program codes, and the program codes may be executed on a computer by the embodiments of the present document.
- the program code can be stored on a computer readable carrier.
- 15 exemplarily shows a structure diagram of a content streaming system to which embodiments of the present document are applied.
- the content streaming system to which the embodiments of the present document are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server serves to compress a content input from multimedia input devices such as a smartphone, a camera, and a camcorder into digital data to generate a bitstream and transmit it to the streaming server.
- multimedia input devices such as a smart phone, a camera, and a camcorder directly generate a bitstream
- the encoding server may be omitted.
- the bitstream may be generated by an encoding method or a bitstream generation method to which embodiments of the present document are applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
- the streaming server transmits multimedia data to a user device based on a user request through a web server, and the web server serves as an intermediary to inform the user of the service.
- the web server delivers it to the streaming server, and the streaming server transmits multimedia data to the user.
- the content streaming system may include a separate control server, in which case the control server serves to control commands/responses between devices in the content streaming system.
- the streaming server may receive content from a media storage and/or encoding server. For example, when content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
- Examples of the user device include a mobile phone, a smart phone, a laptop computer, a terminal for digital broadcasting, a personal digital assistants (PDA), a portable multimedia player (PMP), navigation, a slate PC, Tablet PCs, ultrabooks, wearable devices, e.g., smartwatches, smart glass, head mounted display (HMD), digital TV, desktop Computers, digital signage, and the like.
- PDA personal digital assistants
- PMP portable multimedia player
- HMD head mounted display
- Each server in the content streaming system can be operated as a distributed server, and in this case, data received from each server can be distributed.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 문서에 따른 디코딩 장치에 의하여 수행되는 영상 디코딩 방법은 현재 블록의 레지듀얼 정보를 포함하는 비트스트림을 수신하는 단계, 상기 레지듀얼 정보에 포함된 상기 현재 블록에 대한 신텍스 엘리먼트들을 디코딩하는 단계, 상기 디코딩된 신텍스 엘리먼트들을 기반으로 상기 현재 블록에 대한 변환 계수들을 도출하는 단계, 상기 변환 계수들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 도출하는 단계 및 상기 레지듀얼 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함하는 것을 특징으로 한다.
Description
본 문서는 영상 코딩 기술에 관한 것으로서 보다 상세하게는 영상 코딩 시스템에서 고주파 제로잉(high frequency zeroing)을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 문서의 기술적 과제는 영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 문서의 다른 기술적 과제는 레지듀얼 코딩의 효율을 높이는 방법 및 장치를 제공함에 있다.
본 문서의 또 다른 기술적 과제는 고주파 제로잉을 기반으로 변환 계수를 코딩하여 레지듀얼 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 문서의 또 다른 기술적 과제는 고주파 제로잉을 기반으로 현재 블록(또는 현재 변환 블록) 내 라스트 유효 계수(last significant coefficient)의 위치 정보를 코딩하는 방법 및 장치를 제공함에 있다.
본 문서의 또 다른 기술적 과제는 고주파 제로잉을 기반으로 현재 블록(또는 현재 변환 블록)에 대한 변환 계수들을 코딩할 때, 상기 현재 블록에서 상기 고주파 제로잉이 적용되지 않는 영역의 사이즈를 기반으로 라스트 유효 변환 계수를 나타내는 정보의 컨텍스트 모델을 도출하는 방법 및 장치를 제공함에 있다.
본 문서의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 방법은 현재 블록의 레지듀얼 정보를 포함하는 비트스트림을 수신하는 단계, 상기 레지듀얼 정보에 포함된 상기 현재 블록에 대한 신텍스 엘리먼트들을 디코딩하는 단계, 상기 디코딩된 신텍스 엘리먼트들을 기반으로 상기 현재 블록에 대한 변환 계수들을 도출하는 단계, 상기 변환 계수들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 도출하는 단계 및 상기 레지듀얼 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함하고, 상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 한다.
본 문서의 다른 일 실시예에 따르면, 영상 디코딩을 수행하는 디코딩 장치가 제공된다. 상기 디코딩 장치는 현재 블록의 레지듀얼 정보를 포함하는 비트스트림을 수신하고, 상기 레지듀얼 정보에 포함된 상기 현재 블록에 대한 신텍스 엘리먼트들을 디코딩하고, 상기 디코딩된 신텍스 엘리먼트들을 기반으로 상기 현재 블록에 대한 변환 계수들을 도출하는 엔트로피 디코딩부, 상기 변환 계수들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 도출하는 역변환부 및 상기 레지듀얼 샘플들을 기반으로 복원 픽처를 생성하는 가산부를 포함하고, 상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 한다.
본 문서의 또 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 비디오 인코딩 방법을 제공한다. 상기 방법은 현재 블록에 대한 레지듀얼 샘플들을 도출하는 단계, 상기 레지듀얼 샘플들을 기반으로 상기 현재 블록의 변환 계수들을 도출하는 단계, 및 상기 변환 계수들에 대한 신텍스 엘리먼트들을 포함하는 상기 현재 블록에 대한 레지듀얼 정보를 인코딩하는 단계를 포함하고, 상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 한다.
본 문서의 또 다른 일 실시예에 따르면, 비디오 인코딩 장치를 제공한다. 상기 인코딩 장치는 현재 블록에 대한 레지듀얼 샘플들을 도출하는 감산부, 상기 레지듀얼 샘플들을 기반으로 상기 현재 블록의 변환 계수들을 도출하는 변환부, 및 상기 변환 계수들에 대한 신텍스 엘리먼트들을 포함하는 상기 현재 블록에 대한 레지듀얼 정보를 인코딩하는 엔트로피 인코딩부를 포함하고, 상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 한다.
본 문서에 따르면 레지듀얼 코딩의 효율을 높일 수 있다.
본 문서에 따르면 고주파 제로잉을 기반으로 변환 계수를 코딩하여 레지듀얼 코딩 효율을 높일 수 있다.
본 문서에 따르면 고주파 제로잉을 기반으로 현재 블록(또는 현재 변환 블록) 내 라스트 유효 변환 계수의 위치 정보를 코딩하여 영상 코딩 효율을 높일 수 있다.
본 문서에 따르면 고주파 제로잉 영역(보다 정확하게는, 고주파 제로잉이 적용되지 않는 영역)의 사이즈를 기반으로 라스트 유효 변환 계수의 위치 정보에 대한 컨텍스트 모델을 결정하여 보다 효율적인 부호화를 수행하고, 문맥 부호화 빈(context-coded bin)의 개수를 절감함으로써 CABAC의 처리량(throughput)을 향상시킬 수 있다.
도 1은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 4는 신텍스 엘리먼트(syntax element)를 인코딩하기 위한 CABAC(context-adaptive binary arithmetic coding)을 예시적으로 나타낸다.
도 5는 4x4 블록 내 변환 계수들의 예시를 도시하는 도면이다.
도 6은 일 실시예에 따른 고주파 제로잉을 설명하기 위한 도면이다.
도 7은 고주파 제로잉이 적용된 현재 블록에 대한 변환 계수들을 스캔하는 방법의 일 예시를 설명하기 위한 도면이다.
도 8은 고주파 제로잉이 적용된 현재 블록에 대한 변환 계수들을 스캔하는 방법의 다른 일 예시를 설명하기 위한 도면이다.
도 9a 및 도 9b는 일 실시예에 따른 엔트로피 인코딩부의 구성 및 동작을 설명하기 위한 도면이다.
도 10a 및 도 10b는 일 실시예에 따른 엔트로피 디코딩부의 구성 및 동작 방법을 설명하기 위한 도면이다.
도 11은 본 문서에 따른 인코딩 장치에 의한 영상 인코딩 방법을 개략적으로 나타낸다.
도 12는 본 문서에 따른 영상 인코딩 방법을 수행하는 인코딩 장치를 개략적으로 나타낸다.
도 13은 본 문서에 따른 디코딩 장치에 의한 영상 디코딩 방법을 개략적으로 나타낸다.
도 14는 본 문서에 따른 영상 디코딩 방법을 수행하는 디코딩 장치를 개략적으로 나타낸다.
도 15는 본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다.
본 문서는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 문서의 실시예들을 특정 실시예에 한정하려고 하는 것이 아니다. 본 명세서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 문서의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 문서에서 설명되는 도면 상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 문서의 본질에서 벗어나지 않는 한 본 문서의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 문서의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면 상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략될 수 있다.
도 1은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 1을 참조하면, 비디오/영상 코딩 시스템은 제1 장치(소스 디바이스) 및 제2 장치(수신 디바이스)를 포함할 수 있다. 소스 디바이스는 인코딩된 비디오(video)/영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다.
상기 소스 디바이스는 비디오 소스, 인코딩 장치, 전송부를 포함할 수 있다. 상기 수신 디바이스는 수신부, 디코딩 장치 및 렌더러를 포함할 수 있다. 상기 인코딩 장치는 비디오/영상 인코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기는 인코딩 장치에 포함될 수 있다. 수신기는 디코딩 장치에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부는 상기 비트스트림을 수신/추출하여 디코딩 장치로 전달할 수 있다.
디코딩 장치는 인코딩 장치의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
이 문서는 비디오/영상 코딩에 관한 것이다. 예를 들어 이 문서에서 개시된 방법/실시예는 VVC (versatile video coding) 표준, EVC (essential video coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/영상 코딩 표준(ex. H.267 or H.268 등)에 개시되는 방법에 적용될 수 있다.
이 문서에서는 비디오/영상 코딩에 관한 다양한 실시예들을 제시하며, 다른 언급이 없는 한 상기 실시예들은 서로 조합되어 수행될 수도 있다.
이 문서에서 비디오(video)는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 슬라이스/타일은 하나 이상의 CTU(coding tree unit)을 포함할 수 있다. 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 하나의 픽처는 하나 이상의 타일 그룹으로 구성될 수 있다. 하나의 타일 그룹은 하나 이상의 타일들을 포함할 수 있다. 브릭은 픽처 내 타일 이내의 CTU 행들의 사각 영역을 나타낼 수 있다(a brick may represent a rectangular region of CTU rows within a tile in a picture). 타일은 다수의 브릭들로 파티셔닝될 수 있고, 각 브릭은 상기 타일 내 하나 이상의 CTU 행들로 구성될 수 있다(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 be also referred to as a brick). 브릭 스캔은 픽처를 파티셔닝하는 CTU들의 특정한 순차적 오더링을 나타낼 수 있으며, 상기 CTU들은 브릭 내에서 CTU 래스터 스캔으로 정렬될 수 있고, 타일 내 브릭들은 상기 타일의 상기 브릭들의 래스터 스캔으로 연속적으로 정렬될 수 있고, 그리고 픽처 내 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 정렬될 수 있다(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). 타일은 특정 타일 열 및 특정 타일 열 이내의 CTU들의 사각 영역이다(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture). 상기 타일 열은 CTU들의 사각 영역이고, 상기 사각 영역은 상기 픽처의 높이와 동일한 높이를 갖고, 너비는 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시될 수 있다(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). 상기 타일 행은 CTU들의 사각 영역이고, 상기 사각 영역은 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시되는 너비를 갖고, 높이는 상기 픽처의 높이와 동일할 수 있다(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). 타일 스캔은 픽처를 파티셔닝하는 CTU들의 특정 순차적 오더링을 나타낼 수 있고, 상기 CTU들은 타일 내 CTU 래스터 스캔으로 연속적으로 정렬될 수 있고, 픽처 내 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 정렬될 수 있다(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). 슬라이스는 픽처의 정수개의 브릭들을 포함할 수 있고, 상기 정수개의 브릭들은 하나의 NAL 유닛에 포함될 수 있다(A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit). 슬라이스는 다수의 완전한 타일들로 구성될 수 있고, 또는 하나의 타일의 완전한 브릭들의 연속적인 시퀀스일 수도 있다(A slice may consists of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile). 이 문서에서 타일 그룹과 슬라이스는 혼용될 수 있다. 예를 들어 본 문서에서 tile group/tile group header는 slice/slice header로 불리 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 하나의 유닛은 하나의 루마 블록 및 두개의 크로마(ex. cb, cr) 블록을 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
이 문서에서 "/"와 ","는 "및/또는"으로 해석된다. 예를 들어, "A/B"는 "A 및/또는 B"로 해석되고, "A, B"는 "A 및/또는 B"로 해석된다. 추가적으로, "A/B/C"는 "A, B 및/또는 C 중 적어도 하나"를 의미한다. 또한, "A, B, C"도 "A, B 및/또는 C 중 적어도 하나"를 의미한다. (In this document, the term "/" and "," should be interpreted to indicate "and/or." For instance, the expression "A/B" may mean "A and/or B." Further, "A, B" may mean "A and/or B." Further, "A/B/C" may mean "at least one of A, B, and/or C." Also, "A/B/C" may mean "at least one of A, B, and/or C.")
추가적으로, 본 문서에서 "또는"는 "및/또는"으로 해석된다. 예를 들어, "A 또는 B"은, 1) "A" 만을 의미하고, 2) "B" 만을 의미하거나, 3) "A 및 B"를 의미할 수 있다. 달리 표현하면, 본 문서의 "또는"은 "추가적으로 또는 대체적으로(additionally or alternatively)"를 의미할 수 있다. (Further, in the document, the term "or" should be interpreted to indicate "and/or." For instance, the expression "A or B" may comprise 1) only A, 2) only B, and/or 3) both A and B. In other words, the term "or" in this document should be interpreted to indicate "additionally or alternatively.")
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다. 이하 비디오 인코딩 장치라 함은 영상 인코딩 장치를 포함할 수 있다.
도 2를 참조하면, 인코딩 장치(200)는 영상 분할부(image partitioner, 210), 예측부(predictor, 220), 레지듀얼 처리부(residual processor, 230), 엔트로피 인코딩부(entropy encoder, 240), 가산부(adder, 250), 필터링부(filter, 260) 및 메모리(memory, 270)를 포함하여 구성될 수 있다. 예측부(220)는 인터 예측부(221) 및 인트라 예측부(222)를 포함할 수 있다. 레지듀얼 처리부(230)는 변환부(transformer, 232), 양자화부(quantizer 233), 역양자화부(dequantizer 234), 역변환부(inverse transformer, 235)를 포함할 수 있다. 레지듀얼 처리부(230)은 감산부(subtractor, 231)를 더 포함할 수 있다. 가산부(250)는 복원부(reconstructor) 또는 복원 블록 생성부(recontructged block generator)로 불릴 수 있다. 상술한 영상 분할부(210), 예측부(220), 레지듀얼 처리부(230), 엔트로피 인코딩부(240), 가산부(250) 및 필터링부(260)는 실시예에 따라 하나 이상의 하드웨어 컴포넌트(예를 들어 인코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(270)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(270)을 내/외부 컴포넌트로 더 포함할 수도 있다.
영상 분할부(210)는 인코딩 장치(200)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBTTT (Quad-tree binary-tree ternary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조, 및/또는 터너리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 문서에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우 상기 예측 유닛 및 상기 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(200)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(232)로 전송된다. 이 경우 도시된 바와 같이 인코더(200) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(231)라고 불릴 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 각 예측 모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(222)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(222)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(221)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(221)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(221)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
예측부(220)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보를 기반으로 픽처 내 샘플 값을 시그널링할 수 있다.
상기 예측부 (인터 예측부(221) 및/또는 상기 인트라 예측부(222) 포함)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 변환부(232)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(233)는 변환 계수들을 양자화하여 엔트로피 인코딩부(240)로 전송되고, 엔트로피 인코딩부(240)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(233)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(240)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(240)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 본 문서에서 인코딩 장치에서 디코딩 장치로 전달/시그널링되는 정보 및/또는 신택스 요소들은 비디오/영상 정보에 포함될 수 있다. 상기 비디오/영상 정보는 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(240)로부터 출력된 신호는 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(200)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(240)에 포함될 수도 있다.
양자화부(233)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(234) 및 역변환부(235)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(250)는 복원된 레지듀얼 신호를 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(250)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편 픽처 인코딩 및/또는 복원 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(260)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(260)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(270), 구체적으로 메모리(270)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(260)은 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(270)에 전송된 수정된 복원 픽처는 인터 예측부(221)에서 참조 픽처로 사용될 수 있다. 인코딩 장치는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(200)와 디코딩 장치(300)에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(270) DPB는 수정된 복원 픽처를 인터 예측부(221)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(270)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(221)에 전달할 수 있다. 메모리(270)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(222)에 전달할 수 있다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3을 참조하면, 디코딩 장치(300)는 엔트로피 디코딩부(entropy decoder, 310), 레지듀얼 처리부(residual processor, 320), 예측부(predictor, 330), 가산부(adder, 340), 필터링부(filter, 350) 및 메모리(memory, 360)를 포함하여 구성될 수 있다. 예측부(330)는 인터 예측부(331) 및 인트라 예측부(332)를 포함할 수 있다. 레지듀얼 처리부(320)는 역양자화부(dequantizer, 321) 및 역변환부(inverse transformer, 322)를 포함할 수 있다. 상술한 엔트로피 디코딩부(310), 레지듀얼 처리부(320), 예측부(330), 가산부(340) 및 필터링부(350)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(360)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(360)을 내/외부 컴포넌트로 더 포함할 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(300)는 도 2의 인코딩 장치에서 비디오/영상 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(300)는 상기 비트스트림으로부터 획득한 블록 분할 관련 정보를 기반으로 유닛들/블록들을 도출할 수 있다. 디코딩 장치(300)는 인코딩 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 따라서 분할될 수 있다. 코딩 유닛으로부터 하나 이상의 변환 유닛이 도출될 수 있다. 그리고, 디코딩 장치(300)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(300)는 도 2의 인코딩 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(310)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(310)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 디코딩 장치는 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 더 기반으로 픽처를 디코딩할 수 있다. 본 문서에서 후술되는 시그널링/수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩되어 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(310)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(332) 및 인트라 예측부(331))로 제공되고, 엔트로피 디코딩부(310)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 레지듀얼 처리부(320)로 입력될 수 있다. 레지듀얼 처리부(320)는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플들, 레지듀얼 샘플 어레이)를 도출할 수 있다. 또한, 엔트로피 디코딩부(310)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(350)으로 제공될 수 있다. 한편, 인코딩 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(300)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(310)의 구성요소일 수도 있다. 한편, 본 문서에 따른 디코딩 장치는 비디오/영상/픽처 디코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및 샘플 디코더(비디오/영상/픽처 샘플 디코더)로 구분할 수도 있다. 상기 정보 디코더는 상기 엔트로피 디코딩부(310)를 포함할 수 있고, 상기 샘플 디코더는 상기 역양자화부(321), 역변환부(322), 가산부(340), 필터링부(350), 메모리(360), 인터 예측부(332) 및 인트라 예측부(331) 중 적어도 하나를 포함할 수 있다.
역양자화부(321)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(321)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 인코딩 장치에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(321)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)를 획득할 수 있다.
역변환부(322)에서는 변환 계수들을 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(310)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
예측부(320)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보가 상기 비디오/영상 정보에 포함되어 시그널링될 수 있다.
인트라 예측부(331)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(331)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(332)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(332)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(340)는 획득된 레지듀얼 신호를 예측부(인터 예측부(332) 및/또는 인트라 예측부(331) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(340)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 출력될 수도 있고 또는 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편, 픽처 디코딩 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(350)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(350)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(360), 구체적으로 메모리(360)의 DPB에 전송할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(360)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(332)에서 참조 픽쳐로 사용될 수 있다. 메모리(360)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(260)에 전달할 수 있다. 메모리(360)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(331)에 전달할 수 있다.
본 명세서에서, 인코딩 장치(200)의 필터링부(260), 인터 예측부(221) 및 인트라 예측부(222)에서 설명된 실시예들은 각각 디코딩 장치(300)의 필터링부(350), 인터 예측부(332) 및 인트라 예측부(331)에도 동일 또는 대응되도록 적용될 수 있다.
상술한 내용과 같이 인코딩 장치는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 또한, 디코딩 장치는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다.
예를 들어, 상술한 코딩 방법들은 후술하는 내용과 같이 수행될 수 있다.
도 4는 신텍스 엘리먼트(syntax element)를 인코딩하기 위한 CABAC(context-adaptive binary arithmetic coding)을 예시적으로 나타낸다. 예를 들어, CABAC의 부호화 과정은 인코딩 장치는 입력 신호가 이진값이 아닌 신텍스 엘리먼트인 경우에는 상기 입력 신호의 값을 이진화(binarization)하여 입력 신호를 이진값로 변환할 수 있다. 또한, 상기 입력 신호가 이미 이진값인 경우(즉, 상기 입력 신호의 값이 이진값인 경우)에는 이진화가 수행되지 않고 바이패스(bypass)될 수 있다. 여기서, 이진값을 구성하는 각각의 이진수 0 또는 1을 빈(bin)이라고 할 수 있다. 예를 들어, 이진화된 후의 이진 스트링이 110인 경우, 1, 1, 0 각각을 하나의 빈이라고 한다. 하나의 신텍스 엘리먼트에 대한 상기 빈(들)은 상기 신텍스 엘리먼트의 값을 나타낼 수 있다.
이후, 상기 신텍스 엘리먼트의 이진화된 빈들은 정규(regular) 부호화 엔진 또는 바이패스 부호화 엔진으로 입력될 수 있다. 인코딩 장치의 정규 부호화 엔진은 해당 빈에 대해 확률값을 반영하는 컨텍스트 모델(context model)을 할당할 수 있고, 할당된 컨텍스트 모델을 기반으로 해당 빈을 인코딩할 수 있다. 인코딩 장치의 상기 정규 부호화 엔진은 각 빈에 대한 인코딩을 수행한 뒤에 해당 빈에 대한 컨텍스트 모델을 갱신할 수 있다. 상술한 내용과 같이 인코딩되는 빈은 문맥 부호화 빈(context-coded bin)이라고 나타낼 수 있다.
한편, 상기 신텍스 엘리먼트의 이진화된 빈들이 상기 바이패스 부호화 엔진에 입력되는 경우에는 다음과 같이 코딩될 수 있다. 예를 들어, 인코딩 장치의 바이패스 부호화 엔진은 입력된 빈에 대해 확률을 추정하는 절차와 부호화 후에 상기 빈에 적용한 확률 모델을 갱신하는 절차를 생략한다. 바이패스 인코딩이 적용되는 경우, 인코딩 장치는 콘텍스트 모델을 할당하는 대신 균일한 확률 분포를 적용해 입력되는 빈을 인코딩할 수 있고, 이를 통하여 인코딩 속도를 향상시킬 수 있다. 상술한 내용과 같이 인코딩되는 빈은 바이패스 빈(bypass bin)이라고 나타낼 수 있다.
엔트로피 디코딩은 상술한 엔트로피 인코딩과 동일한 과정을 역순으로 수행하는 과정을 나타낼 수 있다.
예를 들어, 신텍스 엘리먼트가 컨텍스트 모델을 기반으로 디코딩되는 경우, 디코딩 장치는 비트스트림을 통하여 상기 신텍스 엘리먼트에 해당하는 빈을 수신할 수 있고, 상기 신텍스 엘리먼트와 디코딩 대상 블록 또는 주변 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 컨텍스트 모델(context model)을 결정할 수 있고, 결정된 컨텍스트 모델에 따라 상기 수신된 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 상기 신텍스 엘리먼트의 값을 도출할 수 있다. 이후, 상기 결정된 컨텍스트 모델로 다음으로 디코딩되는 빈의 컨텍스트 모델이 업데이트될 수 있다.
또한, 예를 들어, 신텍스 엘리먼트가 바이패스 디코딩되는 경우, 디코딩 장치는 비트스트림을 통하여 상기 신텍스 엘리먼트에 해당하는 빈을 수신할 수 있고, 균일한 확률 분포를 적용해 입력되는 빈을 디코딩할 수 있다. 이 경우, 디코딩 장치는 신텍스 엘리먼트의 컨텍스트 모델을 도출하는 절차와 디코딩 이후에 상기 빈에 적용한 컨텍스트 모델을 갱신하는 절차는 생략될 수 있다.
상술한 바와 같이 레지듀얼 샘플들은 변환, 양자화 과정을 거쳐서 양자화된 변환 계수들로 도출될 수 있다. 양자화된 변환 계수들은 변환 계수들이라고도 불릴 수 있다. 이 경우 블록 내 변환 계수들은 레지듀얼 정보의 형태로 시그널링될 수 있다. 상기 레지듀얼 정보는 레지듀얼 코딩 신텍스를 포함할 수 있다. 즉, 인코딩 장치는 레지듀얼 정보로 레지듀얼 코딩 신텍스를 구성하고 이를 인코딩하여 비트스트림 형태로 출력할 수 있고, 디코딩 장치는 비트스트림으로부터 레지듀얼 코딩 신텍스를 디코딩하여 레지듀얼 (양자화된) 변환 계수들을 도출할 수 있다. 상기 레지듀얼 코딩 신텍스는 후술하는 바와 같이 해당 블록에 대하여 변환이 적용되었는지, 블록 내 마지막 유효 변환 계수의 위치가 어디인지, 서브블록 내 유효 변환 계수가 존재하는지, 유효 변환 계수의 크기/부호가 어떠한지 등을 나타내는 신텍스 엘리먼트들(syntax elements)을 포함할 수 있다.
예를 들어, (양자화된) 변환 계수(즉, 레지듀얼 정보)는 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, rem_abs_gt1_flag, rem_abs_gt2_flag, abs_remainder, coeff_sign_flag, mts_idx 등의 신텍스 엘리먼트들(syntax elements)을 기반으로 인코딩 및/또는 디코딩될 수 있다. 레지듀얼 데이터 인코딩/디코딩과 관련된 신텍스 엘리먼트들은 다음의 표와 같이 나타낼 수 있다.
transform_skip_flag는 연관된 블록(associated block)에 변환이 생략되는지 여부를 나타낸다. 상기 transform_skip_flag는 변환 스킵 플래그의 신텍스 엘리먼트일 수 있다. 상기 연관된 블록은 CB(coding block) 또는 TB(Transform block)일 수 있다. 변환(및 양자화) 및 레지듀얼 코딩 절차에 관하여, CB와 TB는 혼용될 수 있다. 예를 들어, CB에 대하여 레지듀얼 샘플들이 도출되고, 상기 레지듀얼 샘플들에 대한 변환 및 양자화를 통하여 (양자화된) 변환 계수들이 도출될 수 있음은 상술한 바와 같으며, 레지듀얼 코딩 절차를 통하여 상기 (양자화된) 변환 계수들의 위치, 크기, 부호 등을 효율적으로 나타내는 정보(예를 들어, 신텍스 엘리먼트들)이 생성되고 시그널링될 수 있다. 양자화된 변환 계수들은 간단히 변환 계수들이라고 불릴 수 있다. 일반적으로 CB가 최대 TB보다 크지 않은 경우, CB의 사이즈는 TB의 사이즈와 같을 수 있으며, 이 경우 변환(및 양자화) 및 레지듀얼 코딩되는 대상 블록은 CB 또는 TB라고 불릴 수 있다. 한편, CB가 최대 TB보다 큰 경우에는 변환(및 양자화) 및 레지듀얼 코딩되는 대상 블록은 TB라고 불릴 수 있다. 이하 레지듀얼 코딩에 관련된 신텍스 요소들이 변환 블록(TB) 단위로 시그널링되는 것으로 설명하나, 이는 예시로서 상기 TB는 코딩 블록(CB)과 혼용될 수 있음은 상술한 바와 같다.
일 실시예에서, 인코딩 장치는 신택스 엘리먼트 last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix 및 last_sig_coeff_y_suffix를 기반으로 변환 블록 내의 마지막 0이 아닌 변환 계수의 (x, y) 위치 정보를 인코딩할 수 있다. 보다 구체적으로, 상기 last_sig_coeff_x_prefix는 변환 블록 내 스캔 순서(scanning order)에서의 마지막(last) 유효 계수(significant coefficient)의 열 위치(column position)의 프리픽스(prefix)를 나타내고, 상기 last_sig_coeff_y_prefix는 상기 변환 블록 내 상기 스캔 순서(scanning order)에서의 마지막(last) 유효 계수(significant coefficient)의 행 위치(row position)의 프리픽스(prefix)를 나타내고, 상기 last_sig_coeff_x_suffix는 상기 변환 블록 내 상기 스캔 순서(scanning order)에서의 마지막(last) 유효 계수(significant coefficient)의 열 위치(column position)의 서픽스(suffix)를 나타내고, 상기 last_sig_coeff_y_suffix는 상기 변환 블록 내 상기 스캔 순서(scanning order)에서의 마지막(last) 유효 계수(significant coefficient)의 행 위치(row position)의 서픽스(suffix)를 나타낸다. 여기서, 유효 계수는 상기 0이 아닌 계수(non-zero coefficient)를 나타낼 수 있다. 또한, 상기 스캔 순서는 우상향 대각 스캔 순서일 수 있다. 또는 상기 스캔 순서는 수평 스캔 순서, 또는 수직 스캔 순서일 수 있다. 상기 스캔 순서는 대상 블록(CB, 또는 TB를 포함하는 CB)에 인트라/인터 예측이 적용되는지 여부 및/또는 구체적인 인트라/인터 예측 모드를 기반으로 결정될 수 있다.
그 다음, 인코딩 장치는 상기 변환 블록을 4x4 서브 블록(sub-block)들로 분할한 후, 각 4x4 서브 블록마다 1비트의 신택스 요소 coded_sub_block_flag를 사용해 현재 서브 블록 내에 0이 아닌 계수가 존재하는지 여부를 나타낼 수 있다.
coded_sub_block_flag의 값이 0이면 더 이상 전송할 정보가 없으므로 인코딩 장치는 현재 서브 블록에 대한 부호화 과정을 종료할 수 있다. 반대로, coded_sub_block_flag의 값이 1이면 인코딩 장치는 sig_coeff_flag에 대한 부호화 과정을 계속해서 수행할 수 있다. 마지막 0이 아닌 계수를 포함하는 서브 블록은 coded_sub_block_flag에 대한 부호화가 불필요하고, 변환 블록의 DC 정보를 포함하고 있는 서브 블록은 0이 아닌 계수를 포함할 확률이 높으므로, coded_sub_block_flag는 부호화되지 않고 그 값이 1이라고 가정될 수 있다.
만약 coded_sub_block_flag의 값이 1이어서 현재 서브 블록 내에 0이 아닌 계수가 존재한다고 판단되는 경우, 인코딩 장치는 역으로 스캔된 순서에 따라 이진값을 갖는 sig_coeff_flag를 인코딩할 수 있다. 인코딩 장치는 스캔 순서에 따라 각각의 변환 계수에 대한 1비트 신택스 엘리먼트 sig_coeff_flag를 인코딩할 수 있다. 만약 현재 스캔 위치에서의 변환 계수의 값이 0이 아니면 sig_coeff_flag의 값은 1이 될 수 있다. 여기서, 마지막 0이 아닌 계수를 포함하고 있는 서브 블록의 경우, 마지막 0이 아닌 계수에 대해서는 sig_coeff_flag가 인코딩될 필요가 없으므로 상기 서브 블록에 대한 부호화 과정이 생략될 수 있다. sig_coeff_flag가 1인 경우에만 레벨 정보 부호화가 수행될 수 있으며, 레벨 정보 부호화 과정에는 네 개의 신택스 엘리먼트들이 사용될 수 있다. 보다 구체적으로, 각 sig_coeff_flag[xC][yC]는 현재 TB내 각 변환 계수 위치 (xC, yC)에서의 해당 변환 계수의 레벨(값)이 0이 아닌지(non-zero) 여부를 나타낼 수 있다. 일 실시예에서, 상기 sig_coeff_flag는 양자화된 변환 계수가 0이 아닌 유효 계수인지 여부를 나타내는 유효 계수 플래그의 신텍스 엘리먼트의 일 예시에 해당할 수 있다.
sig_coeff_flag에 대한 부호화 이후의 남은 레벨 값은 아래의 수학식과 같이 도출될 수 있다. 즉, 부호화해야 할 레벨 값을 나타내는 신택스 요소 remAbsLevel은 아래의 수학식과 도출될 수 있다.
여기서, coeff는 실제 변환 계수값을 의미한다.
또한, 상술한 수학식 1에 기재된 remAbsLevel의 least significant coefficient (LSB) 값은 par_level_flag을 통하여 아래의 수학식 2와 같이 인코딩될 수 있다.
여기서 par_level_flag[n]는 스캐닝 위치 n에서의 변환 계수 레벨(값)의 패리티(parity)를 나타낼 수 있다.
par_leve_flag 인코딩 후에 인코딩해야 할 변환 계수 레벨 값 remAbsLevel은 다음의 수학식과 같이 업데이트될 수 있다.
rem_abs_gt1_flag는 해당 스캐닝 위치(n)에서의 remAbsLevel'이 1보다 큰지 여부를, rem_abs_gt2_flag는 해당 스캐닝 위치(n)에서의 remAbsLevel'이 2보다 큰지 여부를 나타낼 수 있다. rem_abs_gt2_flag가 1인 경우에만 abs_remainder에 대한 인코딩이 수행될 수 있다. 실제 변환 계수값인 coeff와 각 신택스 요소들의 관계는 다음의 수학식과 같을 수 있다.
또한, 다음의 표는 상술한 수학식 4와 관련된 예시들을 나타낸다.
여기서, | coeff |는 변환 계수 레벨(값)을 나타내며, 변환 계수에 대한 AbsLevel이라고 표시될 수도 있다. 또한, 각 계수의 부호는 1비트 심볼인 coeff_sign_flag를 이용하여 인코딩될 수 있다.
한편, 일 실시예에서 상기 par_level_flag는 상기 양자화된 변환 계수에 대한 변환 계수 레벨의 패리티에 대한 패리티 레벨 플래그의 신텍스 엘리먼트의 일 예시를 나타낼 수 있고, 상기 rem_abs_gt1_flag는 변환 계수 레벨이 제1 임계치보다 큰지 여부에 대한 제1 변환 계수 레벨 플래그의 신텍스 엘리먼트의 일 예시를 나타낼 수 있고, 상기 rem_abs_gt2_flag는 변환 계수 레벨이 제2 임계치보다 큰지 여부에 대한 제2 변환 계수 레벨 플래그의 신텍스 엘리먼트의 일 예시를 나타낼 수 있다.
또한, 상기 coeff_sign_flag은 해당 스캐닝 위치(n)에서의 변환 계수 레벨의 부호(sign)을 나타낼 수 있다. 즉, 상기 coeff_sign_flag은 해당 스캐닝 위치(n)에서의 변환 계수의 부호(sign)을 나타낼 수 있다.
또한, 상기 mts_idx는 현재 변환 블록 내 레지듀얼 샘플들에 대하여 수평 방향 및 수직 방향으로 적용되는 변환 커널들을 나타낼 수 있다.
도 5는 4x4 블록 내 변환 계수들의 예시를 도시하는 도면이다.
도 5의 4x4 블록은 양자화된 계수들의 일 예를 나타낸다. 도 5에 도시된 블록은 4x4 변환 블록이거나, 또는 8x8, 16x16, 32x32, 64x64 변환 블록의 4x4 서브 블록일 수 있다. 도 5의 4x4 블록은 루마 블록 또는 크로마 블록을 나타낼 수 있다.
예를 들어, 도 5의 역 대각선 스캔되는 계수들에 대한 인코딩 결과는 다음의 표와 같을 수 있다.
상술한 표 3에서 scan_pos는 역 대각선 스캔에 따른 계수의 위치를 나타낸다. scan_pos 15는 4x4 블록에서 가장 먼저 스캔되는, 즉 우하단 코너의 변환 계수일 수 있고, scan_pos 0은 가장 나중에 스캔되는, 즉 좌상단 코너의 변환 계수일 수 있다. 한편 일 실시예에서, 상기 scan_pos는 스캔 위치라고 지칭될 수도 있다. 예를 들어, 상기 scan_pos 0은 스캔 위치 0이라고 지칭될 수 있다.
한편, 상술한 내용과 같이 인코딩 장치는 입력 신호가 이진값이 아닌 신텍스 엘리먼트인 경우에는 상기 입력 신호의 값을 이진화(binarization)하여 입력 신호를 이진값로 변환할 수 있다. 또한, 디코딩 장치는 상기 신텍스 엘리먼트를 디코딩하여 상기 신텍스 엘리먼트의 이진화된 값(즉, 이진화된 빈)을 도출할 수 있고, 상기 이진화된 값을 역 이진화하여 상기 신텍스 엘리먼트의 값을 도출할 수 있다. 상기 이진화 과정은 후술하는 트렁케이티드 라이스(Truncated Rice, TR) 이진화 프로세스(binarization process), k차 Exp-Golomb (k-th order Exp-Golomb, EGk) 이진화 프로세스(binarization process), 또는 고정 길이(Fixed-length, FL) 이진화 프로세스(binarization process) 등으로 수행될 수 있다. 또한, 역 이진화 과정은 상기 TR 이진화 프로세스, 상기 EGk 이진화 프로세스 또는 상기 FL 이진화 프로세스를 기반으로 수행되어 상기 신텍스 엘리먼트의 값을 도출하는 과정을 나타낼 수 있다.
예를 들어, 상기 TR 이진화 프로세스는 다음과 같이 수행될 수 있다.
상기 TR 이진화 프로세스의 입력(input)은 TR 이진화에 대한 요청과 신텍스 엘리먼트에 대한 cMax 및 cRiceParam 일 수 있다. 또한, 상기 TR 이진화 프로세스의 출력(output)은 빈 스트링에 대응하는 값 symbolVal 에 대한 TR 이진화일 수 있다.
구체적으로, 일 예로, 신텍스 엘리먼트에 대한 접미사(suffix) 빈 스트링이 존재하는 경우에는 상기 신텍스 엘리먼트에 대한 TR 빈 스트링은 접두사(prefix) 빈 스트링과 접미사 빈 스트링의 결합(concatenation)일 수 있고, 상기 접미사 빈 스트링이 존재하지 않는 경우에는 상기 신텍스 엘리먼트에 대한 상기 TR 빈 스트링은 상기 접두사 빈 스트링일 수 있다. 예를 들어, 상기 접두사 빈 스트링은 후술하는 바와 같이 도출될 수 있다.
상기 신텍스 엘리먼트에 대한 상기 symbolVal 의 접두사 값(prefix value)은 다음의 수학식과 같이 도출될 수 있다.
여기서, prefixVal 은 상기 symbolVal 의 접두사 값을 나타낼 수 있다. 상기 신텍스 엘리먼트의 상기 TR 빈 스트링의 접두사(즉, 접두사 빈 스트링)는 후술하는 바와 같이 도출될 수 있다.
예를 들어, 상기 prefixVal이 cMax >> cRiceParam보다 작은 경우, 접두사 빈 스트링은 binIdx에 의해 인덱싱되는(indexed) 길이 prefixVal + 1의 비트 스트링(bit string)일 수 있다. 즉, 상기 prefixVal이 cMax >> cRiceParam보다 작은 경우, 상기 접두사 빈 스트링은 binIdx가 가리키는 prefixVal + 1 비트수의 비트스트링일 수 있다. prefixVal보다 작은 binIdx 에 대한 빈은 1과 동일할 수 있다. 또한, prefixVal와 동일한 binIdx 에 대한 빈은 0과 동일할 수 있다.
예를 들어, 상기 prefixVal에 대한 단항 이진화(unary binarization)로 도출되는 빈 스트링은 다음의 표와 같을 수 있다.
한편, 상기 prefixVal이 cMax >> cRiceParam보다 작지 않은 경우, 상기 접두사 빈 스트링은 길이가 cMax >> cRiceParam 이고 모든 빈이 1인 비트 스트링일 수 있다.
또한, cMax 가 symbolVal 보다 크고, cRiceParam 이 0보다 큰 경우, TR 빈 스트링의 접미사 빈 스트링이 존재할 수 있다. 예를 들어, 상기 접미사 빈 스트링은 후술하는 바와 같이 도출될 수 있다.
상기 신텍스 엘리먼트에 대한 상기 symbolVal 의 접미사 값(suffix value)은 다음의 수학식과 같이 도출될 수 있다.
여기서, suffixVal 은 상기 symbolVal 의 접미사 값을 나타낼 수 있다.
TR 빈 스트링의 접미사(즉, 접미사 빈 스트링)은 cMax 값이 (1 << cRiceParam)-1 인 suffixVal에 대한 FL 이진화 프로세스를 기반으로 도출될 수 있다.
한편, 입력 파라미터인 cRiceParam 의 값이 0이면, 상기 TR 이진화는 정확하게 트렁케이티드 단항 이진화(truncated unary binarization)일 수 있고, 항상 디코딩되는 신텍스 엘리멘트의 가능한 최대 값과 동일한 cMax 값이 사용될 수 있다.
또한, 예를 들어, 상기 EGk 이진화 프로세스는 다음과 같이 수행될 수 있다. ue(v) 로 코딩된 신텍스 엘리먼트는 Exp-Golomb 코딩된 신텍스 엘리먼트일 수 있다.
일 예로, 0차 Exp-Golomb (0-th order Exp-Golomb, EG0) 이진화 프로세스는 다음과 같이 수행될 수 있다.
상기 신텍스 엘리먼트에 대한 파싱 프로세스(parsing process)는 비트스트림의 현재 위치에서 시작하여 첫번째 논-제로(non-zero) 비트를 포함한 비트를 읽어 0과 같은 선행 비트 수를 세는 것(counting)으로 시작될 수 있다. 상기 과정은 다음의 표와 같이 나타낼 수 있다.
또한, 변수 codeNum 은 다음의 수학식과 같이 도출될 수 있다.
여기서, read_bits(leadingZeroBits)에서 반환된 값, 즉, read_bits(leadingZeroBits)가 나타내는 값은 첫번째로 기록된 가장 중요한 비트(most significant bit)에 대한 언사인드 정수(unsigned integer)의 이진 표현(binary representation)으로 해석될 수 있다.
비트 스트링을 "접두사(prefix)" 비트와 "접미사(suffix)" 비트로 분리한 Exp-Golomb 코드의 구조는 다음의 표와 같이 나타낼 수 있다.
"접두사" 비트는 leadingZeroBits 계산을 위하여 상술한 내용과 같이 파싱된 비트일 수 있고, 표 6에서 비트 스트링의 0 또는 1로 표시될 수 있다. 즉, 상술한 표 6의 0 또는 1로 개시된 비트 스트링은 접두사 비트 스트링을 나타낼 수 있다. "접미사" 비트는 codeNum의 계산에서 파싱되는 비트일 수 있고, 상술한 표 6에서 xi로 표시될 수 있다. 즉, 상술한 표 6의 xi로 개시된 비트 스트링은 접미사 비트 스트링을 나타낼 수 있다. 여기서, i는 0에서 LeadingZeroBits-1의 범위의 값일 수 있다. 또한, 각 xi는 0 또는 1과 동일할 수 있다.
상기 codeNum 에 할당되는 비트 스트링은 다음의 표와 같을 수 있다.
신텍스 엘리먼트의 디스크립터(descriptor)가 ue(v) 인 경우, 즉, 신텍스 엘리먼트가 ue(v)로 코딩된 경우, 상기 신텍스 엘리먼트의 값은 codeNum과 동일할 수 있다.
또한, 예를 들어, 상기 EGk 이진화 프로세스는 다음과 같이 수행될 수 있다.
상기 EGk 이진화 프로세스의 입력(input)은 EGk 이진화에 대한 요청일 수 있다. 또한, 상기 EGk 이진화 프로세스의 출력(output)은 빈 스트링에 대응하는 값 symbolVal 에 대한 EGk 이진화일 수 있다.
symbolVal에 대한 EGk 이진화 프로세스의 비트 스트링은 다음과 같이 도출될 수 있다.
상술한 표 8을 참조하면, put(X)의 각 콜(each call)을 통하여 이진값 X를 빈 스트링의 끝에 추가될 수 있다. 여기서, X는 0 또는 1 일 수 있다.
또한, 예를 들어, 상기 FL 이진화 프로세스는 다음과 같이 수행될 수 있다.
상기 FL 이진화 프로세스의 입력(input)은 FL 이진화에 대한 요청 및 상기 신텍스 엘리먼트에 대한 cMax일 수 있다. 또한, 상기 FL 이진화 프로세스의 출력(output)은 빈 스트링에 대응하는 값 symbolVal 에 대한 FL 이진화일 수 있다.
FL 이진화는 심볼값 symbolVal의 고정길이인 비트수를 갖는 비트 스트링을 사용하여 구성될 수 있다. 여기서, 상기 고정 길이 비트는 부호없는 정수 비트 스트링(unsigned integer bit string)일 수 있다. 즉, FL 이진화를 통하여 심볼값 symbolVal 에 대한 비트 스트링이 도출될 수 있고, 상기 비트스트링의 비트길이(즉, 비트수)는 고정 길이일 수 있다.
예를 들어, 상기 고정 길이는 다음의 수학식과 같이 도출될 수 있다.
FL 이진화에 대한 빈들의 인덱싱은 최상위 비트에서 최하위 비트 순서로 증가하는 값을 사용하는 방식일 수 있다. 예를 들어, 상기 최상위 비트와 관련된 빈 인덱스는 binIdx = 0 일 수 있다.
한편, 예를 들어, 상기 레지듀얼 정보 중 신텍스 엘리먼트 abs_remainder 에 대한 이진화 프로세스는 다음과 같이 수행될 수 있다.
상기 abs_remainder 에 대한 이진화 프로세스의 입력은 신텍스 엘리먼트 abs_remainder[n] 의 이진화에 대한 요청, 색상 성분(colour component) cIdx, 루마 위치 (x0, y0), 현재 계수 스캔 위치 (xC, yC), 변환 블록의 폭의 이진대수(binary logarithm)인 log2TbWidth 및 변환 블록의 높이의 이진대수 인 log2TbHeight 일 수 있다. 상기 루마 위치 (x0, y0)는 픽처의 좌상단 루마 샘플을 기준으로 하는 현재 루마 변환 블록의 좌상단 샘플을 가리킬 수 있다.
상기 abs_remainder 에 대한 이진화 프로세스의 출력(output)은 상기 abs_remainder 의 이진화(즉, 상기 abs_remainder 의 이진화된 빈 스트링)일 수 있다. 상기 이진화 프로세스를 통하여 상기 abs_remainder 에 대한 가용 빈 스트링들이 도출될 수 있다.
상기 abs_remainder 에 대한 라이스 파라미터 cRiceParam 은 상기 색상 성분 cIdx 및 루마 위치 (x0, y0), 현재 계수 스캔 위치 (xC, yC), 변환 블록의 높이의 이진대수 인 log2TbHeight 을 입력으로 수행되는 라이스 파라미터 도출 과정을 통하여 도출될 수 있다. 상기 라이스 파라미터 도출 과정에 대한 구체적인 설명은 후술한다.
또한, 예를 들어, 상기 abs_remainder 에 대한 cMax는 상기 라이스 파라미터 cRiceParam 를 기반으로 도출될 수 있다. 상기 cMax는 다음의 수학식과 같이 도출될 수 있다.
상술한 수학식 9를 참조하면 상기 cRiceParam 의 값이 1 이면 상기 cMax 는 6 << cRiceParam 로 도출될 수 있고, 상기 cRiceParam 의 값이 1 이 아니면 상기 cMax 는 7 << cRiceParam 로 도출될 수 있다.
한편, 상기 abs_remainder 에 대한 이진화, 즉, 상기 abs_remainder 에 대한 빈 스트링은 접미사(suffix) 빈 스트링이 존재하는 경우에는 접두사(prefix) 빈 스트링과 접미사 빈 스트링의 결합(concatenation)일 수 있다. 또한, 상기 접미사 빈 스트링이 존재하지 않는 경우에는 상기 abs_remainder에 대한 상기 빈 스트링은 상기 접두사 빈 스트링일 수 있다.
예를 들어, 상기 접두사 빈 스트링은 후술하는 바와 같이 도출될 수 있다.
상기 abs_remainder 의 접두사 값(prefix value) prefixVal은 다음의 수학식과 같이 도출될 수 있다.
상기 abs_remainder 의 상기 빈 스트링의 접두사(즉, 접두사 빈 스트링)는 상기 cMax 및 상기 cRiceParam 을 입력으로 사용하는 상기 prefixVal 에 대한 TR 이진화 프로세스를 통하여 도출될 수 있다.
상기 접두사 빈 스트링이 모든 비트가 1이고 비트 길이가 4인 비트 스트링과 동일하면 상기 abs_remainder 의 상기 빈 스트링의 접미사 빈 스트링이 존재할 수 있고, 후술하는 바와 같이 도출될 수 있다.
상기 abs_remainder 의 접미사 값(suffix value) suffixVal은 다음의 수학식과 같이 도출될 수 있다.
상기 abs_remainder 의 상기 빈 스트링의 접미사 빈 스트링은 k 가 cRiceParam+1 로 설정되는 상기 suffixVal 에 대한 EGk 이진화 프로세스를 통하여 도출될 수 있다.
한편, 상술한 라이스 파라미터 도출 과정은 다음과 같을 수 있다.
상기 라이스 파라미터 도출 과정의 입력은 색상 성분 인덱스(colour component index) cIdx, 루마 위치 (x0, y0), 현재 계수 스캔 위치 (xC, yC), 변환 블록의 폭의 이진대수(binary logarithm)인 log2TbWidth 및 변환 블록의 높이의 이진대수 인 log2TbHeight 일 수 있다. 상기 루마 위치 (x0, y0)는 픽처의 좌상단 루마 샘플을 기준으로 하는 현재 루마 변환 블록의 좌상단 샘플을 가리킬 수 있다. 또한, 상기 라이스 파라미터 도출 과정의 출력은 상기 라이스 파라미터 cRiceParam 일 수 있다.
예를 들어, 주어진 신텍스 엘리먼트들 sig_coeff_flag[x][y] 과 상기 컴포넌트 인덱스 cIdx, 상기 좌상단 루마 위치 (x0, y0)을 갖는 변환 블록에 대한 배열 AbsLevel[x][C] 을 기반으로 변수 locSumAbs 는 다음의 표에 개시된 슈도 코드(pseudo code)와 같이 도출될 수 있다.
상기 라이스 파라미터 cRiceParam 는 다음과 같이 도출될 수 있다.
예를 들어, 상기 locSumAbs 가 12보다 작은 경우, 상기 cRiceParam 은 0으로 설정될 수 있다. 또는, 상술한 조건에 해당하지 않고, 상기 locSumAbs 가 25보다 작은 경우(즉, 상기 locSumAbs 가 12 이상이고 25보다 작은 경우), 상기 cRiceParam 은 1로 설정될 수 있다. 또는, 상술한 조건에 해당하지 않는 경우(즉, 상기 locSumAbs 가 25보다 크거나 동일한 경우), 상기 cRiceParam 은 2로 설정될 수 있다.
한편, VVC 표준에서는 큰 블록 사이즈, 예를 들어 최대 64x64 사이즈의 블록에 대한 변환이 가용하고, 따라서 1080p 및 4k 시퀀스(sequence)와 같은 고해상도 영상을 코딩함에 있어서 유용할 수 있다. 하지만, 변환 블록 사이즈에도 불구하고, 큰 블록 파티션(large block partition)에 대해서는 작은 레지듀얼이 존재할 수 있고, 레지듀얼 에너지는 변환 도메인 내 저주파 변수들에 집중되어 있을 수 있다.
이에, 예를 들어, 사이즈가 큰 블록(예를 들어, 폭 및/또는 높이가 64인 변환 블록)에 대한 고주파 변환 계수들은 0이 되고, 저주파 계수들만 유지되도록 하는 방안이 제안될 수 있다. 상술한 방안은 고주파 제로잉(high frequency zeroing)이라고 나타낼 수 있다. 즉, 상기 고주파 제로잉(high frequency zeroing)은 제1 폭(width) W1, 제1 높이(height) H1을 갖는 (변환) 블록에서 일정 값 이상으로 높은 주파수와 관련된 변환 계수들을 제로화(즉, 0으로 결정)하는 과정을 의미한다.
예를 들어, WxH 사이즈의 변환 블록에 대하여, 상기 W 가 64 이면 상기 변환 블록 내 좌측 32 열들의 변환 계수들은 유지될 수 있고, 나머지 변환 계수들은 제로화될 수 있다. 또한, WxH 사이즈의 변환 블록에 대하여, 상기 H 가 64 이면 상측 32 열들의 변환 계수들만 유지될 수 있고, 나머지 변환 계수들은 제로화될 수 있다. 즉, WxH 사이즈의 블록에 대하여, 상기 블록의 좌상단 위치를 포함하고, 사이즈가 (W == 64? 32 : W) x (H == 64? 32 : H) 인 영역 내 변환 계수들은 유지될 수 있고, 나머지 변환 계수들은 계산되지 않고 0으로 설정될 수 있다. 또는, 상기 나머지 변환 계수들은 계산되지만 무시(또는 0으로 처리)될 수 있다. 한편, 큰 블록에 대하여 변환 스킵 모드가 적용되는 경우, 상기 고주파 제로잉은 적용되지 않고, 상기 큰 블록의 전체 계수값들이 사용될 수도 있다.
상술한 고주파 제로잉은 변환 및/또는 양자화 과정에서 수행될 수 있고, 또는 레지듀얼 코딩 과정에서 수행될 수도 있다.
예를 들어, 상기 고주파 제로잉이 변환 및/또는 양자화 과정에서 수행되는 경우, 레지듀얼 샘플들의 변환 과정에서 상기 좌상단 변환 계수들(or lower-frequency coefficients)을 제외한 상기 나머지 변환 계수들이 0으로 설정될 수 있다. 또는, 변환 후 양자화 과정에서 상기 나머지 변환 계수들이 0으로 설정될 수 있다. 다른 예로, 상기 고주파 제로잉이 레지듀얼 코딩 과정에서 수행되는 경우, 비록 변환/양자화 결과로 도출된 상기 나머지 변환 계수들이 0이 아닌 유효 계수로 존재할 수 있으나, 레지듀얼 코딩 과정에서 상기 나머지 변환 계수들의 값이 0으로 간주(즉, 상기 나머지 변환 계수들이 0이 아닌 유효 계수로 존재하지 않는 것으로 간주)되는 것으로 처리될 수도 있다.
도 6은 일 실시예에 따른 고주파 제로잉을 설명하기 위한 도면이다.
본 문서의 "고주파 제로잉(highfrequency zeroing)"은 제1가로크기(또는 길이) W1, 제1세로크기(또는 길이) H1을 갖는 (변환) 블록에서 일정 값 이상으로 높은 주파수와 관련된 변환 계수들을 제로화(즉, 0으로 결정)하는 과정을 의미한다. 고주파 제로잉이 적용되는 경우, 상기 (변환) 블록 내 변환 계수들 중 제2가로크기 W2 및 제2세로크기 H2를 기반으로 구성되는 저주파 변환 계수 영역의 외부의 변환 계수들의 변환 계수 값은 모두 0으로 결정(설정)될 수 있다. 상기 저주파 변환 계수 영역의 외부는 고주파 변환 계수 영역으로 지칭될 수 있다. 일 예시에서, 상기 저주파 변환 계수 영역은 상기 (변환) 블록의 좌상단에서부터 위치하는 직사각형 모양의 영역일 수 있다.
본 문서에서는 특정 정보 또는 개념을 정의하기 위한 특정 용어 또는 문장을 사용하고 있다. 예를 들어, 상술한 바와 같이 본 문서에서는 제1가로크기(또는 길이) W1, 제1세로크기(또는 길이) H1을 갖는 (변환) 블록에서 일정 값 이상으로 높은 주파수와 관련된 변환 계수들을 제로화하는 과정을 "고주파 제로잉"이라고 정의하고 있고, 상기 고주파 제로잉을 통해 제로잉이 수행된 영역을 "고주파 변환 계수 영역"으로, 상기 제로잉이 수행되지 않은 영역을 "저주파 변환 계수 영역"으로 정의하고 있다. 상기 저주파 변환 계수 영역의 사이즈를 나타내기 위해 제2가로크기(또는 길이) W2와 제2세로크기(또는 길이) H2가 사용되고 있다.
그러나, "고주파 제로잉"은 highfrequency zeroing, 하이프리퀀시 제로잉, 고주파 제로화, 고주파 제로아웃(highfrequency zero-out), 제로아웃 등 다양한 용어로 대체될 수 있고, 상기 "고주파 변환 계수 영역"은 고주파 제로잉 적용 영역, 고주파 제로잉 영역, 하이프리퀀시 영역, 고주파 계수 영역, 고주파 제로아웃 영역, 제로아웃 영역 등 다양한 용어로 대체될 수 있으며, 상기 "저주파 변환 계수 영역"은 고주파 제로잉 미적용 영역, 로우프리퀀시 영역, 저주파 계수 영역, 제한 영역 등 다양한 용어로 대체될 수 있는 바, 본 문서에서 특정 정보 또는 개념을 정의하기 위해 사용된 특정 용어 또는 문장을 문서 전반에서 해석함에 있어서 그 명칭에 국한된 해석을 하여서는 안 되고, 상기 용어가 나타내고자 하는 내용에 따른 다양한 동작, 기능 및 효과에 주목하여 해석할 필요가 있다.
일 실시예에서는, 고주파 제로잉이 적용되는 (변환) 블록(TB, TU 또는 CB)에 대한 신택스 엘리먼트 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix의 이진화를 수행하는 방법이 제안될 수 있다. last_sig_coeff_x_prefix와 last_sig_coeff_y_prefix는 상술한 트렁케이티드 라이스 코드(truncated Rice code)로 이진화될 수 있고, 이 때 cRiceParam의 값은 0이 사용될 수 있다. 트렁케이티드 라이스 코드에 대한 이진화에 사용되는 cMax의 값은, last_sig_coeff_x_prefix의 이진화를 수행할 시에는 수학식 1에 기반하고, last_sig_coeff_y_prefix의 이진화를 수행할 때는 수학식 2에 기반하여 결정될 수 있다.
여기서, W1은 (변환) 블록의 가로 길이(또는 폭), H1은 변환 블록의 세로 길이(또는 높이)를 나타낼 수 있다. 예를 들어, 도 6과 같은 64x32 변환 블록의 경우 W1은 64, H1은 32이다. 따라서, last_sig_coeff_x_prefix의 이진화를 위한 cMax의 값은 11, last_sig_coeff_y_prefix의 이진화를 위한 cMax의 값은 9가 될 수 있다.
아래의 표 10은 W1 또는 H1이 32인 경우의 이진화를, 아래의 표 2는 W1 또는 H1이 64인 경우의 이진화 코드워드를 나타낸다. 일 실시예에서는 변환 블록의 크기를 기반으로 트런케이티드 라이스 코드(truncated Rice code) 이진화를 수행할 수 있으므로, 아래의 표 11과 같이 LastSignificantCoeffX 또는 LastSignificantCoeffY의 값이 32 내지 47인 경우를 부호화하기 위한 last_sig_coeff_x_prefix 또는 last_sig_coeff_y_prefix의 코드워드는 '11111111110'이 될 수 있고, 48~63인 경우를 부호화하기 위한 코드워드는 '11111111111'이 될 수 있다, 두 가지 경우 모두 11개의 빈을 기반으로 이진화 될 수 있다. 상기 코드워드는 빈 스트링이라고 불릴 수 있다.
한편, 상술한 바와 같이 인코딩 장치(엔트로피 인코딩부)는, (양자화된) 변환 계수들에 대한 레지듀얼 코딩 절차를 수행할 수 있다. 인코딩 장치는 현재 블록(현재 코딩 블록(CB) 또는 현재 변환 블록(TB)) 내 (양자화된) 변환 계수들을 스캔 순서에 따라 레지듀얼 코딩할 수 있다. 이때, 인코딩 장치는 상술한 표 1에 기재된 바와 같은 레지듀얼 정보에 관한 다양한 신택스 엘리먼트들을 생성 및 인코딩할 수 있다.
상술한 표 1에서 나타난 바와 같이, last_sig_coeff_x_prefix의 값이 3보다 큰 경우 last_sig_coeff_x_suffix가 더 시그널링될 수 있으며, 상기 last_sig_coeff_x_suffix의 값을 기반으로 LastSignificantCoeffX가 도출될 수 있다. 예를 들어, LastSignificantCoeffX의 값이 32~47인 경우를 부호화하기 위한 last_sig_coeff_x_prefix의 코드워드는 '11111111110'이 될 수 있고, 32~47 중 어떤 값이 사용되는지 여부는 상기 last_sig_coeff_x_suffix의 값을 기반으로 결정될 수 있다. 또한, 상기 표 1에서 나타난 바와 같이, last_sig_coeff_y_prefix의 값이 3보다 큰 경우 last_sig_coeff_y_prefix가 더 시그널링될 수 있으며, 상기 last_sig_coeff_y_suffix의 값을 기반으로 LastSignificantCoeffY가 도출될 수 있다. 예를 들어, LastSignificantCoeffY의 값이 32~47인 경우를 부호화하기 위한 last_sig_coeff_x_prefix의 코드워드는 '11111111110'이고, 32~47 중 어떤 값이 사용되는지 여부는 상기 last_sig_coeff_y_suffix의 값을 기반으로 결정될 수 있다.
LastSignificantCoeffX 또는 LastSignificantCoeffY를 도출하기 위한 구체적인 계산은 예를 들어 아래의 표 12와 같이 수행될 수 있다.
고주파 제로잉은 제1가로크기(W1) 또는 제1세로크기(H1)을 갖는 변환 블록에서 일정 이상으로 높은 주파수의 계수들을 제로화 해(즉, 0으로 결정하여) 잔여 변환 계수를 제2가로크기(W2) 또는 제2세로크기(H2)로 제한하는 것을 의미한다. 이때 일 실시예에서는, 변환 블록의 크기(제1가로크기 또는 제1세로크기)에 기반한 트런케이티드 라이스 코드를 기반으로 이진화 하기 보다는, 고주파 제로잉을 통해 도출되는 제한 영역의 크기(제2가로크기 또는 제2세로크기)에 기반한 트런케이티드 라이스 코드를 기반으로 이진화를 수행하는 방안을 고려해 볼 수 있다. 제2가로크기와 제2세로크기를 이용하여 last_sig_coeff_x_prefix를 위한 cMax와 last_sig_coeff_y_prefix를 위한 cMax를 아래의 수학식 14 및 수학식 15로 각각 정의한 후, 트런케이티드 라이스 코드를 생성할 수 있다.
일 예시에서, 제1가로크기 또는 제1세로크기가 64이고, 제2가로크기 또는 제2세로크기가 32일 때, 상기 수학식 14 또는 수학식 15를 기반으로 도출되는 트런케이티드 라이스 코드는 아래의 표 13과 같을 수 있다.
고주파 제로잉을 통해, 상기 제2가로크기 또는 상기 제2세로크기의 밖에서 형성되는 고주파 변환 계수 영역 내 고주파 계수들에서 잔여 변환 계수가 없어지므로, 하기의 표 6과 같은 이진화 코드워드 설계가 가능할 수 있다.
일 실시예에서, W2와 H2는 고정된 값으로 설정될 수 있다. 또는 W2 및 H2는 W1 및 H1을 기반으로 결정될 수 있다. 또는 W2 및 H2를 나타내는 정보가 인코딩 장치에서 디코딩 장치로 시그널링될 수 있다. 일 예시에서, 상기 W2와 H2는 각각 32 또는 16으로 설정될 수 있다. 다른 예시에서, 상기 W2와 H2는 각각 W1의 1/2, H1의 1/2로 도출될 수 있다. 또 다른 예시에서, 상기 W2와 H2는 max(W1,H1)의 1/2로 도출될 수도 있다. 다만, 이는 예시로서 상기 W2와 H2는 인코딩 장치 및 디코딩 장치에서 설정된 또 다른 다양한 방법에 의하여 결정될 수도 있다. 제안하는 방법을 통해 LastSignificantCoeffX 또는 LastSignificantCoeffY의 일부 값에 대한 코드워드의 길이를 효과적으로 줄일 수 있다. 또한, 이를 통해 절감되는 부호화 빈(bin)이 문맥 부호화 빈이므로 처리량 (throughput) 면에서 이점을 가질 수 있다.
도 6에서 설명한 실시예들을 기반으로 도 9a 내지 도 10b에서 후술할 레지듀얼 코딩 방법이 수행될 수 있다. 또한, 다른 일 예시에서, 도 6에서 설명한 실시예들을 기반으로 도 11에서 후술할 인코딩 방법 또는 도 13에서 후술할 디코딩 방법이 수행될 수 있다.
한편, 상기 도 6에서 설명된 고주파 제로잉의 일 실시예와 추가적으로 또는 대체적으로 수행될 수 있는 고주파 제로잉의 다른 실시예가 제안될 수 있다.
도 7은 고주파 제로잉이 적용된 현재 블록에 대한 변환 계수들을 스캔하는 방법의 일 예시를 설명하기 위한 도면이다.
일 실시예에서는, 마지막 0이 아닌 계수가 포함된 마지막 변환 계수 그룹의 위치로부터 역 대각 방향으로 변환 계수 그룹을 스캔하면서 레지듀얼 코딩을 수행할 수 있다. 반면, 이에 추가하여 또는 이를 대체하여(additionally or alternatively), 다른 일 실시예에서는 고주파 제로잉이 적용되는 변환 블록에 대해 변환 계수 그룹의 스캔 순서를 변경할 수 있다.
도 7은 고주파 제로잉이 적용된 64x64 변환 블록에서 4x4 변환 계수 그룹이 스캔되는 방법을 나타내고 있다. 도 5에서, L로 표시된 부분이 마지막 0이 아닌 계수가 포함된 4x4 변환 계수 그룹을 의미한다. 고주파 제로잉은 제1가로크기(W1) 및/또는 제1세로크기(H1)를 갖는 변환 블록에서 일정 주파수 이상의 고주파와 관련된 변환 계수들을 제로화하여(또는 제로아웃하여) 잔여 변환 계수를 제2가로크기(W2) 및/또는 제2세로크기(H2)로 제한하는 것을 의미하며, 도 7에서 도트(dot) 표시된 4x4 블록들은 고주파 제로잉을 통해 제로아웃 되는 영역을 나타낸다. 도 7에서 상기 빗금친 영역은 저주파 변환 계수 영역으로, 상기 도트 표시된 영역은 고주파 변환 계수 영역으로 지칭될 수 있다.
W2 및/또는 H2는 고정된 값으로 설정되거나, W1 및/또는 H1을 기반으로 결정될 수 있다. 또는, W2 및/또는 H2를 나타내는 정보가 인코딩 장치에서 디코딩 장치로 시그널링될 수 있다. 일 예시에서, 상기 W2, H2는 각각 32 또는 16으로 설정될 수 있다. 다른 일 예시에서, 상기 W2 및/또는 H2는 각각 W1의 1/2 및/또는 H1의 1/2로 도출될 수 있다. 또 다른 일 예시에서, 상기 W2 및/또는 H2는 max(W1,H1)의 1/2로 도출될 수도 있다. 다만, 상기된 예시들은 일부에 불과하며, 상기 W2 및/또는 H2는 인코딩 장치 및 디코딩 장치에서 다양한 방법을 기반으로 결정될 수도 있다.
도 7에 따른 변환 계수 그룹 스캔 방법을 사용하면, 고주파 제로잉을 통해 제로아웃 되는 영역 또한 역 대각선 스캔 순서에 따라 스캔되어야 함을 확인할 수 있다. 이와 같이 불필요한 블록을 스캔하는 경우, 코딩 복잡도(complexity)가 상승할 수 있고, 제로아웃 영역(도 7에 x 표시된 4x4 블록들이 구성하는 영역)에서 매번 코디드 서브 블록 플래그(상기 현재 블록 내 서브 블록에 대한 변환 계수들의 변환 계수 레벨이 모두 0인지 여부를 나타내는 플래그로서, 예를 들어 coded_sub_block_flag로 표현될 수 있다)가 0임을 부호화해야 하는 버든(bunden)이 발생할 수 있다.
따라서, 고주파 제로잉이 적용되는 경우, 변환 계수 그룹의 스캔을 고주파 제로잉에서 제한되는 영역(또는, 저주파 변환 계수 영역)의 사이즈 (제2가로크기 또는 제2세로크기) 내에서만 수행하는 것으로 제한하는 방법이 고려될 수 있다. 일 실시예에서는, 도 7에 따른 변환 계수 그룹 스캔 대신, 도 8과 같이 변환 계수 그룹 스캔을 수행하는 방법을 제안한다.
도 8은 고주파 제로잉이 적용된 현재 블록에 대한 변환 계수들을 스캔하는 방법의 다른 일 예시를 설명하기 위한 도면이다.
도 8에 따른 변환 계수 그룹 스캔 방법을 수행하는 경우, 불필요한 스캔 과정을 생략할 수 있고, 코디드 서브 블록 플래그가 불필요하게 부호화되는 것을 방지할 수 있다. 즉, 도 8에 따른 일 실시예에 의하면, 인코딩 장치는 현재 (변환) 블록 내에서 W2 및/또는 H2를 초과하는 영역(즉, 고주파 변환 계수 영역)에 위치하는 서브 블록에 대한 코디드 서브 블록 플래그를 레지듀얼 코딩 신택스(또는 비트스트림)에 포함하지 않을 수 있다. 즉, W2 및/또는또는 H2를 초과하는 영역에 위치하는 서브 블록에 대한 신택스 요소 coded_sub_block_flag에 관한 비트가 할당되지 않을 수 있다. 이러한 경우, 디코딩 장치는 W2 및/또는 H2를 초과하는 영역에 위치하는 서브 블록에 대하여는 스캔을 수행하지 않고도 상기 W2 및/또는 H2를 초과하는 영역에는 마지막 유효 계수가 위치하지 않음을 추론할 수 있다. 또한, 디코딩 장치는 W2 및/또는 H2를 초과하는 영역에 위치하는 서브 블록에 대한 신택스 요소 coded_sub_block_flag를 레지듀얼 코딩 신택스(또는 비트스트림)로부터 파싱(parsing)을 하지 않고, 해당 신택스 요소 coded_sub_block_flag의 값을 0으로 추론할 수 있다.
따라서, 도 8에 따른 일 실시예에서는, 도 7에 따른 일 실시예와 비교할 때, 상기 64x64 현재 블록에 포함된 총 49개의 4x4 서브 블록들에 대하여, 'coded_sub_block_flag = 0'임을 부호화하지 않을 수 있다. coded_sub_block_flag는 문맥 부호화 빈으로 부호화되므로, 도 8에 따른 일 실시예에 의하면, 처리량 (throughput) 면에서도 이점을 가질 수 있다. 즉, 레지듀얼 코딩 과정에서 고주파 제로잉이 적용되어 제로아웃 영역 내 0이 아닌 유효 계수가 존재하지 않는 것으로 간주되는 경우, 변환 과정에서 요구되는 산술적 복잡도(computational complexity)가 메모리 관점에서 줄어들 수 있다.
일 예시에서, 도 7 및 도 8에서 설명한 실시예들을 기반으로 도 9a 내지 도 10b에서 후술할 레지듀얼 코딩 방법이 수행될 수 있다. 다른 일 예시에서, 도 7 및 도 8에서 설명한 실시예들은 기반으로 도 11에서 후술할 인코딩 방법 또는 도 13에서 후술할 디코딩 방법이 수행될 수 있다.
도 9a 및 도 9b는 일 실시예에 따른 엔트로피 인코딩부의 구성 및 동작을 설명하기 위한 도면이다.
도 9a 및 도 9b를 참조하면, 인코딩 장치(엔트로피 인코딩부)는 (양자화된) 변환 계수들에 대한 레지듀얼 코딩 절차를 수행할 수 있다. 상기 (양자화된) 변환 계수들은, 일 예시에서는 고주파 제로잉이 적용된 변환 계수들일 수 있고, 다른 일 예시에서는 0이 아닌 고주파 계수들을 포함할 수 있으며, 이때 엔트로피 인코딩부에서 수행되는 레지듀얼 코딩 절차에서 고주파 계수들은 0으로 간주 또는 처리될 수 있다. 인코딩 장치는 도 6에서 전술한 바와 같이 현재 블록(현재 코딩 블록(CB) 또는 현재 변환 블록(TB)) 내 (양자화된) 변환 계수들을 스캔 순서에 따라 레지듀얼 코딩할 수 있다. 인코딩 장치는, 예를 들어 상기 표 1에 기재된 바와 같은 레지듀얼 정보에 관한 다양한 신텍스 엘리먼트들을 생성 및 인코딩할 수 있다. S900 및 S910은 도 2의 레지듀얼 정보 인코딩 절차에 포함될 수 있다.
인코딩 장치는 레지듀얼 관련 신택스 엘리먼트들에 대한 이진화를 수행할 수 있다(S900). 일 예시에서, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix에 대하여는 상기 도 6에서 전술된 실시예들에 따른 이진화가 수행될 수 있다. 상기 last_sig_coeff_x_prefix 및 상기 last_sig_coeff_y_prefix는 현재 블록 내 마지막 유효 계수의 위치를 기반으로 도출될 수 있다. 또한, 상기 표 1의 나머지 신텍스 엘리먼트들에 대하여도 정해진 방법에 따라 이진화가 진행될 수 있다. 다른 일 예시에서, transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, coeff_sign_flag, mts_idx 등에 대하여는 고정 길이 이진화 과정(Fixed-length binarization process)에 따른 이진화가 수행될 수 있고, abs_remainder에 대하여는 그에 상응하는 이진화가 수행될 수 있다.
상기 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix는 현재 블록에 대한 변환 계수들 중 0이 아닌 마지막 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information)의 일 예시를 나타낼 수 있다. 보다 구체적으로, last_sig_coeff_x_prefix는 상기 라스트 유효 계수 프리픽스 정보 중 하나인 x축 프리픽스 정보의 일 예시를 나타낼 수 있고, last_sig_coeff_y_prefix는 상기 라스트 유효 계수 프리픽스 정보 중 하나인 y축 프리픽스 정보의 일 예시를 나타낼 수 있다. 상기 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix에 대한 이진화 과정에서, cRiceParam의 값은 0이 사용될 수 있다. 인코딩 장치는 상기 이진화 절차를 통하여 상기 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 각각에 대한 빈 스트링(bin string)을 도출할 수 있다. 상기 이진화 절차는 엔트로피 인코딩부(240) 내의 이진화부(242)에 의하여 수행될 수 있다.
일 실시예에 따르면, 고주파 제로잉이 적용되는지 여부를 기반으로 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 각각에 대한 cMax 값이 도출될 수 있다. cMax를 도출하기 위한 구체적인 수학식은 도 6에서 전술한 바 있다. 상기 cMax는 last_sig_coeff_x_prefix 또는 last_sig_coeff_y_prefix에 대한 이진화 과정에서 도출되는 코드워드(빈 스트링)의 최대 길이를 나타낼 수 있다. cMax의 값을 줄이는 경우, last_sig_coeff_x_prefix 또는 last_sig_coeff_y_prefix에 대한 코드워드의 길이를 효과적으로 줄일 수 있으며, 상기 코드워드를 줄임으로써 절감되는 부호화 빈(bin)이 컨텍스트 부호화 빈(context-coded bin)이므로 영상 코딩 처리량 (throughput) 면에서 이점을 가질 수 있다.
인코딩 장치는 상기 레지듀얼 코딩 관련 신텍스 요소들에 대한 엔트로피 인코딩을 수행할 수 있다(S910). 인코딩 장치는 상술한 고주파 제로잉이 적용되는 영역에 대하여는 변환 계수 스캔을 생략할 수 있고, 상기 고주파 제로잉이 적용되는 영역에 대하여는 coded_sub_block_flag를 인코딩하지 않을 수 있다. 즉, 인코딩 장치는 레지듀얼 코딩 신택스(또는 비트스트림)을 생성함에 있어서, 고주파 제로잉이 적용되는 영역에 위치하는 서브 블록에 대한 신택스 엘리먼트 coded_sub_block_flag를 포함하지 않을 수 있다. 인코딩 장치는 고주파 제로잉이 적용되지 않는 영역, 즉 좌상단 변환 계수 영역(또는 저주파 변환 계수 영역)에 대하여만 coded_sub_block_flag를 인코딩하여 레지듀얼 코딩 신택스(또는 비트스트림)에 포함시킬 수 있다. 이를 통해, 레지듀얼 코딩에 할당되는 비트수가 절감될 수 있다.
인코딩 장치는 CABAC (context-adaptive arithmetic coding) 또는 CAVLC (context-adaptive variable length coding) 등의 엔트로피 코딩 기법을 기반으로 상기 빈 스트링을 컨텍스트 기반 또는 바이패스 기반 인코딩할 수 있으며, 그 출력은 비트스트림에 포함될 수 있다. 상기 엔트로피 인코딩 절차는 엔트로피 인코딩부(240) 내의 엔트로피 인코딩 처리부(244)에 의하여 수행될 수 있다. 상기 비트스트림은 상술한 바와 같이 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix에 대한 정보를 포함하는 레지듀얼 정보 이외에도 예측 정보 등 영상/비디오 디코딩을 위한 다양한 정보를 포함할 수 있다. 상기 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코딩 장치로 전달될 수 있다.
도 10a 및 도 10b는 일 실시예에 따른 엔트로피 디코딩부의 구성 및 동작 방법을 설명하기 위한 도면이다.
도 10a 및 도 10b를 참조하면, 디코딩 장치(엔트로피 디코딩부)는 인코딩된 레지듀얼 정보를 디코딩하여 (양자화된) 변환 계수들을 도출할 수 있다. 디코딩 장치는 도 6에서 전술된 바와 같이 현재 블록(현재 코딩 블록(Coding Block) 또는 현재 변환 블록(Transform Block))에 대한 인코딩된 레지듀얼 정보를 디코딩하여 (양자화된) 변환 계수들을 도출할 수 있다. 예를 들어, 디코딩 장치는 상기 표 1에 기재된 바와 같은 레지듀얼 정보에 관한 다양한 신텍스 엘리먼트들을 디코딩하고, 관련 신텍스 엘리먼트들의 값을 해석하고, 해석된 신텍스 엘리먼트들의 값을 기반으로 상기 (양자화된) 변환 계수들을 도출할 수 있다. S1000 내지 S1010은 상술한 도 3의 (양자화된) 변환 계수들을 도출하는 절차에 포함될 수 있다.
디코딩 장치는 레지듀얼 관련 신텍스 엘리먼트들에 대한 이진화를 수행할 수 있다(S1000). 예를 들어, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix에 대하여 상기 도 6에서 전술된 실시예들에 기반한 이진화가 수행될 수 있다. 이때 cRiceParam의 값은 0이 사용될 수 있다. 상기 이진화 절차는 디코딩 장치는 상기 이진화 절차를 통하여 상기 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 각각의 가용 값들에 대한 가용 빈 스트링들을 도출할 수 있다. 상기 이진화 절차는 엔트로피 디코딩부(310) 내의 이진화부(312)에 의하여 수행될 수 있다. 일 실시예에 따르면, 고주파 제로잉이 적용되는지 여부를 기반으로 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 각각에 대한 cMax 값을 도출할 수 있다. cMax를 도출하기 위한 구체적인 수학식은 도 6에서 전술된 바 있다.
상기 cMax는 last_sig_coeff_x_prefix 또는 last_sig_coeff_y_prefix에 대한 이진화 과정에서 도출되는 코드워드(빈 스트링)의 최대 길이를 나타낼 수 있다. cMax의 값을 줄이는 경우 last_sig_coeff_x_prefix 또는 last_sig_coeff_y_prefix에 대한 코드워드의 길이를 효과적으로 줄일 수 있으며, 상기 코드워드를 줄임으로써 절감되는 부호화 빈(bin)이 컨텍스트 부호화 빈(context coded bin)이므로 영상 코딩 처리량 (throughput) 면에서 이점을 가질 수 있다.
한편, 상기 표 1의 나머지 신텍스 엘리먼트들에 대하여도 정해진 방법에 따라 이진화가 진행될 수 있다. 예를 들어, transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, coeff_sign_flag, mts_idx 등에 대하여는 고정 길이 이진화 과정(Fixed-length binarization process)에 따른 이진화가 수행될 수 있고, abs_remainder에 대하여는 그에 상응하는 이진화가 수행될 수 있다.
디코딩 장치는 상기 레지듀얼 코딩 관련 신텍스 엘리먼트들에 대한 엔트로피 디코딩을 수행할 수 있다(S1010). 디코딩 장치는 각 신택스 엘리먼트에 대한 각 빈들을 순차적으로 파싱 및 디코딩하면서, 도출된 빈 스트링을 상기 가용 빈 스트링들과 비교할 수 있다. 만약 도출된 빈 스트링이 상기 가용 빈 스트링들 중 하나와 같으면, 해당 빈 스트링에 대응하는 값이 해당 신택스 요소의의 값으로 도출될 수 있다. 만약 도출된 빈 스트링이 상기 가용 빈 스트링들 중 어느 하나와도 같지 않은 경우, 디코딩 장치는 상기 비트스트림 내 다음 비트를 더 파싱하고 디코딩한 후 상기 비교 절차를 수행할 수 있다. 이러한 과정을 통하여 비트스트림 내에 특정 정보(특정 신텍스 엘리먼트)에 대한 시작 비트나 끝 비트를 사용하지 않고도 가변 길이 비트를 이용하여 해당 정보를 시그널링할 수 있고, 이를 통하여 낮은 값에 대하여는 상대적으로 더 적은 비트를 할당함으로써 전반적인 코딩 효율을 높일 수 있다.
디코딩 장치는 고주파 제로잉이 적용되는 영역에 대하여는 변환 계수 스캔을 생략할 수 있고, 고주파 제로잉이 적용되는 영역에 대하여는 coded_sub_block_flag를 파싱 및/또는 디코딩하지 않고, 0으로 간주할 수 있다. 즉, 디코딩 장치는 고주파 제로잉이 적용되는 영역에 위치하는 서브 블록에 대하여는 스캔을 수행하지 않고도 마지막 유효 계수가 위치하지 않음을 추론할 수 있고, 고주파 제로잉이 적용되는 영역에 위치하는 서브 블록에 대한 신택스 엘리먼트 coded_sub_block_flag를 레지듀얼 코딩 신택스(또는 비트스트림)으로부터 파싱(parsing)하지 않을 수 있으며, 해당 신택스 엘리먼트 coded_sub_block_flag의 값을 0으로 추론할 수 있다.
또한, 디코딩 장치는 현재 블록에 대한 레지듀얼 정보(예를 들어, 레지듀얼 코딩 신택스) 내에서 파싱 및/또는 디코딩된 신택스 엘리먼트 coded_sub_block_flag가 고주파 제로잉이 적용되는 영역에 대한 것이 아님을 추론할 수 있고, 좌상단 변환 블록에 대한 레지듀얼 정보(예를 들어, 레지듀얼 신택스) 내에서 처음 파싱 및/또는 디코딩된 신택스 엘리먼트 coded_sub_block_flag는 스캔 순서를 기반으로 도출되는 첫 번째 서브 블록에 대한 것임을 추론할 수 있다.
디코딩 장치는 CABAC 또는 CAVLC 등의 엔트로피 코딩 기법을 기반으로 비트스트림으로부터 상기 빈 스트링 내 각 빈들을 컨텍스트 기반 또는 바이패스 기반으로 디코딩할 수 있다. 상기 엔트로피 디코딩 절차는 엔트로피 디코딩부(310) 내의 엔트로피 디코딩 처리부(314)에 의하여 수행될 수 있다. 디코딩 장치는 상기 last_sig_coeff_x_prefix의 값 및 last_sig_coeff_y_prefix의 값을 기반으로 마지막 유효 계수의 위치를 도출할 수 있다. 구체적인 계산은 예를 들어 아래의 표 14를 기반으로 수행될 수 있다.
표 14에서 LastSignificantCoeffX는 현재 (변환) 블록 내 0이 아닌 마지막 유효 계수의 x축 위치를 나타내고, LastSignificantCoeffY는 현재 (변환) 블록 내 0이 아닌 마지막 유효 계수의 y축 위치를 나타낼 수 있다.
상기 비트스트림은 상술한 바와 같이 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix에 대한 정보를 포함하는 레지듀얼 정보 이외에도 예측 정보 등 영상/비디오 디코딩을 위한 다양한 정보를 포함할 수 있다. 상기 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코딩 장치로 전달될 수 있음은 전술한 바와 같다.
디코딩 장치는 상기 (양자화된) 변환 계수들을 기반으로 역양자화 및/또는 역변환 절차를 수행하여 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 상기 레지듀얼 샘플들 및 인터/인트라 예측을 통하여 도출된 예측 샘플들을 기반으로 복원 샘플들이 생성될 수 있으며, 상기 복원 샘플들을 포함하는 복원 픽처가 생성될 수 있다.
또한, 본 문서는 상술한 고주파 제로잉이 수행되는 경우, 상술한 신텍스 엘리먼트들 last_sig_coeff_x_prefix와 last_sig_coeff_y_prefix의 문맥 모델을 결정하는 실시에를 제안한다. 구체적으로, 본 실시예는, 상기 고주파 제로잉에서 제로화(또는 제로아웃(zero-out))되는 영역을 고려하여 상기 last_sig_coeff_x_prefix와 last_sig_coeff_y_prefix의 컨텍스트 모델을 변환 블록의 가로크기 및 세로크기를 나타내는 log2TbWidth, log2TbHeight가 아닌, Min(log2TbWidth, 5), Min(log2TbHeight, 5)를 이용하여 컨텍스트 모델을 결정하는 방안을 제안한다. 여기서, Min(log2TbWidth, 5)은 log2TbWidth 와 5 중 작은 값을 나타낼 수 있고, Min(log2TbHeight, 5)은 log2TbHeight 와 5 중 작은 값을 나타낼 수 있다.
예를 들어, 본 실시예에 따르면 상기 last_sig_coeff_x_prefix와 last_sig_coeff_y_prefix 의 컨텍스트 모델은 다음의 표와 같이 도출될 수 있다.
상술한 표 15에 도시된 바와 같이 상기 컨텍스트 모델(context model)을 가리키는 컨텍스트 인덱스(ctxIdx)는 ctxInc를 기반으로 결정될 수 있다. 본 실시예에 따르면, Min(log2TbWidth, 5) 및/또는 Min(log2TbHeight, 5)을 기반으로 ctxInc가 결정될 수 있으며, 상기 결정된 ctxInc를 기반으로 컨텍스트 모델을 지시하는 컨텍스트 인덱스가 결정될 수 있다. 여기서, 상기 Min(log2TbWidth, 5) 는 상술한 저주파 변환 계수 영역의 폭(즉, 상기 제2 가로길이)을 나타낼 수 있고, 상기 Min(log2TbHeight, 5) 는 상술한 저주파 변환 계수 영역의 높이(즉, 상기 제2 세로길이)를 나타낼 수 있다. 예를 들어, 상기 현재 블록의 폭이 64인 경우, 상기 log2TbWidth 는 6으로 도출될 수 있고, 따라서 상기 Min(log2TbWidth, 5) 는 5 로 도출될 수 있는바, 상기 5는 도출된 폭이 32임을 나타낼 수 있다. 즉, 저주파 변환 계수 영역의 폭이 32로 도출됨을 나타낼 수 있다. 또한, 상기 현재 블록의 높이가 64인 경우, 상기 log2TbHeight 는 6으로 도출될 수 있고, 따라서 상기 Min(log2TbHeight, 5) 는 5 로 도출될 수 있는바, 상기 5는 도출된 높이가 32임을 나타낼 수 있다. 즉, 저주파 변환 계수 영역의 높이가 32로 도출됨을 나타낼 수 있다.
상술한 표 15를 참조하면, last_sig_coeff_x_prefix 가 파싱된 경우, 상기 last_sig_coeff_x_prefix 에 대하여 log2TbSize 는 Min(log2TbWidth, 5) 로 설정될 수 있고, 이후, cIdx 가 0 이면 ctxOffset 가 3 * ( log2TbSize - 2 ) + ( ( log2TbSize - 1 ) >> 2 ), ctxShift 가 ( log2TbSize + 1 ) >> 2 로 설정될 수 있고, cIdx 가 0 보다 크면 ctxOffset 는 21, ctxShift 는 Clip3( 0, 2, 2log2TbSize >> 3 ) 로 설정될 수 있다. 이후, 상기 last_sig_coeff_x_prefix 에 대한 ctxInc 는 ( binIdx >> ctxShift ) + ctxOffset 로 설정될 수 있다. 마찬가지로, last_sig_coeff_y_prefix 가 파싱된 경우, 상기 last_sig_coeff_y_prefix 에 대하여 log2TbSize 는 Min(log2TbHeight, 5) 로 설정될 수 있고, 이후, cIdx 가 0 이면 ctxOffset 가 3 * ( log2TbSize - 2 ) + ( ( log2TbSize - 1 ) >> 2 ), ctxShift 가 ( log2TbSize + 1 ) >> 2 로 설정될 수 있고, cIdx 가 0 보다 크면 ctxOffset 는 21, ctxShift 는 Clip3( 0, 2, 2log2TbSize >> 3 ) 로 설정될 수 있다. 이후, 상기 last_sig_coeff_y_prefix 에 대한 ctxInc 는 ( binIdx >> ctxShift ) + ctxOffset 로 설정될 수 있다.
다시 말해, 상기 last_sig_coeff_x_prefix 의 빈 스트링의 빈들과 상기 last_sig_coeff_y_prefix 의 빈 스트링의 빈들은 각 빈에 대한 컨텍스트 모델을 기반으로 컨텍스트 기반 코딩될 수 있으며, 이 경우, 상기 컨텍스트 모델은 상기 ctxInc를 기반으로 도출될 수 있다. 인코딩 장치는 신텍스 엘리먼트 last_sig_coeff_x_prefix 의 값을 도출하고, 이진화 과정을 통하여 상기 값에 대응하는 이진화 빈들을 도출할 수 있고, 상기 빈들 각각에 대한 컨텍스트 모델을 도출하여 상기 빈들을 인코딩할 수 있다. 또한 인코딩 장치는 신텍스 엘리먼트 last_sig_coeff_y_prefix 의 값을 도출하고, 이진화 과정을 통하여 상기 값에 대응하는 이진화 빈들을 도출할 수 있고, 상기 빈들 각각에 대한 컨텍스트 모델을 도출하여 상기 빈들을 인코딩할 수 있다. 이 경우, 상기 컨텍스트 모델을 기반한 산술 코딩(arithmetic coding)에 따라 상기 값에 대응하는 이진화 빈들의 길이와 같거나 더 짧은 길이의 비트열이 출력될 수 있다. 디코딩 장치는 상기 신텍스 엘리먼트 last_sig_coeff_x_prefix 에 대한 이진화 과정을 통하여 후보 빈 스트링들을 도출할 수 있고, 비트스트림으로부터 상기 신텍스 엘리먼트 last_sig_coeff_x_prefix 에 대한 비트들을 순차적으로 파싱하면서 상기 신텍스 엘리먼트 last_sig_coeff_x_prefix 에 대한 빈들을 디코딩할 수 있다. 여기서, 디코딩 장치는 상기 빈들 각각에 대한 컨텍스트 모델을 도출하여 상기 빈들을 디코딩할 수 있다. 이후, 디코딩 장치는 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하는지 판단할 수 있고, 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하는 경우, 대응하는 빈 스트링이 가리키는 값을 상기 last_sig_coeff_x_prefix 신텍스 요소의 값으로 도출할 수 있다. 또한, 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하지 않는 경우, 디코딩 장치는 상기 신텍스 엘리먼트 last_sig_coeff_x_prefix 에 대한 비트를 추가적으로 파싱하면서 상술한 절차를 반복할 수 있다. 또한, 디코딩 장치는 상기 신텍스 엘리먼트 last_sig_coeff_y_prefix 에 대한 이진화 과정을 통하여 후보 빈 스트링들을 도출할 수 있고, 비트스트림으로부터 상기 신텍스 엘리먼트 last_sig_coeff_y_prefix 에 대한 비트들을 순차적으로 파싱하면서 상기 신텍스 엘리먼트 last_sig_coeff_y_prefix 에 대한 빈들을 디코딩할 수 있다. 여기서, 디코딩 장치는 상기 빈들 각각에 대한 컨텍스트 모델을 도출하여 상기 빈들을 디코딩할 수 있다. 이후, 디코딩 장치는 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하는지 판단할 수 있고, 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하는 경우, 대응하는 빈 스트링이 가리키는 값을 상기 last_sig_coeff_y_prefix 신텍스 요소의 값으로 도출할 수 있다. 또한, 상기 디코딩된 빈들이 상기 후보 빈 스트링들 중 하나에 대응하지 않는 경우, 디코딩 장치는 상기 신텍스 엘리먼트 last_sig_coeff_y_prefix 에 대한 비트를 추가적으로 파싱하면서 상술한 절차를 반복할 수 있다.
상술한 바와 같이 본 문서의 본 실시예에 따르면 마지막 논-제로(non-zero) 변환 계수의 위치를 나타내는 위치 정보, 즉, 마지막 유효 계수 위치 정보(상기 신텍스 엘리먼트 last_sig_coeff_x_prefix 및 상기 신텍스 엘리먼트 last_sig_coeff_y_prefix)를 코딩함에 있어서, Min(log2TbWidth, 5) 및/또는 Min(log2TbHeight, 5)을 기반으로 ctxInc 및/또는 ctxIdx를 다르게 정할 수 있으며, 이 경우 추가적인 정보의 시그널링 없이도 동일 빈 인덱스의 빈에 대하여 다른 컨텍스트 모델이 적응적으로 적용될 수 있다.
상술한 실시예가 적용되어 도출된 레지듀얼 정보의 신텍스 엘리먼트들은 다음의 표들과 같이 나타낼 수 있다.
또한, 상술한 실시예가 적용된 신텍스 엘리먼트들에 대한 시맨틱(semantics)은 다음의 표와 같이 나타낼 수 있다.
도 11은 본 문서에 따른 인코딩 장치에 의한 영상 인코딩 방법을 개략적으로 나타낸다. 도 11에서 개시된 방법은 도 2에서 개시된 인코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 11의 S1100은 상기 인코딩 장치의 감산부에 의하여 수행될 수 있고, S1110은 상기 인코딩 장치의 변환부 및 양자화부에 의하여 수행될 수 있고, S1120은 상기 인코딩 장치의 엔트로피 인코딩부에 의하여 수행될 수 있다. 또한, 비록 도시되지는 않았으나 예측 샘플을 도출하는 과정은 상기 인코딩 장치의 예측부에 의하여 수행될 수 있고, 상기 현재 블록에 대한 레지듀얼 샘플들과 예측 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 도출하는 과정은 상기 인코딩 장치의 가산부에 의하여 수행될 수 있고, 상기 현재 블록에 대한 예측 정보를 인코딩하는 과정은 상기 인코딩 장치의 엔트로피 인코딩부에 의하여 수행될 수 있다.
인코딩 장치는 현재 블록에 대한 레지듀얼 샘플들을 도출한다(S1100). 인코딩 장치는 현재 블록에 인터 예측을 수행할지 또는 인트라 예측을 수행할지 여부를 결정할 수 있고, 구체적인 인터 예측 모드 또는 구체적인 인트라 예측 모드를 RD 코스트 기반으로 결정할 수 있다. 결정된 모드에 따라 인코딩 장치는 상기 현재 블록에 대한 예측 샘플들을 도출할 수 있고, 상기 현재 블록에 대한 원본 샘플들과 상기 예측 샘플들의 감산을 통하여 상기 레지듀얼 샘플들을 도출할 수 있다.
인코딩 장치는 상기 레지듀얼 샘플들을 기반으로 상기 현재 블록의 변환 계수들을 도출한다(S1110). 인코딩 장치는 상기 현재 블록의 상기 레지듀얼 샘플들을 기반으로 상기 변환 계수들을 도출할 수 있다.
예를 들어, 인코딩 장치는 상기 레지듀얼 샘플들에 대하여 변환이 적용되는지 여부를 결정할 수 있다. 상기 레지듀얼 샘플들에 대하여 변환이 적용되지 않는 경우, 인코딩 장치는 상기 도출된 레지듀얼 샘플들을 상기 변환 계수들로 도출할 수 있다. 또한, 상기 레지듀얼 샘플들에 대하여 변환이 적용되는 경우, 인코딩 장치는 상기 도출된 레지듀얼 샘플들에 대한 변환을 수행하여 상기 변환 계수들을 도출할 수 있다. 상기 변환 계수들은 상기 현재 블록의 서브 블록에 포함될 수 있다. 상기 서브 블록은 CG (coefficient croup) 라고 불릴 수 있다. 또한, 상기 현재 블록의 서브 블록의 사이즈는 4x4 사이즈 또는 2x2 사이즈일 수 있다. 즉, 상기 현재 블록의 상기 서브 블록은 최대 16개의 논-제로(non-zero) 변환 계수들 또는 최대 4개의 논-제로 변환 계수들을 포함할 수 있다.
한편, 예를 들어, 상기 현재 블록은 저주파 변환 계수 영역 및 고주파 변환 계수 영역을 포함할 수 있다. 상기 고주파 변환 계수 영역은 변환 계수 0으로 구성되는 영역을 나타낼 수 있고, 상기 저주파 변환 계수 영역은 적어도 하나의 유효 변환 계수(즉, 논제로(non-zero) 변환 계수)를 포함하는 영역을 나타낼 수 있다. 예를 들어, 인코딩 장치는 상기 저주파 변환 영역에서 변환 계수 스캐닝을 수행하여 상기 저주파 변환 영역에 관련한 변환 계수들을 도출할 수 있고, 상기 고주파 변환 영역에서는 변환 계수 스캐닝을 수행하지 않고, 상기 고주파 변환 계수 영역과 관련된 변환 계수들을 변환 계수 레벨이 0인 변환 계수들로 도출할 수 있다. 즉, 상기 현재 블록에 대한 변환 계수들 중 상기 저주파 변환 계수 영역과 관련된 변환 계수들에 대해서 변환 계수 스캐닝(transform coefficient scanning)이 수행될 수 있다. 또한, 예를 들어, 상기 고주파 변환 계수 영역과 관련된 변환 계수들에 대해서는 상기 변환 계수 스캐닝이 수행되지 않을 수 있다.
한편, 일 실시예에서, 인코딩 장치는 상기 현재 블록의 사이즈를 기반으로 상기 저주파 변환 계수 영역을 도출할 수 있다. 상기 고주파 변환 계수 영역은 상기 현재 블록에서 상기 저주파 변환 계수 영역을 제외한 영역으로 도출될 수 있다.
예를 들어, 상기 저주파 변환 계수 영역의 폭 또는 상기 저주파 변환 계수 영역의 높이는 32 이하일 수 있다. 일 예로, 상기 현재 블록의 폭이 32 미만인 경우, 상기 저주파 변환 계수 영역의 상기 폭은 상기 현재 블록의 상기 폭과 동일한 것으로 결정될 수 있다. 즉, 상기 현재 블록의 폭이 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 상기 현재 블록의 상기 폭과 동일한 것으로 결정될 수 있다. 또한, 상기 현재 블록의 높이가 32 미만인 경우, 상기 저주파 변환 계수 영역의 상기 높이는 상기 현재 블록의 상기 높이와 동일한 것으로 결정될 수 있다. 즉, 상기 현재 블록의 높이가 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 상기 현재 블록의 상기 높이와 동일한 것으로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 폭이 32 이상인 경우, 상기 저주파 변환 계수 영역의 상기 폭은 32로 결정될 수 있다. 즉, 상기 현재 블록의 상기 폭이 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 32로 결정될 수 있다. 또한, 상기 현재 블록의 높이가 32 이상인 경우, 상기 저주파 변환 계수 영역의 상기 높이는 32로 결정될 수 있다. 즉, 상기 현재 블록의 상기 높이가 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 32로 결정될 수 있다.
일 실시예에서, 상기 저주파 변환 계수 영역의 상기 폭 및 상기 저주파 변환 계수 영역의 상기 높이는 후술하는 수학식 16을 기반으로 결정될 수 있다.
한편, 인코딩 장치는 상기 현재 블록의 변환 계수들의 변환 적용 여부를 나타내는 변환 스킵 플래그를 생성 및 인코딩할 수 있다. 비트스트림은 상기 현재 블록에 대한 변환 스킵 플래그를 포함할 수 있다. 상기 변환 스킵 플래그는 상기 현재 블록의 변환 계수들의 변환 적용 여부를 나타낼 수 있다. 즉, 상기 변환 스킵 플래그는 상기 변환 계수들에 변환이 적용되었는지 여부를 나타낼 수 있다. 상기 변환 스킵 플래그를 나타내는 신텍스 엘리먼트는 상술한 transform_skip_flag 일 수 있다.
인코딩 장치는 상기 변환 계수들에 대한 신텍스 엘리먼트들을 포함하는 상기 현재 블록에 대한 레지듀얼 정보를 인코딩한다(S1120). 인코딩 장치는 상기 변환 계수들에 대한 신텍스 엘리먼트들을 포함하는 상기 현재 블록에 대한 레지듀얼 정보를 생성 및 인코딩할 수 있다.
예를 들어, 상기 레지듀얼 정보는 상기 현재 블록에 대한 신텍스 엘리먼트들을 포함할 수 있다. 여기서, 상기 신텍스 엘리먼트들은 컨텍스트 모델을 기반으로 코딩된 신텍스 엘리먼트들과 바이패스 코딩된 신텍스 엘리먼트(즉, 균일한 확률 분포를 기반으로 코딩된 신텍스 엘리먼트)를 포함할 수 있다.
예를 들어, 상기 레지듀얼 정보는 transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level 및/또는 mts_idx 등의 신텍스 엘리먼트들(syntax elements)을 포함할 수 있다.
구체적으로, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록에 대한 변환 스킵 플래그를 포함할 수 있다. 상기 변환 스킵 플래그는 상기 현재 블록의 변환 계수들의 변환 적용 여부를 나타낼 수 있다. 즉, 상기 변환 스킵 플래그는 상기 변환 계수들에 변환이 적용되었는지 여부를 나타낼 수 있다. 상기 변환 스킵 플래그를 나타내는 신텍스 엘리먼트는 상술한 transform_skip_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 변환 계수 배열(array)에서 마지막 논-제로(non-zero) 변환 계수의 위치를 나타내는 라스트 유효 계수 위치 정보를 포함할 수 있다. 즉, 예를 들어, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 0이 아닌 마지막 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 및/또는 라스트 유효 계수 서픽스 정보(last significant coefficient suffix information)를 포함할 수 있다. 상기 라스트 유효 계수 프리픽스 정보는 x축 프리픽스 정보 및 y축 프리픽스 정보를 포함할 수 있다. 상기 x축 프리픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_x_prefix 일 수 있고, 상기 y축 프리픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_y_prefix 일 수 있다. 또한, 상기 라스트 유효 계수 서픽스 정보는 x축 서픽스 정보 및 y축 서픽스 정보를 포함할 수 있다. 상기 x축 서픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_x_suffix 일 수 있고, 상기 y축 서픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_y_suffix 일 수 있다. 한편, 논-제로 변환 계수는 유효 계수(significant coefficient)라고 불릴 수도 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록 내 서브 블록에 대한 변환 계수들의 변환 계수 레벨이 모두 0인지 여부를 나타내는 코디드 서브 블록 플래그(coded subblock flag)를 포함할 수 있고, 상기 서브 블록은 저주파 변환 계수 영역과 관련될 수 있다. 즉, 상기 서브 블록은 저주파 변환 계수 영역에 포함될 수 있다. 상기 코디드 서브 블록 플래그는 상술한 coded_sub_block_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 서브 블록 내 변환 계수에 대한 컨텍스트 기반으로 코딩된 신텍스 엘리먼트들을 포함할 수 있다. 상기 신텍스 엘리먼트들은 상기 변환 계수가 논-제로(non-zero) 변환 계수인지 여부를 나타내는 유효 계수 플래그, 상기 변환 계수에 대한 변환 계수 레벨의 패리티(parity)에 대한 패리티 레벨 플래그, 상기 변환 계수 레벨이 제1 임계치보다 큰지 여부에 대한 제1 변환 계수 레벨 플래그 및 상기 변환 계수의 상기 변환 계수 레벨이 제2 임계치보다 큰지 여부에 대한 제2 변환 계수 레벨 플래그를 포함할 수 있다. 여기서, 상기 유효 계수 플래그는 sig_coeff_flag 일 수 있고, 상기 패리티 레벨 플래그는 par_level_flag 일 수 있고, 상기 제1 변환 계수 레벨 플래그는 abs_level_gt1_flag 일 수 있고, 상기 제2 변환 계수 레벨 플래그는 abs_level_gt3_flag 또는 abs_level_gtx_flag 일 수 있다.
또는, 예를 들어, 상기 신텍스 엘리먼트들은 상기 변환 계수가 논-제로(non-zero) 변환 계수인지 여부를 나타내는 유효 계수 플래그, 상기 변환 계수의 부호를 나타내는 사인(sign) 플래그, 상기 변환 계수 레벨이 제1 임계치보다 큰지 여부에 대한 제1 변환 계수 레벨 플래그 및 상기 변환 계수에 대한 변환 계수 레벨의 패리티(parity)에 대한 패리티 레벨 플래그를 포함할 수 있다. 여기서, 상기 유효 계수 플래그는 sig_coeff_flag 일 수 있고, 상기 사인 플래그는 coeff_sign_flag 일 수 있고, 상기 제1 변환 계수 레벨 플래그는 abs_level_gt1_flag 일 수 있고, 상기 패리티 레벨 플래그는 par_level_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 상기 서브 블록 내 변환 계수에 대한 바이패스 기반으로 코딩된 신텍스 엘리먼트를 포함할 수 있다. 상기 신텍스 엘리먼트는 상기 변환 계수의 값에 대한 계수값 관련 정보를 포함할 수 있다. 상기 계수값 관련 정보는 abs_remainder 및/또는 dec_abs_level일 수 있다.
예를 들어, 인코딩 장치는 컨텍스트 기반으로 코딩된 신텍스 엘리먼트에 대한 컨텍스트 모델을 도출할 수 있고, 상기 도출된 컨텍스트 모델을 기반으로 신텍스 엘리먼트를 인코딩할 수 있다.
일 예로, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함할 수 있다. 여기서, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출될 수 있다. 구체적으로, 상기 유효 계수 프리픽스 정보는 상기 x축 프리픽스 정보 및 상기 y축 프리픽스 정보를 포함할 수 있고, 상기 x축 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 폭을 기반으로 도출될 수 있고, 상기 y축 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이를 기반으로 도출될 수 있다.
또한, 일 예로, 상기 마지막 유효 변환 계수의 상기 위치는 상기 라스트 유효 계수 프리픽스 정보를 나타내는 프리픽스 코드워드 및 상기 라스트 유효 계수 서픽스 정보에 기반하여 결정될 수 있고, 상기 프리픽스 코드워드의 최대 길이(maximum lenghth)는 상기 저주파 변환 계수 영역의 사이즈에 기반하여 결정될 수 있다. 상기 라스트 유효 계수 프리픽스 정보는 x축 프리픽스 정보 및 y축 프리픽스 정보를 포함할 수 있고, 상기 프리픽스 코드워드는 상기 x축 프리픽스 정보에 대한 코드워드 또는 상기 y축 프리픽스 정보에 대한 코드워드일 수 있다.
예를 들어, 상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 x축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정될 수 있다. 또한, 예를 들어, 상기 저주파 변환 계수 영역의 상기 높이가 32이라는 결정에 기반하여, 상기 y축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 폭이 32보다 크고, 상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값(maximum binarized value)은 111111111로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 높이가 32보다 크고, 상기 저주파 변환 계수 영역의 상기 높이가 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 y축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값은 111111111로 결정될 수 있다. 또한, 예를 들어, 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 길이는 상술한 수학식 14를 기반으로 결정될 수 있다. 또한, 예를 들어, 상기 저주파 변환 계수 영역의 폭은 32이고, 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 길이는 상술한 수학식 15를 기반으로 결정될 수 있다. 일 실시예에서, 상기 프리픽스 코드워드는 트런케이티드 라이스 이진화 과정(truncated rice binarization process)에 기반한 트런케이티드 라이스 코드(truncated rice code)일 수 있다.
또한, 예를 들어, 인코딩 장치는 바이패스 기반으로 코딩된 신텍스 엘리먼트에 대하여 바이패스 기반으로 인코딩할 수 있다. 즉, 인코딩 장치는 상기 바이패스 기반으로 코딩된 신텍스 엘리먼트를 균일한 확률 분포를 기반으로 인코딩할 수 있다. 상기 바이패스 기반으로 코딩된 신텍스 엘리먼트는 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 서픽스 정보(last significant coefficient suffix information) 를 포함할 수 있다. 상기 유효 계수 서픽스 정보는 상기 x축 서픽스 정보 및 상기 y축 서픽스 정보를 포함할 수 있다.
한편, 인코딩 장치는 상기 레지듀얼 정보를 포함하는 비트스트림을 생성 및 출력할 수 있다.
또한, 상기 비트스트림은 상기 현재 블록에 대한 예측 정보를 포함할 수 있다. 상기 예측 정보는 상기 현재 블록에 수행되는 인터 예측 모드 또는 인트라 예측 모드에 대한 정보를 포함할 수 있다. 인코딩 장치는 상기 현재 블록에 대한 예측 정보를 생성 및 인코딩할 수 있다.
한편, 상기 비트스트림은 네트워크 또는 (디지털) 저장매체를 통하여 디코딩 장치로 전송될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다.
도 12는 본 문서에 따른 영상 인코딩 방법을 수행하는 인코딩 장치를 개략적으로 나타낸다. 도 11에서 개시된 방법은 도 12에서 개시된 인코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 12의 상기 인코딩 장치의 감산부는 도 11의 S1100을 수행할 수 있고, 도 12의 상기 인코딩 장치의 변환부 및 양자화부는 도 11의 S1110을 수행할 수 있고, 도 12의 상기 인코딩 장치의 엔트로피 인코딩부는 도 11의 S1120을 수행할 수 있다. 또한, 비록 도시되지는 않았으나 예측 샘플을 도출하는 과정은 상기 인코딩 장치의 예측부에 의하여 수행될 수 있고, 상기 현재 블록에 대한 레지듀얼 샘플들과 예측 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 도출하는 과정은 상기 인코딩 장치의 가산부에 의하여 수행될 수 있고, 상기 현재 블록에 대한 예측 정보를 인코딩하는 과정은 상기 인코딩 장치의 엔트로피 인코딩부에 의하여 수행될 수 있다.
도 13은 본 문서에 따른 디코딩 장치에 의한 영상 디코딩 방법을 개략적으로 나타낸다. 도 13에서 개시된 방법은 도 3에서 개시된 디코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 13의 S1300 내지 S1310은 상기 디코딩 장치의 엔트로피 디코딩부에 의하여 수행될 수 있고, S1320 내지 S1330은 상기 디코딩 장치의 역양자화부 및 역변환부에 의하여 수행될 수 있고, S1340은 상기 디코딩 장치의 가산부에 의하여 수행될 수 있다. 또한, 비록 도시되지는 않았으나 예측 샘플을 도출하는 과정은 상기 디코딩 장치의 예측부에 의하여 수행될 수 있다.
디코딩 장치는 현재 블록의 레지듀얼 정보를 포함하는 비트스트림을 수신한다(S1300). 디코딩 장치는 비트스트림을 통하여 상기 현재 블록에 대한 레지듀얼 정보를 포함하는 영상 정보를 수신할 수 있다. 여기서, 상기 현재 블록은 코딩 블록(Coding Block, CB) 또는 변환 블록(Transform Block, TB)일 수 있다.
또한, 예를 들어, 상기 현재 블록은 고주파 변환 계수 영역 및 저주파 변환 계수 영역을 포함할 수 있다. 상기 고주파 변환 계수 영역은 변환 계수 0으로 구성되는 영역을 나타낼 수 있고, 상기 저주파 변환 계수 영역은 적어도 하나의 유효 변환 계수(즉, 논제로(non-zero) 변환 계수)를 포함하는 영역을 나타낼 수 있다. 상기 저주파 변환 계수 영역은 상술한 내용과 같이 상기 현재 블록의 사이즈를 기반으로 결정될 수 있고, 상기 고주파 변환 계수 영역은 상기 현재 블록에서 상기 저주파 변환 계수 영역을 제외한 영역으로 결정될 수 있다. 한편, 상기 변환 계수 0은 변환 계수 레벨이 0 인 변환 계수를 나타낼 수 있다. 즉, 상기 변환 계수 0은 값이 0인 변환 계수를 나타낼 수 있다.
일 실시예에서, 상기 저주파 변환 계수 영역의 폭 또는 상기 저주파 변환 계수 영역의 높이는 32 이하일 수 있다. 예를 들어, 상기 현재 블록의 폭이 32 미만인 경우, 상기 저주파 변환 계수 영역의 상기 폭은 상기 현재 블록의 상기 폭과 동일한 것으로 결정될 수 있다. 즉, 상기 현재 블록의 폭이 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 상기 현재 블록의 상기 폭과 동일한 것으로 결정될 수 있다. 또한, 상기 현재 블록의 높이가 32 미만인 경우, 상기 저주파 변환 계수 영역의 상기 높이는 상기 현재 블록의 상기 높이와 동일한 것으로 결정될 수 있다. 즉, 상기 현재 블록의 높이가 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 상기 현재 블록의 상기 높이와 동일한 것으로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 폭이 32 이상인 경우, 상기 저주파 변환 계수 영역의 상기 폭은 32로 결정될 수 있다. 즉, 상기 현재 블록의 상기 폭이 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 32로 결정될 수 있다. 또한, 상기 현재 블록의 높이가 32 이상인 경우, 상기 저주파 변환 계수 영역의 상기 높이는 32로 결정될 수 있다. 즉, 상기 현재 블록의 상기 높이가 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 32로 결정될 수 있다.
일 실시예에서, 상기 저주파 변환 계수 영역의 상기 폭 및 상기 저주파 변환 계수 영역의 상기 높이는 아래의 수학식 16을 기반으로 결정될 수 있다.
상기 수학식 16에서 상기 ZoTbWidth는 상기 저주파 변환 계수 영역의 상기 폭을 나타내고, 상기 ZoTbHeight는 상기 저주파 변환 계수 영역의 상기 높이를 나타내고, 상기 TbWidth는 상기 현재 블록의 폭을 나타내고, 상기 TbHeight는 상기 현재 블록의 높이를 나타낼 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록에 대한 신텍스 엘리먼트들을 포함할 수 있다. 여기서, 상기 신텍스 엘리먼트들은 컨텍스트 모델을 기반으로 코딩된 신텍스 엘리먼트들과 바이패스 코딩된 신텍스 엘리먼트(즉, 균일한 확률 분포를 기반으로 코딩된 신텍스 엘리먼트)를 포함할 수 있다.
예를 들어, 상기 레지듀얼 정보는 transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gt1_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, dec_abs_level 및/또는 mts_idx 등의 신텍스 엘리먼트들(syntax elements)을 포함할 수 있다.
구체적으로, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록에 대한 변환 스킵 플래그를 포함할 수 있다. 상기 변환 스킵 플래그는 상기 현재 블록의 변환 계수들의 변환 적용 여부를 나타낼 수 있다. 즉, 상기 변환 스킵 플래그는 상기 변환 계수들에 변환이 적용되었는지 여부를 나타낼 수 있다. 상기 변환 스킵 플래그를 나타내는 신텍스 엘리먼트는 상술한 transform_skip_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 변환 계수 배열(array)에서 마지막 논-제로(non-zero) 변환 계수의 위치를 나타내는 라스트 유효 계수 위치 정보를 포함할 수 있다. 즉, 예를 들어, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 0이 아닌 마지막 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 및/또는 라스트 유효 계수 서픽스 정보(last significant coefficient suffix information)를 포함할 수 있다. 상기 라스트 유효 계수 프리픽스 정보는 x축 프리픽스 정보 및 y축 프리픽스 정보를 포함할 수 있다. 상기 x축 프리픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_x_prefix 일 수 있고, 상기 y축 프리픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_y_prefix 일 수 있다. 또한, 상기 라스트 유효 계수 서픽스 정보는 x축 서픽스 정보 및 y축 서픽스 정보를 포함할 수 있다. 상기 x축 서픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_x_suffix 일 수 있고, 상기 y축 서픽스 정보를 나타내는 신텍스 엘리먼트는 상술한 last_sig_coeff_y_suffix 일 수 있다. 한편, 논-제로 변환 계수는 유효 계수(significant coefficient)라고 불릴 수도 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록 내 서브 블록에 대한 변환 계수들의 변환 계수 레벨이 모두 0인지 여부를 나타내는 코디드 서브 블록 플래그(coded subblock flag)를 포함할 수 있고, 상기 서브 블록은 저주파 변환 계수 영역과 관련될 수 있다. 즉, 상기 서브 블록은 저주파 변환 계수 영역에 포함될 수 있다. 상기 코디드 서브 블록 플래그는 상술한 coded_sub_block_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 서브 블록 내 변환 계수에 대한 컨텍스트 기반으로 코딩된 신텍스 엘리먼트들을 포함할 수 있다. 상기 신텍스 엘리먼트들은 상기 변환 계수가 논-제로(non-zero) 변환 계수인지 여부를 나타내는 유효 계수 플래그, 상기 변환 계수에 대한 변환 계수 레벨의 패리티(parity)에 대한 패리티 레벨 플래그, 상기 변환 계수 레벨이 제1 임계치보다 큰지 여부에 대한 제1 변환 계수 레벨 플래그 및 상기 변환 계수의 상기 변환 계수 레벨이 제2 임계치보다 큰지 여부에 대한 제2 변환 계수 레벨 플래그를 포함할 수 있다. 여기서, 상기 유효 계수 플래그는 sig_coeff_flag 일 수 있고, 상기 패리티 레벨 플래그는 par_level_flag 일 수 있고, 상기 제1 변환 계수 레벨 플래그는 abs_level_gt1_flag 일 수 있고, 상기 제2 변환 계수 레벨 플래그는 abs_level_gt3_flag 또는 abs_level_gtx_flag 일 수 있다.
또는, 예를 들어, 상기 신텍스 엘리먼트들은 상기 변환 계수가 논-제로(non-zero) 변환 계수인지 여부를 나타내는 유효 계수 플래그, 상기 변환 계수의 부호를 나타내는 사인(sign) 플래그, 상기 변환 계수 레벨이 제1 임계치보다 큰지 여부에 대한 제1 변환 계수 레벨 플래그 및 상기 변환 계수에 대한 변환 계수 레벨의 패리티(parity)에 대한 패리티 레벨 플래그를 포함할 수 있다. 여기서, 상기 유효 계수 플래그는 sig_coeff_flag 일 수 있고, 상기 사인 플래그는 coeff_sign_flag 일 수 있고, 상기 제1 변환 계수 레벨 플래그는 abs_level_gt1_flag 일 수 있고, 상기 패리티 레벨 플래그는 par_level_flag 일 수 있다.
또한, 예를 들어, 상기 레지듀얼 정보는 상기 현재 블록의 상기 서브 블록 내 변환 계수에 대한 바이패스 기반으로 코딩된 신텍스 엘리먼트를 포함할 수 있다. 상기 신텍스 엘리먼트는 상기 변환 계수의 값에 대한 계수값 관련 정보를 포함할 수 있다. 상기 계수값 관련 정보는 abs_remainder 및/또는 dec_abs_level일 수 있다.
한편, 상기 비트스트림은 상기 현재 블록에 대한 예측 정보를 포함할 수 있다. 상기 예측 정보는 상기 현재 블록에 수행되는 인터 예측 모드 또는 인트라 예측 모드에 대한 정보를 포함할 수 있다. 디코딩 장치는 상기 비트스트림을 통하여 수신된 상기 예측 정보를 기반으로 상기 현재 블록에 대한 인터 예측 또는 인트라 예측을 수행할 수 있고 상기 현재 블록의 예측 샘플들을 도출할 수 있다.
디코딩 장치는 상기 레지듀얼 정보에 포함된 상기 현재 블록에 대한 신텍스 엘리먼트들을 디코딩한다(S1310).
예를 들어, 디코딩 장치는 컨텍스트 기반으로 코딩된 신텍스 엘리먼트에 대한 컨텍스트 모델을 도출할 수 있고, 상기 도출된 컨텍스트 모델을 기반으로 신텍스 엘리먼트를 디코딩할 수 있다.
일 예로, 상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함할 수 있다. 여기서, 상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출될 수 있다. 구체적으로, 상기 유효 계수 프리픽스 정보는 상기 x축 프리픽스 정보 및 상기 y축 프리픽스 정보를 포함할 수 있고, 상기 x축 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 폭을 기반으로 도출될 수 있고, 상기 y축 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이를 기반으로 도출될 수 있다.
또한, 일 예로, 상기 마지막 유효 변환 계수의 상기 위치는 상기 라스트 유효 계수 프리픽스 정보를 나타내는 프리픽스 코드워드 및 상기 라스트 유효 계수 서픽스 정보에 기반하여 결정될 수 있고, 상기 프리픽스 코드워드의 최대 길이(maximum lenghth)는 상기 저주파 변환 계수 영역의 사이즈에 기반하여 결정될 수 있다. 상기 라스트 유효 계수 프리픽스 정보는 x축 프리픽스 정보 및 y축 프리픽스 정보를 포함할 수 있고, 상기 프리픽스 코드워드는 상기 x축 프리픽스 정보에 대한 코드워드 또는 상기 y축 프리픽스 정보에 대한 코드워드일 수 있다.
예를 들어, 상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 x축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정될 수 있다. 또한, 예를 들어, 상기 저주파 변환 계수 영역의 상기 높이가 32이라는 결정에 기반하여, 상기 y축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 폭이 32보다 크고, 상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값(maximum binarized value)은 111111111로 결정될 수 있다. 또한, 예를 들어, 상기 현재 블록의 높이가 32보다 크고, 상기 저주파 변환 계수 영역의 상기 높이가 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 y축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값은 111111111로 결정될 수 있다. 또한, 예를 들어, 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 길이는 상술한 수학식 14를 기반으로 결정될 수 있다. 또한, 예를 들어, 상기 저주파 변환 계수 영역의 폭은 32이고, 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 길이는 상술한 수학식 15를 기반으로 결정될 수 있다. 일 실시예에서, 상기 프리픽스 코드워드는 트런케이티드 라이스 이진화 과정(truncated rice binarization process)에 기반한 트런케이티드 라이스 코드(truncated rice code)일 수 있다.
또한, 예를 들어, 디코딩 장치는 바이패스 기반으로 코딩된 신텍스 엘리먼트에 대하여 바이패스 기반으로 디코딩할 수 있다. 즉, 디코딩 장치는 상기 바이패스 기반으로 코딩된 신텍스 엘리먼트를 균일한 확률 분포를 기반으로 디코딩할 수 있다. 상기 바이패스 기반으로 코딩된 신텍스 엘리먼트는 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 서픽스 정보(last significant coefficient suffix information) 를 포함할 수 있다. 상기 유효 계수 서픽스 정보는 상기 x축 서픽스 정보 및 상기 y축 서픽스 정보를 포함할 수 있다.
디코딩 장치는 상기 디코딩된 신텍스 엘리먼트들을 기반으로 상기 현재 블록에 대한 변환 계수들을 도출한다(S1320). 디코딩 장치는 상기 변환 계수의 변환 계수 레벨에 대한 디코딩된 신텍스 엘리먼트들의 값들을 기반으로 상기 변환 계수의 변환 계수 레벨(즉, 값 또는 크기)을 도출할 수 있다. 상기 변환 계수 레벨에 대한 신텍스 엘리먼트들은 상기 유효 계수 플래그, 상기 패리티 레벨 플래그, 상기 제1 변환 계수 레벨 플래그, 상기 제2 변환 계수 레벨 플래그 및/또는 상기 계수값 관련 정보를 포함할 수 있다. 또한, 상기 레지듀얼 정보는 상기 변환 계수의 부호(sign)를 나타내는 사인 플래그를 포함할 수 있다. 디코딩 장치는 상기 사인 플래그를 기반으로 상기 변환 계수의 부호를 도출할 수 있다. 상기 사인 플래그를 나타내는 신텍스 엘리먼트는 coeff_sign_flag 일 수 있다. 예를 들어, 디코딩 장치는 상기 변환 계수의 변환 계수 레벨 및 상기 부호를 기반으로 상기 변환 계수를 도출할 수 있다.
한편, 디코딩 장치는 변환 계수 스캐닝을 수행하여 상기 변환 계수들을 도출할 수 있다. 즉, 스캐닝 순서에 따라 변환 계수가 도출될 수 있다. 여기서, 예를 들어, 상기 현재 블록에 대한 변환 계수들 중 상기 저주파 변환 계수 영역과 관련된 변환 계수들에 대해서 변환 계수 스캐닝(transform coefficient scanning)이 수행될 수 있다. 또한, 예를 들어, 상기 고주파 변환 계수 영역과 관련된 변환 계수들에 대해서는 상기 변환 계수 스캐닝이 수행되지 않을 수 있다. 즉, 상기 고주파 변환 계수 영역과 관련된 변환 계수들에 대해서는 상기 변환 계수 스캐닝이 수행되지 않고, 변환 계수 레벨이 0인 것으로 결정될 수 있다. 상기 고주파 변환 계수 영역과 관련된 변환 계수들을 변환 계수 레벨이 0으로 결정하는 것은 상기 변환 게수들에 대하여 제로잉(zeroing)이 적용된다고 나타낼 수 있다. 즉, 상기 고주파 변환 계수 영역과 관련된 변환 계수들에 대하여 제로잉(zeroing)이 적용될 수 있다. 여기서, 상기 제로잉이 적용된 변환 계수들의 개수는 상기 저주파 변환 계수 영역의 상기 폭 또는 상기 저주파 변환 계수 영역의 상기 높이에 기반하여 결정될 수 있다.
디코딩 장치는 상기 변환 계수들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 도출한다(S1330). 예를 들어, 디코딩 장치는 상기 변환 계수들을 기반으로 상기 현재 블록의 레지듀얼 샘플들을 도출할 수 있다.
일 예로, 상기 변환 스킵 플래그를 기반으로 상기 현재 블록에 대하여 변환이 적용되지 않는 것으로 도출된 경우, 디코딩 장치는 상기 변환 계수들을 상기 현재 블록의 상기 레지듀얼 샘플들로 도출할 수 있다. 예를 들어, 상기 변환 스킵 플래그를 기반으로 상기 현재 블록에 대하여 변환이 적용되지 않는 것으로 도출된 경우, 디코딩 장치는 상기 변환 계수들을 역양자화하여 상기 현재 블록의 상기 레지듀얼 샘플들을 도출할 수 있다. 또는, 예를 들어, 상기 변환 스킵 플래그를 기반으로 상기 현재 블록에 대하여 변환이 적용된 것으로 도출된 경우, 디코딩 장치는 상기 변환 계수들을 역변환하여 상기 현재 블록의 상기 레지듀얼 샘플들을 도출할 수 있다. 또는, 예를 들어, 상기 변환 스킵 플래그를 기반으로 상기 현재 블록에 대하여 변환이 적용된 것으로 도출된 경우, 디코딩 장치는 상기 변환 계수들을 역양자화하고, 역양자화된 변환 계수들을 역변환하여 상기 현재 블록의 상기 레지듀얼 샘플들을 도출할 수 있다.
디코딩 장치는 상기 레지듀얼 샘플들을 기반으로 복원 픽처를 생성한다(S1340).
예를 들어, 디코딩 장치는 비트스트림을 통하여 수신된 예측 정보를 기반으로 상기 현재 블록에 대한 인터 예측 모드 또는 인트라 예측 모드를 수행하여 예측 샘플들을 도출할 수 있고, 상기 예측 샘플들과 상기 레지듀얼 샘플들의 가산을 통하여 상기 복원 픽처를 생성할 수 있다. 또한, 예를 들어, 상기 예측 정보는 상기 현재 블록의 인트라 예측 모드를 나타내는 정보를 포함할 수 있다. 디코딩 장치는 상기 현재 블록의 인트라 예측 모드를 나타내는 정보를 기반으로 상기 현재 블록의 상기 인트라 예측 모드를 도출할 수 있고, 상기 현재 블록의 참조 샘플들 및 상기 인트라 예측 모드를 기반으로 상기 현재 블록의 예측 샘플들을 도출할 수 있다. 상기 참조 샘플들은 상기 현재 블록의 상측 참조 샘플들 및 좌측 참조 샘플들을 포함할 수 있다. 예를 들어, 상기 현재 블록의 사이즈가 NxN이고, 상기 현재 블록의 좌상단(top-left) 샘플 포지션의 x성분이 0 및 y성분이 0인 경우, 상기 좌측 참조 샘플들은 p[-1][0] 내지 p[-1][2N-1], 상기 상측 참조 샘플들은 p[0][-1] 내지 p[2N-1][-1]일 수 있다.
이후 필요에 따라 주관적/객관적 화질을 향상시키기 위하여 디블록킹 필터링, SAO 및/또는 ALF 절차와 같은 인루프 필터링 절차가 상기 복원 픽처에 적용될 수 있음은 상술한 바와 같다.
도 14는 본 문서에 따른 영상 디코딩 방법을 수행하는 디코딩 장치를 개략적으로 나타낸다. 도 13에서 개시된 방법은 도 14에서 개시된 디코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 14의 상기 디코딩 장치의 엔트로피 디코딩부는 도 13의 S1300 내지 S1310을 수행할 수 있고, 도 14의 상기 디코딩 장치의 역양자화부 및 역변환부는 도 13의 S1320 내지 S1330을 수행할 수 있고, 도 14의 상기 디코딩 장치의 가산부는 도 13의 S1340을 수행할 수 있다. 또한, 비록 도시되지는 않았으나 비트스트림을 통하여 현재 블록의 예측 정보를 획득하는 과정은 도 14의 상기 디코딩 장치의 엔트로피 디코딩부에 의하여 수행될 수 있고, 상기 예측 정보를 기반으로 상기 현재 블록에 대한 예측 샘플을 도출하는 과정은 도 14의 상기 디코딩 장치의 예측부에 의하여 수행될 수 있다.
상술한 본 문서에 따르면 레지듀얼 코딩의 효율을 높일 수 있다.
또한, 본 문서에 따르면 고주파 제로잉을 기반으로 변환 계수를 코딩하여 레지듀얼 코딩 효율을 높일 수 있다.
또한, 본 문서에 따르면 고주파 제로잉을 기반으로 현재 블록(또는 현재 변환 블록) 내 라스트 유효 변환 계수의 위치 정보를 코딩하여 영상 코딩 효율을 높일 수 있다.
또한, 본 문서에 따르면 고주파 제로잉 영역(보다 정확하게는, 고주파 제로잉이 적용되지 않는 영역)의 사이즈를 기반으로 라스트 유효 변환 계수의 위치 정보에 대한 컨텍스트 모델을 결정하여 보다 효율적인 부호화를 수행하고, 문맥 부호화 빈(context-coded bin)의 개수를 절감함으로써 CABAC의 처리량(throughput)을 향상시킬 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 문서는 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 문서의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
본 문서에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(ex. information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다.
또한, 본 문서의 실시예들이 적용되는 디코딩 장치 및 인코딩 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
또한, 본 문서의 실시예들이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 문서에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 문서의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 문서의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
도 15는 본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다.
본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 문서의 실시예들이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다. 상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
Claims (15)
- 디코딩 장치에 의하여 수행되는 영상 디코딩 방법에 있어서,현재 블록의 레지듀얼 정보를 포함하는 비트스트림을 수신하는 단계;상기 레지듀얼 정보에 포함된 상기 현재 블록에 대한 신텍스 엘리먼트들을 디코딩하는 단계;상기 디코딩된 신텍스 엘리먼트들을 기반으로 상기 현재 블록에 대한 변환 계수들을 도출하는 단계;상기 변환 계수들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 도출하는 단계; 및상기 레지듀얼 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함하고,상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고,상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고,상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 레지듀얼 정보는 상기 현재 블록 내 서브 블록에 대한 변환 계수들의 변환 계수 레벨이 모두 0인지 여부를 나타내는 코디드 서브 블록 플래그(coded subblock flag)를 포함하고,상기 서브 블록은 상기 저주파 변환 계수 영역과 관련되는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 현재 블록에 대한 변환 계수들 중 상기 저주파 변환 계수 영역과 관련된 변환 계수들에 대해서 변환 계수 스캐닝(transform coefficient scanning)이 수행되고,상기 고주파 변환 계수 영역과 관련된 변환 계수들에 대해서는 상기 변환 계수 스캐닝이 수행되지 않는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 저주파 변환 계수 영역의 폭 또는 상기 저주파 변환 계수 영역의 높이는 32 이하인 것을 특징으로 하는 영상 디코딩 방법.
- 제4항에 있어서,상기 현재 블록의 폭이 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 상기 현재 블록의 상기 폭과 동일한 것으로 결정되고,상기 현재 블록의 높이가 32 미만이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 상기 현재 블록의 상기 높이와 동일한 것으로 결정되고,상기 현재 블록의 상기 폭이 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 폭은 32로 결정되고,상기 현재 블록의 상기 높이가 32 이상이라는 결정을 기반으로, 상기 저주파 변환 계수 영역의 상기 높이는 32로 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 신텍스 엘리먼트들은 상기 마지막 유효 변환 계수의 상기 위치에 대한 라스트 유효 계수 서픽스 정보(last significant coefficient suffix information) 를 포함하고,상기 마지막 유효 변환 계수의 상기 위치는 상기 라스트 유효 계수 프리픽스 정보를 나타내는 프리픽스 코드워드 및 상기 라스트 유효 계수 서픽스 정보에 기반하여 결정되며,상기 프리픽스 코드워드의 최대 길이(maximum lenghth)는 상기 저주파 변환 계수 영역의 사이즈에 기반하여 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 제7항에 있어서,상기 라스트 유효 계수 프리픽스 정보는 x축 프리픽스 정보 및 y축 프리픽스 정보를 포함하고, 상기 프리픽스 코드워드는 상기 x축 프리픽스 정보에 대한 코드워드 또는 상기 y축 프리픽스 정보에 대한 코드워드인 것을 특징으로 하는 영상 디코딩 방법.
- 제8항에 있어서,상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 x축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정되고,상기 저주파 변환 계수 영역의 상기 높이가 32이라는 결정에 기반하여, 상기 y축 프리픽스 정보를 나타내는 상기 코드워드의 최대 길이는 9로 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 제9항에 있어서,상기 현재 블록의 폭이 32보다 크고, 상기 저주파 변환 계수 영역의 상기 폭이 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 x축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값(maximum binarized value)은 111111111로 결정되고,상기 현재 블록의 높이가 32보다 크고, 상기 저주파 변환 계수 영역의 상기 높이가 32라는 결정에 기반하여, 상기 저주파 변환 계수 영역의 상기 y축 프리픽스 정보에 대한 상기 코드워드의 최대 이진값은 111111111로 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 인코딩 장치에 의하여 수행되는 영상 인코딩 방법에 있어서,현재 블록에 대한 레지듀얼 샘플들을 도출하는 단계;상기 레지듀얼 샘플들을 기반으로 상기 현재 블록의 변환 계수들을 도출하는 단계; 및상기 변환 계수들에 대한 신텍스 엘리먼트들을 포함하는 상기 현재 블록에 대한 레지듀얼 정보를 인코딩하는 단계를 포함하고,상기 현재 블록에 대한 상기 변환 계수들 각각은, 변환 계수 0으로 구성된 고주파 변환 계수 영역 또는 적어도 하나의 유효 변환 계수를 포함하는 저주파 변환 계수 영역과 관련되고,상기 신텍스 엘리먼트들은 상기 현재 블록에 대한 상기 변환 계수들 중 마지막 유효 변환 계수의 위치에 대한 라스트 유효 계수 프리픽스 정보(last significant coefficient prefix information) 를 포함하고,상기 유효 계수 프리픽스 정보에 대한 컨텍스트 모델은 상기 저주파 변환 계수 영역의 높이 및 폭을 기반으로 도출되는 것을 특징으로 하는 영상 인코딩 방법.
- 제13항에 있어서,상기 레지듀얼 정보는 상기 현재 블록 내 서브 블록에 대한 변환 계수들의 변환 계수 레벨이 모두 0인지 여부를 나타내는 코디드 서브 블록 플래그(coded subblock flag)를 포함하고,상기 서브 블록은 상기 저주파 변환 계수 영역과 관련되는 것을 특징으로 하는 영상 인코딩 방법.
- 컴퓨터 판독가능 디지털 저장 매체로서, 디코딩 장치로 하여금 청구항 1항에 기재된 영상 디코딩 방법을 수행하도록 야기하는 레지듀얼 정보를 포함하는 비트스트림이 저장된 디지털 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/419,650 US11677955B2 (en) | 2019-01-15 | 2020-01-13 | Image decoding method for coding residual information on basis of high frequency zeroing in image coding system, and device therefor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962792852P | 2019-01-15 | 2019-01-15 | |
US62/792,852 | 2019-01-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020149594A1 true WO2020149594A1 (ko) | 2020-07-23 |
Family
ID=71614550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/000587 WO2020149594A1 (ko) | 2019-01-15 | 2020-01-13 | 영상 코딩 시스템에서 고주파 제로잉을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11677955B2 (ko) |
WO (1) | WO2020149594A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230099292A1 (en) * | 2021-09-29 | 2023-03-30 | Malini MANOCHA | Detection and management of dysfunctions in subterranean operations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130095310A (ko) * | 2010-12-03 | 2013-08-27 | 퀄컴 인코포레이티드 | 비디오 코딩에서 블록에 대한 스캐닝 순서에 기초하여 비디오 블록 내의 마지막 유효 계수의 포지션을 코딩 |
KR20140028118A (ko) * | 2011-07-01 | 2014-03-07 | 퀄컴 인코포레이티드 | 비디오 코딩에서의 비-정사각형 블록들에 대한 컨텍스트 적응적 엔트로피 코딩 |
KR20150039721A (ko) * | 2011-11-08 | 2015-04-13 | 삼성전자주식회사 | 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치 |
KR20160134702A (ko) * | 2014-03-17 | 2016-11-23 | 퀄컴 인코포레이티드 | 제로아웃된 계수들을 이용한 낮은 복잡도의 순방향 변환들을 위한 시스템들 및 방법들 |
KR20180095952A (ko) * | 2010-04-13 | 2018-08-28 | 지이 비디오 컴프레션, 엘엘씨 | 유효성 맵 및 변환 계수 블록의 코딩 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8913666B2 (en) * | 2010-10-01 | 2014-12-16 | Qualcomm Incorporated | Entropy coding coefficients using a joint context model |
-
2020
- 2020-01-13 WO PCT/KR2020/000587 patent/WO2020149594A1/ko active Application Filing
- 2020-01-13 US US17/419,650 patent/US11677955B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180095952A (ko) * | 2010-04-13 | 2018-08-28 | 지이 비디오 컴프레션, 엘엘씨 | 유효성 맵 및 변환 계수 블록의 코딩 |
KR20130095310A (ko) * | 2010-12-03 | 2013-08-27 | 퀄컴 인코포레이티드 | 비디오 코딩에서 블록에 대한 스캐닝 순서에 기초하여 비디오 블록 내의 마지막 유효 계수의 포지션을 코딩 |
KR20140028118A (ko) * | 2011-07-01 | 2014-03-07 | 퀄컴 인코포레이티드 | 비디오 코딩에서의 비-정사각형 블록들에 대한 컨텍스트 적응적 엔트로피 코딩 |
KR20150039721A (ko) * | 2011-11-08 | 2015-04-13 | 삼성전자주식회사 | 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치 |
KR20160134702A (ko) * | 2014-03-17 | 2016-11-23 | 퀄컴 인코포레이티드 | 제로아웃된 계수들을 이용한 낮은 복잡도의 순방향 변환들을 위한 시스템들 및 방법들 |
Also Published As
Publication number | Publication date |
---|---|
US11677955B2 (en) | 2023-06-13 |
US20220078432A1 (en) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020149648A1 (ko) | 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치 | |
WO2020180102A1 (ko) | 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020009556A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020171592A1 (ko) | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020149608A1 (ko) | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020213944A1 (ko) | 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환 | |
WO2021040492A1 (ko) | 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치 | |
WO2020213946A1 (ko) | 변환 인덱스를 이용하는 영상 코딩 | |
WO2020055014A1 (ko) | 레지듀얼 코딩 방법 및 그 장치 | |
WO2021172912A1 (ko) | 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치 | |
WO2021040487A1 (ko) | 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
WO2020213945A1 (ko) | 인트라 예측 기반 영상 코딩에서의 변환 | |
WO2020145795A1 (ko) | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020130661A1 (ko) | 이차 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021040319A1 (ko) | 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치 | |
WO2021040410A1 (ko) | 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
WO2021006700A1 (ko) | 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2021066618A1 (ko) | 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩 | |
WO2021025526A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021025530A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020256482A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020130581A1 (ko) | 이차 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020149594A1 (ko) | 영상 코딩 시스템에서 고주파 제로잉을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치 | |
WO2021158048A1 (ko) | Tsrc 가용 플래그의 시그널링 관련 영상 디코딩 방법 및 그 장치 | |
WO2021040407A1 (ko) | 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20741068 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20741068 Country of ref document: EP Kind code of ref document: A1 |