WO2020226424A1 - Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 - Google Patents

Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 Download PDF

Info

Publication number
WO2020226424A1
WO2020226424A1 PCT/KR2020/005982 KR2020005982W WO2020226424A1 WO 2020226424 A1 WO2020226424 A1 WO 2020226424A1 KR 2020005982 W KR2020005982 W KR 2020005982W WO 2020226424 A1 WO2020226424 A1 WO 2020226424A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
transform
intra prediction
current block
prediction
Prior art date
Application number
PCT/KR2020/005982
Other languages
English (en)
French (fr)
Inventor
남정학
구문모
임재현
김승환
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to JP2021566094A priority Critical patent/JP7256296B2/ja
Priority to KR1020217035756A priority patent/KR20210136157A/ko
Publication of WO2020226424A1 publication Critical patent/WO2020226424A1/ko
Priority to US17/521,086 priority patent/US20220060751A1/en
Priority to JP2023055436A priority patent/JP7422917B2/ja
Priority to JP2024004481A priority patent/JP2024026779A/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present disclosure relates to an image encoding/decoding method and apparatus, and more particularly, an image encoding/decoding method and apparatus for applying a low frequency non-seperable transform (LFNST) to a block to which a matrix based intra prediction (MIP) is applied. And a method of transmitting a bitstream generated by an image encoding method/apparatus of the present disclosure.
  • LFNST low frequency non-seperable transform
  • MIP matrix based intra prediction
  • a high-efficiency image compression technique is required for effectively transmitting, storing, and reproducing information of high-resolution and high-quality images.
  • An object of the present disclosure is to provide an image encoding/decoding method and apparatus with improved encoding/decoding efficiency.
  • an object of the present disclosure is to provide a method and apparatus for encoding/decoding an image by applying LFNST to a block to which MIP is applied.
  • an object of the present disclosure is to provide a method for transmitting a bitstream generated by an image encoding method or apparatus according to the present disclosure.
  • an object of the present disclosure is to provide a recording medium storing a bitstream generated by an image encoding method or apparatus according to the present disclosure.
  • an object of the present disclosure is to provide a recording medium storing a bitstream that is received and decoded by an image decoding apparatus according to the present disclosure and used for image restoration.
  • An image decoding method includes generating a prediction block by performing intra prediction on a current block, generating a residual block by performing inverse transform on a transform coefficient of the current block, and the Restoring the current block based on a prediction block and a residual block, wherein the inverse transform includes a first-order inverse transform and a second-order inverse transform, and the second inverse transform is whether intra prediction for the current block is MIP prediction. It can be done based on whether or not.
  • the second-order inverse transform may be performed only when it is determined that the second-order inverse transform is performed on the transform coefficient.
  • the determination of whether to perform the second-order inverse transformation on the transform coefficient may be performed based on information signaled through a bitstream.
  • the second-order inverse transform is a step of determining a transform set of a second-order inverse transform based on an intra prediction mode of the current block, and included in the transform set of the second-order inverse transform. It may include selecting one of a plurality of transformed kernels, and performing the second-order inverse transform based on the selected transform kernel.
  • the intra prediction mode of the current block used to determine a transform set of the second-order inverse transform is a predetermined intra prediction mode. Can be induced.
  • the predetermined intra prediction mode may be derived from the MIP mode of the current block based on a predefined mapping table.
  • the predetermined intra prediction mode when the intra prediction for the current block is MIP prediction, the predetermined intra prediction mode may be derived as a planar mode.
  • a second-order inverse transform for the transform coefficient may be skipped.
  • intra prediction for the current block is MIP prediction
  • information indicating whether to perform a second-order inverse transform on the transform coefficient may not be signaled through a bitstream.
  • a transform kernel for the second-order inverse transform of the transform coefficient is not signaled through a bitstream and may be determined as a predetermined transform kernel.
  • the number of transform kernels available when the current block is MIP predicted may be smaller than the number of transform kernels available when the current block is not MIP predicted.
  • first information indicating whether a second-order inverse transform is applied to the current block and second information indicating a transform kernel used for the second-order inverse transform are signaled as separate information,
  • the second information may be signaled when the first information indicates that a second-order inverse transform is applied to the current block.
  • An image decoding apparatus includes a memory and at least one processor, wherein the at least one processor generates a prediction block by performing intra prediction on a current block, and calculates a transform coefficient of the current block. Inverse transform is performed to generate a residual block, and the current block is restored based on the prediction block and the residual block, and the inverse transform includes a first-order inverse transform and a second-order inverse transform, and the second-order inverse transform is the current It may be performed based on whether intra prediction for a block is MIP prediction.
  • An image encoding method includes generating a prediction block by performing intra prediction on a current block, generating a residual block of the current block based on the prediction block, and the residual block And generating transform coefficients by performing a transform on a dual block, wherein the transform includes a first-order transform and a second-order transform, and the second-order transform determines whether intra prediction for the current block is MIP prediction. Can be done based on
  • a transmission method may transmit a bitstream generated by the image encoding apparatus or image encoding method of the present disclosure.
  • a computer-readable recording medium may store a bitstream generated by the image encoding method or image encoding apparatus of the present disclosure.
  • an image encoding/decoding method and apparatus with improved encoding/decoding efficiency may be provided.
  • a method and apparatus for encoding/decoding an image by applying LFNST to a block to which MIP is applied may be provided.
  • a method for transmitting a bitstream generated by an image encoding method or apparatus according to the present disclosure may be provided.
  • a recording medium storing a bitstream generated by an image encoding method or apparatus according to the present disclosure may be provided.
  • a recording medium may be provided that stores a bitstream that is received and decoded by the image decoding apparatus according to the present disclosure and used for image restoration.
  • FIG. 1 is a diagram schematically illustrating a video coding system to which an embodiment according to the present disclosure can be applied.
  • FIG. 2 is a diagram schematically illustrating an image encoding apparatus to which an embodiment according to the present disclosure can be applied.
  • FIG. 3 is a diagram schematically illustrating an image decoding apparatus to which an embodiment according to the present disclosure can be applied.
  • FIG. 4 is a diagram showing a block division type according to a multi-type tree structure.
  • FIG. 5 is a diagram illustrating a signaling mechanism of partitioning information of a quadtree with nested multi-type tree structure according to the present disclosure.
  • FIG. 6 is a flowchart illustrating a video/video encoding method based on intra prediction.
  • FIG. 7 is a diagram illustrating an exemplary configuration of an intra prediction unit 185 according to the present disclosure.
  • FIG. 8 is a flowchart illustrating a video/video decoding method based on intra prediction.
  • FIG. 9 is a diagram illustrating an exemplary configuration of an intra prediction unit 265 according to the present disclosure.
  • FIG. 10 is a flowchart illustrating an intra prediction mode signaling procedure in an image encoding apparatus.
  • 11 is a flowchart illustrating a procedure for determining an intra prediction mode in an image decoding apparatus.
  • FIG. 12 is a flowchart for describing a procedure for deriving an intra prediction mode in more detail.
  • FIG. 13 is a diagram illustrating an intra prediction direction according to an embodiment of the present disclosure.
  • FIG. 14 is a diagram illustrating an intra prediction direction according to another embodiment of the present disclosure.
  • 15 is a diagram illustrating an ALWIP process for a 4x4 block.
  • 16 is a diagram illustrating an ALWIP process for an 8x8 block.
  • 17 is a diagram illustrating an ALWIP process for an 8x4 block.
  • 18 is a diagram illustrating an ALWIP process for a 16x16 block.
  • FIG. 19 is a diagram illustrating an averaging step in an ALWIP process according to the present disclosure.
  • 20 is a diagram for explaining an interpolation step in an ALWIP process according to the present disclosure.
  • 21 is a diagram for describing a transformation method applied to a residual block.
  • 22 is a flowchart illustrating a method of performing a quadratic transformation/inverse transformation according to the present disclosure.
  • FIG. 23 is a diagram for describing a method performed in an image decoding apparatus based on whether MIP and LFNST are applied according to another embodiment of the present disclosure.
  • FIG. 24 is a diagram for describing a method performed by an image encoding apparatus based on whether MIP and LFNST are applied according to another embodiment of the present disclosure.
  • 25 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.
  • first and second are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of the components unless otherwise stated. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment is a first component in another embodiment. It can also be called.
  • components that are distinguished from each other are intended to clearly describe each feature, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to be formed in one hardware or software unit, or one component may be distributed in a plurality of hardware or software units. Therefore, even if not stated otherwise, such integrated or distributed embodiments are also included in the scope of the present disclosure.
  • the components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, an embodiment consisting of a subset of components described in an embodiment is also included in the scope of the present disclosure. In addition, embodiments including other elements in addition to the elements described in the various embodiments are included in the scope of the present disclosure.
  • the present disclosure relates to encoding and decoding of an image, and terms used in the present disclosure may have a common meaning commonly used in the technical field to which the present disclosure belongs unless newly defined in the present disclosure.
  • a “picture” generally refers to a unit representing one image in a specific time period
  • a slice/tile is a coding unit constituting a part of a picture
  • one picture is one It may be composed of more than one slice/tile.
  • a slice/tile may include one or more coding tree units (CTU).
  • pixel or "pel” may mean a minimum unit constituting one picture (or image).
  • sample may be used as a term corresponding to a pixel.
  • a sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
  • unit may represent a basic unit of image processing.
  • the unit may include at least one of a specific area of a picture and information related to the corresponding area.
  • the unit may be used interchangeably with terms such as “sample array”, “block”, or “area” depending on the case.
  • the MxN block may include samples (or sample arrays) consisting of M columns and N rows, or a set (or array) of transform coefficients.
  • current block may mean one of “current coding block”, “current coding unit”, “coding object block”, “decoding object block”, or “processing object block”.
  • current block may mean “current prediction block” or “prediction target block”.
  • transformation inverse transformation
  • quantization inverse quantization
  • current block may mean “current transform block” or “transform target block”.
  • filtering is performed, “current block” may mean “block to be filtered”.
  • current block may mean a block including both a luma component block and a chroma component block or "a luma block of the current block” unless explicitly stated as a chroma block.
  • the chroma block of the current block may be explicitly expressed by including an explicit description of a chroma block such as a "chroma block” or a "current chroma block”.
  • FIG. 1 shows a video coding system according to this disclosure.
  • a video coding system may include an encoding device 10 and a decoding device 20.
  • the encoding device 10 may transmit the encoded video and/or image information or data in a file or streaming format to the decoding device 20 through a digital storage medium or a network.
  • the encoding apparatus 10 may include a video source generator 11, an encoder 12, and a transmission unit 13.
  • the decoding apparatus 20 may include a receiving unit 21, a decoding unit 22, and a rendering unit 23.
  • the encoder 12 may be referred to as a video/image encoder, and the decoder 22 may be referred to as a video/image decoder.
  • the transmission unit 13 may be included in the encoding unit 12.
  • the receiving unit 21 may be included in the decoding unit 22.
  • the rendering unit 23 may include a display unit, and the display unit may be configured as a separate device or an external component.
  • the video source generator 11 may acquire a video/image through a process of capturing, synthesizing, or generating a video/image.
  • the video source generator 11 may include a video/image capturing device and/or a video/image generating 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 capturing process may be substituted as a process of generating related data.
  • the encoder 12 may encode an input video/image.
  • the encoder 12 may perform a series of procedures such as prediction, transformation, and quantization for compression and encoding efficiency.
  • the encoder 12 may output encoded data (coded video/image information) in a bitstream format.
  • the transmission unit 13 may transmit the encoded video/image information or data output in the form of a bitstream to the receiving unit 21 of the decoding apparatus 20 through a digital storage medium or a network in a file or streaming form.
  • Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the transmission unit 13 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 receiving unit 21 may extract/receive the bitstream from the storage medium or network and transmit it to the decoding unit 22.
  • the decoder 22 may decode the video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoder 12.
  • the rendering unit 23 may render the decoded video/image.
  • the rendered video/image may be displayed through the display unit.
  • FIG. 2 is a diagram schematically illustrating an image encoding apparatus to which an embodiment according to the present disclosure can be applied.
  • the image encoding apparatus 100 includes an image segmentation unit 110, a subtraction unit 115, a transform unit 120, a quantization unit 130, an inverse quantization unit 140, and an inverse transform unit ( 150), an addition unit 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • the inter prediction unit 180 and the intra prediction unit 185 may be collectively referred to as a “prediction unit”.
  • the transform unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transform unit 150 may be included in a residual processing unit.
  • the residual processing unit may further include a subtraction unit 115.
  • All or at least some of the plurality of constituent units constituting the image encoding apparatus 100 may be implemented as one hardware component (eg, an encoder or a processor) according to embodiments.
  • the memory 170 may include a decoded picture buffer (DPB), and may be implemented by a digital storage medium.
  • DPB decoded picture buffer
  • the image dividing unit 110 may divide an input image (or picture, frame) input to the image encoding apparatus 100 into one or more processing units.
  • the processing unit may be referred to as a coding unit (CU).
  • the coding unit is a coding tree unit (CTU) or a largest coding unit (LCU) recursively according to a QT/BT/TT (Quad-tree/binary-tree/ternary-tree) structure ( It can be obtained by dividing recursively.
  • 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 tree structure.
  • a quad tree structure may be applied first and a binary tree structure and/or a ternary tree structure may be applied later.
  • the coding procedure according to the present disclosure may be performed based on the final coding unit that is no longer divided.
  • the largest coding unit may be directly used as the final coding unit, or a coding unit of a lower depth obtained by dividing the largest coding unit may be used as the final cornet unit.
  • the coding procedure may include a procedure such as prediction, transformation, and/or restoration described later.
  • the processing unit of the coding procedure may be a prediction unit (PU) or a transform unit (TU).
  • Each of the prediction unit and the transform unit may be divided or partitioned from the final coding unit.
  • the prediction unit may be a unit of sample prediction
  • the transform unit may be a unit for inducing a transform coefficient and/or a unit for inducing a residual signal from the transform coefficient.
  • the prediction unit (inter prediction unit 180 or intra prediction unit 185) performs prediction on a block to be processed (current block), and generates a predicted block including prediction samples for the current block. Can be generated.
  • 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 on prediction of the current block and transmit it to the entropy encoding unit 190.
  • the information on prediction may be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
  • the intra prediction unit 185 may predict the current block by referring to samples in the current picture.
  • the referenced samples may be located in a neighborhood of the current block or may be located away from each other according to an intra prediction mode and/or an intra prediction technique.
  • the intra 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 185 may determine a prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the inter prediction unit 180 may derive a 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 correlation between motion information between neighboring blocks and current blocks.
  • 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 existing in the current picture and a temporal neighboring block existing 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 from each other.
  • the temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), or the like.
  • a reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic).
  • the inter prediction unit 180 constructs a motion information candidate list based on neighboring blocks, and provides information indicating which candidate is used to derive a motion vector and/or a reference picture index of the current block. Can be generated. Inter prediction may be performed based on various prediction modes.
  • the inter prediction unit 180 may use motion information of a neighboring block as motion information of a current block.
  • a residual signal may not be transmitted.
  • motion vector prediction (MVP) mode motion vectors of neighboring blocks are used as motion vector predictors, and indicators for motion vector difference and motion vector predictors ( indicator) to signal the motion vector of the current block.
  • the motion vector difference may mean a difference between a motion vector of a current block and a motion vector predictor.
  • the prediction unit may generate a prediction signal based on various prediction methods and/or prediction techniques to be described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of the current block, and may simultaneously apply intra prediction and inter prediction. A prediction method in which intra prediction and inter prediction are applied simultaneously for prediction of a current block may be called combined inter and intra prediction (CIIP). Also, the prediction unit may perform intra block copy (IBC) for prediction of the current block. The intra block copy may be used for content image/movie coding such as games, such as, for example, screen content coding (SCC). IBC is a method of predicting a current block by using a reference block in a current picture at a distance from the current block by a predetermined distance.
  • CIIP combined inter and intra prediction
  • IBC intra block copy
  • the intra block copy may be used for content image/movie coding such as games, such as, for example, screen content coding (SCC).
  • IBC is a method of predicting a current block by using a reference
  • the position of the reference block in the current picture may be encoded as a vector (block vector) corresponding to the predetermined distance.
  • IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction in that it derives a reference block in the current picture. That is, the IBC may use at least one of the inter prediction techniques described in this disclosure.
  • the prediction signal generated through the prediction unit may be used to generate a reconstructed signal or may be used to generate a residual signal.
  • the subtraction unit 115 subtracts the prediction signal (predicted block, prediction sample array) output from the prediction unit from the input image signal (original block, original sample array), and subtracts a residual signal (remaining block, residual sample array). ) Can be created.
  • the generated residual signal may be transmitted to the converter 120.
  • the transform unit 120 may generate transform coefficients by applying a transform technique to the residual signal.
  • the transformation technique uses at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform).
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • KLT Kerhunen-Loeve Transform
  • GBT Graph-Based Transform
  • CNT Supplementally Non-linear Transform
  • GBT refers to the transformation obtained from this graph when the relationship information between pixels is expressed in a graph.
  • CNT refers to a transformation obtained based on generating a prediction signal using all previously reconstructed pixels.
  • the conversion process may be applied to a block of pixels having the same size of a square, or may be applied to a block of variable size other than a square.
  • the quantization unit 130 may quantize the transform coefficients and transmit the quantization to the entropy encoding unit 190.
  • the entropy encoding unit 190 may encode a quantized signal (information on quantized transform coefficients) and output it as a bitstream.
  • the information on the quantized transform coefficients may be called residual information.
  • the quantization unit 130 may rearrange the quantized transform coefficients in the form of a block into a one-dimensional vector form based on a coefficient scan order, and the quantized transform coefficients in the form of the one-dimensional vector It is also possible to generate information about transform coefficients.
  • the entropy encoding unit 190 may perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
  • the entropy encoding unit 190 may encode together or separately information necessary for video/image restoration (eg, values of syntax elements) in addition to quantized transform coefficients.
  • the encoded information (eg, encoded video/video information) may be transmitted or stored in a bitstream format in units of network abstraction layer (NAL) units.
  • the video/video information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
  • the video/video information may further include general constraint information.
  • the signaling information, transmitted information, and/or syntax elements mentioned in the present disclosure may be encoded through the above-described encoding procedure and included in the bitstream.
  • the bitstream may be transmitted through a network or may be stored in 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, and SSD.
  • a transmission unit (not shown) for transmitting the signal output from the entropy encoding unit 190 and/or a storage unit (not shown) for storing may be provided as an inner/outer element of the image encoding apparatus 100, or transmission The unit may be provided as a component of the entropy encoding unit 190.
  • the quantized transform coefficients output from the quantization unit 130 may be used to generate a residual signal.
  • a residual signal residual block or residual samples
  • inverse quantization and inverse transform residual transforms
  • the addition unit 155 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 to obtain a reconstructed signal (a reconstructed picture, a reconstructed block, and a reconstructed sample array). Can be generated.
  • a reconstructed signal (a reconstructed picture, a reconstructed block, and a reconstructed sample array).
  • the predicted block may be used as a reconstructed block.
  • the addition unit 155 may be referred to as a restoration unit or a restoration block generation unit.
  • the generated reconstructed signal may be used for intra prediction of the next processing target block in the current picture, and may be used for inter prediction of the next picture through filtering as described later.
  • the filtering unit 160 may apply filtering to the reconstructed signal to improve subjective/objective image quality.
  • the filtering unit 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture may be converted to the memory 170, specifically, the DPB of the memory 170. Can be saved on.
  • the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
  • the filtering unit 160 may generate a variety of filtering information and transmit it to the entropy encoding unit 190 as described later in the description of each filtering method.
  • the filtering information may be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
  • the modified reconstructed picture transmitted to the memory 170 may be used as a reference picture in the inter prediction unit 180.
  • the image encoding apparatus 100 may avoid prediction mismatch between the image encoding apparatus 100 and the image decoding apparatus, and may improve encoding efficiency.
  • the DPB in the memory 170 may store a reconstructed picture modified to be used as a reference picture in the inter prediction unit 180.
  • the memory 170 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 have already been reconstructed.
  • the stored motion information may be transmitted to the inter prediction unit 180 to be used as motion information of spatial neighboring blocks or motion information of temporal neighboring blocks.
  • the memory 170 may store reconstructed samples of reconstructed blocks in the current picture, and may transmit the reconstructed samples to the intra prediction unit 185.
  • FIG. 3 is a diagram schematically illustrating an image decoding apparatus to which an embodiment according to the present disclosure can be applied.
  • the image decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an addition unit 235, a filtering unit 240, and a memory 250. ), an inter prediction unit 260 and an intra prediction unit 265 may be included.
  • the inter prediction unit 260 and the intra prediction unit 265 may be collectively referred to as a “prediction unit”.
  • the inverse quantization unit 220 and the inverse transform unit 230 may be included in the residual processing unit.
  • All or at least some of the plurality of constituent units constituting the image decoding apparatus 200 may be implemented as one hardware component (eg, a decoder or a processor) according to embodiments.
  • the memory 170 may include a DPB and may be implemented by a digital storage medium.
  • the image decoding apparatus 200 receiving a bitstream including video/image information may reconstruct an image by performing a process corresponding to the process performed by the image encoding apparatus 100 of FIG. 2.
  • the image decoding apparatus 200 may perform decoding using a processing unit applied in the image encoding apparatus.
  • the processing unit of decoding may be, for example, a coding unit.
  • the coding unit may be a coding tree unit or may be obtained by dividing the largest coding unit.
  • the reconstructed image signal decoded and output through the image decoding apparatus 200 may be reproduced through a reproduction device (not shown).
  • the image decoding apparatus 200 may receive a signal output from the image encoding apparatus of FIG. 2 in the form of a bitstream.
  • the received signal may be decoded through the entropy decoding unit 210.
  • the entropy decoding unit 210 may parse the bitstream to derive information (eg, video/video information) necessary for image restoration (or picture restoration).
  • the video/video information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
  • the video/video information may further include general constraint information.
  • the image decoding apparatus may additionally use information on the parameter set and/or the general restriction information to decode an image.
  • the signaling information, received information and/or syntax elements mentioned in the present disclosure may be obtained from the bitstream by being decoded through the decoding procedure.
  • the entropy decoding unit 210 decodes information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and a value of a syntax element required for image restoration, a quantized value of a transform coefficient related to a residual. Can be printed.
  • the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and includes information on the syntax element to be decoded, information on decoding information of a neighboring block and a block to be decoded, or information on a symbol/bin decoded in a previous step
  • the context model is determined by using and, according to the determined context model, the probability of occurrence of bins is predicted to perform arithmetic decoding of bins to generate symbols corresponding to the values of each syntax element. I can.
  • the CABAC entropy decoding method may update the context model using information of the decoded symbol/bin for the context model of the next symbol/bin after the context model is determined.
  • the entropy decoding unit 210 Among the information decoded by the entropy decoding unit 210, information on prediction is provided to the prediction unit (inter prediction unit 260 and intra prediction unit 265), and the register on which entropy decoding is performed by the entropy decoding unit 210 Dual values, that is, quantized transform coefficients and related parameter information may be input to the inverse quantization unit 220. In addition, information about filtering among information decoded by the entropy decoding unit 210 may be provided to the filtering unit 240.
  • a receiving unit for receiving a signal output from the image encoding device may be additionally provided as an inner/outer element of the image decoding device 200, or the receiving unit is provided as a component of the entropy decoding unit 210 It could be.
  • the video decoding apparatus may include an information decoder (video/video/picture information decoder) and/or a sample decoder (video/video/picture sample decoder).
  • the information decoder may include an entropy decoding unit 210, and the sample decoder includes an inverse quantization unit 220, an inverse transform unit 230, an addition unit 235, a filtering unit 240, a memory 250, It may include at least one of the inter prediction unit 260 and the intra prediction unit 265.
  • the inverse quantization unit 220 may inverse quantize the quantized transform coefficients and output transform coefficients.
  • the inverse quantization unit 220 may rearrange the quantized transform coefficients into a two-dimensional block shape. In this case, the rearrangement may be performed based on a coefficient scan order performed by the image encoding apparatus.
  • the inverse quantization unit 220 may perform inverse quantization on quantized transform coefficients by using a quantization parameter (eg, quantization step size information) and obtain transform coefficients.
  • a quantization parameter eg, quantization step size information
  • the inverse transform unit 230 may inversely transform 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 or inter prediction is applied to the current block based on the prediction information output from the entropy decoding unit 210, and determine a specific intra/inter prediction mode (prediction technique). I can.
  • the prediction unit can generate the prediction signal based on various prediction methods (techniques) described later.
  • the intra prediction unit 265 may predict the current block by referring to samples in the current picture.
  • the description of the intra prediction unit 185 may be equally applied to the intra prediction unit 265.
  • the inter prediction unit 260 may derive a 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 correlation between motion information between neighboring blocks and current blocks.
  • 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 existing in the current picture and a temporal neighboring block existing in the reference picture.
  • the inter prediction unit 260 may construct a motion information candidate list based on neighboring blocks, and derive a motion vector and/or a reference picture index of the current block based on the received candidate selection information.
  • Inter prediction may be performed based on various prediction modes (techniques), and the information about the prediction may include information indicating a mode (technique) of inter prediction for the current block.
  • the addition unit 235 is reconstructed by adding the obtained residual signal to the prediction signal (predicted block, prediction sample array) output from the prediction unit (including the inter prediction unit 260 and/or the intra prediction unit 265). Signals (restored pictures, reconstructed blocks, reconstructed sample arrays) can be generated. When there is no residual for a block to be processed, such as when the skip mode is applied, the predicted block may be used as a reconstructed block.
  • the description of the addition unit 155 may be equally applied to the addition unit 235.
  • the addition unit 235 may be referred to as a restoration unit or a restoration block generation unit.
  • the generated reconstructed signal may be used for intra prediction of the next processing target block in the current picture, and may be used for inter prediction of the next picture through filtering as described later.
  • the filtering unit 240 may apply filtering to the reconstructed signal to improve subjective/objective image quality.
  • the filtering unit 240 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture may be converted to the memory 250, specifically the DPB of the memory 250. Can be saved on.
  • the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
  • the (modified) reconstructed picture stored in the DPB of the memory 250 may be used as a reference picture in the inter prediction unit 260.
  • the memory 250 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 have already been reconstructed.
  • the stored motion information may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
  • the memory 250 may store reconstructed samples of reconstructed blocks in the current picture, and may be transmitted to the intra prediction unit 265.
  • embodiments described in the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the image encoding apparatus 100 are respectively the filtering unit 240 of the image decoding apparatus 200, The same or corresponding to the inter prediction unit 260 and the intra prediction unit 265 may be applied.
  • the coding unit is obtained by recursively dividing a coding tree unit (CTU) or a maximum coding unit (LCU) according to a QT/BT/TT (Quad-tree/binary-tree/ternary-tree) structure.
  • CTU coding tree unit
  • LCU maximum coding unit
  • QT/BT/TT Quad-tree/binary-tree/ternary-tree
  • the CTU may be first divided into a quadtree structure. Thereafter, leaf nodes of a quadtree structure may be further divided by a multitype tree structure.
  • the division according to the quadtree means division in which the current CU (or CTU) is divided into four. By partitioning according to the quadtree, the current CU can be divided into four CUs having the same width and the same height.
  • the current CU corresponds to a leaf node of the quadtree structure.
  • the CU corresponding to the leaf node of the quadtree structure is no longer divided and may be used as the final coding unit described above.
  • a CU corresponding to a leaf node of a quadtree structure may be further divided by a multitype tree structure.
  • the division according to the multi-type tree structure may include two divisions according to a binary tree structure and two divisions according to a ternary tree structure.
  • the two divisions according to the binary tree structure may include vertical binary splitting (SPLIT_BT_VER) and horizontal binary splitting (SPLIT_BT_HOR).
  • the vertical binary division (SPLIT_BT_VER) refers to division in which the current CU is divided in two vertical directions. As shown in FIG. 4, two CUs having a height equal to the height of the current CU and a width of half the width of the current CU may be generated by vertical binary division.
  • the horizontal binary division means division in which the current CU is divided into two in the horizontal direction. As shown in FIG. 4, two CUs having a height of half the height of the current CU and a width equal to the width of the current CU may be generated by horizontal binary division.
  • the two divisions according to the ternary tree structure may include vertical ternary splitting (SPLIT_TT_VER) and horizontal ternary splitting (hotizontal ternary splitting, SPLIT_TT_HOR).
  • Vertical ternary division (SPLIT_TT_VER) divides the current CU in a vertical direction at a ratio of 1:2:1. As shown in FIG. 4, by vertical ternary division, two CUs having a height equal to the height of the current CU and a width of 1/4 of the width of the current CU, and a current CU having a height equal to the height of the current CU A CU with a width of half the width of can be created.
  • the horizontal ternary division divides the current CU in the horizontal direction at a ratio of 1:2:1. As shown in FIG. 4, by horizontal ternary division, two CUs having a height of 1/4 of the height of the current CU and having the same width as the width of the current CU and a height of half the height of the current CU One CU can be created with a width equal to the width of the CU.
  • FIG. 5 is a diagram illustrating a signaling mechanism of partitioning information of a quadtree with nested multi-type tree structure according to the present disclosure.
  • the CTU is treated as the root node of a quadtree, and is first partitioned into a quadtree structure.
  • Information eg, qt_split_flag
  • qt_split_flag a first value (eg, “1”)
  • the current CU may be quadtree split.
  • qt_split_flag is a second value (eg, "0")
  • the current CU is not divided into a quadtree, but becomes a leaf node (QT_leaf_node) of the quadtree.
  • the leaf nodes of each quadtree can then be further partitioned into a multitype tree structure. That is, a leaf node of a quad tree may be a node (MTT_node) of a multi-type tree.
  • a first flag eg, mtt_split_cu_flag
  • a second flag (ex.mtt_split_cu_verticla_flag) may be signaled to indicate the splitting direction.
  • the division direction may be a vertical direction
  • the second flag is 0, the division direction may be a horizontal direction.
  • a third flag (eg, mtt_split_cu_binary_flag) may be signaled to indicate whether the division type is a binary division type or a ternary division type.
  • the division type may be a binary division type
  • the third flag when the third flag is 0, the division type may be a ternary division type.
  • Nodes of a multitype tree obtained by binary division or ternary division may be further partitioned into a multitype tree structure.
  • nodes of a multitype tree cannot be partitioned into a quadtree structure.
  • the first flag is 0, the corresponding node of the multitype tree is no longer divided and becomes a leaf node (MTT_leaf_node) of the multitype tree.
  • the CU corresponding to the leaf node of the multitype tree may be used as the above-described final coding unit.
  • a multi-type tree splitting mode (MttSplitMode) of the CU may be derived as shown in Table 1.
  • One CTU may include a coding block of luma samples (hereinafter, referred to as a “luma block”) and two coding blocks of chroma samples corresponding thereto (hereinafter referred to as a “chroma block”).
  • the above-described coding tree scheme may be applied equally to the luma block and the chroma block of the current CU, or may be applied separately.
  • a luma block and a chroma block in one CTU may be divided into the same block tree structure, and the tree structure in this case may be represented as a single tree (SINGLE_TREE).
  • a luma block and a chroma block in one CTU may be divided into individual block tree structures, and the tree structure in this case may be represented as a dual tree (DUAL_TREE). That is, when the CTU is divided into a dual tree, a block tree structure for a luma block and a block tree structure for a chroma block may exist separately.
  • the block tree structure for the luma block may be referred to as a dual tree luma (DUAL_TREE_LUMA)
  • the block tree structure for the chroma block may be referred to as a dual tree chroma (DUAL_TREE_CHROMA).
  • luma blocks and chroma blocks in one CTU may be limited to have the same coding tree structure.
  • luma blocks and chroma blocks may have separate block tree structures from each other.
  • a luma coding tree block (CTB) may be divided into CUs based on a specific coding tree structure, and the chroma CTB may be divided into chroma CUs based on a different coding tree structure. That is, a CU in an I slice/tile group to which an individual block tree structure is applied may be composed of a coding block of a luma component or a coding block of two chroma components.
  • a CU in an I slice/tile group to which the same block tree structure is applied and a CU of a P or B slice/tile group may be composed of blocks of three color components (a luma component and two chroma components).
  • the structure in which the CU is divided is not limited thereto.
  • the BT structure and the TT structure may be interpreted as a concept included in the Multiple Partitioning Tree (MPT) structure, and the CU may be interpreted as being divided through the QT structure and the MPT structure.
  • MPT Multiple Partitioning Tree
  • a syntax element eg, MPT_split_type
  • MPT_split_mode a syntax element including information on which direction of splitting between horizontal and horizontal.
  • the CU may be divided in a different way from the QT structure, BT structure, or TT structure. That is, according to the QT structure, the CU of the lower depth is divided into 1/4 size of the CU of the upper depth, or the CU of the lower depth is divided into 1/2 of the CU of the upper depth according to the BT structure, or according to the TT structure. Unlike CUs of lower depth are divided into 1/4 or 1/2 of CUs of higher depth, CUs of lower depth are 1/5, 1/3, 3/8, 3 of CUs of higher depth depending on the case. It can be divided into /5, 2/3, or 5/8 size, and the method of partitioning the CU is not limited thereto.
  • Intra prediction may indicate prediction of generating prediction samples for a current block based on reference samples in a picture (hereinafter, referred to as a current picture) to which the current block belongs.
  • a current picture a picture to which the current block belongs.
  • surrounding reference samples to be used for intra prediction of the current block may be derived.
  • the neighboring reference samples of the current block are a sample adjacent to the left boundary of the current block of size nWxnH, a total of 2xnH samples adjacent to the bottom-left, and a sample adjacent to the top boundary of the current block. And a total of 2xnW samples adjacent to the top-right side and one sample adjacent to the top-left side of the current block.
  • the peripheral reference samples of the current block may include a plurality of columns of upper peripheral samples and a plurality of rows of left peripheral samples.
  • the neighboring reference samples of the current block are a total of nH samples adjacent to the right boundary of the current block of size nWxnH, a total of nW samples adjacent to the bottom boundary of the current block, and the lower right side of the current block. It may include one sample adjacent to (bottom-right).
  • the decoder may construct neighboring reference samples to be used for prediction by substituting samples that are not available with available samples.
  • surrounding reference samples to be used for prediction may be configured through interpolation of available samples.
  • a prediction sample can be derived based on an average or interpolation of neighboring reference samples of the current block, and (ii) neighboring reference samples of the current block Among them, the prediction sample may be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample.
  • it may be called a non-directional mode or a non-angular mode
  • it may be called a directional mode or an angular mode.
  • LIP linear interpolation intra prediction
  • chroma prediction samples may be generated based on luma samples using a linear model. This case may be referred to as LM (Linear Model) mode.
  • LM Linear Model
  • a temporary prediction sample of the current block is derived based on the filtered surrounding reference samples, and at least one of the existing surrounding reference samples, that is, unfiltered surrounding reference samples, derived according to the intra prediction mode.
  • a prediction sample of the current block may be derived by weighted sum of a reference sample and the temporary prediction sample. This case may be called PDPC (Position dependent intra prediction).
  • a reference sample line having the highest prediction accuracy among the neighboring multi-reference sample lines of the current block may be selected, and a prediction sample may be derived using a reference sample positioned in the prediction direction from the corresponding line.
  • information on the used reference sample line eg, intra_luma_ref_idx
  • MRL multi-reference line intra prediction
  • reference samples may be derived from a reference sample line directly adjacent to the current block, and in this case, information about the reference sample line may not be signaled.
  • the current block may be divided into vertical or horizontal subpartitions, and intra prediction may be performed for each subpartition based on the same intra prediction mode.
  • neighboring reference samples of intra prediction may be derived for each subpartition. That is, a reconstructed sample of the previous subpartition in the encoding/decoding order may be used as a neighboring reference sample of the current subpartition.
  • the intra prediction mode for the current block is equally applied to the subpartitions, but by deriving and using neighboring reference samples in units of the subpartitions, intra prediction performance may be improved in some cases.
  • This prediction method may be referred to as intra sub-partitions (ISP) or ISP-based intra prediction.
  • intra prediction techniques may be referred to in various terms such as an intra prediction type or an additional intra prediction mode, separated from a directional or non-directional intra prediction mode.
  • the intra prediction technique may include at least one of the aforementioned LIP, LM, PDPC, MRL, and ISP.
  • the general intra prediction method excluding specific intra prediction types such as LIP, LM, PDPC, MRL, and ISP may be referred to as a normal intra prediction type.
  • the normal intra prediction type may be generally applied when the specific intra prediction type as described above is not applied, and prediction may be performed based on the aforementioned intra prediction mode. Meanwhile, post-processing filtering may be performed on the derived prediction samples as necessary.
  • the intra prediction procedure may include determining an intra prediction mode/type, deriving a neighboring reference sample, and deriving an intra prediction mode/type based prediction sample. Also, a post-filtering step may be performed on the derived prediction samples as necessary.
  • affine linear weighted intra prediction may be used in addition to the aforementioned intra prediction types.
  • the ALWIP may be called linear weighted intra prediction (LWIP), matrix weighted intra prediction (MWIP), or matrix based intra prediction (MIP).
  • LWIP linear weighted intra prediction
  • MWIP matrix weighted intra prediction
  • MIP matrix based intra prediction
  • the intra prediction modes used for the ALWIP are LIP, PDPC, MRL, and ISP intra prediction described above, or intra prediction modes used in normal intra prediction (intra prediction modes described with reference to FIGS. 13 and/or 14). And can be configured differently.
  • the intra prediction mode for ALWIP may be referred to as an ALWIP mode, LWIP mode, MWIP mode, or MIP mode.
  • a matrix and an offset used in the matrix vector multiplication may be set differently according to the intra prediction mode for the ALWIP.
  • the matrix may be referred to as a (affine) weight matrix
  • the offset may be referred to as a (afine) offset vector or a (afine) bias vector.
  • a specific ALWIP method will be described later.
  • FIG. 6 is a flowchart illustrating a video/video encoding method based on intra prediction.
  • the encoding method of FIG. 6 may be performed by the video encoding apparatus of FIG. 2. Specifically, step S610 may be performed by the intra prediction unit 185, and step S620 may be performed by the residual processing unit. Specifically, step S620 may be performed by the subtraction unit 115. Step S630 may be performed by the entropy encoding unit 190.
  • the prediction information of step S630 may be derived by the intra prediction unit 185, and the residual information of step S630 may be derived by the residual processing unit.
  • the residual information is information on the residual samples.
  • the residual information may include information on quantized transform coefficients for the residual samples.
  • the residual samples may be derived as transform coefficients through the transform unit 120 of the image encoding apparatus, and the transform coefficients may be derived as quantized transform coefficients through the quantization unit 130.
  • Information about the quantized transform coefficients may be encoded by the entropy encoding unit 190 through a residual coding procedure.
  • the image encoding apparatus may perform intra prediction on the current block (S610).
  • the video encoding apparatus determines an intra prediction mode/type for the current block, derives neighboring reference samples of the current block, and then generates prediction samples in the current block based on the intra prediction mode/type and the neighboring reference samples. can do.
  • the procedure of determining the intra prediction mode/type, deriving neighboring reference samples, and generating prediction samples may be simultaneously performed, or one procedure may be performed before the other procedure.
  • FIG. 7 is a diagram illustrating an exemplary configuration of an intra prediction unit 185 according to the present disclosure.
  • the intra prediction unit 185 of the video encoding apparatus may include an intra prediction mode/type determination unit 186, a reference sample derivation unit 187 and/or a prediction sample derivation unit 188.
  • the intra prediction mode/type determiner 186 may determine an intra prediction mode/type for the current block.
  • the reference sample derivation unit 187 may derive neighboring reference samples of the current block.
  • the prediction sample derivation unit 188 may derive prediction samples of the current block.
  • the intra prediction unit 185 may further include a prediction sample filter unit (not shown).
  • the image encoding apparatus may determine a mode/type applied to the current block from among a plurality of intra prediction modes/types.
  • the video encoding apparatus may compare RD costs for the intra prediction modes/types and determine an optimal intra prediction mode/type for the current block.
  • the image encoding apparatus may perform a prediction sample filtering procedure.
  • Predictive sample filtering may be referred to as post filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
  • the apparatus for encoding an image may generate residual samples for the current block based on prediction samples or filtered prediction samples (S620).
  • the image encoding apparatus may derive the residual samples by subtracting the prediction samples from original samples of the current block. That is, the image encoding apparatus may derive the residual sample value by subtracting the corresponding predicted sample value from the original sample value.
  • the image encoding apparatus may encode image information including information about the intra prediction (prediction information) and residual information about the residual samples (S630).
  • the prediction information may include the intra prediction mode information and/or the intra prediction technique information.
  • the image encoding apparatus may output the encoded image information in the form of a bitstream.
  • the output bitstream may be delivered to an image decoding apparatus through a storage medium or a network.
  • the residual information may include a residual coding syntax to be described later.
  • the image encoding apparatus may transform/quantize the residual samples to derive quantized transform coefficients.
  • the residual information may include information on the quantized transform coefficients.
  • the image encoding apparatus may generate a reconstructed picture (including reconstructed samples and a reconstructed block). To this end, the image encoding apparatus may perform inverse quantization/inverse transformation on the quantized transform coefficients again to derive (modified) residual samples. The reason why the residual samples are transformed/quantized and then inverse quantized/inverse transformed is performed to derive residual samples identical to the residual samples derived from the image decoding apparatus.
  • the image encoding apparatus may generate a reconstructed block including reconstructed samples for the current block based on the prediction samples and the (modified) residual samples. A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like may be further applied to the reconstructed picture.
  • FIG. 8 is a flowchart illustrating a video/video decoding method based on intra prediction.
  • the image decoding apparatus may perform an operation corresponding to an operation performed by the image encoding apparatus.
  • the decoding method of FIG. 8 may be performed by the video decoding apparatus of FIG. 3.
  • Dean systems S810 to S830 may be performed by the intra prediction unit 265, and the prediction information of step S810 and the residual information of step S840 may be obtained from the bitstream by the entropy decoding unit 210.
  • the residual processing unit of the image decoding apparatus may derive residual samples for the current block based on the residual information (S840).
  • the inverse quantization unit 220 of the residual processing unit derives transform coefficients by performing inverse quantization based on the quantized transform coefficients derived based on the residual information
  • the inverse transform unit of the residual processing unit ( 230) may derive residual samples for the current block by performing inverse transform on the transform coefficients.
  • Step S850 may be performed by the addition unit 235 or the restoration unit.
  • the image decoding apparatus may derive an intra prediction mode/type for the current block based on the received prediction information (intra prediction mode/type information) (S810).
  • the image decoding apparatus may derive neighboring reference samples of the current block (S820).
  • the image decoding apparatus may generate prediction samples in the current block based on the intra prediction mode/type and the neighboring reference samples (S830).
  • the image decoding apparatus may perform a prediction sample filtering procedure. Predictive sample filtering may be referred to as post filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
  • the image decoding apparatus may generate residual samples for the current block based on the received residual information (S840).
  • the image decoding apparatus may generate reconstructed samples for the current block based on the prediction samples and the residual samples, and derive a reconstructed block including the reconstructed samples (S850).
  • a reconstructed picture for the current picture may be generated based on the reconstructed block.
  • an in-loop filtering procedure or the like may be further applied to the reconstructed picture.
  • FIG. 9 is a diagram illustrating an exemplary configuration of an intra prediction unit 265 according to the present disclosure.
  • the intra prediction unit 265 of the image decoding apparatus may include an intra prediction mode/type determination unit 266, a reference sample derivation unit 267, and a prediction sample derivation unit 268. .
  • the intra prediction mode/type determiner 266 determines an intra prediction mode/type for the current block based on intra prediction mode/type information generated and signaled by the intra prediction mode/type determiner 186 of the image encoding apparatus.
  • the reference sample deriving unit 266 may derive neighboring reference samples of the current block from the reconstructed reference region in the current picture.
  • the prediction sample derivation unit 268 may derive prediction samples of the current block.
  • the intra prediction unit 265 may further include a prediction sample filter unit (not shown).
  • the intra prediction mode information may include, for example, flag information (ex. intra_luma_mpm_flag) indicating whether a most probable mode (MPM) is applied to the current block or a remaining mode is applied, and the When MPM is applied to the current block, the intra prediction mode information may further include index information (ex. intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates).
  • the intra prediction mode candidates (MPM candidates) may be composed of an MPM candidate list or an MPM list.
  • the intra prediction mode information includes remaining mode information (ex. intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates).
  • the image decoding apparatus may determine an intra prediction mode of the current block based on the intra prediction mode information.
  • a separate MPM list may be configured for the above-described ALWIP.
  • the MPM candidate modes may include an intra prediction mode and additional candidate modes of a neighboring block (eg, a left neighboring block and an upper neighboring block) of the current block.
  • the intra prediction technique information may be implemented in various forms.
  • the intra prediction technique information may include intra prediction technique index information indicating one of the intra prediction techniques.
  • the intra prediction method information includes reference sample line information (ex. intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if applied, a reference sample line (eg, intra_luma_ref_idx), and the ISP is the current block.
  • ISP flag information indicating whether it is applied to (ex. intra_subpartitions_mode_flag), ISP type information indicating the split type of subpartitions when the ISP is applied (ex.
  • intra_subpartitions_split_flag flag information indicating whether PDPC is applied, or LIP application It may include at least one of flag information indicating whether or not.
  • the ISP flag information may be referred to as an ISP application indicator.
  • the intra prediction type information may include an ALWIP flag indicating whether ALWIP is applied to the current block.
  • the intra prediction mode information and/or the intra prediction technique information may be encoded/decoded through the coding method described in this disclosure.
  • the intra prediction mode information and/or the intra prediction method information may be encoded/decoded through entropy coding (ex. CABAC, CAVLC) based on a truncated (rice) binary code.
  • an intra prediction mode applied to the current block may be determined using an intra prediction mode of a neighboring block.
  • the image decoding apparatus constructs an mpm (most probable mode) list derived based on the intra prediction mode and additional candidate modes of the neighboring block (ex. left and/or upper neighboring block) of the current block, and received One of the mpm candidates in the mpm list can be selected based on the mpm index.
  • the video decoding apparatus may select one of the remaining intra prediction modes that are not included in the mpm list based on the remaining intra prediction mode information.
  • intra prediction mode applied to the current block is among mpm candidates (ie, is included in the mpm list) or in the remaining mode may be indicated based on an mpm flag (ex. intra_luma_mpm_flag).
  • a value of 1 of the mpm flag may indicate that the intra prediction mode for the current block is in mpm candidates (mpm list), and a value of 0 of the mpm flag indicates that the intra prediction mode for the current block is in mpm candidates (mpm list). Can indicate none.
  • the mpm index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element
  • the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element.
  • the remaining intra prediction mode information may indicate one of all intra prediction modes by indexing the remaining intra prediction modes not included in the mpm candidates (mpm list) in the order of prediction mode numbers.
  • the intra prediction mode may be an intra prediction mode for a luma component (sample).
  • the intra prediction mode information may include at least one of the mpm flag (ex.
  • the MPM list may be referred to in various terms such as an MPM candidate list and candModeList.
  • FIG. 10 is a flowchart illustrating an intra prediction mode signaling procedure in an image encoding apparatus.
  • the apparatus for encoding an image may configure an MPM list for a current block (S1010).
  • the MPM list may include candidate intra prediction modes (MPM candidates) that are likely to be applied to the current block.
  • the MPM list may include intra prediction modes of neighboring blocks, or may further include specific intra prediction modes according to a predetermined method.
  • the image encoding apparatus may determine an intra prediction mode of the current block (S1020).
  • the video encoding apparatus may perform prediction based on various intra prediction modes, and may determine an optimal intra prediction mode by performing rate-distortion optimization (RDO) based thereon.
  • RDO rate-distortion optimization
  • the video encoding apparatus may determine the optimal intra prediction mode using only MPM candidates included in the MPM list, or further use the remaining intra prediction modes as well as the MPM candidates included in the MPM list. It is also possible to determine the intra prediction mode. Specifically, for example, if the intra prediction type of the current block is a specific type (eg, LIP, MRL, or ISP) other than the normal intra prediction type, the video encoding apparatus uses only the MPM candidates to determine the optimal intra prediction type.
  • a specific type eg, LIP, MRL, or ISP
  • the prediction mode can be determined. That is, in this case, the intra prediction mode for the current block may be determined only among the MPM candidates, and in this case, the mpm flag may not be encoded/signaled. In the case of the specific type, the video decoding apparatus may estimate that the mpm flag is 1 without separately signaling the mpm flag.
  • the video encoding apparatus may generate an mpm index (mpm idx) indicating one of the MPM candidates. If the intra prediction mode of the current block is not in the MPM list, remaining intra prediction mode information indicating the same mode as the intra prediction mode of the current block is generated among the remaining intra prediction modes not included in the MPM list. can do.
  • the image encoding apparatus may encode the intra prediction mode information and output it in the form of a bitstream (S1030).
  • the intra prediction mode information may include the aforementioned mpm flag, mpm index, and/or remaining intra prediction mode information.
  • the mpm index and the remaining intra prediction mode information are not signaled at the same time when indicating an intra prediction mode for one block with an alternative relationship. That is, when the mpm flag value is 1, the mpm index may be signaled, and when the mpm flag value is 0, the remaining intra prediction mode information may be signaled.
  • the mpm flag is not signaled and its value is inferred as 1, and only the mpm index may be signaled. That is, in this case, the intra prediction mode information may include only the mpm index.
  • S1020 is shown to be performed after S1010, but this is an example, and S1020 may be performed before S1010 or at the same time.
  • 11 is a flowchart illustrating a procedure for determining an intra prediction mode in an image decoding apparatus.
  • the image decoding apparatus may determine an intra prediction mode of the current block based on intra prediction mode information determined and signaled by the image encoding apparatus.
  • the apparatus for decoding an image may acquire intra prediction mode information from a bitstream (S1110).
  • the intra prediction mode information may include at least one of an mpm flag, an mpm index, and a remaining intra prediction mode.
  • the video decoding apparatus may configure an MPM list (S1120).
  • the MPM list is configured in the same way as the MPM list configured in the video encoding apparatus. That is, the MPM list may include intra prediction modes of neighboring blocks, or may further include specific intra prediction modes according to a predetermined method.
  • S1120 is shown to be performed after S1110, but this is an example, and S1120 may be performed before S1110 or at the same time.
  • the video decoding apparatus determines an intra prediction mode of the current block based on the MPM list and the intra prediction mode information (S1130). Step S1130 will be described in more detail with reference to FIG. 12.
  • FIG. 12 is a flowchart for describing a procedure for deriving an intra prediction mode in more detail.
  • Steps S1210 and S1220 of FIG. 12 may correspond to steps S1110 and S1120 of FIG. 11, respectively. Therefore, detailed descriptions of steps S1210 and S1220 are omitted.
  • the image decoding apparatus may obtain intra prediction mode information from the bitstream, configure an MPM list (S1210 and S1220), and determine a predetermined condition (S1230). Specifically, as shown in FIG. 12, when the value of the mpm flag is 1 (Yes in S1230), the video decoding apparatus selects a candidate indicated by the mpm index among MPM candidates in the MPM list in the intra prediction mode of the current block. It can be derived as (S1240). As another example, when the value of the mpm flag is 0 (No in S1230), the video decoding apparatus selects the intra prediction mode indicated by the remany intra prediction mode information among the remaining intra prediction modes not included in the MPM list. The intra prediction mode of the block may be derived (S1250).
  • the video decoding apparatus within the MPM list without checking the mpm flag A candidate indicated by the mpm index may be derived as an intra prediction mode of the current block (S1240).
  • FIG. 13 is a diagram illustrating an intra prediction direction according to an embodiment of the present disclosure.
  • the intra prediction mode may include two non-directional intra prediction modes and 33 directional intra prediction modes.
  • the non-directional intra prediction modes may include a planar intra prediction mode and a DC intra prediction mode, and the directional intra prediction modes may include 2 to 34 intra prediction modes.
  • the planar intra prediction mode may be referred to as a planner mode, and the DC intra prediction mode may be referred to as a DC mode.
  • the intra prediction mode includes two non-directional intra prediction modes and 65 extended directional intra prediction. It can include modes.
  • the non-directional intra prediction modes may include a planar mode and a DC mode, and the directional intra prediction modes may include 2 to 66 intra prediction modes.
  • the extended intra prediction modes can be applied to blocks of all sizes, and can be applied to both a luma component (a luma block) and a chroma component (a chroma block).
  • the intra prediction mode may include two non-directional intra prediction modes and 129 directional intra prediction modes.
  • the non-directional intra prediction modes may include a planar mode and a DC mode, and the directional intra prediction modes may include intra prediction modes 2 to 130.
  • the intra prediction mode may further include a cross-component linear model (CCLM) mode for chroma samples in addition to the aforementioned intra prediction modes.
  • CCLM cross-component linear model
  • the CCLM mode can be divided into L_CCLM, T_CCLM, and LT_CCLM, depending on whether left samples are considered, upper samples are considered, or both for LM parameter derivation, and can be applied only to a chroma component.
  • the intra prediction mode may be indexed, for example, as shown in Table 2 below.
  • an intra prediction mode in order to capture an arbitrary edge direction presented in a natural video, includes 93 directions along with two non-directional intra prediction modes. It may include an intra prediction mode. Non-directional intra prediction modes may include planar mode and DC mode.
  • the directional intra prediction mode may include an intra prediction mode consisting of times 2 to 80 and -1 to -14 as indicated by the arrows in FIG. 14.
  • the planner mode may be indicated as INTRA_PLANAR, and the DC mode may be indicated as INTRA_DC.
  • the directional intra prediction mode may be expressed as INTRA_ANGULAR-14 to INTRA_ANGULAR-1 and INTRA_ANGULAR2 to INTRA_ANGULAR80.
  • an MPM list for the ALWIP may be separately configured, and the intra prediction mode for the ALWIP
  • the MPM flag that may be included in the information may be referred to as intra_lwip_mpm_flag
  • the MPM index may be referred to as intra_lwip_mpm_idx
  • the remaining intra prediction mode information may be referred to as intra_lwip_mpm_remainder.
  • various prediction modes may be used for ALWIP, and a matrix and an offset for ALWIP may be derived according to an intra prediction mode for ALWIP.
  • the matrix may be referred to as a (affine) weight matrix
  • the offset may be referred to as a (afine) offset vector or a (afine) bias vector.
  • the number of intra prediction modes for the ALWIP may be differently set based on the size of the current block. For example, i) when the height and width of the current block (ex.
  • intra prediction modes 0 to 34 35 intra prediction modes (ie, intra prediction modes 0 to 34) may be available, and ii) the current
  • 19 intra prediction modes ie, intra prediction modes 0 to 18
  • 11 intra prediction modes ie, intra prediction modes
  • Prediction modes 0 to 10 35 intra prediction modes (ie, intra prediction modes 0 to 34)
  • 19 intra prediction modes ie, intra prediction modes 0 to 18
  • 11 intra prediction modes ie, intra prediction modes
  • Prediction modes 0 to 10 11 intra prediction modes (ie, intra prediction modes) Prediction modes 0 to 10) may be available.
  • the block size type is 0, when the height and width of the current block are both 8 or less, the block size type is called 1, and other cases are the block size type.
  • Table 3 the number of intra prediction modes for ALWIP can be summarized as shown in Table 3. However, this is an example, and the block size type and the number of available intra prediction modes may be changed.
  • the MPM list may be configured to include N MPMs.
  • N may be 5 or 6.
  • two neighboring blocks that is, a left peripheral block A and an upper peripheral block B may be considered.
  • initialized default MPM may be considered to construct the MPM list.
  • An MPM list may be configured by performing a pruning process for the two peripheral intra modes.
  • the MPM list includes ⁇ A, Planar, DC ⁇ modes, and may include three derived intra modes. .
  • the three derived intra modes can be obtained by adding a predetermined offset value to the peripheral intra mode and/or performing a modulo operation.
  • the two peripheral intra modes are different from each other, the two peripheral intra modes are allocated as a first MPM mode and a second MPM mode, and the remaining four MPM modes may be derived from default modes and/or peripheral intra modes.
  • a pruning process may be performed to prevent overlapping of the same mode in the MPM list.
  • Truncated Binary Code (TBC) may be used for entropy encoding of modes other than the MPM mode.
  • the above-described MPM list construction method can be used when ALWIP is not applied to the current block.
  • the above-described MPM list construction method may be used for LIP, PDPC, MRL, and ISP intra prediction, or for deriving an intra prediction mode used in normal intra prediction.
  • the left neighboring block or the upper neighboring block may be coded based on the above-described ALWIP. That is, ALWIP may be applied when coding the left neighboring block or the upper neighboring block. In this case, it is inappropriate to use the ALWIP intra prediction mode number of the neighboring block to which ALWIP is applied (left neighboring block/upper neighboring block) in the MPM list for the current block to which ALWIP is not applied.
  • the intra prediction mode of the neighboring block (left neighboring block/upper neighboring block) to which ALWIP is applied may be regarded as a DC or planar mode. That is, when configuring the MPM list of the current block, the intra prediction mode of the neighboring block encoded with ALWIP may be replaced with a DC or planar mode.
  • an intra prediction mode of a neighboring block (left neighboring block/upper neighboring block) to which ALWIP is applied may be mapped to a general intra prediction mode based on a mapping table and used to construct an MPM list of the current block. In this case, the mapping may be performed based on the block size type of the current block.
  • the mapping table may be represented as Table 4.
  • ALWIP IntraPredMode represents an ALWIP intra prediction mode of a neighboring block (left neighboring block/upper neighboring block)
  • block size type (sizeId) represents a block size type of a neighboring block or a current block.
  • Numbers under the block size type values of 0, 1, and 2 indicate a general intra prediction mode to which the ALWIP intra prediction mode is mapped in case of each block size type. For example, when the block size type of the current block is 0 and the ALWIP intra prediction mode number of the neighboring block is 10, the mapped general intra prediction mode number may be 18. However, the mapping relationship is an example and may be changed.
  • an MPM list for the current block to which the ALWIP is applied may be separately configured.
  • the MPM list may be called by various names such as an ALWIP MPM list (or LWIP MPM list, candLwipModeList) to distinguish it from the MPM list when ALWIP is not applied to the current block.
  • ALWIP MPM list or LWIP MPM list, candLwipModeList
  • the ALWIP MPM list may include n candidates, for example, n may be 3.
  • the ALWIP MPM list may be configured based on a left neighboring block and an upper neighboring block of the current block.
  • the left neighboring block may represent the uppermost block among neighboring blocks adjacent to the left boundary of the current block.
  • the upper neighboring block may represent a leftmost block among neighboring blocks adjacent to the upper boundary of the current block.
  • a first candidate intra prediction mode (or candLwipModeA) may be set to be the same as the ALWIP intra prediction mode of the left neighboring block.
  • the second candidate intra prediction mode (or candLwipModeB) may be set to be the same as the ALWIP intra prediction mode of the upper neighboring block.
  • the left neighboring block or the upper neighboring block may be coded based on intra prediction rather than ALWIP. That is, when coding the left neighboring block or the upper neighboring block, an intra prediction type other than ALWIP may be applied.
  • the ALWIP intra prediction mode of a neighboring block to which ALWIP is not applied is considered to be an ALWIP intra prediction mode of a specific value (ex. 0, 1 or 2, etc.). can do.
  • a general intra prediction mode of a neighboring block (left neighboring block/upper neighboring block) to which ALWIP is not applied may be mapped to an ALWIP intra prediction mode based on a mapping table, and used to construct an ALWIP MPM list.
  • the mapping may be performed based on the block size type of the current block.
  • the mapping table may be represented as Table 5.
  • IntraPredModeY represents an intra prediction mode of a neighboring block (left neighboring block/upper neighboring block).
  • the intra prediction mode of the neighboring block may be an intra prediction mode for a luma component (sample), that is, a luma intra prediction mode.
  • block size type sizeId represents a block size type of a neighboring block or a current block. Numbers below the block size type values of 0, 1, and 2 indicate the ALWIP intra prediction mode to which the normal intra prediction mode is mapped in case of each block size type. For example, when the block size type of the current block is 0 and the general intra prediction mode of the neighboring block is 10, the mapped ALWIP intra prediction mode number may be 9. However, the mapping relationship is an example and may be changed.
  • ALWIP is applied to the neighboring blocks. Even if it is, the ALWIP intra prediction mode of the neighboring block may not be available for the current block according to the block size type.
  • a specific ALWIP intra prediction mode predefined for the first candidate and/or the second candidate may be used as the first candidate intra prediction mode or the second candidate intra prediction mode.
  • a specific ALWIP intra prediction mode predefined for the third candidate may be used as the third candidate intra prediction mode.
  • the predefined specific ALWIP intra prediction mode may be represented as shown in Table 6.
  • the ALWIP MPM list may be configured based on the first candidate intra prediction mode and the second candidate intra prediction mode. For example, when the first candidate intra prediction mode and the second candidate intra prediction mode are different from each other, the first candidate intra prediction mode is put as the 0th candidate (ex. lwipMpmcand[0]) of the ALWIP MPM list, and The second candidate intra prediction mode may be put as a first candidate (ex. lwipMpmcand[1]) of the ALWIP MPM list. As the second candidate (ex. lwipMpmcand[2]) of the ALWIP MPM list, the above-described specific ALWIP intra prediction mode may be used.
  • one of the first candidate intra prediction mode and the second candidate intra prediction mode is selected as the 0th candidate of the ALWIP MPM list (ex. lwipMpmcand[0]), and the first candidate of the ALWIP MPM list (ex. lwipMpmcand[1]) and the second candidate of the ALWIP MPM list (ex. lwipMpmcand[2]) are the aforementioned predefined specific ALWIP Intra prediction modes can be used.
  • the ALWIP intra prediction mode of the current block may be derived based on the ALWIP MPM list.
  • the MPM flag that may be included in the intra prediction mode information for the ALWIP may be referred to as intra_lwip_mpm_flag
  • the MPM index may be referred to as intra_lwip_mpm_idx
  • the remaining intra prediction mode information may be referred to as intra_lwip_mpm_remainder.
  • the procedure for deriving an ALWIP intra prediction mode from the ALWIP MPM list may be performed as described above with reference to FIGS. 10 and 11.
  • the ALWIP intra prediction mode of the current block may be signaled directly.
  • Affine linear weighted intra prediction (ALWIP)
  • ALWIP may also be called Matrix weighted intra prediction (MWIP) or Matrix based intra prediction (MIP).
  • MWIP Matrix weighted intra prediction
  • MIP Matrix based intra prediction
  • One line including reconstructed peripheral boundary samples may be used as an input.
  • the reconstructed peripheral boundary samples that are not available can be replaced with available samples according to the method performed in conventional intra prediction.
  • the process of generating a prediction signal by applying ALWIP may include the following three steps.
  • Step 2 A reduced prediction signal for a subsampled set of samples in an original block by performing matrix vector multiplication by taking the averaged sample values as input and adding an offset. prediction signal).
  • Step 3 (linear) Interpolation process: A prediction signal at a remaining position may be generated by linearly interpolating a prediction signal for the subsample set.
  • the linear interpolation may be a single step linear interpolation in each direction.
  • the matrix and offset required to generate the prediction signal may be obtained from three matrix sets S 0 , S 1 , and S 2 .
  • the set S 0 may consist of 18 matrices and 18 offset vectors. In this case, each matrix is composed of 16 rows and 4 columns, and the size of each offset vector may be 16.
  • the matrix and offset vector of the set S 0 can be used for blocks of size 4x4.
  • Set S 1 may consist of 10 matrices and 10 offset vectors.
  • each matrix is composed of 16 rows and 8 columns, and the size of each offset vector may be 16.
  • the matrix and offset vector of the set S 1 can be used for blocks of size 4x8, 8x4 and 8x8.
  • Set S 2 may consist of 6 matrices and 6 offset vectors.
  • each matrix is composed of 64 rows and 8 columns, and the size of each offset vector may be 64.
  • the matrix and offset vectors of set S 2 can be used for all other types of blocks.
  • the total number of multiplications required for matrix vector multiplication is always less than or equal to 4xWxH. That is, a maximum of 4 multiplications per sample is required for the ALWIP mode.
  • FIGS. 15 to 18 Blocks other than the blocks shown in FIGS. 15 to 18 may be processed by one of the methods described with reference to FIGS. 15 to 18.
  • 15 is a diagram illustrating an ALWIP process for a 4x4 block.
  • two average values may be obtained along each boundary. That is, two average values (bdry top ) may be obtained by selecting and averaging two peripheral boundary samples at the top of the current block. In addition, two average values (bdry left ) may be obtained by selecting and averaging two peripheral border samples on the left side of the current block.
  • matrix vector multiplication may be performed by inputting four sample values (bdry red ) generated in the averaging step.
  • the matrix A k may be obtained from the set S 0 using the ALWIP mode k.
  • 16 final prediction samples may be generated. In this case, linear interpolation is not necessary.
  • 16 is a diagram illustrating an ALWIP process for an 8x8 block.
  • each boundary four average values (bdry top ) can be obtained by selecting and averaging two peripheral border samples at the top of the current block.
  • four average values (bdry left ) may be obtained by selecting and averaging two peripheral border samples on the left side of the current block.
  • matrix vector multiplication may be performed by inputting eight sample values (bdry red ) generated in the averaging step.
  • the matrix A k may be obtained from the set S 1 using the ALWIP mode k.
  • 16 odd-numbered samples (pred red ) in the prediction block may be generated.
  • 17 is a diagram illustrating an ALWIP process for an 8x4 block.
  • four average values may be obtained along the horizontal boundary. That is, four average values (bdry top ) can be obtained by selecting and averaging two peripheral border samples at the top of the current block. In addition, four peripheral boundary samples (bdry left ) of the left side of the current block may be obtained. Thereafter, matrix vector multiplication may be performed by inputting eight sample values (bdry red ) generated in the averaging step. In this case, the matrix A k may be obtained from the set S 1 using the ALWIP mode k. As a result of adding the offset b k to the result of performing the matrix vector multiplication, samples (pred red ) at 16 positions in the prediction block may be generated.
  • the ALWIP process for the 4x8 block may be a transposed process of the process for the 8x4 block.
  • 18 is a diagram illustrating an ALWIP process for a 16x16 block.
  • four average values may be obtained along the boundary. For example, eight average values may be obtained by selecting and averaging two peripheral boundary samples of the current block, and four average values may be obtained by selecting and averaging two of the eight sample values. Alternatively, four average values may be obtained by selecting and averaging four perimeter samples of the current block.
  • matrix vector multiplication may be performed by inputting eight sample values (bdry red ) generated in the averaging step.
  • the matrix A k may be obtained from the set S 2 using the ALWIP mode k.
  • 16 odd-numbered samples (pred red ) in the prediction block may be generated.
  • pred red includes 32 samples, and only horizontal interpolation can be performed.
  • the ALWIP process for the 8xH block or 4xH block may be a transposed process of the process for the Wx8 block or the Wx4 block.
  • FIG. 19 is a diagram illustrating an averaging step in an ALWIP process according to the present disclosure.
  • Averaging can be applied to each of the left boundary and/or the upper boundary of the current block.
  • the boundary represents neighboring reference samples adjacent to the boundary of the current block, like the gray samples shown in FIG. 19.
  • the left boundary bdry left indicates left peripheral reference samples adjacent to the left boundary of the current block.
  • the upper boundary bdry top represents reference samples around the upper edge adjacent to the upper boundary of the current block.
  • each boundary size may be reduced to two samples based on an averaging process. If the current block is a block other than a 4x4 block, each boundary size may be reduced to 4 samples based on an averaging process.
  • the input bounds bdry top and bdry left are smaller bounds And Can be reduced to And
  • a 4x4 block may be composed of 2 samples, and in the other case, may be composed of 4 samples.
  • Equation 1 Can be created.
  • Equation 1 i may have a value of 0 or more and less than 2.
  • Equation 1 similarly to Equation 1 above Can be created.
  • Equation 2 i may have a value of 0 or more and less than 4. Also, similar to Equation 2 Can be created.
  • the reduced boundary vector may have a size of 4 for 4x4 blocks and 8 for other blocks. Equation 3 is according to the mode (ALWIP mode) and the size of the block (W, H) And Shows how to create bdry red by connecting them.
  • Equation 3 according to the size (W, H) of the current block and the ALWIP mode, And The order of connecting may be different. For example, when the current block is a 4x4 block and the mode is less than 18, bdry red is Since the Can be created by connecting Or, for example, when the current block is a 4x4 block, and the mode is 18 or greater than 18, bdry red is Since the Can be created by connecting or And
  • the order of concatenation may be determined based on information (eg, flag information) signaled through the bitstream.
  • Equation 4 i may have a value of 0 or more and less than 8.
  • min(W, H)>8 and W ⁇ H similarly to Equation 4 Can be created.
  • a reduced prediction signal pred red may be generated using the bdry red generated in the averaging step.
  • the reduced prediction signal pred red may be a signal of a downsampled block having a size of W red x H red .
  • W red and H red may be defined as in Equation 5.
  • the reduced prediction signal pred red may be generated by adding matrix vector multiplication and offset as shown in Equation 6.
  • A may be a matrix composed of W red x H red rows and 4 columns (when the current block is a 4x4 block) or 8 columns (otherwise).
  • the offset vector b may be a vector of W red xH red size.
  • the matrix A and the offset vector b can be obtained from the matrix sets S 0 , S 1 , and S 2 as follows.
  • the index (idx) may be set to idx (W, H) according to Equation 7. That is, idx may be set based on the width (W) and height (H) of the current block.
  • variable m may be set based on the ALWIP mode and the width (W) and height (H) of the current block.
  • the matrix A is And the offset vector b is Can be determined as When the index idx is 2 and min(W, H) is 4, the matrix A is, when W is 4, It is created by omitting all rows corresponding to odd x coordinates in the downsampled block in, or if H is 4, It can be created by omitting all rows corresponding to odd y-coordinates in the downsampled block at.
  • the interpolation process may be referred to as a linear interpolation or a bilinear interpolation process.
  • the interpolation process may include two steps: vertical interpolation and horizontal interpolation.
  • 20 is a diagram for explaining an interpolation step in an ALWIP process according to the present disclosure.
  • the prediction signal may be generated by linear interpolation of the reduced prediction signal pred red (W red xH red ).
  • linear interpolation can be performed in a vertical direction, a horizontal direction, or in both directions.
  • W ⁇ H the horizontal direction is performed first, otherwise, the vertical direction may be performed first.
  • FIG. 20 for example, in the case of an 8x8 block, vertical interpolation is first performed, and then horizontal interpolation is performed to generate a final prediction signal pred.
  • An extended reduced prediction signal may be generated by Equation 10.
  • a vertically interpolated prediction signal may be generated by performing vertically linear interpolation using Equation (11).
  • Linear interpolation in the horizontal direction may be performed similarly to the linear interpolation in the vertical direction.
  • the row and column, x-coordinate and y-coordinate can be reversed, respectively.
  • the expanded reduced prediction signal may be an extension of the reduced prediction signal to the left boundary.
  • a prediction signal of the current block may be finally generated.
  • the video encoding apparatus may derive a residual block (residual samples) based on a block (prediction samples) predicted through intra/inter/IBC prediction, etc., and the derived residual samples It is possible to derive quantized transform coefficients by applying transform and quantization.
  • Information on the quantized transform coefficients may be included in the residual coding syntax and output in a bitstream form after encoding.
  • the image decoding apparatus may obtain information (residual information) on the quantized transform coefficients from the bitstream, and decode the quantized transform coefficients to derive the quantized transform coefficients.
  • the image decoding apparatus may derive residual samples through inverse quantization/inverse transformation based on the quantized transform coefficients.
  • the transform/inverse quantization and/or transform/inverse transformation may be omitted.
  • the transform coefficient may be called a coefficient or a residual coefficient, or may still be called a transform coefficient for uniformity of expression. Whether or not the transform/inverse transform is omitted may be signaled based on transform_skip_flag.
  • the transform/inverse transform may be performed based on transform kernel(s).
  • a multiple transform selection (MTS) scheme may be applied.
  • some of a plurality of transform kernel sets may be selected and applied to the current block.
  • the transformation kernel can be referred to in various terms such as transformation matrix and transformation type.
  • the transform kernel set may represent a combination of a vertical transform kernel (vertical transform kernel) and a horizontal transform kernel (horizontal transform kernel).
  • MTS index information eg, tu_mts_idx syntax element
  • the conversion kernel set according to the value of the MTS index information may be shown in Table 7.
  • tu_mts_idx represents MTS index information
  • trTypeHor and trTypeVer represent a horizontal transformation kernel and a vertical transformation kernel, respectively.
  • the transform kernel set may be determined based on, for example, cu_sbt_horizontal_flag and cu__sbt_pos_flag.
  • cu_sbt_horizontal_flag has a value of 1, it may indicate that the current block is horizontally divided into two transform blocks, and when it has a value of 0, it may indicate that the current block is vertically divided into two transform blocks.
  • cu_sbt_pos_flag When cu_sbt_pos_flag has a value of 1, it indicates that tu_cbf_luma, tu_cbf_cb, and tu_cbf_cr for the first transform block of the current block do not exist in the bitstream, and when it has a value of 0, tu_cbf_luma, tu_cbf_cb for the second transform block of the current block And tu_cbf_cr may not exist in the bitstream.
  • tu_cbf_luma, tu_cbf_cb, and tu_cbf_cr may be syntax elements indicating whether the transform block of the corresponding color component (luma, cb, cr) includes at least one non-zero transform coefficient. For example, when tu_cbf_luma has a value of 1, it may indicate that the corresponding luma transform block includes at least one non-zero transform coefficient.
  • trTypeHor and trTypeVer may be determined according to Table 8 below based on cu_sbt_horizontal_flag and cu__sbt_pos_flag.
  • trTpeHor and trTypeVer may be determined as 1, respectively.
  • the transform kernel set may be determined based on, for example, an intra prediction mode for a current block.
  • the MTS-based transform is applied to a primary transform, and additionally, a secondary transform may be further applied.
  • the second-order transform may be applied only to coefficients in the upper left wxh region of the coefficient block to which the first-order transform is applied, and may be referred to as a reduced secondary transform (RST).
  • RST reduced secondary transform
  • w and/or h may be 4 or 8.
  • the first-order transform and the second-order transform may be sequentially applied to the residual block, and in the inverse transform, the second-order inverse transform and the first-order inverse transform may be sequentially applied to the transform coefficients.
  • the second-order transform (RST transform) may be referred to as a low frequency coefficients transform (LFC transform or LFCT).
  • the second-order inverse transform may be referred to as an inverse LFC transform or an inverse LFCT.
  • 21 is a diagram for describing a transformation method applied to a residual block.
  • the transform unit 120 of the image encoding apparatus receives residual samples, performs a primary transform, generates transform coefficients A, and generates a second transform (Secondary Transform). ) To generate transform coefficients B.
  • the inverse transform unit 150 of the image encoding apparatus and the inverse transform unit 230 of the image decoding apparatus receive transform coefficients B and perform Inverse Secondary Transform to generate transform coefficients A, Residual samples may be generated by performing Inverse Primary Transform.
  • the first-order transformation and the first-order inverse transformation may be performed based on MTS.
  • the second-order transform and the second-order inverse transform may be performed only in the low-frequency region (the upper left wxh region of the block).
  • the transformation/inverse transformation may be performed in units of CU (coding unit) or TU (transformation unit). That is, the transform/inverse transform may be applied to residual samples in a CU or residual samples in a TU.
  • the CU size and the TU size may be the same, or a plurality of TUs may exist in the CU region.
  • the CU size may generally indicate the size of a luma component (sample) and CB (coding block).
  • the TU size may generally indicate a luma component (sample) and TB (transform block) size. Chroma component (sample) CB or TB size depends on the color format (chroma format, ex.
  • the TU size may be derived based on maxTbSize.
  • maxTbSize may mean a maximum size that can be converted.
  • a plurality of TUs (TBs) of the maxTbSize may be derived from the CU, and transformation/inverse transformation may be performed in units of the TU (TB).
  • the maxTbSize may be considered to determine whether to apply various intra prediction types such as ISP.
  • the information on the maxTbSize may be determined in advance, or may be generated and encoded by an image encoding apparatus and signaled to an image decoding apparatus.
  • the secondary transform of the present disclosure may be a mode-dependent non-separable secondary transform (MDNSST).
  • MDNSST can be applied only to coefficients in the low frequency domain after the first-order transform is performed.
  • W and H the height of the current transform coefficient block are 8 or more
  • an 8x8 non-separable secondary transform may be applied to the upper left 8x8 region of the current transform coefficient block.
  • W or H is less than 8
  • a 4x4 non-separable secondary transform can be applied to the upper left min(8, W) x min(8, H) region of the current transform coefficient block. have.
  • a total of 35x3 non-separated quadratic transforms are available for 4x4 blocks and 8x8 blocks.
  • 35 denotes the number of transform sets specified by the intra prediction mode
  • 3 denotes the number of NSST candidates (candidate kernels) for each intra prediction mode.
  • the mapping relationship between the intra prediction mode and the corresponding transform set may be shown in Table 9, for example.
  • the transform set for the quadratic transformation (inverse transformation) may be set 0.
  • the index NSST Idx may be encoded and signaled.
  • an NSST Idx having a value of 0 may be signaled.
  • MDNSST may not be applied to the transform skipped block.
  • NSST Idx When an NSST Idx having a non-zero value for the current CU is signaled, MDNSST may not be applied to a block of a component for which the current intra-CU transformation is skipped. When transformation is skipped for blocks of all components in the current CU, or when the number of non-zero coefficients of the block in which the transformation is performed is less than 2, NSST Idx may not be signaled for the current CU. If NSST Idx is not signaled, its value can be inferred as 0.
  • NSST is not applied to the entire block (TU in the case of HEVC) to which the first-order transform is applied, but can be applied only to the top-left 8x8 area or 4x4 area. For example, if the size of the block is 8x8 or more, 8x8 NSST may be applied, and if it is less than 8x8, 4x4 NSST may be applied. In addition, when 8x8 NSST is applied, 4x4 NSST may be applied to each after dividing into 4x4 blocks.
  • Both the 8x8 NSST and 4x4 NSST follow the configuration of the transform set described above, and as they are non-separable transforms, the 8x8 NSST receives 64 data and outputs 64 data, and the 4x4 NSST has 16 inputs and 16 outputs.
  • NSST/RT/RST may be referred to as a low frequency non-seperable transform (LFNST).
  • LFNST can be applied in a non-separated transform form based on a transform kernel (transform matrix or transform matrix kernel) for low-frequency transform coefficients located in the upper left region of the transform coefficient block.
  • the NSST index or (R)ST index may be referred to as an LFNST index.
  • an index (NSST idx or st_idx syntax) for LFNST may be transmitted in the same manner as before. That is, an index for specifying one of the transform kernels constituting the LFNST transform set for the current block to which the MIP is applied may be transmitted.
  • Table 10 shows the syntax of a CU according to an embodiment of the present disclosure.
  • intra_mip_flag[ x0 ][ y0 ] when intra_mip_flag[ x0 ][ y0 ] has a value of 1, it indicates that MIP is applied to the luma samples of the current CU, and when it has a value of 0, it may indicate that MIP is not applied. If intra_mip_flag[ x0 ][ y0 ] does not exist in the bitstream, its value can be inferred as 0.
  • intra_mip_mpm_flag[ x0 ][ y0 ], intra_mip_mpm_idx[ x0 ][ y0 ] and intra_mip_mpm_remainder[ x0 ] MIP modes for luma samples can be used to specify the luma samples.
  • the coordinate (x0, y0) may be the upper left position of the luma samples of the current coding block.
  • intra_mip_mpm_flag[ x0 ][ y0 ] When intra_mip_mpm_flag[ x0 ][ y0 ] has a value of 1, it may indicate that the MIP mode is derived from an intra-predicted CU surrounding the current CU. If intra_mip_mpm_flag[ x0 ][ y0 ] does not exist in the bitstream, its value can be deduced as 1.
  • st_idx[x0][y0] may specify conversion kernels (LFNST kernels) applied to LFNST for the current block. That is, st_idx may indicate one of the transform kernels included in the LFNST transform set. As described above, the LFNST transform set may be determined based on the intra prediction mode and the block size of the current block. In this disclosure, st_idx may be referred to as lfnst_idx.
  • MIP technology uses a different number of MIP modes depending on the block size. For example, when cbWidth and cbHeight represent the width and height of the current block, a variable (sizeId) for classifying the block size may be derived as follows.
  • sizeId When both cbWidth and cbHeight are 4, sizeId may be set to 0. Otherwise, when both cbWidth and cbHeight are 8 or less, sizeId may be set to 1. In all other cases, sizeId may be set to 2. For example, when the current block is 16x16, sizeId may be set to 2.
  • Table 11 shows the number of available MIP modes according to the sizeId.
  • the LFNST technique may determine a transform set (lfnstSetIdx) with reference to Table 12 based on 67 intra prediction modes (lfnstPredModeIntra).
  • LfnstPredModeIntra of Table 12 is a mode derived based on the intra prediction mode of the current block, and includes the wide-angle mode and the CCLM modes described with reference to FIG. 14. Accordingly, lfnstPredModeIntra of Table 12 may have a value of 0 to 83.
  • an index of a transform set of LFNST may be determined by transforming the MIP mode into an existing intra prediction mode (a mode described with reference to FIGS. 13 and 14). Specifically, based on the MIP mode and the block size (sizeId) of the current block, an intra prediction mode for determining the index of the transform set may be determined with reference to Table 13.
  • MIP mode indicates the MIP mode of the current block
  • sizeId indicates the size type of the current block.
  • numbers below sizeId 0, 1, and 2 indicate a general intra prediction mode (eg, one of 67 general intra prediction modes) mapped to the MIP mode for each block size type.
  • the mapping relationship is an example and may be changed.
  • the mapped general intra prediction mode number may be 18.
  • lfnstSetIdx has a value of 2 according to Table 12, and the LFNST transform set may be determined based on this. That is, an LFNST transform set having a value of 2 is selected, and a transform kernel indicated by st_idx (or lfnst_idx) among transform kernels included in the corresponding transform set may be used for the second transform/inverse transform of the current block.
  • 22 is a flowchart illustrating a method of performing a quadratic transformation/inverse transformation according to the present disclosure.
  • the image encoding apparatus may perform second-order transform on transform coefficients generated by performing first-order transform according to the order shown in FIG. 22.
  • the image decoding apparatus may perform second-order inverse transformation on transform coefficients reconstructed from a bitstream according to the order shown in FIG. 22.
  • LFNST LFNST is applied to the current transform block (S2210). Determination of whether LFNST is applied may be performed based on, for example, st_idx or lfnst_idx (NSST idx) restored from the bitstream. If LFNST is not applied, second-order transform/inverse transform may not be performed for the current transform block.
  • LFNST it may be determined whether MIP is applied to the current block (S2220). Whether MIP is applied to the current block may be determined using the aforementioned flag information (eg, intra_mip_flag).
  • an intra prediction mode for determining the LFNST transform set may be derived (S2230).
  • an intra prediction mode for determining an LFNST transform set based on the MIP mode may be derived.
  • the MIP mode may be restored based on information signaled through a bitstream.
  • the derivation of the intra prediction mode based on the MIP mode may be performed by a method previously set in the image encoding apparatus and the image decoding apparatus.
  • step S2230 may be performed using a mapping table between the MIP mode and the intra prediction mode.
  • the method is not limited to the above method, and for example, when MIP is applied, an intra prediction mode (eg, a planar mode) may be derived to a predefined intra prediction mode to determine an LFNST transform set.
  • an LFNST transform set may be determined based on the derived intra prediction mode (S2240).
  • the intra prediction mode of the current block may be used to determine the LFNST transform set (S2240).
  • Step S2240 may correspond to the process of determining lfnstSetIdx described with reference to Table 12.
  • a transform kernel to be used for the second transform/inverse transform of the current transform block may be selected (S2250). The selection of a conversion kernel may be performed based on, for example, st_idx or lfnst_idx restored from the bitstream.
  • a second-order transform/inverse transform may be performed on the current transform block using the selected transform kernel (S2260).
  • the video encoding apparatus may determine an optimal mode by comparing the rate-distortion cost. Accordingly, the apparatus for encoding an image may use the above-described flag information to determine step S2210 or step S2220, but is not limited thereto.
  • the image decoding apparatus may perform a determination of step S2210 or step S2220 based on information signaled through a bitstream from the image encoding device.
  • LFNST when LFNST is applied to a block to which MIP is applied, since an intra prediction mode for determining an LFNST transform set can be derived, a more efficient LFNST can be performed. There is.
  • FIG. 23 is a diagram for describing a method performed in an image decoding apparatus based on whether MIP and LFNST are applied according to another embodiment of the present disclosure.
  • an index (st_idx or lfnst_idx) for LFNST may not be transmitted. That is, when MIP is applied to the current block, the LFNST index is inferred as a value of 0, which may mean that the LFNST technique is not applied to the current block.
  • MIP Mobility Management Entity
  • Whether MIP is applied to the current block may be determined using the above-described flag information (eg, intra_mip_flag).
  • MIP prediction is performed (S2320), and it may be determined that LFNST is not applied. Accordingly, the second-order inverse transform may not be performed, and a first-order inverse transform may be performed on the transform coefficient (S2360). Thereafter, the current block may be reconstructed based on the prediction block generated by applying MIP and the residual block generated by inverse transform (S2370).
  • normal intra prediction may be performed on the current block (S2330).
  • step S2340 it may be determined whether LFNST is applied to the current block (S2340).
  • the determination of step S2340 may be performed based on st_idx or lfnst_idx (NSST idx) restored from the bitstream. For example, when st_idx is 0, LFNST is not applied, and when st_idx is greater than 0, it may be determined that LFNST is applied.
  • the second-order inverse transform for the current transform block is not performed, and the first-order inverse transform may be performed for the transform coefficient (S2360).
  • the current block may be reconstructed based on a prediction block generated by normal intra prediction and a residual block generated by inverse transform (S2370).
  • the first inverse transform may be performed (S2360).
  • the current block may be reconstructed based on a prediction block generated by normal intra prediction and a residual block generated by inverse transform (S2370).
  • the second-order inverse transform of step S2350 may be performed based on the selected transform kernel after determining the LFNST transform set based on the intra prediction mode, selecting a transform kernel to be used for the second-order inverse transform based on st_idx.
  • Table 14 shows the syntax of a CU according to the embodiment shown in FIG. 23.
  • st_idx can be included in the bitstream only when intra_mip_flag is 0. Therefore, when intra_mip_flag is 1, that is, when MIP is applied to the current block, st_idx is not included in the bitstream. If st_idx does not exist in the bitstream, its value is inferred as 0, and thus, it may be determined that LFNST is not applied to the current block.
  • the LFNST index is not transmitted to the block to which the MIP is applied, the amount of bits for encoding the corresponding index may be reduced.
  • FIG. 24 is a diagram for describing a method performed by an image encoding apparatus based on whether MIP and LFNST are applied according to another embodiment of the present disclosure.
  • the encoding method illustrated in FIG. 24 may correspond to the decoding method illustrated in FIG. 23.
  • MIP Mobility Management Entity
  • Whether MIP is applied to the current block may be determined using the above-described flag information (eg, intra_mip_flag).
  • flag information eg, intra_mip_flag
  • the present invention is not limited thereto, and the image encoding apparatus may perform step S2410 in various ways.
  • MIP prediction is performed (S2420), and it may be determined that LFNST is not applied. Accordingly, a residual block of the current block may be generated based on a prediction block generated by performing MIP without performing a second-order transform, and a first-order transform may be performed on the residual block of the current block (S2430). .
  • the transform coefficient generated by the transform may be encoded in the bitstream (S2480).
  • normal intra prediction may be performed on the current block (S2440).
  • a residual block of the current block may be generated based on a prediction block generated by performing normal intra prediction, and a first-order transform may be performed on the generated residual block (S2450).
  • it may be determined whether LFNST is applied to the current block (S2460). The determination of step S2460 may be performed based on st_idx or lfnst_idx (NSST idx).
  • LFNST when st_idx is 0, LFNST is not applied, and when st_idx is greater than 0, it may be determined that LFNST is applied.
  • the present invention is not limited thereto, and the image encoding apparatus may perform step S2460 in various ways.
  • transform coefficients generated by first-order transform may not be second-order transform and may be encoded in the bitstream (S2480).
  • a second-order transform may be performed on a transform coefficient generated by the first-order transform (S2470).
  • the transform coefficients generated by the quadratic transformation may be encoded in the bitstream (S2480).
  • the second-order transform in step S2470 may be performed based on the selected transform kernel after determining the LFNST transform set based on the intra prediction mode, selecting a transform kernel to be used for the second inverse transform.
  • st_idx may be encoded and signaled.
  • the LFNST index may be derived and used according to a predetermined method without signaling the LFNST index for the block to which the MIP is applied.
  • the second-order transform/inverse transform process may be performed according to the method described with reference to FIG. 22, and the selection of the transform kernel in step S2250 may be performed based on the LFNST index derived according to the predetermined method.
  • a separate optimized transformation kernel for a block to which MIP is applied may be defined and used in advance. According to the present embodiment, while selecting an optimal LFNST kernel for a block to which MIP is applied, it is possible to reduce the amount of bits for encoding it.
  • the derivation of the LFNST index may be performed based on at least one of a reference line index for intra prediction, an intra prediction mode, a block size, and whether MIP is applied.
  • the MIP mode may be transformed or mapped to a general intra prediction mode as in the embodiment described with reference to FIG. 22.
  • the syntax of the CU may be the same as in Table 14.
  • a binarization method of an LFNST index may be adaptively performed on a block to which the MIP technology is applied. More specifically, the number of applicable LFNST conversion kernels may be used differently depending on whether MIP is applied to the current block, and the binarization method for the LFNST index may be selectively changed accordingly. For example, one LFNST kernel is used for a block to which MIP is applied, and this kernel may be one of LFNST kernels applied to a block to which MIP is not applied. Or, for blocks to which MIP is applied, a separate kernel optimized for blocks to which MIP is applied is defined and used, and this kernel may not be an LFNST kernel applied to blocks to which MIP is not applied.
  • the binarization process for st_idx and the cMax value may be differently determined according to the intra_mip_flag value.
  • another method of transmitting information for LFNST for a block to which the MIP technology is applied may be provided.
  • information for LFNST when a single syntax is transmitted like st_idx, st_idx has a value of 0, indicates that LFNST is not applied, and when st_idx has a value greater than 0, st_idx is LFNST Indicate the conversion kernel to be used. That is, whether LFNST is applied and the type of conversion kernel used for LFNST can be indicated by using a single syntax.
  • information for LFNST may include st_flag, a syntax indicating whether LFNST is applied, and st_idx_flag, a syntax indicating the type of transformation kernel used for LFNST when LFNST is applied.
  • Table 16 shows the syntax of a CU according to another method of transmitting information for LFNST.
  • LFNST conversion kernels may be used for blocks to which MIP is applied and blocks to which MIP is not applied.
  • the transform kernel may be one of LFNST transform kernels applied to a block to which MIP is not applied, or may be a separate transform kernel optimized for a block to which MIP is applied.
  • the transmission method of Table 16 may be changed as shown in Table 17.
  • st_idx_flag can be transmitted only when intra_mip_flag is 0. That is, st_idx_flag may not be transmitted when MIP is applied to the current block.
  • St_flag in Tables 16 and 17 is information indicating whether LFNST is applied to the current block, and when it is not present in the bitstream, it may be inferred as 0.
  • st_flag may be referred to as lfnst_flag.
  • st_idx_flag may indicate one of two candidate kernels included in the selected LFNST transform set. When st_idx_flag does not exist in the bitstream, its value can be inferred as 0.
  • st_idx_flag may be referred to as lfnst_idx_flag or lfnst_kernel_flag.
  • ctxInc according to the context coded bin of st_flag and st_idx_flag may be as shown in Table 19.
  • ctxIdx of st_flag may have a value of 0 or 1 when binIdx is 0.
  • ctxInc of st_flag may be derived by Equation 12.
  • a value of ctxInc used for coding st_flag may be differently determined based on a treetype and/or a tu_mts_idx value for the current block.
  • a context model used for coding the st_flag (based on CABAC) may be derived.
  • the context model may be derived by determining the context index (ctxIdx), and ctxIdx may be derived from the sum of the variables ctxIdxOffset and ctxInc.
  • st_idx__flag may be bypass coded/decoded. Bypass encoding/decoding may mean encoding/decoding an input bin by applying a uniform probability distribution instead of allocating a context.
  • a reduced number of LFNST kernels is used for blocks to which MIP is applied, compared to blocks that do not, to reduce the overhead of transmitting the index and obtain an effect of reducing complexity.
  • I can.
  • the value of ctxInc used for coding st_flag as described above may be determined differently based on the treetype and/or tu_mts_idx value for the current block.
  • an LFNST conversion kernel may be derived and used.
  • LFNST When LFNST is applied to the current block to which MIP is applied, information for selecting the LFNST transform kernel is not signaled, and one of the transform kernels constituting the LFNST transform set is selected through the derivation process, or for a block to which MIP is applied. You can choose a separate optimized conversion kernel. In this case, while selecting an optimal LFNST conversion kernel for a block to which MIP is applied, it is possible to reduce the amount of bits for signaling this.
  • the selection of the LFNST transformation kernel may be performed based on at least one of a reference line index for intra prediction, an intra prediction mode, a block size, and whether MIP is applied.
  • the MIP mode may be transformed or mapped to a general intra prediction mode as in the embodiment described with reference to FIG. 22.
  • exemplary methods of the present disclosure are expressed as a series of operations for clarity of description, but this is not intended to limit the order in which steps are performed, and each step may be performed simultaneously or in a different order if necessary.
  • the illustrative steps may include additional steps, other steps may be included excluding some steps, or may include additional other steps excluding some steps.
  • an image encoding apparatus or an image decoding apparatus performing a predetermined operation may perform an operation (step) of confirming an execution condition or situation of the operation (step). For example, when it is described that a predetermined operation is performed when a predetermined condition is satisfied, the video encoding apparatus or the video decoding apparatus performs an operation to check whether the predetermined condition is satisfied, and then performs the predetermined operation. I can.
  • various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof.
  • one or more ASICs Application Specific Integrated Circuits
  • DSPs Digital Signal Processors
  • DSPDs Digital Signal Processing Devices
  • PLDs Programmable Logic Devices
  • FPGAs Field Programmable Gate Arrays
  • general purpose It may be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor, or the like.
  • the image decoding device and the image encoding device to which the embodiment of the present disclosure is applied include a multimedia broadcasting transmission/reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, and a real-time communication device such as video communication.
  • Mobile streaming devices storage media, camcorders, video-on-demand (VoD) service providers, OTT video (Over the top video) devices, Internet streaming service providers, three-dimensional (3D) video devices, video telephony video devices, and medical use. It may be included in a video device or the like and may be used to process a video signal or a data signal.
  • an 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
  • 25 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.
  • the content streaming system to which the embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage device, a user device, and a multimedia input device.
  • the encoding server serves to generate a bitstream by compressing content input from multimedia input devices such as smartphones, cameras, camcorders, etc. into digital data, and transmits it to the streaming server.
  • multimedia input devices such as smartphones, cameras, camcorders, etc. directly generate bitstreams
  • the encoding server may be omitted.
  • the bitstream may be generated by an image encoding method and/or an image encoding apparatus to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in a process of transmitting or receiving the bitstream.
  • the streaming server may transmit multimedia data to a user device based on a user request through a web server, and the web server may serve as an intermediary for notifying the user of a service.
  • the web server transmits the request to the streaming server, and the streaming server may transmit multimedia data to the user.
  • the content streaming system may include a separate control server, and in this case, the control server may play a role of controlling a command/response 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 digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation system, a slate PC, and Tablet PC, ultrabook, wearable device, for example, smartwatch, smart glass, head mounted display (HMD)), digital TV, desktop There may be computers, digital signage, etc.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • HMD head mounted display
  • TV desktop
  • desktop There may be computers, digital signage, etc.
  • Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributedly processed.
  • the scope of the present disclosure is software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that cause an operation according to the method of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium (non-transitory computer-readable medium) which stores instructions and the like and is executable on a device or a computer.
  • a non-transitory computer-readable medium non-transitory computer-readable medium
  • An embodiment according to the present disclosure may be used to encode/decode an image.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

영상 부호화/복호화 방법 및 장치가 제공된다. 본 개시에 따른 영상 복호화 방법은 현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하는 단계, 상기 현재 블록의 변환 계수에 대해 역변환을 수행하여 레지듀얼 블록을 생성하는 단계, 및 상기 예측 블록과 레지듀얼 블록에 기반하여 상기 현재 블록을 복원하는 단계를 포함하고, 상기 역변환은 1차 역변환과 2차 역변환을 포함하고, 상기 2차 역변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행될 수 있다.

Description

MIP 및 LFNST를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
본 개시는 영상 부호화/복호화 방법 및 장치에 관한 것으로서, 보다 상세하게는, MIP(matrix based intra prediction)가 적용된 블록에 대해 LFNST(low frequency non-seperable transform)를 적용하는 영상 부호화/복호화 방법, 장치 및 본 개시의 영상 부호화 방법/장치에 의해 생성된 비트스트림을 전송하는 방법에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하게 된다. 전송되는 정보량 또는 비트량의 증가는 전송 비용과 저장 비용의 증가를 초래한다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위한 고효율의 영상 압축 기술이 요구된다.
본 개시는 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 MIP가 적용된 블록에 대해 LFNST를 적용하여 영상을 부호화/복호화하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법을 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 복호화 장치에 의해 수신되고 복호화되어 영상의 복원에 이용되는 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따른 영상 복호화 방법은, 현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하는 단계, 상기 현재 블록의 변환 계수에 대해 역변환을 수행하여 레지듀얼 블록을 생성하는 단계, 및 상기 예측 블록과 레지듀얼 블록에 기반하여 상기 현재 블록을 복원하는 단계를 포함하고, 상기 역변환은 1차 역변환과 2차 역변환을 포함하고, 상기 2차 역변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 2차 역변환은 상기 변환 계수에 대해 2차 역변환을 수행하는 것으로 판단되는 경우에만 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 변환 계수에 대해 2차 역변환을 수행하는지의 판단은 비트스트림을 통해 시그널링되는 정보에 기반하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 2차 역변환은, 상기 현재 블록의 인트라 예측 모드에 기반하여 2차 역변환의 변환 셋(transform set)을 결정하는 단계, 상기 2차 역변환의 변환 셋에 포함된 복수의 변환 커널들 중 하나를 선택하는 단계, 및 상기 선택된 변환 커널에 기반하여 상기 2차 역변환을 수행하는 단계를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 2차 역변환의 변환 셋을 결정하기 위해 이용되는 상기 현재 블록의 인트라 예측 모드는 소정의 인트라 예측 모드로 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 소정의 인트라 예측 모드는 기정의된 매핑 테이블에 기반하여 상기 현재 블록의 MIP 모드로부터 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 소정의 인트라 예측 모드는 플래너 모드로 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 변환 계수에 대한 2차 역변환은 스킵될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 변환 계수에 대한 2차 역변환의 수행 여부를 지시하는 정보는 비트스트림을 통해 시그널링되지 않을 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우, 상기 변환 계수의 2차 역변환을 위한 변환 커널은 비트스트림을 통해 시그널링되지 않고 소정의 변환 커널로 결정될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록이 MIP 예측된 경우에 가용한 변환 커널의 수는 상기 현재 블록이 MIP 예측되지 않은 경우에 가용한 변환 커널의 수보다 작을 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 2차 역변환이 적용되는지 여부를 나타내는 제1 정보 및 상기 2차 역변환에 사용되는 변환 커널을 지시하는 제2 정보는 별개의 정보로서 시그널링되고, 상기 제2 정보는 상기 제1 정보가 상기 현재 블록에 2차 역변환이 적용되는 것을 나타낼 때 시그널링될 수 있다.
본 개시의 다른 양상에 따른 영상 복호화 장치는, 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하고, 상기 현재 블록의 변환 계수에 대해 역변환을 수행하여 레지듀얼 블록을 생성하고, 상기 예측 블록과 레지듀얼 블록에 기반하여 상기 현재 블록을 복원하고, 상기 역변환은 1차 역변환과 2차 역변환을 포함하고, 상기 2차 역변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행될 수 있다.
본 개시의 또 다른 양상에 따른 영상 부호화 방법은, 현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하는 단계, 상기 예측 블록에 기반하여 상기 현재 블록의 레지듀얼 블록을 생성하는 단계, 및 상기 레지듀얼 블록에 대해 변환을 수행하여 변환 계수를 생성하는 단계를 포함하고, 상기 변환은 1차 변환과 2차 변환을 포함하고, 상기 2차 변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행될 수 있다.
본 개시의 또 다른 양상에 따른 전송 방법은, 본 개시의 영상 부호화 장치 또는 영상 부호화 방법에 의해 생성된 비트스트림을 전송할 수 있다.
본 개시의 또 다른 양상에 따른 컴퓨터 판독 가능한 기록 매체는, 본 개시의 영상 부호화 방법 또는 영상 부호화 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, MIP가 적용된 블록에 대해 LFNST를 적용하여 영상을 부호화/복호화하는 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법이 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 영상 복호화 장치에 의해 수신되고 복호화되어 영상의 복원에 이용되는 비트스트림을 저장한 기록 매체가 제공될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시에 따른 실시예가 적용될 수 있는 비디오 코딩 시스템을 개략적으로 도시한 도면이다.
도 2는 본 개시에 따른 실시예가 적용될 수 있는 영상 부호화 장치를 개략적으로 도시한 도면이다.
도 3은 본 개시에 따른 실시예가 적용될 수 있는 영상 복호화 장치를 개략적으로 도시한 도면이다.
도 4는 멀티타입 트리 구조에 따른 블록의 분할 타입을 도시한 도면이다.
도 5는 본 개시에 따른 멀티타입 트리를 수반하는 쿼드트리(quadtree with nested multi-type tree) 구조의 파티션 분할 정보의 시그널링 메커니즘을 예시한 도면이다.
도 6은 인트라 예측 기반 비디오/영상 인코딩 방법을 도시한 흐름도이다.
도 7은 본 개시에 따른 인트라 예측부(185)의 구성을 예시적으로 도시한 도면이다.
도 8은 인트라 예측 기반 비디오/영상 디코딩 방법을 도시한 흐름도이다.
도 9는 본 개시에 따른 인트라 예측부(265)의 구성을 예시적으로 도시한 도면이다.
도 10은 영상 부호화 장치에서의 인트라 예측 모드 시그널링 절차를 도시한 흐름도이다.
도 11은 영상 복호화 장치에서의 인트라 예측 모드 결정 절차를 도시한 흐름도이다.
도 12는 인트라 예측 모드 도출 절차를 보다 구체적으로 설명하기 위한 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 인트라 예측 방향을 도시하는 도면이다.
도 14는 본 개시의 다른 실시예에 따른 인트라 예측 방향을 도시하는 도면이다.
도 15는 4x4 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
도 16은 8x8 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
도 17은 8x4 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
도 18은 16x16 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
도 19는 본 개시에 따른 ALWIP 과정의 에버리징 단계를 설명하기 위한 도면이다.
도 20은 본 개시에 따른 ALWIP 과정의 보간 단계를 설명하기 위한 도면이다.
도 21은 레지듀얼 블록에 적용되는 변환 방법을 설명하기 위한 도면이다.
도 22는 본 개시에 따라 2차 변환/역변환을 수행하는 방법을 도시한 흐름도이다.
도 23은 본 개시의 다른 실시예에 따른 MIP 및 LFNST의 적용 여부에 기반하여 영상 복호화 장치에서 수행되는 방법을 설명하기 위한 도면이다.
도 24는 본 개시의 다른 실시예에 따른 MIP 및 LFNST의 적용 여부에 기반하여 영상 부호화 장치에서 수행되는 방법을 설명하기 위한 도면이다.
도 25는 본 개시의 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시한 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 개시의 실시예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시예에서의 제1 구성요소는 다른 실시예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시예도 본 개시의 범위에 포함된다. 또한, 다양한 실시예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시예도 본 개시의 범위에 포함된다.
본 개시는 영상의 부호화 및 복호화에 관한 것으로서, 본 개시에서 사용되는 용어는, 본 개시에서 새롭게 정의되지 않는 한 본 개시가 속한 기술 분야에서 통용되는 통상의 의미를 가질 수 있다.
본 개시에서 "픽처(picture)"는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)은 픽처의 일부를 구성하는 부호화 단위로서, 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 또한, 슬라이스/타일은 하나 이상의 CTU(coding tree unit)를 포함할 수 있다.
본 개시에서 "픽셀(pixel)" 또는 "펠(pel)"은 하나의 픽처(또는 영상)를 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 "샘플(sample)"이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
본 개시에서 "유닛(unit)"은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 "샘플 어레이", "블록(block)" 또는 "영역(area)" 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
본 개시에서 "현재 블록"은 "현재 코딩 블록", "현재 코딩 유닛", "부호화 대상 블록", "복호화 대상 블록" 또는 "처리 대상 블록" 중 하나를 의미할 수 있다. 예측이 수행되는 경우, "현재 블록"은 "현재 예측 블록" 또는 "예측 대상 블록"을 의미할 수 있다. 변환(역변환)/양자화(역양자화)가 수행되는 경우, "현재 블록"은 "현재 변환 블록" 또는 "변환 대상 블록"을 의미할 수 있다. 필터링이 수행되는 경우, "현재 블록"은 "필터링 대상 블록"을 의미할 수 있다.
또한, 본 개시에서 "현재 블록"은 크로마 블록이라는 명시적인 기재가 없는 한 루마 성분 블록과 크로마 성분 블록을 모두 포함하는 블록 또는 "현재 블록의 루마 블록"을 의미할 수 있다. 현재 블록의 크로마 블록은 명시적으로 "크로마 블록" 또는 "현재 크로마 블록"과 같이 크로마 블록이라는 명시적인 기재를 포함하여 표현될 수 있다.
본 개시에서 "/"와 ","는 "및/또는"으로 해석될 수 있다. 예를 들어, "A/B"와 "A, B"는 "A 및/또는 B"로 해석될 수 있다. 또한, "A/B/C"와 "A, B, C"는 "A, B 및/또는 C 중 적어도 하나"를 의미할 수 있다.
본 개시에서 "또는"은 "및/또는"으로 해석될 수 있다. 예를 들어, "A 또는 B"는, 1) "A" 만을 의미하거나 2) "B" 만을 의미하거나, 3) "A 및 B"를 의미할 수 있다. 또는, 본 개시에서 "또는"은 "추가적으로 또는 대체적으로(additionally or alternatively)"를 의미할 수 있다.
비디오 코딩 시스템 개요
도 1은 본 개시에 따른 비디오 코딩 시스템을 도시한다.
일 실시예에 따른 비디오 코딩 시스템은 부호화 장치(10) 및 복호화 장치(20)를 포함할 수 있다. 부호화 장치(10)는 부호화된 비디오(video) 및/또는 영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 복호화 장치(20)로 전달할 수 있다.
일 실시예예 따른 부호화 장치(10)는 비디오 소스 생성부(11), 부호화부(12), 전송부(13)를 포함할 수 있다. 일 실시예에 따른 복호화 장치(20)는 수신부(21), 복호화부(22) 및 렌더링부(23)를 포함할 수 있다. 상기 부호화부(12)는 비디오/영상 부호화부라고 불릴 수 있고, 상기 복호화부(22)는 비디오/영상 복호화부라고 불릴 수 있다. 전송부(13)는 부호화부(12)에 포함될 수 있다. 수신부(21)는 복호화부(22)에 포함될 수 있다. 렌더링부(23)는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스 생성부(11)는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스 생성부(11)는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
부호화부(12)는 입력 비디오/영상을 부호화할 수 있다. 부호화부(12)는 압축 및 부호화 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 부호화부(12)는 부호화된 데이터(부호화된 비디오/영상 정보)를 비트스트림(bitstream) 형태로 출력할 수 있다.
전송부(13)는 비트스트림 형태로 출력된 부호화된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 복호화 장치(20)의 수신부(21)로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부(13)는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부(21)는 상기 저장매체 또는 네트워크로부터 상기 비트스트림을 추출/수신하여 복호화부(22)로 전달할 수 있다.
복호화부(22)는 부호화부(12)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 복호화할 수 있다.
렌더링부(23)는 복호화된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
영상 부호화 장치 개요
도 2는 본 개시에 따른 실시예가 적용될 수 있는 영상 부호화 장치를 개략적으로 도시한 도면이다.
도 2에 도시된 바와 같이, 영상 부호화 장치(100)는 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 메모리(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함할 수 있다. 인터 예측부(180) 및 인트라 예측부(185)는 합쳐서 "예측부"라고 지칭될 수 있다. 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150)는 레지듀얼(residual) 처리부에 포함될 수 있다. 레지듀얼 처리부는 감산부(115)를 더 포함할 수도 있다.
영상 부호화 장치(100)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 인코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
영상 분할부(110)는 영상 부호화 장치(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)을 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)을 QT/BT/TT (Quad-tree/binary-tree/ternary-tree) 구조에 따라 재귀적으로(recursively) 분할함으로써 획득될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 코딩 유닛의 분할을 위해, 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 트리 구조가 나중에 적용될 수 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 개시에 따른 코딩 절차가 수행될 수 있다. 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 최대 코딩 유닛을 분할하여 획득한 하위 뎁스의 코딩 유닛이 최종 코닛 유닛으로 사용될 수도 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환 및/또는 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 코딩 절차의 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다. 상기 예측 유닛 및 상기 변환 유닛은 각각 상기 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
예측부(인터 예측부(180) 또는 인트라 예측부(185))는 처리 대상 블록(현재 블록)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 현재 블록의 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(185)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 인트라 예측 모드 및/또는 인트라 예측 기법에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라, 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(185)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(180)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 서로 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수 있다. 예를 들어, 인터 예측부(180)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(180)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference) 및 움직임 벡터 예측자에 대한 지시자(indicator)를 부호화함으로써 현재 블록의 움직임 벡터를 시그널링할 수 있다. 움직임 벡터 차분은 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 차이를 의미할 수 있다.
예측부는 후술하는 다양한 예측 방법 및/또는 예측 기법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 현재 블록의 예측을 위해 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 현재 블록의 예측을 위해 인트라 예측과 인터 예측을 동시에 적용하는 예측 방법은 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 현재 블록의 예측을 위해 인트라 블록 카피(intra block copy, IBC)를 수행할 수도 있다. 인트라 블록 카피는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 현재 블록으로부터 소정의 거리만큼 떨어진 위치의 현재 픽처 내 기복원된 참조 블록을 이용하여 현재 블록을 예측하는 방법이다. IBC가 적용되는 경우, 현재 픽처 내 참조 블록의 위치는 상기 소정의 거리에 해당하는 벡터(블록 벡터)로서 부호화될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나, 현재 픽처 내에서 참조 블록을 도출하는 점에서, 인터 예측과 유사하게 수행될 수 있다. 즉 IBC는 본 개시에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다.
예측부를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 감산부(115)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)로부터 예측부에서 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있다. 생성된 레지듀얼 신호는 변환부(120)로 전송될 수 있다.
변환부(120)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(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)을 이용하여 예측 신호를 생성하고 그에 기반하여 획득되는 변환을 의미한다. 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수들을 양자화하여 엔트로피 인코딩부(190)로 전송할 수 있다. 엔트로피 인코딩부(190)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(130)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다.
엔트로피 인코딩부(190)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(190)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 본 개시에서 언급된 시그널링 정보, 전송되는 정보 및/또는 신택스 요소들은 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다.
상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(190)로부터 출력된 신호를 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 영상 부호화 장치(100)의 내/외부 엘리먼트로서 구비될 수 있고, 또는 전송부는 엔트로피 인코딩부(190)의 구성요소로서 구비될 수도 있다.
양자화부(130)로부터 출력된 양자화된 변환 계수들은 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다.
가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(160)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(170), 구체적으로 메모리(170)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(160)는 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 필터링에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(170)에 전송된 수정된 복원 픽처는 인터 예측부(180)에서 참조 픽처로 사용될 수 있다. 영상 부호화 장치(100)는 이를 통하여 인터 예측이 적용되는 경우, 영상 부호화 장치(100)와 영상 복호화 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(170) 내 DPB는 인터 예측부(180)에서의 참조 픽처로 사용하기 위해 수정된 복원 픽처를 저장할 수 있다. 메모리(170)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(180)에 전달될 수 있다. 메모리(170)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(185)에 전달할 수 있다.
영상 복호화 장치 개요
도 3은 본 개시에 따른 실시예가 적용될 수 있는 영상 복호화 장치를 개략적으로 도시한 도면이다.
도 3에 도시된 바와 같이, 영상 복호화 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다. 인터 예측부(260) 및 인트라 예측부(265)를 합쳐서 "예측부"라고 지칭될 수 있다. 역양자화부(220), 역변환부(230)는 레지듀얼 처리부에 포함될 수 있다.
영상 복호화 장치(200)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
비디오/영상 정보를 포함하는 비트스트림을 수신한 영상 복호화 장치(200)는 도 2의 영상 부호화 장치(100)에서 수행된 프로세스에 대응하는 프로세스를 수행하여 영상을 복원할 수 있다. 예를 들어, 영상 복호화 장치(200)는 영상 부호화 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있다. 코딩 유닛은 코딩 트리 유닛이거나 또는 최대 코딩 유닛을 분할하여 획득될 수 있다. 그리고, 영상 복호화 장치(200)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치(미도시)를 통해 재생될 수 있다.
영상 복호화 장치(200)는 도 2의 영상 부호화 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있다. 수신된 신호는 엔트로피 디코딩부(210)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(예컨대, 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 영상 복호화 장치는 영상을 디코딩하기 위해 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 추가적으로 이용할 수 있다. 본 개시에서 언급된 시그널링 정보, 수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩됨으로써 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 블록 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)을 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(260) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(220)로 입력될 수 있다. 또한, 엔트로피 디코딩부(210)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(240)로 제공될 수 있다. 한편, 영상 부호화 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 영상 복호화 장치(200)의 내/외부 엘리먼트로서 추가적으로 구비될 수 있고, 또는 수신부는 엔트로피 디코딩부(210)의 구성요소로서 구비될 수도 있다.
한편, 본 개시에 따른 영상 복호화 장치는 비디오/영상/픽처 복호화 장치라고 불릴 수 있다. 상기 영상 복호화 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및/또는 샘플 디코더(비디오/영상/픽처 샘플 디코더)를 포함할 수도 있다. 상기 정보 디코더는 엔트로피 디코딩부(210)를 포함할 수 있고, 상기 샘플 디코더는 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265) 중 적어도 하나를 포함할 수 있다.
역양자화부(220)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(220)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 영상 부호화 장치에서 수행된 계수 스캔 순서에 기반하여 수행될 수 있다. 역양자화부(220)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)을 획득할 수 있다.
역변환부(230)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득할 수 있다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(210)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드(예측 기법)를 결정할 수 있다.
예측부가 후술하는 다양한 예측 방법(기법)을 기반으로 예측 신호를 생성할 수 있음은 영상 부호화 장치(100)의 예측부에 대한 설명에서 언급된 바와 동일하다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 인트라 예측부(185)에 대한 설명은 인트라 예측부(265)에 대해서도 동일하게 적용될 수 있다.
인터 예측부(260)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(260)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드(기법)를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드(기법)를 지시하는 정보를 포함할 수 있다.
가산부(235)는 획득된 레지듀얼 신호를 예측부(인터 예측부(260) 및/또는 인트라 예측부(265) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)에 대한 설명은 가산부(235)에 대해서도 동일하게 적용될 수 있다. 가산부(235)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(240)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(240)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(250), 구체적으로 메모리(250)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(250)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다. 메모리(250)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(260)에 전달할 수 있다. 메모리(250)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(265)에 전달할 수 있다.
본 명세서에서, 영상 부호화 장치(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 영상 복호화 장치(200)의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일 또는 대응되도록 적용될 수 있다.
CTU의 분할 개요
전술한 바와 같이, 코딩 유닛은 코딩 트리 유닛(CTU) 또는 최대 코딩 유닛(LCU)을 QT/BT/TT (Quad-tree/binary-tree/ternary-tree) 구조에 따라 재귀적으로 분할함으로써 획득될 수 있다. 예컨대, CTU는 먼저 쿼드트리 구조로 분할될 수 있다. 이후 쿼드트리 구조의 리프 노드들은 멀티타입 트리 구조에 의하여 더 분할될 수 있다.
쿼드트리에 따른 분할은 현재 CU(또는 CTU)를 4등분하는 분할을 의미한다. 쿼드트리에 따른 분할에 의해, 현재 CU는 동일한 너비와 동일한 높이를 갖는 4개의 CU로 분할될 수 있다. 현재 CU가 더 이상 쿼드트리 구조로 분할되지 않는 경우, 현재 CU는 쿼드트리 구조의 리프 노드에 해당한다. 쿼드트리 구조의 리프 노드에 해당하는 CU는 더 이상 분할되지 않고 전술한 최종 코딩 유닛으로 사용될 수 있다. 또는, 쿼드트리 구조의 리프 노드에 해당하는 CU는 멀티타입 트리 구조에 의하여 더 분할될 수 있다.
도 4는 멀티타입 트리 구조에 따른 블록의 분할 타입을 도시한 도면이다. 멀티타입 트리 구조에 따른 분할은 바이너리 트리 구조에 따른 2개의 분할과 터너리 트리 구조에 따른 2개의 분할을 포함할 수 있다.
바이너리 트리 구조에 따른 2개의 분할은 수직 바이너리 분할(vertical binary splitting, SPLIT_BT_VER)과 수평 바이너리 분할(hotizontal binary splitting, SPLIT_BT_HOR)을 포함할 수 있다. 수직 바이너리 분할(SPLIT_BT_VER)은 현재 CU를 수직 방향으로 2등분하는 분할을 의미한다. 도 4에 도시된 바와 같이, 수직 바이너리 분할에 의해 현재 CU의 높이와 동일한 높이를 갖고 현재 CU의 너비의 절반의 너비를 갖는 2개의 CU가 생성될 수 있다. 수평 바이너리 분할(SPLIT_BT_HOR)은 현재 CU를 수평 방향으로 2등분하는 분할을 의미한다. 도 4에 도시된 바와 같이, 수평 바이너리 분할에 의해 현재 CU의 높이의 절반의 높이를 갖고 현재 CU의 너비와 동일한 너비를 갖는 2개의 CU가 생성될 수 있다.
터너리 트리 구조에 따른 2개의 분할은 수직 터너리 분할(vertical ternary splitting, SPLIT_TT_VER)과 수평 터너리 분할(hotizontal ternary splitting, SPLIT_TT_HOR)을 포함할 수 있다. 수직 터너리 분할(SPLIT_TT_VER)은 현재 CU를 수직 방향으로 1:2:1의 비율로 분할한다. 도 4에 도시된 바와 같이, 수직 터너리 분할에 의해 현재 CU의 높이와 동일한 높이를 갖고 현재 CU의 너비의 1/4의 너비를 갖는 2개의 CU와 현재 CU의 높이와 동일한 높이를 갖고 현재 CU의 너비의 절반의 너비를 갖는 CU가 생성될 수 있다. 수평 터너리 분할(SPLIT_TT_HOR)은 현재 CU를 수평 방향으로 1:2:1의 비율로 분할한다. 도 4에 도시된 바와 같이, 수평 터너리 분할에 의해 현재 CU의 높이의 1/4의 높이를 갖고 현재 CU의 너비와 동일한 너비를 갖는 2개의 CU와 현재 CU의 높이의 절반의 높이를 갖고 현재 CU의 너비와 동일한 너비를 갖는 1개의 CU가 생성될 수 있다.
도 5는 본 개시에 따른 멀티타입 트리를 수반하는 쿼드트리(quadtree with nested multi-type tree) 구조의 파티션 분할 정보의 시그널링 메커니즘을 예시한 도면이다.
여기서, CTU는 쿼드트리의 루트(root) 노드로 취급되며, 쿼드트리 구조로 처음으로 파티셔닝된다. 현재 CU(CTU 또는 쿼드트리의 노드(QT_node))에 대해 쿼드트리 분할을 수행할 지 여부를 지시하는 정보(예컨대, qt_split_flag)가 시그널링될 수 있다. 예를 들어, qt_split_flag가 제1 값(예컨대, "1")이면, 현재 CU는 쿼드트리 분할될 수 있다. 또한, qt_split_flag가 제2 값(예컨대, "0")이면, 현재 CU는 쿼드트리 분할되지 않고, 쿼드트리의 리프 노드(QT_leaf_node)가 된다. 각 쿼드트리의 리프 노드는 이후 멀티타입 트리 구조로 더 파티셔닝될 수 있다. 즉, 쿼드트리의 리프 노드는 멀티타입 트리의 노드(MTT_node)가 될 수 있다. 멀티타입 트리 구조에서, 현재 노드가 추가적으로 파티셔닝되는지를 지시하기 위하여 제1 플래그(a first flag, ex. mtt_split_cu_flag)가 시그널링될 수 있다. 만약 해당 노드가 추가적으로 파티셔닝되는 경우(예컨대, 제1 플래그가 1인 경우), 분할 방향(splitting direction)을 지시하기 위하여 제2 플래그(a second flag, ex. mtt_split_cu_verticla_flag)가 시그널링될 수 있다. 예컨대, 제2 플래그가 1인 경우, 분할 방향은 수직 방향이고, 제2 플래그가 0인 경우, 분할 방향은 수평 방향일 수 있다. 그 후 분할 타입이 바이너리 분할 타입인지 터너리 분할 타입인지 여부를 지시하기 위하여 제3 플래그(a third flag, ex. mtt_split_cu_binary_flag)가 시그널링될 수 있다. 예를 들어, 제3 플래그가 1인 경우, 분할 타입은 바이너리 분할 타입이고, 제3 플래그가 0인 경우, 분할 타입은 터너리 분할 타입일 수 있다. 바이너리 분할 또는 터너리 분할에 의해 획득된 멀티타입 트리의 노드는 멀티타입 트리 구조로 더 파티셔닝될 수 있다. 그러나, 멀티타입 트리의 노드는 쿼드트리 구조로 파티셔닝될 수는 없다. 상기 제1 플래그가 0인 경우, 멀티타입 트리의 해당 노드는 더 이상 분할되지 않고, 멀티타입 트리의 리프 노드(MTT_leaf_node)가 된다. 멀티타입 트리의 리프 노드에 해당하는 CU는 전술한 최종 코딩 유닛으로 사용될 수 있다.
전술한 mtt_split_cu_vertical_flag 및 mtt_split_cu_binary_flag를 기반으로, CU의 멀티타입 트리 분할 모드(multi-type tree splitting mode, MttSplitMode)가 표 1과 같이 도출될 수 있다.
Figure PCTKR2020005982-appb-T000001
하나의 CTU는 루마 샘플들의 코딩 블록(이하, "루마 블록"이라 함)과 이에 대응하는 크로마 샘플들의 두개의 코딩 블록(이하, "크로마 블록"이라 함)들을 포함할 수 있다. 전술한 코딩 트리 스킴은 현재 CU의 루마 블록 및 크로마 블록에 대해 동일하게 적용될 수도 있고, 개별적(separate)으로 적용될 수도 있다. 구체적으로, 하나의 CTU 내 루마 블록 및 크로마 블록이 동일 블록 트리 구조로 분할될 수 있으며, 이 경우의 트리 구조는 싱글 트리(SINGLE_TREE)라고 나타낼 수 있다. 또는, 하나의 CTU 내 루마 블록 및 크로마 블록은 개별적 블록 트리 구조로 분할될 수 있으며, 이 경우의 트리 구조는 듀얼 트리(DUAL_TREE)라고 나타낼 수 있다. 즉, CTU가 듀얼 트리로 분할되는 경우, 루마 블록에 대한 블록 트리 구조와 크로마 블록에 대한 블록 트리 구조가 별개로 존재할 수 있다. 이 때, 루마 블록에 대한 블록 트리 구조는 듀얼 트리 루마(DUAL_TREE_LUMA)라고 불릴 수 있고, 크로마 블록에 대한 블록 트리 구조는 듀얼 트리 크로마(DUAL_TREE_CHROMA)라고 불릴 수 있다. P 및 B 슬라이스/타일 그룹들에 대하여, 하나의 CTU 내 루마 블록 및 크로마 블록들은 동일한 코딩 트리 구조를 갖도록 제한될 수 있다. 그러나, I 슬라이스/타일 그룹들에 대하여, 루마 블록 및 크로마 블록들은 서로 개별적 블록 트리 구조를 가질 수 있다. 만약 개별적 블록 트리 구조가 적용되는 경우, 루마 CTB(Coding Tree Block)는 특정 코딩 트리 구조를 기반으로 CU들로 분할되고, 크로마 CTB는 다른 코딩 트리 구조를 기반으로 크로마 CU들로 분할될 수 있다. 즉, 개별적 블록 트리 구조가 적용되는 I 슬라이스/타일 그룹 내 CU는 루마 성분의 코딩 블록 또는 두 크로마 성분들의 코딩 블록들로 구성될 수 있다. 또한, 동일 블록 트리 구조가 적용되는 I 슬라이스/타일 그룹 내 CU와 P 또는 B 슬라이스/타일 그룹의 CU는 세가지 컬러 성분(루마 성분 및 두개의 크로마 성분)의 블록들로 구성될 수 있다.
상기에서 멀티타입 트리를 수반한 쿼드트리 코딩 트리 구조에 대하여 설명하였으나, CU가 분할되는 구조는 이에 한정되지 않는다. 예를 들어, BT 구조 및 TT 구조는 다수 분할 트리 (Multiple Partitioning Tree, MPT) 구조에 포함되는 개념으로 해석될 수 있고, CU는 QT 구조 및 MPT 구조를 통해 분할된다고 해석할 수 있다. QT 구조 및 MPT 구조를 통해 CU가 분할되는 일 예에서, QT 구조의 리프 노드가 몇 개의 블록으로 분할되는지에 관한 정보를 포함하는 신택스 요소(예를 들어, MPT_split_type) 및 QT 구조의 리프 노드가 수직과 수평 중 어느 방향으로 분할되는지에 관한 정보를 포함하는 신택스 요소(예를 들어, MPT_split_mode)가 시그널링됨으로써 분할 구조가 결정될 수 있다.
또 다른 예에서, CU는 QT 구조, BT 구조 또는 TT 구조와 다른 방법으로 분할될 수 있다. 즉, QT 구조에 따라 하위 뎁스의 CU가 상위 뎁스의 CU의 1/4 크기로 분할되거나, BT 구조에 따라 하위 뎁스의 CU가 상위 뎁스의 CU의 1/2 크기로 분할되거나, TT 구조에 따라 하위 뎁스의 CU가 상위 뎁스의 CU의 1/4 또는 1/2 크기로 분할되는 것과 달리, 하위 뎁스의 CU는 경우에 따라 상위 뎁스의 CU의 1/5, 1/3, 3/8, 3/5, 2/3 또는 5/8 크기로 분할될 수 있으며, CU가 분할되는 방법은 이에 한정되지 않는다.
인트라 예측의 개요
이하, 본 개시에 따른 인트라 예측에 대해 설명한다.
인트라 예측은 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 참조 샘플들을 기반으로 현재 블록에 대한 예측 샘플들을 생성하는 예측을 나타낼 수 있다. 현재 블록에 인트라 예측이 적용되는 경우, 현재 블록의 인트라 예측에 사용할 주변 참조 샘플들이 도출될 수 있다. 상기 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 좌측(left) 경계에 인접한 샘플 및 좌하측(bottom-left)에 이웃하는 총 2xnH 개의 샘플들, 현재 블록의 상측(top) 경계에 인접한 샘플 및 우상측(top-right)에 이웃하는 총 2xnW 개의 샘플들 및 현재 블록의 좌상측(top-left)에 이웃하는 1개의 샘플을 포함할 수 있다. 또는, 상기 현재 블록의 주변 참조 샘플들은 복수열의 상측 주변 샘플들 및 복수행의 좌측 주변 샘플들을 포함할 수도 있다. 또한, 상기 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 우측(right) 경계에 인접한 총 nH 개의 샘플들, 현재 블록의 하측(bottom) 경계에 인접한 총 nW 개의 샘플들 및 현재 블록의 우하측(bottom-right)에 이웃하는 1개의 샘플을 포함할 수도 있다.
다만, 현재 블록의 주변 참조 샘플들 중 일부는 아직 디코딩되지 않았거나, 이용 가능하지 않을 수 있다. 이 경우, 디코더는 이용 가능한 샘플들로 이용 가능하지 않은 샘플들을 대체(substitution)하여 예측에 사용할 주변 참조 샘플들을 구성할 수 있다. 또는, 이용 가능한 샘플들의 보간(interpolation)을 통하여 예측에 사용할 주변 참조 샘플들을 구성할 수 있다.
주변 참조 샘플들이 도출된 경우, (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 상기 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다.
또한, 상기 주변 참조 샘플들 중 상기 현재 블록의 예측 대상 샘플을 기준으로 상기 현재 블록의 인트라 예측 모드의 예측 방향에 위치하는 제1 주변 샘플과 그 반대 방향에 위치하는 제2 주변 샘플과의 보간을 통하여 상기 예측 샘플이 생성될 수도 있다. 상술한 경우는 선형 보간 인트라 예측(Linear interpolation intra prediction, LIP) 이라고 불릴 수 있다.
또한, 선형 모델(linear model)을 이용하여 루마 샘플들을 기반으로 크로마 예측 샘플들이 생성될 수도 있다. 이 경우는 LM(Linear Model) 모드라고 불릴 수 있다.
또한, 필터링된 주변 참조 샘플들을 기반으로 상기 현재 블록의 임시 예측 샘플을 도출하고, 상기 기존의 주변 참조 샘플들, 즉, 필터링되지 않은 주변 참조 샘플들 중 상기 인트라 예측 모드에 따라 도출된 적어도 하나의 참조 샘플과 상기 임시 예측 샘플을 가중합(weighted sum)하여 상기 현재 블록의 예측 샘플을 도출할 수도 있다. 이 경우는 PDPC(Position dependent intra prediction) 라고 불릴 수 있다.
또한, 현재 블록의 주변 다중 참조 샘플 라인 중 가장 예측 정확도가 높은 참조 샘플 라인을 선택하여 해당 라인에서 예측 방향에 위치하는 참조 샘플을 이용하여 예측 샘플을 도출할 수 있다. 이 때, 사용된 참조 샘플 라인에 관한 정보(예컨대, intra_luma_ref_idx)는 비트스트림에 부호화되어 시그널링될 수 있다. 이 경우는 multi-reference line intra prediction (MRL) 또는 MRL 기반 인트라 예측이라고 불릴 수 있다. MRL이 적용되지 않는 경우, 현재 블록에 직접 인접한 참조 샘플 라인으로부터 참조 샘플들이 도출될 수 있고, 이 경우, 참조 샘플 라인에 관한 정보는 시그널링되지 않을 수 있다.
또한, 현재 블록을 수직 또는 수평의 서브파티션들로 분할하고, 각 서브파티션에 대해 동일한 인트라 예측 모드를 기반으로 인트라 예측을 수행할 수 있다. 이 때, 인트라 예측의 주변 참조 샘플들은 각 서브파티션 단위로 도출될 수 있다. 즉, 부호화/복호화 순서 상 이전 서브파티션의 복원된 샘플이 현재 서브파티션의 주변 참조 샘플로서 이용될 수 있다. 이 경우 현재 블록에 대한 인트라 예측 모드가 상기 서브파티션들에 동일하게 적용되되, 상기 서브파티션 단위로 주변 참조 샘플을 도출하여 이용함으로써 경우에 따라 인트라 예측 성능을 높일 수 있다. 이러한 예측 방법은 intra sub-partitions (ISP) 또는 ISP 기반 인트라 예측이라고 불릴 수 있다.
전술한 인트라 예측 기법들은 방향성 또는 비방향성의 인트라 예측 모드와 구분하여 인트라 예측 타입 또는 부가 인트라 예측 모드 등 다양한 용어로 불릴 수 있다. 예를 들어 상기 인트라 예측 기법(인트라 예측 타입 또는 부가 인트라 예측 모드 등)은 상술한 LIP, LM, PDPC, MRL, ISP 중 적어도 하나를 포함할 수 있다. 상기 LIP, LM, PDPC, MRL, ISP 등의 특정 인트라 예측 타입을 제외한 일반 인트라 예측 방법은 노멀 인트라 예측 타입이라고 불릴 수 있다. 노멀 인트라 예측 타입은 상기와 같은 특정 인트라 예측 타입이 적용되지 않는 경우 일반적으로 적용될 수 있으며, 전술한 인트라 예측 모드를 기반으로 예측이 수행될 수 있다. 한편, 필요에 따라서 도출된 예측 샘플에 대한 후처리 필터링이 수행될 수도 있다.
구체적으로, 인트라 예측 절차는 인트라 예측 모드/타입 결정 단계, 주변 참조 샘플 도출 단계, 인트라 예측 모드/타입 기반 예측 샘플 도출 단계를 포함할 수 있다. 또한, 필요에 따라서 도출된 예측 샘플에 대한 후처리 필터링(post-filtering) 단계가 수행될 수도 있다.
한편, 상술한 인트라 예측 타입들 외에도 affine linear weighted intra prediction (ALWIP)이 사용될 수 있다. 상기 ALWIP는 LWIP(linear weighted intra prediction) 또는 MWIP(matrix weighted intra prediction) 또는 MIP(matrix based intra prediction)이라고 불릴 수도 있다. 상기 ALWIP가 현재 블록에 대하여 적용되는 경우, i) 에버리징(averaging) 절차가 수행된 주변 참조 샘플들을 이용하여 ii) 메트릭스 벡터 멀티플리케이션(matrix-vector-multiplication) 절차를 수행하고, iii) 필요에 따라 수평/수직 보간(interpolation) 절차를 더 수행하여 상기 현재 블록에 대한 예측 샘플들을 도출할 수 있다. 상기 ALWIP를 위하여 사용되는 인트라 예측 모드들은 상술한 LIP, PDPC, MRL, ISP 인트라 예측이나, 노멀 인트라 예측에서 사용되는 인트라 예측 모드들(도 13 및/또는 도 14를 참조하여 설명한 인트라 예측 모드들)과 다르게 구성될 수 있다. 상기 ALWIP를 위한 인트라 예측 모드는 ALWIP 모드, LWIP 모드, MWIP 모드 또는 MIP 모드라고 불릴 수 있다. 예를 들어, 상기 ALWIP를 위한 인트라 예측 모드에 따라 상기 메트릭스 벡터 멀티플리케이션에서 사용되는 메트릭스 및 오프셋이 다르게 설정될 수 있다. 여기서 상기 메트릭스는 (어파인) 가중치 메트릭스라고 불릴 수 있고, 상기 오프셋은 (어파인) 오프셋 벡터 또는 (어파인) 바이어스(bias) 벡터라고 불릴 수 있다. 구체적인 ALWIP 방법에 대하여는 후술한다.
도 6은 인트라 예측 기반 비디오/영상 인코딩 방법을 도시한 흐름도이다.
도 6의 인코딩 방법은 도 2의 영상 부호화 장치에 의해 수행될 수 있다. 구체적으로, 단계 S610은 인트라 예측부(185)에 의하여 수행될 수 있고, 단계 S620은 레지듀얼 처리부에 의하여 수행될 수 있다. 구체적으로 단계 S620은 감산부(115)에 의하여 수행될 수 있다. 단계 S630은 엔트로피 인코딩부(190)에 의하여 수행될 수 있다. 단계 S630의 예측 정보는 인트라 예측부(185)에 의하여 도출되고, 단계 S630의 레지듀얼 정보는 레지듀얼 처리부에 의하여 도출될 수 있다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 관한 정보이다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 대한 양자화된 변환 계수들에 관한 정보를 포함할 수 있다. 전술한 바와 같이 상기 레지듀얼 샘플들은 영상 부호화 장치의 변환부(120)를 통하여 변환 계수들로 도출되고, 상기 변환 계수들은 양자화부(130)를 통하여 양자화된 변환 계수들로 도출될 수 있다. 상기 양자화된 변환 계수들에 관한 정보가 레지듀얼 코딩 절차를 통하여 엔트로피 인코딩부(190)에서 인코딩될 수 있다.
영상 부호화 장치는 현재 블록에 대한 인트라 예측을 수행할 수 있다(S610). 영상 부호화 장치는 현재 블록에 대한 인트라 예측 모드/타입을 결정하고, 현재 블록의 주변 참조 샘플들을 도출한 후, 상기 인트라 예측 모드/타입 및 상기 주변 참조 샘플들을 기반으로 상기 현재 블록 내 예측 샘플들을 생성할 수 있다. 여기서 인트라 예측 모드/타입 결정, 주변 참조 샘플들 도출 및 예측 샘플들 생성 절차는 동시에 수행될 수도 있고, 어느 한 절차가 다른 절차보다 먼저 수행될 수도 있다.
도 7은 본 개시에 따른 인트라 예측부(185)의 구성을 예시적으로 도시한 도면이다.
도 7에 도시된 바와 같이, 영상 부호화 장치의 인트라 예측부(185)는 인트라 예측 모드/타입 결정부(186), 참조 샘플 도출부(187) 및/또는 예측 샘플 도출부(188)를 포함할 수 있다. 인트라 예측 모드/타입 결정부(186)는 상기 현재 블록에 대한 인트라 예측 모드/타입을 결정할 수 있다. 참조 샘플 도출부(187)는 상기 현재 블록의 주변 참조 샘플들을 도출할 수 있다. 예측 샘플 도출부(188)는 상기 현재 블록의 예측 샘플들을 도출할 수 있다. 한편, 비록 도시되지는 않았지만, 후술하는 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(185)는 예측 샘플 필터부(미도시)를 더 포함할 수도 있다.
영상 부호화 장치는 복수의 인트라 예측 모드/타입들 중 상기 현재 블록에 대하여 적용되는 모드/타입을 결정할 수 있다. 영상 부호화 장치는 상기 인트라 예측 모드/타입들에 대한 율왜곡 비용(RD cost)을 비교하고 상기 현재 블록에 대한 최적의 인트라 예측 모드/타입을 결정할 수 있다.
한편, 영상 부호화 장치는 예측 샘플 필터링 절차를 수행할 수도 있다. 예측 샘플 필터링은 포스트 필터링이라 불릴 수 있다. 상기 예측 샘플 필터링 절차에 의하여 상기 예측 샘플들 중 일부 또는 전부가 필터링될 수 있다. 경우에 따라 상기 예측 샘플 필터링 절차는 생략될 수 있다.
다시 도 6을 참조하여, 영상 부호화 장치는 예측 샘플들 또는 필터링된 예측 샘플들을 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 생성할 수 있다(S620). 영상 부호화 장치는 현재 블록의 원본 샘플들로부터 상기 예측 샘플들을 감산하여 상기 레지듀얼 샘플들을 도출할 수 있다. 즉, 영상 부호화 장치는 원본 샘플값으로부터 대응하는 예측 샘플값을 감산함으로써, 레지듀얼 샘플값을 도출할 수 있다.
영상 부호화 장치는 상기 인트라 예측에 관한 정보(예측 정보) 및 상기 레지듀얼 샘플들에 관한 레지듀얼 정보를 포함하는 영상 정보를 인코딩할 수 있다(S630). 상기 예측 정보는 상기 인트라 예측 모드 정보 및/또는 상기 인트라 예측 기법 정보를 포함할 수 있다. 영상 부호화 장치는 인코딩된 영상 정보를 비트스트림 형태로 출력할 수 있다. 출력된 비트스트림은 저장 매체 또는 네트워크를 통하여 영상 복호화 장치로 전달될 수 있다.
상기 레지듀얼 정보는 후술하는 레지듀얼 코딩 신택스를 포함할 수 있다. 영상 부호화 장치는 상기 레지듀얼 샘플들을 변환/양자화하여 양자화된 변환 계수들을 도출할 수 있다. 상기 레지듀얼 정보는 상기 양자화된 변환 계수들에 대한 정보를 포함할 수 있다.
한편, 전술한 바와 같이 영상 부호화 장치는 복원 픽처(복원 샘플들 및 복원 블록 포함)를 생성할 수 있다. 이를 위하여 영상 부호화 장치는 상기 양자화된 변환 계수들을 다시 역양자화/역변환 처리하여 (수정된) 레지듀얼 샘플들을 도출할 수 있다. 이와 같이 레지듀얼 샘플들을 변환/양자화 후 다시 역양자화/역변환을 수행하는 이유는 영상 복호화 장치에서 도출되는 레지듀얼 샘플들과 동일한 레지듀얼 샘플들을 도출하기 위함이다. 영상 부호화 장치는 상기 예측 샘플들과 상기 (수정된) 레지듀얼 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 포함하는 복원 블록을 생성할 수 있다. 상기 복원 블록을 기반으로 상기 현재 픽처에 대한 복원 픽처가 생성될 수 있다. 상기 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 전술한 바와 같다.
도 8은 인트라 예측 기반 비디오/영상 디코딩 방법을 도시한 흐름도이다.
영상 복호화 장치는 상기 영상 부호화 장치에서 수행된 동작과 대응되는 동작을 수행할 수 있다.
도 8의 디코딩 방법은 도 3의 영상 복호화 장치에 의해 수행될 수 있다. 딘계 S810 내지 S830은 인트라 예측부(265)에 의하여 수행될 수 있고, 단계 S810의 예측 정보 및 단계 S840의 레지듀얼 정보는 엔트로피 디코딩부(210)에 의하여 비트스트림으로부터 획득될 수 있다. 영상 복호화 장치의 레지듀얼 처리부는 상기 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다(S840). 구체적으로 상기 레지듀얼 처리부의 역양자화부(220)는 상기 레지듀얼 정보를 기반으로 도출된 양자화된 변환 계수들을 기반으로, 역양자화를 수행하여 변환 계수들을 도출하고, 상기 레지듀얼 처리부의 역변환부(230)는 상기 변환 계수들에 대한 역변환을 수행하여 상기 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 단계 S850은 가산부(235) 또는 복원부에 의하여 수행될 수 있다.
구체적으로 영상 복호화 장치는 수신된 예측 정보(인트라 예측 모드/타입 정보)를 기반으로 현재 블록에 대한 인트라 예측 모드/타입을 도출할 수 있다(S810). 또한, 영상 복호화 장치는 상기 현재 블록의 주변 참조 샘플들을 도출할 수 있다(S820). 영상 복호화 장치는 상기 인트라 예측 모드/타입 및 상기 주변 참조 샘플들을 기반으로 상기 현재 블록 내 예측 샘플들을 생성할 수 있다(S830). 이 경우 영상 복호화 장치는 예측 샘플 필터링 절차를 수행할 수 있다. 예측 샘플 필터링은 포스트 필터링이라 불릴 수 있다. 상기 예측 샘플 필터링 절차에 의하여 상기 예측 샘플들 중 일부 또는 전부가 필터링될 수 있다. 경우에 따라 예측 샘플 필터링 절차는 생략될 수 있다.
영상 복호화 장치는 수신된 레지듀얼 정보를 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 생성할 수 있다(S840). 영상 복호화 장치는 상기 예측 샘플들 및 상기 레지듀얼 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 생성하고, 상기 복원 샘플들을 포함하는 복원 블록을 도출할 수 있다(S850). 상기 복원 블록을 기반으로 상기 현재 픽처에 대한 복원 픽처가 생성될 수 있다. 상기 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 전술한 바와 같다.
도 9는 본 개시에 따른 인트라 예측부(265)의 구성을 예시적으로 도시한 도면이다.
도 9에 도시된 바와 같이, 영상 복호화 장치의 인트라 예측부(265)는 인트라 예측 모드/타입 결정부(266), 참조 샘플 도출부(267), 예측 샘플 도출부(268)를 포함할 수 있다. 인트라 예측 모드/타입 결정부(266)는 영상 부호화 장치의 인트라 예측 모드/타입 결정부(186)에서 생성되어 시그널링된 인트라 예측 모드/타입 정보를 기반으로 상기 현재 블록에 대한 인트라 예측 모드/타입을 결정하고, 참조 샘플 도출부(266)는 현재 픽처 내 복원된 참조 영역으로부터 상기 현재 블록의 주변 참조 샘플들을 도출할 수 있다. 예측 샘플 도출부(268)는 상기 현재 블록의 예측 샘플들을 도출할 수 있다. 한편, 비록 도시되지는 않았지만, 전술한 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(265)는 예측 샘플 필터부(미도시)를 더 포함할 수도 있다.
상기 인트라 예측 모드 정보는 예를 들어 MPM(most probable mode)가 상기 현재 블록에 적용되는지 아니면 리메이닝 모드(remaining mode)가 적용되는지 여부를 나타내는 플래그 정보(ex. intra_luma_mpm_flag)를 포함할 수 있고, 상기 MPM이 상기 현재 블록에 적용되는 경우 상기 인트라 예측 모드 정보는 상기 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 가리키는 인덱스 정보(ex. intra_luma_mpm_idx)를 더 포함할 수 있다. 상기 인트라 예측 모드 후보들(MPM 후보들)은 MPM 후보 리스트 또는 MPM 리스트로 구성될 수 있다. 또한, 상기 MPM이 상기 현재 블록에 적용되지 않는 경우, 상기 인트라 예측 모드 정보는 상기 인트라 예측 모드 후보들(MPM 후보들)을 제외한 나머지 인트라 예측 모드들 중 하나를 가리키는 리메이닝 모드 정보(ex. intra_luma_mpm_remainder)를 더 포함할 수 있다. 영상 복호화 장치는 상기 인트라 예측 모드 정보를 기반으로 상기 현재 블록의 인트라 예측 모드를 결정할 수 있다. 또한, 상술한 ALWIP를 위하여 별도의 MPM 리스트가 구성될 수 있다. MPM 후보 모드들은 현재 블록의 주변 블록(예컨대, 좌측 주변 블록 및 상측 주변 블록)의 인트라 예측 모드 및 추가적인 후보 모드들을 포함할 수 있다.
또한, 상기 인트라 예측 기법 정보는 다양한 형태로 구현될 수 있다. 일 예로, 상기 인트라 예측 기법 정보는 상기 인트라 예측 기법들 중 하나를 지시하는 인트라 예측 기법 인덱스 정보를 포함할 수 있다. 다른 예로, 상기 인트라 예측 기법 정보는 상기 MRL이 상기 현재 블록에 적용되는지 및 적용되는 경우에는 몇번째 참조 샘플 라인이 이용되는지 여부를 나타내는 참조 샘플 라인 정보(ex. intra_luma_ref_idx), 상기 ISP가 상기 현재 블록에 적용되는지를 나타내는 ISP 플래그 정보(ex. intra_subpartitions_mode_flag), 상기 ISP가 적용되는 경우에 서브파티션들의 분할 타입을 지시하는 ISP 타입 정보 (ex. intra_subpartitions_split_flag), PDPC의 적용 여부를 나타내는 플래그 정보 또는 LIP의 적용 여부를 나타내는 플래그 정보 중 적어도 하나를 포함할 수 있다. 본 개시에서 ISP 플래그 정보는 ISP 적용 지시자로 불릴 수 있다. 또한, 상기 인트라 예측 타입 정보는 상기 현재 블록에 ALWIP가 적용되는지 여부를 나타내는 ALWIP 플래그를 포함할 수 있다.
상기 인트라 예측 모드 정보 및/또는 상기 인트라 예측 기법 정보는 본 개시에서 설명된 코딩 방법을 통하여 인코딩/디코딩될 수 있다. 예를 들어, 상기 인트라 예측 모드 정보 및/또는 상기 인트라 예측 기법 정보는 truncated (rice) binary code를 기반으로 엔트로피 코딩(ex. CABAC, CAVLC)을 통하여 인코딩/디코딩될 수 있다.
이하, 본 개시에 따른 인트라 예측 모드/타입 결정 방법에 대해 보다 상세히 설명한다.
현재 블록에 인트라 예측이 적용되는 경우, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용되는 인트라 예측 모드가 결정될 수 있다. 예를 들어, 영상 복호화 장치는 현재 블록의 주변 블록(ex. 좌측 및/또는 상측 주변 블록)의 인트라 예측 모드 및 추가적인 후보 모드들을 기반으로 도출된 mpm(most probable mode) 리스트를 구성하고, 수신된 mpm 인덱스를 기반으로 mpm 리스트 내 mpm 후보들 중 하나를 선택할 수 있다. 또는 영상 복호화 장치는 상기 mpm 리스트에 포함되지 않은 나머지 인트라 예측 모드들 중 하나를 리메이닝 인트라 예측 모드 정보를 기반으로 선택할 수 있다. 예를 들어, 현재 블록에 적용되는 인트라 예측 모드가 mpm 후보들 중에 있는지(즉, mpm 리스트에 포함되어 있는지), 아니면 리메이닝 모드 중에 있는지는 mpm flag (ex. intra_luma_mpm_flag)를 기반으로 지시될 수 있다. mpm flag의 값 1은 상기 현재 블록에 대한 인트라 예측 모드가 mpm 후보들(mpm 리스트) 내에 있음을 나타낼 수 있으며, mpm flag의 값 0은 상기 현재 블록에 대한 인트라 예측 모드가 mpm 후보들(mpm 리스트) 내에 없음을 나타낼 수 있다. 상기 mpm 인덱스는 mpm_idx 또는 intra_luma_mpm_idx 신택스 요소의 형태로 시그널링될 수 있고, 상기 리메이닝 인트라 예측 모드 정보는 rem_intra_luma_pred_mode 또는 intra_luma_mpm_remainder 신택스 요소의 형태로 시그널링될 수 있다. 예를 들어, 상기 리메이닝 인트라 예측 모드 정보는 전체 인트라 예측 모드들 중 상기 mpm 후보들(mpm 리스트)에 포함되지 않는 나머지 인트라 예측 모드들을 예측 모드 번호 순으로 인덱싱하여 그 중 하나를 가리킬 수 있다. 상기 인트라 예측 모드는 루마 성분(샘플)에 대한 인트라 예측 모드일 수 있다. 이하, 인트라 예측 모드 정보는 상기 mpm flag (ex. intra_luma_mpm_flag), 상기 mpm 인덱스 (ex. mpm_idx 또는 intra_luma_mpm_idx), 상기 리메이닝 인트라 예측 모드 정보 (rem_intra_luma_pred_mode 또는 intra_luma_mpm_remainder) 중 적어도 하나를 포함할 수 있다. 본 개시에서 MPM 리스트는 MPM 후보 리스트, candModeList 등 다양한 용어로 불릴 수 있다.
도 10은 영상 부호화 장치에서의 인트라 예측 모드 시그널링 절차를 도시한 흐름도이다.
도 10을 참조하면, 영상 부호화 장치는 현재 블록에 대한 MPM 리스트를 구성할 수 있다(S1010). 상기 MPM 리스트는 상기 현재 블록에 적용될 가능성이 높은 후보 인트라 예측 모드들(MPM 후보들)을 포함할 수 있다. 상기 MPM 리스트는 주변 블록의 인트라 예측 모드를 포함할 수도 있고, 미리 정해진 방법에 따라 특정 인트라 예측 모드들을 더 포함할 수도 있다.
영상 부호화 장치는 현재 블록의 인트라 예측 모드를 결정할 수 있다(S1020). 영상 부호화 장치는 다양한 인트라 예측 모드들을 기반으로 예측을 수행할 수 있고, 이에 기반한 RDO (rate-distortion optimization)을 수행하여 최적의 인트라 예측 모드를 결정할 수 있다. 영상 부호화 장치는 이 경우 상기 MPM 리스트에 포함된 MPM 후보들만을 이용하여 상기 최적의 인트라 예측 모드를 결정할 수도 있고, 또는 상기 MPM 리스트에 포함된 MPM 후보들뿐 아니라 나머지 인트라 예측 모드들을 더 이용하여 상기 최적의 인트라 예측 모드를 결정할 수도 있다. 구체적으로 예를 들어, 만약 상기 현재 블록의 인트라 예측 타입이 노멀 인트라 예측 타입이 아닌 특정 타입 (예를 들어 LIP, MRL 또는 ISP)인 경우에는 영상 부호화 장치는 상기 MPM 후보들만을 이용하여 상기 최적의 인트라 예측 모드를 결정할 수 있다. 즉, 이 경우에는 상기 현재 블록에 대한 인트라 예측 모드는 상기 MPM 후보들 중에서만 결정될 수 있으며, 이 경우에는 상기 mpm flag를 인코딩/시그널링하지 않을 수 있다. 영상 복호화 장치는 상기 특정 타입의 경우에는 mpm flag를 별도로 시그널링 받지 않고도 mpm flag가 1인 것으로 추정할 수 있다.
한편, 일반적으로 상기 현재 블록의 인트라 예측 모드가 상기 MPM 리스트 내에 있는 MPM 후보들 중 하나인 경우, 영상 부호화 장치는 상기 MPM 후보들 중 하나를 가리키는 mpm 인덱스(mpm idx)를 생성할 수 있다. 만약, 상기 현재 블록의 인트라 예측 모드가 상기 MPM 리스트 내에 없는 경우에는 상기 MPM 리스트에 포함되지 않은 나머지 인트라 예측 모드들 중에서 상기 현재 블록의 인트라 예측 모드와 같은 모드를 가리키는 리메이닝 인트라 예측 모드 정보를 생성할 수 있다.
영상 부호화 장치는 인트라 예측 모드 정보를 인코딩하여 비트스트림 형태로 출력할 수 있다(S1030). 상기 인트라 예측 모드 정보는 전술한 mpm flag, mpm 인덱스 및/또는 리메이닝 인트라 예측 모드 정보를 포함할 수 있다. 일반적으로 mpm 인덱스와 리메이닝 인트라 예측 모드 정보는 alternative한 관계로 하나의 블록에 대한 인트라 예측 모드를 지시함에 있어서, 동시에 시그널링되지는 않는다. 즉, mpm flag 값이 1일 때 mpm 인덱스가 시그널링되고, mpm flag 값이 0일 때 리메이닝 인트라 예측 모드 정보가 시그널링될 수 있다. 다만, 전술한 바와 같이 현재 블록에 특정 인트라 예측 타입이 적용되는 경우에는 mpm flag가 시그널링되지 않고 그 값이 1로 추론(infer)되며, mpm 인덱스만 시그널링될 수도 있다. 즉, 이 경우에는 상기 인트라 예측 모드 정보는 상기 mpm 인덱스만을 포함할 수도 있다.
도 10에 도시된 예에서, S1020은 S1010보다 뒤에 수행되는 것으로 도시되었으나 이는 하나의 예시이며, S1020은 S1010보다 먼저 수행될 수도 있고 동시에 수행될 수도 있다.
도 11은 영상 복호화 장치에서의 인트라 예측 모드 결정 절차를 도시한 흐름도이다.
영상 복호화 장치는 영상 부호화 장치에서 결정 및 시그널링된 인트라 예측 모드 정보에 기반하여 현재 블록의 인트라 예측 모드를 결정할 수 있다.
도 11을 참조하면, 영상 복호화 장치는 비트스트림으로부터 인트라 예측 모드 정보를 획득할 수 있다(S1110). 상기 인트라 예측 모드 정보는 전술한 바와 같이 mpm flag, mpm 인덱스, 리메이닝 인트라 예측 모드 중 적어도 하나를 포함할 수 있다.
영상 복호화 장치는 MPM 리스트를 구성할 수 있다(S1120). 상기 MPM 리스트는 상기 영상 부호화 장치에서 구성된 MPM 리스트와 동일하게 구성된다. 즉, 상기 MPM 리스트는 주변 블록의 인트라 예측 모드를 포함할 수도 있고, 미리 정해진 방법에 따라 특정 인트라 예측 모드들을 더 포함할 수도 있다.
도 11에 도시된 예에서, S1120은 S1110보다 뒤에 수행되는 것으로 도시되었으나 이는 하나의 예시이며, S1120은 S1110보다 먼저 수행될 수도 있고 동시에 수행될 수도 있다.
영상 복호화 장치는 상기 MPM 리스트 및 상기 인트라 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정한다(S1130). 단계 S1130은 도 12를 참조하여 보다 구체적으로 설명한다.
도 12는 인트라 예측 모드 도출 절차를 보다 구체적으로 설명하기 위한 흐름도이다.
도 12의 단계 S1210 및 S1220은 각각 도 11의 단계 S1110 및 S1120에 대응될 수 있다. 따라서, 단계 S1210 및 S1220에 대한 구체적인 설명은 생략한다.
영상 복호화 장치는 비트스트림으로부터 인트라 예측 모드 정보를 획득하고, MPM 리스트를 구성한 후(S1210, S1220), 소정의 조건을 판단할 수 있다(S1230). 구체적으로, 도 12에 도시된 바와 같이, mpm flag의 값이 1인 경우(S1230에서 Yes), 영상 복호화 장치는 상기 MPM 리스트 내의 MPM 후보들 중에서 상기 mpm 인덱스가 가리키는 후보를 상기 현재 블록의 인트라 예측 모드로 도출할 수 있다(S1240). 다른 예로, 상기 mpm flag의 값이 0인 경우(S1230에서 No), 영상 복호화 장치는 상기 MPM 리스트에 포함되지 않은 나머지 인트라 예측 모드들 중에서 상기 리메이닝 인트라 예측 모드 정보가 가리키는 인트라 예측 모드를 상기 현재 블록의 인트라 예측 모드로 도출할 수 있다(S1250). 한편, 또 다른 예로, 상기 현재 블록의 인트라 예측 타입이 특정 타입(ex. LIP, MRL 또는 ISP 등)인 경우(S1230에서 Yes), 영상 복호화 장치는 상기 mpm flag의 확인 없이도, 상기 MPM 리스트 내에서 상기 mpm 인덱스가 가리키는 후보를 상기 현재 블록의 인트라 예측 모드로 도출할 수도 있다(S1240).
도 13은 본 개시의 일 실시예에 따른 인트라 예측 방향을 도시하는 도면이다.
인트라 예측 모드는 일 예로 2개의 비방향성 인트라 예측 모드들과 33개의 방향성 인트라 예측 모드들을 포함할 수 있다. 상기 비방향성 인트라 예측 모드들은 플래너(planar) 인트라 예측 모드 및 DC 인트라 예측 모드를 포함할 수 있고, 상기 방향성 인트라 예측 모드들은 2번 내지 34번 인트라 예측 모드들을 포함할 수 있다. 상기 플래너 인트라 예측 모드는 플래너 모드라고 불릴 수 있고, 상기 DC 인트라 예측 모드는 DC 모드라고 불릴 수 있다.
또는, 자연 영상(natural video)에서 제시된 임의의 에지 방향(edge direction)을 캡쳐하기 위하여, 도 13에 도시된 바와 같이 인트라 예측 모드는 2개의 비방향성 인트라 예측 모드들과 65개의 확장된 방향성 인트라 예측 모드들을 포함할 수 있다. 상기 비방향성 인트라 예측 모드들은 플래너 모드 및 DC 모드를 포함할 수 있고, 상기 방향성 인트라 예측 모드들은 2번 내지 66번 인트라 예측 모드들을 포함할 수 있다. 상기 확장된 인트라 예측 모드들은 모든 사이즈의 블록들에 적용될 수 있고, 루마 성분(루마 블록) 및 크로마 성분(크로마 블록) 모두에 적용될 수 있다.
또는, 상기 인트라 예측 모드는 2개의 비방향성 인트라 예측 모드들과 129개의 방향성 인트라 예측 모드들을 포함할 수 있다. 상기 비방향성 인트라 예측 모드들은 플래너 모드 및 DC 모드를 포함할 수 있고, 상기 방향성 인트라 예측 모드들은 2번 내지 130번 인트라 예측 모드들을 포함할 수 있다.
한편, 상기 인트라 예측 모드는 전술한 인트라 예측 모드들 외에도 크로마 샘플을 위한 CCLM(cross-component linear model) 모드를 더 포함할 수 있다. CCLM 모드는 LM 파라미터 도출을 위하여 좌측 샘플들을 고려하는지, 상측 샘플들을 고려하는지, 둘 다를 고려하는지에 따라 L_CCLM, T_CCLM, LT_CCLM으로 나누어질 수 있으며, 크로마 성분에 대하여만 적용될 수 있다.
인트라 예측 모드는 예를 들어 아래 표 2와 같이 인덱싱될 수 있다.
Figure PCTKR2020005982-appb-T000002
도 14는 본 개시의 다른 실시예에 따른 인트라 예측 방향을 도시하는 도면이다. 도 14에서, 점선 방향은 정사각형이 아닌 블록에만 적용되는 광각(wide angle) 모드를 도시한다. 도 14에 도시된 바와 같이, 자연 영상(natural video)에서 제시된 임의의 에지 방향(edge direction)을 캡쳐하기 위하여, 일 실시예에 따른 인트라 예측 모드는 2개의 비방향성 인트라 예측 모드와 함께 93개의 방향성 인트라 예측 모드를 포함할 수 있다. 비방향성 인트라 예측 모드들은 플래너 모드 및 DC 모드를 포함할 수 있다. 방향성 인트라 예측 모드는 도 14의 화살표로 나타낸 바와 같이 2번 내지 80번과 -1번 내지 -14번으로 구성되는 인트라 예측 모드를 포함할 수 있다. 상기 플래너 모드는 INTRA_PLANAR로 표기될 수 있고, DC 모드는 INTRA_DC로 표기될 수 있다. 그리고 방향성 인트라 예측 모드는 INTRA_ANGULAR-14 내지 INTRA_ANGULAR-1 및 INTRA_ANGULAR2 내지 INTRA_ANGULAR80과 같이 표기될 수 있다.
한편, 상술한 바와 같이 ALWIP가 현재 블록에 적용되는 경우(예컨대, LWIP 플래그 또는 intra_lwip_flag의 값이 1인 경우), 상기 ALWIP를 위한 MPM 리스트가 별도로 구성될 수 있으며, 상기 ALWIP를 위한 상기 인트라 예측 모드 정보에 포함될 수 있는 MPM 플래그는 intra_lwip_mpm_flag, MPM 인덱스는 intra_lwip_mpm_idx, 리메이닝 인트라 예측 모드 정보는 intra_lwip_mpm_remainder로 불릴 수 있다.
또한, ALWIP를 위하여 다양한 예측 모드들이 사용될 수 있으며, ALWIP를 위한 인트라 예측 모드에 따라 ALWIP를 위한 메트릭스 및 오프셋을 도출할 수 있다. 상술한 바와 같이 상기 메트릭스는 (어파인) 가중치 메트릭스라고 불릴 수 있고, 상기 오프셋은 (어파인) 오프셋 벡터 또는 (어파인) 바이어스(bias) 벡터라고 불릴 수 있다. 상기 ALWIP를 위한 인트라 예측 모드들의 수는 현재 블록의 사이즈를 기반으로 다르게 설정될 수 있다. 예를 들어, i) 현재 블록(ex. CB or TB)의 높이 및 너비가 각각 4인 경우, 35개의 인트라 예측 모드들(즉, 인트라 예측 모드 0 내지 34)이 가용할 수 있고, ii) 현재 블록의 높이 및 너비 둘 다 8 이하인 경우, 19개의 인트라 예측 모드들(즉, 인트라 예측 모드 0 내지 18)이 가용할 수 있고, iii) 그 외의 경우에는, 11개의 인트라 예측 모드들(즉, 인트라 예측 모드 0 내지 10)이 가용할 수 있다. 예를 들어, 현재 블록의 높이 및 너비가 각각 4인 경우를 블록 사이즈 타입 0이라고 하고, 현재 블록의 높이 및 너비가 둘 다 8 이하인 경우를 블록 사이즈 타입 1이라고 하고, 그 외의 경우를 블록 사이즈 타입 2라고 할 때, ALWIP를 위한 인트라 예측 모드들의 수는 표 3과 같이 정리될 수 있다. 다만 이는 예시이고, 블록 사이즈 타입 및 가용 인트라 예측 모드들의 수는 변경될 수 있다.
Figure PCTKR2020005982-appb-T000003
한편, MPM 리스트는 N개의 MPM을 포함하도록 구성될 수도 있다. 이때, N은 5 또는 6일 수 있다.
MPM 리스트를 구성하기 위하여 후술하는 3가지 종류의 모드들이 고려될 수 있다.
- 디폴트 인트라 모드들 (Default intra modes)
- 주변 인트라 모드들 (Neighbour intra modes)
- 도출된 인트라 모드들 (Derved intra modes)
상기 주변 인트라 모드들을 위하여, 두개의 주변 블록들, 즉, 좌측 주변 블록(A) 및 상측 주변 블록(B)이 고려될 수 있다.
또한, MPM 리스트를 구성하기 위하여 다음의 초기화된 디폴트 MPM이 고려될 수 있다.
Default 6 MPM modes = {A, Planar (0) or DC (1), Vertical (50), HOR (18), VER - 4 (46), VER + 4 (54)}
상기 2개의 주변 인트라 모드들에 대한 프루닝(pruning) 프로세스가 수행됨으로써 MPM 리스트가 구성될 수 있다. 상기 2개의 주변 인트라 모드들이 서로 동일하고 상기 주변 인트라 모드가 DC (1) 모드보다 큰 경우, MPM 리스트는 {A, Planar, DC} 모드들을 포함하고, 3개의 도출된 인트라 모드들을 포함할 수 있다. 3개의 도출된 인트라 모드들은 주변 인트라 모드에 소정의 오프셋 값을 더하거나 및/또는 모듈로 연산을 수행함으로써 획득될 수 있다. 상기 2개의 주변 인트라 모드들이 서로 상이한 경우, 상기 2개의 주변 인트라 모드들은 첫번째 MPM 모드 및 두번째 MPM 모드로 할당되고, 나머지 4개의 MPM 모드들은 디폴트 모드들 및/또는 주변 인트라 모드들로부터 도출될 수 있다. MPM 리스트 생성 과정에서, 프루닝 프로세스는 MPM 리스트에 동일한 모드가 중복되지 않도록 하기 위해 수행될 수 있다. MPM 모드 이외의 모드들의 엔트로피 부호화를 위해 Truncated Binary Code (TBC)가 사용될 수 있다.
상술한 MPM 리스트 구성 방법은 현재 블록에 ALWIP가 적용되지 않은 경우에 사용될 수 있다. 예를 들어, 상술한 MPM 리스트 구성 방법은 LIP, PDPC, MRL, ISP 인트라 예측이나, 노멀 인트라 예측에서 사용되는 인트라 예측 모드의 도출을 위하여 사용될 수 있다. 한편, 상기 좌측 주변 블록이나 상기 상측 주변 블록은 상술한 ALWIP를 기반으로 코딩될 수 있다. 즉, 상기 좌측 주변 블록 또는 상기 상측 주변 블록의 코딩시 ALWIP가 적용될 수 있다. 이 경우 ALWIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 ALWIP 인트라 예측 모드 번호를 그대로 ALWIP가 적용되지 않은 현재 블록을 위한 상기 MPM 리스트에 사용하는 것은 적합하지 않다. 따라서, 이 경우 일 예로, ALWIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드는 DC 또는 플래너 모드인 것으로 간주할 수 있다. 즉, 현재 블록의 MPM 리스트를 구성할 때, ALWIP로 부호화된 주변 블록의 인트라 예측 모드는 DC 또는 플래너 모드로 대체될 수 있다. 또는 다른 예로, ALWIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드를 매핑 테이블을 기반으로 일반 인트라 예측 모드에 매핑시켜서 현재 블록의 MPM 리스트 구성에 이용할 수 있다. 이 경우 현재 블록의 상기 블록 사이즈 타입을 기반으로 상기 매핑을 수행할 수 있다. 예를 들어, 상기 매핑 테이블은 표 4와 같이 나타낼 수 있다.
Figure PCTKR2020005982-appb-T000004
상기 표 4에서, ALWIP IntraPredMode는 주변 블록(좌측 주변 블록/상측 주변 블록)의 ALWIP 인트라 예측 모드를 나타내고, block size type (sizeId)는 주변 블록 또는 현재 블록의 블록 사이즈 타입을 나타낸다. 블록 사이즈 타입 값 0, 1, 2 밑의 숫자들은 각 블록 사이즈 타입인 경우에, ALWIP 인트라 예측 모드가 매핑되는 일반 인트라 예측 모드를 나타낸다. 예를 들어, 현재 블록의 블록 사이즈 타입이 0이고, 주변 블록의 ALWIP 인트라 예측 모드 번호가 10인 경우, 매핑되는 일반 인트라 예측 모드 번호는 18일 수 있다. 다만, 상기 매핑 관계는 예시이며, 변경될 수 있다.
한편, 현재 블록에 ALWIP가 적용되는 경우, 상기 ALWIP가 적용되는 현재 블록을 위한 MPM 리스트가 별도로 구성될 수 있다. 상기 MPM 리스트는 현재 블록에 ALWIP가 적용되지 않는 경우의 MPM 리스트와 구분하기 위하여 ALWIP MPM 리스트 (또는 LWIP MPM 리스트, candLwipModeList) 등 다양한 이름으로 불릴 수 있다. 이하, 구분을 위하여 ALWIP MPM 리스트라고 표현하나, 이는 단순히 MPM 리스트라고 불릴 수도 있다.
상기 ALWIP MPM 리스트는 n개의 후보들을 포함할 수 있으며, 예를 들어 n은 3일 수 있다. 상기 ALWIP MPM 리스트는 상기 현재 블록의 좌측 주변 블록 및 상측 주변 블록을 기반으로 구성될 수 있다. 여기서 상기 좌측 주변 블록은 상기 현재 블록의 좌측 경계에 인접한 주변 블록들 중 가장 상측에 위치한 블록을 나타낼 수 있다. 또한, 상기 상측 주변 블록은 상기 현재 블록의 상측 경계에 인접한 주변 블록들 중 가장 좌측에 위치한 블록을 나타낼 수 있다.
예를 들어, 상기 좌측 주변 블록에 ALWIP가 적용된 경우, 제1 후보 인트라 예측 모드(or candLwipModeA)는 상기 좌측 주변 블록의 ALWIP 인트라 예측 모드와 같게 설정될 수 있다. 또한, 예를 들어, 상기 상측 주변 블록에 ALWIP가 적용된 경우, 제2 후보 인트라 예측 모드(or candLwipModeB)는 상기 상측 주변 블록의 ALWIP 인트라 예측 모드와 같게 설정될 수 있다. 한편, 상기 좌측 주변 블록이나 상기 상측 주변 블록은 ALWIP가 아닌 인트라 예측을 기반으로 코딩될 수 있다. 즉, 상기 좌측 주변 블록 또는 상기 상측 주변 블록의 코딩시 ALWIP가 아닌 다른 인트라 예측 타입이 적용될 수 있다. 이 경우 ALWIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 일반 인트라 예측 모드 번호를 그대로 ALWIP가 적용된 현재 블록을 위한 후보 인트라 모드로 사용하는 것은 적합하지 않다. 따라서, 이 경우, 일 예로, ALWIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 ALWIP 인트라 예측 모드는 특정 값(ex. 0, 1 or 2 등)의 ALWIP 인트라 예측 모드인 것으로 간주할 수 있다. 또는 다른 예로, ALWIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 일반 인트라 예측 모드를 매핑 테이블을 기반으로 ALWIP 인트라 예측 모드에 매핑시켜서 ALWIP MPM 리스트 구성에 이용할 수 있다. 이 경우 현재 블록의 상기 블록 사이즈 타입을 기반으로 상기 매핑을 수행할 수 있다. 예를 들어, 상기 매핑 테이블은 표 5와 같이 나타낼 수 있다.
Figure PCTKR2020005982-appb-T000005
표 5에서, IntraPredModeY는 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드를 나타낸다. 여기서 상기 주변 블록의 인트라 예측 모드는 루마 성분(샘플)에 대한 인트라 예측 모드, 즉 루마 인트라 예측 모드일 수 있다. block size type sizeId는 주변 블록 또는 현재 블록의 블록 사이즈 타입을 나타낸다. 블록 사이즈 타입 값 0, 1, 2 밑의 숫자들은 각 블록 사이즈 타입인 경우에 일반 인트라 예측 모드가 매핑되는 ALWIP 인트라 예측 모드를 나타낸다. 예를 들어, 현재 블록의 블록 사이즈 타입이 0이고, 주변 블록의 일반 인트라 예측 모드가 10인 경우, 매핑되는 ALWIP 인트라 예측 모드 번호는 9일 수 있다. 다만, 상기 매핑 관계는 예시이며, 변경될 수 있다.
또한, 상기 주변 블록(ex. 좌측 주변 블록/상측 주변 블록)이 가용하지 않거나(ex. 현재 픽처의 외부에 위치, 현재 타일/타일 그룹/슬라이스의 외부에 위치 등), 주변 블록에 ALWIP가 적용되었더라도 주변 블록의 ALWIP 인트라 예측 모드가 블록 사이즈 타입에 따라 현재 블록에 가용하지 않을 수도 있다. 이 경우에는 제1 후보 및/또는 제2 후보를 위하여 미리 정의된 특정 ALWIP 인트라 예측 모드가 상기 제1 후보 인트라 예측 모드 또는 제2 후보 인트라 예측 모드로 사용될 수 있다. 또한, 제3 후보를 위하여 미리 정의된 특정 ALWIP 인트라 예측 모드가 제3 후보 인트라 예측 모드로 사용될 수도 있다.
예를 들어, 상기 미리 정의된 특정 ALWIP 인트라 예측 모드는 표 6과 같이 나타낼 수 있다.
Figure PCTKR2020005982-appb-T000006
상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드를 기반으로 상기 ALWIP MPM 리스트를 구성할 수 있다. 예를 들어, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드가 서로 다른 경우, 상기 제1 후보 인트라 예측 모드를 ALWIP MPM 리스트의 0번째 후보(ex. lwipMpmcand[0])로 넣고, 상기 제2 후보 인트라 예측 모드를 ALWIP MPM 리스트의 1번째 후보(ex. lwipMpmcand[1])로 넣을 수 있다. ALWIP MPM 리스트의 2번째 후보(ex. lwipMpmcand[2])는 상술한 미리 정의된 특정 ALWIP 인트라 예측 모드가 이용될 수 있다.
또는, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드가 서로 동일한 경우, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드 중 하나를 ALWIP MPM 리스트의 0번째 후보(ex. lwipMpmcand[0])로 넣을 수 있고, 상기 ALWIP MPM 리스트의 1번째 후보(ex. lwipMpmcand[1]) 및 ALWIP MPM 리스트의 2번째 후보(ex. lwipMpmcand[2])는 상술한 미리 정의된 특정 ALWIP 인트라 예측 모드들을 이용할 수 있다.
상술한 바와 같이 상기 ALWIP MPM 리스트를 기반으로 상기 현재 블록의 ALWIP 인트라 예측 모드가 도출될 수 있다. 이 경우, 상술한 바와 같이 상기 ALWIP를 위한 상기 인트라 예측 모드 정보에 포함될 수 있는 MPM 플래그는 intra_lwip_mpm_flag, MPM 인덱스는 intra_lwip_mpm_idx, 리메이닝 인트라 예측 모드 정보는 intra_lwip_mpm_remainder로 불릴 수 있다. 상기 ALWIP MPM 리스트로부터 ALWIP 인트라 예측 모드를 도출하는 절차는 도 10 및 도 11을 참조하여 상술한 바와 같이 수행될 수 있다. 또는 현재 블록의 ALWIP 인트라 예측 모드가 직접적으로 시그널링될 수도 있다.
Affine linear weighted intra prediction (ALWIP)
이하, 본 개시에 따른 ALWIP에 대해 구체적으로 설명한다.
ALWIP는 Matrix weighted intra prediction (MWIP) 또는 Matrix based intra prediction (MIP)으로 불릴 수도 있다. ALWIP를 적용하여 WxH 크기의 현재 블록을 예측하기 위해, 현재 블록의 좌측에 인접한 H개의 복원된 주변 경계 샘플들(reconstructed neighbouring boundary samples)을 포함하는 하나의 라인과, 현재 블록의 상단에 인접한 W개의 복원된 주변 경계 샘플들을 포함하는 하나의 라인이 입력으로 이용될 수 있다. 가용하지 않은 복원된 주변 경계 샘플은 통상의 인트라 예측에서 수행되는 방법에 따라 가용한 샘플로 대체될 수 있다. ALWIP를 적용하여 예측 신호를 생성하는 과정은 아래의 세가지 단계를 포함할 수 있다.
1단계. Averaging process: 주변 경계 샘플들을 이용하여 에버리징을 수행함으로써, 4개의 샘플값들(W=H=4인 경우) 또는 8개의 샘플값들(그 외의 경우)을 도출할 수 있다.
2단계. Matix vector multiplication process: 상기 에버리징된 샘플값들을 입력으로하여 매트릭스 벡터곱을 수행하고, 오프셋을 가산함으로써, 원본 블록(original block) 내 샘플들의 서브샘플셋(subsampled set)에 대한 축소된 예측 신호(reduced prediction signal)를 생성할 수 있다.
3단계. (linear) Interpolation process: 상기 서브샘플셋에 대한 예측 신호를 선형 보간함으로써 나머지 위치(remaining position)에서의 예측 신호를 생성할 수 있다. 상기 선형 보간은 각 방향으로의 단일 스텝(single step) 선형 보간일 수 있다.
상기 예측 신호(예측된 블록 또는 예측된 샘플들)를 생성하기 위해 필요한 매트릭스와 오프셋은 3개의 매트릭스 집합 S0, S1, S2로부터 획득될 수 있다. 집합 S0는 18개의 매트릭스와 18개의 오프셋 벡터로 구성될 수 있다. 이때, 각각의 매트릭스는 16행(row)과 4열(column)로 구성되고, 각 오프셋 벡터의 크기는 16일 수 있다. 집합 S0의 매트릭스와 오프셋 벡터는 4x4 크기의 블록에 대해 사용될 수 있다.
집합 S1는 10개의 매트릭스와 10개의 오프셋 벡터로 구성될 수 있다. 이때, 각각의 매트릭스는 16행(row)과 8열(column)로 구성되고, 각 오프셋 벡터의 크기는 16일 수 있다. 집합 S1의 매트릭스와 오프셋 벡터는 4x8, 8x4 및 8x8 크기의 블록에 대해 사용될 수 있다.
집합 S2는 6개의 매트릭스와 6개의 오프셋 벡터로 구성될 수 있다. 이때, 각각의 매트릭스는 64행(row)과 8열(column)로 구성되고, 각 오프셋 벡터의 크기는 64일 수 있다. 집합 S2의 매트릭스와 오프셋 벡터는 다른 모든 형태의 블록에 대해 사용될 수 있다.
매트릭스 벡터곱의 연산에 필요한 곱셈의 총 수는 항상 4xWxH와 같거나 작다. 즉, 샘플당 최대 4번의 곱셈이 ALWIP 모드를 위해 필요하다.
이하, 도 15 내지 도 18을 참조하여 다양한 블록의 형태에 대한 ALWIP 과정을 설명한다. 도 15 내지 도 18에 도시된 블록 이외의 블록은 도 15 내지 도 18을 참조하여 설명한 방법 중 하나로 처리될 수 있다.
도 15는 4x4 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
먼저, 에버리징 단계에서, 각각의 경계를 따라 두개의 평균값이 획득될 수 있다. 즉, 현재 블록의 상단의 주변 경계 샘플들을 두개씩 선택하여 평균함으로써, 두개의 평균값(bdrytop)을 획득할 수 있다. 또한, 현재 블록의 좌측의 주변 경계 샘플들을 두개씩 선택하여 평균함으로써, 두개의 평균값(bdryleft)을 획득할 수 있다. 이후, 에버리징 단계에서 생성된 네개의 샘플값(bdryred)을 입력으로 하여 매트릭스 벡터곱이 수행될 수 있다. 이때, 매트릭스(Ak)는 ALWIP 모드(mode k)를 이용하여 집합 S0로부터 획득될 수 있다. 매트릭스 벡터곱을 수행한 결과에 오프셋(bk)을 가산한 결과 16개의 최종 예측 샘플들이 생성될 수 있다. 이 경우, 선형 보간은 필요하지 않다. 따라서, 샘플당 총 (4x16)/(4x4) = 4 번의 곱셈이 수행될 수 있다.
도 16은 8x8 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
먼저, 에버리징 단계에서, 각각의 경계를 따라 네개의 평균값이 획득될 수 있다. 즉, 현재 블록의 상단의 주변 경계 샘플들을 두개씩 선택하여 평균함으로써, 네개의 평균값(bdrytop)을 획득할 수 있다. 또한, 현재 블록의 좌측의 주변 경계 샘플들을 두개씩 선택하여 평균함으로써, 네개의 평균값(bdryleft)을 획득할 수 있다. 이후, 에버리징 단계에서 생성된 여덟개의 샘플값(bdryred)을 입력으로 하여 매트릭스 벡터곱이 수행될 수 있다. 이때, 매트릭스(Ak)는 ALWIP 모드(mode k)를 이용하여 집합 S1로부터 획득될 수 있다. 매트릭스 벡터곱을 수행한 결과에 오프셋(bk)을 가산한 결과, 예측 블록 내 16개의 홀수 위치의 샘플들(predred)이 생성될 수 있다. 따라서, 샘플당 총 (8x16)/(8x8) = 2 번의 곱셈이 수행될 수 있다. 마지막으로 predred의 샘플들과 축소된 상단 주변 경계 샘플들(bdryred top)을 이용하여 수직 방향 보간이 수행될 수 있다. 이후, 좌측 주변 경계 샘플들(bdryleft)을 이용하여 수평 방향 보간이 수행될 수 있다. 이때, 보간을 위해서는 곱셈 연산이 필요하지 않으므로, 8x8 블록에 대한 ALWIP 예측을 위해 샘플당 총 2번의 곱셈이 수행될 수 있다.
도 17은 8x4 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
먼저, 에버리징 단계에서, 수평 경계를 따라 네개의 평균값이 획득될 수 있다. 즉, 현재 블록의 상단의 주변 경계 샘플들을 두개씩 선택하여 평균함으로써, 네개의 평균값(bdrytop)을 획득할 수 있다. 또한, 현재 블록의 좌측의 4개의 주변 경계 샘플들(bdryleft)을 획득할 수 있다. 이후, 에버리징 단계에서 생성된 여덟개의 샘플값(bdryred)을 입력으로 하여 매트릭스 벡터곱이 수행될 수 있다. 이때, 매트릭스(Ak)는 ALWIP 모드(mode k)를 이용하여 집합 S1로부터 획득될 수 있다. 매트릭스 벡터곱을 수행한 결과에 오프셋(bk)을 가산한 결과, 예측 블록 내 16개의 위치의 샘플들(predred)이 생성될 수 있다. 16개의 위치는 수평 방향으로 홀수 좌표이고 수직 방향으로 모든 좌표의 위치일 수 있다. 따라서, 샘플당 총 (8x16)/(8x4) = 4 번의 곱셈이 수행될 수 있다. 마지막으로 predred의 샘플들과 좌측 주변 경계 샘플들(bdryleft)을 이용하여 수평 방향 보간이 수행될 수 있다. 이때, 보간을 위해서는 곱셈 연산이 필요하지 않으므로, 8x4 블록에 대한 ALWIP 예측을 위해 샘플당 총 4번의 곱셈이 수행될 수 있다.
4x8 블록에 대한 ALWIP 과정은 8x4 블록에 대한 과정의 전치된(transposed) 과정일 수 있다.
도 18은 16x16 블록에 대한 ALWIP 과정을 설명하기 위한 도면이다.
먼저, 에버리징 단계에서, 경계를 따라 네개의 평균값이 획득될 수 있다. 예컨대, 현재 블록의 주변 경계 샘플들을 두개씩 선택하여 평균하여 8개의 평균값을 획득하고, 8개의 샘플값들 중 두개씩 선택하여 평균함으로써 4개의 평균값을 획득할 수 있다. 또는, 현재 블록의 주변 경계 샘플들을 4개씩 선택하여 평균함으로써 4개의 평균값을 획득할 수 있다. 이후, 에버리징 단계에서 생성된 여덟개의 샘플값(bdryred)을 입력으로 하여 매트릭스 벡터곱이 수행될 수 있다. 이때, 매트릭스(Ak)는 ALWIP 모드(mode k)를 이용하여 집합 S2로부터 획득될 수 있다. 매트릭스 벡터곱을 수행한 결과에 오프셋(bk)을 가산한 결과, 예측 블록 내 16개의 홀수 위치의 샘플들(predred)이 생성될 수 있다. 따라서, 샘플당 총 (8x64)/(16x16) = 2 번의 곱셈이 수행될 수 있다. 마지막으로 predred의 샘플들과 축소된 상단 주변 경계 샘플들(bdryredII top)을 이용하여 수직 방향 보간이 수행될 수 있다. 이후, 좌측 주변 경계 샘플들(bdryleft)을 이용하여 수평 방향 보간이 수행될 수 있다. 이때, 보간을 위해서는 곱셈 연산이 필요하지 않으므로, 16x16 블록에 대한 ALWIP 예측을 위해 샘플당 총 2번의 곱셈이 수행될 수 있다.
Wx8 블록 (W>8)의 경우, predred의 샘플들은 수평 방향으로 홀수 좌표이고 수직 방향으로 모든 좌표의 위치에 존재하므로, 수평 방향 보간만이 수행될 수 있다. 이 경우, predred을 계산하기 위해, 샘플당 총 (8x64)/(Wx8) = 64/W 번의 곱셈이 수행될 수 있다. 예컨대, W가 16일 때, 선형 보간을 위한 추가적인 곱셈은 수행되지 않을 수 있다. 또한, W가 16보다 클 때, 선형 보간을 위해 샘플당 필요한 추가적인 곱셈의 횟수는 2보다 작을 수 있다. 따라서, 샘플당 곱셈의 총 횟수는 4와 같거나 4보다 작을 수 있다.
Wx4 블록 (W>8)의 경우, 매트릭스 Ak는 상기 축소된 블록의 수평 방향을 따라 홀수 항목(odd entry)에 해당하는 모든 행을 생략함으로써 생성될 수 있다. 따라서, predred는 32개 샘플들을 포함하고, 수평 방향 보간만이 수행될 수 있다. 이 경우, predred를 계산하기 위해, 샘플당 총 (8x32)/(Wx4) = 64/W 번의 곱셈이 수행될 수 있다. 예컨대, W가 16일 때, 선형 보간을 위한 추가적인 곱셈은 수행되지 않을 수 있다. 또한, W가 16보다 클 때, 선형 보간을 위해 샘플당 필요한 추가적인 곱셈의 횟수는 2보다 작을 수 있다. 따라서, 샘플당 곱셈의 총 횟수는 4와 같거나 4보다 작을 수 있다.
8xH 블록 또는 4xH 블록에 대한 ALWIP 과정은 Wx8 블록 또는 Wx4 블록에 대한 과정의 전치된(transposed) 과정일 수 있다.
이하, 상기 에버리징 단계에 대해 상세히 설명한다.
도 19는 본 개시에 따른 ALWIP 과정의 에버리징 단계를 설명하기 위한 도면이다.
에버리징은 현재 블록의 좌측 경계 및/또는 상단 경계의 각각에 대해 적용될 수 있다. 이때, 경계는 도 19에 도시된 회색 샘플들과 같이, 현재 블록의 경계에 인접한 주변 참조 샘플들을 나타낸다. 예를 들어, 좌측 경계 bdryleft는 현재 블록의 좌측 경계에 인접한 좌측 주변 참조 샘플들을 나타낸다. 또한, 상단 경계 bdrytop는 현재 블록의 상단 경계에 인접한 상단 주변 참조 샘플들을 나타낸다.
현재 블록이 4x4 블록이면, 각 경계 크기는 에버리징 과정에 기반하여 2개의 샘플들로 축소될 수 있다. 현재 블록이 4x4 블록 이외의 블록이면, 각 경계 크기는 에버리징 과정에 기반하여 4개의 샘플들로 축소될 수 있다.
먼저, 입력 경계 bdrytop 과 bdryleft는 보다 작은 경계
Figure PCTKR2020005982-appb-I000001
Figure PCTKR2020005982-appb-I000002
로 축소될 수 있다.
Figure PCTKR2020005982-appb-I000003
Figure PCTKR2020005982-appb-I000004
는 4x4 블록의 경우 2개의 샘플들로 구성될 수 있고, 그 외의 경우는 4개의 샘플들로 구성될 수 있다.
구체적으로, 4x4 블록의 경우, 수학식 1을 이용하여
Figure PCTKR2020005982-appb-I000005
가 생성될 수 있다.
Figure PCTKR2020005982-appb-M000001
수학식 1에서 i는 0 이상, 2 미만의 값을 가질 수 있다. 또한, 상기 수학식 1과 유사하게
Figure PCTKR2020005982-appb-I000006
가 생성될 수 있다.
그렇지 않고, 블록의 너비 W가 4x2k 일 때, 수학식 2를 이용하여
Figure PCTKR2020005982-appb-I000007
가 생성될 수 있다.
Figure PCTKR2020005982-appb-M000002
수학식 2에서 i는 0 이상, 4 미만의 값을 가질 수 있다. 또한, 상기 수학식 2와 유사하게
Figure PCTKR2020005982-appb-I000008
가 생성될 수 있다.
상기와 같이 생성된 두개의 축소된 경계
Figure PCTKR2020005982-appb-I000009
Figure PCTKR2020005982-appb-I000010
는 연결되어(concatenate) 축소된 경계 벡터 bdryred가 생성될 수 있다. 축소된 경계 벡터는 4x4 블록에 대해 4의 크기를 갖고, 그 외의 블록에 대해 8의 크기를 가질수 있다. 수학식 3은 mode (ALWIP 모드)와 블록의 크기(W, H)에 따라
Figure PCTKR2020005982-appb-I000011
Figure PCTKR2020005982-appb-I000012
를 연결하여 bdryred 를 생성하는 방법을 나타낸다.
Figure PCTKR2020005982-appb-M000003
수학식 3에 나타낸 바와 같이, 현재 블록의 크기(W, H) 및 ALWIP 모드에 따라,
Figure PCTKR2020005982-appb-I000013
Figure PCTKR2020005982-appb-I000014
를 연결하는 순서가 달라질 수 있다. 예컨대, 현재 블록이 4x4 블록이고, 모드가 18보다 작을 때, bdryred
Figure PCTKR2020005982-appb-I000015
이후에
Figure PCTKR2020005982-appb-I000016
를 연결함으로써 생성될 수 있다. 또는 예컨대, 현재 블록이 4x4 블록이고, 모드가 18이거나 18보다 클 때, bdryred
Figure PCTKR2020005982-appb-I000017
이후에
Figure PCTKR2020005982-appb-I000018
를 연결함으로써 생성될 수 있다. 또는
Figure PCTKR2020005982-appb-I000019
Figure PCTKR2020005982-appb-I000020
를 연결하는 순서는 비트스트림을 통해 시그널링되는 정보(예컨대, 플래그 정보)에 기반하여 결정될 수도 있다.
마지막으로, 큰 사이즈의 블록에 대해 서브샘플된 예측 신호의 보간을 수행하기 위해, 제2 버전의 에버리징된 경계가 필요하다. 즉, min(W, H)>8 이고, W>=H 일 때, W=8x2l로 나타낼 수 있고, 이 때, 제2 버전의 에버리징된 경계
Figure PCTKR2020005982-appb-I000021
는 수학식 4를 이용하여 생성될 수 있다.
Figure PCTKR2020005982-appb-M000004
상기 수학식 4에서 i는 0 이상, 8 미만의 값을 가질 수 있다. 또한, min(W, H)>8 이고, W<H 일 때, 상기 수학식 4와 유사하게
Figure PCTKR2020005982-appb-I000022
가 생성될 수 있다.
이하, 매트릭스 벡터곱을 수행하여 축소된 예측 신호를 생성하는 단계를 상세히 설명한다.
에버리징 단계에서 생성된 bdryred를 이용하여 축소된 예측 신호 predred를 생성할 수 있다. 축소된 예측 신호 predred는 WredxHred의 크기를 갖는 다운샘플된 블록(downsampled block)의 신호일 수 있다. 이 때, Wred와 Hred와는 수학식 5와 같이 정의될 수 있다.
Figure PCTKR2020005982-appb-M000005
축소된 예측 신호 predred는 수학식 6과 같이 매트릭스 벡터곱과 오프셋의 가산에 의해 생성될 수 있다.
Figure PCTKR2020005982-appb-M000006
수학식 6에서 A는 WredxHred 행과 4열(현재 블록이 4x4 블록일 때) 또는 8열(그 외의 경우)로 구성된 매트릭스일 수 있다. 오프셋 벡터 b는 WredxHred 크기의 벡터일 수 있다.
매트릭스 A와 오프셋 벡터 b는 아래와 같이 매트릭스 집합 S0, S1, S2로부터 획득될 수 있다.
먼저, 인덱스(idx)가 수학식 7에 따라 idx(W, H)로 설정될 수 있다. 즉, idx는 현재 블록의 너비(W)와 높이(H)에 기반하여 설정될 수 있다.
Figure PCTKR2020005982-appb-M000007
또한, 수학식 8에 따라, ALWIP mode와 현재 블록의 너비(W) 및 높이(H)에 기반하여 변수 m이 설정될 수 있다.
Figure PCTKR2020005982-appb-M000008
인덱스 idx가 1 이하인 경우, 또는 인덱스 idx가 2이고 min(W, H)가 4보다 큰 경우, 매트릭스 A는
Figure PCTKR2020005982-appb-I000023
으로 결정되고 오프셋 벡터 b는
Figure PCTKR2020005982-appb-I000024
로 결정될 수 있다. 인덱스 idx가 2이고, min(W, H)가 4인 경우, 매트릭스 A는, W가 4인 경우,
Figure PCTKR2020005982-appb-I000025
에서 다운샘플된 블록(downsampled block) 내 홀수 x 좌표에 대응하는 모든 행(row)을 생략함으로써 생성되거나, H가 4인 경우,
Figure PCTKR2020005982-appb-I000026
에서 다운샘플된 블록(downsampled block) 내 홀수 y 좌표에 대응하는 모든 행(row)을 생략함으로써 생성될 수 있다.
최종적으로, 아래의 수학식 9의 경우, 축소된 예측 신호는 행과 열이 뒤바뀔 수 있다.
Figure PCTKR2020005982-appb-M000009
W=H=4인 경우, 매트릭스 A는 4열과 16행을 가지므로, 축소된 예측 신호 predred의 계산에 요구되는 곱셈의 수는 4이다. 그 외 다른 모든 경우, 매트릭스 A는 8열과 WredxHred 행을 가지므로, 8xWredxHred<=4xWxH 번의 곱셈이 요구된다. 즉, 이 경우 샘플당 최대 4번의 곱셈이 수행될 수 있다.
이하, 선형 보간 단계에 대해 상세히 설명한다.
보간 과정은 선형(linear) 보간 또는 양선형(bilinear) 보간 과정이라고 불릴 수 있다. 보간 과정은 수직 보간과 수평 보간의 2 단계를 포함할 수 있다.
W>=H인 경우, 수직 보간이 먼저 수행되고, 수평 보간이 수행될 수 있다. W<H인 경우, 수평 보간이 먼저 수행되고, 수직 보간이 수행될 수 있다. 4x4 블록의 경우, 보간 과정은 스킵될 수 있다.
도 20은 본 개시에 따른 ALWIP 과정의 보간 단계를 설명하기 위한 도면이다.
Max(W, H)>=8인 WxH 블록의 경우, 예측 신호는 축소된 예측 신호 predred (WredxHred)를 선형 보간함으로써 생성될 수 있다. 블록의 형태에 종속적으로, 선형 보간은 수직 방향, 수평 방향 또는 양방향으로 수행될 수 있다. 선형 보간이 양방향으로 수행되는 경우, W<H 일때 수평 방향이 먼저 수행되고, 그렇지 않은 경우 수직 방향이 먼저 수행될 수 있다. 도 20에 도시된 바와 같이, 예컨대, 8x8 블록의 경우, 수직 방향 보간이 먼저 수행되고, 이후 수평 방향 보간이 수행되어 최종 예측 신호(pred)가 생성될 수 있다.
이하에서 Max(W, H)>=8이고, W>=H인 WxH 블록의 경우, 1차원 선형 보간의 예로서 수직 방향의 선형 보간을 설명한다. 그러나, 이하의 설명은 수평 방향의 선형 보간에도 적응적으로 적용될 수 있다. 즉, 설명의 중복을 피하기 위해 수직 방향의 선형 보간에 대해서만 설명하나, 이하의 설명은 수평 방향의 선형 보간에 대해서도 적용될 수 있다. 먼저, 축소된 예측 신호는 경계 신호에 기반하여 상단 경계까지 확장될 수 있다. 수직 업샘플링 팩터(factor) Uver=H/Hred로 정의하면, Uver는 2의 uver승으로 표현될 수 있다. 확장된 축소된 예측 신호(extended reduced prediction signal)는 수학식 10에 의해 생성될 수 있다.
Figure PCTKR2020005982-appb-M000010
상기 확장된 축소된 예측 신호로부터, 수학식 11을 이용하여, 수직으로 선형 보간을 수행함으로써, 수직 보간된 예측 신호가 생성될 수 있다.
Figure PCTKR2020005982-appb-M000011
수평 방향의 선형 보간은 상기 수직 방향의 선형 보간과 유사하게 수행될 수 있다. 이때, 행과 열, x좌표와 y좌표는 각각 뒤바뀔수 있다. 또한, 확장된 축소된 예측 신호는 축소된 예측 신호를 좌측 경계까지 확장한 것일 수 있다.
상술한 바와 같이, 수직 방향의 선형 보간 및/또는 수평 방향의 선형 보간을 수행함으로써, 현재 블록의 예측 신호가 최종적으로 생성될 수 있다.
이하, 본 개시에 따른 레지듀얼 신호의 변환/역변환에 대해 상세히 설명한다.
상술한 바와 같이 영상 부호화 장치는 인트라/인터/IBC 예측 등을 통하여 예측된 블록(예측 샘플들)을 기반으로 레지듀얼 블록(레지듀얼 샘플들)을 도출할 수 있고, 도출된 레지듀얼 샘플들에 변환 및 양자화를 적용하여 양자화된 변환 계수들을 도출할 수 있다. 양자화된 변환 계수들에 대한 정보(레지듀얼 정보)는 레지듀얼 코딩 신택스에 포함되어 인코딩 후 비트스트림 형태로 출력될 수 있다. 영상 복호화 장치는 상기 비트스트림으로부터 상기 양자화된 변환 계수들에 대한 정보(레지듀얼 정보)를 획득하고, 디코딩하여 양자화된 변환 계수들을 도출할 수 있다. 영상 복호화 장치는 양자화된 변환 계수들을 기반으로 역양자화/역변환을 거쳐서 레지듀얼 샘플들을 도출할 수 있다. 상술한 바와 같이 상기 양자화/역양자화 및/또는 변환/역변환 중 적어도 하나는 생략될 수 있다. 상기 변환/역변환이 생략되는 경우, 상기 변환 계수는 계수 또는 레지듀얼 계수라고 불릴 수도 있고, 또는 표현의 통일성을 위하여 변환 계수라고 여전히 불릴 수도 있다. 상기 변환/역변환의 생략 여부는 transform_skip_flag를 기반으로 시그널링될 수 있다.
상기 변환/역변환은 변환 커널(들)을 기반으로 수행될 수 있다. 예를 들어 본 개시에 따르면 MTS(multiple transform selection) 스킴(scheme)이 적용될 수 있다. 이 경우 다수의 변환 커널 세트들 중 일부가 선택되어 현재 블록에 적용될 수 있다. 변환 커널은 변환 매트릭스, 변환 타입 등 다양한 용어로 불릴 수 있다. 예를 들어, 변환 커널 세트는 수직 방향 변환 커널(수직 변환 커널) 및 수평 방향 변환 커널(수평 변환 커널)의 조합을 나타낼 수 있다. 예를 들어, MTS 인덱스 정보(예컨대, tu_mts_idx 신텍스 요소)가 상기 변환 커널 세트들 중 하나를 지시하기 위하여 영상 부호화 장치에서 생성/인코딩되어 영상 복호화 장치로 시그널링될 수 있다. 예를 들어 MTS 인덱스 정보의 값에 따른 변환 커널 세트는 표 7과 같을 수 있다.
Figure PCTKR2020005982-appb-T000007
표 7에서, tu_mts_idx는 MTS 인덱스 정보를 나타내고, trTypeHor 및 trTypeVer는 각각 수평 변환 커널 및 수직 변환 커널을 나타낸다.
상기 변환 커널 세트는 예를 들어, cu_sbt_horizontal_flag 및 cu__sbt_pos_flag를 기반으로 결정될 수도 있다. cu_sbt_horizontal_flag는 1의 값을 가질 때, 현재 블록이 2개의 변환 블록들로 수평 방향 분할됨을 나타내고, 0의 값을 가질 때, 현재 블록이 2개의 변환 블록들로 수직 방향 분할됨을 나타낼 수 있다. cu_sbt_pos_flag는 1의 값을 가질 때, 현재 블록의 첫번째 변환 블록에 대한 tu_cbf_luma, tu_cbf_cb 및 tu_cbf_cr가 비트스트림에 존재하지 않음을 나타내고, 0의 값을 가질 때, 현재 블록의 두번째 변환 블록에 대한 tu_cbf_luma, tu_cbf_cb 및 tu_cbf_cr가 비트스트림에 존재하지 않음을 나타낼 수 있다. tu_cbf_luma, tu_cbf_cb 및 tu_cbf_cr는 해당 색 성분(luma, cb, cr)의 변환 블록이 적어도 하나의 0이 아닌 변환 계수를 포함하는지를 나타내는 신택스 요소일 수 있다. 예컨대, tu_cbf_luma는 1의 값을 가질 때, 해당 luma 변환 블록이 적어도 하나의 0이 아닌 변환 계수를 포함함을 나타낼 수 있다. 상술한 바와 같이, trTypeHor 및 trTypeVer는 cu_sbt_horizontal_flag 및 cu__sbt_pos_flag에 기반하여 아래 표 8에 따라 결정될 수 있다.
Figure PCTKR2020005982-appb-T000008
표 8에서, 예컨대, cu_sbt_horizontal_flag가 0이고, cu_sbt_pos_flag가 1일 때, trTpeHor 및 trTypeVer는 각각 1로 결정될 수 있다. 상기 변환 커널 세트는 예를 들어, 현재 블록에 대한 인트라 예측 모드를 기반으로 결정될 수도 있다.
본 개시에서 상기 MTS 기반 변환은 1차 변환(primary transform)에 적용되고, 추가적으로 2차 변환(Secondary transform)이 더 적용될 수 있다. 상기 2차 변환은 상기 1차 변환이 적용된 계수 블록의 좌상단 wxh 영역의 계수들에 대하여만 적용될 수도 있으며, Reduced secondary transform(RST)이라고 불릴 수 있다. 예를 들어, 상기 w 및/또는 h는 4 또는 8일 수 있다. 변환에서 레지듀얼 블록에 상기 1차 변환 및 상기 2차 변환이 순차적으로 적용될 수 있고, 역변환에서는 변환 계수들에 2차 역변환 및 1차 역변환이 순차적으로 적용될 수 있다. 상기 2차 변환(RST 변환)은 low freueqncy coefficients 변환(LFC 변환 또는 LFCT)이라고 불릴 수 있다. 상기 2차 역변환은 역 LFC 변환 또는 역 LFCT라고 불릴 수 있다.
도 21은 레지듀얼 블록에 적용되는 변환 방법을 설명하기 위한 도면이다.
도 21에 도시된 바와 같이, 영상 부호화 장치의 변환부(120)는 레지듀얼 샘플들을 입력받아 1차 변환(Primary Transform)을 수행하여 변환 계수들(A)를 생성하고, 2차 변환(Secondary Transform)을 수행하여 변환 계수들(B)를 생성할 수 있다. 영상 부호화 장치의 역변환부(150) 및 영상 복호화 장치의 역변환부(230)는 변환 계수들(B)를 입력받아 2차 역변환(Inverse Secondary Transform)을 수행하여 변환 계수들(A)를 생성하고, 1차 역변환(Inverse Primary Transform)을 수행하여 레지듀얼 샘플들을 생성할 수 있다. 상술한 바와 같이, 1차 변환 및 1차 역변환은 MTS 기반으로 수행될 수 있다. 또한, 2차 변환 및 2차 역변환은 저주파수 영역(블록의 좌상단 wxh 영역)에 대해서만 수행될 수 있다.
상기 변환/역변환은 CU(부호화 유닛) 또는 TU(변환 유닛) 단위로 수행될 수 있다. 즉, 상기 변환/역변환은 CU 내의 레지듀얼 샘플들 또는 TU 내의 레지듀얼 샘플들에 대하여 적용될 수 있다. CU 사이즈와 TU 사이즈가 같을 수 있고, 또는 CU 영역 내에 복수의 TU가 존재할 수도 있다. 한편, CU 사이즈라 함은 일반적으로 루마 성분(샘플) CB(부호화 블록) 사이즈를 나타낼 수 있다. TU 사이즈라 함은 일반적으로 루마 성분(샘플) TB(변환 블록) 사이즈를 나타낼 수 있다. 크로마 성분(샘플) CB 또는 TB 사이즈는 컬러 포멧(크로마 포멧, ex. 4:4:4, 4:2:2, 4:2:0 등)에 따른 성분비에 따라 루마 성분(샘플) CB 또는 TB 사이즈를 기반으로 도출될 수 있다. 상기 TU 사이즈는 maxTbSize를 기반으로 도출될 수 있다. 이때, maxTbSize는 변환이 가능한 최대 사이즈를 의미할 수 있다. 예를 들어, 상기 CU 사이즈가 상기 maxTbSize보다 큰 경우, 상기 CU로부터 상기 maxTbSize의 복수의 TU(TB)들이 도출되고, 상기 TU(TB) 단위로 변환/역변환이 수행될 수 있다. 상기 maxTbSize는 ISP 등 다양한 인트라 예측 타입의 적용 여부 판단 등에 고려될 수 있다. 상기 maxTbSize에 대한 정보는 미리 결정될 수도 있고, 또는 영상 부호화 장치에서 생성 및 인코딩되어 영상 복호화 장치로 시그널링될 수 있다.
이하, 2차 변환/역변환에 대해 보다 상세히 설명한다.
본 개시의 2차 변환은 모드에 종속적인 비분리 2차 변환(mode-dependent non-separable secondary transform, MDNSST)일 수 있다. 복잡도를 줄이기 위해, MDNSST는 1차 변환이 수행된 후, 저주파수 영역의 계수들에 대해서만 적용될 수 있다. 현재 변환 계수 블록의 너비(W)와 높이(H)가 모두 8이상인 경우, 8x8 비분리 2차 변환(8x8 non-separable secondary transform)이 현재 변환 계수 블록의 좌상단 8x8 영역에 대해 적용될 수 있다. 그렇지 않고 W 또는 H가 8보다 작은 경우, 4x4 비분리 2차 변환(4x4 non-separable secondary transform)이 현재 변환 계수 블록의 좌상단 min(8, W) x min(8, H) 영역에 대해 적용될 수 있다. 4x4 블록과 8x8 블록에 대해 총 35x3개의 비분리 2차 변환이 가용하다. 여기서, 35는 화면내 예측 모드에 의해 특정되는 변환 세트의 개수이며, 3은 각각의 화면내 예측 모드에 대한 NSST 후보(후보 커널)의 개수를 의미한다. 화면내 예측 모드와 대응하는 변환 세트의 매핑 관계는 예컨대 표 9와 같을 수 있다.
Figure PCTKR2020005982-appb-T000009
표 9에서, 예컨대, 화면내 예측 모드가 0이면, 2차 변환(역변환)을 위한 변환 세트는 0번 세트일 수 있다. 화면내 예측 모드에 기반하여 변환 세트가 결정되면, 변환 세트에 포함된 복수의 변환 커널들 중 하나를 특정할 필요가 있다. 이를 위해, 인덱스(NSST Idx)가 부호화되어 시그널링될 수 있다. 현재 변환 블록에 대해 2차 변환/역변환이 수행되지 않는 경우, 0의 값을 갖는 NSST Idx가 시그널링될 수 있다. 또한, 변환 스킵된 블록에 대해서는 MDNSST가 적용되지 않을 수 있다. 현재 CU에 대해 0이 아닌 값을 갖는 NSST Idx가 시그널링되는 경우, 현재 CU내 변환이 스킵된 성분의 블록에 대해서는 MDNSST가 적용되지 않을 수 있다. 현재 CU내 모든 성분의 블록들에 대해 변환이 스킵된 경우, 또는 변환이 수행된 블록의 0이 아닌 계수의 수가 2보다 작은 경우, 현재 CU에 대해 NSST Idx는 시그널링되지 않을 수 있다. NSST Idx가 시그널링되지 않는 경우, 그 값은 0으로 추론될 수 있다.
NSST는 1차 변환이 적용된 블록 (HEVC의 경우 TU) 전체에 대해 적용되는 것이 아니라 좌상단(top-left) 8x8 영역 또는 4x4영역에 대해서만 적용될 수 있다. 일 예로, 블록의 크기가 8x8 이상인 경우는 8x8 NSST가 적용되고, 8x8 미만인 경우는 4x4 NSST가 적용될 수 있다. 또한, 8x8 NSST가 적용되는 경우 4x4 블록들로 나눈 후 각각에 대해 4x4 NSST가 적용될 수 있다. 8x8 NSST와 4x4 NSST 모두 앞서 설명한 변환 세트의 구성을 따르며, non-separable transform이니만큼 8x8 NSST는 64개의 데이터를 입력받아 64개의 데이터를 출력하며 4x4 NSST는 16개의 입력과 16개의 출력을 갖는다.
본 개시에서 NSST/RT/RST는 LFNST(low frequency non-seperable transform)이라고 불릴 수 있다. LFNST는 변환 계수 블록의 좌상단 영역에 위치하는 저주파 변환 계수들에 대하여 변환 커널(변환 메트릭스 or 변환 메트릭스 커널) 기반으로 비분리 변환 형식으로 적용될 수 있다. 상기 NSST 인덱스 또는 (R)ST 인덱스는 LFNST 인덱스라고 불릴 수 있다.
본 개시의 일 실시예에 따르면, MIP 기술이 적용된 블록에 대해서, LFNST를 위한 index (NSST idx 또는 st_idx 신택스)를 기존과 동일하게 전송할 수 있다. 즉 MIP가 적용된 현재 블록에 대해 LFNST transform set을 구성하는 변환 커널들 중 하나를 특정하기 위한 index가 전송될 수 있다.
본 개시에 따르면, MIP가 적용된 화면내 예측 블록에 대해서도 최적의 LFNST kernel을 선택할 수 있으므로, 두 기술을 동시에 적용함에 있어서 부호화 효율을 극대화할 수 있다. 표 10은 본 개시의 일 실시예에 따른 CU의 신택스를 나타낸다.
Figure PCTKR2020005982-appb-T000010
표 10에서, intra_mip_flag[ x0 ][ y0 ]는 1의 값을 가질 때, 현재 CU의 루마 샘플들에 대해 MIP가 적용됨을 나타내고, 0의 값을 가질 때, MIP가 적용되지 않음을 나타낼 수 있다. intra_mip_flag[ x0 ][ y0 ]가 비트스트림에 존재하지 않는 경우, 그 값은 0으로 추론될 수 있다.
표 10의 신택스 요소 intra_mip_mpm_flag[ x0 ][ y0 ], intra_mip_mpm_idx[ x0 ][ y0 ] 및 intra_mip_mpm_remainder[ x0 ][ y0 ]는 루마 샘플들에 대한 MIP 모드를 특정하기 위해 사용될 수 있다. 또한, 현재 픽처의 좌상단 위치가 (0, 0)일 때, 좌표 (x0, y0)는 현재 부호화 블록의 루마 샘플들의 좌상단 위치일 수 있다. intra_mip_mpm_flag[ x0 ][ y0 ]가 1의 값을 가질 때, MIP 모드가 현재 CU의 주변의 인트라 예측된 CU로부터 유도됨을 나타낼 수 있다. intra_mip_mpm_flag[ x0 ][ y0 ]가 비트스트림에 존재하지 않는 경우, 그 값은 1로 추론될 수 있다.
표 10에서, st_idx[x0][y0]는 현재 블록에 대한 LFNST에 적용된 변환 커널(LFNST kernels)을 특정할 수 있다. 즉, st_idx는 LFNST transform set에 포함된 변환 커널들 중 하나를 지시할 수 있다. 상술한 바와 같이, LFNST transform set은 현재 블록의 인트라 예측 모드와 블록 사이즈에 기반하여 결정될 수 있다. 본 개시에서, st_idx는 lfnst_idx로 불릴 수도 있다.
MIP 기술은 블록 크기에 따라서 다른 개수의 MIP 모드를 사용한다. 예를 들어, cbWidth와 cbHeight가 현재 블록의 너비와 높이를 나타낼 때, 블록 크기를 구분하는 변수(sizeId)는 아래와 같이 유도될 수 있다.
cbWidth와 cbHeight가 모두 4일 때, sizeId는 0으로 설정될 수 있다. 그렇지 않고, cbWidth와 cbHeight가 모두 8 이하일 때, sizeId는 1로 설정될 수 있다. 그 외의 모든 경우, sizeId는 2로 설정될 수 있다. 예를 들어, 현재 블록이 16x16일 때, sizeId는 2로 설정될 수 있다.
상기 sizeId에 따라 가용한 MIP 모드의 개수는 표 11과 같다.
Figure PCTKR2020005982-appb-T000011
즉, MIP 기술에서는 최소 11개의 MIP 모드, 최대 35개의 MIP 모드를 사용할 수 있다. 반면, 도 13에 도시된 바와 같이 기존의 화면내 예측은 67개의 모드를 사용할 수 있다.
또한, LFNST 기술은 67개의 화면내 예측 모드(lfnstPredModeIntra) 기준으로 표 12를 참조하여 transform set (lfnstSetIdx)을 결정할 수 있다.
Figure PCTKR2020005982-appb-T000012
표 12의 lfnstPredModeIntra는 현재 블록의 인트라 예측 모드에 기반하여 유도된 모드로서, 도 14를 참조하여 설명한 광각 모드 및 CCLM의 모드들을 포함한다. 따라서, 표 12의 lfnstPredModeIntra는 0 내지 83의 값을 가질 수 있다.
본 개시에 따르면, 현재 블록에 MIP 기술이 사용되는 경우, MIP 모드를 기존의 인트라 예측 모드(도 13 및 도 14를 참조하여 설명한 모드)로 변환하여 LFNST의 transform set의 인덱스를 결정할 수 있다. 구체적으로, 현재 블록의 MIP 모드와 블록 크기(sizeId)에 기반하여, 표 13을 참조하여 transform set의 인덱스를 결정하기 위한 인트라 예측 모드를 결정할 수 있다.
Figure PCTKR2020005982-appb-T000013
표 13에서, MIP 모드는 현재 블록의 MIP 모드를 나타내고, sizeId는 현재 블록의 사이즈 타입을 나타낸다. 또한, sizeId 0, 1, 2 밑의 숫자들은 각 블록 사이즈 타입에 대해, MIP 모드에 매핑되는 일반 인트라 예측 모드(예컨대, 67개 일반 인트라 예측 모드들 중 하나)를 나타낸다. 다만, 상기 매핑 관계는 예시이며, 변경될 수 있다.
예를 들어, sizeId가 0이고, 현재 블록의 MIP 모드가 10인 경우, 매핑되는 일반 인트라 예측 모드 번호는 18일 수 있다. 이 경우, 예를 들어, lfnstSetIdx는 표 12에 따르면 2의 값을 가지며, 이를 기반으로 LFNST transform set이 결정될 수 있다. 즉, 2의 값을 가지는 LFNST transform set가 선택되고, 해당 변환 셋에 포함된 변환 커널들 중 st_idx (또는 lfnst_idx)가 가리키는 변환 커널이 현재 블록의 2차 변환/역변환을 위해 사용될 수 있다.
도 22는 본 개시에 따라 2차 변환/역변환을 수행하는 방법을 도시한 흐름도이다.
영상 부호화 장치는 1차 변환이 수행되어 생성된 변환 계수에 대해 도 22에 도시된 순서에 따라 2차 변환을 수행할 수 있다. 영상 복호화 장치는 비트스트림으로부터 복원된 변환 계수들에 대해 도 22에 도시된 순서에 따라 2차 역변환을 수행할 수 있다.
먼저 현재 변환 블록에 대해 LFNST가 적용되는지 여부가 판단될 수 있다(S2210). LFNST가 적용되는지 여부의 판단은 예컨대, 비트스트림으로부터 복원된 st_idx 또는 lfnst_idx(NSST idx)에 기반하여 수행될 수 있다. LFNST가 적용되지 않는 경우, 현재 변환 블록에 대한 2차 변환/역변환을 수행되지 않을 수 있다. LFNST가 적용되는 경우, 현재 블록에 MIP가 적용되는지 여부를 판단할 수 있다(S2220). 현재 블록에 대해 MIP가 적용되는지 여부는 전술한 플래그 정보(예컨대, intra_mip_flag)를 이용하여 판단될 수 있다. 현재 블록에 대해 MIP가 적용된 경우, LFNST 변환 셋을 결정하기 위한 인트라 예측 모드가 도출될 수 있다(S2230). 예컨대, MIP 모드에 기반하여 LFNST 변환 셋을 결정하기 위한 인트라 예측 모드가 도출될 수 있다. MIP 모드는 전술한 바와 같이 비트스트림을 통해 시그널링되는 정보에 기반하여 복원될 수 있다. MIP 모드에 기반한 인트라 예측 모드의 도출은 영상 부호화 장치와 영상 복호화 장치에서 미리 설정된 방법에 의해 수행될 수 있다. 예컨대, 표 13을 참조하여 설명한 바와 같이, MIP 모드와 인트라 예측 모드 사이의 매핑 테이블을 이용하여 단계 S2230이 수행될 수 있다. 그러나, 상기 방법에 한정되지 않으며, 예컨대, MIP가 적용된 경우, LFNST 변환 셋을 결정하기 위해 인트라 예측 모드(예컨대, 플래너 모드)는 기정의된 인트라 예측 모드로 유도될 수도 있다. 단계 S2230이 수행된 이후, 도출된 인트라 예측 모드에 기반하여 LFNST 변환 셋이 결정될 수 있다(S2240). 단계 S2220에서, MIP 모드가 적용되지 않은 경우, 현재 블록의 인트라 예측 모드가 LFNST 변환 셋을 결정하기 위해 이용될 수 있다(S2240). 단계 S2240은 표 12를 참조하여 설명한 lfnstSetIdx의 결정 과정에 대응될 수 있다. 이후, LFNST 변환 셋에 포함된 복수의 변환 커널들 중, 현재 변환 블록의 2차 변환/역변환에 사용될 변환 커널을 선택할 수 있다(S2250). 변환 커널의 선택은 예컨대, 비트스트림으로부터 복원된 st_idx 또는 lfnst_idx에 기반하여 수행될 수 있다. 마지막으로, 선택된 변환 커널을 이용하여 현재 변환 블록에 대한 2차 변환/역변환을 수행할 수 있다(S2260). 영상 부호화 장치는 율-왜곡 비용의 비교에 의해 최적의 모드를 결정할 수 있다. 따라서, 영상 부호화 장치는 단계 S2210 또는 단계 S2220의 판단을 위해 전술한 플래그 정보를 이용할 수도 있으나 이에 한정되지 않는다. 영상 복호화 장치는 영상 부호화 장치로부터 비트스트림을 통해 시그널링된 정보에 기반하여 단계 S2210 또는 단계 S2220의 판단을 수행할 수 있다.
도 22를 참조하여 설명한 본 개시의 일 실시예에 따르면, MIP 적용된 블록에 대해 LFNST가 적용될 때, LFNST 변환 셋을 결정하기 위한 인트라 예측 모드를 도출할 수 있으므로, 보다 효율적인 LFNST를 수행할 수 있는 효과가 있다.
도 23은 본 개시의 다른 실시예에 따른 MIP 및 LFNST의 적용 여부에 기반하여 영상 복호화 장치에서 수행되는 방법을 설명하기 위한 도면이다.
도 23에 도시된 실시예에 따르면, MIP 기술이 적용된 블록에 대해서, LFNST를 위한 index (st_idx 또는 lfnst_idx)를 전송하지 않을 수 있다. 즉, 현재 블록에 MIP가 적용된 경우, LFNST index는 0의 값으로 추론되고, 이는 현재 블록에 LFNST 기술이 적용되지 않음을 의미할 수 있다.
먼저 현재 블록에 MIP가 적용되는지 여부를 판단할 수 있다(S2310). 현재 블록에 MIP가 적용되는지 여부는 전술한 플래그 정보(예컨대, intra_mip_flag)를 이용하여 판단될 수 있다. 현재 블록에 대해 MIP가 적용된 경우, MIP 예측을 수행하고(S2320), LFNST는 적용되지 않는 것으로 결정될 수 있다. 따라서, 2차 역변환을 수행되지 않고, 변환 계수에 대해 1차 역변환이 수행될 수 있다(S2360). 이후, MIP가 적용되어 생성된 예측 블록과 역변환에 의해 생성된 레지듀얼 블록에 기반하여 현재 블록이 복원될 수 있다(S2370). 현재 블록에 MIP가 적용되지 않은 경우, 현재 블록에 대해 통상의 인트라 예측이 수행될 수 있다(S2330). 또한, 현재 블록에 LFNST가 적용되는지 여부가 판단될 수 있다(S2340). 단계 S2340의 판단은 비트스트림으로부터 복원된 st_idx 또는 lfnst_idx(NSST idx)에 기반하여 수행될 수 있다. 예컨대, st_idx가 0인 경우, LFNST는 적용되지 않고, st_idx가 0 보다 큰 경우, LFNST는 적용되는 것으로 판단될 수 있다. LFNST가 적용되지 않는 경우, 현재 변환 블록에 대한 2차 역변환은 수행되지 않고, 변환 계수에 대해 1차 역변환이 수행될 수 있다(S2360). 이후, 통상의 인트라 예측에 의해 생성된 예측 블록과 역변환에 의해 생성된 레지듀얼 블록에 기반하여 현재 블록이 복원될 수 있다(S2370). 현재 블록에 LFNST가 적용된 경우, 변환 계수에 대해 2차 역변환이 수행된 후(S2350), 1차 역변환이 수행될 수 있다(S2360). 이후, 통상의 인트라 예측에 의해 생성된 예측 블록과 역변환에 의해 생성된 레지듀얼 블록에 기반하여 현재 블록이 복원될 수 있다(S2370). 이 때, 단계 S2350의 2차 역변환은 인트라 예측 모드에 기반하여 LFNST 변환 셋을 결정하고, st_idx에 기반하여 2차 역변환에 사용될 변환 커널을 선택한 후, 선택된 변환 커널에 기반하여 수행될 수 있다.
표 14는 도 23에 도시된 실시예에 따른 CU의 신택스를 나타낸다.
Figure PCTKR2020005982-appb-T000014
표 14에 나타낸 바와 같이, st_idx는 intra_mip_flag가 0일 때에만 비트스트림에 포함될 수 있다. 따라서, intra_mip_flag가 1일 때, 즉, 현재 블록에 MIP가 적용된 경우, st_idx는 비트스트림에 포함되지 않는다. st_idx가 비트스트림에 존재하지 않으면 그 값은 0으로 추론되며, 따라서, 현재 블록에 대해 LFNST가 적용되지 않는 것으로 결정될 수 있다.
도 23에 도시된 실시예에 따르면, MIP가 적용된 블록에 대해서 LFNST index를 전송하지 않음으로 인해 해당 index를 부호화하기 위한 비트량 저감 효과를 가질 수 있다. 또한 영상 부호화 장치 및 영상 복호화 장치에서 MIP와 LFNST가 동시에 적용되는 것을 방지하여 복잡도를 감소시키고 그에 따른 latency 저감 효과를 가져올 수 있다.
도 24는 본 개시의 다른 실시예에 따른 MIP 및 LFNST의 적용 여부에 기반하여 영상 부호화 장치에서 수행되는 방법을 설명하기 위한 도면이다.
도 24에 도시된 부호화 방법은 도 23에 도시된 복호화 방법에 대응될 수 있다.
먼저 현재 블록에 MIP가 적용되는지 여부를 판단할 수 있다(S2410). 현재 블록에 MIP가 적용되는지 여부는 전술한 플래그 정보(예컨대, intra_mip_flag)를 이용하여 판단될 수 있다. 그러나, 이에 한정되지 않으며 영상 부호화 장치는 다양한 방법으로 단계 S2410을 수행할 수 있다. 현재 블록에 대해 MIP가 적용된 경우, MIP 예측을 수행하고(S2420), LFNST는 적용되지 않는 것으로 결정될 수 있다. 따라서, 2차 변환을 수행되지 않고, MIP가 수행되어 생성된 예측 블록에 기반하여 현재 블록의 레지듀얼 블록이 생성되고, 현재 블록의 레지듀얼 블록에 대해 1차 변환이 수행될 수 있다(S2430). 이후, 변환에 의해 생성된 변환 계수를 비트스트림에 부호화할 수 있다(S2480). 현재 블록에 MIP가 적용되지 않은 경우, 현재 블록에 대해 통상의 인트라 예측이 수행될 수 있다(S2440). 통상의 인트라 예측이 수행되어 생성된 예측 블록에 기반하여 현재 블록의 레지듀얼 블록이 생성되고, 생성된 레지듀얼 블록에 대해 1차 변환이 수행될 수 있다(S2450). 또한, 현재 블록에 LFNST가 적용되는지 여부가 판단될 수 있다(S2460). 단계 S2460의 판단은 st_idx 또는 lfnst_idx(NSST idx)에 기반하여 수행될 수 있다. 예컨대, st_idx가 0인 경우, LFNST는 적용되지 않고, st_idx가 0 보다 큰 경우, LFNST는 적용되는 것으로 판단될 수 있다. 그러나, 이에 한정되지 않으며 영상 부호화 장치는 다양한 방법으로 단계 S2460을 수행할 수 있다. LFNST가 적용되지 않는 경우, 1차 변환에 의해 생성된 변환 계수는 2차 변환되지 않고 비트스트림에 부호화될 수 있다(S2480). 현재 블록에 LFNST가 적용된 경우, 1차 변환에 의해 생성된 변환 계수에 대해 2차 변환이 수행될 수 있다(S2470). 2차 변환에 의해 생성된 변환 계수는 비트스트림에 부호화될 수 있다(S2480). 이 때, 단계 S2470의 2차 변환은 인트라 예측 모드에 기반하여 LFNST 변환 셋을 결정하고, 2차 역변환에 사용될 변환 커널을 선택한 후, 선택된 변환 커널에 기반하여 수행될 수 있다. 선택된 변환 커널에 대한 정보로서 st_idx가 부호화되어 시그널링될 수 있다.
본 개시의 또 다른 실시예에 따르면, MIP가 적용된 블록에 대해서 LFNST index를 시그널링하지 않고, 소정의 방법에 따라 LFNST index를 유도하여 사용할 수 있다. 이 경우의 2차 변환/역변환 과정은 도 22를 참조하여 설명한 방법에 따라 수행될 수 있으며, 단계 S2250에서의 변환 커널의 선택은 상기 소정의 방법에 따라 유도된 LFNST index에 기반하여 수행될 수 있다. 또는, MIP가 적용된 블록을 위한 별도의 최적화된 변환 커널을 미리 정의하여 사용할 수도 있다. 본 실시예에 따르면, MIP가 적용된 블록에 대해서 최적의 LFNST kernel을 선택하면서도 이를 부호화하기 위한 비트량을 저감하는 효과를 가질 수 있다. 상기 LFNST index의 유도는 화면내 예측을 위한 reference line index, 화면내 예측 모드, 블록의 크기, MIP의 적용 여부 등 중 적어도 하나에 기반하여 수행될 수 있다. 또한, LFNST 변환 셋을 선택하기 위해 도 22를 참조하여 설명한 실시예와 같이 MIP 모드는 일반 인트라 예측 모드로 변환 또는 매핑될 수 있다. 본 실시예의 경우, LFNST index를 직접 부호화하지 않고 유도하여 사용하기 때문에 CU의 신택스는 표 14와 동일할 수 있다.
본 개시의 또 다른 실시예에 따르면, MIP 기술이 적용된 블록에 대해서, LFNST index의 이진화 방법을 적응적으로 수행할 수 있다. 보다 구체적으로, 현재 블록에 대해 MIP가 적용되었는지의 여부에 따라 적용 가능한 LFNST 변환 커널의 수를 다르게 사용하고, 그에 따라 LFNST index에 대한 이진화 방법을 선택적으로 변경할 수 있다. 예컨대, MIP가 적용된 블록에 대해서는 하나의 LFNST kernel을 사용하고, 이 kernel은 MIP가 적용되지 않은 블록에 적용되는 LFNST kernel들 중 하나일 수 있다. 혹은 MIP가 적용된 블록에 대해서는 MIP가 적용된 블록에 최적화된 별개의 kernel을 정의하여 사용하고, 이 kernel은 MIP가 적용되지 않은 블록에 적용되는 LFNST kernel이 아닐 수 있다. 본 실시예에 따르면, MIP가 적용된 블록에 대해 그렇지 않은 블록보다 감소된 수의 LFNST kernel을 사용함으로써 LFNST index를 전송하는 데에 따른 오버헤드를 저감하고, 복잡도 감소 효과를 얻을 수 있다. 예컨대, 표 15에 나타낸 바와 같이, st_idx에 대한 이진화 과정 및 cMax 값은 intra_mip_flag 값에 따라 상이하게 결정될 수 있다.
Figure PCTKR2020005982-appb-T000015
본 개시의 또 다른 실시예에 따르면, MIP 기술이 적용된 블록에 대해서 LFNST를 위한 정보를 전송하는 또 다른 방법이 제공될 수 있다. 상술한 예에서, LFNST를 위한 정보로서, st_idx와 같이 단일 신택스를 전송하고, st_idx가 0의 값을 가질 때, LFNST가 적용되지 않음을 나타내고, st_idx가 0 보다 큰 값을 가질 때, st_idx는 LFNST에 사용될 변환 커널을 지시한다. 즉, 단일 신택스를 사용하여 LFNST의 적용 여부 및 LFNST를 위해 사용되는 변환 커널의 종류를 나타낼 수 있다. 본 개시의 실시예에 따르면, LFNST를 위한 정보는 LFNST의 적용 여부를 나타내는 신택스인 st_flag와 LFNST가 적용될 때, LFNST를 위해 사용되는 변환 커널의 종류를 나타내는 신택스인 st_idx_flag를 포함할 수 있다.
표 16은 LFNST를 위한 정보를 전송하는 다른 방법에 따른 CU의 신택스를 나타낸다.
Figure PCTKR2020005982-appb-T000016
표 16에 나타낸 바와 같이, 현재 블록에 LFNST가 적용되는지 여부를 나타내는 정보(st_flag)가 시그널링되고, LFNST 변환 커널을 지시하는 정보(st_idx_flag)는 현재 블록에 LFNST가 적용되는 경우(st_flag가 1인 경우)에 시그널링될 수 있다.
또한, 표 15를 참조하여 설명한 실시예와 유사하게, MIP가 적용된 블록과 MIP가 적용되지 않은 블록에 대해 각각 다른 수의 LFNST 변환 커널을 사용할 수 있다. 예컨대, MIP가 적용된 블록에 대해서는 하나의 LFNST 변환 커널만이 사용될 수 있다. 이때 변환 커널은 MIP가 적용되지 않은 블록에 적용되는 LFNST 변환 커널들 중 하나일 수도 있고, MIP가 적용된 블록에 최적화된 별개의 변환 커널일 수도 있다. 이 경우, 표 16의 전송 방법은 표 17과 같이 변경될 수 있다.
Figure PCTKR2020005982-appb-T000017
표 17에 나타낸 바와 같이, st_idx_flag는 intra_mip_flag가 0일 때만 전송될 수 있다. 즉, st_idx_flag는 현재 블록에 MIP가 적용된 경우 전송되지 않을 수 있다.
표 16 및 표 17의 st_flag는 현재 블록에 LFNST가 적용되는지 여부를 나타내는 정보이며, 비트스트림에 존재하지 않을 때, 0으로 추론될 수 있다. 본 개시에서 st_flag는 lfnst_flag로 불릴 수 있다. 또한, st_idx_flag는 선택된 LFNST 변환 셋에 포함된 2개의 후보 커널들 중 하나를 지시할 수 있다. st_idx_flag가 비트스트림에 존재하지 않을 때, 그 값은 0으로 추론될 수 있다. 본 개시에서, st_idx_flag는 lfnst_idx_flag 또는 lfnst_kernel_flag로 불릴 수 있다.
표 16 및 표 17의 예에서, st_flag 및 st_idx_flag의 이진화 과정은 표 18과 같을 수 있다.
Figure PCTKR2020005982-appb-T000018
또한, st_flag 및 st_idx_flag의 문맥 부호화 빈(context coded bin)에 따른 ctxInc는 표 19와 같을 수 있다.
Figure PCTKR2020005982-appb-T000019
표 19에 나타낸 바와 같이, st_flag의 ctxIdx는 binIdx가 0일 때, 0 또는 1의 값을 가질 수 있다. 예컨대, st_flag의 ctxInc는 수학식 12에 의해 도출될 수 있다.
Figure PCTKR2020005982-appb-M000012
수학식 12와 같이, st_flag의 코딩에 사용되는 ctxInc의 값을 현재 블록에 대한 treetype 및/또는 tu_mts_idx 값을 기반으로 다르게 결정할 수 있다. 상기 ctxInc를 기반으로 상기 st_flag의 코딩(CABAC 기반)에 사용되는 문맥 모델을 도출할 수 있다. 구체적으로, 문맥 모델은 문맥 인덱스(ctxIdx)를 결정함으로써 유도될 수 있으며, ctxIdx는 변수 ctxIdxOffset과 ctxInc의 합으로 유도될 수 있다. 또한, st_idx__flag는 바이패스 부호화/복호화될 수 있다. 바이패스 부호화/복호화는 문맥을 할당하는 대신 균일한 확률 분포를 적용해 입력되는 빈을 부호화/복호화하는 것을 의미할 수 있다.
표 16 및 표 17을 참조하여 설명한 예에 따르면, MIP가 적용된 블록에 대해 그렇지 않은 블록보다 감소된 수의 LFNST kernel을 사용하여, index를 전송하는 데에 따른 overhead를 저감하고, 복잡도 감소 효과를 얻을 수 있다. 또한, 상기와 같이 st_flag의 코딩에 사용되는 ctxInc의 값을 현재 블록에 대한 treetype 및/또는 tu_mts_idx 값을 기반으로 다르게 결정할 수 있다.
본 개시의 또 다른 실시예에 따르면, 표 15 내지 표 19를 참조하여 설명한 이진화 방법 및/또는 신택스 전송 방법이 사용되는 경우, LFNST 변환 커널을 유도하여 사용할 수 있다. MIP가 적용된 현재 블록에 LFNST가 적용되는 경우, LFNST 변환 커널을 선택하기 위한 정보를 시그널링하지 않고, 유도 과정을 통해 LFNST transform set을 구성하는 변환 커널들 중 하나를 선택하거나, MIP가 적용된 블록을 위한 별도의 최적화된 변환 커널을 선택할 수 있다. 이 경우, MIP가 적용된 블록에 대해서 최적의 LFNST 변환 커널을 선택하면서도 이를 시그널링하기 위한 비트량을 저감하는 효과를 가질 수 있다. LFNST 변환 커널의 선택은 화면내 예측을 위한 reference line index, 화면내 예측 모드, 블록의 크기, MIP의 적용 여부 등 중 적어도 하나에 기반하여 수행될 수 있다. 또한, LFNST 변환 셋을 선택하기 위해 도 22를 참조하여 설명한 실시예와 같이 MIP 모드는 일반 인트라 예측 모드로 변환 또는 매핑될 수 있다.
본 개시에 따른 다양한 실시예들은 단독으로 또는 다른 실시예들과 조합되어 사용될 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시에 있어서, 소정의 동작(단계)을 수행하는 영상 부호화 장치 또는 영상 복호화 장치는 해당 동작(단계)의 수행 조건이나 상황을 확인하는 동작(단계)을 수행할 수 있다. 예컨대, 소정의 조건이 만족되는 경우 소정의 동작을 수행한다고 기재된 경우, 영상 부호화 장치 또는 영상 복호화 장치는 상기 소정의 조건이 만족되는지 여부를 확인하는 동작을 수행한 후, 상기 소정의 동작을 수행할 수 있다.
본 개시의 다양한 실시예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 본 개시의 실시예가 적용된 영상 복호화 장치 및 영상 부호화 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
도 25는 본 개시의 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시한 도면이다.
도 25에 도시된 바와 같이, 본 개시의 실시예가 적용된 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 개시의 실시예가 적용된 영상 부호화 방법 및/또는 영상 부호화 장치에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기반하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 할 수 있다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송할 수 있다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(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, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 개시의 범위는 다양한 실시예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 개시에 따른 실시예는 영상을 부호화/복호화하는데 이용될 수 있다.

Claims (15)

  1. 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서,
    현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하는 단계;
    상기 현재 블록의 변환 계수에 대해 역변환을 수행하여 레지듀얼 블록을 생성하는 단계; 및
    상기 예측 블록과 레지듀얼 블록에 기반하여 상기 현재 블록을 복원하는 단계를 포함하고,
    상기 역변환은 1차 역변환과 2차 역변환을 포함하고, 상기 2차 역변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행되는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 2차 역변환은 상기 변환 계수에 대해 2차 역변환을 수행하는 것으로 판단되는 경우에만 수행되는 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 변환 계수에 대해 2차 역변환을 수행하는지의 판단은 비트스트림을 통해 시그널링되는 정보에 기반하여 수행되는 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 2차 역변환은,
    상기 현재 블록의 인트라 예측 모드에 기반하여 2차 역변환의 변환 셋(transform set)을 결정하는 단계;
    상기 2차 역변환의 변환 셋에 포함된 복수의 변환 커널들 중 하나를 선택하는 단계; 및
    상기 선택된 변환 커널에 기반하여 상기 2차 역변환을 수행하는 단계를 포함하는 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 2차 역변환의 변환 셋을 결정하기 위해 이용되는 상기 현재 블록의 인트라 예측 모드는 소정의 인트라 예측 모드로 유도되는 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 소정의 인트라 예측 모드는 기정의된 매핑 테이블에 기반하여 상기 현재 블록의 MIP 모드로부터 유도되는 영상 복호화 방법.
  7. 제5항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 소정의 인트라 예측 모드는 플래너 모드로 유도되는 영상 복호화 방법.
  8. 제1항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 변환 계수에 대한 2차 역변환은 스킵되는 영상 복호화 방법.
  9. 제1항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 변환 계수에 대한 2차 역변환의 수행 여부를 지시하는 정보는 비트스트림을 통해 시그널링되지 않는 영상 복호화 방법.
  10. 제1항에 있어서,
    상기 현재 블록에 대한 인트라 예측이 MIP 예측인 경우,
    상기 변환 계수의 2차 역변환을 위한 변환 커널은 비트스트림을 통해 시그널링되지 않고 소정의 변환 커널로 결정되는 영상 복호화 방법.
  11. 제1항에 있어서,
    상기 현재 블록이 MIP 예측된 경우에 가용한 변환 커널의 수는 상기 현재 블록이 MIP 예측되지 않은 경우에 가용한 변환 커널의 수보다 작은 영상 복호화 방법.
  12. 제1항에 있어서,
    상기 현재 블록에 2차 역변환이 적용되는지 여부를 나타내는 제1 정보 및 상기 2차 역변환에 사용되는 변환 커널을 지시하는 제2 정보는 별개의 정보로서 시그널링되고,
    상기 제2 정보는 상기 제1 정보가 상기 현재 블록에 2차 역변환이 적용되는 것을 나타낼 때 시그널링되는 영상 복호화 방법.
  13. 메모리 및 적어도 하나의 프로세서를 포함하는 영상 복호화 장치로서,
    상기 적어도 하나의 프로세서는
    현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하고,
    상기 현재 블록의 변환 계수에 대해 역변환을 수행하여 레지듀얼 블록을 생성하고,
    상기 예측 블록과 레지듀얼 블록에 기반하여 상기 현재 블록을 복원하고,
    상기 역변환은 1차 역변환과 2차 역변환을 포함하고, 상기 2차 역변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행되는 영상 복호화 장치.
  14. 영상 부호화 장치에 의해 수행되는 영상 부호화 방법으로서,
    현재 블록에 대해 인트라 예측을 수행하여 예측 블록을 생성하는 단계;
    상기 예측 블록에 기반하여 상기 현재 블록의 레지듀얼 블록을 생성하는 단계; 및
    상기 레지듀얼 블록에 대해 변환을 수행하여 변환 계수를 생성하는 단계를 포함하고,
    상기 변환은 1차 변환과 2차 변환을 포함하고, 상기 2차 변환은 상기 현재 블록에 대한 인트라 예측이 MIP 예측인지 여부에 기반하여 수행되는 영상 부호화 방법.
  15. 제14항의 영상 부호화 방법에 의해 생성된 비트스트림을 전송하는 방법.
PCT/KR2020/005982 2019-05-08 2020-05-07 Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 WO2020226424A1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2021566094A JP7256296B2 (ja) 2019-05-08 2020-05-07 Mip及びlfnstを行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
KR1020217035756A KR20210136157A (ko) 2019-05-08 2020-05-07 Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US17/521,086 US20220060751A1 (en) 2019-05-08 2021-11-08 Image encoding/decoding method and device for performing mip and lfnst, and method for transmitting bitstream
JP2023055436A JP7422917B2 (ja) 2019-05-08 2023-03-30 Mip及びlfnstを行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
JP2024004481A JP2024026779A (ja) 2019-05-08 2024-01-16 Mip及びlfnstを行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962844751P 2019-05-08 2019-05-08
US62/844,751 2019-05-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/521,086 Continuation US20220060751A1 (en) 2019-05-08 2021-11-08 Image encoding/decoding method and device for performing mip and lfnst, and method for transmitting bitstream

Publications (1)

Publication Number Publication Date
WO2020226424A1 true WO2020226424A1 (ko) 2020-11-12

Family

ID=73050568

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/005982 WO2020226424A1 (ko) 2019-05-08 2020-05-07 Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Country Status (4)

Country Link
US (1) US20220060751A1 (ko)
JP (3) JP7256296B2 (ko)
KR (1) KR20210136157A (ko)
WO (1) WO2020226424A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220116606A1 (en) * 2019-06-25 2022-04-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding using matrix based intra-prediction and secondary transforms
KR20220053698A (ko) * 2017-07-04 2022-04-29 삼성전자주식회사 다중 코어 변환에 의한 비디오 복호화 방법 및 장치, 다중 코어 변환에 의한 비디오 부호화 방법 및 장치
JP2022543102A (ja) * 2019-08-03 2022-10-07 北京字節跳動網絡技術有限公司 ビデオ・コーディングにおける縮小二次変換のための行列の選択
US11622131B2 (en) 2019-05-10 2023-04-04 Beijing Bytedance Network Technology Co., Ltd. Luma based secondary transform matrix selection for video processing
AU2020354500B2 (en) * 2019-09-24 2024-02-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient implementation of matrix-based intra-prediction
US11924469B2 (en) 2019-06-07 2024-03-05 Beijing Bytedance Network Technology Co., Ltd. Conditional signaling of reduced secondary transform in video bitstreams
US11968367B2 (en) 2019-08-17 2024-04-23 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256466A1 (ko) * 2019-06-19 2020-12-24 한국전자통신연구원 화면 내 예측 모드 및 엔트로피 부호화/복호화 방법 및 장치
EP3973700A4 (en) * 2019-06-28 2023-06-14 HFI Innovation Inc. MATRIX METHOD AND APPARATUS BASED ON INTRA PREDICTION IN IMAGE AND VIDEO PROCESSING
US11902531B2 (en) * 2021-04-12 2024-02-13 Qualcomm Incorporated Low frequency non-separable transform for video coding
WO2024005480A1 (ko) * 2022-06-29 2024-01-04 엘지전자 주식회사 다중 참조 라인에 기반한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체
WO2024007120A1 (zh) * 2022-07-04 2024-01-11 Oppo广东移动通信有限公司 编解码方法、编码器、解码器以及存储介质
WO2024049024A1 (ko) * 2022-08-29 2024-03-07 현대자동차주식회사 1차 변환 커널에 적응적인 분리 불가능한 2차 변환 기반 비디오 코딩을 위한 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150129715A (ko) * 2013-03-08 2015-11-20 삼성전자주식회사 향상 레이어 차분들에 대한 세컨더리 변환을 적용하기 위한 방법 및 장치
KR20180014655A (ko) * 2016-08-01 2018-02-09 한국전자통신연구원 영상 부호화/복호화 방법
KR20180085526A (ko) * 2017-01-19 2018-07-27 가온미디어 주식회사 효율적 변환을 처리하는 영상 복호화 및 부호화 방법
WO2018174402A1 (ko) * 2017-03-21 2018-09-27 엘지전자 주식회사 영상 코딩 시스템에서 변환 방법 및 그 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230130772A (ko) * 2016-02-12 2023-09-12 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US11303912B2 (en) * 2018-04-18 2022-04-12 Qualcomm Incorporated Decoded picture buffer management and dynamic range adjustment
KR20200109276A (ko) * 2019-03-12 2020-09-22 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11616966B2 (en) * 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
CN113678453B (zh) * 2019-04-12 2024-05-14 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的上下文确定
CN117896523A (zh) 2019-04-16 2024-04-16 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和记录介质
MX2021012405A (es) 2019-04-17 2021-11-12 Huawei Tech Co Ltd Un codificador, un decodificador y metodos de armonizacion de intraprediccion basada en matriz correspondiente y seleccion de nucleo de transformada secundaria.

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150129715A (ko) * 2013-03-08 2015-11-20 삼성전자주식회사 향상 레이어 차분들에 대한 세컨더리 변환을 적용하기 위한 방법 및 장치
KR20180014655A (ko) * 2016-08-01 2018-02-09 한국전자통신연구원 영상 부호화/복호화 방법
KR20180085526A (ko) * 2017-01-19 2018-07-27 가온미디어 주식회사 효율적 변환을 처리하는 영상 복호화 및 부호화 방법
WO2018174402A1 (ko) * 2017-03-21 2018-09-27 엘지전자 주식회사 영상 코딩 시스템에서 변환 방법 및 그 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ONATHAN PFAFF; BJORN STALLENBERGER; MICHAEL SCHAFER; PHILIPPE HELLE; TOBIAS HIINZ; HEIKO SCHWARZ; DETLEV MARPE; THOMAS WIEGAND: "CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2).", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11. 14TH MEETING, no. JVET-N0217, 25 March 2019 (2019-03-25), Geneva, CH, XP030202699 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220053698A (ko) * 2017-07-04 2022-04-29 삼성전자주식회사 다중 코어 변환에 의한 비디오 복호화 방법 및 장치, 다중 코어 변환에 의한 비디오 부호화 방법 및 장치
US12003750B2 (en) 2017-07-04 2024-06-04 Samsung Electronics Co., Ltd. Video decoding method and apparatus using multi-core transform, and video encoding method and apparatus using multi-core transform
KR102625144B1 (ko) 2017-07-04 2024-01-15 삼성전자주식회사 다중 코어 변환에 의한 비디오 복호화 방법 및 장치, 다중 코어 변환에 의한 비디오 부호화 방법 및 장치
US11622131B2 (en) 2019-05-10 2023-04-04 Beijing Bytedance Network Technology Co., Ltd. Luma based secondary transform matrix selection for video processing
US11924469B2 (en) 2019-06-07 2024-03-05 Beijing Bytedance Network Technology Co., Ltd. Conditional signaling of reduced secondary transform in video bitstreams
JP2022538853A (ja) * 2019-06-25 2022-09-06 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 行列ベースのイントラ予測および二次変換を使用したコーディング
US20220116606A1 (en) * 2019-06-25 2022-04-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding using matrix based intra-prediction and secondary transforms
JP7477538B2 (ja) 2019-06-25 2024-05-01 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 行列ベースのイントラ予測および二次変換を使用したコーディング
JP2022543102A (ja) * 2019-08-03 2022-10-07 北京字節跳動網絡技術有限公司 ビデオ・コーディングにおける縮小二次変換のための行列の選択
JP7422858B2 (ja) 2019-08-03 2024-01-26 北京字節跳動網絡技術有限公司 ビデオ処理方法、装置、記憶媒体及び記憶方法
US11882274B2 (en) 2019-08-03 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Position based mode derivation in reduced secondary transforms for video
US11638008B2 (en) 2019-08-03 2023-04-25 Beijing Bytedance Network Technology Co., Ltd. Selection of matrices for reduced secondary transform in video coding
US11968367B2 (en) 2019-08-17 2024-04-23 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
AU2020354500B2 (en) * 2019-09-24 2024-02-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient implementation of matrix-based intra-prediction
US12022120B2 (en) 2019-09-24 2024-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient implementation of matrix-based intra-prediction

Also Published As

Publication number Publication date
KR20210136157A (ko) 2021-11-16
JP7256296B2 (ja) 2023-04-11
JP2023073437A (ja) 2023-05-25
US20220060751A1 (en) 2022-02-24
JP2024026779A (ja) 2024-02-28
JP2022532114A (ja) 2022-07-13
JP7422917B2 (ja) 2024-01-26

Similar Documents

Publication Publication Date Title
WO2020226424A1 (ko) Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021040481A1 (ko) 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법
WO2020246806A1 (ko) 매트릭스 기반 인트라 예측 장치 및 방법
WO2020251330A1 (ko) 단순화된 mpm 리스트 생성 방법을 활용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020171592A1 (ko) 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2020213931A1 (ko) 레지듀얼 계수의 차분 부호화를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021040484A1 (ko) 크로스-컴포넌트 적응적 루프 필터링 기반 영상 코딩 장치 및 방법
WO2020050651A1 (ko) 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치
WO2020246803A1 (ko) 매트릭스 기반 인트라 예측 장치 및 방법
WO2019194514A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2021060847A1 (ko) 컬러 포맷에 기반하여 분할 모드를 결정하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020036390A1 (ko) 영상 신호를 처리하기 위한 방법 및 장치
WO2019216714A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2021101205A1 (ko) 영상 코딩 장치 및 방법
WO2020251329A1 (ko) Mip 모드 매핑이 단순화된 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020213976A1 (ko) Bdpcm을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021101201A1 (ko) 루프 필터링을 제어하는 영상 코딩 장치 및 방법
WO2019194463A1 (ko) 영상의 처리 방법 및 이를 위한 장치
WO2021040410A1 (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2021040482A1 (ko) 적응적 루프 필터링 기반 영상 코딩 장치 및 방법
WO2020197223A1 (ko) 영상 코딩 시스템에서의 인트라 예측 기반 영상 코딩
WO2021006697A1 (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2020262962A1 (ko) 크로마 변환 블록의 최대 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021006700A1 (ko) 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치
WO2020256492A1 (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: 20802042

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217035756

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2021566094

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20802042

Country of ref document: EP

Kind code of ref document: A1