WO2026005491A1 - 방법, 컴퓨터 판독 가능한 저장 매체 및 전송 방법 - Google Patents
방법, 컴퓨터 판독 가능한 저장 매체 및 전송 방법Info
- Publication number
- WO2026005491A1 WO2026005491A1 PCT/KR2025/008929 KR2025008929W WO2026005491A1 WO 2026005491 A1 WO2026005491 A1 WO 2026005491A1 KR 2025008929 W KR2025008929 W KR 2025008929W WO 2026005491 A1 WO2026005491 A1 WO 2026005491A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- intra
- mode
- current block
- mpm list
- intra prediction
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Definitions
- the present disclosure relates to a method for encoding/decoding image information, a computer-readable storage medium for storing a bitstream, and a method for transmitting the bitstream.
- HD High Definition
- UHD Ultra High Definition
- inter prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture
- intra prediction technology that predicts pixel values included in the current picture using pixel information within the current picture
- entropy coding technology that assigns short codes to values with high frequency of appearance and long codes to values with low frequency of appearance
- the present disclosure provides a method for improving coding efficiency by constructing a more accurate list by utilizing peripheral information when constructing an MPM list to perform on-screen encoding/decoding for still images or moving images, a computer-readable recording medium storing a bitstream, and a transmission method.
- a method includes the steps of: obtaining prediction mode information from a bitstream; constructing a Most Probable Mode (MPM) candidate list for a current block; deriving an intra prediction mode for the current block based on at least one of the MPM list or the prediction mode information; and generating a reconstructed block for the current block based on the derived intra prediction mode; wherein the step of constructing the MPM list includes sorting the MPM list based on a histogram for intra prediction modes applied to neighboring blocks of the current block.
- MPM Most Probable Mode
- a method includes the steps of: constructing a Most Probable Mode (MPM) candidate list for a current block; determining an intra prediction mode for the current block; generating residual information for the current block based on the determined intra prediction mode; and encoding prediction mode information including information about the intra prediction mode and image information including the residual information; wherein the step of constructing the MPM list includes sorting the MPM list based on a histogram for intra prediction modes applied to neighboring blocks of the current block.
- MPM Most Probable Mode
- a computer-readable storage medium storing a bitstream generated by an encoding method according to one embodiment, the encoding method comprising: a step of constructing a Most Probable Mode (MPM) candidate list for a current block; a step of determining an intra prediction mode for the current block; a step of generating residual information for the current block based on the determined intra prediction mode; and a step of encoding prediction mode information including information about the intra prediction mode and image information including the residual information; wherein the step of constructing the MPM list includes sorting the MPM list based on a histogram for intra prediction modes applied to blocks adjacent to the current block.
- MPM Most Probable Mode
- a method for transmitting data for an image comprises: generating a bitstream for the image, the bitstream comprising: a step of constructing a Most Probable Mode (MPM) candidate list for a current block; a step of determining an intra prediction mode for the current block; a step of generating residual information for the current block based on the determined intra prediction mode; and a step of encoding prediction mode information including information about the intra prediction mode and image information including the residual information; and a step of transmitting the data including the bitstream; wherein the step of constructing the MPM list includes sorting the MPM list based on a histogram for intra prediction modes applied to neighboring blocks of the current block.
- MPM Most Probable Mode
- coding efficiency can be improved by constructing a more accurate list by utilizing surrounding information.
- FIG. 1 illustrates a video/image coding system according to one embodiment.
- FIG. 2 is a schematic block diagram of an encoding device to which the disclosed embodiment can be applied and in which encoding of a video/image signal is performed.
- FIG. 3 is a schematic block diagram of a decoding device to which the disclosed embodiment can be applied and in which decoding of a video/image signal is performed.
- FIG. 4 illustrates an example of a video/image decoding method to which the disclosed embodiment can be applied.
- FIG. 5 illustrates an example of a video/image encoding method to which the disclosed embodiment can be applied.
- Figure 6 illustrates an example hierarchical structure for a coded image according to one embodiment.
- FIG. 7 is a flowchart illustrating a method of encoding an image based on intra prediction in an encoding method according to one embodiment.
- Fig. 8 is a drawing showing the configuration of an encoding device used to perform the method of Fig. 7.
- FIG. 9 is a flowchart illustrating a method of decoding an image based on intra prediction in a decoding method according to one embodiment.
- Fig. 10 is a diagram showing the configuration of a decoding device used to perform the method of Fig. 9.
- FIG. 11 is a flowchart illustrating an example of a method for signaling information about an intra prediction mode in an encoding method according to one embodiment.
- FIG. 12 is a flowchart illustrating an example of a method for deriving an intra prediction mode in a decoding method according to one embodiment.
- FIG. 13 is a flowchart illustrating in more detail an example of a method for deriving an intra prediction mode in a decoding method according to one embodiment.
- Figure 14 is a schematic diagram illustrating a matrix-based intra prediction (MIP) process.
- MIP matrix-based intra prediction
- Figure 15 is a drawing showing a configuration method of HoG used in DIMD mode.
- Fig. 16 is a flowchart illustrating an example of a decoding method according to one embodiment.
- FIG. 17 is a diagram showing an example of the order of surrounding intra prediction modes considered when constructing an MPM list in a decoding method according to one embodiment.
- Figure 18 is a diagram showing an example of the locations of adjacent blocks considered when constructing an MPM list.
- Figure 19 is a diagram showing a template area used for intra mode derivation when DIMD is applied to adjacent blocks.
- FIG. 20 is a diagram showing an example of the configuration order of a changed MPM list according to one embodiment.
- Figure 21 is a flowchart illustrating an example of an encoding method according to one embodiment.
- FIG. 22 is a flowchart of another example of a decoding method according to one embodiment.
- Fig. 23 is a flowchart showing an example of a process for constructing an MPM list in a decoding method according to one embodiment.
- Figure 24 is a diagram showing examples of cases that may occur when applying template-based sorting when constructing an MPM list.
- Fig. 25 is a flowchart illustrating another example of an encoding method according to one embodiment.
- FIG. 26 is a flowchart illustrating another example of a decoding method according to one embodiment.
- Figure 27 is a diagram showing an example of the correlation between the current block and the surrounding blocks.
- Figure 28 is a diagram showing an example of a histogram constructed by collecting intra mode information of surrounding blocks.
- Figure 29 is a diagram showing an example of the correlation between the current block and surrounding blocks, and is a diagram showing an example of a case where the sizes of the surrounding blocks are different.
- FIG. 30 is a diagram showing an example of a range of surrounding blocks set for histogram configuration in a decoding method according to one embodiment.
- FIG. 31 is a flowchart illustrating another example of an encoding method according to one embodiment.
- FIG. 32 is a diagram illustrating an example of a content streaming system to which the disclosed embodiment can be applied.
- first and second may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component,” and similarly, a second component could also be referred to as a "first component.”
- the term “and/or” includes a combination of multiple related items described herein or any of multiple related items described herein.
- the present disclosure relates to video/image coding.
- the methods/embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard.
- the methods/embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video/image coding standards (e.g., H.267 or H.268).
- VVC versatile video coding
- EVC essential video coding
- AV1 AOMedia Video 1
- AVS2 second generation of audio video coding standard
- next generation of video/image coding standards e.g., H.267 or H.268.
- video may refer to a set of images over time.
- a picture generally refers to a unit representing one image at a specific time point, and a slice/tile is a unit that constitutes part of a picture in coding.
- a slice/tile may include one or more coding tree units (CTUs).
- CTUs coding tree units
- a picture may be composed of one or more slices/tiles.
- a tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture.
- a tile column is a rectangular area of CTUs that has a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set.
- a tile row is a rectangular area of CTUs that has a height specified by the picture parameter set and a width equal to the width of the picture.
- CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan.
- a slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures.
- a subpicture may be a rectangular region of one or more slices within a picture.
- a pixel, or pel can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel.
- a sample can generally represent a pixel or a pixel value, and can represent only the pixel/pixel value of the luminance component, or only the pixel/pixel value of the chrominance component.
- a unit may represent a basic unit of image processing.
- a unit may include at least one of a specific region of a picture and information related to the region.
- One unit may include one luma block and two chroma (e.g., cb, cr) blocks.
- the term "unit” may be used interchangeably with terms such as "block” or "area.”
- an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.
- a or B can mean “only A,” “only B,” or “both A and B.”
- a or B in this specification can be interpreted as “A and/or B.”
- A, B or C in this specification can mean “only A,” “only B,” “only C,” or “any combination of A, B, and C.”
- a slash (/) or a comma can mean “and/or.”
- A/B can mean “A and/or B.”
- A/B can mean "only A,” “only B,” or “both A and B.”
- A, B, C can mean "A, B, or C.”
- At least one of A and B may mean “only A,” “only B,” or “both A and B.” Additionally, in this specification, the expressions “at least one of A or B” or “at least one of A and/or B” may be interpreted identically to “at least one of A and B.”
- “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “at least one of A, B or C” or “at least one of A, B and/or C” can mean “at least one of A, B and C.”
- parentheses used herein may mean “for example.” Specifically, when “prediction (intra-prediction)" is indicated, “intra-prediction” may be suggested as an example of “prediction.” In other words, “prediction” in this specification is not limited to “intra-prediction,” and “intra-prediction” may be suggested as an example of “prediction.” Furthermore, even when “prediction (i.e., intra-prediction)” is indicated, “intra-prediction” may be suggested as an example of "prediction.”
- FIG. 1 illustrates a video/image coding system according to one embodiment.
- a video/image coding system may include a first device (source device) and a second device (receiving device).
- a source device can transmit encoded video/image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming.
- the source device may include a video source, an encoding device, and a transmitting device.
- the receiving device may include a receiving device, a decoding device, and a renderer.
- the encoding device may be referred to as a video/image encoding device, and the decoding device may be referred to as a video/image decoding device.
- the transmitter may be included in the encoding device.
- the receiver may be included in the decoding device.
- the renderer may include a display unit, and the display unit may be configured as a separate device or an external component.
- a video source may obtain video/images through a process of capturing, synthesizing, or generating video/images.
- the video source may include a video/image capture device and/or a video/image generation device.
- the video/image capture device may include one or more cameras, a video/image archive containing previously captured video/images, etc.
- the video/image generation device may include a computer, a tablet, a smartphone, etc., and may (electronically) generate video/images.
- a virtual video/image may be generated through a computer, etc., in which case the video/image capture process may be replaced by a process of generating related data.
- An encoding device can encode input video/images.
- the encoding device can perform a series of procedures, such as prediction, transformation, and quantization, to improve compression and coding efficiency.
- the encoded data (encoded video/image information) can be output in the form of a bitstream.
- the transmission unit can transmit encoded video/image information or data output in the form of a bitstream to the receiving unit of a receiving device via a digital storage medium or a network in the form of a file or streaming.
- the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.
- the storage medium can be a computer-readable storage medium.
- the transmission unit can include an element for generating a media file via a predetermined file format and an element for transmission via a broadcasting/communication network.
- the receiving unit can receive/extract the bitstream and transmit it to a decoding device.
- the decoding device can decode the video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding device.
- the renderer can render decoded video/images.
- the rendered video/images can be displayed through the display unit.
- FIG. 2 is a schematic block diagram of an encoding device to which the disclosed embodiment can be applied and in which encoding of a video/image signal is performed.
- the encoding device (200) may be configured to include an image partitioner (210), a prediction unit (predictor) 220, a residual processor (residual processor) 230, an entropy encoder (entropy encoder) 240, an adder (adder) 250, a filter (filter) 260, and a memory (memory) 270.
- the prediction unit (220) may include an inter prediction unit (221) and an intra prediction unit (222).
- the residual processor (230) may include a transformer (transformer) 232, a quantizer (quantizer) 233, a dequantizer (dequantizer) 234, and an inverse transformer (inverse transformer) 235.
- the residual processing unit (230) may further include a subtractor (231).
- the addition unit (250) may be called a reconstructor or a recontructed block generator.
- the image segmentation unit (210), the prediction unit (220), the residual processing unit (230), the entropy encoding unit (240), the addition unit (250), and the filtering unit (260) described above may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to an embodiment.
- the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium.
- the hardware component may further include the memory (270) as an internal/external component.
- the image segmentation unit (210) can segment an input image (or picture, frame) input to the encoding device (200) into one or more processing units (PUs).
- the processing units may be called coding units (CUs).
- the coding units may be recursively segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-Tree Binary-Tree Ternary-Tree) structure.
- a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and/or a ternary structure.
- the quad-tree structure may be applied first, and the binary tree structure and/or the ternary structure may be applied later.
- the binary tree structure may be applied before the quad-tree structure.
- the coding procedure according to the present specification may be performed based on the final coding unit that is no longer split.
- the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit.
- the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
- the processing unit may further include a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may each be split or partitioned from the final coding unit described above.
- the prediction unit may be a unit of sample prediction
- the transform unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from a transform coefficient.
- an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows.
- a sample can generally represent a pixel or a pixel value, and can represent only a pixel/pixel value of a luminance component or only a pixel/pixel value of a chrominance component.
- a sample can be used as a term corresponding to a pixel or pel of a picture (or image).
- the encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (prediction block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input video signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232).
- a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).
- the prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block.
- the prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis.
- the prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240).
- the information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
- the intra prediction unit (222) can predict the current block by referring to samples within the current picture.
- the referenced samples i.e., the reference samples, may be located in the neighborhood of the current block or may be located a certain distance away from the current block depending on the prediction mode.
- the prediction modes may include one or more non-directional modes and multiple directional modes.
- the non-directional mode may include at least one of the DC mode or the planar mode.
- the directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is merely an example, and a greater or lesser number of directional modes may be used depending on the settings.
- the intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
- the inter prediction unit (221) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture.
- the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block.
- the motion information can include a motion vector and a reference picture index.
- the motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.).
- the neighboring block can 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.
- Temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc.
- reference pictures including temporal neighboring blocks may be called collocated pictures (colPic).
- the inter prediction unit (221) may construct a motion information candidate list based on neighboring blocks and generate information indicating which candidate is used to derive the motion vector and/or reference picture index of the current block. Inter prediction may be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of neighboring blocks as the motion information of the current block.
- a residual signal may not be transmitted.
- MVP motion vector prediction
- the motion vector of the neighboring blocks may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling the motion vector difference.
- the prediction unit (220) can generate a prediction signal based on various prediction methods described below.
- the prediction unit can apply intra prediction or inter prediction to predict a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode.
- the prediction unit can perform an intra block copy (IBC) prediction mode to predict a block.
- the IBC prediction mode can be used for content image/video coding such as games, such as screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described herein.
- the prediction signal generated through the prediction unit (220) can be used to generate a restored signal or a residual signal.
- the transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients.
- the transform technique can include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT).
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- KLT Karhunen-Loeve Transform
- GBT Graph-Based Transform
- CNT Conditionally Non-linear Transform
- GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph.
- CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels.
- the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non
- the quantization unit (233) quantizes the transform coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream.
- the information about the quantized transform coefficients can be called residual information.
- the quantization unit (233) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
- the entropy encoding unit (240) can perform various encoding methods, such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc.
- the entropy encoding unit (240) can also encode information necessary for video/image restoration (e.g., values of syntax elements, etc.) together or separately from quantized transform coefficients.
- Encoded information can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units.
- the video/image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- information and/or syntax elements transmitted/signaled from an encoding device to a decoding device may be included in the video/image information.
- the video/image information may be encoded through the above-described encoding procedure and included in the bitstream.
- the bitstream may be transmitted via a network or 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 a USB, SD, CD, DVD, Blu-ray, HDD, or SSD.
- the storage medium may be a medium that stores the bitstream non-statutory.
- a transmission unit (not shown) for transmitting a signal output from an entropy encoding unit (240) and/or a storage unit (not shown) for storing the signal may be configured as an internal/external element of the encoding device (200), or the transmission unit may be included in the entropy encoding unit (240).
- the quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be reconstructed.
- the addition unit (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block.
- the addition unit (250) may be called a reconstructor or a reconstructed block generation unit.
- the generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below.
- LMCS luma mapping with chroma scaling
- the filtering unit (260) can improve subjective/objective picture quality by applying filtering to the restoration signal.
- the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270).
- the various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
- the filtering unit (260) can generate various information regarding filtering and transmit the information to the entropy encoding unit (240).
- the information regarding filtering may be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
- the modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter prediction unit (221).
- the encoding device can avoid prediction mismatch between the encoding device (200) and the decoding device, and can also improve encoding efficiency.
- the DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter prediction unit (221).
- the memory (270) can store motion information of a block from which motion information in the current picture is derived (or encoded) and/or motion information of blocks in a picture that has already been restored.
- the stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory (270) can store restored samples of restored blocks in the current picture and transfer them to the intra prediction unit (222).
- Image information output in the form of a bitstream from the encoding device (200) can be transmitted to the decoding device (300) through the transmission unit.
- FIG. 3 is a schematic block diagram of a decoding device to which the disclosed embodiment can be applied and in which decoding of a video/image signal is performed.
- Image information transmitted in the form of a bitstream from the encoding device (200) can be received by the decoding device (300).
- the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360).
- the predictor (330) may include an inter-prediction unit (332) and an intra-prediction unit (331).
- the residual processor (320) may include a dequantizer (321) and an inverse transformer (321).
- the entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment.
- the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium.
- the hardware component may further include the memory (360) as an internal/external component.
- the decoding device (300) can restore the image corresponding to the process in which the video/image information is processed in the encoding device of FIG. 2.
- the decoding device (300) can derive units/blocks based on block division related information obtained from the bitstream.
- the decoding device (300) can perform decoding using a processing unit applied in the encoding device.
- the processing unit of decoding may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and/or a ternary tree structure.
- One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output by the decoding device (300) can be reproduced through a reproduction device.
- the decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through the entropy decoding unit (310).
- the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video/image information) necessary for image restoration (or picture restoration).
- the video/image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- the decoding device can decode the picture further based on the information on the parameter set and/or the general constraint information.
- the signaling/received information and/or syntax elements described later in this specification can be decoded and obtained from the bitstream through the decoding procedure.
- the entropy decoding unit (310) can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transform coefficients for residuals.
- the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information of symbols/bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.
- the CABAC entropy decoding method can update the context model using information of the decoded symbol/bin for the context model of the next symbol/bin after determining the context model.
- the entropy decoding unit (310) Among the information decoded by the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (inter-prediction unit (332) and intra-prediction unit (331)), and residual values on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320).
- the residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array).
- information regarding filtering can be provided to the filtering unit (350).
- a receiving unit that receives a signal output from an encoding device may be further configured as an internal/external element of a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).
- a decoding device may be called a video/video/picture decoding device, and the decoding device may be divided into an information decoding device (video/video/picture information decoding device) and a sample decoding device (video/video/picture sample decoding device).
- the information decoding device may include the entropy decoding unit (310), and the sample decoding device may include at least one of the inverse quantization unit (321), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).
- the inverse quantization unit (321) can inverse quantize the quantized transform coefficients and output the transform coefficients.
- the inverse quantization unit (321) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the encoding device.
- the inverse quantization unit (321) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.
- the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).
- the prediction unit (320) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block.
- the prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra/inter-prediction mode.
- the prediction unit (320) can generate a prediction signal based on various prediction methods described below.
- the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode.
- the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block.
- IBC prediction mode or palette mode can be used for content image/video coding such as games, such as screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein.
- the palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information about the palette table and palette index may be signaled and included in the video/image information.
- the intra prediction unit (331) can predict the current block by referring to samples within the current picture.
- the referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode.
- the prediction modes may include one or more non-directional modes and multiple directional modes.
- the intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
- the inter prediction unit (332) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture.
- the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block.
- the motion information can include a motion vector and a reference picture index.
- the motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.).
- the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture.
- the inter prediction unit (332) can construct a motion information candidate list based on the neighboring blocks, and derive the motion vector and/or reference picture index of the current block based on the received candidate selection information.
- Inter prediction can be performed based on various prediction modes, and information about the prediction can include information indicating an inter prediction mode for the current block.
- the addition unit (340) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter-prediction unit (332) and/or intra-prediction unit (331)).
- the prediction block can be used as the restoration block.
- the addition unit (340) may be referred to as a restoration unit or restoration block generation unit.
- the generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture.
- LMCS luma mapping with chroma scaling
- the filtering unit (350) can improve subjective/objective image quality by applying filtering to the restored signal.
- the filtering unit (350) can apply various filtering methods to the restored picture to generate a modified restored picture, and transmit the modified restored picture to the memory (360), specifically, to the DPB of the memory (360).
- the various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
- the (modified) reconstructed picture stored in the DPB of the memory (360) can be used as a reference picture in the inter prediction unit (332).
- the memory (360) can store motion information of a block from which motion information in the current picture is derived (or decoded) and/or motion information of blocks in an already reconstructed picture.
- the stored motion information can be transmitted to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit (331).
- the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.
- FIG. 4 illustrates an example of a video/image decoding method to which the disclosed embodiment can be applied.
- the pictures that make up an image/video can be encoded/decoded according to a series of decoding orders.
- the picture order corresponding to the output order of the decoded pictures can be set differently from the decoding order, and based on this, not only forward prediction but also backward prediction can be performed during inter prediction.
- S400 may be performed in the entropy decoding unit (310) of the aforementioned decoding device (300), S410 may be performed in the prediction unit (330), S420 may be performed in the residual processing unit (320), S430 may be performed in the addition unit (340), and S440 may be performed in the filtering unit (350).
- S400 may include a decoding procedure according to the present disclosure, S410 may include an inter/intra prediction procedure according to the present disclosure, S420 may include a residual processing procedure according to the present disclosure, S430 may include a block/picture restoration procedure according to the present disclosure, and S440 may include an in-loop filtering procedure according to the present disclosure.
- the decoding device obtains image/video information from a bitstream (S400), performs prediction based on the obtained image/video information (S410), and restores a picture through residual processing (S420), inverse quantization for quantized transform coefficients, and inverse transformation (S430).
- a modified restored picture can be generated by applying an in-loop filtering procedure (S440) to a restored picture generated through the above restoration procedure, and the modified restored picture can be output as a decoded picture and can be stored in a buffer or memory of a decoding device to be used as a reference picture in an inter prediction procedure when decoding a next picture.
- the in-loop filtering procedure can be omitted, in which case the restored picture can be output as a decoded picture and can be stored in a buffer or memory of a decoding device to be used as a reference picture in an inter prediction procedure when decoding a next picture.
- the in-loop filtering procedure may include a deblocking filtering procedure, a sample adaptive offset (SAO) procedure, an adaptive loop filter (ALF) procedure, and/or a bi-lateral filter procedure, and some or all of them may be omitted.
- one or some of the deblocking filtering procedure, the sample adaptive offset (SAO) procedure, the adaptive loop filter (ALF) procedure, and the bi-lateral filter procedure may be sequentially applied, or all of them may be sequentially applied.
- the SAO procedure may be performed after the deblocking filtering procedure is applied to the restored picture.
- the ALF procedure may be performed after the deblocking filtering procedure is applied to the restored picture. This may also be performed in an encoding device.
- FIG. 5 illustrates an example of a video/image encoding method to which the disclosed embodiment can be applied.
- the prediction step (S500) may be performed in the prediction unit (220) of the encoding device (200) described above, residual processing (S510) based on the prediction result may be performed in the residual processing unit (230), and the step (S520) of encoding image information including prediction information and residual information may be performed in the entropy encoding unit (240).
- S500 may include an inter/intra prediction procedure according to the present disclosure
- S510 may include a residual processing procedure according to the present disclosure
- S520 may include an encoding procedure according to the present disclosure.
- the encoding procedure may optionally include a procedure for encoding information for picture restoration (e.g., prediction information, residual information, partitioning information, etc.) and outputting it in the form of a bitstream, as well as a procedure for generating a restored picture for the current picture and a procedure for applying in-loop filtering to the restored picture.
- a procedure for encoding information for picture restoration e.g., prediction information, residual information, partitioning information, etc.
- picture restoration e.g., prediction information, residual information, partitioning information, etc.
- the encoding device (200) can derive (corrected) residual samples from the quantized transform coefficients through the inverse quantization unit (234) and the inverse transformation unit (235), and can generate a restored picture based on the prediction samples and (corrected) residual samples, which are outputs of S500.
- the restored picture generated in this way can be the same as the restored picture generated by the decoding device (300) described above.
- a modified restored picture can be generated through an in-loop filtering procedure for the restored picture, which can be stored in a buffer or memory, and, as in the case of the decoding device, can be used as a reference picture in the inter prediction procedure when encoding a subsequent picture.
- in-loop filtering-related information may be encoded by the entropy encoding unit (240) and output in the form of a bitstream, and the decoding device (300) may perform the in-loop filtering procedure in the same manner as the encoding device based on the filtering-related information.
- the picture restoration procedure can be performed not only in the decoding device (300) but also in the encoding device (200).
- a restoration block can be generated based on intra-prediction/inter-prediction for each block, and a restoration picture including the restoration blocks can be generated.
- the current picture/slice/tile group is an I picture/slice/tile group
- the blocks included in the current picture/slice/tile group can be restored based only on intra-prediction.
- the current picture/slice/tile group is a P or B picture/slice/tile group
- the blocks included in the current picture/slice/tile group can be restored based on intra-prediction or inter-prediction.
- inter-prediction may be applied to some blocks in the current picture/slice/tile group
- intra-prediction may be applied to some remaining blocks.
- the color component of a picture may include a luma component and a chroma component, and embodiments according to the present disclosure may be applied to the luma component and the chroma component unless explicitly limited in the present disclosure.
- Figure 6 illustrates an example hierarchical structure for a coded image according to one embodiment.
- the coded image is divided into a Video Coding Layer (VCL) that handles the decoding processing of the image and the image itself, a subsystem that transmits and stores the coded information, and a Network Abstraction Layer (NAL) that exists between the VCL and the subsystem and is responsible for network adaptation functions.
- VCL Video Coding Layer
- NAL Network Abstraction Layer
- VCL data containing compressed image data can be generated, or a parameter set containing information such as a picture parameter set (PPS), a sequence parameter set (SPS), a video parameter set (VPS), etc., or an SEI (Supplemental Enhancement Information) message additionally required for the image decoding process can be generated.
- PPS picture parameter set
- SPS sequence parameter set
- VPS video parameter set
- SEI Supplemental Enhancement Information
- a NAL unit can be created by adding header information (NAL unit header) to an RBSP (Raw Byte Sequence Payload) generated from a VCL.
- RBSP refers to slice data, parameter sets, SEI messages, etc. generated from a VCL.
- the NAL unit header can include NAL unit type information that is specific to the RBSP data included in the NAL unit.
- NAL units can be divided into VCL NAL units and non-VCL NAL units according to the RBSP generated from VCL.
- a VCL NAL unit can refer to a NAL unit that contains information about a video (slice data)
- a non-VCL NAL unit can refer to a NAL unit that contains information necessary for decoding a video (parameter set or SEI message).
- VCL NAL units and non-VCL NAL units can be transmitted over a network by attaching header information according to the data specifications of the lower system.
- NAL units can be transformed into data formats of a certain standard, such as the H.266/VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted over various networks.
- a NAL unit can be specified as a NAL unit type according to the RBSP data structure included in the NAL unit, and information about the NAL unit type can be stored and signaled in the NAL unit header.
- a NAL unit contains information about a picture (slice data)
- it can be broadly classified into VCL NAL unit types and Non-VCL NAL unit types.
- the VCL NAL unit type can be classified according to the nature and type of the picture contained in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of parameter set, etc.
- NAL unit types specified by the type of parameter set included in the Non-VCL NAL unit type.
- NAL unit Type for NAL units containing APS
- NAL unit Type for NAL unit containing DPS
- NAL unit Type for NAL units containing VPS
- NAL unit Type for NAL units containing SPS
- NAL unit Type for NAL units containing PPS
- NAL unit types have syntax information for the NAL unit type, and the syntax information can be stored and signaled in the NAL unit header.
- the syntax information can be nal_unit_type, and NAL unit types can be specified by the nal_unit_type value.
- the slice header may include information/parameters that are commonly applicable to the slices.
- the APS APS syntax
- PPS PPS syntax
- the SPS SPS syntax
- the VPS VPS syntax
- the DPS DPS syntax
- the DPS may include information/parameters that are commonly applicable to the entire video.
- the DPS may include information/parameters related to the concatenation of CVS (coded video sequence).
- the High Level Syntax may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, or slice header syntax.
- image/video information encoded in an image encoding device and signaled in the form of a bitstream may include information related to partitioning within a picture, intra/inter prediction information, residual information, in-loop filtering information, etc., and may also include information included in the slice header, information included in the APS, information included in the PPS, information included in the SPS, information included in the VPS, and/or information included in the DPS.
- the prediction unit (220, 330) of the encoding device (200)/decoding device (300) can derive a reference sample according to the intra prediction mode of the current block among the surrounding samples of the current block, and can generate a prediction sample of the current block based on the reference sample.
- Intra prediction can refer to a prediction that generates prediction samples for the current block based on reference samples in a picture to which the current block belongs (hereinafter, the current picture).
- the current picture When intra prediction is applied to the current block, surrounding reference samples to be used for intra prediction of the current block can be derived.
- the surrounding reference samples of the current block can include a sample adjacent to the left boundary of the current block of a size nWxnH and a total of 2xnH samples adjacent to the bottom-left, a sample adjacent to the top boundary of the current block and a total of 2xnW samples adjacent to the top-right, and one sample adjacent to the top-left of the current block.
- the peripheral reference samples of the current block may include upper peripheral samples of multiple columns and left peripheral samples of multiple rows.
- the peripheral reference samples of the current block may include 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 one sample adjacent to the bottom-right of the current block.
- the decoding device (300) may construct surrounding reference samples to be used for prediction by substituting the unavailable samples with available samples.
- the surrounding reference samples to be used for prediction may be constructed 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) the prediction sample can be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block.
- the case of (i) can be called a non-directional mode or a non-angular mode, and the case of (ii) can be called a directional mode or an angular mode.
- LIP linear interpolation intra prediction
- a temporary prediction sample of the current block may be derived based on filtered peripheral reference samples, and a prediction sample of the current block may be derived by weighting at least one reference sample derived according to an intra prediction mode among existing peripheral reference samples, i.e., unfiltered peripheral reference samples, and the temporary prediction sample.
- Such prediction may be referred to as Position Dependent Intra Prediction Combination (PDPC).
- intra prediction encoding can be performed by selecting a reference sample line with the highest prediction accuracy among the surrounding multiple reference sample lines of the current block, deriving a prediction sample using the reference sample located in the prediction direction of the selected line, and then instructing (signaling) the used reference sample line to the decoding device.
- This case can be referred to as multi-reference line intra prediction (MRL) or MRL-based intra prediction.
- MRL multi-reference line intra prediction
- the current block can be divided into vertical or horizontal subpartitions, and intra prediction can be performed based on the same intra prediction mode, while peripheral reference samples can be derived and utilized for each subpartition.
- intra prediction mode for the current block is applied equally to the subpartitions, but peripheral reference samples can be derived and utilized for each subpartition, thereby improving intra prediction performance in some cases.
- This prediction method can be called intra subpartitions (ISP) or ISP-based intra prediction.
- the value of the prediction sample can also be derived through interpolation of multiple reference samples located around the prediction direction (around the fractional sample location).
- Information about the intra prediction mode may be included in the prediction information encoded by the encoding device (200) and included in the bitstream and transmitted to the decoding device (300).
- Information about the intra prediction mode may be implemented and transmitted in various forms, such as flag information indicating whether each intra prediction mode is applied or index information indicating one of several intra prediction modes.
- the intra prediction methods described above may be referred to as intra prediction types, to distinguish them from intra prediction modes.
- the intra prediction types may be referred to by various terms, such as intra prediction techniques, intra prediction tools, or additional intra prediction modes.
- the intra prediction types may include at least one of the LIP, PDPC, MRL, and ISP described above.
- a general intra prediction method, excluding specific intra prediction types such as LIP, 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 types described above are not applied, and prediction may be performed based on the intra prediction modes described above. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.
- the intra prediction process may include an intra prediction mode/type determination step, a surrounding reference sample derivation step, and an intra prediction mode/type-based prediction sample derivation step. Additionally, a post-processing filtering step may be performed on the derived prediction samples, as needed. This will be described in detail below.
- FIG. 7 is a flowchart showing a method of encoding an image based on intra prediction in an encoding method according to one embodiment
- FIG. 8 is a diagram showing the configuration of an encoding device used to perform the method of FIG. 7.
- step S1000 may be performed by the intra prediction unit (222) of the encoding device (200), and step S1010 may be performed by the residual processing unit (230) of the encoding device. Specifically, step S1010 may be performed by the subtraction unit (115) of the encoding device (200).
- prediction information may be derived by the intra prediction unit (222) and encoded by the entropy encoding unit (240).
- residual information may be derived by the residual processing unit (230) and encoded by the entropy encoding unit (240).
- the residual information is information about the residual samples.
- the residual information may include information about quantized transform coefficients for the residual samples.
- the residual samples are derived as transform coefficients through the transform unit (232) of the encoding device (200), and the transform coefficients can be derived as quantized transform coefficients through the quantization unit (233).
- Information about the quantized transform coefficients can be encoded in the entropy encoding unit (240) through a residual coding procedure.
- the encoding device (200) can perform intra prediction on the current block (S1000).
- the encoding device (200) can derive an intra prediction mode/type for the current block, derive surrounding reference samples of the current block, and generate prediction samples within the current block based on the intra prediction mode/type and the surrounding reference samples.
- the prediction samples can constitute a prediction block.
- the intra prediction mode/type determination, surrounding reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or one procedure may be performed before the other.
- the intra prediction unit (222) of the encoding device (200) may include an intra prediction mode/type determination unit (222a), a reference sample derivation unit (222b), and a prediction sample derivation unit (222c).
- the intra prediction mode/type determination unit (222a) may determine the intra prediction mode/type for the current block, the reference sample derivation unit (222b) may derive surrounding reference samples of the current block, and the prediction sample derivation unit (222c) may derive prediction samples of the current block. Meanwhile, although not shown, when the prediction sample filtering procedure described below is performed, the intra prediction unit (222) may further include a prediction sample filtering unit (not shown).
- the encoding device (200) may determine a mode/type to be applied to the current block among a plurality of intra prediction modes/types. The encoding device (200) may compare RD costs for the intra prediction modes/types to determine the optimal intra prediction mode/type for the current block.
- the encoding device (200) may also perform a prediction sample filtering procedure.
- the prediction sample filtering procedure may be referred to as post-filtering. Some or all of the prediction samples may be filtered through the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
- the encoding device (200) performs residual processing on the current block based on (filtered) prediction samples (S1010). Specifically, the encoding device (200) can compare the prediction samples with the original samples of the current block based on phase and derive residual samples.
- the encoding device (200) can encode image information including information regarding the intra prediction (prediction information) and residual information regarding the residual samples (S1020).
- the prediction information can include the intra prediction mode information and/or the intra prediction type information.
- the encoding device (200) can output the encoded image information in the form of a bitstream.
- the output bitstream can be transmitted to the decoding device (300) via a storage medium or a network.
- the residual information may include the residual coding syntax described below.
- the encoding device (200) may transform/quantize the residual samples to derive quantized transform coefficients.
- the residual information may include information about the quantized transform coefficients.
- the encoding device (200) can generate a restored picture (including restored samples and restored blocks). To this end, the encoding device (200) can inversely quantize/inversely transform the quantized transform coefficients to derive (corrected) residual samples. The reason for performing inverse quantization/inverse transformation on the residual samples after transforming/quantizing them in this way is to derive residual samples that are identical to the residual samples derived from the decoding device (300) as described above.
- the encoding device (200) can generate a restored block including restored samples for the current block based on the predicted samples and the (corrected) residual samples. A restored picture for the current picture can be generated based on the restored block. As described above, an in-loop filtering procedure, etc. can be further applied to the restored picture.
- FIG. 9 is a flowchart showing a method of decoding an image based on intra prediction in a decoding method according to one embodiment
- FIG. 10 is a diagram showing the configuration of a decoding device used to perform the method of FIG. 9.
- the decoding device (300) can perform an operation corresponding to the operation performed in the encoding device (200).
- Steps S1100 to S1120 may be performed by the intra prediction unit (331) of the decoding device (300), and the prediction information of step S1100 and the residual information of step S1130 may be obtained from the bitstream by the entropy decoding unit (310) of the decoding device (300).
- the residual processing unit (320) of the decoding device (300) may derive residual samples for the current block based on the residual information.
- the inverse quantization unit (321) of the residual processing unit (320) may perform inverse quantization based on the quantized transform coefficients derived based on the residual information to derive transform coefficients
- the inverse transform unit (322) of the residual processing unit (320) may perform inverse transformation on the transform coefficients to derive residual samples for the current block.
- Step 1140 may be performed by the addition unit (340) or restoration unit of the decoding device (300).
- the decoding device (300) can derive an intra prediction mode/type for the current block based on the received prediction information (intra prediction mode/type information) (S1100).
- the decoding device (300) can derive surrounding reference samples of the current block (S1110).
- the decoding device (300) generates prediction samples within the current block based on the intra prediction mode/type and the surrounding reference samples (S1120).
- the decoding device (300) can perform a prediction sample filtering procedure.
- the prediction sample filtering procedure 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 decoding device (300) generates residual samples for the current block based on the received residual information.
- the decoding device (300) generates reconstructed samples for the current block based on the prediction samples and the residual samples, and can derive a reconstructed block including the reconstructed samples (S1130).
- a reconstructed picture for the current picture can be generated based on the reconstructed block. As described above, an in-loop filtering procedure, etc., can be further applied to the reconstructed picture.
- the intra prediction unit (331) of the decoding device (300) may include an intra prediction mode/type determination unit (331a), a reference sample derivation unit (331b), and a prediction sample derivation unit (331c).
- the intra prediction mode/type determination unit (331a) determines the intra prediction mode/type for the current block based on the intra prediction mode/type information generated and signaled by the intra prediction mode/type determination unit (222a) of the encoding device (200), the reference sample derivation unit (331b) may derive surrounding reference samples of the current block, and the prediction sample derivation unit (331c) may derive prediction samples of the current block.
- the intra prediction unit (331) may further include a prediction sample filtering unit (not illustrated).
- the intra prediction mode information may include flag information (e.g., intra_luma_mpm_flag) indicating, for example, whether the most probable mode (MPM) is applied to the current block or the remaining mode is applied, and if the MPM is applied to the current block, the intra prediction mode information may further include index information (e.g., 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 list. A list composed of MPM candidates may be referred to as an MPM list or an MPM candidate list.
- the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the MPM candidates.
- the decoding device (300) may determine the intra prediction mode of the current block based on the intra prediction mode information.
- the intra prediction type information can be implemented in various forms.
- the intra prediction type information can include intra prediction type index information indicating one of the intra prediction types.
- the intra prediction type information can include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of subpartitions if ISP is applied, flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied.
- the intra prediction type information can include a MIP flag indicating whether MIP (Matrix-based Intra Prediction) is applied to the current block.
- Intra prediction mode information and/or intra prediction type information may be encoded/decoded using the coding method described in the disclosed embodiment.
- intra prediction mode information and/or intra prediction type information may be encoded/decoded using entropy coding (e.g., CABAC, CAVLC) based on a truncated (rice) binary code.
- entropy coding e.g., CABAC, CAVLC
- the intra prediction mode applied to the current block can be determined using the intra prediction mode of the surrounding blocks.
- the decoding device (300) can select one of the MPM candidates within the MPM list derived based on the intra prediction mode of the surrounding blocks of the current block (e.g., the left and/or upper surrounding blocks) and additional candidate modes, based on the received MPM index.
- one of the remaining intra prediction modes that are not included in the above mpm candidates (and planar modes) may be selected based on the remaining intra prediction mode information.
- the mpm list may be configured to include or not include a planar mode as a candidate. For example, if the mpm list includes a planar mode as a candidate, the mpm list may have six candidates, and if the mpm list does not include a planar mode as a candidate, the mpm list may have three candidates.
- a not planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not a planar mode may be signaled.
- the mpm flag may be signaled first, and then the mpm index and the not planar flag may be signaled if the value of the mpm flag is 1. Additionally, the mpm index may be signaled if the value of the not planar flag is 1.
- planar mode is not mpm, but rather because planar mode is always considered as mpm, so a flag (not planar flag) is first signaled to check whether it is planar mode or not.
- the intra prediction mode applied to the current block is among the mpm candidates (and planar mode) or among the remaining mode can be indicated based on the mpm flag (e.g., intra_luma_mpm_flag).
- a value of 1 of the mpm flag can indicate that the intra prediction mode for the current block is among the mpm candidates (and planar mode)
- a value of 0 of the mpm flag can indicate that the intra prediction mode for the current block is not among the mpm candidates (and planar mode).
- a value of 0 of the not planar flag (e.g., intra_luma_not_planar_flag) can indicate that the intra prediction mode for the current block is the planar mode, and a value of 1 of the not planar flag can indicate that the intra prediction mode for the current block is not the planar mode.
- the mpm index can be signaled in the form of mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information can be signaled in the form of rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element.
- the remaining intra prediction mode information can point to one of the remaining intra prediction modes that are not included in the mpm candidates (and planar modes) among all intra prediction modes by indexing them in the order of the prediction mode number.
- the intra prediction mode can be an intra prediction mode for the luma component (sample).
- the intra prediction mode information may include at least one of an mpm flag (e.g., intra_luma_mpm_flag), a not planar flag (e.g., intra_luma_not_planar_flag), an mpm index (e.g., mpm_idx or intra_luma_mpm_idx), and remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder).
- the MPM list may be called by various terms such as an MPM candidate list, candModeList, etc.
- a separate mpm flag e.g., intra_mip_mpm_flag
- an mpm index e.g., intra_mip_mpm_idx
- remaining intra prediction mode information e.g., intra_mip_mpm_remainder
- the signaling procedure for intra prediction mode information in the encoding device (200) and the intra prediction mode determination procedure in the decoding device (300) can be performed, for example, as follows.
- FIG. 11 is a flowchart illustrating an example of a method for signaling information about an intra prediction mode in an encoding method according to one embodiment.
- the encoding device (200) constructs an MPM list for the current block (S1300).
- the MPM list may include candidate intra-prediction modes (MPM candidates) likely to be applied to the current block.
- the MPM list may include intra-prediction modes of surrounding blocks, or may further include specific intra-prediction modes according to a predetermined method. A specific method for constructing the MPM list will be described later.
- the encoding device (200) determines the intra prediction mode of the current block (S1310).
- the encoding device (200) can perform prediction based on various intra prediction modes, and can determine the optimal intra prediction mode based on rate-distortion optimization (RDO) based thereon.
- RDO rate-distortion optimization
- the encoding device (200) may determine the optimal intra prediction mode using only the MPM candidates and the planar mode included in the MPM list, or may determine the optimal intra prediction mode using not only the MPM candidates and the planar mode included in the MPM list but also the remaining intra prediction modes.
- the encoding device (200) may consider only the MPM candidates and the planar mode as intra prediction mode candidates for the current block to determine the optimal intra prediction mode. That is, in this case, the intra prediction mode for the current block can only be determined among the MPM candidates and the planar mode, and in this case, the MPM flag may not be encoded/signaled. In this case, the decoding device (300) can assume that the MPM flag is 1 without being separately signaled.
- the MPM flag is 1 without being separately signaled.
- the encoding device (200) generates intra-prediction mode information based on the determined intra-prediction mode (S1320).
- the intra-prediction mode information may indicate information regarding the intra-prediction mode determined for the current block.
- the intra-prediction mode information may include at least one of information indicating whether the intra-prediction mode applied to the current block is included in the MPM list (e.g., mpm flag), information indicating whether the planar mode is applied to the current block (e.g., not planar flag), an mpm index indicating the intra-prediction mode applied to the current block among the MPM list, or remaining intra-prediction mode information.
- the encoding device (200) generates an MPM index (e.g., mpm idx) that points to one of the MPM candidates. If the intra prediction mode of the current block is not in the MPM list either, the encoding device generates remaining intra prediction mode information that points to a mode that is the same as the intra prediction mode of the current block among the remaining intra prediction modes that are not included in the MPM list (and the planar mode).
- MPM index e.g., mpm idx
- the encoding device (200) can encode intra prediction mode information (S1330) and output it in the form of a bitstream.
- the mpm index and the remaining intra prediction mode information are not signaled simultaneously when indicating the intra prediction mode for one block because they have an alternative relationship. That is, the mpm flag value 1 and the not planar flag or the mpm index are signaled together, or the mpm flag value 0 and the remaining intra prediction mode information are signaled together.
- the mpm flag may not be signaled, and only the not planar flag and/or the mpm index may be signaled. That is, in this case, the intra prediction mode information may include only the not planar flag and/or the mpm index.
- FIG. 12 is a flowchart illustrating an example of a method for deriving an intra prediction mode in a decoding method according to one embodiment.
- the decoding device (300) can determine the intra prediction mode in response to the intra prediction mode information determined and signaled by the encoding device (200).
- the decoding device (300) obtains intra prediction mode information from the bitstream (S1400).
- the intra prediction mode information may include at least one of an MPM flag, a not-planar flag, an MPM index, or a remaining intra prediction mode, as described above.
- the decoding device (300) constructs an MPM list (S1410).
- the MPM list is constructed in the same manner as the MPM list constructed in the encoding device (200) described above. That is, the MPM list may include intra prediction modes of surrounding blocks, or may further include specific intra prediction modes according to a predetermined method. A specific PM list construction method is described below.
- step S1410 is shown as being performed after step S1400, this is an example, and step S1410 may be performed before step S1400 or may be performed simultaneously.
- the decoding device (300) derives the intra prediction mode of the current block based on the MPM list and the intra prediction mode information (S1420). If the value of the mpm flag is 1, the decoding device (300) may derive the planar mode as the intra prediction mode of the current block (based on the not planar flag) or derive the candidate indicated by the mpm index among the MPM candidates in the MPM list as the intra prediction mode of the current block. If the value of the mpm flag is 0, the decoding device (300) may derive the intra prediction mode indicated by the remaining intra prediction mode information among the remaining intra prediction modes that are not included in the MPM list and the planar mode as the intra prediction mode of the current block.
- the decoding device (300) may also derive the candidate indicated by the mpm index in the planar mode or the MPM list as the intra prediction mode of the current block without checking the mpm flag.
- a specific intra prediction mode derivation procedure like this can be represented as in Fig. 13.
- FIG. 13 is a flowchart illustrating in more detail an example of a method for deriving an intra prediction mode in a decoding method according to one embodiment.
- step (S1500) in which the decoding device (300) obtains intra prediction mode information from the bitstream and the step (S1510) in which the decoding device (300) constructs the MPM list is the same as described above.
- the intra prediction mode of the current block can be determined based on the MPM list and mpm index (S1523).
- the planar mode can be determined as the intra prediction mode of the current block (S1524).
- the intra prediction mode of the current block can be determined from among the remaining intra prediction modes not included in the MPM list based on the remaining intra prediction mode information (S1525).
- the intra prediction modes can include two directional intra prediction modes and 65 directional intra prediction modes.
- the non-directional intra prediction modes can include the planar intra prediction mode and the DC intra prediction mode, and the directional intra prediction modes can include intra prediction modes 2 to 66.
- the extended directional intra prediction modes can be applied to blocks of all sizes and can be applied to both luma and chroma components.
- intra prediction modes may further include a cross-component linear model (CCLM) mode for chroma samples.
- CCLM modes can be categorized into LT_CCLM, L_CCLM, and T_CCLM, depending on whether left-side samples, upper-side samples, or both are considered for deriving LM parameters, and can only be applied to chroma components.
- Intra prediction modes can be indexed, for example, as shown in Table 1 below.
- the intra prediction type (or additional intra prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, ISP, and MIP.
- the intra prediction type may be indicated based on intra prediction type information, and the intra prediction type information may be implemented in various forms.
- the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types.
- the intra prediction type information may include reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating a split type of subpartitions if the ISP is applied, flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied. Additionally, the intra prediction type information may include a MIP flag (or may be called intra_mip_flag) indicating whether MIP is applied to the current block.
- reference sample line information e.g., intra_luma_ref_idx
- ISP flag information e.g., intra_subpartitions_mode_flag
- ISP type information e.g., intra_
- Information regarding the intra prediction mode/type of the current block can be coded and signaled at the CU (CU syntax) level, or implicitly determined based on conditions. In this case, some modes/types may be explicitly signaled, while others may be implicitly derived.
- the CU syntax can carry information about (intra) prediction mode/type, etc., as disclosed in Table 2 below.
- intra_luma_mpm_flag[ x0 ][ y0 ] intra_luma_not_planar_flag[ x0 ][ y0 ]
- intra_luma_mpm_idx[ x0 ][ y0 ] intra_luma_mpm_remainder[ x0 ][ y0 ] are used to define the intra prediction mode for luma samples.
- intra_luma_mpm_flag[ x0 ][ y0 ] intra_luma_not_planar_flag[ x0 ][ y0 ]
- intra_luma_mpm_idx[ x0 ][ y0 ] intra_luma_mpm_remainder[ x0 ][ y0 ]
- intra_luma_mpm_remainder[ x0 ][ y0 ] can indicate the (regular or normal) intra prediction mode of the current block.
- This can be the intra prediction mode for the luma samples of the current block.
- Regular intra prediction mode or normal intra prediction mode can indicate an intra prediction mode when MIP is not applied to the current block and the current block is coded in the intra mode.
- intra mode and intra prediction mode can be used interchangeably.
- intra_luma_mpm_flag can indicate whether the intra prediction mode for the current block exists in the MPM list (or exists among MPM candidates).
- intra_luma_mpm_flag value is 1, intra_luma_not_planar_flag can be parsed/coded, and intra_luma_not_planar_flag can indicate whether the intra prediction mode of the current block is not a planar mode.
- intra_luma_mpm_idx can be parsed and coded if the intra_luma_not_planar_flag is 'true' (i.e., value 1).
- a planar mode can always be included as a candidate in the MPM list, but a planar mode can be excluded from the MPM list by signaling the intra_luma_not_planar_flag first as described above.
- a unified MPM list can be constructed from the various intra prediction types described above (general intra prediction, MRL, ISP, LIP, etc.).
- intra_luma_mpm_idx can indicate a candidate to be used as an intra prediction mode of the current block among the MPM candidates included in the MPM list from which the planar mode is excluded. If the intra_luma_mpm_flag value is 0, intra_luma_mpm_remainder can be parsed/coded. The intra_luma_mpm_remainder can indicate one mode among the remaining modes excluding the candidates in the MPM list from the intra prediction modes as the intra prediction mode of the current block.
- the encoding device (200) can utilize the intra-prediction modes of the neighboring blocks to encode the intra-prediction mode of the current block.
- the encoding device (200)/decoding device (300) can configure an MPM list for the current block.
- MPM may refer to a mode used to improve coding efficiency by considering the similarity between the current block and surrounding blocks during intra prediction mode coding.
- the MPM list may be configured to include a planar mode, or may be configured to exclude a planar mode. For example, if the MPM list includes a planar mode, the number of candidates in the MPM list may be 6. And, if the MPM list does not include a planar mode, the number of candidates in the MPM list may be 5.
- the encoding device (200)/decoding device (300) can configure an MPM list including six MPM candidates.
- IPM modes Intra modes derived from surrounding inter modes
- peripheral blocks such as the left peripheral block, the upper peripheral block, the lower left peripheral block, the upper right peripheral block, and the upper left peripheral block
- the input order may vary depending on the size information of the current block. For example, if the height of a block is greater than or equal to the width of the block, the intra mode of the upper peripheral block may be considered first, and then the intra mode of the left peripheral block may be considered.
- intra mode information can be obtained from the IPM buffer. If the position indicated by the motion vector of a neighboring inter block is in intra mode, i.e., if the block at that position is coded in intra mode, the corresponding intra mode can be stored in the IPM buffer. The intra mode stored in the IPM buffer can be used as the MPM mode of the neighboring block.
- the intra mode derived from DIMD can be used as an MPM candidate.
- the planar mode is excluded from the MPM list, and the number of candidates in the MPM list can be set to 5.
- the above-described MPM list construction method can be used when MIP is not applied to the current block.
- the above-described MPM list construction method can be used to derive intra prediction modes used in LIP, PDPC, MRL, ISP intra prediction, or normal intra prediction.
- Figure 14 is a schematic diagram illustrating a matrix-based intra prediction (MIP) process.
- MIP matrix-based intra prediction
- Matrix-based intra prediction is also known as affine linear weighted intra prediction (ALWIP) or matrix weighted intra prediction (MWIP).
- AWIP affine linear weighted intra prediction
- MWIP matrix weighted intra prediction
- the generation of a prediction signal can be accomplished through the following three steps.
- the prediction signals at the remaining locations are generated through linear interpolation, which linearly interpolates one step in each direction from the prediction signals of the subsampled set (Interpolation).
- the matrices and offset vectors required to generate prediction signals are taken from three sets of matrices: S0, S1, and S2.
- Set S0 contains 18 matrices, each with 16 rows and 4 columns. and 18 offset vectors, each with a size of 16. It consists of .
- the matrices and offset vectors of the set are used for blocks of size 4x4.
- Set S1 consists of 10 matrices, each with 16 rows and 8 columns. and 10 offset vectors, each with a size of 16. It consists of .
- the matrices and offset vectors of the set are used for blocks of sizes 4x8, 8x4, and 8x8.
- set S2 consists of 6 matrices, each with 64 rows and 8 columns. and six offset vectors, each with a size of 64 It consists of the matrices and offset vectors of that set or some of these matrices and offset vectors are used for all other block shapes.
- the total number of multiplications required to compute the matrix vector product is In other words, in MIP mode, up to 4 multiplications are required per sample.
- the left peripheral block or the upper peripheral block can be coded based on the above-described MIP. That is, MIP can be applied when coding the left peripheral block or the upper peripheral block.
- MIP can be applied when coding the left peripheral block or the upper peripheral block.
- the intra prediction mode of the peripheral block (left peripheral block/upper peripheral block) to which the MIP is applied can be considered as DC or planar mode.
- the intra prediction mode of the peripheral block (left peripheral block/upper peripheral block) to which the MIP is applied can be mapped to a general intra prediction mode based on a mapping table and used to construct the MPM list.
- the mapping can be performed based on the block size type of the current block.
- the mapping table can be represented as shown in Table 3 below.
- MIP IntraPredMode[ xNbX ][ yNbX ] represents the MIP intra prediction mode of the surrounding block (left surrounding block/upper surrounding block)
- the block size type MipSizeId represents the block size type of the surrounding block or the current block.
- the numbers under the block size type values 0, 1, and 2 represent the general intra prediction mode to which the MIP intra prediction mode is mapped for each block size type.
- the mapped general intra prediction mode number may be 18.
- the above mapping relationship is an example and may be changed.
- MIP MPM list When MIP is applied to the current block, a separate MPM list for the current block to which MIP is applied can be configured.
- the MPM list can be called by various names, such as MIP MPM list (or MPM list for MIP, candMipModeList), to distinguish it from the MPM list for cases where MIP is not applied to the current block.
- MIP MPM list or MPM list for MIP, candMipModeList
- the above MIP MPM candidate list may include n candidates, for example, n may be 3.
- the above MIP MPM candidate list may be constructed based on a left peripheral block and an upper peripheral block of the current block.
- the left peripheral block may refer to the uppermost block among the peripheral blocks adjacent to the left boundary of the current block.
- the upper peripheral block may refer to the leftmost block among the peripheral blocks adjacent to the upper boundary of the current block.
- the first candidate intra prediction mode (or candMipModeA) may be set to be the same as the MIP intra prediction mode of the left neighboring block.
- the second candidate intra prediction mode (or cand-ipModeB) may be set to be the same as the MIP 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 MIP. That is, an intra prediction type other than MIP may be applied when coding the left neighboring block or the upper neighboring block.
- an intra prediction type other than MIP may be applied when coding the left neighboring block or the upper neighboring block.
- the normal intra prediction mode number of the neighboring block (left neighboring block/upper neighboring block) to which MIP is not applied it is not appropriate to use the normal intra prediction mode number of the neighboring block (left neighboring block/upper neighboring block) to which MIP is not applied as a candidate intra mode for the current block to which MIP is applied.
- the MIP intra prediction mode of the neighboring block (left neighboring block/upper neighboring block) to which MIP is not applied may be regarded as a MIP intra prediction mode of a specific value (e.g., 0, 1, or 2).
- the normal intra prediction mode of the neighboring block (left neighboring block/upper neighboring block) to which MIP is not applied may be mapped to the MIP intra prediction mode based on a mapping table and used to construct a MIP MPM candidate list.
- the mapping may be performed based on the block size type of the current block.
- the mapping table may be represented as in Table 4 below.
- IntraPredModeY[ xNbX ][ yNbX ] represents the intra prediction mode of the surrounding block (left surrounding block/upper surrounding block).
- the intra prediction mode of the surrounding block may be an intra prediction mode for the luma component (sample), i.e., a luma intra prediction mode.
- the block size type MipSizeId represents the block size type of the surrounding block or the current block.
- the numbers under the block size type values 0, 1, and 2 represent the MIP intra prediction mode to which the general intra prediction mode is mapped for each block size type.
- the above-mentioned surrounding blocks may not be available (e.g., located outside the current picture, located outside the current tile/slice, etc.), or even if MIP is applied, a MIP intra prediction mode that is not available to the current block may be used depending on the block size type.
- a specific MIP 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 MIP intra prediction mode predefined for the third candidate may be used as the third candidate intra prediction mode.
- the above-described specific MIP intra prediction mode can be represented as shown in Table 5 below.
- the above-described specific MIP intra prediction mode can be called MIP default candidate modes.
- the MIP MPM list can be constructed 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, the first candidate intra prediction mode can be placed as the 0th candidate (ex. candMipModeList[0]) of the MIP MPM list, and the second candidate intra prediction mode can be placed as the 1st candidate (ex. candMipModeList[1]) of the MIP MPM list.
- the second candidate (ex. candMipModeList[2]) of the MIP MPM list can use the above-described predefined specific MIP intra prediction mode.
- one of the first candidate intra prediction mode and the second candidate intra prediction mode can be inserted as the 0th candidate (ex. candMipModeList[0]) of the MIP MPM list, and the first candidate (ex. candMipModeList[1]) of the MIP MPM list and the second candidate (ex. candMipModeList[2]) of the MIP MPM list can use the above-described predefined specific MIP intra prediction modes.
- the MIP intra prediction mode of the current block can be derived based on the MIP MPM list.
- the MPM flag that can be included in the intra prediction mode information for the MIP as described above can be called intra_mip_mpm_flag
- the MPM index can be called intra_mip_mpm_idx
- the remaining intra prediction mode information can be called intra_mip_mpm_remainder.
- the procedure for deriving the MIP intra prediction mode from the MIP MPM list can be performed as described above.
- DIMD Decoder-side intra mode derivation
- the aforementioned DIMD (Decoder-side intra mode derivation) mode can be used by deriving intra prediction mode information at the encoder and decoder without directly transmitting it.
- horizontal and vertical gradients are derived from the second neighboring sample column and row, and a Histogram of Gradients (HoG) can be constructed from these.
- HoG Histogram of Gradients
- Figure 15 is a drawing showing a configuration method of HoG used in DIMD mode.
- the HoG can be obtained by applying a Sobel filter using L-shaped rows and columns of 3 pixels around the current block. If the block boundaries exist in different CTUs, they are not used for texture analysis.
- a DIMD flag is transmitted on a block-by-block basis to determine whether DIMD is being used.
- the weights for each of the five derived modes are adjusted if the magnitude of the upper histogram is twice that of the left histogram, or vice versa. In these cases, the weights vary depending on the position and are calculated as follows:
- wDimd_i represents the unmodified uniform weight for the selected DIMD
- ⁇ _i is a predefined value that can be set to 10.
- the intra prediction mode with the largest amplitude value of the histogram is used to perform chroma intra prediction of the current chroma block.
- the intra prediction mode derived from the DIMD chroma mode is identical to the intra prediction mode derived from the DM mode, the intra prediction mode with the second largest histogram amplitude value is used as the DIMD chroma mode.
- a CU-level flag is transmitted in the syntax to indicate whether the proposed DIMD chroma mode is applied.
- pairs of vertical gradients and horizontal gradients are extracted from the second and third lines of the luma CB instead of the usual DIMD decoding reference sample set to construct a gradient histogram corresponding to the luma CB.
- the two modes with the lowest SATD can be selected, and the prediction blocks for the two prediction modes can be blended using a weighted sum method to use them as the prediction block for the current block.
- Blending two modes can be applied when the following conditions are met:
- the prediction block is generated by blending two modes, otherwise only one mode with the minimum SATD value can be selected.
- the ratio of weights weight1 and weight 2 when blending two prediction blocks is as follows.
- weight2 1 - weight1
- the encoding device (200)/decoding device (300) can compose a list with M SMPM candidates, where M can be 16.
- M can be 16.
- the number of SMPM candidates can vary.
- IPM modes Intra modes derived from surrounding inter modes
- peripheral blocks such as the left peripheral block, the upper peripheral block, the lower left peripheral block, the upper right peripheral block, and the upper left peripheral block
- the input order may vary depending on the size information of the current block. For example, if the block height is greater than or equal to the block width, the intra mode of the upper peripheral block may be considered first, and then the intra mode of the left peripheral block may be considered.
- intra mode information can be obtained through the IPM buffer. If the intra mode is applied to the position indicated by the motion vector of a neighboring inter block, the corresponding intra mode can be stored in the IPM buffer. The intra mode stored in the IPM buffer can be used as a SMPM candidate for the neighboring block.
- peripheral reference samples to be used for intra prediction of the current block can be derived.
- the peripheral reference samples of the current block may include a total of 2 x nH samples adjacent to the left boundary and bottom-left neighbors of the current block of a size nW x nH, a total of 2 x nW samples adjacent to the top boundary and top-right neighbors of the current block, and one sample adjacent to the top-left of the current block.
- the peripheral reference samples of the current block may include upper peripheral samples of multiple columns and left peripheral samples of multiple rows.
- peripheral reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of a size nW x nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
- reference samples may be located on lines 1 to 3, rather than line 0 adjacent to the current block on the left/upper side. In this case, the number of surrounding reference samples may increase. The specific areas and number of surrounding reference samples are described below.
- the surrounding reference samples can be derived in subpartition units.
- the decoding device (300) can construct surrounding reference samples to be used for prediction through interpolation of available samples.
- the decoding device (300) may construct surrounding reference samples to be used for prediction through extrapolation of the available samples. This may be done by substituting or padding pixels that have not yet been decoded or are not available with the last available sample while updating the referenceable samples with the latest samples, starting from the lower left and reaching the upper right reference sample.
- the prediction unit of the encoding device (200)/decoding device (300) can derive a reference sample according to the intra prediction mode of the current block among the surrounding reference samples of the current block, and can generate a prediction sample of the current block based on the reference sample.
- the prediction sample can be derived based on the average or interpolation of neighboring reference samples of the current block, and (ii) the prediction sample can also be derived based on reference samples existing in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block.
- the case of (i) can be called a non-directional mode or a non-angular mode, and the case of (ii) can be called a directional mode or an angular mode.
- a prediction sample may be generated by interpolating a second surrounding sample and a first surrounding sample, which are located in the opposite direction of the prediction direction of the intra prediction mode of the current block based on the prediction sample of the current block among surrounding reference samples.
- This method may be referred to as linear interpolation intra prediction (LIP).
- a temporary prediction sample of the current block can be derived based on filtered peripheral reference samples, and a prediction sample of the current block can be derived by weighting at least one reference sample derived according to the intra prediction mode among existing peripheral reference samples, i.e., unfiltered peripheral reference samples, and the temporary prediction sample.
- This method can be called Position Dependent Intra Prediction (PDPC).
- intra prediction encoding can be performed by selecting a reference sample line with the highest prediction accuracy among the surrounding multiple reference sample lines of the current block, deriving a prediction sample using the reference sample located in the prediction direction of the selected line, and instructing (signaling) the reference sample line used at this time to a decoding device.
- This method may be called multi-reference line intra prediction (MRL) or MRL-based intra prediction.
- the value of the prediction sample can also be derived through interpolation of multiple reference samples located around the prediction direction (around the fractional sample location).
- the intra prediction methods described above may be referred to as intra prediction types to distinguish them from the normal intra prediction mode or regular intra prediction mode described above.
- the intra prediction type may be referred to by various terms such as intra prediction technique, intra prediction tool, or additional intra prediction mode.
- the intra prediction type (or additional intra prediction mode, etc.) may include at least one of the LIP, PDPC, MRL, and ISP described above.
- Information about the intra prediction type may be encoded in an encoding device and included in a bitstream to be signaled to a decoding device.
- information about the intra prediction type may be implemented in various forms such as flag information indicating whether each intra prediction type is applied or index information indicating one of multiple intra prediction types.
- the MPM list for deriving the intra prediction mode described above may be configured differently depending on the intra prediction type.
- the MPM list may be configured in a common manner regardless of the intra prediction type.
- Intra prediction fusion combines multiple predictors generated from different reference lines using a weighted averaging method to derive a predicted sample. In this process, multiple intra predictors are generated and then combined through weighted averaging. The process for deriving the predictors to be combined is as follows.
- the number of predictors used in the weighted average increases from 3 to 6.
- Intra prediction combination can be applied to luma blocks with a block size greater than 16 when the angular intra mode has a non-integer slope (i.e., reference sample interpolation is required). This method is used with Multiple Reference Lines (MRL) and is not applicable to blocks encoded with Intra Sub-Partitions (ISP). Predictor Dependent Prediction Combination (PDPC) can be applied for intra prediction modes that use the reference line closest to the current block.
- MRL Multiple Reference Lines
- ISP Intra Sub-Partitions
- PDPC Predictor Dependent Prediction Combination
- SGPM similar to Inter GPM, consists of one partition mode and two associated intra prediction modes. If these modes were directly signaled in the bitstream, significant overhead would be incurred.
- a candidate list is used, with only the candidate indices signaled in the bitstream. Each candidate in the list can derive a combination of one partition mode and two intra prediction modes.
- SGPM mode can be applied with limited block sizes as follows:
- SGPM can also be applied to blocks of sizes 4x8, 8x4, 4x16, and 16x4.
- the template size is set to 1. That is, the height of the top template part is 1, and the width of the left template part is 1.
- the possible combinations of one split mode and two intra prediction modes are sorted in ascending order based on the Sum of Absolute Differences (SAD) between the predicted value and the reconstructed value of the template.
- the weights within the template are set to 1 or 0 depending on the split mode.
- the length of the candidate combination list is set to 16.
- the TIMD-derived intra prediction modes (horizontal and vertical modes) are added to the IPM list and placed at the first position.
- the size of the IPM list is maintained at 3.
- Template-based Multiple Reference Line Intra Prediction (TMRL) mode combines reference lines and prediction modes and constructs a candidate combination list using a template matching method.
- An index into the candidate combination list is encoded to indicate which reference line and prediction mode are used when encoding the current block.
- MRL Multiple Reference Line
- TMRL mode extends the reference line candidate list and the intra prediction mode candidate list.
- the extended reference line candidate list consists of ⁇ 1, 3, 5, 7, 12 ⁇ .
- the constraint on the top CTU row remains unchanged.
- the size of the intra prediction mode candidate list is 10.
- the composition of the intra prediction mode candidate list is similar to the Most Probable Mode (MPM) method, with the following differences:
- angle modes with delta angles from ⁇ 1 to ⁇ 4 are added.
- the precision of angle prediction is expanded from 65 to 129. Furthermore, non-adjacent locations are also added as candidates when constructing the intra candidate list. If the surrounding or non-adjacent blocks are encoded in SGPM or GPM mode, the intra mode of the corresponding block is replaced with the partitioning angles.
- the TMRL candidates are composed as follows:
- ⁇ 10 50 combinations of extended reference lines and allowed intra prediction modes. Since the extended reference lines start from reference line 1, the area covered by reference line 0 is used for template matching. For each template region, the Sum of Absolute Differences (SAD) cost between the predicted and reconstructed values generated from the 50 combinations is calculated. The 20 combinations with the lowest SAD costs are selected in ascending order to form the TMRL candidate list.
- SAD Sum of Absolute Differences
- an index into a TMRL candidate list is encoded to indicate the combination of reference line and prediction mode used to encode the current block.
- the first 6, 10, or 12 horizontal positive intra prediction modes are tagged as “reserved”.
- a general MPM list consisting of 22 items is constructed. Then, the first six items of this general MPM list are included in the PMPM (Primary MPM) list, and the remaining items form the SMPM (Secondary MPM) list.
- the first item of the general MPM list is always the planar mode.
- the remaining items are composed of the intra mode and DIMD mode derived from adjacent blocks, the directional mode obtained by adding an offset to the first two available directional modes of the adjacent block, and the default modes.
- the first item in the general MPM list is always planner mode.
- the following items consist of intra-modes and DIMD modes of adjacent blocks, sorted in ascending order of SAD cost. Up to five modes with the lowest SAD cost are added. The SAD cost is calculated based on the difference between the template prediction and the reconstructed sample.
- Modes with offsets added to the directional modes sorted by SAD cost are added to the general MPM list, and then default modes are added, completing the general MPM list consisting of 22 items.
- intra prediction When intra prediction is performed on the current block, prediction for the luma component block (luma block) of the current block and prediction for the chroma component block (chroma block) can be performed, and in this case, the intra prediction mode for the chroma component (chroma block) can be set separately from the intra prediction mode for the luma component (luma block).
- an intra prediction mode for a chroma component may be indicated based on intra chroma prediction mode information, and the intra chroma prediction mode information may be signaled in the form of an intra_chroma_pred_mode syntax element.
- the intra chroma prediction mode information may indicate one of candidate modes including at least one of a planar mode, a DC mode, a vertical mode, a horizontal mode, a DM, an L_CCLM, a T_CCLM, and a LT_CCLM mode.
- DM may be referred to as a direct mode
- CCLM may be referred to as LM.
- DM and CCLM are dependent intra prediction modes that use information from a luma block to predict a chroma block.
- DM may represent a mode in which the same intra prediction mode for the luma component is applied as the intra prediction mode for the chroma component.
- CCLM may represent an intra prediction mode in which, in the process of generating a prediction block for a chroma block, reconstructed samples of the luma block are subsampled, and then the CCLM parameters ⁇ and ⁇ are applied to the subsampled samples to use the resulting samples as prediction samples for the chroma block.
- MDM Multiple Direct Modes
- Multiple Direct mode extends the existing single-mode DM mode to multiple modes. That is, when configuring the intra-prediction mode for a chrominance image, multiple DM modes are selected as follows:
- the CCLM mode may be applied to the current chroma block.
- the CCLM mode is an intra prediction mode that utilizes the correlation between a luma block and a chroma block corresponding to the luma block, and may represent a mode in which a linear model may be derived based on surrounding samples of the luma block and surrounding samples of the chroma block, and prediction samples of the chroma block may be derived based on the linear model and the reconstructed samples of the luma block.
- parameters for the linear model may be derived based on surrounding samples used for intra prediction of the current chroma block and surrounding samples used for intra prediction of the current luma block.
- the CCLM prediction mode is used, which predicts chroma samples based on reconstructed luma samples of the same CU using the following linear model:
- predc(i,j) may represent a prediction sample at the (i,j) coordinate of the current chroma block within the current CU
- recL'(i,j) may represent a reconstruction sample at the (i,j) coordinate of the current luma block within the CU
- recL'(i,j) may represent a down-sampled reconstruction sample of the current luma block.
- the CCLM parameters ( ⁇ and ⁇ ) are derived using up to four adjacent chroma samples and their corresponding downsampled luma samples. Assuming the current chroma block size is W ⁇ H, W′ and H′ are set as follows:
- the above template and left template described above can be used to compute linear model coefficients together, but can also be used individually in two other LM modes, LM_A mode and LM_L mode.
- LM_A mode only the upper template is used to compute the linear model coefficients. To obtain more samples, the upper template is extended to (W+H).
- LM_L mode only the left template is used to compute the linear model coefficients. To obtain more samples, the left template is extended to (H+W).
- the top template extends to W+W, and the left template extends to H+H.
- luma samples are subjected to two types of downsampling filters to achieve a 2:1 downsampling ratio in both the horizontal and vertical directions.
- the choice of downsampling filter is specified by a flag at the SPS level.
- the top reference line is located at the CTU boundary, only one luma line (the normal line buffer in intra prediction) is used to generate the downsampled luma samples.
- This parameter calculation is performed as part of the decoding process and is not handled by a simple encoder search operation. Consequently, no syntax is used to pass the values of ⁇ and ⁇ to the decoder.
- chroma intra-mode coding For chroma intra-mode coding, a total of eight intra-modes are allowed. These modes include five traditional intra-modes and three cross-component linear model modes (CCLM, LM_A, and LM_L). The signaling and derivation processes for the chroma modes are shown in Tables 1 and 2 below.
- Chroma mode encoding directly depends on the intra prediction mode of the corresponding luma block. Since I-slices allow separate block partitioning structures for luma and chroma components, a single chroma block can correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra prediction mode of the corresponding luma block, including the center position of the current chroma block, can be directly inherited.
- Table 6 described below shows a mapping table for deriving an intra chroma prediction mode when CCLM is not available
- Table 7 shows a mapping table for deriving an intra prediction mode when CCLM is available.
- the intra chroma prediction mode can be determined based on the intra luma prediction mode for a luma block covering the center lower right sample of the current block or chroma block (e.g., when DUAL_TREE is applied) and the value of the signaled intra chroma prediction mode (intra_chroma_pred_mode) information.
- the indices of IntraPredModeC[ xCb ][ yCb ] derived in the tables below can correspond to the indices of the intra prediction modes described above.
- Fig. 16 is a flowchart illustrating an example of a decoding method according to one embodiment.
- a decoding method can be performed by the decoding device (300) described above.
- descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the decoding method.
- Descriptions regarding the operation of the decoding device (300) described above and descriptions regarding the decoding method (e.g., FIGS. 4, 9, 12, 13, etc.) and descriptions regarding various prediction modes or prediction types can be equally applied to the embodiment of FIG. 16 as long as they do not conflict with each other.
- a decoding method includes a step of obtaining prediction mode information from a bitstream (S1600), a step of constructing an MPM list for a current block (S1610), a step of deriving an intra prediction mode for the current block based on at least one of the MPM list or the prediction mode information (S1620), and a step of generating a reconstructed block for the current block based on the derived intra prediction mode (S1630).
- the step of configuring the MPM list may include changing the order of the MPM list.
- the prediction mode information may indicate information regarding the prediction mode of the current block. If the current block is an intra block to which the intra mode is applied, the prediction mode information may be intra prediction mode information.
- the prediction mode information may include flag information (e.g., intra_luma_mpm_flag) indicating, for example, whether MPM or remaining mode is applied to the current block, and if MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates).
- the intra prediction mode candidates (MPM candidates) may be configured as an MPM list.
- the prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the MPM candidates.
- the decoding device (300) may determine the intra prediction mode of the current block based on the prediction mode information.
- the MPM list configured in step S1610 may include a Primary MPM list (PMPM list) or may include both a PMPM list and an SMPM candidate list (Secondary MPM list).
- PMPM list Primary MPM list
- SMPM candidate list Secondary MPM list
- the size of the PMPM list may be 6, including the planar mode
- the size of the SMPM list may be 16.
- the size of the MPM list including both the PMPM list and the SMPM list may be 22.
- the size of each list may be a value defined in advance between the encoding device (200) and the decoding device (300).
- FIG. 17 is a diagram showing an example of the order of surrounding intra prediction modes considered when constructing an MPM list in a decoding method according to one embodiment.
- an example of the MPM list configuration can be considered in the following order: planar mode ⁇ intra modes of adjacent blocks ⁇ DIMD modes ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from modes of the MPM list (+1, -1, +2, -2, ...), ⁇ default intra modes.
- the intra modes of adjacent blocks can be considered in the following order: left peripheral block intra mode ⁇ upper peripheral block intra mode ⁇ upper left peripheral block intra mode ⁇ upper right peripheral block intra mode ⁇ lower left peripheral block intra mode.
- Intra prediction modes can be added to the MPM list in the above order until the size n (n is a natural number) of the MPM list is filled.
- intra prediction modes can be added to the MPM list in the above order until the size n of the MPM list + the size m of the SMPM list (n and m are natural numbers) are filled. That is, a candidate list having a size of n+m can be constructed.
- n can be 6 and m can be 16, but the disclosed embodiment is not limited thereto, and may be any other value defined in advance between the encoding device (200) and the decoding device (300).
- the order of intra prediction modes considered when constructing the MPM list can be defined in advance between the encoding device (200) and the decoding device (300), and it is also possible to change the order to a different order than the above.
- the change in the order of the MPM list will be described in detail later.
- Figure 18 is a diagram showing an example of the locations of adjacent blocks considered when constructing an MPM list.
- the adjacent block may be a block at an adjacent position illustrated in FIG. 18.
- the intra mode of the adjacent block may refer to an intra mode of a block including a left position relative to the current block, an intra mode of a block including an upper position, an intra mode of a block including an upper-left position, an intra mode of a block including an upper-right position, and an intra mode of a block including a lower-left position.
- these positions are merely examples, and the adjacent positions may be defined differently depending on the definition between the encoding device (200) and the decoding device (300).
- the DIMD mode is considered when constructing the MPM list.
- the intra mode added to the MPM list may refer to an intra mode induced by DIMD. It may include only one induced intra mode or multiple induced intra modes.
- the encoding device (200) and the decoding device (300) may define the number in advance.
- the intra mode of non-adjacent blocks is considered when constructing the MPM list.
- the adjacent block may be a block at a non-adjacent position as illustrated in FIG. 18. That is, the intra mode of a non-adjacent block may refer to the intra mode of a block that is not adjacent to the current block, as illustrated in FIG. 18.
- the non-adjacent position may be defined according to an agreement between the encoding device (200) and the decoding device (300).
- the derived intra modes are considered when constructing the MPM list.
- the derived intra modes may refer to the peripheral modes of the intra modes included in the MPM list.
- the included intra modes are ⁇ a, b, c, ... ⁇
- the derived intra modes may be a-1, a+1, a-2, a+2, a-3, a+3, b-1, b+1, b-2, b+2, b-3, b+3, c-1, c+1, c-2, c+2, c-3, c+3, ...
- the derivation method, order, or range may be determined according to an agreement between the encoding device (200) and the decoding device (300).
- the intra modes may be filled with the default intra mode, as illustrated in FIG. 17 described above.
- the intra mode may include up to 87 encoding modes, including 20 wide angular modes and 65 general directional modes.
- the default intra mode can be DC_IDX, VER_IDX, HOR_IDX, VER_IDX - 4, VER_IDX + 4, HOR_IDX-4, HOR_IDX+4, VER_IDX - 8, VER_IDX + 8, HOR_IDX-8, HOR_IDX+8, VER_IDX - 12, VER_IDX + 12, HOR_IDX-12, HOR_IDX+12, 34, 66, 2, VER_IDX - 2, VER_IDX + 2, HOR_IDX-2.
- VER_IDX can mean a vertical direction mode (50)
- HOR_IDX can mean a horizontal direction mode (18)
- modes 34 and 66 can mean modes of directions mapped to each number. This is an example, and a default mode can be defined according to an agreement between the encoding device (200) and the decoding device (300).
- the MPM list is constructed using the intra mode of the adjacent DIMD block.
- the fact that the adjacent block is a DIMD block can indicate that DIMD has been applied to the adjacent block, i.e., that the adjacent block is coded with DIMD.
- Figure 19 is a diagram showing a template area used for intra mode derivation when DIMD is applied to adjacent blocks.
- the template area applied to derive the intra mode of the adjacent block is the area indicated as the Neighboring DIMD template area
- the template area used to apply DIMD to the current block is the area indicated as the current DIMD template area.
- the MPM list is constructed with the intra mode of the adjacent DIMD block
- the MPM list is constructed with a mode derived using a template area far from the current block, as illustrated in (a) of Fig. 19.
- a mode derived using a template area close to the current block may be more suitable for the current block.
- the adjacent block is not a DIMD block
- techniques that reorder based on error values in the template region, derive intra modes, or fuse multiple intra modes may have relatively low accuracy when applied to the current block.
- the DIMD of the current block may be more suitable than the intra mode of the adjacent block.
- the pre-determined list configuration order (illustrated in FIG. 17) can be changed when configuring the MPM list (S1610).
- FIG. 20 is a diagram illustrating an example of the configuration order of the changed MPM list according to one embodiment.
- the intra modes of the adjacent blocks excluding these can be considered in the next order of the planar mode, and then the DIMD mode can be considered first, and then the intra modes of the adjacent blocks coded with DIMD or TIMD can be considered.
- the order of the MPM list can be changed to planar mode ⁇ intra modes of the adjacent block (excluding the DIMD-coded adjacent block) ⁇ DIMD modes ⁇ intra mode of the DIMD-coded adjacent block ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- the order of construction of the MPM list can be changed to planar mode ⁇ intra modes of the adjacent block (excluding the adjacent block coded with TIMD) ⁇ DIMD modes ⁇ intra mode of the adjacent block coded with TIMD ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- multiple technologies may be considered together and changed.
- the order of construction of the MPM list may be changed to planar mode ⁇ intra modes of adjacent blocks (excluding adjacent blocks coded with DIMD and TIMD) ⁇ DIMD modes ⁇ intra modes of adjacent blocks coded with DIMD and TIMD ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- the order between them may be defined in advance between the encoding device (200) and the decoding device (300).
- search order when the search order is Left ⁇ Above ⁇ Above-Left ⁇ Above-Right ⁇ Left-Bottom, they may be added in the order of first appearance.
- a technology-specific priority can be established, with modes with higher priority being added first.
- TIMD may have a higher priority than DIMD.
- priorities can be set for each technology and the order of the MPM list can be changed according to the set priorities.
- weights indicating priorities for each technology can be set, such as setting the weight (w) of regular mode to 4, the weight (w) of TMRL to 3, the weight (w) of TIMD to 2, and the weight (w) of SGPM to 1, and the weights can be added to the MPM list in descending order of weights.
- the weights indicating priorities for each technology can be defined between the encoding device (200) and the decoding device (300). For example, blocks coded using blending or multiple intra modes (such as DIMD, TIMD, and SGPM) may exhibit poor accuracy in MPM and/or SMPM that only use a single intra mode. Therefore, the weights can be set low for these technologies.
- weights can be defined based on the selectivity of each technology. For example, assuming that DIMD has an average selectivity of 12%, TIMD 28%, TMRL 8%, and SGPM 7%, a mode with a high selectivity can be given a high weight based on this. In addition, these selectivities may vary from image to image, and may differ due to qp, etc. Accordingly, the encoding device (200) and the decoding device (300) can count the technologies selected for the current block and manage the selectivity in the form of a histogram, and set the weights based on this. The histogram can be initialized in units of specific units such as a picture, a slice, a CTU row, or a CTU.
- the order change can be defined in advance between the encoding device (200) and the decoding device (300) and applied only to some blocks.
- the order can be changed only for the intra modes of adjacent blocks, and the order can be as follows.
- Planner mode ⁇ Intra modes of adjacent blocks (where the order changes according to priority) ⁇ DIMD modes ⁇ Intra modes of non-adjacent surrounding blocks ⁇ Intra modes derived from modes in the MPM list (+1, -1, +2, -2, ...) ⁇ Can be changed to default intra modes.
- the order in which the MPM list is constructed can be changed by prioritizing each mode.
- mode 18 horizontal direction
- mode 50 vertical direction
- modes 2 to 17 can be given a weight of 2
- modes 51 to 66 can be given a weight of 1
- the modes can be added to the MPM list in descending order of weight.
- the weights for each mode can be defined by an agreement between the encoding device (200) and the decoding device (300).
- the weights can be defined based on the selectivity of each mode. For example, assuming that the DC mode, 50, 18, 46, 54, 14, 22, etc.
- the encoding device (200) and the decoding device (300) can count the intra modes selected for the current block and manage the selection rate in the form of a histogram, and set the weights based on this.
- the histogram can be initialized in units of specific units such as a picture, a slice, a CTU row, or a CTU.
- the order change can be applied only to some blocks by defining it in advance between the encoder and the decoder.
- the order can be changed only for the intra modes of adjacent blocks, and the order can be as follows.
- Planar mode ⁇ Intra modes of adjacent blocks (part where the order is changed according to priority) ⁇ DIMD modes ⁇ Intra modes of non-adjacent surrounding blocks ⁇ Intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ It can be changed to default intra modes.
- the partial MPM reordering may be considered first, and then the list order change may be performed.
- separate syntax information can be defined in high-level parameters such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and the order of the MPM list can be changed when the information has a specific value. For example, if the syntax value is 1, it can be determined that the order of the MPM list is changed. In this case, a syntax element indicating whether the order of the MPM list is changed can be included in the prediction mode information acquired from the bitstream.
- the reordering of the aforementioned MPM list may be applied in a limited manner depending on the size of the current block.
- K a reference value
- the reference value (K) may be 128, and may be set to a different value by being defined in advance by the encoding device (200) and the decoding device (300).
- the size of the current block may be given as a separate condition rather than a combined form of width and height.
- the list reordering may be applied when the conditions width ⁇ M and/or height ⁇ N are satisfied, or when the conditions width > M and/or height > N are satisfied. (M and N are natural numbers and may be the same or different.)
- techniques that derive and utilize intra modes using template area error values can construct lists by utilizing intra mode information of surrounding blocks, similar to constructing MPM lists.
- the above embodiments can also be applied to these techniques.
- Figure 21 is a flowchart illustrating an example of an encoding method according to one embodiment.
- An encoding method can be performed by the encoding device (200) described above.
- descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the encoding method.
- the descriptions regarding the operation of the encoding device (200) described above, the descriptions regarding the encoding method (e.g., the descriptions regarding FIGS. 5, 7, 11, etc.), and the descriptions regarding various prediction modes or prediction types can be equally applied to the example of FIG. 21 as long as they do not conflict with each other.
- an encoding method includes a step of configuring an MPM list (S1700), a step of determining an intra prediction mode for a current block (S1710), a step of generating residual information for the current block based on the determined intra prediction mode (S1720), and a step of encoding prediction mode information including information about the intra prediction mode and image information including the residual information (S1730).
- the step of configuring the MPM list may include changing the order of the MPM list.
- the description of the MPM list configuration in the embodiment of the decoding method described above can be equally applied to the MPM list configuration in the embodiment of the encoding method.
- the description of changing the order of the MPM list also applies equally.
- the MPM list configured in step S1700 may include a Primary MPM list (PMPM list) or may include both a PMPM list and an SMPM candidate list (Secondary MPM list).
- PMPM list Primary MPM list
- SMPM candidate list Secondary MPM list
- the size of the PMPM list may be 6, including the planar mode
- the size of the SMPM list may be 16.
- the size of the MPM list including both the PMPM list and the SMPM list may be 22.
- the size of each list may be a value defined in advance between the encoding device (200) and the decoding device (300).
- an example of the MPM list configuration can be considered in the following order: planar mode ⁇ intra modes of adjacent blocks ⁇ DIMD modes ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from modes of the MPM list (+1, -1, +2, -2, ...), ⁇ default intra modes.
- the intra modes of adjacent blocks can be considered in the following order: left peripheral block intra mode ⁇ upper peripheral block intra mode ⁇ upper left peripheral block intra mode ⁇ upper right peripheral block intra mode ⁇ lower left peripheral block intra mode.
- Intra prediction modes can be added to the MPM list in the above order until the size n (n is a natural number) of the MPM list is filled.
- intra prediction modes can be added to the MPM list in the above order until the size n of the MPM list + the size m of the SMPM list (n and m are natural numbers) are filled. That is, a candidate list having a size of n+m can be constructed.
- n can be 6 and m can be 16, but the disclosed embodiment is not limited thereto, and may be any other value defined in advance between the encoding device (200) and the decoding device (300).
- the order of intra prediction modes considered when constructing the MPM list can be defined in advance between the encoding device (200) and the decoding device (300), and it is also possible to change the order to a different order than the above.
- the change in the order of the MPM list will be described in detail later.
- the intra modes of adjacent blocks are considered.
- the adjacent block may be a block at an adjacent position as illustrated in FIG. 18 described above.
- the intra mode of the adjacent block may refer to an intra mode of a block including a left position relative to the current block, an intra mode of a block including an upper position, an intra mode of a block including an upper-left position, an intra mode of a block including an upper-right position, and an intra mode of a block including a lower-left position.
- these positions are merely examples, and the adjacent positions may be defined differently depending on the definition between the encoding device (200) and the decoding device (300).
- the DIMD mode is considered when constructing the MPM list.
- the intra mode added to the MPM list may refer to an intra mode induced by DIMD. It may include only one induced intra mode or multiple induced intra modes.
- the encoding device (200) and the decoding device (300) may define the number in advance.
- the intra mode of non-adjacent blocks is considered when constructing the MPM list.
- the adjacent block may be a block at a non-adjacent position as illustrated in FIG. 18 described above. That is, the intra mode of a non-adjacent block may refer to the intra mode of a block that is not adjacent to the current block, as illustrated in FIG. 18.
- the non-adjacent position may be defined according to an agreement between the encoding device (200) and the decoding device (300).
- the derived intra modes are considered when constructing the MPM list.
- the derived intra modes may refer to the peripheral modes of the intra modes included in the MPM list.
- the included intra modes are ⁇ a, b, c, ⁇
- the derived intra modes may be a-1, a+1, a-2, a+2, a-3, a+3, b-1, b+1, b-2, b+2, b-3, b+3, c-1, c+1, c-2, c+2, c-3, c+3, ...
- the derivation method, order, or range may be determined according to an agreement between the encoding device (200) and the decoding device (300).
- the intra modes may be filled with the default intra mode, as illustrated in FIG. 17 described above.
- the default intra mode may be DC_IDX, VER_IDX, HOR_IDX, VER_IDX - 4, VER_IDX + 4, HOR_IDX-4, HOR_IDX+4, VER_IDX - 8, VER_IDX + 8, HOR_IDX-8, HOR_IDX+8, VER_IDX - 12, VER_IDX + 12, HOR_IDX-12, HOR_IDX+12, 34, 66, 2, VER_IDX - 2, VER_IDX + 2, HOR_IDX-2.
- VER_IDX may refer to a vertical direction mode (50)
- HOR_IDX may refer to a horizontal direction mode (18)
- modes 34 and 66 may refer to modes of directions mapped to each number. This is an example, and a default mode may be defined according to an agreement between an encoding device (200) and a decoding device (300).
- the MPM list is constructed using the intra mode of the adjacent DIMD block.
- the fact that the adjacent block is a DIMD block can indicate that DIMD has been applied to the adjacent block, i.e., that the adjacent block is coded with DIMD.
- the template area applied to derive the intra mode of the adjacent block is the area indicated as the Neighboring DIMD template area
- the template area used to apply DIMD to the current block is the area indicated as the current DIMD template area.
- the MPM list is constructed with the intra mode of the adjacent DIMD block
- the MPM list is constructed with a mode derived using a template area far from the current block, as illustrated in (a) of FIG. 19.
- a mode derived using a template area close to the current block may be more suitable for the current block.
- the adjacent block is not a DIMD block
- techniques that reorder based on error values in the template region, derive intra modes, or fuse multiple intra modes may have relatively low accuracy when applied to the current block.
- the DIMD of the current block may be more suitable than the intra mode of the adjacent block.
- the predetermined list configuration order can be changed when configuring the MPM list (S1710).
- the intra modes of the adjacent blocks excluding these can be considered in the next order of the planar mode, and then the DIMD mode can be considered first, and then the intra modes of the adjacent blocks coded with DIMD or TIMD can be considered.
- the order of the MPM list can be changed to planar mode ⁇ intra modes of the adjacent block (excluding the DIMD-coded adjacent block) ⁇ DIMD modes ⁇ intra mode of the DIMD-coded adjacent block ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- the order of construction of the MPM list can be changed to planar mode ⁇ intra modes of the adjacent block (excluding the adjacent block coded with TIMD) ⁇ DIMD modes ⁇ intra mode of the adjacent block coded with TIMD ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- multiple technologies may be considered together and changed.
- the order of construction of the MPM list may be changed to planar mode ⁇ intra modes of adjacent blocks (excluding adjacent blocks coded with DIMD and TIMD) ⁇ DIMD modes ⁇ intra modes of adjacent blocks coded with DIMD and TIMD ⁇ intra modes of non-adjacent surrounding blocks ⁇ intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ default intra modes.
- the order between them may be defined in advance between the encoding device (200) and the decoding device (300).
- search order when the search order is Left ⁇ Above ⁇ Above-Left ⁇ Above-Right ⁇ Left-Bottom, they may be added in the order of first appearance.
- a technology-specific priority can be established, with modes with higher priority being added first.
- TIMD may have a higher priority than DIMD.
- priorities can be set for each technology and the order of the MPM list can be changed according to the set priorities.
- weights indicating priorities for each technology can be set, such as setting the weight (w) of regular mode to 4, the weight (w) of TMRL to 3, the weight (w) of TIMD to 2, and the weight (w) of SGPM to 1, and the weights can be added to the MPM list in descending order of weights.
- the weights indicating priorities for each technology can be defined between the encoding device (200) and the decoding device (300). For example, blocks coded using blending or multiple intra modes (such as DIMD, TIMD, and SGPM) may exhibit poor accuracy in MPM and/or SMPM that only use a single intra mode. Therefore, the weights can be set low for these technologies.
- weights can be defined based on the selectivity of each technology. For example, assuming that DIMD has an average selectivity of 12%, TIMD 28%, TMRL 8%, and SGPM 7%, a mode with a high selectivity can be given a high weight based on this. In addition, these selectivities may vary from image to image, and may differ due to qp, etc. Accordingly, the encoding device (200) and the decoding device (300) can count the technologies selected for the current block and manage the selectivity in the form of a histogram, and set the weights based on this. The histogram can be initialized in units of specific units such as a picture, a slice, a CTU row, or a CTU.
- the order change can be defined in advance between the encoding device (200) and the decoding device (300) and applied only to some blocks.
- the order can be changed only for the intra modes of adjacent blocks, and the order can be as follows.
- Planner mode ⁇ Intra modes of adjacent blocks (where the order changes according to priority) ⁇ DIMD modes ⁇ Intra modes of non-adjacent surrounding blocks ⁇ Intra modes derived from modes in the MPM list (+1, -1, +2, -2, ...) ⁇ Can be changed to default intra modes.
- the order in which the MPM list is constructed can be changed by prioritizing each mode.
- mode 18 horizontal direction
- mode 50 vertical direction
- modes 2 to 17 can be given a weight of 2
- modes 51 to 66 can be given a weight of 1
- the modes can be added to the MPM list in descending order of weight.
- the weights for each mode can be defined by an agreement between the encoding device (200) and the decoding device (300).
- the weights can be defined based on the selectivity of each mode. For example, assuming that the DC mode, 50, 18, 46, 54, 14, 22, etc.
- the encoding device (200) and the decoding device (300) can count the intra modes selected for the current block and manage the selection rate in the form of a histogram, and set the weights based on this.
- the histogram can be initialized in units of specific units such as a picture, a slice, a CTU row, or a CTU.
- the order change can be applied only to some blocks by defining it in advance between the encoder and the decoder.
- the order can be changed only for the intra modes of adjacent blocks, and the order can be as follows.
- Planar mode ⁇ Intra modes of adjacent blocks (part where the order is changed according to priority) ⁇ DIMD modes ⁇ Intra modes of non-adjacent surrounding blocks ⁇ Intra modes derived from the modes of the MPM list (+1, -1, +2, -2, ...) ⁇ It can be changed to default intra modes.
- the partial MPM reordering may be considered first, and then the list order change may be performed.
- a syntax element indicating whether the order of the MPM list is changed can be included in the prediction mode information encoded in step S1730.
- the reordering of the aforementioned MPM list may be applied in a limited manner depending on the size of the current block.
- K a reference value
- the reference value (K) may be 128, and may be set to a different value by being defined in advance by the encoding device (200) and the decoding device (300).
- the size of the current block may be given as a separate condition rather than a combined form of width and height.
- the list reordering may be applied when the conditions width ⁇ M and/or height ⁇ N are satisfied, or when the conditions width > M and/or height > N are satisfied. (M and N are natural numbers and may be the same or different.)
- techniques that derive and utilize intra modes using template area error values can construct lists by utilizing intra mode information of surrounding blocks, similar to constructing MPM lists.
- the above embodiments can also be applied to these techniques.
- FIG. 22 is a flowchart of another example of a decoding method according to one embodiment.
- a decoding method can be performed by the decoding device (300) described above.
- the description described below descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the decoding method.
- the descriptions regarding the operation of the decoding device (300) described above, the descriptions regarding the decoding method (e.g., FIGS. 4, 9, 12, 13, etc.), and the descriptions regarding various prediction modes or prediction types can be equally applied to the embodiment of FIG. 22 as long as they do not conflict with each other.
- a decoding method includes a step of obtaining prediction mode information from a bitstream (S1800), a step of constructing an MPM list for a current block (S1810), a step of deriving an intra prediction mode for the current block based on at least one of the MPM list or the prediction mode information (S1820), and a step of generating a reconstructed block for the current block based on the derived intra prediction mode (S1830).
- the step of constructing the MPM list may include performing template-based sorting on the MPM list.
- the prediction mode information may indicate information regarding the prediction mode of the current block. If the current block is an intra block to which the intra mode is applied, the prediction mode information may be intra prediction mode information.
- the prediction mode information may include flag information (e.g., intra_luma_mpm_flag) indicating, for example, whether MPM or remaining mode is applied to the current block, and if MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates).
- the intra prediction mode candidates (MPM candidates) may be configured as an MPM list.
- the prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the MPM candidates.
- the decoding device (300) may determine the intra prediction mode of the current block based on the prediction mode information.
- the description of the MPM list construction method described above may be applied equally to the step (S1810) of constructing the MPM list.
- the descriptions of FIGS. 17 and 18 described above may be applied equally to the present embodiment. To avoid duplication of explanation, the same description may be omitted herein.
- Fig. 23 is a flowchart showing an example of a process for constructing an MPM list in a decoding method according to one embodiment.
- the MPM list can be constructed by adding intra modes in the order shown until the size n (n is a natural number) of the MPM list is filled.
- intra modes can be added to the MPM list in the order shown in Fig. 23 until the size n of the MPM list + the size m of the SMPM list (m is a natural number) are filled. That is, a list having a size of n+m can be constructed, and the n in front can represent an MPM list and the m in the back can represent an SMPM list.
- the size of the MPM list can be 6 including the planar mode.
- the size of the SMPM list can be 16.
- the size of each list is not limited to the values exemplified above, and may be determined to a different value according to an agreement between the encoding device (200) and the decoding device (300).
- a process of sorting the list may be included in the construction of the MPM list.
- sorting the list may mean reordering the list. For example, for the intra modes included in the list, an error value between a predicted block predicted from the template region and an actual reconstructed sample may be calculated, and then the intra modes may be sorted in order of the smallest error value.
- SAD Sud of absolute difference
- SATD Sud of absolute transformed difference
- SSE Sud of squared error
- MR-SAD Magnetic-removed sum of absolute difference
- MR-SSE Magnetic-removed sum of squared error
- MR-SATD Magnetic-removed sum of absolute transformed difference
- K can be 128, and the encoding device (200) and the decoding device (300) can also define it in advance and set it to another value.
- the condition for the size of the current block is not limited to the above example, and it can be performed when the size of the current block is greater than K, or a separate condition can be applied to each, rather than a combined form of width and height, as a condition for determining the size of the current block.
- the planar mode can be excluded from the sorting candidates.
- the number of intra modes to be sorted can be limited so as not to exceed a specific number.
- it can be M excluding the planar mode.
- M can be 7.
- N of the M sorted intra modes can be used.
- N can be 5. That is, among the seven sorted intra modes, only the five intra modes with smaller error values can be used. Thereafter, a process for obtaining "derived intra modes" for the five modes can be performed.
- M and N can be defined in advance by the encoding device (200) and the decoding device (300), and can be specified as values other than 7 and 5. If the MPM list is not filled with enough intra modes and M is smaller than N, N can be the same value as M.
- the sorting result may not be accurate in some cases.
- Figure 24 is a diagram showing examples of cases that may occur when applying template-based sorting when constructing an MPM list.
- the template region for error calculation can be adaptively determined. For example, for the intra mode, which primarily uses reference samples located to the left of the current block, the error value can be calculated using only the left template region. Furthermore, for the intra mode, which primarily uses reference samples located above the current block, the error value can be calculated using only the upper template region.
- an intra mode that uses only the left template region may be modes 2 to 18.
- an intra mode that uses only the upper template region may be modes 50 to 66.
- Other intra modes may use both the left and upper template regions.
- this is only one example applicable to a decoding method according to one embodiment, and the range of the template region defined for each intra mode may be defined in advance as a different range by the encoding device (200) and the decoding device (300).
- the error value can be divided by the number of pixels in the template area used to calculate the error value in order to accurately compare the error value between intra modes. That is, the comparison can be made by the average of the error values, and when the error value of intra mode i is cost(i), the average of the error value of intra mode i is expressed as cost(i)/N or cost(i)>>k, so that the error values between different intra modes can be compared.
- N can mean the number of pixels in the template area
- the size of the template area determined here and the conditions for determining the size of the template area are only examples, and the encoding device (200) and the decoding device (300) may define in advance and determine other conditions and reference values.
- the size of the template area may be determined based on the length of the current block. For example, if the height of the current block is less than or equal to 16, the left template area may use (1 x the height of the current block), and if the height of the current block is greater than 16, the left template area may use (2 x the height of the current block).
- the upper template area which is determined according to the size of the width of the current block, may also be determined in the same manner as in the above example. For example, in the case of a 32x16 block, the left template area may have a size of 1x16, and the upper template area may have a size of 32x2.
- the conditions for the size of the template area determined here and the current block length that determines the template area size are merely examples, and the encoding device (200) and the decoding device (300) may define them in advance and determine them to different values.
- template-based sorting can be performed according to the method described above for small blocks, and the order change of the MPM list described above can be applied to other blocks.
- the template-based sorting method can be performed for blocks whose current block size is less than or equal to 128, and the order of the MPM list can be changed as in the example of Fig. 16 for blocks whose current block size is greater than 128.
- the block size and conditions for determining whether to apply template-based sorting or change the order of the MPM list can be configured in various combinations, and these can be defined in advance by the encoding device (200) and the decoding device (300).
- the order can be changed by prioritizing the modes based on the example of Fig. 16.
- the MPM list if there are not enough reference samples to generate a prediction block in the intra mode of the surrounding blocks, i.e., if some of the reference samples are not available, they may be added later rather than being added directly to the list. For example, they may be added before the derived intra mode.
- the above embodiments related to template-based alignment can be applied by taking into account the partial MPM reordering described above. That is, the partial MPM reordering may be considered first, and then the template-based alignment may be performed.
- separate syntax information may be defined in a high level parameter such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and the template-based list sorting may be performed when the information has a specific value. For example, if the syntax value is 1, it may be determined that the template-based list sorting is performed. In this case, a syntax element indicating whether the template-based list sorting is performed may be included in the prediction mode information acquired from the bitstream.
- techniques that derive and utilize intra-modes using template area error values can construct lists by utilizing intra-mode information from surrounding blocks, similar to constructing MPM and SMPM lists. These techniques can also be applied to the aforementioned template-based list sorting.
- Figure 25 is a flowchart illustrating an example of an encoding method according to one embodiment.
- An encoding method can be performed by the encoding device (200) described above.
- descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the encoding method.
- the descriptions regarding the operation of the encoding device (200) described above, the descriptions regarding the encoding method (e.g., the descriptions regarding FIGS. 5, 7, 11, etc.), and the descriptions regarding various prediction modes or prediction types can be equally applied to the example of FIG. 25 as long as they do not conflict with each other.
- an encoding method includes a step of configuring an MPM list (S1900), a step of determining an intra prediction mode for a current block (S1910), a step of generating residual information for the current block based on the determined intra prediction mode (S1920), and a step of encoding prediction mode information including information about the intra prediction mode and image information including the residual information (S1930).
- the step of constructing the MPM list may include performing template-based sorting on the MPM list.
- the description of the MPM list configuration in the embodiment of the decoding method described above can be equally applied to the MPM list configuration in the embodiment of the encoding method.
- the description of the sorting of the MPM list also applies equally.
- the template region for error calculation can be adaptively determined. For example, for an intra mode that primarily uses reference samples located to the left of the current block, the error value can be calculated using only the left template region. Furthermore, for an intra mode that primarily uses reference samples located above the current block, the error value can be calculated using only the upper template region.
- an intra mode that uses only the left template area may be modes 2 to 18.
- an intra mode that uses only the upper template area may be modes 50 to 66.
- Other intra modes may use both the left and upper template areas.
- this is only one example applicable to an encoding method according to one embodiment, and the range of the template area defined for each intra mode may be defined in advance as a different range by the encoding device (200) and the decoding device (300).
- the error value can be divided by the number of pixels in the template area used to calculate the error value in order to accurately compare the error value between intra modes. That is, the comparison can be made by the average of the error values, and when the error value of intra mode i is cost(i), the average of the error value of intra mode i is expressed as cost(i)/N or cost(i)>>k, so that the error values between different intra modes can be compared.
- N can mean the number of pixels in the template area
- the size of the template area determined here and the conditions for determining the size of the template area are only examples, and the encoding device (200) and the decoding device (300) may define in advance and determine other conditions and reference values.
- the size of the template area may be determined based on the length of the current block. For example, if the height of the current block is less than or equal to 16, the left template area may use (1 x the height of the current block), and if the height of the current block is greater than 16, the left template area may use (2 x the height of the current block).
- the upper template area which is determined according to the size of the width of the current block, may also be determined in the same manner as in the above example. For example, in the case of a 32x16 block, the left template area may have a size of 1x16, and the upper template area may have a size of 32x2.
- the conditions for the size of the template area determined here and the current block length that determine the template area size are merely examples, and the encoding device (200) and the decoding device (300) may define them in advance and determine them to different values.
- template-based sorting can be performed according to the method described above for small blocks, and the order change of the MPM list described above can be applied to other blocks.
- the template-based sorting method can be performed for blocks whose current block size is less than or equal to 128, and the order of the MPM list can be changed as in the example of FIG. 16 for blocks whose current block size is greater than 128.
- the block size and conditions for determining whether to apply template-based sorting or change the order of the MPM list can be configured in various combinations, and these can be defined in advance by the encoding device (200) and the decoding device (300).
- the order can be changed by prioritizing the modes based on the example of FIG. 21.
- the MPM list if there are not enough reference samples to generate a prediction block in the intra mode of the surrounding blocks, i.e., if some of the reference samples are not available, they may be added later rather than being added directly to the list. For example, they may be added before the derived intra mode.
- the above embodiments related to template-based alignment can be applied by taking into account the partial MPM reordering described above. That is, the partial MPM reordering may be considered first, and then the template-based alignment may be performed.
- separate syntax information may be defined in a high level parameter such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and the template-based list sorting may be performed when the information has a specific value. For example, if the syntax value is 1, it may be determined that the template-based list sorting is performed. In this case, a syntax element indicating whether the template-based list sorting is performed may be included in the prediction mode information encoded in step S1930.
- techniques that derive and utilize intra-modes using template area error values can construct lists by utilizing intra-mode information from surrounding blocks, similar to constructing MPM and SMPM lists. These techniques can also be applied to the aforementioned template-based list sorting.
- FIG. 26 is a flowchart illustrating another example of a decoding method according to one embodiment.
- a decoding method can be performed by the decoding device (300) described above.
- the description described below descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the decoding method.
- the descriptions regarding the operation of the decoding device (300) described above, the descriptions regarding the decoding method (e.g., FIGS. 4, 9, 12, 13, etc.), and the descriptions regarding various prediction modes or prediction types can be equally applied to the embodiment of FIG. 26 as long as they do not conflict with each other.
- a decoding method includes a step of obtaining prediction mode information from a bitstream (S2000), a step of constructing an MPM list for a current block (S2010), a step of deriving an intra prediction mode for the current block based on at least one of the MPM list or the prediction mode information (S2020), and a step of generating a reconstructed block for the current block based on the derived intra prediction mode (S2030).
- the step of constructing the MPM list may include performing histogram-based sorting on the MPM list.
- the prediction mode information may indicate information regarding the prediction mode of the current block. If the current block is an intra block to which the intra mode is applied, the prediction mode information may be intra prediction mode information.
- the prediction mode information may include flag information (e.g., intra_luma_mpm_flag) indicating, for example, whether MPM or remaining mode is applied to the current block, and if MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) pointing to one of the intra prediction mode candidates (MPM candidates).
- the intra prediction mode candidates (MPM candidates) may be configured as an MPM list.
- the prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the MPM candidates.
- the decoding device (300) may determine the intra prediction mode of the current block based on the prediction mode information.
- the description of the MPM list construction method described above can be applied equally to the step (S2410) of constructing the MPM list.
- the descriptions of FIGS. 17 and 18 described above can be applied equally to the present embodiment. To avoid duplication of explanation, the same description may be omitted here.
- Fig. 27 is a diagram showing an example of a correlation between a current block and surrounding blocks
- Fig. 28 is a diagram showing an example of a histogram constructed by collecting intra mode information of surrounding blocks.
- the current block and surrounding blocks can be highly correlated. This is because when the image at the current block location has specific texture information (e.g., edges), surrounding blocks may also have the same or similar texture information. As illustrated in Figure 27, if a surrounding block is selected in mode 12, the current block is also likely to be selected in mode 12. Therefore, using information from surrounding blocks, the MPM list can be sorted in the order of the intra mode that best suits the current block.
- texture information e.g., edges
- the number of intra modes applied to the surrounding blocks of the current block can be accumulated to form a histogram as illustrated in Fig. 28.
- the number of intra modes applied to the surrounding blocks can be calculated by accumulating 1.
- the MPM list can be sorted in order of intra modes with high values. a can be any positive integer, for example, 1.
- Histogram[intra prediction mode] + a
- Figure 29 is a diagram showing an example of the correlation between the current block and surrounding blocks, and is a diagram showing an example of a case where the sizes of the surrounding blocks are different.
- the sizes of surrounding blocks can vary. As in the example of Figure 29, if the sizes of surrounding blocks are different, even though mode 12 is used in the widest area of the surrounding blocks, the number of modes 18 is greater, so the histogram cumulative value of mode 18 may be higher.
- a histogram can be constructed based on the sizes of the surrounding blocks of the current block. Specifically, the histogram can be constructed by accumulating the sizes (width * height), and the sizes of the surrounding blocks can be calculated by accumulating them in the intra mode of the surrounding blocks, as shown in Equation 7 below. Based on this, the MPM list can be sorted in order of the intra mode with the highest value.
- blocks coded using techniques such as DIMD, TIMD, and SGPM can store multiple intra modes because they are predicted using multiple intra modes.
- a histogram can be constructed based on the multiple stored intra prediction modes. For example, if neighboring blocks are in DIMD mode and five intra modes (mode 1 to mode 5) are used, the histogram can be accumulated as in Equation 8 or Equation 9 below. While DIMD is described as an example, the same method can be applied to other techniques that store multiple intra modes.
- the weights of each mode may differ when generating a prediction block.
- DIMD is described as an example, the same method can be applied to other technologies in which multiple intra modes are stored.
- the number of neighboring blocks used for histogram accumulation can be at most P.
- P can be, for example, 20.
- the neighboring blocks used for histogram accumulation can be both adjacent blocks and non-adjacent blocks.
- the positions of the neighboring blocks can be defined by an agreement between the encoding device (200) and the decoding device (300).
- the neighboring blocks used for histogram accumulation can be determined in order of proximity to the current block. For example, if P neighboring blocks are found, but a neighboring block closer to the current block exists during an additional search, that block can be included in the P blocks instead of the existing block with a longer distance.
- FIG. 30 is a diagram showing an example of a range of surrounding blocks set for histogram configuration in a decoding method according to one embodiment.
- the search for neighboring blocks may be limited to a set range from the current block.
- the search for neighboring blocks may be limited to a range where the sum of the x distance and the y distance from the upper left position of the current block is less than 64.
- this is just one example, and other values may be determined by defining them in advance between the encoding device (200) and the decoding device (300).
- the histogram-based MPM list sorting method described above can also be combined with the template-based MPM list sorting method described in FIG. 22.
- the MPM list can be sorted based on the histogram or based on the template.
- the template-based MPM list sorting described in FIG. 22 can be performed for small blocks for which the template-based sorting is relatively accurate, and the histogram-based MPM list sorting described in FIG. 26 can be applied to other blocks.
- the MPM list can be sorted based on the template based on whether the size of the current block is less than or equal to a reference size, and the MPM list can be sorted based on the histogram based on whether the size of the current block exceeds the reference size.
- the template-based MPM list sorting can be performed for blocks whose current block size is less than or equal to 128, and the histogram-based MPM list sorting can be performed for blocks whose current block size is greater than 128.
- the MPM list may be sorted based on the histogram, or a template-based candidate prediction mode (e.g., DIMD or TIMD) among the candidate prediction modes included in the MPM list may be changed to a lower priority.
- a template-based candidate prediction mode e.g., DIMD or TIMD
- the histogram-based sorting may be performed for small blocks, and the MPM list ordering method described in FIG. 16 may be performed for other blocks.
- the MPM list may be sorted based on the histogram based on whether the size of the current block is smaller than or equal to a reference size, and a template-based candidate prediction mode (e.g., DIMD or TIMD) among the candidate prediction modes included in the MPM list may be changed to a lower priority based on whether the size of the current block exceeds the reference size.
- a template-based candidate prediction mode e.g., DIMD or TIMD
- the modes can be reordered by prioritizing them based on the reordering criteria described in Fig. 16. For example, if an adjacent block is a block coded with DIMD, the intra modes of the adjacent block can be reordered to a lower priority.
- the MPM list can be configured by combining various methods such as changing the order of the MPM list, template-based MPM list sorting, and histogram-based MPM list sorting.
- the MPM list sorting can be applied by taking into account the partial MPM reordering described above. That is, the partial MPM reordering may be considered first, and then the MPM list sorting may be performed.
- Whether to sort the MPM list based on histogram can be determined by defining separate syntax information in high-level parameters such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and histogram-based MPM list sorting can be applied when the information has a specific value. For example, if the value of the syntax is 1, it can be determined to perform histogram-based MPM list sorting. In this case, a syntax element indicating whether to sort the MPM list based on histogram can be included in the prediction mode information acquired from the bitstream.
- techniques for deriving and utilizing intra modes using error values for template regions can construct lists by utilizing intra mode information of surrounding blocks, similar to constructing MPM and SMPM lists.
- the above embodiments can also be applied to these techniques.
- FIG. 31 is a flowchart illustrating another example of an encoding method according to one embodiment.
- An encoding method can be performed by the encoding device (200) described above.
- descriptions are made focusing on contents not described above to avoid redundant descriptions, and the description described below does not solely support the embodiment of the encoding method.
- the descriptions regarding the operation of the encoding device (200) described above, the descriptions regarding the encoding method (e.g., the descriptions regarding FIGS. 5, 7, 11, etc.), and the descriptions regarding various prediction modes or prediction types can be equally applied to the example of FIG. 31 as long as they do not conflict with each other.
- an encoding method includes a step of configuring an MPM list (S2100), a step of determining an intra prediction mode for a current block (S2110), a step of generating residual information for the current block based on the determined intra prediction mode (S2120), and a step of encoding prediction mode information including information about the intra prediction mode and image information including the residual information (S2130).
- the step of constructing the MPM list may include performing histogram-based sorting on the MPM list.
- the description of the MPM list configuration in the embodiment of the decoding method described above can be equally applied to the MPM list configuration in the embodiment of the encoding method.
- the description of the sorting of the MPM list also applies equally.
- the number of intra modes applied to the surrounding blocks of the current block can be accumulated to form a histogram as illustrated in FIG. 28 described above.
- the number of intra modes applied to the surrounding blocks can be calculated to accumulate 1.
- the MPM list can be sorted in order of intra modes with high values. a is any positive integer, for example, 1.
- Histogram[intra prediction mode] + a
- the sizes of surrounding blocks may vary.
- the sizes of surrounding blocks are different, as in the example of FIG. 29 described above, even though mode 12 is used in the widest area of the surrounding blocks, the number of modes 18 may be greater, resulting in a higher cumulative histogram value for mode 18.
- a histogram can be constructed based on the sizes of the surrounding blocks of the current block. Specifically, the histogram can be constructed by accumulating the sizes (width * height), and the sizes of the surrounding blocks can be calculated by accumulating them in the intra mode of the surrounding blocks, as shown in Equation 13 below. Based on this, the MPM list can be sorted in order of the intra mode with the highest value.
- blocks coded using techniques such as DIMD, TIMD, and SGPM can store multiple intra modes because they are predicted using multiple intra modes.
- a histogram can be constructed based on the multiple stored intra prediction modes. For example, if neighboring blocks are in DIMD mode and five intra modes (mode 1 to mode 5) are used, the histogram can be accumulated as in Equation 14 or Equation 15 below. While DIMD is described as an example, the same method can be applied to other techniques that store multiple intra modes.
- the weights of each mode may differ when generating a prediction block.
- DIMD is described as an example, the same method can be applied to other technologies in which multiple intra modes are stored.
- the number of neighboring blocks used for histogram accumulation can be at most P.
- P can be, for example, 20.
- the neighboring blocks used for histogram accumulation can be both adjacent blocks and non-adjacent blocks.
- the positions of the neighboring blocks can be defined by an agreement between the encoding device (200) and the decoding device (300).
- the neighboring blocks used for histogram accumulation can be determined in order of proximity to the current block. For example, if P neighboring blocks are found, but a neighboring block closer to the current block exists during an additional search, that block can be included in the P blocks instead of the existing block with a longer distance.
- the search for neighboring blocks may be limited to a set range from the current block.
- the search for neighboring blocks may be limited to a range where the sum of the x distance and the y distance from the upper left position of the current block is less than 64.
- this is just one example, and other values may be determined by defining them in advance between the encoding device (200) and the decoding device (300).
- the histogram-based MPM list sorting method described above can also be combined with the template-based MPM list sorting method described in FIG. 25.
- the MPM list can be sorted based on the histogram, or based on the template.
- the template-based MPM list sorting described in FIG. 25 can be performed for small blocks for which the template-based sorting is relatively accurate, and the histogram-based MPM list sorting described in FIG. 31 can be applied to other blocks.
- the MPM list can be sorted based on the template based on whether the size of the current block is less than or equal to a reference size, and the MPM list can be sorted based on the histogram based on whether the size of the current block exceeds the reference size.
- the template-based MPM list sorting can be performed for blocks whose current block size is less than or equal to 128, and the histogram-based MPM list sorting can be performed for blocks whose current block size is greater than 128.
- the MPM list may be sorted based on the histogram, or a template-based candidate prediction mode (e.g., DIMD or TIMD) among the candidate prediction modes included in the MPM list may be changed to a lower priority.
- a template-based candidate prediction mode e.g., DIMD or TIMD
- the histogram-based sorting may be performed for small blocks, and the MPM list ordering method described in FIG. 21 may be performed for other blocks.
- the MPM list may be sorted based on the histogram based on whether the size of the current block is smaller than or equal to a reference size, and a template-based candidate prediction mode (e.g., DIMD or TIMD) among the candidate prediction modes included in the MPM list may be changed to a lower priority based on whether the size of the current block exceeds the reference size.
- a template-based candidate prediction mode e.g., DIMD or TIMD
- the modes can be reordered by prioritizing them based on the reordering criteria described in Fig. 21. For example, if an adjacent block is a block coded with DIMD, the intra modes of the adjacent block can be reordered to a lower priority.
- the MPM list can be configured by combining various methods such as changing the order of the MPM list, template-based MPM list sorting, and histogram-based MPM list sorting.
- the MPM list sorting can be applied by taking into account the partial MPM reordering described above. That is, the partial MPM reordering may be considered first, and then the MPM list sorting may be performed.
- Whether to perform histogram-based MPM list sorting can be determined by defining separate syntax information in high-level parameters such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and histogram-based MPM list sorting can be applied when the information has a specific value. For example, if the value of the syntax is 1, it can be determined to perform histogram-based MPM list sorting. In this case, a syntax element indicating whether to perform histogram-based list sorting can be included in the prediction mode information encoded in step S2130.
- techniques for deriving and utilizing intra modes using error values for template regions can construct lists by utilizing intra mode information of surrounding blocks, similar to constructing MPM and SMPM lists.
- the above embodiments can also be applied to these techniques.
- a computer-readable storage medium storing a bitstream generated by the encoding method described above may also be included in the scope of the disclosed embodiment.
- a method for transmitting a bitstream generated by the encoding method described above may also be included in the scope of the disclosed embodiment, and a transmission device for implementing such a transmission method may include at least one processor for generating a bitstream by the encoding method and a transmitter for transmitting the generated bitstream.
- FIG. 32 is a diagram illustrating an example of a content streaming system to which the disclosed embodiment can be applied.
- a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server.
- multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams
- the encoding server may be omitted.
- the above bitstream can be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.
- the streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services.
- the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user.
- the content streaming system may include a separate control server, in which case the control server controls commands/responses between each device within the content streaming system.
- the streaming server can receive content from a media repository and/or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
- Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.
- PDAs personal digital assistants
- PMPs portable multimedia players
- navigation devices slate PCs
- tablet PCs tablet PCs
- ultrabooks ultrabooks
- wearable devices e.g., smartwatches, smart glasses, HMDs
- digital TVs desktop computers, digital signage, etc.
- Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.
- Embodiments according to the present disclosure can be used to encode/decode images.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
일 실시예에 따른 방법은, 비트스트림으로부터 예측 모드 정보를 획득하는 단계; 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 상기 현재 블록에 대한 인트라 예측 모드를 유도하는 단계; 및 상기 유도된 인트라 예측 모드에 기반하여 상기 현재 블록에 대한 복원 블록을 생성하는 단계;를 포함하고, 상기 MPM 리스트를 구성하는 단계는, 상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함한다.
Description
본 개시는 영상 정보를 인코딩/디코딩하는 방법과, 비트스트림을 저장하는 컴퓨터 판독 가능한 저장 매체 및 비트스트림의 전송 방법에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있고, 이에 따라 고효율의 영상 압축 기술들이 논의되고 있다.
영상 압축 기술로 현재 픽처의 이전 또는 이후 픽처로부터 현재 픽처에 포함된 화소값을 예측하는 인터 예측 기술, 현재 픽처 내의 화소 정보를 이용하여 현재 픽처에 포함된 화소값을 예측하는 인트라 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위한 고효율의 영상 압축 기술이 요구된다.
본 개시는, 정지 영상 또는 동영상에 대해 화면 내 부호화/복호화를 수행하기 위해 MPM 리스트를 구성함에 있어서, 주변 정보를 활용하여 더 정확한 리스트를 구성함으로써 코딩 효율을 향상시킬 수 있는 방법, 비트스트림이 저장된 컴퓨터 판독 가능한 기록 매체 및 전송 방법을 제공한다.
일 실시예에 따른 방법은, 비트스트림으로부터 예측 모드 정보를 획득하는 단계; 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 상기 현재 블록에 대한 인트라 예측 모드를 유도하는 단계; 및 상기 유도된 인트라 예측 모드에 기반하여 상기 현재 블록에 대한 복원 블록을 생성하는 단계;를 포함하고, 상기 MPM 리스트를 구성하는 단계는, 상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함한다.
일 실시예에 따른 방법은, 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계; 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계;를 포함하고, 상기 MPM 리스트를 구성하는 단계는, 상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함한다.
일 실시예에 따른 인코딩 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 인코딩 방법은, 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계; 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계;를 포함하고, 상기 MPM 리스트를 구성하는 단계는, 상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함한다.
일 실시예에 따른 영상에 대한 데이터의 전송 방법은 상기 영상에 대한 비트스트림을 생성하되, 상기 비트스트림은, 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계; 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계에 기반하여 생성되는 단계; 및 상기 비트스트림을 포함하는 상기 데이터를 전송하는 단계;를 포함하고, 상기 MPM 리스트를 구성하는 단계는, 상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함한다.
개시된 실시예에 따르면, 정지 영상 또는 동영상에 대해 화면 내 부호화/복호화를 수행하기 위해 MPM 리스트를 구성함에 있어서, 주변 정보를 활용하여 더 정확한 리스트를 구성함으로써 코딩 효율을 향상시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 비디오/영상 코딩 시스템을 도시한 것이다.
도 2는 개시된 실시예가 적용될 수 있고, 비디오/영상 신호의 인코딩이 수행되는 인코딩 장치의 개략적인 블록도를 나타낸다.
도 3은 개시된 실시예가 적용될 수 있고, 비디오/영상 신호의 디코딩이 수행되는 디코딩 장치의 개략적인 블록도를 나타낸다.
도 4는 개시된 실시예가 적용될 수 있는 비디오/영상 디코딩 방법의 예를 나타낸다.
도 5는 개시된 실시예가 적용될 수 있는 비디오/영상 인코딩 방법의 예를 나타낸다.
도 6은 일 실시예에 따라 코딩된 영상에 대한 계층 구조를 예시적으로 나타낸다.
도 7은 일 실시예에 따른 인코딩 방법에 있어서, 인트차 예측을 기반으로 영상을 인코딩하는 방법을 나타내는 순서도이다.
도 8은 도 7의 방법을 수행하는데 사용되는 인코딩 장치의 구성을 나타내는 도면이다.
도 9는 일 실시예에 따른 디코딩 방법에 있어서, 인트차 예측을 기반으로 영상을 디코딩하는 방법을 나타내는 순서도이다.
도 10은 도 9의 방법을 수행하는데 사용되는 디코딩 장치의 구성을 나타내는 도면이다.
도 11은 일 실시예에 따른 인코딩 방법에서 인트라 예측 모드에 대한 정보를 시그널링하는 방법의 예시를 나타낸 순서도이다.
도 12는 일 실시예에 따른 디코딩 방법에 있어서, 인트라 예측 모드를 도출하는 방법의 예시를 나타낸 순서도이다.
도 13은 일 실시예에 따른 디코딩 방법에 있어서, 인트라 예측 모드를 도출하는 방법의 예시를 더 구체적으로 나타내는 순서도이다.
도 14는 매트릭스 기반 인트라 예측(MIP) 과정을 개략적으로 나타낸 도면이다.
도 15는 DIMD 모드에서 사용되는 HoG의 구성 방법을 나타내는 도면이다.
도 16은 일 실시예에 따른 디코딩 방법의 일 예시를 나타내는 순서도이다.
도 17은 일 실시예에 따른 디코딩 방법에 있어서, MPM 리스트의 구성 시에 고려되는 주변 인트라 예측 모드들의 순서의 예시를 나타낸 도면이다.
도 18은 MPM 리스트를 구성할 때 고려되는 인접 블록의 위치의 예시를 나타내는 도면이다.
도 19는 인접 블록에 DIMD가 적용된 경우 인트라 모드 유도에 사용되는 템플릿 영역을 나타내는 도면이다.
도 20은 일 실시예에 따라 변경된 MPM 리스트의 구성 순서의 예시를 나타낸 도면이다.
도 21은 일 실시예에 따른 인코딩 방법의 일 예시를 나타내는 순서도이다.
도 22는 일 실시예에 따른 디코딩 방법의 다른 예시에 관한 순서도이다.
도 23은 일 실시예에 따른 디코딩 방법에 있어서, MPM 리스트를 구성하는 과정의 예시를 나타낸 순서도이다.
도 24는 MPM 리스트의 구성 시에 템플릿 기반 정렬을 적용할 때 발생할 수 있는 경우들의 예시를 나타낸 도면이다.
도 25는 일 실시예에 따른 인코딩 방법의 다른 예시를 나타내는 순서도이다.
도 26은 일 실시예에 따른 디코딩 방법의 또 다른 예시에 관한 순서도이다.
도 27은 현재 블록과 주변 블록 사이의 상관성의 예시를 나타내는 도면이다.
도 28은 주변 블록의 인트라 모드 정보들을 수집하여 구성된 히스토그램의 예시를 나타낸 도면이다.
도 29는 현재 블록과 주변 블록 사이의 상관성의 예시를 나타내는 도면으로서, 주변 블록들의 크기가 상이한 경우의 예시를 나타낸 도면이다.
도 30은 일 실시예에 따른 디코딩 방법에 있어서 히스토그램 구성을 위해 설정되는 주변 블록의 범위의 예시를 나타내는 도면이다.
도 31는 일 실시예에 따른 인코딩 방법의 또 다른 예시를 나타내는 순서도이다.
도 32는 개시된 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시적으로 나타낸 도면이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 설명하는 순서도는 설명의 편의를 위해 동작들을 순서대로 나타낸 것일뿐, 실시예가 순서도 상의 순서에 한정되는 것은 아니다. 개시된 동작들이 순서도 상의 순서와 다른 순서로 수행될 수도 있고, 일부 동작은 동시에 수행되는 것도 가능하다.
본 개시는 비디오/영상 코딩에 관한 것이다. 예를 들어, 본 명세서에서 개시된 방법/실시예는 VVC(versatile video coding) 표준에 개시되는 방법에 적용될 수 있다. 또한, 이 명세서에서 개시된 방법/실시예는 EVC(essential video coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/영상 코딩 표준(ex. H.267 or H.268 등)에 개시되는 방법에 적용될 수 있다.
이 명세서는 비디오/영상 코딩에 관한 다양한 실시예들을 제시하며, 다른 언급이 없는 한 상기 실시예들은 서로 조합되어 수행될 수도 있다.
이 명세서에서 비디오(video)는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)은 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 슬라이스/타일은 하나 이상의 CTU(coding tree unit)을 포함할 수 있다. 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 하나의 타일은 하나의 픽처의 특정 타일 열과 특정 타일 행 내에 있는 복수의 CTU들로 구성된 직사각형 영역이다. 타일 열은 픽처의 높이와 동일한 높이와 픽처 파라미터 세트의 신택스 요구에 의해 지정된 너비를 갖는 CTU들의 직사각형 영역이다. 타일 행은 픽처 파라미터 세트에 의해 지정된 높이와 픽처의 너비와 동일한 너비를 갖는 CTU들의 직사각형 영역이다. 하나의 타일 내에 CTU들은 CTU 래스터 스캔에 따라 연속적으로 배열되는 반면, 하나의 픽처 내 타일들은 타일의 래스터 스캔에 따라 연속적으로 배열될 수 있다. 하나의 슬라이스는 단일 NAL 유닛에 배타적으로 포함될 수 있는 픽처의 타일 내에서 정수 개수의 완전한 타일 또는 정수 개수의 연속적인 완전한 CTU 행을 포함할 수 있다. 한편, 하나의 픽처는 둘 이상의 서브픽처로 구분될 수 있다. 서브픽처는 픽처 내 하나 이상의 슬라이스들의 직사각형 영역일 수 있다.
화소, 픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 색차(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 하나의 유닛은 하나의 루마 블록 및 두개의 크로마(ex. cb, cr) 블록을 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
본 명세서에서 “A 또는 B(A or B)”는 “오직 A”, “오직 B” 또는 “A와 B 모두”를 의미할 수 있다. 달리 표현하면, 본 명세서에서 “A 또는 B(A or B)”는 “A 및/또는 B(A and/or B)”으로 해석될 수 있다. 예를 들어, 본 명세서에서 “A, B 또는 C(A, B or C)”는 “오직 A”, “오직 B”, “오직 C”, 또는 “A, B 및 C의 임의의 모든 조합(any combination of A, B and C)”를 의미할 수 있다.
본 명세서에서 사용되는 슬래쉬(/)나 쉼표(comma)는 “및/또는(and/or)”을 의미할 수 있다. 예를 들어, “A/B”는 “A 및/또는 B”를 의미할 수 있다. 이에 따라 “A/B”는 “오직 A”, “오직 B”, 또는 “A와 B 모두”를 의미할 수 있다. 예를 들어, “A, B, C”는 “A, B 또는 C”를 의미할 수 있다.
본 명세서에서 “적어도 하나의 A 및 B(at least one of A and B)”는, “오직 A”, “오직 B” 또는 “A와 B 모두”를 의미할 수 있다. 또한, 본 명세서에서 “적어도 하나의 A 또는 B(at least one of A or B)”나 “적어도 하나의 A 및/또는 B(at least one of A and/or B)”라는 표현은 “적어도 하나의 A 및 B(at least one of A and B)”와 동일하게 해석될 수 있다.
또한, 본 명세서에서 “적어도 하나의 A, B 및 C(at least one of A, B and C)”는, “오직 A”, “오직 B”, “오직 C”, 또는 “A, B 및 C의 임의의 모든 조합(any combination of A, B and C)”를 의미할 수 있다. 또한, “적어도 하나의 A, B 또는 C(at least one of A, B or C)”나 “적어도 하나의 A, B 및/또는 C(at least one of A, B and/or C)”는 “적어도 하나의 A, B 및 C(at least one of A, B and C)”를 의미할 수 있다.
또한, 본 명세서에서 사용되는 괄호는 “예를 들어(for example)”를 의미할 수 있다. 구체적으로, “예측(인트라 예측)”로 표시된 경우, “예측”의 일례로 “인트라 예측”이 제안된 것일 수 있다. 달리 표현하면 본 명세서의 “예측”은 “인트라 예측”으로 제한(limit)되지 않고, “인트라 예측”이 “예측”의 일례로 제안될 것일 수 있다. 또한, “예측(즉, 인트라 예측)”으로 표시된 경우에도, “예측”의 일례로 “인트라 예측”이 제안된 것일 수 있다.
본 명세서에서 하나의 도면 내에서 개별적으로 설명되는 기술적 특징은, 개별적으로 구현될 수도 있고, 동시에 구현될 수도 있다.
도 1은 일 실시예에 따른 비디오/영상 코딩 시스템을 도시한 것이다.
도 1을 참조하면, 비디오/영상 코딩 시스템은 제1 장치(소스 디바이스) 및 제2 장치(수신 디바이스)를 포함할 수 있다.
소스 디바이스는 인코딩된 비디오(video)/영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다. 상기 소스 디바이스는 비디오 소스, 인코딩 장치, 전송부를 포함할 수 있다. 상기 수신 디바이스는 수신부, 디코딩 장치 및 렌더러를 포함할 수 있다. 상기 인코딩 장치는 비디오/영상 인코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기는 인코딩 장치에 포함될 수 있다. 수신기는 디코딩 장치에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 저장 매체는 컴퓨터로 판독 가능한(computer-readable) 저장매체일 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부는 상기 비트스트림을 수신/추출하여 디코딩 장치로 전달할 수 있다.
디코딩 장치는 인코딩 장치의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
도 2는 개시된 실시예가 적용될 수 있고, 비디오/영상 신호의 인코딩이 수행되는 인코딩 장치의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 인코딩 장치(200)는 영상 분할부(image partitioner, 210), 예측부(predictor, 220), 레지듀얼 처리부(residual processor, 230), 엔트로피 인코딩부(entropy encoder, 240), 가산부(adder, 250), 필터링부(filter, 260) 및 메모리(memory, 270)를 포함하여 구성될 수 있다. 예측부(220)는 인터 예측부(221) 및 인트라 예측부(222)를 포함할 수 있다. 레지듀얼 처리부(230)는 변환부(transformer, 232), 양자화부(quantizer 233), 역양자화부(dequantizer 234), 역변환부(inverse transformer, 235)를 포함할 수 있다. 레지듀얼 처리부(230)은 감산부(subtractor, 231)를 더 포함할 수 있다. 가산부(250)는 복원부(reconstructor) 또는 복원 블록 생성부(recontructged block generator)로 불릴 수 있다. 상술한 영상 분할부(210), 예측부(220), 레지듀얼 처리부(230), 엔트로피 인코딩부(240), 가산부(250) 및 필터링부(260)는 실시예에 따라 하나 이상의 하드웨어 컴포넌트(예를 들어 인코딩 장치 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(270)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(270)을 내/외부 컴포넌트로 더 포함할 수도 있다.
영상 분할부(210)는 인코딩 장치(200)에 입력된 입력 영상(또는, 픽처, 프레임)를 하나 이상의 처리 유닛(Processing Unit:PU)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(Coding Unit: CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(Coding Tree Unit: CTU) 또는 최대 코딩 유닛(Largest Coding Unit: LCU)으로부터 QTBTTT (Quad-Tree Binary-Tree Ternary-Tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다.
예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조, 및/또는 터너리 구조를 기반으로 하위(deeper) 뎁스를 가진 복수의 코딩 유닛들로 분할될 수 있다. 이 경우, 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 구조가 나중에 적용될 수 있다. 또는, 바이너리 트리 구조가 쿼드 트리 구조보다 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 명세서에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 하위 뎁스의 코딩 유닛들로 분할되어, 최적의 크기를 가진 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서, 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다.
다른 예로, 상기 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우, 상기 예측 유닛 및 상기 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 색차(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)의 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(200)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(232)로 전송된다. 이 경우, 인코딩 장치(200) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(231)라고 불릴 수 있다.
예측부(220)는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측 블록(predicted block)을 생성할 수 있다. 예측부(220)는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부(220)는 각 예측 모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(222)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플, 즉 참조 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 현재 블록으로부터 일정 거리만큼 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 하나 이상의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는, DC 모드 또는 플래너 모드(Planar 모드) 중 적어도 하나를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 33개의 방향성 모드 또는 65개의 방향성 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 모드들이 사용될 수 있다. 인트라 예측부(222)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(221)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해, 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향 정보(L0 예측, L1 예측, Bi 예측 등)를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(221)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 유도하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어, 스킵 모드와 머지 모드의 경우에, 인터 예측부(221)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
예측부(220)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP) 모드라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드를 수행할 수도 있다. 상기 IBC 예측 모드는 예를 들어, SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나, 현재 픽처 내에서 참조 블록을 유도하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 명세서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 상기 예측부(220)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나, 레지듀얼 신호를 생성하기 위해 이용될 수 있다.
변환부(232)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때, 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀를 이용하여 예측 신호를 생성하고, 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(233)는 변환 계수들을 양자화하여 엔트로피 인코딩부(240)로 전송되고, 엔트로피 인코딩부(240)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(233)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다.
엔트로피 인코딩부(240)는 예를 들어, 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(240)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대, 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다.
인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한, 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 본 명세서에서 인코딩 장치에서 디코딩 장치로 전달/시그널링되는 정보 및/또는 신택스 요소들은 비디오/영상 정보에 포함될 수 있다. 상기 비디오/영상 정보는 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서, 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 일 예로, 저장매체는 비트스트림을 비일시적(non-statutory)으로 저장하는 매체일 수 있다.
엔트로피 인코딩부(240)로부터 출력된 신호를 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(200)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(240)에 포함될 수도 있다.
양자화부(233)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(234) 및 역변환부(235)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(250)는 복원된 레지듀얼 신호를 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(250)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다. 한편, 픽처 인코딩 및/또는 복원 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(260)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어, 필터링부(260)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(270), 구체적으로 메모리(270)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(260)은 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 필터링에 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(270)에 전송된 수정된 복원 픽처는 인터 예측부(221)에서 참조 픽처로 사용될 수 있다. 인코딩 장치는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(200)와 디코딩 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(270)의 DPB는 수정된 복원 픽처를 인터 예측부(221)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(270)는 현재 픽처 내 움직임 정보가 유도된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(221)에 전달할 수 있다. 메모리(270)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(222)에 전달할 수 있다.
인코딩 장치(200)에서 비트스트림의 형태로 출력되는 영상 정보는 전송부를 통해 디코딩 장치(300)로 전송될 수 있다.
도 3은 개시된 실시예가 적용될 수 있고, 비디오/영상 신호의 디코딩이 수행되는 디코딩 장치의 개략적인 블록도를 나타낸다.
인코딩 장치(200)로부터 비트스트림의 형태로 전송된 영상 정보는 디코딩 장치(300)에 의해 수신될 수 있다.
도 3을 참조하면, 디코딩 장치(300)는 엔트로피 디코딩부(entropy decoder, 310), 레지듀얼 처리부(residual processor, 320), 예측부(predictor, 330), 가산부(adder, 340), 필터링부(filter, 350) 및 메모리(memoery, 360)를 포함하여 구성될 수 있다. 예측부(330)는 인터 예측부(332) 및 인트라 예측부(331)를 포함할 수 있다. 레지듀얼 처리부(320)는 역양자화부(dequantizer, 321) 및 역변환부(inverse transformer, 321)를 포함할 수 있다.
상술한 엔트로피 디코딩부(310), 레지듀얼 처리부(320), 예측부(330), 가산부(340) 및 필터링부(350)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코딩 장치 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(360)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(360)를 내/외부 컴포넌트로 더 포함할 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(300)는 도 2의 인코딩 장치에서 비디오/영상 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(300)는 상기 비트스트림으로부터 획득한 블록 분할 관련 정보를 기반으로 유닛들/블록들을 유도할 수 있다. 디코딩 장치(300)는 인코딩 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서, 디코딩의 처리 유닛은 코딩 유닛일 수 있고, 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조에 따라서 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 분할된 것일 수 있다. 코딩 유닛으로부터 하나 이상의 변환 유닛이 유도될 수 있다. 그리고, 디코딩 장치(300)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(300)는 도 2의 인코딩 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(310)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(310)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 유도할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 디코딩 장치는 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 더 기반으로 픽처를 디코딩할 수 있다. 본 명세서에서 후술되는 시그널링/수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩되어 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 요소의 값, 레지듀얼에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(310)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(332) 및 인트라 예측부(331))로 제공되고, 엔트로피 디코딩부(310)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 레지듀얼 처리부(320)로 입력될 수 있다. 레지듀얼 처리부(320)는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플들, 레지듀얼 샘플 어레이)를 유도할 수 있다. 또한, 엔트로피 디코딩부(310)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(350)으로 제공될 수 있다. 한편, 인코딩 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(300)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(310)의 구성요소일 수도 있다.
한편, 본 명세서에 따른 디코딩 장치는 비디오/영상/픽처 디코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 정보 디코딩 장치(비디오/영상/픽처 정보 디코딩 장치) 및 샘플 디코딩 장치(비디오/영상/픽처 샘플 디코딩 장치)로 구분할 수도 있다. 상기 정보 디코딩 장치는 상기 엔트로피 디코딩부(310)를 포함할 수 있고, 상기 샘플 디코딩 장치는 상기 역양자화부(321), 역변환부(322), 가산부(340), 필터링부(350), 메모리(360), 인터 예측부(332) 및 인트라 예측부(331) 중 적어도 하나를 포함할 수 있다.
역양자화부(321)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(321)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우, 상기 재정렬은 인코딩 장치에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(321)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)를 획득할 수 있다.
역변환부(322)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부(320)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측 블록(predicted block)을 생성할 수 있다. 예측부(320)는 엔트로피 디코딩부(310)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
예측부(320)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부(320)는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP) 모드라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. IBC 예측 모드 또는 팔레트 모드는 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 유도하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 명세서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보가 상기 비디오/영상 정보에 포함되어 시그널링될 수 있다.
인트라 예측부(331)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 현재 블록으로부터 일정 거리만큼 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 하나 이상의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(331)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(332)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향 정보(L0 예측, L1 예측, Bi 예측 등)를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(332)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 유도할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측 모드를 지시하는 정보를 포함할 수 있다.
가산부(340)는 획득된 레지듀얼 신호를 예측부(인터 예측부(332) 및/또는 인트라 예측부(331) 포함)로부터 출력된 예측 신호(예측 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측 블록이 복원 블록으로 사용될 수 있다.
가산부(340)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 출력될 수도 있고 또는 다음 픽처의 인터 예측을 위하여 사용될 수도 있다. 한편, 픽처 디코딩 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(350)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(350)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(360), 구체적으로 메모리(360)의 DPB에 전송할 수 있다. 상기 다양한 필터링 방법은, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(360)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(332)에서 참조 픽처로 사용될 수 있다. 메모리(360)는 현재 픽처 내 움직임 정보가 유도된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(332)에 전달할 수 있다. 메모리(360)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(331)에 전달할 수 있다.
본 명세서에서, 인코딩 장치(200)의 필터링부(260), 인터 예측부(221) 및 인트라 예측부(222)에서 설명된 실시예들은 각각 디코딩 장치(300)의 필터링부(350), 인터 예측부(332) 및 인트라 예측부(331)에도 동일 또는 대응되도록 적용될 수 있다.
도 4는 개시된 실시예가 적용될 수 있는 비디오/영상 디코딩 방법의 예를 나타낸다.
영상/비디오 코딩에 있어서, 영상/비디오를 구성하는 픽처는 일련의 디코딩 순서(decoding order)에 따라 인코딩/디코딩될 수 있다. 디코딩된 픽처의 출력 순서(output order)에 해당하는 픽처 순서(picture order)는 디코딩 순서와 다르게 설정될 수 있으며, 이를 기반으로 인터 예측시 순방향 예측뿐 아니라 역방향 예측 또한 수행할 수 있다.
도 4에서 S400은 전술한 디코딩 장치(300)의 엔트로피 디코딩부(310)에서 수행될 수 있고, S410은 예측부(330)에서 수행될 수 있고, S420은 레지듀얼 처리부(320)에서 수행될 수 있고, S430은 가산부(340)에서 수행될 수 있고, S440은 필터링부(350)에서 수행될 수 있다. S400은 본 개시에 따른 디코딩 절차를 포함할 수 있고, S410은 본 개시에 따른 인터/인트라 예측 절차를 포함할 수 있고, S420은 본 개시에 따른 레지듀얼 처리 절차를 포함할 수 있고, S430은 본 개시에 따른 블록/픽처 복원 절차를 포함할 수 있고, S440은 본 개시에 따른 인루프 필터링 절차를 포함할 수 있다.
도 4를 참조하면, 디코딩 장치는 비트스트림으로부터 영상/비디오 정보를 획득하고(S400), 획득된 영상/비디오 정보에 기초하여 예측을 수행하고(S410), 레지듀얼 처리(S420), 양자화된 변환 계수에 대한 역양자화, 역변환)를 거쳐 픽처를 복원할 수 있다(S430).
상기 복원 절차를 통하여 생성된 복원 픽처에 대한 인루프 필터링 절차(S440)를 적용하여 수정된(modified) 복원 픽처가 생성될 수 있으며, 수정된 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 디코딩 장치의 버퍼 또는 메모리에 저장되어 다음 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 경우에 따라서 상기 인루프 필터링 절차는 생략될 수 있으며, 이 경우 상기 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 디코딩 장치의 버퍼 또는 메모리에 저장되어 이후 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다.
인루프 필터링 절차(S440)는 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및/또는 바이래터럴 필터(bi-lateral filter) 절차 등을 포함할 수 있고, 그 일부 또는 전부가 생략될 수도 있다. 또한, 상기 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및 바이래터럴 필터(bi-lateral filter) 절차들 중 하나 또는 일부가 순차적으로 적용될 수 있고, 또는 모두가 순차적으로 적용될 수도 있다. 예를 들어, 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 SAO 절차가 수행될 수 있다. 또는, 예를 들어 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 ALF 절차가 수행될 수 있다. 이는 인코딩 장치에서도 마찬가지로 수행될 수 있다.
도 5는 개시된 실시예가 적용될 수 있는 비디오/영상 인코딩 방법의 예를 나타낸다.
도 5에서 예측 단계(S500)는 전술한 인코딩 장치(200)의 예측부(220)에서 수행될 수 있고, 예측 결과에 기반한 레지듀얼 처리(S510)는 레지듀얼 처리부(230)에서 수행될 수 있고, 예측 정보 및 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계(S520)는 엔트로피 인코딩부(240)에서 수행될 수 있다. S500은 본 개시에 따른 인터/인트라 예측 절차를 포함할 수 있고, S510은 본 개시에 따른 레지듀얼 처리 절차를 포함할 수 있고, S520은 본 개시에 따른 인코딩 절차를 포함할 수 있다.
인코딩 절차는 픽처 복원을 위한 정보(e.g., 예측 정보, 레지듀얼 정보, 파티셔닝 정보 등)을 인코딩하여 비트스트림 형태로 출력하는 절차뿐 아니라, 현재 픽처에 대한 복원 픽처를 생성하는 절차 및 복원 픽처에 인루프 필터링을 적용하는 절차를 선택적으로 포함할 수도 있다.
인코딩 장치(200)는 역양자화부(234) 및 역변환부(235)를 통하여 양자화된 변환 계수로부터 (수정된) 레지듀얼 샘플들을 도출할 수 있으며, S500의 출력인 예측 샘플들과 (수정된) 레지듀얼 샘플들을 기반으로 복원 픽처를 생성할 수 있다. 이렇게 생성된 복원 픽처는 상술한 디코딩 장치(300)에서 생성한 복원 픽처와 동일할 수 있다. 복원 픽처에 대한 인루프 필터링 절차를 통하여 수정된 복원 픽처가 생성될 수 있으며, 이는 버퍼 또는 메모리에 저장될 수 있으며, 디코딩 장치에서의 경우와 마찬가지로, 이후 픽처의 인코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다.
상술한 바와 같이, 경우에 따라서 인루프 필터링 절차의 일부 또는 전부는 생략될 수도 있다. 인루프 필터링 절차가 수행되는 경우, (인루프) 필터링 관련 정보(파라미터)가 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있고, 디코딩 장치(300)는 필터링 관련 정보를 기반으로 인코딩 장치와 동일한 방법으로 인루프 필터링 절차를 수행할 수 있다.
이러한 인루프 필터링 절차를 통하여 블록킹 아티팩트(artifact) 및 링잉(ringing) 아티팩트 등 영상/동영상 코딩시 발생하는 노이즈를 줄일 수 있으며, 주관적/객관적 영상 품질을 높일 수 있다. 또한, 인코딩 장치(200)와 디코딩 장치(300)에서 모두 인루프 필터링 절차를 수행함으로서, 인코딩 장치(200)와 디코딩 장치(300)에서 동일한 예측 결과를 도출할 수 있으며, 픽처 코딩의 신뢰성을 높이고, 픽처 코딩을 위하여 전송되어야 하는 데이터량을 줄일 수 있다.
상술한 바와 같이 디코딩 장치(300) 뿐 아니라 인코딩 장치(200)에서도 픽처 복원 절차가 수행될 수 있다. 각 블록 단위로 인트라 예측/인터 예측에 기반하여 복원 블록이 생성될 수 있으며, 복원 블록들을 포함하는 복원 픽처가 생성될 수 있다. 현재 픽처/슬라이스/타일 그룹이 I 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측만을 기반으로 복원될 수 있다. 한편, 현재 픽처/슬라이스/타일 그룹이 P 또는 B 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측 또는 인터 예측을 기반으로 복원될 수 있다. 이 경우 현재 픽처/슬라이스/타일 그룹 내 일부 블록들에 대하여는 인터 예측이 적용되고, 나머지 일부 블록들에 대하여는 인트라 예측이 적용될 수도 있다.
픽처의 컬러 성분은 루마 성분 및 크로마 성분을 포함할 수 있으며, 본 개시에서 명시적으로 제한하지 않는 한 본 개시에 따른 실시예들은 루마 성분 및 크로마 성분에 적용될 수 있다.
도 6은 일 실시예에 따라 코딩된 영상에 대한 계층 구조를 예시적으로 나타낸다.
도 6을 참조하면, 코딩된 영상은 영상의 디코딩 처리 및 그 자체를 다루는 VCL(Video Coding Layer, 비디오 코딩 계층), 부호화된 정보를 전송하고 저장하는 하위 시스템, 그리고 VCL과 하위 시스템 사이에 존재하며 네트워크 적응 기능을 담당하는 NAL(Network Abstraction Layer, 네트워크 추상 계층)로 구분되어 있다.
VCL에서는 압축된 영상 데이터(슬라이스 데이터)를 포함하는 VCL 데이터를 생성하거나, 혹은 픽처 파라미터 세트(Picture Parameter Set: PPS), 시퀀스 파라미터 세트(Sequence Parameter Set: SPS), 비디오 파라미터 세트(Video Parameter Set: VPS) 등의 정보를 포함하는 파라미터 세트 또는 영상의 디코딩 과정에 부가적으로 필요한 SEI(Supplemental Enhancement Information) 메시지를 생성할 수 있다.
NAL에서는 VCL에서 생성된 RBSP(Raw Byte Sequence Payload)에 헤더 정보(NAL 유닛 헤더)를 부가하여 NAL 유닛을 생성할 수 있다. 이때, RBSP는 VCL에서 생성된 슬라이스 데이터, 파라미터 세트, SEI 메시지 등을 말한다. NAL 유닛 헤더에는 해당 NAL 유닛에 포함되는 RBSP 데이터에 따라 특정되는 NAL 유닛 타입 정보를 포함할 수 있다.
도 6에 도시된 바와 같이, NAL 유닛은 VCL에서 생성된 RBSP의 따라 VCL NAL 유닛과 Non-VCL NAL 유닛으로 구분될 수 있다. VCL NAL 유닛은 영상에 대한 정보(슬라이스 데이터)를 포함하고 있는 NAL 유닛을 의미할 수 있고, Non-VCL NAL 유닛은 영상을 디코딩하기 위하여 필요한 정보(파라미터 세트 또는 SEI 메시지)를 포함하고 있는 NAL 유닛을 의미할 수 있다.
상술한 VCL NAL 유닛, Non-VCL NAL 유닛은 하위 시스템의 데이터 규격에 따라 헤더 정보를 붙여서 네트워크를 통해 전송될 수 있다. 예컨대, NAL 유닛은 H.266/VVC 파일 포맷, RTP(Real-time Transport Protocol), TS(Transport Stream) 등과 같은 소정 규격의 데이터 형태로 변형되어 다양한 네트워크를 통해 전송될 수 있다.
상술한 바와 같이, NAL 유닛은 해당 NAL 유닛에 포함되는 RBSP 데이터 구조(structure)에 따라 NAL 유닛 타입이 특정될 수 있으며, 이러한 NAL 유닛 타입에 대한 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다.
예를 들어, NAL 유닛이 영상에 대한 정보(슬라이스 데이터)를 포함하는지 여부에 따라 크게 VCL NAL 유닛 타입과 Non-VCL NAL 유닛 타입으로 분류될 수 있다. VCL NAL 유닛 타입은 VCL NAL 유닛이 포함하는 픽처의 성질 및 종류 등에 따라 분류될 수 있으며, Non-VCL NAL 유닛 타입은 파라미터 세트의 종류 등에 따라 분류될 수 있다.
아래는 Non-VCL NAL 유닛 타입이 포함하는 파라미터 세트의 종류 등에 따라 특정된 NAL 유닛 타입의 일예이다.
- APS (Adaptation Parameter Set) NAL unit: APS를 포함하는 NAL 유닛에 대한 타입
- DPS(Decoding Parameter Set) NAL unit: DPS를 포함하는 NAL 유닛에 대한 타입
- VPS(Video Parameter Set) NAL unit: VPS를 포함하는 NAL 유닛에 대한 타입
- SPS(Sequence Parameter Set) NAL unit: SPS를 포함하는 NAL 유닛에 대한 타입
- PPS(Picture Parameter Set) NAL unit: PPS를 포함하는 NAL 유닛에 대한 타입
상술한 NAL 유닛 타입들은 NAL 유닛 타입을 위한 신택스 정보를 가지며, 상기 신택스 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다. 예컨대, 상기 신택스 정보는 nal_unit_type일 수 있으며, NAL 유닛 타입들은 nal_unit_type 값으로 특정될 수 있다.
슬라이스 헤더(슬라이스 헤더 신택스, 슬라이스 헤더 정보)는 상기 슬라이스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 APS(APS 신택스) 또는 PPS(PPS 신택스)는 하나 이상의 슬라이스 또는 픽처에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 SPS(SPS 신택스)는 하나 이상의 시퀀스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 VPS(VPS 신택스)는 다중 레이어에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 DPS(DPS 신택스)는 비디오 전반에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 DPS는 CVS(coded video sequence)의 concatenation에 관련된 정보/파라미터를 포함할 수 있다. 본 개시에서 상위 레벨 신택스(High Level Syntax, HLS)라 함은 상기 APS 신택스, PPS 신택스, SPS 신택스, VPS 신택스, DPS 신택스, 또는 슬라이스 헤더 신택스 중 적어도 하나를 포함할 수 있다.
본 개시에서 영상 인코딩 장치에서 부호화되어 비트스트림 형태로 시그널링되는 영상/비디오 정보는 픽처 내 파티셔닝 관련 정보, 인트라/인터 예측 정보, 레지듀얼 정보, 인루프 필터링 정보 등을 포함할 뿐 아니라, 상기 슬라이스 헤더에 포함된 정보, 상기 APS에 포함된 정보, 상기 PPS에 포함된 정보, 상기 SPS에 포함된 정보, 상기 VPS에 포함된 정보 및/또는 상기 DPS에 포함된 정보를 포함할 수 있다.
한편, 인코딩 장치(200)/디코딩 장치(300)의 예측부(220, 330)는 현재 블록의 주변 샘플들 중 현재 블록의 인트라 예측 모드에 따른 참조 샘플을 도출할 수 있고, 참조 샘플을 기반으로 현재 블록의 예측 샘플을 생성할 수 있다.인트라 예측은 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 참조 샘플들을 기반으로 현재 블록에 대한 예측 샘플들을 생성하는 예측을 나타낼 수 있다. 현재 블록에 인트라 예측이 적용되는 경우, 현재 블록의 인트라 예측에 사용할 주변 참조 샘플들이 도출될 수 있다. 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 좌측(left) 경계에 인접한 샘플 및 좌하측(bottom-left)에 이웃하는 총 2xnH 개의 샘플들, 현재 블록의 상측(top) 경계에 인접한 샘플 및 우상측(top-right)에 이웃하는 총 2xnW 개의 샘플들 및 현재 블록의 좌상측(top-left)에 이웃하는 1개의 샘플을 포함할 수 있다. 또는, 상기 현재 블록의 주변 참조 샘플들은 복수열의 상측 주변 샘플들 및 복수행의 좌측 주변 샘플들을 포함할 수도 있다. 또한, 상기 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 우측(right) 경계에 인접한 총 nH 개의 샘플들, 현재 블록의 하측(bottom) 경계에 인접한 총 nW 개의 샘플들 및 현재 블록의 우하측(bottom-right)에 이웃하는 1개의 샘플을 포함할 수도 있다.
다만, 현재 블록의 주변 참조 샘플들 중 일부는 아직 디코딩되지 않았거나, 이용 가능하지 않을 수 있다. 이 경우, 디코딩 장치(300)는 이용 가능한 샘플들로 이용 가능하지 않은 샘플들을 대체(substitution)하여 예측에 사용할 주변 참조 샘플들을 구성할 수 있다. 또는, 이용 가능한 샘플들의 보간(interpolation)을 통하여 예측에 사용할 주변 참조 샘플들을 구성할 수 있다.
주변 참조 샘플들이 도출된 경우, (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 상기 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다.
또한, 현재 블록의 인트라 예측 모드에 기반하여 생성되는 예측 샘플 값들을 선형 보간하여 현재 블록에 대하여 인트라 예측을 수행하는 선형 보간 인트라 예측(Linear interpolation intra prediction, LIP)이 적용될 수도 있다.
또한, 필터링된 주변 참조 샘플들을 기반으로 현재 블록의 임시 예측 샘플을 도출하고, 기존의 주변 참조 샘플들, 즉, 필터링되지 않은 주변 참조 샘플들 중 인트라 예측 모드에 따라 도출된 적어도 하나의 참조 샘플과 임시 예측 샘플을 가중합(weighted sum)하여 현재 블록의 예측 샘플을 도출할 수도 있다. 이러한 예측을 PDPC(Position Dependent intra Prediction Combination) 라고 지칭할 수 있다.
또한, 현재 블록의 주변 다중 참조 샘플 라인 중 가장 예측 정확도가 높은 참조 샘플 라인을 선택하여 해당 라인에서 예측 방향에 위치하는 참조 샘플을 이용하여 예측 샘플을 도출하고 이 때, 사용된 참조 샘플 라인을 디코딩 장치에 지시(시그널링)하는 방법으로 인트라 예측 부호화를 수행할 수 있다. 이러한 경우는 multi-reference line intra prediction (MRL) 또는 MRL 기반 인트라 예측이라고 지칭할 수 있다.
또한, 현재 블록을 수직 또는 수평의 서브파티션들로 나누어 동일한 인트라 예측 모드를 기반으로 인트라 예측을 수행하되, 상기 서브파티션 단위로 주변 참조 샘플들을 도출하여 이용할 수 있다. 즉, 이 경우 현재 블록에 대한 인트라 예측 모드가 상기 서브파티션들에 동일하게 적용되되, 서브파티션 단위로 주변 참조 샘플을 도출하여 이용함으로써 경우에 따라 인트라 예측 성능을 높일 수 있다. 이러한 예측 방법은 intra sub-partitions (ISP) 또는 ISP 기반 인트라 예측이라고 불릴 수 있다.
또한, 예측 샘플을 기준으로 한 예측 방향이 주변 참조 샘플들 사이를 가리키는 경우, 즉, 예측 방향이 분수 샘플 위치를 가리키는 경우, 해당 에측 방향 주변(해당 분수 샘플 위치 주변)에 위치한 복수의 참조 샘플들의 보간을 통하여 예측 샘플의 값을 도출할 수도 있다.
인트라 예측 모드에 관한 정보는 인코딩 장치(200)에서 인코딩되어 비트스트림에 포함되어 디코딩 장치(300)로 전송되는 예측에 관한 정보에 포함될 수 있다. 인트라 예측 모드에 관한 정보는 각 인트라 예측 모드의 적용 여부를 가리키는 플래그 정보 또는 여러 인트라 예측 모드 중 하나를 지시하는 인덱스 정보 등 다양한 형태로 구현되어 전송될 수 있다.
상술한 인트라 예측 방법들은 인트라 예측 모드와 구분하여 인트라 예측 타입이라고 불릴 수도 있다. 또한, 상기 인트라 예측 타입은 인트라 예측 기법, 인트라 예측 툴(tool) 또는 부가 인트라 예측 모드 등 다양한 용어로 불릴 수도 있다. 예를 들어, 상기 인트라 예측 타입(또는 부가 인트라 예측 모드 등)은 상술한 LIP, PDPC, MRL, ISP 중 적어도 하나를 포함할 수 있다. 상기 LIP, PDPC, MRL, ISP 등의 특정 인트라 예측 타입을 제외한 일반 인트라 예측 방법은 노멀 인트라 예측 타입이라고 불릴 수 있다. 노멀 인트라 예측 타입은 상기와 같은 특정 인트라 예측 타입이 적용되지 않는 경우 일반적으로 적용될 수 있으며, 상술한 인트라 예측 모드를 기반으로 예측이 수행될 수 있다. 한편, 필요에 따라서 도출된 예측 샘플에 대한 후처리 필터링이 수행될 수도 있다.
인트라 예측 절차는 인트라 예측 모드/타입 결정 단계, 주변 참조 샘플 도출 단계, 인트라 예측 모드/타입 기반 예측 샘플 도출 단계를 포함할 수 있다. 또한, 필요에 따라서 도출된 예측 샘플에 대한 후처리 필터링(post-filtering) 단계가 수행될 수도 있다. 이하, 구체적으로 설명한다.
도 7은 일 실시예에 따른 인코딩 방법에 있어서, 인트차 예측을 기반으로 영상을 인코딩하는 방법을 나타내는 순서도이고, 도 8은 도 7의 방법을 수행하는데 사용되는 인코딩 장치의 구성을 나타내는 도면이다.
도 7 및 도 8을 함께 참조하면, 단계 S1000은 인코딩 장치(200)의 인트라 예측부(222)에 의하여 수행될 수 있고, 단계 S1010은 인코딩 장치의 레지듀얼 처리부(230)에 의하여 수행될 수 있다. 구체적으로 단계 S1010은 인코딩 장치(200)의 감산부(115)에 의하여 수행될 수 있다. 단계 S1020에서 예측 정보는 인트라 예측부(222)에 의하여 도출되고, 엔트로피 인코딩부(240)에 의하여 인코딩될 수 있다. 단계 1020에서 레지듀얼 정보는 레지듀얼 처리부(230)에 의하여 도출되고, 엔트로피 인코딩부(240)에 의하여 인코딩될 수 있다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 관한 정보이다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 대한 양자화된 변환 계수들에 관한 정보를 포함할 수 있다. 상술한 바와 같이 상기 레지듀얼 샘플들은 인코딩 장치(200)의 변환부(232)를 통하여 변환 계수들로 도출되고, 상기 변환 계수들은 양자화부(233)를 통하여 양자화된 변환 계수들로 도출될 수 있다. 상기 양자화된 변환 계수들에 관한 정보가 레지듀얼 코딩 절차를 통하여 엔트로피 인코딩부(240)에서 인코딩될 수 있다.
인코딩 장치(200)는 현재 블록에 대한 인트라 예측을 수행할 수 있다(S1000). 인코딩 장치(200)는 현재 블록에 대한 인트라 예측 모드/타입을 도출하고, 현재 블록의 주변 참조 샘플들을 도출할 수 있고, 상기 인트라 예측 모드/타입 및 상기 주변 참조 샘플들을 기반으로 상기 현재 블록 내 예측 샘플들을 생성한다. 예측 샘플들이 예측 블록을 구성할 수 있다. 여기서 인트라 예측 모드/타입 결정, 주변 참조 샘플들 도출 및 예측 샘플들 생성 절차는 동시에 수행될 수도 있고, 어느 한 절차가 다른 절차보다 먼저 수행될 수도 있다. 예를 들어, 인코딩 장치(200)의 인트라 예측부(222)는 인트라 예측 모드/타입 결정부(222a), 참조 샘플 도출부(222b), 예측 샘플 도출부(222c)를 포함할 수 있다. 인트라 예측 모드/타입 결정부(222a)에서 상기 현재 블록에 대한 인트라 예측 모드/타입을 결정하고, 참조 샘플 도출부(222b)에서 상기 현재 블록의 주변 참조 샘플들을 도출하고, 예측 샘플 도출부(222c)에서 상기 현재 블록의 예측 샘플들을 도출할 수 있다. 한편, 비록 도시되지는 않았지만, 후술하는 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(222)는 예측 샘플 필터링부(미도시)를 더 포함할 수도 있다. 인코딩 장치(200)는 복수의 인트라 예측 모드/타입들 중 상기 현재 블록에 대하여 적용되는 모드/타입을 결정할 수 있다. 인코딩 장치(200)는 상기 인트라 예측 모드/타입들에 대한 RD cost를 비교하여 상기 현재 블록에 대한 최적의 인트라 예측 모드/타입을 결정할 수 있다.
한편, 인코딩 장치(200)는 예측 샘플 필터링 절차를 수행할 수도 있다. 예측 샘플 필터링은 포스트 필터링이라 불릴 수 있다. 상기 예측 샘플 필터링 절차에 의하여 상기 예측 샘플들 중 일부 또는 전부가 필터링될 수 있다. 경우에 따라 상기 예측 샘플 필터링 절차는 생략될 수 있다.
인코딩 장치(200)는 (필터링된) 예측 샘플들을 기반으로 상기 현재 블록에 대한 레지듀얼 처리를 수행한다(S1010). 구체적으로, 인코딩 장치(200)는 현재 블록의 원본 샘플들에서 상기 예측 샘플들을 위상 기반으로 비교하고, 레지듀얼 샘플들을 도출할 수 있다.
인코딩 장치(200)는 상기 인트라 예측에 관한 정보 (예측 정보) 및 상기 레지듀얼 샘플들에 관한 레지듀얼 정보를 포함하는 영상 정보를 인코딩할 수 있다(S1020). 상기 예측 정보는 상기 인트라 예측 모드 정보 및/또는 상기 인트라 예측 타입 정보를 포함할 수 있다. 인코딩 장치(200)는 인코딩된 영상 정보를 비트스트림 형태로 출력할 수 있다. 출력된 비트스트림은 저장매체 또는 네트워크를 통하여 디코딩 장치(300)로 전달될 수 있다.
상기 레지듀얼 정보는 후술하는 레지듀얼 코딩 신텍스를 포함할 수 있다. 인코딩 장치(200)는 상기 레지듀얼 샘플들을 변환/양자화하여 양자화된 변환 계수들을 도출할 수 있다. 상기 레지듀얼 정보는 상기 양자화된 변환 계수들에 대한 정보를 포함할 수 있다.
한편, 상술한 바와 같이 인코딩 장치(200)는 복원 픽처(복원 샘플들 및 복원 블록 포함)를 생성할 수 있다. 이를 위하여 인코딩 장치(200)는 상기 상기 양자화된 변환 계수들을 다시 역양자화/역변환 처리하여 (수정된) 레지듀얼 샘플들을 도출할 수 있다. 이와 같이 레지듀얼 샘플들을 변환/양자화 후 다시 역양자화/역변환을 수행하는 이유는 상술한 바와 같이 디코딩 장치(300)에서 도출되는 레지듀얼 샘플들과 동일한 레지듀얼 샘플들을 도출하기 위함이다. 인코딩 장치(200)는 상기 예측 샘플들과 상기 (수정된) 레지듀얼 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 포함하는 복원 블록을 생성할 수 있다. 상기 복원 블록을 기반으로 상기 현재 픽처에 대한 복원 픽처가 생성될 수 있다. 상기 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 상술한 바와 같다.
도 9는 일 실시예에 따른 디코딩 방법에 있어서, 인트차 예측을 기반으로 영상을 디코딩하는 방법을 나타내는 순서도이고, 도 10은 도 9의 방법을 수행하는데 사용되는 디코딩 장치의 구성을 나타내는 도면이다.
디코딩 장치(300)는 상기 인코딩 장치(200)에서 수행된 동작과 대응되는 동작을 수행할 수 있다.
단계 S1100 내지 단계 S1120은 디코딩 장치(300)의 인트라 예측부(331)에 의하여 수행될 수 있고, 단계 S1100의 예측 정보 및 단계 S1130의 레지듀얼 정보는 디코딩 장치(300)의 엔트로피 디코딩부(310)에 의하여 비트스트림으로부터 획득될 수 있다. 디코딩 장치(300)의 레지듀얼 처리부(320)는 상기 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 구체적으로 상기 레지듀얼 처리부(320)의 역양자화부(321)는 상기 레지듀얼 정보를 기반으로 도출된 양자화된 변환 계수들을 기반으로, 역양자화를 수행하여 변환 계수들을 도출하고, 상기 레지듀얼 처리부(320)의 역변환부(322)는 상기 변환 계수들에 대한 역변환을 수행하여 상기 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 단계 1140는 디코딩 장치(300)의 가산부(340) 또는 복원부에 의하여 수행될 수 있다.
구체적으로 디코딩 장치(300)는 수신된 예측 정보 (인트라 예측 모드/타입 정보)를 기반으로 현재 블록에 대한 인트라 예측 모드/타입을 도출할 수 있다(S1100). 디코딩 장치(300)는 현재 블록의 주변 참조 샘플들을 도출할 수 있다(S1110). 디코딩 장치(300)는 인트라 예측 모드/타입 및 상기 주변 참조 샘플들을 기반으로 현재 블록 내 예측 샘플들을 생성한다(S1120). 이 경우, 디코딩 장치(300)는 예측 샘플 필터링 절차를 수행할 수 있다. 예측 샘플 필터링은 포스트 필터링이라 불릴 수 있다. 상기 예측 샘플 필터링 절차에 의하여 상기 예측 샘플들 중 일부 또는 전부가 필터링될 수 있다. 경우에 따라 예측 샘플 필터링 절차는 생략될 수 있다.
디코딩 장치(300)는 수신된 레지듀얼 정보를 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 생성한다. 디코딩 장치(300)는 예측 샘플들 및 레지듀얼 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 생성하고, 상기 복원 샘플들을 포함하는 복원 블록을 도출할 수 있다(S1130). 복원 블록을 기반으로 현재 픽처에 대한 복원 픽처가 생성될 수 있다. 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 상술한 바와 같다.
여기서, 디코딩 장치(300)의 인트라 예측부(331)는 인트라 예측 모드/타입 결정부(331a), 참조 샘플 도출부(331b), 예측 샘플 도출부(331c)를 포함할 수 있다. 인트라 예측 모드/타입 결정부(331a)는 인코딩 장치(200)의 인트라 예측 모드/타입 결정부(222a)에서 생성되어 시그널링된 인트라 예측 모드/타입 정보를 기반으로 현재 블록에 대한 인트라 예측 모드/타입을 결정하고, 참조 샘플 도출부(331b)는 현재 블록의 주변 참조 샘플들을 도출하고, 예측 샘플 도출부(331c)는 현재 블록의 예측 샘플들을 도출할 수 있다. 한편, 비록 도시되지는 않았지만, 상술한 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(331)는 예측 샘플 필터링부(미도시)를 더 포함할 수도 있다.
인트라 예측 모드 정보는 예를 들어, MPM(most probable mode)이 현재 블록에 적용되는지 아니면 리메이닝 모드(remaining mode)가 적용되는지 여부를 나타내는 플래그 정보(ex. intra_luma_mpm_flag)를 포함할 수 있고, MPM이 현재 블록에 적용되는 경우 인트라 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 가리키는 인덱스 정보(ex. intra_luma_mpm_idx)를 더 포함할 수 있다. 인트라 예측 모드 후보들(MPM 후보들)은 MPM 리스트로 구성될 수 있다. MPM 후보들로 구성된 리스트는 MPM 리스트라 지칭할 수도 있고 MPM 후보 리스트라 지칭할 수도 있다.
또한, MPM이 현재 블록에 적용되지 않는 경우, 인트라 예측 모드 정보는 MPM 후보들을 제외한 나머지 인트라 예측 모드들 중 하나를 가리키는 리메이닝 모드 정보(ex. intra_luma_mpm_remainder)를 더 포함할 수 있다. 디코딩 장치(300)는 상기 인트라 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다.
또한, 인트라 예측 타입 정보는 다양한 형태로 구현될 수 있다. 일 예로, 인트라 예측 타입 정보는 상기 인트라 예측 타입들 중 하나를 지시하는 인트라 예측 타입 인덱스 정보를 포함할 수 있다. 다른 예로, 인트라 예측 타입 정보는 MRL이 현재 블록에 적용되는지 및 적용되는 경우에는 몇번째 참조 샘플 라인이 이용되는지 여부를 나타내는 참조 샘플 라인 정보(ex. intra_luma_ref_idx), ISP가 현재 블록에 적용되는지를 나타내는 ISP 플래그 정보(ex. intra_subpartitions_mode_flag), ISP가 적용되는 경우에 서브파티션들이 분할 타입을 지시하는 ISP 타입 정보 (ex. intra_subpartitions_split_flag), PDCP의 적용 여부를 나타내는 플래그 정보 또는 LIP의 적용 여부를 나타내는 플래그 정보 중 적어도 하나를 포함할 수 있다. 또한, 인트라 예측 타입 정보는 현재 블록에 MIP(Matrix-based Intra Prediction )가 적용되는지 여부를 나타내는 MIP 플래그를 포함할 수 있다.
인트라 예측 모드 정보 및/또는 인트라 예측 타입 정보는 개시된 실시예에서 설명한 코딩 방법을 통하여 인코딩/디코딩될 수 있다. 예를 들어, 인트라 예측 모드 정보 및/또는 인트라 예측 타입 정보는 truncated (rice) binary code를 기반으로 엔트로피 코딩(ex. CABAC, CAVLC) 코딩을 통하여 인코딩/디코딩될 수 있다.
이하, 인트라 예측 모드를 결정하는 방법에 대해 더 구체적으로 설명한다.
인트라 예측이 적용되는 경우, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용되는 인트라 예측 모드가 결정될 수 있다. 예를 들어, 디코딩 장치(300)는 현재 블록의 주변 블록(ex. 좌측 및/또는 상측 주변 블록)의 인트라 예측 모드 및 추가적인 후보 모드들을 기반으로 도출된 mpm(most probable mode) 리스트 내 mpm 후보들 중 하나를 수신된 mpm 인덱스를 기반으로 선택할 수 있다.
또는, 상기 mpm 후보들(및 플래너 모드)에 포함되지 않은 나머지 인트라 예측 모드들 중 하나를 리메이닝 인트라 예측 모드 정보를 기반으로 선택할 수 있다. mpm 리스트는 플래너 모드를 후보로 포함하거나 포함하지 않도록 구성될 수 있다. 예를 들어, mpm 리스트가 플래너 모드를 후보로 포함하는 경우 mpm 리스트는 6개의 후보를 가질 수 있고, mpm 리스트가 플래너 모드를 후보로 포함하지 않는 경우 mpm 리스트는 3개의 후보를 가질 수 있다. mpm 리스트가 플래너 모드를 후보로 포함하지 않는 경우 현재 블록의 인트라 예측 모드가 플래너 모드가 아닌지 나타내는 not 플래너 플래그(ex. intra_luma_not_planar_flag)가 시그널링될 수 있다. 예를 들어, mpm 플래그가 먼저 시그널링되고, mpm 인덱스 및 not 플래너 플래그는 mpm 플래그의 값이 1인 경우 시그널링될 수 있다. 또한, mpm 인덱스는 not 플래너 플래그의 값이 1인 경우 시그널링될 수 있다. 여기서, mpm 리스트가 플래너 모드를 후보로 포함하지 않도록 구성되는 것은, 플래너 모드가 mpm이 아니라는 것이라기보다는, mpm으로 항상 플래너 모드가 고려되기에 먼저 플래그(not planar flag)를 시그널링하여 플래너 모드인지 여부를 먼저 확인하기 위함이다.
예를 들어, 현재 블록에 적용되는 인트라 예측 모드가 mpm 후보들(및 플래너 모드) 중에 있는지, 아니면 리메이닝 모드 중에 있는지는 mpm flag (ex. intra_luma_mpm_flag)를 기반으로 지시될 수 있다. mpm flag의 값 1은 현재 블록에 대한 인트라 예측 모드가 mpm 후보들(및 플래너 모드) 내에 있음을 나타낼 수 있으며, mpm flag의 값 0은 현재 블록에 대한 인트라 예측 모드가 mpm 후보들(및 플래너 모드) 내에 없음을 나타낼 수 있다. not planar flag (ex. intra_luma_not_planar_flag) 값 0은 현재 블록에 대한 인트라 예측 모드가 플래너 모드임을 나타낼 수 있고, not planar flag 값 1은 현재 블록에 대한 인트라 예측 모드가 플래너 모드가 아님을 나타낼 수 있다. mpm 인덱스는 mpm_idx 또는 intra_luma_mpm_idx 신텍스 요소의 형태로 시그널링될 수 있고, 리메이닝 인트라 예측 모드 정보는 rem_intra_luma_pred_mode 또는 intra_luma_mpm_remainder 신텍스 요소의 형태로 시그널링될 수 있다. 예를 들어, 리메이닝 인트라 예측 모드 정보는 전체 인트라 예측 모드들 중 mpm 후보들(및 플래너 모드)에 포함되지 않는 나머지 인트라 예측 모드들을 예측 모드 번호 순으로 인덱싱하여 그 중 하나를 가리킬 수 있다. 인트라 예측 모드는 루마 성분(샘플)에 대한 인트라 예측 모드일 수 있다. 이하, 인트라 예측 모드 정보는 mpm flag(ex. intra_luma_mpm_flag), not planar flag(ex. intra_luma_not_planar_flag), mpm 인덱스(ex. mpm_idx 또는 intra_luma_mpm_idx), 리메이닝 인트라 예측 모드 정보 (rem_intra_luma_pred_mode 또는 intra_luma_mpm_remainder) 중 적어도 하나를 포함할 수 있다. 개시된 실시예에서 MPM 리스트는 MPM 후보 리스트, candModeList 등 다양한 용어로 불릴 수 있다. MIP가 현재 블록에 적용되는 경우, MIP를 위한 별도의 mpm flag(ex. intra_mip_mpm_flag), mpm 인덱스(ex. intra_mip_mpm_idx), 리메이닝 인트라 예측 모드 정보(ex. intra_mip_mpm_remainder)가 시그널링될 수 있으며, 전술한 not planar flag는 시그널링되지 않는다.
인코딩 장치(200)에서의 인트라 예측 모드 정보에 대한 시그널링 절차 및 디코딩 장치(300)에서의 인트라 예측 모드 결정 절차는 예를 들어 다음과 같이 수행될 수 있다.
도 11은 일 실시예에 따른 인코딩 방법에서 인트라 예측 모드에 대한 정보를 시그널링하는 방법의 예시를 나타낸 순서도이다.
도 11을 참조하면, 인코딩 장치(200)는 현재 블록에 대한 MPM 리스트를 구성한다(S1300). 전술한 바와 같이, MPM 리스트는 현재 블록에 적용될 가능성이 높은 후보 인트라 예측 모드들(MPM 후보들)을 포함할 수 있다. MPM 리스트는 주변 블록의 인트라 예측 모드를 포함할 수도 있고, 미리 정해진 방법에 따라 특정 인트라 예측 모드들을 더 포함할 수도 있다. 구체적인 MPM 리스트 구성 방법은 후술하기로 한다.
인코딩 장치(200)는 현재 블록의 인트라 예측 모드를 결정한다(S1310). 인코딩 장치(200)는 다양한 인트라 예측 모드들을 기반으로 예측을 수행할 수 있고, 이에 기반한 RDO (rate-distortion optimization)을 기반으로 최적의 인트라 예측 모드를 결정할 수 있다. 인코딩 장치(200)는 이 경우 MPM 리스트에 포함된 MPM 후보들 및 플래너 모드만을 이용하여 최적의 인트라 예측 모드를 결정할 수도 있고, 또는 MPM 리스트에 포함된 MPM 후보들 및 플래너 모드뿐 아니라 나머지 인트라 예측 모드들을 더 이용하여 최적의 인트라 예측 모드를 결정할 수도 있다. 구체적인 예로, 만약 현재 블록의 인트라 예측 타입이 노멀 인트라 예측 타입이 아닌 특정 타입(예를 들어, LIP, MRL, 또는 ISP)인 경우에는 인코딩 장치(200)는 MPM 후보들 및 플래너 모드만을 현재 블록에 대한 인트라 예측 모드 후보들로 고려하여 최적의 인트라 예측 모드를 결정할 수 있다. 즉, 이 경우에는 현재 블록에 대한 인트라 예측 모드는 MPM 후보들 및 플래너 모드 중에서만 결정될 수 있으며, 이 경우에는 mpm 플래그를 인코딩/시그널링하지 않을 수 있다. 이 경우, 디코딩 장치(300)는 mpm 플래그를 별도로 시그널링 받지 않고도 mpm 플래그가 1인 것으로 추정할 수 있다.
인코딩 장치(200)는 결정된 인트라 예측 모드에 기반하여 인트라 예측 모드 정보를 생성한다(S1320). 인트라 예측 모드 정보는 현재 블록에 대해 결정된 인트라 예측 모드에 관한 정보를 나타낼 수 있다. 예를 들어, 인트라 예측 모드 정보는 현재 블록에 적용되는 인트라 예측 모드가 MPM 리스트에 포함되는지 여부를 나타내는 정보(ex. mpm 플래그), 현재 블록에 플래너 모드가 적용되는지 여부를 나타내는 정보(ex. not planar flag), MPM 리스트 중에서 현재 블록에 적용된 인트라 예측 모드를 나타내는 mpm 인덱스 또는 리메이닝 인트라 예측 모드 정보 중 적어도 하나를 포함할 수 있다.
구체적으로, 현재 블록의 인트라 예측 모드가 플래너 모드가 아니고 MPM 리스트 내에 있는 MPM 후보들 중 하나인 경우, 인코딩 장치(200)는 MPM 후보들 중 하나를 가리키는 mpm 인덱스(ex. mpm idx)를 생성한다. 만약, 현재 블록의 인트라 예측 모드가 MPM 리스트 내에도 없는 경우에는 MPM 리스트(및 플래너 모드)에 포함되지 않은 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드와 같은 모드를 가리키는 리메이닝 인트라 예측 모드 정보를 생성한다.
인코딩 장치(200)는 인트라 예측 모드 정보를 인코딩하고(S1330), 비트스트림 형태로 출력할 수 있다. 일반적으로, mpm 인덱스와 리메이닝 인트라 예측 모드 정보는 alternative한 관계로 하나의 블록에 대한 인트라 예측 모드를 지시함에 있어서, 동시에 시그널링되지는 않는다. 즉, mpm 플래그 값 1과 not planar flag or mpm 인덱스가 함께 시그널링되거나, mpm 플래그 값 0과 리메이닝 인트라 예측 모드 정보가 함께 시그널링된다. 다만, 상술한 바와 같이 현재 블록에 특정 인트라 예측 타입이 적용되는 경우에는 mpm 플래그가 시그널링되지 않고 not planar flag 및/또는 mpm 인덱스만 시그널링될 수도 있다. 즉, 이 경우에는 상기 인트라 예측 모드 정보는 상기 not planar flag 및/또는 mpm 인덱스만을 포함할 수도 있다.
도 12는 일 실시예에 따른 디코딩 방법에 있어서, 인트라 예측 모드를 도출하는 방법의 예시를 나타낸 순서도이다.
디코딩 장치(300)는 인코딩 장치(200)에서 결정 및 시그널링된 인트라 예측 모드 정보에 대응하여 인트라 예측 모드를 결정할 수 있다.
도 12를 참조하면, 디코딩 장치(300)는 비트스트림으로부터 인트라 예측 모드 정보를 획득한다(S1400). 인트라 예측 모드 정보는 상술한 바와 같이 mpm 플래그, not planar flag, mpm 인덱스 또는 리메이닝 인트라 예측 모드 중 적어도 하나를 포함할 수 있다.
디코딩 장치(300)는 MPM 리스트를 구성한다(S1410). MPM 리스트는 전술한 인코딩 장치(200)에서 구성된 MPM 리스트와 동일하게 구성된다. 즉, MPM 리스트는 주변 블록의 인트라 예측 모드를 포함할 수도 있고, 미리 정해진 방법에 따라 특정 인트라 예측 모드들을 더 포함할 수도 있다. 구체적인 PM 리스트 구성 방법은 후술된다.
비록 단계 S1410은 단계 S1400보다 뒤에 수행되는 것으로 도시되었으나, 이는 예시이고, 단계 S1410은 단계 S1400보다 먼저 수행될 수도 있고 동시에 수행될 수도 있다.
디코딩 장치(300)는 MPM 리스트 및 인트라 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 도출한다(S1420). mpm 플래그의 값이 1인 경우, 디코딩 장치(300)는 플래너 모드를 현재 블록의 인트라 예측 모드로 도출하거나(not planar flag 기반) MPM 리스트 내의 MPM 후보들 중에서 mpm 인덱스가 가리키는 후보를 현재 블록의 인트라 예측 모드로 도출할 수 있다. mpm 플래그의 값이 0인 경우, 디코딩 장치(300)는 MPM 리스트 및 플래너 모드에 포함되지 않은 나머지 인트라 예측 모드들 중에서 리메이닝 인트라 예측 모드 정보가 가리키는 인트라 예측 모드를 상기 현재 블록의 인트라 예측 모드로 도출할 수 있다. 한편, 현재 블록의 인트라 예측 타입이 특정 타입(ex. LIP, MRL 또는 ISP 등)인 경우, 디코딩 장치(300)는 mpm 플래그의 확인 없이도, 플래너 모드 또는 MPM 리스트 내에서 mpm 인덱스가 가리키는 후보를 현재 블록의 인트라 예측 모드로 도출할 수도 있다. 이와 같은 구체적인 인트라 예측 모드 도출 절차는 도 13과 같이 나타낼 수 있다.
도 13은 일 실시예에 따른 디코딩 방법에 있어서, 인트라 예측 모드를 도출하는 방법의 예시를 더 구체적으로 나타내는 순서도이다.
디코딩 장치(300)가 비트스트림으로부터 인트라 예측 모드 정보를 획득하는 단계(S1500)와 MPM 리스트를 구성하는 단계(S1510)에 관한 설명은 전술한 바와 동일하다.
인트라 예측 모드를 도출함에 있어서, mpm 플래그가 1이거나, LIP, MRL, ISP 등과 같은 특정 인트라 예측 타입이 적용되고(S1521의 예), not planar flag가 1인 경우(S1522의 예), MPM 리스트 및 mpm 인덱스를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다(S1523).
not planar flag가 1이 아닌 경우에는(S1522의 아니오), 플래너 모드를 현재 블록의 인트라 예측 모드로 결정할 수 있다(S1524).
mpm 플래그가 1이 아닌 경우에는(S1521의 아니오), 리메이닝 인트라 예측 모드 정보를 기반으로 MPM 리스트에 포함되지 않은 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정할 수 있다(S1525).
not planar flag는 MRL이 현재 블록이 적용되지 않는 경우(즉, intra_luma_ref_idx = = 0 인 경우)에 시그널링될 수 있고, MRL이 현재 블록에 적용되는 경우(즉, intra_luma_ref_idx != 0 인 경우)에 생략될 수 있다. not planar flag가 생략된 경우 그 값이 1인 것으로 디코딩 장치(300)에서 추정될 수 있다.
한편, 인트라 예측 모드들은 2개의 방향성 인트라 예측 모드들과 65개의 방향성 예측 모드들을 포함할 수 있다. 비방향성 인트라 예측 모드들은 플래너 인트라 예측 모드 및 DC 인트라 예측 모드를 포함할 수 있고, 방향성 인트라 예측 모드들은 2번 내지 66번 인트라 예측 모드들을 포함할 수 있다. 확장된 방향성 인트라 예측 모드들은 모든 사이즈의 블록들에 적용될 수 있고, 루마 성분 및 크로마 성분 모두에 적용될 수 있다.
인트라 예측 모드는 상술한 인트라 예측 모드들 외에도 크로마 샘플을 위한 CCLM(cross-component linear model) 모드를 더 포함할 수 있다. CCLM 모드는 LM 파라미터 도출을 위하여 좌측 샘플들을 고려하는지, 상측 샘플들을 고려하는지, 둘 다를 고려하는지에 따라 LT_CCLM, L_CCLM, T_CCLM으로 나누어질 수 있으며, 크로마 성분에 대하여만 적용될 수 있다.
인트라 예측 모드는 예를 들어 다음 표 1과 같이 인덱싱될 수 있다.
[표 1]
한편, 상기 인트라 예측 타입(또는 부가 인트라 예측 모드 등)은 앞서 언급한 LIP, PDPC, MRL, ISP, MIP 중 적어도 하나를 포함할 수 있다. 상기 인트라 예측 타입은 인트라 예측 타입 정보를 기반으로 지시될 수 있으며, 상기 인라 예측 타입 정보는 다양한 형태로 구현될 수 있다. 일 예로, 상기 인트라 예측 타입 정보는 상기 인트라 예측 타입들 중 하나를 지시하는 인트라 예측 타입 인덱스 정보를 포함할 수 있다. 다른 예로, 상기 인트라 예측 타입 정보는 상기 MRL이 상기 현재 블록에 적용되는지 및 적용되는 경우에는 몇번째 참조 샘플 라인이 이용되는지 여부를 나타내는 참조 샘플 라인 정보(ex. intra_luma_ref_idx), 상기 ISP가 상기 현재 블록에 적용되는지를 나타내는 ISP 플래그 정보(ex. intra_subpartitions_mode_flag), 상기 ISP가 적용되는 경우에 서브파티션들이 분할 타입을 지시하는 ISP 타입 정보 (ex. intra_subpartitions_split_flag), PDCP의 적용 여부를 나타내는 플래그 정보 또는 LIP의 적용 여부를 나타내는 플래그 정보 중 적어도 하나를 포함할 수 있다. 또한, 상기 인트라 예측 타입 정보는 상기 현재 블록에 MIP가 적용되는지 여부를 나타내는 MIP 플래그(또는 intra_mip_flag라고 불릴 수 있다)를 포함할 수 있다.
현재 블록의 인트라 예측 모드/타입에 관한 정보는 CU (CU 신택스) 등의 레벨에서 코딩되어 시그널링되거나 혹은 조건에 따라 묵시적으로 결정될 수도 있다. 이 경우, 일부 모드/타입에 대해서는 명시적으로 시그널링되고 나머지 일부 모드는 묵시적으로 도출될 수 있다.
예를 들어, CU 신택스는 다음 표 2에 개시된 바와 같이 (인트라) 예측 모드/타입에 관한 정보 등을 나를 수 있다.
[표 2]
신택스 요소 intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_not_planar_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ]는 루마 샘플에 대한 인트라 예측 모드를 정의하는데 사용된다. 즉, intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_not_planar_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ] 현재 블록의 (regular or normal) 인트라 예측 모드를 나타낼 수 있다. 이는 현재 블록의 루마 샘플에 대한 인트라 예측 모드일 수 있다. 레귤러 인트라 예측 모드 또는 노멀 인트라 예측 모드는 현재 블록에 MIP가 적용되지 않고 현재 블록이 인트라 모드로 코딩된 경우의 인트라 예측 모드를 나타낼 수 있다. 후술하는 실시예에서는 인트라 모드와 인트라 예측 모드가 동일한 의미로 사용될 수 있다. 현재 블록에 인트라 예측 모드가 적용되는 경우에 (regular or normal) MPM 리스트가 구성될 수 있으며, intra_luma_mpm_flag는 현재 블록에 대한 인트라 예측 모드가 MPM 리스트 내에 존재하는지(또는 MPM 후보들 중에 존재하는지) 여부를 나타낼 수 있다. intra_luma_mpm_flag 값이 1인 경우, intra_luma_not_planar_flag가 파싱/코딩될 수 있으며, intra_luma_not_planar_flag는 현재 블록의 인트라 예측 모드가 플래너 모드가 아닌지 여부를 나타낼 수 있다.
상기 표 1에 나타난 바와 같이 intra_luma_mpm_idx는 상기 intra_luma_not_planar_flag가 'true'(즉, 값 1)인 경우 파싱 및 코딩될 수 있다. 일반적으로 MPM 리스트 내에는 플래너 모드가 항상 후보로 들어갈 수 있으나, 다만, 상기와 같이 intra_luma_not_planar_flag를 먼저 시그널링함으로써 MPM 리스트에서 플래너 모드를 제외할 수 있다. 이 경우, 상술한 여러 가지 인트라 예측 타입 (일반 인트라 예측, MRL, ISP, LIP 등)에서 단일화된 MPM 리스트를 구성할 수 있다.
MPM 리스트에서 플래너 모드가 제외되면, MPM 리스트 내의 MPM 후보의 개수는 5개로 줄어들 수 있다. intra_luma_mpm_idx는 플래너 모드가 제외된 MPM 리스트에 포함된 MPM 후보들 중 현재 블록의 인트라 예측 모드로 사용되는 후보를 지시할 수 있다. intra_luma_mpm_flag 값이 0인 경우, intra_luma_mpm_remainder가 파싱/코딩될 수 있다. 상기 intra_luma_mpm_remainder는 인트라 예측 모드들에서 MPM 리스트 내의 후보 들을 제외한 나머지 모드들 중에서 어느 한 모드를 현재 블록의 인트라 예측 모드로 지시할 수 있다.
이하, MPM 리스트를 구성하는 구체적인 방법에 대해 설명한다.
일반적으로 영상이 복수의 블록으로 분할되면, 코딩 대상인 현재 블록과 주변(neighboring) 블록은 비슷한 영상 특성을 갖게 된다. 따라서, 현재 블록과 주변 블록은 서로 동일하거나 비슷한 인트라 예측 모드를 가질 확률이 높다. 따라서, 인코딩 장치(200)는 현재 블록의 인트라 예측 모드를 인코딩하기 위해 주변 블록의 인트라 예측 모드를 이용할 수 있다.
예를 들어, 인코딩 장치(200)/디코딩 장치(300)는 현재 블록에 대한 MPM 리스트를 구성할 수 있다. 여기서, MPM이라 함은 인트라 예측 모드 코딩시 현재 블록과 주변 블록의 유사성을 고려하여 코딩 효율을 향상시키기 위해 이용되는 모드를 의미할 수 있다. 상술한 바와 같이 MPM 리스트는 플래너 모드를 포함하여 구성될 수 있고, 또는 플래너 모드를 제외하여 구성될 수도 있다. 예를 들어, MPM 리스트가 플래너 모드를 포함하는 경우 MPM 리스트의 후보들의 개수는 6개일 수 있다. 그리고, MPM 리스트가 플래너 모드를 포함하지 않는 경우, MPM 리스트의 후보들의 개수는 5개일 수 있다.
인코딩 장치(200)/디코딩 장치(300)는 6개의 MPM 후보를 포함하는 MPM 리스트를 구성할 수 있다.
MPM 리스트를 구성하기 위하여 후술하는 종류의 모드들이 고려될 수 있다.
- 디폴트 인트라 모드들 (Default intra modes)
- 주변 인트라 모드들 (Neighbour intra modes)
- 주변 인터 모드로부터 도출된 인트라 모드들 (IPM modes)
- DIMD (Decoder-side intra mode derivation) 모드들
- 도출된 인트라 모드들 (Derved intra modes)
상기 주변 인트라 모드들을 위하여 주변 블록들, 즉, 좌측 주변 블록, 상측 주변 블록, 좌하측 주변 블록, 우상측 주변 블록, 좌상측 주변 블록 등이 고려될 수 있다. 주변 인트라 모드를 MPM으로 활용할 때, 현재 블록의 크기 정보에 따라 입력 순서가 달라질 수 있다. 예를 들어, 블록의 높이 (height)가 블록의 폭 (width)보다 크거나 같을 경우에는 상측 주변 블록의 인트라 모드가 먼저 고려되고, 이후에 좌측 주변 블록의 인트라 모드가 고려될 수 있다.
주변 블록이 인트라 모드가 아닌 인터 모드로 코딩되었을 때에도 IPM 버퍼로부터 인트라 모드 정보를 획득할 수 있다. 이웃한 인터 블록의 움직임 벡터가 가리키는 위치가 인트라 모드일 경우, 즉 해당 위치의 블록이 인트라 모드로 코딩된 경우, 해당 인트라 모드를 IPM 버퍼에 저장할 수 있다. IPM 버퍼에 저장된 인트라 모드는 이웃 블록의 MPM 모드로 활용될 수 있다.
또한, 후술하는 DIMD를 이용하여 MPM 리스트를 구성하는 것도 가능하다. 현재 블록이 DIMD 모드가 아닐 경우에는 DIMD로부터 도출된 인트라 모드를 MPM 후보로 활용할 수 있다.
상술한 바와 같이 만약 MPM 리스트가 플래너 모드를 포함하지 않는 경우, MPM 리스트에서 플래너(planar) 모드가 제외되며, 상기 MPM 리스트의 후보들의 개수는 5개로 설정될 수 있다.
상술한 MPM 리스트 구성 방법은 현재 블록에 MIP가 적용되지 않은 경우에 사용될 수 있다. 예를 들어, 상술한 MPM 리스트 구성 방법은 LIP, PDPC, MRL, ISP 인트라 예측이나, 노멀 인트라 예측에서 사용되는 인트라 예측 모드 도출을 위하여 사용될 수 있다.
도 14는 매트릭스 기반 인트라 예측(MIP) 과정을 개략적으로 나타낸 도면이다.
매트릭스 기반 인트라 예측(MIP)은 어파인 선형 가중 인트라 예측(ALWIP: Affine Linear Weighted Intra Prediction) 또는 매트릭스 가중 인트라 예측(MWIP: Matrix Weighted Intra Prediction)이라고도 할 수 있다. 폭과 높이가 같은 직사각형 블록의 샘플을 예측하기 위해 MIP는 블록 왼쪽의 복원된 주변 경계 샘플 한 줄과 블록 위의 복원된 주변 경계 샘플 한 줄을 입력으로 사용한다. 복원된 샘플을 사용할 수 없는 경우 기존 인트라 예측에서 수행한 대로 생성된다.
도 14에 도시된 바와 같이, 예측 신호의 생성은 다음 세 단계에 따라 이루어질 수 있다.
1. W=H=4인 경우 4개의 샘플들이, 그 외 모든 경우 8개 샘플들이 평균에 의해 경계샘플들 중에서 추출된다(Averiging).
2. 평균된 샘플들을 입력으로 행렬 벡터 곱셈을 수행한 후 오프셋을 더하고, 그 결과 원본 블록에서 서브 샘플링된 샘플 세트에 대한 예측 신호가 감소한다(Matrix-Vector-Multiplication).
3. 나머지 위치에서의 예측 신호는 서브 샘플링된 세트의 예측 신호에서 각 방향으로 한 단계씩 선형 보간하는 선형 보간을 통해 생성된다(Interpolation).
예측 신호(예측 블록 또는 예측 샘플)를 생성하는 데 필요한 행렬과 오프셋 벡터는 행렬의 3개의 세트 S0, S1, S2에서 가져온다. 세트 S0는 각각 16개의 행과 4개의 열을 가진 18개의 행렬 과 각각 16의 크기를 갖는 18개의 오프셋 벡터들 로 구성된다. 해당 세트의 매트릭스들과 오프셋 벡터들은 4x4 크기의 블록들에 대해 사용된다. 세트 S1은 각각 16개의 행과 8개의 열을 가진 10개의 행렬 과 각각 16의 크기를 갖는 10개의 오프셋 벡터들 로 구성된다. 해당 세트의 매트릭스들과 오프셋 벡터들은 4x8, 8x4, 8x8 크기의 블록들에 대해 사용된다. 마지막으로, 세트 S2는 각각 64개의 행과 8개의 열을 가진 6개의 행렬 과 각각 64의 크기를 갖는 6개의 오프셋 벡터들 로 구성된다. 해당 세트의 매트릭스들과 오프셋 벡터들 또는 이들 매트릭스들과 오프셋 벡터들의 일부는 다른 모든 블록 형상에 대해 사용된다.
매트릭스 벡터 곱의 계산에 필요한 총 곱셈의 횟수는 이하이다. 다시 말해, MIP 모드에서는 샘플 당 최대 4번의 곱셈이 필요하다.
한편, 좌측 주변 블록이나 상측 주변 블록은 상술한 MIP를 기반으로 코딩될 수 있다. 즉, 좌측 주변 블록 또는 상기 상측 주변 블록 코딩시 MIP가 적용될 수 있다. 이 경우 MIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 MIP 인트라 예측 모드 번호를 그대로 MIP가 적용되지 않은 현재 블록을 위한 상기 MPM 리스트에 사용하는 것은 적합하지 않다. 일 예로, MIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드는 DC 또는 플래너 모드인 것으로 간주할 수 있다. 다른 예로, MIP가 적용된 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드를 매핑 테이블을 기반으로 일반 인트라 예측 모드에 매핑시켜서 MPM 리스트 구성에 이용할 수 있다. 이 경우 현재 블록의 블록 사이즈 타입을 기반으로 상기 매핑을 수행할 수 있다. 예를 들어, 상기 매핑 테이블은 다음 표 3과 같이 나타낼 수 있다.
[표 3]
여기서, MIP IntraPredMode[ xNbX ][ yNbX ]는 주변 블록(좌측 주변 블록/상측 주변 블록)의 MIP 인트라 예측 모드를 나타내고, block size type MipSizeId는 주변 블록 또는 현재 블록의 블록 사이즈 타입을 나타낸다. 블록 사이즈 타입 값 0, 1, 2 밑의 숫자들은 각 블록 사이즈 타입인 경우에, MIP 인트라 예측 모드가 매핑되는 일반 인트라 예측 모드를 나타낸다.
예를 들어, 현재 블록의 블록 사이즈 타입이 0이고, 주변 블록의 MIP 인트라 예측 모드 번호가 10인 경우, 매핑되는 일반 인트라 예측 모드 번호는 18일 수 있다. 다만, 상기 매핑 관계는 예시이며, 변경될 수 있다.
현재 블록에 MIP가 적용되는 경우, MIP가 적용되는 현재 블록을 위한 MPM 리스트가 별도로 구성될 수 있다. 상기 MPM 리스트는 현재 블록에 MIP가 적용되지 않는 경우의 MPM 리스트와 구분하기 위하여 MIP MPM 리스트 (또는 MIP를 위한 MPM 리스트, candMipModeList) 등 다양한 이름으로 불릴 수 있다. 이하, 구분을 위하여 MIP MPM 리스트라고 표현하나, 이는 MPM 리스트라고 불릴 수도 있음은 물론이다.
상기 MIP MPM 후보 리스트는 n개의 후보들을 포함할 수 있으며, 예를 들어 n은 3일 수 있다. 상기 MIP MPM 후보 리스트는 현재 블록의 좌측 주변 블록 및 상측 주변 블록을 기반으로 구성될 수 있다. 여기서 좌측 주변 블록은 현재 블록의 좌측 경계에 인접한 주변 블록들 중 가장 상측에 위치한 블록을 나타낼 수 있다. 또한, 상측 주변 블록은 상기 현재 블록의 상측 경계에 인접한 주변 블록들 중 가장 좌측에 위치한 블록을 나타낼 수 있다.
예를 들어, 좌측 주변 블록에 MIP가 적용된 경우 (및 상기 좌측 주변 블록의 블록 사이즈 타입이 현재 블록의 블록 사이즈 타입과 같은 경우), 제1 후보 인트라 예측 모드(or candMipModeA)는 상기 좌측 주변 블록의 MIP 인트라 예측 모드와 같게 설정될 수 있다. 또한, 예를 들어, 상기 상측 주변 블록에 MIP가 적용된 경우 (및 상기 상측 주변 블록의 블록 사이즈 타입이 현재 블록의 블록 사이즈 타입과 같은 경우), 제2 후보 인트라 예측 모드(or candㅡipModeB)는 상기 상측 주변 블록의 MIP 인트라 예측 모드와 같게 설정될 수 있다.
한편, 좌측 주변 블록이나 상측 주변 블록은 MIP가 아닌 인트라 예측을 기반으로 코딩될 수도 있다. 즉, 상기 좌측 주변 블록 또는 상기 상측 주변 블록 코딩시 MIP가 아닌 다른 인트라 예측 타입이 적용될 수 있다. 이 경우 MIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 일반 인트라 예측 모드 번호를 그대로 MIP가 적용된 현재 블록을 위한 후보 인트라 모드로 사용하는 것은 적합하지 않다. 일 예로, MIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 MIP 인트라 예측 모드는 특정 값(ex. 0, 1 or 2 등)의 MIP 인트라 예측 모드인 것으로 간주할 수 있다. 다른 예로, MIP가 적용되지 않은 주변 블록(좌측 주변 블록/상측 주변 블록)의 일반 인트라 예측 모드를 매핑 테이블을 기반으로 MIP 인트라 예측 모드에 매핑시켜서 MIP MPM 후보 리스트 구성에 이용할 수 있다. 이 경우 현재 블록의 상기 블록 사이즈 타입을 기반으로 매핑을 수행할 수 있다. 예를 들어, 매핑 테이블은 아래 표 4와 같이 나타낼 수 있다.
[표 4]
여기서, IntraPredModeY[ xNbX ][ yNbX ]는 주변 블록(좌측 주변 블록/상측 주변 블록)의 인트라 예측 모드를 나타낸다. 여기서 상기 주변 블록의 인트라 예측 모드는 루마 성분(샘플)에 대한 인트라 예측 모드, 즉 루마 인트라 예측 모드일 수 있다. block size type MipSizeId는 주변 블록 또는 현재 블록의 블록 사이즈 타입을 나타낸다. 블록 사이즈 타입 값 0, 1, 2 밑의 숫자들은 각 블록 사이즈 타입인 경우에 일반 인트라 예측 모드가 매핑되는 MIP 인트라 예측 모드를 나타낸다.
또한, 상기 주변 블록(ex. 좌측 주변 블록/상측 주변 블록)이 가용하지 않거나(ex. 현재 픽처 외부에 위치, 현재 타일/슬라이스 외부에 위치 등), MIP가 적용되었더라도 블록 사이즈 타입에 따라 현재 블록에 가용하지 않은 MIP 인트라 예측 모드를 사용하였을 수도 있다. 이 경우에는 제1 후보 및/또는 제2 후보를 위하여 미리 정의된 특정 MIP 인트라 예측 모드가 상기 제1 후보 인트라 예측 모드 또는 제2 후보 인트라 예측 모드로 사용될 수 있다. 또한, 제3 후보를 위하여 미리 정의된 특정 MIP 인트라 예측 모드가 제3 후보 인트라 예측 모드로 사용될 수도 있다.
예를 들어, 상기 미리 정의된 특정 MIP 인트라 예측 모드는 다음 표 5와 같이 나타낼 수 있다. 상기 미리 정의된 특정 MIP 인트라 예측 모드는 MIP default candidate modes라고 불릴 수 있다.
[표 5]
상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드를 기반으로 상기 MIP MPM 리스트를 구성할 수 있다. 예를 들어, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드가 서로 다른 경우, 상기 제1 후보 인트라 예측 모드를 MIP MPM 리스트의 0번째 후보(ex. candMipModeList[0])로 넣고, 상기 제2 후보 인트라 예측 모드를 MIP MPM 리스트의 1번째 후보(ex. candMipModeList[1])로 넣을 수 있다. MIP MPM 리스트의 2번째 후보(ex. candMipModeList[2])는 상술한 미리 정의된 특정 MIP 인트라 예측 모드가 이용될 수 있다.
또는, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드가 서로 동일한 경우, 상기 제1 후보 인트라 예측 모드 및 상기 제2 후보 인트라 예측 모드 중 하나를 MIP MPM 리스트의 0번째 후보(ex. candMipModeList[0])로 넣을 수 있고, 상기 MIP MPM 리스트의 1번째 후보(ex. candMipModeList[1]) 및 MIP MPM 리스트의 2번째 후보(ex. candMipModeList[2])는 상술한 미리 정의된 특정 MIP 인트라 예측 모드들을 이용할 수 있다.
상술한 바와 같이 상기 MIP MPM 리스트를 기반으로 현재 블록의 MIP 인트라 예측 모드가 도출될 수 있다. 이 경우, 상술한 바와 같이 상기 MIP를 위한 상기 인트라 예측 모드 정보에 포함될 수 있는 MPM 플래그는 intra_mip_mpm_flag, MPM 인덱스는 intra_mip_mpm_idx, 리메이닝 인트라 예측 모드 정보는 intra_mip_mpm_remainder로 불릴 수 있다. 상기 MIP MPM 리스트로부터 MIP 인트라 예측 모드를 도출하는 절차는 상술한 바와 같이 수행될 수 있다.
앞서 언급한 DIMD(Decoder-side intra mode derivation) 모드는 인트라 예측 모드 정보를 직접 전송하지 않고 인코더 및 디코더에서 유도하여 사용할 수 있다. 우선, 두 번째 주변 샘플 열(column)과 행(row)으로부터 수평 그래디언트(gradient)와 수직 그래디언트를 구하고, 그로부터 HoG (Histogram of gradients)를 구성할 수 있다.
도 15는 DIMD 모드에서 사용되는 HoG의 구성 방법을 나타내는 도면이다.
도 15를 참조하면, HoG는 현재 블록 주변 3픽셀의 L-형상 행(L-shaped row)와 열(colomn)을 이용하여 소벨 필터(Sobel filter)를 적용함으로써 구할 수 있다. 만일 블록의 경계가 서로 다른 CTU에 존재하는 경우에는 텍스쳐 분석(texture analysis)에 사용하지 않는다.
이후, 가장 큰 히스토그램 진폭(histogram amplitude)을 갖는 최대 5개의 인트라 모드를 선택한 뒤, 이 모드들을 이용하여 예측한 예측 블록과 플래너 모드를 블렌딩하여 최종 예측 블록을 구성할 수 있다. 가중치(Weight)는 히스토그램의 진폭으로부터 유도할 수 있다. 또한, DIMD 플래그가 블록 단위로 전송되어 DIMD 사용 여부를 확인할 수 있다.
WХH 크기의 블록에 대하여, 다섯 개의 파생 모드 각각에 대한 가중치는, 상측 히스토그램의 세기(magnitude)가 좌측 히스토그램의 세기의 두 배인 경우 또는 그 반대의 경우에 수정된다. 이러한 경우, 가중치는 위치에 따라 달라지며 다음과 같이 계산된다:
상측 히스토그램이 좌측 히스토그램보다 두 배 큰 경우,
[수식 1]
좌측 히스토그램이 상측 히스토그램보다 두 배 큰 경우,
[수식 2]
여기서, wDimd_i는 선택된 DIMD에 대한 수정되지 않은 균등 가중치(unmodified uniform weight)를 나타내며, △_i는 사전 정의된 값으로서, 10으로 설정될 수 있다.
DIMD 크로마 모드는 인접한 두 번째 행 및 열에 위치한 복원된 Y, Cb, Cr 샘플을 기반으로, 현재 블록의 크로마 인트라 예측 모드를 도출하기 위해 DIMD 도출 방법을 사용한다. 구체적으로, 현재 크로마 블록에 대응되는 복원된 루마 샘플들 및 복원된 Cb 및 Cr 샘플 각각에 대하여 수평 그래디언트(horizontal gradient) 및 수직 그래디언트(vertical gradient)가 계산되며, 이를 통해 그래디언트 히스토그램이 구성된다.
이후, 히스토그램의 진폭 값(amplitude value)이 가장 큰 인트라 예측 모드가 현재 크로마 블록의 크로마 인트라 예측을 수행하는 데 사용된다.
DIMD 크로마 모드로부터 도출된 인트라 예측 모드가 DM 모드로부터 도출된 인트라 예측 모드와 동일한 경우, DIMD 크로마 모드로는 히스토그램 진폭 값이 두 번째로 큰 인트라 예측 모드가 사용된다. 제안된 DIMD 크로마 모드가 적용되었는지를 나타내기 위해 CU 레벨의 플래그가 신택스로 전송된다.
마지막으로, 예측 대상인 크로마 CB의 WХH 쌍에 대해, 해당 루마 CB에 대응하는 그래디언트 히스토그램을 구성하기 위해, 일반적인 DIMD 복호 참조 샘플 세트 대신, 상기 루마 CB의 두 번째 및 세 번째 라인으로부터 수직 그래디언트와 수평 그래디언트의 쌍이 추출된다.
TIMD(Template based intra mode derivation)에서는 주변의 인접한 인트라 블록 및 인터 블록의 IPM 인트라 모드에 대하여, 템플릿 영역으로부터 예측한 예측 블록과 실제 복원 샘플과의 Sum of absolute transformed difference (SATD)를 구한 뒤 가장 적은 SATD를 갖는 모드를 현재 블록의 인트라 모드로 선택할 수 있다.
또는, 가장 적은 SATD를 갖는 2개의 모드를 선택한 뒤, 그 두 예측 모드에 대한 예측 블록을 가중합(weighted sum)하는 방법으로 블렌딩하여 현재 블록의 예측 블록으로 사용할 수 있다.
두 개의 모드를 블렌딩 하는 방법은 아래와 같은 조건을 만족할 때 적용할 수 있다.
costMode2 < 2*costMode1.
위의 조건을 만족할 경우 2개의 모드를 블렌딩하여 예측 블록을 생성하고, 그렇지 않은 경우는 최소 SATD값을 갖는 1개의 모드만을 선택할 수 있다.
두 개의 예측 블록을 블렌딩할 때의 가중치 weight1과 weight 2의 비율은 아래와 같다.
weight1 = costMode2/(costMode1+ costMode2)
weight2 = 1 - weight1
앞서, MPM 리스트의 구성 방법에 대해 설명하였다. 이하, SMPM(Secondary MPM) 후보 리스트의 구성 방법에 대해 설명한다.
인코딩 장치(200)/디코딩 장치(300)는 현재 블록에 대한 SMPM 리스트를 구성할 수도 있다. 상기 SMPM 리스트는 SMPM 리스트라고 지칭될 수도 있다. 또한, SMPM 리스트는 MPM 리스트와 중복되는 인트라 모드를 제외하여 구성될 수 있다. 예를 들어, MPM 리스트가 50번 모드를 포함하는 경우, SMPM 리스트는 50번 모드를 포함하지 않을 수 있다.
일 예로, 인코딩 장치(200)/디코딩 장치(300)는 M개의 SMPM 후보로 리스트를 구성할 수 있으며, M은 16일 수 있다. 다만, SMPM 후보의 개수는 달라질 수도 있음은 물론이다.
SMPM 리스트를 구성하기 위하여 후술하는 종류의 모드들이 고려될 수 있다.
- 디폴트 인트라 모드들 (Default intra modes)
- 주변 인트라 모드들 (Neighbour intra modes)
- 주변 인터 모드로부터 도출된 인트라 모드들 (IPM modes)
- DIMD (Decoder-side intra mode derivation) 모드들
- 도출된 인트라 모드들 (Derved intra modes)
상기 주변 인트라 모드들을 위하여 주변 블록들, 즉, 좌측 주변 블록, 상측 주변 블록, 좌하측 주변 블록, 우상측 주변 블록, 좌상측 주변 블록 등이 고려될 수 있다. 주변 인트라 모드를 SMPM 후보로 활용할 때, 현재 블록의 크기 정보에 따라 입력 순서가 달라질 수 있다. 예를 들어, 블록의 높이 (height)가 블록의 폭 (width)보다 크거나 같을 경우에는 상측 주변 블록의 인트라 모드가 먼저 고려되고, 이후에 좌측 주변 블록의 인트라 모드가 고려될 수 있다.
주변 블록이 인트라 모드가 아닌 인터 모드로 코딩되었을 때에도 IPM 버퍼에 의해 인트라 모드 정보를 획득할 수 있다. 이웃한 인터 블록의 움직임 벡터가 가리키는 위치에 인트라 모드가 적용된 경우, 해당 인트라 모드를 IPM 버퍼에 저장할 수 있다. IPM 버퍼에 저장된 인트라 모드는 이웃 블록의 SMPM 후보로 활용될 수 있다.
현재 블록에 인트라 예측이 적용되는 경우, 현재 블록의 인트라 예측에 사용할 주변 참조 샘플들이 도출될 수 있다. 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 좌측 경계에 인접한 샘플 및 좌하측(bottom-left)에 이웃하는 총 2xnH 개의 샘플들, 현재 블록의 상측(top) 경계에 인접한 샘플 및 우상측(top-right)에 이웃하는 총 2xnW 개의 샘플들 및 현재 블록의 좌상측(top-left)에 이웃하는 1개의 샘플을 포함할 수 있다. 또는, 상기 현재 블록의 주변 참조 샘플들은 복수열의 상측 주변 샘플들 및 복수행의 좌측 주변 샘플들을 포함할 수도 있다. 또한, 상기 현재 블록의 주변 참조 샘플들은 nWxnH 크기의 현재 블록의 우측 경계에 인접한 총 nH 개의 샘플들, 현재 블록의 하측(bottom) 경계에 인접한 총 nW 개의 샘플들 및 현재 블록의 우하측(bottom-right)에 이웃하는 1개의 샘플을 포함할 수도 있다.
한편, 후술하는 MRL이 적용되는 경우, 참조 샘플들은 좌측/상측에서 현재 블록에 인접한 0번 라인이 아닌, 1번 내지 3번 라인에 위치할 수 있으며, 이 경우 주변 참조 샘플들의 개수는 더 늘어날 수 있다. 구체적인 주변 참조 샘플들의 영역 및 개수는 후술된다.
후술하는 ISP가 적용되는 경우, 상기 주변 참조 샘플들을 서브파티션 단위로 도출될 수 있다.
한편, 현재 블록의 주변 참조 샘플들 중 일부는 아직 디코딩되지 않았거나, 이용 가능하지 않을 수 있다. 이 경우, 디코딩 장치(300)는 이용 가능한 샘플들의 보간(interpolation)을 통하여 예측에 사용할 주변 참조 샘플들을 구성할 수 있다.
또는, 현재 블록의 주변 참조 샘플들 중 일부는 아직 디코딩되지 않았거나, 이용 가능하지 않은 경우에, 디코딩 장치(300)는 이용 가능한 샘플들의 외삽 (extrapolation)을 통하여 예측에 사용할 주변 참조 샘플들을 구성할 수도 있다. 좌하단을 시작으로 우상단 참조 샘플에 도달할 때까지, 참조 가능한 샘플을 최신의 샘플로 업데이트 하면서 아직 디코딩되지 않았거나 이용 가능하지 않은 픽셀을 last available sample로 대체(substitution) 또는 패딩(padding)하여 구성할 수 있다.
전술한 바와 같이, 현재 블록에 적용될 인트라 예측 모드와 주변 참조 샘플이 도출되면, 인코딩 장치(200)/디코딩 장치(300)의 예측부는 현재 블록의 주변 참조 샘플들 중 상기 현재 블록의 인트라 예측 모드에 따른 참조 샘플을 도출할 수 있고, 상기 참조 샘플을 기반으로 현재 블록의 예측 샘플을 생성할 수 있다.
전술한 바와 같이, (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다.
또한, 주변 참조 샘플들 중 현재 블록의 예측 샘플을 기준으로 현재 블록의 인트라 예측 모드의 예측 방향의 반대 방향에 위치하는 제2 주변 샘플과 제1 주변 샘플과의 보간을 통하여 예측 샘플이 생성될 수도 있다. 이러한 방법은 선형 보간 인트라 예측(Linear interpolation intra prediction, LIP) 이라고 지칭할 수 있다.
또한, 필터링된 주변 참조 샘플들을 기반으로 현재 블록의 임시 예측 샘플을 도출하고, 기존의 주변 참조 샘플들, 즉, 필터링되지 않은 주변 참조 샘플들 중 인트라 예측 모드에 따라 도출된 적어도 하나의 참조 샘플과 임시 예측 샘플을 가중합(weighted sum)하여 현재 블록의 예측 샘플을 도출할 수도 있다. 이러한 방법은 PDPC(Position dependent intra prediction) 라고 불릴 수 있다.
또한, 현재 블록의 주변 다중 참조 샘플 라인 중 가장 예측 정확도가 높은 참조 샘플 라인을 선택하여 해당 라인에서 예측 방향에 위치하는 참조 샘플을 이용하여 예측 샘플을 도출하고, 이 때 사용된 참조 샘플 라인을 디코딩 장치에 지시(시그널링)하는 방법으로 인트라 예측 부호화를 수행할 수 있다. 이러한 방법은 multi-reference line intra prediction (MRL) 또는 MRL 기반 인트라 예측이라고 불릴 수 있다.
또한, 현재 블록을 수직 또는 수평의 서브파티션들로 나누어 동일한 인트라 예측 모드를 기반으로 인트라 예측을 수행하되, 상기 서브파티션 단위로 주변 참조 샘플들을 도출하여 이용할 수 있다. 즉, 이 경우 현재 블록에 대한 인트라 예측 모드가 상기 서브파티션들에 동일하게 적용되되, 상기 서브파티션 단위로 주변 참조 샘플을 도출하여 이용함으로써 경우에 따라 인트라 예측 성능을 높일 수 있다. 이러한 예측 방법은 intra sub-partitions (ISP) 또는 ISP 기반 인트라 예측이라고 불릴 수 있다.
예측 샘플을 기준으로 한 예측 방향이 주변 참조 샘플들 사이를 가리키는 경우, 즉, 예측 방향이 분수 샘플 위치를 가리키는 경우, 해당 예측 방향 주변(해당 분수 샘플 위치 주변)에 위치한 복수의 참조 샘플들의 보간을 통하여 예측 샘플의 값을 도출할 수도 있다.
앞에서도 언급한 바와 같이, 상술한 인트라 예측 방법들은 앞서 설명한 노멀 인트라 예측 모드 또는 레귤러 인트라 예측 모드와 구분하기 위해 인트라 예측 타입이라고 불릴 수 있다. 또한, 상기 인트라 예측 타입은 인트라 예측 기법, 인트라 예측 툴(tool) 또는 부가 인트라 예측 모드 등 다양한 용어로 불릴 수 있다. 예를 들어 상기 인트라 예측 타입(또는 부가 인트라 예측 모드 등)은 상술한 LIP, PDPC, MRL, ISP 중 적어도 하나를 포함할 수 있다. 인트라 예측 타입에 관한 정보는 인코딩 장치에서 인코딩되어 비트스트림에 포함되어 디코딩 장치로 시그널링될 수 있다. 또한, 인트라 예측 타입에 관한 정보는 각 인트라 예측 타입의 적용 여부를 가리키는 플래그 정보 또는 여러 인트라 예측 타입 중 하나를 지시하는 인덱스 정보 등 다양한 형태로 구현될 수 있다.
상술한 인트라 예측 모드 도출을 위한 MPM 리스트는 인트라 예측 타입에 따라 다르게 구성될 수 있다. 또는 MPM 리스트가 인트라 예측 타입에 무관하게 공통적으로 구성될 수도 있다.
일 실시예에 적용 가능한 인트라 예측 타입의 다른 예로, 인트라 예측 결합(Intra prediction fusion)에 대해 설명한다. 인트라 예측 결합에 따르면, 서로 다른 참조 라인들로부터 생성된 복수의 예측자들(predictor)을 가중 평균(weighted averaging) 방식으로 결합하여 예측 샘플(predicted sample)을 도출한다. 이 과정에서는 복수의 인트라 예측자들이 생성된 후, 가중 평균을 통해 결합되며, 결합에 사용될 예측자들을 도출하는 과정은 다음과 같다.
TIMD 및 DIMD의 단일 모드(single mode)를 포함한 각도(angular) 인트라 예측 모드의 경우, 본 방법은 기본 참조 라인(default reference line)으로부터의 인트라 예측인 p_line과, 상기 기본 참조 라인의 바로 위 라인으로부터의 예측인 p_(line+1)을 이용하여, p_fusion = w_0·p_line + w_1·p_(line+1) 형태의 가중치를 적용하여 인트라 예측을 도출한다. 여기서 가중치는 w_0 = 3/4, w_1 = 1/4로 설정될 수 있다.
블렌딩이 적용된 TIMD 모드의 경우, 첫 번째 모드에서는 p_line이 사용되며 (w_0 = 1, w_1 = 0), 두 번째 모드에서는 p_(line+1)이 사용된다 (w_0 = 0, w_1 = 1).
블렌딩이 적용된 DIMD 모드의 경우, 가중 평균에 사용되는 예측자의 수는 기존 3개에서 6개로 증가한다.
인트라 예측 결합은, 각도 인트라 모드가 비정수 기울기(non-integer slope)를 갖는 경우(즉, 참조 샘플 보간이 필요한 경우)이며, 블록 크기가 16보다 큰 루마 블록에 적용될 수 있다. 본 방법은 MRL(Multiple Reference Line)과 함께 사용되며, ISP(Intra Sub-Partition)로 부호화된 블록에는 적용되지 않는다. 현재 블록에 가장 근접한 참조 라인을 사용하는 인트라 예측 모드에 대해서는 PDPC(Predictor Dependent Prediction Combination)가 적용될 수 있다.
SGPM은 Inter GPM과 유사하게 하나의 분할 모드와 두 개의 관련된 인트라 예측 모드로 구성된다. 이러한 모드들이 비트스트림에 직접 신호화될 경우, 상당한 오버헤드 비트가 발생하게 된다. 비트스트림 내에서 필요한 분할 및 예측 정보를 보다 효율적으로 표현하기 위해, 후보 리스트(candidate list)가 사용되며, 비트스트림에는 후보 인덱스만이 신호화된다. 리스트의 각 후보는 하나의 분할 모드와 두 개의 인트라 예측 모드의 조합을 유도할 수 있다.
SGPM 모드는 다음과 같이 제한된 블록 크기로 적용될 수 있다:
4<=width<=64, 4<=height<=64, width<height*8, height<width*8, width*height>=32. 즉, SGPM은 4x8, 8x4, 4x16 and 16x4 사이즈의 블록들에도 적용될 수 있다.
또한, 적응적 블렌딩(adaptive)이 가능하다. VVC 및 ECM에서의 원래 블렌딩 폭이 τ라고 가정할 때, 제안된 어댑티브 SGPM 블렌딩은 다음과 같이 설명될 수 있다:
- min(width, height)가 4인 경우, 1/2 τ가 선택된다.
- 그렇지 않고 min(width, height)가 8인 경우, τ가 선택된다.
- 그렇지 않고 min(width, height)가 16인 경우, 2 τ가 선택된다.
-그렇지 않고 min(width, height)가 32인 경우, 4 τ가 선택된다.
- 그 외의 경우에는, 8 τ가 선택된다.
64개의 분할 모드 중 26개의 미리 정의된 분할 모드가 사용된다.
각 분할 모드에 대해, 각 부분(part)에 대한 IPM 리스트가 도출된다. IPM 리스트의 크기는 3이다. IPM 리스트 도출 방법은 인터-인트라 GPM에서 도입된 방법을 재사용하며, 유일한 차이점은 TIMD 도출 모드가 제외된다는 것이다.
템플릿 크기는 1로 설정된다. 즉, 상단 템플릿 부분의 높이는 1이고, 좌측 템플릿 부분의 너비는 1이다.
하나의 분할 모드와 두 개의 인트라 예측 모드의 가능한 조합은, 예측값과 템플릿의 재구성값 사이의 SAD(Sum of Absolute Differences)에 기반하여 오름차순으로 정렬된다. 템플릿 내의 가중치는 분할 모드에 따라 1 또는 0으로 설정된다. 조합 후보 리스트의 길이는 16으로 설정된다.
TIMD 도출 인트라 예측 모드(수평 및 수직 모드)는 IPM 리스트에 추가되며, 첫 번째 위치에 배치된다. IPM 리스트의 크기는 3으로 유지된다.
템플릿 기반 다중 참조라인 인트라 예측(Template-based Multiple Reference Line Intra Prediction, TMRL) 모드는 참조라인(reference line)과 예측 모드(prediction mode)를 결합하고, 템플릿 매칭 방법(template matching method)을 사용하여 후보 조합 리스트를 구성한다. 현재 블록의 부호화 시 어떤 참조라인과 예측 모드를 사용하는지를 나타내기 위해, 후보 조합 리스트에 대한 인덱스가 부호화된다. 비-TIMD 영역에 대해 일반적인 다중 참조라인(Multiple Reference Line, MRL)은 TMRL 모드로 대체된다.
TMRL 모드는 참조라인 후보 리스트와 인트라 예측 모드 후보 리스트를 확장한다. 확장된 참조라인 후보 리스트는 {1, 3, 5, 7, 12}로 구성된다. 최상단 CTU 행(top CTU row)에 대한 제한은 변경되지 않는다. 인트라 예측 모드 후보 리스트의 크기는 10이다. 인트라 예측 모드 후보 리스트의 구성은 다음과 같은 차이를 제외하고는 MPM(Most Probable Mode) 방식과 유사하다:
- 플래너 모드는 인트라 예측 모드 후보 리스트에서 제외된다.
- DC 모드는, 만약 리스트에 포함되어 있지 않은 경우, 5개의 이웃 PU(예측 유닛)의 모드들과 DIMD 모드들 뒤에 추가된다.
- 기존의 인트라 예측 모드 후보 리스트에 포함된 각도 모드와 비교하여, ±1에서 ±4까지의 델타 각을 갖는 각도 모드들이 추가된다.
한편, 각도 예측의 정밀도는 65에서 129로 확장된다. 또한, 인트라 후보 리스트 구성 시 인접하지 않은(non-adjacent) 위치들도 후보로 추가된다. 주변 블록 또는 비인접 블록이 SGPM 또는 GPM 모드로 부호화된 경우, 해당 블록의 인트라 모드는 분할 각도(partitioning angles)로 대체된다.
TMRL 후보는 다음과 같이 구성된다.
확장된 참조 라인과 허용된 인트라 예측 모드의 조합은 총 5×10 = 50개이다. 확장된 참조라인이 참조라인 1부터 시작하므로, 참조라인 0이 커버하는 영역은 템플릿 매칭에 사용된다. 템플릿 영역에 대해, 50개의 조합으로 생성된 예측값과 재구성값 간의 SAD(Sum of Absolute Differences) 비용이 계산된다. SAD 비용이 가장 낮은 20개의 조합이 오름차순으로 선택되어 TMRL 후보 리스트를 구성한다.
TMR 시그널링에 있어서, 참조라인과 인트라 모드를 직접 부호화하는 대신, 현재 블록의 부호화에 사용된 참조라인과 예측 모드의 조합을 나타내기 위해 TMRL 후보 리스트에 대한 인덱스가 부호화된다.
이하, 사용 가능한 디코딩된 참조 샘플에 따른 부분적인 MPM 리오더링에 관해 설명한다. 현재 루마 코딩 블록(luma CB)에 대해, 그 우상측(above-right)에 있는 디코딩된 참조 샘플 중 사용 가능한 것이 하나도 없는 경우, 현재 루마 CB의 높이(H)와 너비(W)를 이용한 abs(floorLog2(W) - abs(floorLog2(H)))의 값에 따라, 마지막 6개, 10개 또는 12개의 수직 양의(vertical positive) 인트라 예측 모드(잠재적인 wide-angle 모드 포함)가 “예약(reserved)”으로 태그된다.
현재 루마 CB의 좌하측(bottom-left)에 있는 디코딩된 참조 샘플 중 사용 가능한 것이 하나도 없는 경우, 처음 6개, 10개 또는 12개의 수평 양(horizontal positive)의 인트라 예측 모드(잠재적인 wide-angle 모드 포함)가 “예약(reserved)”으로 태그된다.
현재 루마 CB의 MPM(Most Probable Mode) 리스트를 도출하는 과정에서, 플래너 모드를 리스트에 추가한 후, 루마 CB를 예측하기 위해 선택된 각 모드(“좌(0)”, “상(1)”, “좌하(2)”, “우상(3)”, “좌상(4)”)에 대해, 해당 모드가 “예약(reserved)”으로 태그되어 있고 “예약 리스트”에 아직 포함되지 않은 경우, 그 모드를 “예약 리스트”에 추가한다. 그렇지 않고 이미 현재 MPM 리스트에 있지 않은 경우에는 현재 MPM 리스트에 추가한다. 그리고, “예약 리스트”를 현재 MPM 리스트에 추가한다. 마지막으로, MPM 리스트 도출의 나머지 과정을 수행한다.
이하, 템플릿 기반 인트라 MPM 리스트를 구성하는 방법에 대해 설명한다. 먼저 22개의 항목으로 구성된 일반 MPM 리스트가 구성되고, 이후 이 일반 MPM 리스트의 처음 6개 항목이 PMPM(Primary MPM) 리스트에 포함되며, 나머지 항목들은 SMPM(Secondary MPM) 리스트를 구성한다. 일반 MPM 리스트의 첫 번째 항목은 항상 플래너 모드이다. 나머지 항목들은 인접 블록으로부터 도출된 인트라 모드 및 DIMD 모드, 인접 블록의 처음 두 개의 사용 가능한 방향성 모드에 오프셋을 더한 방향성 모드, 그리고 디폴트 모드들로 구성된다.
1. 일반 MPM 리스트의 첫 번째 항목은 항상 플래너 모드이다.
2. 다음 항목들은 인접 블록의 인트라 모드와 DIMD 모드들로 구성되며, SAD 비용의 오름차순으로 정렬된다. SAD 비용이 가장 작은 최대 5개의 모드가 추가된다. SAD 비용은 템플릿의 예측값과 재구성 샘플 간의 차이를 기준으로 계산된다.
3. SAD 비용으로 정렬된 방향성 모드에 오프셋을 추가한 모드들이 일반 MPM 리스트에 추가되고, 그 후 디폴트 모드들이 추가되어, 최종적으로 22개의 항목으로 구성된 일반 MPM 리스트가 완성된다.
현재 블록에 인트라 예측이 수행되는 경우, 현재 블록의 루마 성분 블록(루마 블록)에 대한 예측 및 크로마 성분 블록(크로마 블록)에 대한 예측이 수행될 수 있으며, 이 경우 크로마 성분(크로마 블록)에 대한 인트라 예측 모드는 루마 성분(루마 블록)에 대한 인트라 예측 모드와 개별적으로 설정될 수 있다.
예를 들어, 크로마 성분에 대한 인트라 예측 모드는 인트라 크로마 예측 모드 정보를 기반으로 지시될 수 있으며, 상기 인트라 크로마 예측 모드 정보는 intra_chroma_pred_mode 신택스 요소의 형태로 시그널링될 수 있다. 일 예로, 상기 인트라 크로마 예측 모드 정보는 플래너 모드, DC 모드, 수직(vertical) 모드, 수평(horizontal) 모드, DM, L_CCLM, T_CCLM, LT_CCLM 모드들 중 적어도 하나를 포함하는 후보 모드들 중 하나를 가리킬 수 있다. DM은 direct mode라고 불릴 수도 있고, CCLM은 LM이라고 불릴 수 있다.
한편, DM과 CCLM은 루마 블록의 정보를 이용하여 크로마 블록을 예측하는 종속적인 인트라 예측 모드이다. DM은 루마 성분에 대한 인트라 예측 모드와 동일한 인트라 예측 모드가 크로마 성분에 대한 인트라 예측 모드로 적용되는 모드를 나타낼 수 있다. 또한, CCLM은 크로마 블록에 대한 예측블록을 생성하는 과정에서 루마 블록의 복원된 샘플들을 서브샘플링한 후, 서브샘플링된 샘플들에 CCLM 파라미터인 α 및 β를 적용하여 도출된 샘플들을 크로마 블록의 예측 샘플들로 사용하는 인트라 예측 모드를 나타낼 수 있다.
예를 들어, 현재 크로마 블록에 Multiple Direct Modes (MDM) 가 적용될 수 있다.
Multiple Direct mode는 기존 단일 모드인 DM 모드를 복수의 모드로 확장하여 사용한다. 즉 색차 영상의 인트라 예측 모드 구성 시, 다음과 같이 복수의 DM 모드를 선택한다:
- 동일위치 휘도 블록의 CR, TL, TR, BL, BR 위치의 인트라 예측 모드
- 현 색채 블록 주변 블록인 L, A, BL, AR, AL 블록의 인트라 예측 모드
- 플래너, DC 모드
- 앞서 선택된 angular 모드에 -1 or +1 angular 모드
- Vertical, Horizontal, 2, 34, 66, 10, 26번 모드(65 방향 모드인 경우)
- 5개의 예측 모드가 선택되지 않았을 경우, 앞서 선택된 모드를 복사하여 선택
또한, 현재 크로마 블록에 CCLM 모드가 적용될 수 있다. CCLM 모드는 루마 블록과 상기 루마 블록에 대응하는 크로마 블록과의 상관성(correlation)을 이용한 인트라 예측 모드로, 루마 블록의 주변 샘플들 및 크로마 블록의 주변 샘플들을 기반으로 선형 모델이 도출될 수 있고, 선형 모델 및 상기 루마 블록의 복원 샘플들을 기반으로 크로마 블록의 예측 샘플들이 도출되는 모드를 나타낼 수 있다. 구체적으로 현재 크로마 블록에 상기 CCLM 모드가 적용되는 경우, 현재 크로마 블록의 인트라 예측에 사용되는 주변 샘플들 및 현재 루마 블록의 인트라 예측에 사용되는 주변 샘플들을 기반으로 상기 선형 모델에 대한 파라미터들이 도출될 수 있다.
크로스 컴포넌트 간 중복성(cross-component redundancy)을 줄이기 위해, CCLM 예측 모드가 사용되며, 이 예측 모드에서는 동일한 CU의 재구성된 루마 샘플을 기반으로 다음과 같은 선형 모델을 이용하여 크로마 샘플을 예측한다:
예를 들어, 상기 선형 모델은 다음 수식 3을 기반으로 나타낼 수 있다.
[수식 3]
여기서, predc(i,j) 는 현재 CU 내 상기 현재 크로마 블록의 (i,j) 좌표의 예측 샘플을 나타낼 수 있고, recL'(i,j)는 상기 CU 내 상기 현재 루마 블록의 (i,j) 좌표의 복원 샘플을 나타낼 수 있다. 또한, 상기 recL'(i,j)는 상기 현재 루마 블록의 다운 샘플링(down-sampled)된 복원 샘플을 나타낼 수 있다.
CCLM 파라미터(α 및 β)는 최대 네 개의 인접한 크로마 샘플과 그에 대응하는 다운샘플링된 루마 샘플을 이용하여 도출된다. 현재 크로마 블록의 크기가 W×H라고 가정하면, W′ 및 H′는 다음과 같이 설정된다:
- LM 모드가 적용되는 경우: W′ = W, H′ = H
- LM-A 모드가 적용되는 경우: W′ = W + H
- LM-L 모드가 적용되는 경우: H′ = H + W
상기 상단 인접 위치는 S[0, -1]…S[W′-1, -1]로, 좌측 인접 위치는 S[-1, 0]…S[-1, H′-1]로 나타낸다. 이후, 네 개의 샘플은 다음과 같이 선택된다:
- LM 모드가 적용되고, 상단 및 좌측 인접 샘플이 모두 사용 가능한 경우:
S[W′/4, -1], S[3W′/4, -1], S[-1, H′/4], S[-1, 3H′/4]
- LM-A 모드가 적용되거나, 상단 인접 샘플만 사용 가능한 경우:
S[W′/8, -1], S[3W′/8, -1], S[5W′/8, -1], S[7W′/8, -1]
- LM-L 모드가 적용되거나, 좌측 인접 샘플만 사용 가능한 경우:
S[-1, H′/8], S[-1, 3H′/8], S[-1, 5H′/8], S[-1, 7H′/8]
선택된 위치에 대응하는 네 개의 인접 루마 샘플은 다운샘플링되어 비교되고, 그중 두 개의 작은 값은 x0A 및 x1A로, 두 개의 큰 값은 x0B 및 x1B로 설정된다. 이들과 대응하는 크로마 샘플 값은 각각 y0A, y1A, y0B, y1B로 나타낸다. 이후, xA, xB, yA, yB는 다음 수식 4와 같이 도출된다:
[수식 4]
선형 모델 파라미터 α 및 β는 다음 수식 5에 따라 산출된다:
[수식 5]
위에서 설명한 상단 템플릿(above template) 및 좌측 템플릿(left template)은 선형 모델 계수를 함께 계산하는 데 사용될 수 있을 뿐만 아니라, 두 개의 다른 LM 모드인 LM_A 모드 및 LM_L 모드에서는 각각 개별적으로 사용될 수도 있다.
LM_A 모드에서는, 선형 모델 계수를 계산하기 위해 상단 템플릿만 사용된다. 더 많은 샘플을 얻기 위해, 상단 템플릿은 (W+H)까지 확장된다. LM_L 모드에서는, 선형 모델 계수를 계산하기 위해 좌측 템플릿만 사용된다. 더 많은 샘플을 얻기 위해, 좌측 템플릿은 (H+W)까지 확장된다.
비정방형(non-square) 블록의 경우, 상단 템플릿은 W+W까지 확장되며, 좌측 템플릿은 H+H까지 확장된다.
4:2:0 영상 시퀀스에서 크로마 샘플 위치에 맞추기 위해, 루마 샘플에는 수평 및 수직 방향 모두에서 2:1 다운샘플링 비율을 달성하기 위한 두 가지 유형의 다운샘플링 필터가 적용된다. 다운샘플링 필터의 선택은 SPS 수준의 플래그에 의해 지정된다.
예를 들어, 상단 참조선이 CTU 경계에 위치한 경우에는 다운샘플링된 루마 샘플을 생성하기 위해 루마 라인(인트라 예측에서의 일반 라인 버퍼) 하나만이 사용된다.
이 파라미터 계산은 디코딩 과정의 일부로 수행되며, 단순한 인코더 탐색 동작(encoder search operation)으로만 처리되지 않는다. 그 결과, α 및 β 값을 디코더로 전달하기 위한 신택스는 사용되지 않는다.
크로마 인트라 모드 부호화의 경우, 총 8개의 인트라 모드가 크로마 인트라 모드 부호화에 허용된다. 이 모드들에는 5개의 전통적인 인트라 모드와 3개의 크로스 컴포넌트 선형 모델 모드(CCLM, LM_A, LM_L)가 포함된다. 크로마 모드의 신호화 및 도출 과정은 아래 표 1 및 표 2에 나타나 있다.
크로마 모드 부호화는 해당 루마 블록의 인트라 예측 모드에 직접적으로 의존한다. I 슬라이스에서는 루마 및 크로마 컴포넌트에 대해 별도의 블록 분할 구조가 가능하므로, 하나의 크로마 블록이 복수의 루마 블록에 대응될 수 있다. 따라서, 크로마 DM 모드의 경우, 현재 크로마 블록의 중심 위치를 포함하는 해당 루마 블록의 인트라 예측 모드를 직접 상속할 수 있다.
후술하는 표 6은 CCLM이 가용하지 않은 경우의 인트라 크로마 예측 모드 도출을 위한 매핑 테이블을 나타내고, 표 7은 CCLM이 가용한 경우의 인트라 예측 모드 도출을 위한 매핑 테이블을 나타낸다. 표들에서 나타난 바와 같이 인트라 크로마 예측 모드는 현재 블록 또는 크로마 블록의 센터 우하측 샘플을 커버하는 루마 블록(ex. DUAL_TREE가 적용되는 경우)에 대한 인트라 루마 예측 모드 및 시그널링된 인트라 크로마 예측 모드(intra_chroma_pred_mode) 정보의 값을 기반으로 결정될 수 있다. 하기 표들에서 도출되는 IntraPredModeC[ xCb ][ yCb ]의 인덱스들은 전술한 인트라 예측 모드의 인덱스들과 대응될 수 있다.
[표 6]
[표 7]
도 16은 일 실시예에 따른 디코딩 방법의 일 예시를 나타내는 순서도이다.
일 실시예에 따른 디코딩 방법은 전술한 디코딩 장치(300)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 디코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 디코딩 장치(300)의 동작에 관한 설명과 디코딩 방법에 대한 설명(예를 들어, 도 4, 도 9, 도 12, 도 13 등) 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 16의 실시예에도 동일하게 적용될 수 있다.
도 16을 참조하면, 일 실시예에 따른 디코딩 방법은 비트스트림으로부터 예측 모드 정보를 획득하는 단계(S1600), 현재 블록에 대한 MPM 리스트를 구성하는 단계(S1610), 상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 현재 블록에 대한 인트라 예측 모드를 유도하는 단계(S1620), 및 유도된 인트라 예측 모드에 기반하여 현재 블록에 대한 복원 블록을 생성하는 단계(S1630)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S1610)는 MPM 리스트의 순서를 변경하는 것을 포함할 수 있다.
비트스트림으로부터 예측 모드 정보를 획득하는 단계(S1600)에 있어서, 예측 모드 정보는 현재 블록의 예측 모드에 관한 정보를 나타낼 수 있다. 현재 블록이 인트라 모드가 적용되는 인트라 블록인 경우, 예측 모드 정보는 인트라 예측 모드 정보일 수 있다.
앞서 설명한 바와 같이, 예측 모드 정보는 예를 들어, MPM이 현재 블록에 적용되는지 아니면 리메이닝 모드가 적용되는지 여부를 나타내는 플래그 정보(ex. intra_luma_mpm_flag)를 포함할 수 있고, MPM이 현재 블록에 적용되는 경우 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 가리키는 인덱스 정보(ex. intra_luma_mpm_idx)를 더 포함할 수 있다. 인트라 예측 모드 후보들(MPM 후보들)은 MPM 리스트로 구성될 수 있다.
또한, MPM이 현재 블록에 적용되지 않는 경우, 예측 모드 정보는 MPM 후보들을 제외한 나머지 인트라 예측 모드들 중 하나를 가리키는 리메이닝 모드 정보(ex. intra_luma_mpm_remainder)를 더 포함할 수 있다. 디코딩 장치(300)는 상기 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다.
MPM 리스트를 구성하는 단계(S1610)에 대해서는 앞서 설명한 MPM 리스트 구성 방법에 관한 설명이 동일하게 적용될 수 있다. 설명의 중복을 방지하기 위해, 여기서는 동일한 설명이 생략될 수 있다.
한편, S1610 단계에서 구성되는 MPM 리스트는 Primary MPM 리스트(PMPM 리스트)를 포함할 수도 있고, PMPM 리스트와 SMPM 후보 리스트(Secondary MPM 리스트)를 모두 포함할 수도 있다. 일 예로, PMPM 리스트의 크기는 플래너 모드를 포함하여 6일 수 있고, SMPM 리스트의 크기는 16일 수 있다. 따라서, PMPM 리스트와 SMPM 리스트를 모두 포함하는 MPM 리스트의 크기는 22일 수 있다. 각 리스트의 크기는 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의된 값일 수 있다.
도 17은 일 실시예에 따른 디코딩 방법에 있어서, MPM 리스트의 구성 시에 고려되는 주변 인트라 예측 모드들의 순서의 예시를 나타낸 도면이다.
도 17에 도시된 바와 같이, MPM 리스트 구성의 일 예로, 플래너 모드 → 인접 블록의 인트라 모드들 → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...), → 디폴트 인트라 모드들의 순서로 고려될 수 있다.
또한, 인접 블록의 인트라 모드들은, 좌측 주변 블록 인트라 모드 → 상측 주변 블록 인트라 모드 → 좌상측 주변 블록 인트라 모드 → 우상측 주변 블록 인트라 모드 → 좌하측 주변 블록 인트라 모드의 순서로 고려될 수 있다.
MPM 리스트의 크기 n(n은 자연수)이 채워질때까지 상기와 같은 순서로 인트라 예측 모드들을 MPM 리스트에 추가할 수 있다. 또한, MPM 리스트가 PMPM 리스트와 SMPM 리스트를 모두 포함하는 경우, MPM 리스트의 크기 n + SMPM 리스트의 크기 m(n과 m은 자연수)이 채워질때까지 상기와 같은 순서로 인트라 예측 모드들을 MPM 리스트에 추가할 수 있다. 즉, n+m 크기를 갖는 후보 리스트를 구성할 수 있다. 전술한 바와 같이, n은 6일 수 있고, m은 16일 수 있으나, 개시된 실시예는 이에 한정되지 않으며, 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의된 임의의 다른 값이 될 수도 있다.
이와 같이 MPM 리스트의 구성 시에 고려되는 인트라 예측 모드들의 순서는 인코딩 장치(200)와 디코딩 장치(300) 간에 사전에 정의될 수 있고, 상기와 다른 순서로 변경되는 것도 가능하다. MPM 리스트의 순서 변경에 관한 내용은 뒤에서 자세히 설명한다.
도 18은 MPM 리스트를 구성할 때 고려되는 인접 블록의 위치의 예시를 나타내는 도면이다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 인접 블록의 인트라 모드들을 고려한다. 이 때, 인접 블록은 도 18에 도시된 인접 위치(Adjacent position)의 블록일 수 있다. 구체적으로, 인접 블록의 인트라 모드는 현재 블록을 기준으로 좌측 위치를 포함하는 블록의 인트라 모드, 상측 위치를 포함하는 블록의 인트라 모드, 좌상측 위치를 포함하는 블록의 인트라 모드, 우상측 위치를 포함하는 블록의 인트라 모드, 좌하측 위치를 포함하는 블록 인트라 모드를 의미할 수 있다. 다만, 이러한 위치는 일 예시이며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 정의에 따라 인접 위치가 다르게 정의될 수도 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 DIMD 모드를 고려한다. 여기서, MPM 리스트에 추가되는 인트라 모드는 DIMD에 의해 유도된 인트라 모드를 의미할 수 있다. 한 개의 유도된 인트라 모드만 포함될 수도 있고 복수의 유도된 인트라 모드가 포함될 수도 있다. 일 예로, 인코딩 장치(200)와 디코딩 장치(300)가 사전에 그 개수를 정의할 수 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 인접하지 않은 블록의 인트라 모드를 고려한다. 이 때, 인접 블록은 도 18에 도시된 비인접 위치(Non-adjacent position)의 블록일 수 있다. 즉, 인접하지 않은 블록의 인트라 모드는 도 18에 도시된 바와 같이 현재 블록과 인접하지 않은 블록의 인트라 모드를 의미할 수 있다. 인접하지 않은 위치는 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 정의될 수 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 도출된 인트라 모드를 고려한다. 여기서, 도출된 인트라 모드란, MPM 리스트에 포함된 인트라 모드들의 주변 모드를 의미할 수 있다. 예를 들어, 포함된 인트라 모드가 {a, b, c, ...}라고 할 때, 도출된 인트라 모드란 a-1, a+1, a-2, a+2, a-3, a+3, b-1, b+1, b-2, b+2, b-3, b+3, c-1, c+1, c-2, c+2, c-3, c+3, ... 일 수 있다. 이는 하나의 예시이며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 도출 방법, 순서, 또는 범위 등이 결정될 수 있다.
전술한 순서대로 MPM 리스트를 구성하였음에도 MPM 리스트의 크기만큼 인트라 모드들을 채우지 못한 경우에는, 전술한 도 17에 도시된 바와 같이, 디폴트 인트라 모드로 채워질 수 있다. 예를 들어, 인트라 모드는 20개의 광각 방향성(wide angular) 모드와 65개의 일반 방향성 모드를 포함하는 최대 87개의 부호화 모드를 포함할 수 있다. 이 경우, 디폴트 인트라 모드는 DC_IDX, VER_IDX, HOR_IDX, VER_IDX - 4, VER_IDX + 4, HOR_IDX-4, HOR_IDX+4, VER_IDX - 8, VER_IDX + 8, HOR_IDX-8, HOR_IDX+8, VER_IDX - 12, VER_IDX + 12, HOR_IDX-12, HOR_IDX+12, 34, 66, 2, VER_IDX - 2, VER_IDX + 2, HOR_IDX-2일 수 있다. VER_IDX는 수직 방향 모드(50), HOR_IDX는 수평 방향 모드(18), 34번, 66번 모드는 각 번호에 매핑되는 방향의 모드를 의미할 수 있다. 이는 일 예시에 해당하며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 디폴트 모드를 정의할 수 있다.
한편, 도 17의 순서에 따르면 인접 블록이 DIMD 블록인 경우, 인접 DIMD 블록의 인트라 모드를 이용하여 MPM 리스트를 구성하게 된다. 인접 블록이 DIMD 블록이라는 것은, 인접 블록에 DIMD가 적용된 경우, 즉 인접 블록이 DIMD로 코딩된 경우를 나타낼 수 있다.
도 19는 인접 블록에 DIMD가 적용된 경우 인트라 모드 유도에 사용되는 템플릿 영역을 나타내는 도면이다.
도 19의 (a)를 참조하면, 현재 블록의 인접 블록에 DIMD가 적용된 경우, 인접 블록의 인트라 모드를 유도하기 위해 적용된 템플릿 영역은 Neighboring DIMD template area로 표시된 영역이고, 도 19의 (b)를 참조하면, 현재 블록에 DIMD를 적용하기 위해 사용되는 템플릿 영역은 current DIMD template area로 표시된 영역이다. 이와 같이, 인접 DIMD 블록의 인트라 모드로 MPM 리스트를 구성하게 되면, 도 19의 (a)에 도시된 바와 같이 현재 블록과 멀리 떨어진 템플릿 영역을 이용하여 유도된 모드로 MPM 리스트를 구성하게 된다. 반면에, 도 19의 (b)에 도시된 바와 같이 현재 블록과 가까운 템플릿 영역을 이용하여 유도된 모드가 현재 블록에 더 적합할 수 있다.
또한, 인접 블록이 DIMD 블록이 아니더라도, 템플릿 영역에서 오차값을 기반으로 리오더링을 하거나, 인트라 모드를 유도하거나, 또는 복수 개의 인트라 모드를 결합(fusion)하는 기술들 또한 현재 블록에 적용하기에 상대적으로 정확도가 떨어질 수 있다. 예를 들어, 인접 블록이 TIMD로 코딩된 경우에도 해당 인접 블록의 인트라 모드보다 현재 블록의 DIMD가 더 적합할 수 있다.
따라서, 일 실시예에 따른 디코딩 방법에서는 MPM 리스트 구성(S1610) 시에 미리 정해진 리스트 구성 순서(도 17에 도시)를 변경할 수 있다. 도 20은 일 실시예에 따라 변경된 MPM 리스트의 구성 순서의 예시를 나타낸 도면이다.
도 20을 참조하면, 좌측의 정해진 순서에 따라 MPM 리스트를 구성할 때, 인접 블록들 중 DIMD 또는 TIMD로 코딩된 인접 블록이 있는 경우에는 이들을 제외한 인접 블록의 인트라 모드들을 플래너 모드의 다음 순서로 고려할 수 있고, 그 다음에 DIMD 모드를 먼저 고려한 후, DIMD나 TIMD로 코딩된 인접블록의 인트라 모드들을 고려할 수 있다.
구체적인 예로, 인접 블록 중 DIMD로 코딩된 블록이 있는 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(DIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → DIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다. DIMD로 코딩된 인접 블록은 현재 블록 주변에 다수 개 존재할 수 있다. 이러한 경우도 상기 실시예에 동일하게 적용될 수 있다.
다른 예로, 인접 블록이 TIMD로 코딩된 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(TIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → TIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
또는, 다수 개의 기술이 함께 고려되어 변경될 수 있다. 예를 들어, 인접 블록이 DIMD, TIMD로 코딩된 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(DIMD, TIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → DIMD, TIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다. 이 때, DIMD와 TIMD로 코딩된 인접 블록의 인트라 모드를 추가함에 있어, 상호간의 순서는 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의될 수 있다. 예를 들면, 탐색 순서가 Left → Above → Above-Left → Above-Right → Left-Bottom라고 할 때, 먼저 등장하는 순서대로 추가할 수 있다. 또는, 기술별 우선 순위를 두어, 우선 순위를 갖는 모드가 우선적으로 추가될 수 있다. 일 예로, TIMD의 우선 순위가 DIMD 보다 높을 수 있다.
또는, 기술별로 우선순위를 설정하고 설정된 우선순위에 따라 MPM 리스트의 구성 순서를 변경할 수 있다. 예를 들어, 레귤러 모드의 가중치(w)는 4, TMRL의 가중치(w)는 3, TIMD의 가중치(w)는 2, SGPM의 가중치(w)는 1로 설정하는 것과 같이 기술별 우선순위를 나타내는 가중치를 설정할 수 있고, 가중치가 큰 순서대로 MPM 리스트에 추가될 수 있다. 기술별 우선순위를 나타내는 가중치는 인코딩 장치(200)와 디코딩 장치(300) 사이에 정의될 수 있다. 예를 들어, 블렌딩을 하거나, 복수 개의 인트라 모드를 사용하는 기술들(DIMD, TIMD, SGPM 등)로 코딩된 블록은 단일 인트라 모드만 사용하는 MPM 및/또는 SMPM에서 정확성이 떨어질 수 있다. 따라서, 이러한 기술들에 대해서는 가중치를 낮게 설정할 수 있다.
또는, 각 기술별 선택률을 기반으로 가중치를 정의할 수 있다. 일 예로, 평균적으로 DIMD 12%, TIMD 28%, TMRL 8%, SGPM 7% 등의 선택률을 가진다고 가정할 때, 이를 기반으로 높은 선택률을 가지는 모드는 가중치를 높게 설정할 수 있다. 또한 이러한 선택률은 영상마다 차이가 있고, qp 등으로 차이가 생길 수 있다. 이에 따라, 인코딩 장치(200)와 디코딩 장치(300)에서 현재 블록에 선택되는 기술을 카운트하여 선택률을 히스토그램 형태로 관리할 수 있으며, 이를 기반으로 가중치를 설정할 수 있다. 히스토그램은 픽처(Picture), 슬라이스(Slice), CTU row 또는 CTU 등 특정 유닛 단위로 초기화될 수 있다. 또한, 순서 변경은 인코딩 장치(200)와 디코딩 장치(300)간에 사전에 정의하여 일부 블록에 대해서만 적용할 수도 있다. 예를 들면, 인접 블록의 인트라 모드들에 대해서만 순서가 변경될 수 있으며, 순서는 다음과 같을 수 있다. 플래너 모드 → 인접 블록의 인트라 모드들(우선순위에 따라 순서가 변경되는 부분) → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
또는, 모드별로 우선순위를 두어 MPM 리스트를 구성하는 순서를 변경할 수 있다. 예를 들어, 18번(수평 방향) 모드는 가중치를 4로, 50번(수직 방향) 모드는 가중치를 3으로, 2번 내지 17번 모드는 가중치를 2로, 51번 내지 66번 모드는 가중치를 1로 설정하는 것과 같이 모드별로 가중치를 설정할 수 있고, 가중치가 큰 순서대로 MPM 리스트에 추가될 수 있다. 모드별 가중치는 인코딩 장치(200)와 디코딩 장치(300)간 약속으로 정의될 수 있다. 예를 들어, 각 모드별 선택률을 기반으로 가중치를 정의할 수 있다. 일 예로, 평균적으로 DC 모드, 50, 18, 46, 54, 14, 22, ... 등의 순서로 높은 선택률을 가진다고 가정할 때, 이를 기반으로 높은 선택률을 가지는 모드는 가중치를 높게 설정할 수 있다. 또한 이러한 선택률은 영상마다 차이가 있고, qp 등으로 차이가 생길 수 있다. 이에 따라, 인코딩 장치(200)와 디코딩 장치(300)에서 현재 블록에 대해 선택되는 인트라 모드를 카운트하여 선택률을 히스토그램 형태로 관리할 수 있으며, 이를 기반으로 가중치를 설정할 수 있다. 히스토그램은 픽처(Picture), 슬라이스(Slice), CTU row 또는 CTU 등 특정 유닛 단위로 초기화될 수 있다. 또한, 순서 변경은 인/디코더간 사전에 정의하여 일부 블록에 대해서만 적용할 수 있다. 예를 들면, 인접 블록의 인트라 모드들에 대해서만 순서가 변경될 수 있으며, 순서는 다음과 같을 수 있다. 플래너 모드 → 인접 블록의 인트라 모드들(우선순위에 따라 순서가 변경되는 부분) → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, 도출된 인트라 모드 전에 추가될 수 있다. 리스트 순서 변경과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, 리스트 순서 변경이 수행될 수 있다.
MPM 리스트의 순서 변경 여부를 나타내기 위해, VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 신택스 정보를 정의하고, 해당 정보가 특정 값인 경우에 MPM 리스트의 순서를 변경할 수 있다. 예를 들어, 해당 신택스 값이 1인 경우 MPM 리스트 순서를 변경하는 것으로 결정될 수 있다. 이 경우, 비트스트림으로부터 획득되는 예측 모드 정보에 MPM 리스트의 순서 변경 여부를 나타내는 신택스 요소가 포함될 수 있다.
한편, 전술한 MPM 리스트의 순서 변경은 현재 블록의 크기에 따라 제한적으로 적용될 수도 있다. 예를 들어, 현재 블록의 크기(=width x height)가 기준값(K, K는 자연수)보다 작거나 같은 경우에 MPM 리스트의 순서 변경이 적용될 수 있다. 또는, 현재 블록의 크기(=width x height)가 기준값(K)보다 큰 경우에 적용되는 것도 가능하다. 예를 들어, 기준값(K)은 128일 수 있으며, 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 값으로 설정할 수도 있다. 또한, 상기 현재 블록의 크기는 width와 height가 결합된 형태가 아니라 별개의 조건으로 주어질 수도 있다. 예를 들어, width≤M 및/또는 height≤N 조건을 만족하는 경우이거나, width>M 및/또는 height>N 조건을 만족하는 경우 상기 리스트 순서 변경이 적용될 수 있다. (M, N은 자연수이며, 서로 같거나 다를 수 있음)
또한, SGPM, TMRL, TIMD 등 템플릿 영역의 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM 리스트를 구성하는 것과 유사하게 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 상기 실시예들이 적용될 수 있다.
도 21은 일 실시예에 따른 인코딩 방법의 일 예시를 나타내는 순서도이다.
일 실시예에 따른 인코딩 방법은 전술한 인코딩 장치(200)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 인코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 인코딩 장치(200)의 동작에 관한 설명과 인코딩 방법에 대한 설명(예를 들어, 도 5, 도 7, 도 11 등에 관한 설명), 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 21의 예시에도 동일하게 적용될 수 있다.
도 21을 참조하면, 일 실시예에 따른 인코딩 방법은 MPM 리스트를 구성하는 단계(S1700), 현재 블록에 대한 인트라 예측 모드를 결정하는 단계(S1710), 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계(S1720) 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계(S1730)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S1700)는 MPM 리스트의 순서를 변경하는 것을 포함할 수 있다.
앞서 설명한 디코딩 방법의 실시예에서의 MPM 리스트 구성과 관련된 설명은 인코딩 방법의 실시예에서의 MPM 리스트 구성에 동일하게 적용될 수 있다. MPM 리스트의 순서 변경에 관한 설명도 동일하게 적용됨은 물론이다.
구체적으로, S1700 단계에서 구성되는 MPM 리스트는 Primary MPM 리스트(PMPM 리스트)를 포함할 수도 있고, PMPM 리스트와 SMPM 후보 리스트(Secondary MPM 리스트)를 모두 포함할 수도 있다. 일 예로, PMPM 리스트의 크기는 플래너 모드를 포함하여 6일 수 있고, SMPM 리스트의 크기는 16일 수 있다. 따라서, PMPM 리스트와 SMPM 리스트를 모두 포함하는 MPM 리스트의 크기는 22일 수 있다. 각 리스트의 크기는 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의된 값일 수 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트 구성의 일 예로, 플래너 모드 → 인접 블록의 인트라 모드들 → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...), → 디폴트 인트라 모드들의 순서로 고려될 수 있다.
또한, 인접 블록의 인트라 모드들은, 좌측 주변 블록 인트라 모드 → 상측 주변 블록 인트라 모드 → 좌상측 주변 블록 인트라 모드 → 우상측 주변 블록 인트라 모드 → 좌하측 주변 블록 인트라 모드의 순서로 고려될 수 있다.
MPM 리스트의 크기 n(n은 자연수)이 채워질때까지 상기와 같은 순서로 인트라 예측 모드들을 MPM 리스트에 추가할 수 있다. 또한, MPM 리스트가 PMPM 리스트와 SMPM 리스트를 모두 포함하는 경우, MPM 리스트의 크기 n + SMPM 리스트의 크기 m(n과 m은 자연수)이 채워질때까지 상기와 같은 순서로 인트라 예측 모드들을 MPM 리스트에 추가할 수 있다. 즉, n+m 크기를 갖는 후보 리스트를 구성할 수 있다. 전술한 바와 같이, n은 6일 수 있고, m은 16일 수 있으나, 개시된 실시예는 이에 한정되지 않으며, 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의된 임의의 다른 값이 될 수도 있다.
이와 같이 MPM 리스트의 구성 시에 고려되는 인트라 예측 모드들의 순서는 인코딩 장치(200)와 디코딩 장치(300) 간에 사전에 정의될 수 있고, 상기와 다른 순서로 변경되는 것도 가능하다. MPM 리스트의 순서 변경에 관한 내용은 뒤에서 자세히 설명한다.
MPM 리스트의 구성 시에 인접 블록의 인트라 모드들을 고려한다. 이 때, 인접 블록은 전술한 도 18에 도시된 인접 위치(Adjacent position)의 블록일 수 있다. 구체적으로, 인접 블록의 인트라 모드는 현재 블록을 기준으로 좌측 위치를 포함하는 블록의 인트라 모드, 상측 위치를 포함하는 블록의 인트라 모드, 좌상측 위치를 포함하는 블록의 인트라 모드, 우상측 위치를 포함하는 블록의 인트라 모드, 좌하측 위치를 포함하는 블록 인트라 모드를 의미할 수 있다. 다만, 이러한 위치는 일 예시이며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 정의에 따라 인접 위치가 다르게 정의될 수도 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 DIMD 모드를 고려한다. 여기서, MPM 리스트에 추가되는 인트라 모드는 DIMD에 의해 유도된 인트라 모드를 의미할 수 있다. 한 개의 유도된 인트라 모드만 포함될 수도 있고 복수의 유도된 인트라 모드가 포함될 수도 있다. 일 예로, 인코딩 장치(200)와 디코딩 장치(300)가 사전에 그 개수를 정의할 수 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 인접하지 않은 블록의 인트라 모드를 고려한다. 이 때, 인접 블록은 전술한 도 18에 도시된 비인접 위치(Non-adjacent position)의 블록일 수 있다. 즉, 인접하지 않은 블록의 인트라 모드는 도 18에 도시된 바와 같이 현재 블록과 인접하지 않은 블록의 인트라 모드를 의미할 수 있다. 인접하지 않은 위치는 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 정의될 수 있다.
전술한 도 17에 도시된 바와 같이, MPM 리스트의 구성 시에 도출된 인트라 모드를 고려한다. 여기서, 도출된 인트라 모드란, MPM 리스트에 포함된 인트라 모드들의 주변 모드를 의미할 수 있다. 예를 들어, 포함된 인트라 모드가 {a, b, c, 쪋}라고 할 때, 도출된 인트라 모드란 a-1, a+1, a-2, a+2, a-3, a+3, b-1, b+1, b-2, b+2, b-3, b+3, c-1, c+1, c-2, c+2, c-3, c+3, ... 일 수 있다. 이는 하나의 예시이며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 도출 방법, 순서, 또는 범위 등이 결정될 수 있다.
전술한 순서대로 MPM 리스트를 구성하였음에도 MPM 리스트의 크기만큼 인트라 모드들을 채우지 못한 경우에는, 전술한 도 17에 도시된 바와 같이, 디폴트 인트라 모드로 채워질 수 있다. 예를 들어, 디폴트 인트라 모드는 DC_IDX, VER_IDX, HOR_IDX, VER_IDX - 4, VER_IDX + 4, HOR_IDX-4, HOR_IDX+4, VER_IDX - 8, VER_IDX + 8, HOR_IDX-8, HOR_IDX+8, VER_IDX - 12, VER_IDX + 12, HOR_IDX-12, HOR_IDX+12, 34, 66, 2, VER_IDX - 2, VER_IDX + 2, HOR_IDX-2일 수 있다. VER_IDX는 수직 방향 모드(50), HOR_IDX는 수평 방향 모드(18), 34번, 66번 모드는 각 번호에 매핑되는 방향의 모드를 의미할 수 있다. 이는 일 예시에 해당하며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 디폴트 모드를 정의할 수 있다.
한편, 전술한 도 17의 순서에 따르면 인접 블록이 DIMD 블록인 경우, 인접 DIMD 블록의 인트라 모드를 이용하여 MPM 리스트를 구성하게 된다. 인접 블록이 DIMD 블록이라는 것은, 인접 블록에 DIMD가 적용된 경우, 즉 인접 블록이 DIMD로 코딩된 경우를 나타낼 수 있다.
전술한 도 19의 (a)를 참조하면, 현재 블록의 인접 블록에 DIMD가 적용된 경우, 인접 블록의 인트라 모드를 유도하기 위해 적용된 템플릿 영역은 Neighboring DIMD template area로 표시된 영역이고, 도 19의 (b)를 참조하면, 현재 블록에 DIMD를 적용하기 위해 사용되는 템플릿 영역은 current DIMD template area로 표시된 영역이다. 이와 같이, 인접 DIMD 블록의 인트라 모드로 MPM 리스트를 구성하게 되면, 도 19의 (a)에 도시된 바와 같이 현재 블록과 멀리 떨어진 템플릿 영역을 이용하여 유도된 모드로 MPM 리스트를 구성하게 된다. 반면에, 도 19의 (b)에 도시된 바와 같이 현재 블록과 가까운 템플릿 영역을 이용하여 유도된 모드가 현재 블록에 더 적합할 수 있다.
또한, 인접 블록이 DIMD 블록이 아니더라도, 템플릿 영역에서 오차값을 기반으로 리오더링을 하거나, 인트라 모드를 유도하거나, 또는 복수 개의 인트라 모드를 결합(fusion)하는 기술들 또한 현재 블록에 적용하기에 상대적으로 정확도가 떨어질 수 있다. 예를 들어, 인접 블록이 TIMD로 코딩된 경우에도 해당 인접 블록의 인트라 모드보다 현재 블록의 DIMD가 더 적합할 수 있다.
따라서, 일 실시예에 따른 인코딩 방법에서는 MPM 리스트 구성(S1710) 시에 미리 정해진 리스트 구성 순서를 변경할 수 있다.
전술한 도 20을 참조하면, 좌측의 정해진 순서에 따라 MPM 리스트를 구성할 때, 인접 블록들 중 DIMD 또는 TIMD로 코딩된 인접 블록이 있는 경우에는 이들을 제외한 인접 블록의 인트라 모드들을 플래너 모드의 다음 순서로 고려할 수 있고, 그 다음에 DIMD 모드를 먼저 고려한 후, DIMD나 TIMD로 코딩된 인접블록의 인트라 모드들을 고려할 수 있다.
구체적인 예로, 인접 블록 중 DIMD로 코딩된 블록이 있는 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(DIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → DIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다. DIMD로 코딩된 인접 블록은 현재 블록 주변에 다수 개 존재할 수 있다. 이러한 경우도 상기 실시예에 동일하게 적용될 수 있다.
다른 예로, 인접 블록이 TIMD로 코딩된 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(TIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → TIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
또는, 다수 개의 기술이 함께 고려되어 변경될 수 있다. 예를 들어, 인접 블록이 DIMD, TIMD로 코딩된 경우, MPM 리스트의 구성 순서는 플래너 모드 → 인접 블록의 인트라 모드들(DIMD, TIMD로 코딩된 인접 블록 제외) → DIMD 모드들 → DIMD, TIMD로 코딩된 인접 블록의 인트라 모드 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다. 이 때, DIMD와 TIMD로 코딩된 인접 블록의 인트라 모드를 추가함에 있어, 상호간의 순서는 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의될 수 있다. 예를 들면, 탐색 순서가 Left → Above → Above-Left → Above-Right → Left-Bottom라고 할 때, 먼저 등장하는 순서대로 추가할 수 있다. 또는, 기술별 우선 순위를 두어, 우선 순위를 갖는 모드가 우선적으로 추가될 수 있다. 일 예로, TIMD의 우선 순위가 DIMD 보다 높을 수 있다.
또는, 기술별로 우선순위를 설정하고 설정된 우선순위에 따라 MPM 리스트의 구성 순서를 변경할 수 있다. 예를 들어, 레귤러 모드의 가중치(w)는 4, TMRL의 가중치(w)는 3, TIMD의 가중치(w)는 2, SGPM의 가중치(w)는 1로 설정하는 것과 같이 기술별 우선순위를 나타내는 가중치를 설정할 수 있고, 가중치가 큰 순서대로 MPM 리스트에 추가될 수 있다. 기술별 우선순위를 나타내는 가중치는 인코딩 장치(200)와 디코딩 장치(300) 사이에 정의될 수 있다. 예를 들어, 블렌딩을 하거나, 복수 개의 인트라 모드를 사용하는 기술들(DIMD, TIMD, SGPM 등)로 코딩된 블록은 단일 인트라 모드만 사용하는 MPM 및/또는 SMPM에서 정확성이 떨어질 수 있다. 따라서, 이러한 기술들에 대해서는 가중치를 낮게 설정할 수 있다.
또는, 각 기술별 선택률을 기반으로 가중치를 정의할 수 있다. 일 예로, 평균적으로 DIMD 12%, TIMD 28%, TMRL 8%, SGPM 7% 등의 선택률을 가진다고 가정할 때, 이를 기반으로 높은 선택률을 가지는 모드는 가중치를 높게 설정할 수 있다. 또한 이러한 선택률은 영상마다 차이가 있고, qp 등으로 차이가 생길 수 있다. 이에 따라, 인코딩 장치(200)와 디코딩 장치(300)에서 현재 블록에 선택되는 기술을 카운트하여 선택률을 히스토그램 형태로 관리할 수 있으며, 이를 기반으로 가중치를 설정할 수 있다. 히스토그램은 픽처(Picture), 슬라이스(Slice), CTU row 또는 CTU 등 특정 유닛 단위로 초기화될 수 있다. 또한, 순서 변경은 인코딩 장치(200)와 디코딩 장치(300)간에 사전에 정의하여 일부 블록에 대해서만 적용할 수도 있다. 예를 들면, 인접 블록의 인트라 모드들에 대해서만 순서가 변경될 수 있으며, 순서는 다음과 같을 수 있다. 플래너 모드 → 인접 블록의 인트라 모드들(우선순위에 따라 순서가 변경되는 부분) → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
또는, 모드별로 우선순위를 두어 MPM 리스트를 구성하는 순서를 변경할 수 있다. 예를 들어, 18번(수평 방향) 모드는 가중치를 4로, 50번(수직 방향) 모드는 가중치를 3으로, 2번 내지 17번 모드는 가중치를 2로, 51번 내지 66번 모드는 가중치를 1로 설정하는 것과 같이 모드별로 가중치를 설정할 수 있고, 가중치가 큰 순서대로 MPM 리스트에 추가될 수 있다. 모드별 가중치는 인코딩 장치(200)와 디코딩 장치(300)간 약속으로 정의될 수 있다. 예를 들어, 각 모드별 선택률을 기반으로 가중치를 정의할 수 있다. 일 예로, 평균적으로 DC 모드, 50, 18, 46, 54, 14, 22, ... 등의 순서로 높은 선택률을 가진다고 가정할 때, 이를 기반으로 높은 선택률을 가지는 모드는 가중치를 높게 설정할 수 있다. 또한 이러한 선택률은 영상마다 차이가 있고, qp 등으로 차이가 생길 수 있다. 이에 따라, 인코딩 장치(200)와 디코딩 장치(300)에서 현재 블록에 대해 선택되는 인트라 모드를 카운트하여 선택률을 히스토그램 형태로 관리할 수 있으며, 이를 기반으로 가중치를 설정할 수 있다. 히스토그램은 픽처(Picture), 슬라이스(Slice), CTU row 또는 CTU 등 특정 유닛 단위로 초기화될 수 있다. 또한, 순서 변경은 인/디코더간 사전에 정의하여 일부 블록에 대해서만 적용할 수 있다. 예를 들면, 인접 블록의 인트라 모드들에 대해서만 순서가 변경될 수 있으며, 순서는 다음과 같을 수 있다. 플래너 모드 → 인접 블록의 인트라 모드들(우선순위에 따라 순서가 변경되는 부분) → DIMD 모드들 → 인접하지 않은 주변 블록의 인트라 모드들 → MPM 리스트의 모드들로부터 도출된 인트라 모드들(+1, -1, +2, -2, ...) → 디폴트 인트라 모드들로 변경될 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, 도출된 인트라 모드 전에 추가될 수 있다. 리스트 순서 변경과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, 리스트 순서 변경이 수행될 수 있다.
MPM 리스트의 순서 변경 여부를 나타내기 위해, VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 신택스 정보를 정의하고, 해당 정보가 특정 값인 경우에 MPM 리스트의 순서를 변경할 수 있다. 예를 들어, 해당 신택스 값이 1인 경우 MPM 리스트 순서를 변경하는 것으로 결정될 수 있다. 이 경우, S1730 단계에서 인코딩되는 예측 모드 정보에 MPM 리스트의 순서 변경 여부를 나타내는 신택스 요소가 포함될 수 있다.
한편, 전술한 MPM 리스트의 순서 변경은 현재 블록의 크기에 따라 제한적으로 적용될 수도 있다. 예를 들어, 현재 블록의 크기(=width x height)가 기준값(K, K는 자연수)보다 작거나 같은 경우에 MPM 리스트의 순서 변경이 적용될 수 있다. 또는, 현재 블록의 크기(=width x height)가 기준값(K)보다 큰 경우에 적용되는 것도 가능하다. 예를 들어, 기준값(K)은 128일 수 있으며, 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 값으로 설정할 수도 있다. 또한, 상기 현재 블록의 크기는 width와 height가 결합된 형태가 아니라 별개의 조건으로 주어질 수도 있다. 예를 들어, width≤M 및/또는 height≤N 조건을 만족하는 경우이거나, width>M 및/또는 height>N 조건을 만족하는 경우 상기 리스트 순서 변경이 적용될 수 있다. (M, N은 자연수이며, 서로 같거나 다를 수 있음)
또한, SGPM, TMRL, TIMD 등 템플릿 영역의 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM 리스트를 구성하는 것과 유사하게 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 상기 실시예들이 적용될 수 있다.
도 22는 일 실시예에 따른 디코딩 방법의 다른 예시에 관한 순서도이다.
일 실시예에 따른 디코딩 방법은 전술한 디코딩 장치(300)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 디코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 디코딩 장치(300)의 동작에 관한 설명과 디코딩 방법에 대한 설명(예를 들어, 도 4, 도 9, 도 12, 도 13 등), 그리고 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 22의 실시예에도 동일하게 적용될 수 있다.
도 22를 참조하면, 일 실시예에 따른 디코딩 방법은 비트스트림으로부터 예측 모드 정보를 획득하는 단계(S1800), 현재 블록에 대한 MPM 리스트를 구성하는 단계(S1810), 상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 현재 블록에 대한 인트라 예측 모드를 유도하는 단계(S1820), 및 유도된 인트라 예측 모드에 기반하여 현재 블록에 대한 복원 블록을 생성하는 단계(S1830)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S1810)는 MPM 리스트에 대해 템플릿 기반 정렬(sorting)을 수행하는 것을 포함할 수 있다.
비트스트림으로부터 예측 모드 정보를 획득하는 단계(S1800)에 있어서, 예측 모드 정보는 현재 블록의 예측 모드에 관한 정보를 나타낼 수 있다. 현재 블록이 인트라 모드가 적용되는 인트라 블록인 경우, 예측 모드 정보는 인트라 예측 모드 정보일 수 있다.
앞서 설명한 바와 같이, 예측 모드 정보는 예를 들어, MPM이 현재 블록에 적용되는지 아니면 리메이닝 모드가 적용되는지 여부를 나타내는 플래그 정보(ex. intra_luma_mpm_flag)를 포함할 수 있고, MPM이 현재 블록에 적용되는 경우 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 가리키는 인덱스 정보(ex. intra_luma_mpm_idx)를 더 포함할 수 있다. 인트라 예측 모드 후보들(MPM 후보들)은 MPM 리스트로 구성될 수 있다.
또한, MPM이 현재 블록에 적용되지 않는 경우, 예측 모드 정보는 MPM 후보들을 제외한 나머지 인트라 예측 모드들 중 하나를 가리키는 리메이닝 모드 정보(ex. intra_luma_mpm_remainder)를 더 포함할 수 있다. 디코딩 장치(300)는 상기 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다.
MPM 리스트를 구성하는 단계(S1810)에 대해서는 앞서 설명한 MPM 리스트 구성 방법에 관한 설명이 동일하게 적용될 수 있다. 예를 들어, 전술한 도 17 및 도 18에 관한 설명들이 당해 실시예에도 동일하게 적용될 수 있다. 설명의 중복을 방지하기 위해, 여기서는 동일한 설명이 생략될 수 있다.
도 23은 일 실시예에 따른 디코딩 방법에 있어서, MPM 리스트를 구성하는 과정의 예시를 나타낸 순서도이다.
도 23을 참조하면, MPM 리스트의 크기 n(n은 자연수)이 채워질 때까지 도시된 순서로 인트라 모드들을 추가하여 MPM 리스트를 구성할 수 있다.
MPM 리스트를 구성하는 경우, MPM 리스트의 크기 n + SMPM 리스트의 크기 m(m은 자연수)이 채워질 때까지 도 23에 도시된 순서로 인트라 모드들을 MPM 리스트에 추가할 수 있다. 즉, n+m 크기를 갖는 리스트를 구성할 수 있으며, 앞의 n개는 MPM 리스트, 뒤의 m개는 SMPM 리스트를 의미할 수 있다. 일 예로, MPM 리스트의 크기는 플래너 모드를 포함하여 6일 수 있다. SMPM 리스트 크기는 16일 수 있다. 각 리스트의 크기는 상기 예시된 값에 한정하지 않으며, 인코딩 장치(200)와 디코딩 장치(300) 사이의 약속에 따라 다른 값으로 정해질 수도 있다.
도 23에 도시된 바와 같이, MPM 리스트의 구성 중에 리스트를 정렬하는 과정(List sorting)이 포함될 수 있다. 당해 실시예에서 리스트를 정렬하는 것은 리스트를 리오더링(re-ordering)하는 것을 의미할 수 있다. 예를 들어. 리스트에 포함된 인트라 모드들에 대하여 템플릿 영역으로부터 예측한 예측 블록과 실제 복원 샘플과의 오차값을 구한 뒤, 오차값이 작은 순서로 인트라 모드를 정렬할 수 있다. 오차 계산 방법으로 SAD(Sum of absolute difference), SATD (Sum of absolute transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of absolute difference), MR-SSE(Mean-removed sum of squared error), MR-SATD(Mean-removed sum of absolute transformed difference) 등이 사용될 수 있다.
리스트 정렬은 현재 블록의 크기에 기반하여 수행될 수 있다. 예를 들면, 현재 블록의 크기(=width x height)가 K보다 작거나 같은 경우 수행될 수 있다. 일 예로, K는 128일 수 있으며, 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 값으로 설정할 수도 있다. 현재 블록의 크기에 대한 조건은 상기 예시에 한정하지 않으며, 현재 블록의 크기가 K보다 큰 경우 수행하거나, 또는 현재 블록의 크기를 판단하기 위한 조건으로 너비와 높이가 결합된 형태가 아닌 각각에 대해 별개의 조건을 적용할 수 있다. 또한, 플래너 모드는 정렬 후보에서 제외될 수 있다. 또한, 정렬되는 인트라 모드 개수가 특정 수를 넘지 않도록 제한할 수 있다. 예를 들면, 플래너 모드를 제외한 M개일 수 있다. 일 예로, M은 7일 수 있다. 또한, 정렬된 인트라 모드 M개 중 N개만을 사용할 수 있다. 일 예로, N은 5일 수 있다. 즉, 정렬된 7개의 인트라 모드 중 오차값이 작은 5개의 인트라 모드만을 사용할 수 있다. 이후, 5개 모드에 대하여 "도출된 인트라 모드들"을 획득하기 위한 과정이 수행될 수 있다. M과 N은 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의할 수 있으며, 7과 5 외에 다른 값으로 특정할 수도 있다. 만약 MPM 리스트에 인트라 모드가 충분히 채워지지 않아 M이 N보다 작은 경우, N은 M과 같은 값이 될 수 있다. 상기 MPM 리스트 정렬에 적용되는 K, M, N 값 및 조건들은 슬라이스 타입에 따라 다르게 결정될 수 있다. 예를 들어, I-Slice의 경우, K=128, M=7, N=5일 수 있고, I-Slice가 아닌 경우, K=1024, M=21, N=5일 수 있다.
한편, 전술한 리스트 정렬은 템플릿 영역을 기준으로 현재 블록과의 유사성을 판단하기 때문에, 일부 경우에는 정렬 결과가 정확하지 않을 수 있다.
도 24는 MPM 리스트의 구성 시에 템플릿 기반 정렬을 적용할 때 발생할 수 있는 경우들의 예시를 나타낸 도면이다.
도 24를 참조하면, (a) 엣지(edge) 등 현재 블록과 유사성을 판단하기에 중요한 텍스처(Texture) 정보가 템플릿 영역을 벗어나는 경우, (b) 현재 블록의 상측 템플릿은 현재 블록과의 유사성이 커서 오차값이 작지만 좌측 템플릿은 현재 블록과의 유사성이 적어 오차값이 큰 경우, (c) 현재 블록의 좌측 템플릿은 현재 블록과의 유사성이 커서 오차값이 작지만 상측 템플릿은 현재 블록과의 유사성이 적어 오차값이 큰 경우가 그러하다. 이러한 경우, 현재 블록에 가장 적합한 인트라 모드이더라도 오차값이 크게 산출되어 오히려 그 연산결과와 리스트 정렬 결과가 부정확할 수 있다.
이와 같이, 인접한 템플릿 영역과 현재 블록의 유사성이 떨어지는 경우에 리스트 정렬 결과가 부정확해지는 문제를 해결하기 위한 방법의 일 예시로, 오차 계산을 위한 템플릿 영역이 적응적으로 결정될 수 있다. 예를 들어, 현재 블록의 좌측에 위치하는 참조 샘플을 주로 사용하는 인트라 모드에 대해서는 좌측 템플릿 영역만을 사용하여 오차값을 계산할 수 있다. 또한, 현재 블록의 상측에 위치하는 참조 샘플을 주로 사용하는 인트라 모드에 대해서는 상측 템플릿 영역만을 사용하여 오차값을 계산할 수 있다.
예를 들어, 좌측 템플릿 영역만을 사용하는 인트라 모드는 2번 내지 18번 모드일 수 있다. 또한, 상측 템플릿 영역만을 사용하는 인트라 모드는 50번 내지 66번 모드일 수 있다. 그 외 인트라 모드는 좌측 및 상측 템플릿 영역을 모두 사용할 수 있다. 다만, 이는 일 실시예에 따른 디코딩 방법에 적용 가능한 일 예시에 불과하며, 인트라 모드별로 정의되는 템플릿 영역의 범위는 인코딩 장치(200)와 디코딩 장치(300)가 사전에 다른 범위로 정의할 수도 있다.
인트라 모드에 따라 서로 다른 템플릿 영역을 사용할 수 있게 되기 때문에, 인트라 모드간 오차값을 정확하게 비교하기 위해 오차값을 계산하는 데 사용한 템플릿 영역 내의 화소 개수로 오차값을 나누어줄 수 있다. 즉, 오차값의 평균으로 비교할 수 있으며, 인트라 모드 i의 오차값을 cost(i)라고 할 때, 인트라 모드 i의 오차값 평균은 cost(i)/N 또는 cost(i)>>k로 표현되어, 서로 다른 인트라 모드간 오차값을 비교할 수 있다. 여기서, N은 템플릿 영역 내 화소 개수, k는 2k=N을 만족하는 값을 의미할 수 있다.
또한, 템플릿 영역의 크기는 현재 블록의 크기에 기반하여 결정될 수 있다. 예를 들면, 현재 블록의 크기(=width x height)가 128 보다 작거나 같은 경우, 상측 템플릿 영역이 현재블록의 너비x1, 좌측 템플릿 영역이 1x현재 블록의 높이를 사용할 수 있고, 현재 블록의 크기가 128보다 큰 경우 상측 템플릿 영역이 현재 블록의 너비x2, 좌측 템플릿 영역이 2x현재 블록의 높이를 사용할 수 있다. 여기서 정해지는 템플릿 영역의 크기 및 템플릿 영역 크기를 결정하는 조건은 하나의 예시이며 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 조건과 기준값으로 결정될 수도 있다.
또는, 현재 블록의 길이에 기반하여 템플릿 영역의 크기가 결정될 수도 있다. 예를 들면, 현재 블록의 높이가 16 보다 작거나 같은 경우, 좌측 템플릿 영역이 (1x현재 블록의 높이)를 사용할 수 있고, 현재 블록의 높이가 16보다 큰 경우 좌측 템플릿 영역이 (2x현재 블록의 높이)를 사용할 수 있다. 현재 블록의 너비의 크기에 따라 결정되는 상측 템플릿 영역도 위 예시와 동일하게 결정될 수 있다. 예를 들어, 32x16 블록의 경우, 좌측 템플릿 영역은 1x16, 상측 템플릿 영역은 32x2의 크기를 가질 수 있다. 여기서 정해지는 템플릿 영역의 크기 및 템플릿 영역 크기를 결정하는 현재 블록 길이에 대한 조건은 하나의 예시이며 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 값으로 결정될 수 있다.
또한, 당해 예시는 앞서 설명한 도 16의 예시와 조합하여 같이 적용될 수 있다. 예를 들어, 작은 블록들에 대해서는 전술한 방식에 따라 템플릿 기반 정렬을 수행하고, 그 외의 블록에 대해서는 앞서 설명한 MPM 리스트의 순서 변경을 적용할 수 있다. 일 예로, 현재 블록의 크기가 128 보다 작거나 같은 블록에 대해서는 상기 템플릿 기반의 정렬 방법이 수행될 수 있으며, 현재 블록의 크기가 128 보다 큰 블록에 대해서는 도 16의 예시와 같이 MPM 리스트의 구성 순서를 변경할 수 있다. 템플릿 기반 정렬을 적용할 지 MPM 리스트의 구성 순서를 변경할 지 여부를 결정하는 블록 크기 및 조건은 다양한 조합으로 구성될 수 있으며, 이는 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의할 수 있다. 또는, 템플릿 기반의 정렬 중 오차값이 같은 다수 개의 모드가 존재할 경우, 해당 모드들에 대하여 도 16의 예시를 기반으로 우선순위를 정해 순서를 변경할 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, 도출된 인트라 모드 전에 추가될 수 있다. 템플릿 기반의 정렬과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, 상기 템플릿 기반의 정렬이 수행될 수 있다.
전술한 템플릿 기반의 리스트 정렬 여부를 나타내기 위해, VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 syntax 정보를 정의하고, 해당 정보가 특정 값인 경우에 상기 템플릿 기반의 리스트 정렬을 수행할 수 있다. 예를 들어, 해당 신택스 값이 1인 경우 상기 템플릿 기반의 리스트 정렬을 수행하는 것으로 결정될 수 있다. 이 경우, 비트스트림으로부터 획득되는 예측 모드 정보에 상기 템플릿 기반의 리스트 정렬 여부를 나타내는 신택스 요소가 포함될 수 있다.
또한, SGPM, TMRL, TIMD 등 템플릿 영역의 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM, SMPM 리스트를 구성하는 것과 유사하게, 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 전술한 템플릿 기반의 리스트 정렬이 적용될 수 있다.
도 25는 일 실시예에 따른 인코딩 방법의 일 예시를 나타내는 순서도이다.
일 실시예에 따른 인코딩 방법은 전술한 인코딩 장치(200)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 인코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 인코딩 장치(200)의 동작에 관한 설명과 인코딩 방법에 대한 설명(예를 들어, 도 5, 도 7, 도 11 등에 관한 설명), 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 25의 예시에도 동일하게 적용될 수 있다.
도 25를 참조하면, 일 실시예에 따른 인코딩 방법은 MPM 리스트를 구성하는 단계(S1900), 현재 블록에 대한 인트라 예측 모드를 결정하는 단계(S1910), 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계(S1920) 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계(S1930)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S1900)는 MPM 리스트에 대해 템플릿 기반 정렬(sorting)을 수행하는 것을 포함할 수 있다.
앞서 설명한 디코딩 방법의 실시예에서의 MPM 리스트 구성과 관련된 설명은 인코딩 방법의 실시예에서의 MPM 리스트 구성에 동일하게 적용될 수 있다. MPM 리스트의 정렬에 관한 설명도 동일하게 적용됨은 물론이다.
구체적으로, 인접한 템플릿 영역과 현재 블록의 유사성이 떨어지는 경우에 리스트 정렬 결과가 부정확해지는 문제를 해결하기 위한 방법의 일 예시로, 오차 계산을 위한 템플릿 영역이 적응적으로 결정될 수 있다. 예를 들어, 현재 블록의 좌측에 위치하는 참조 샘플을 주로 사용하는 인트라 모드에 대해서는 좌측 템플릿 영역만을 사용하여 오차값을 계산할 수 있다. 또한, 현재 블록의 상측에 위치하는 참조 샘플을 주로 사용하는 인트라 모드에 대해서는 상측 템플릿 영역만을 사용하여 오차값을 계산할 수 있다.
예를 들어, 좌측 템플릿 영역만을 사용하는 인트라 모드는 2번 내지 18번 모드일 수 있다. 또한, 상측 템플릿 영역만을 사용하는 인트라 모드는 50번 내지 66번 모드일 수 있다. 그 외 인트라 모드는 좌측 및 상측 템플릿 영역을 모두 사용할 수 있다. 다만, 이는 일 실시예에 따른 인코딩 방법에 적용 가능한 일 예시에 불과하며, 인트라 모드별로 정의되는 템플릿 영역의 범위는 인코딩 장치(200)와 디코딩 장치(300)가 사전에 다른 범위로 정의할 수도 있다.
인트라 모드에 따라 서로 다른 템플릿 영역을 사용할 수 있게 되기 때문에, 인트라 모드간 오차값을 정확하게 비교하기 위해 오차값을 계산하는 데 사용한 템플릿 영역 내의 화소 개수로 오차값을 나누어줄 수 있다. 즉, 오차값의 평균으로 비교할 수 있으며, 인트라 모드 i의 오차값을 cost(i)라고 할 때, 인트라 모드 i의 오차값 평균은 cost(i)/N 또는 cost(i)>>k로 표현되어, 서로 다른 인트라 모드간 오차값을 비교할 수 있다. 여기서, N은 템플릿 영역 내 화소 개수, k는 2k=N을 만족하는 값을 의미할 수 있다.
또한, 템플릿 영역의 크기는 현재 블록의 크기에 기반하여 결정될 수 있다. 예를 들면, 현재 블록의 크기(=width x height)가 128 보다 작거나 같은 경우, 상측 템플릿 영역이 현재블록의 너비x1, 좌측 템플릿 영역이 1x현재 블록의 높이를 사용할 수 있고, 현재 블록의 크기가 128보다 큰 경우 상측 템플릿 영역이 현재 블록의 너비x2, 좌측 템플릿 영역이 2x현재 블록의 높이를 사용할 수 있다. 여기서 정해지는 템플릿 영역의 크기 및 템플릿 영역 크기를 결정하는 조건은 하나의 예시이며 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 조건과 기준값으로 결정될 수도 있다.
또는, 현재 블록의 길이에 기반하여 템플릿 영역의 크기가 결정될 수도 있다. 예를 들면, 현재 블록의 높이가 16 보다 작거나 같은 경우, 좌측 템플릿 영역이 (1x현재 블록의 높이)를 사용할 수 있고, 현재 블록의 높이가 16보다 큰 경우 좌측 템플릿 영역이 (2x현재 블록의 높이)를 사용할 수 있다. 현재 블록의 너비의 크기에 따라 결정되는 상측 템플릿 영역도 위 예시와 동일하게 결정될 수 있다. 예를 들어, 32x16 블록의 경우, 좌측 템플릿 영역은 1x16, 상측 템플릿 영역은 32x2의 크기를 가질 수 있다. 여기서 정해지는 템플릿 영역의 크기 및 템플릿릿 영역 크기를 결정하는 현재 블록 길이에 대한 조건은 하나의 예시이며 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의하여 다른 값으로 결정될 수 있다.
또한, 당해 예시는 앞서 설명한 도 21의 예시와 조합하여 같이 적용될 수 있다. 예를 들어, 작은 블록들에 대해서는 전술한 방식에 따라 템플릿 기반 정렬을 수행하고, 그 외의 블록에 대해서는 앞서 설명한 MPM 리스트의 순서 변경을 적용할 수 있다. 일 예로, 현재 블록의 크기가 128 보다 작거나 같은 블록에 대해서는 상기 템플릿 기반의 정렬 방법이 수행될 수 있으며, 현재 블록의 크기가 128 보다 큰 블록에 대해서는 도 16의 예시와 같이 MPM 리스트의 구성 순서를 변경할 수 있다. 템플릿 기반 정렬을 적용할 지 MPM 리스트의 구성 순서를 변경할 지 여부를 결정하는 블록 크기 및 조건은 다양한 조합으로 구성될 수 있으며, 이는 인코딩 장치(200)와 디코딩 장치(300)가 사전에 정의할 수 있다. 또는, 템플릿 기반의 정렬 중 오차값이 같은 다수 개의 모드가 존재할 경우, 해당 모드들에 대하여 도 21의 예시를 기반으로 우선순위를 정해 순서를 변경할 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, 도출된 인트라 모드 전에 추가될 수 있다. 템플릿 기반의 정렬과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, 상기 템플릿 기반의 정렬이 수행될 수 있다.
전술한 템플릿 기반의 리스트 정렬 여부를 나타내기 위해, VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 syntax 정보를 정의하고, 해당 정보가 특정 값인 경우에 상기 템플릿 기반의 리스트 정렬을 수행할 수 있다. 예를 들어, 해당 신택스 값이 1인 경우 템플릿 기반의 리스트 정렬을 수행하는 것으로 결정될 수 있다. 이 경우, S1930 단계에서 인코딩되는 예측 모드 정보에 템플릿 기반의 리스트 정렬 여부를 나타내는 신택스 요소가 포함될 수 있다.
또한, SGPM, TMRL, TIMD 등 template area 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM, SMPM 리스트를 구성하는 것과 유사하게, 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 전술한 템플릿 기반의 리스트 정렬이 적용될 수 있다.
도 26은 일 실시예에 따른 디코딩 방법의 또 다른 예시에 관한 순서도이다.
일 실시예에 따른 디코딩 방법은 전술한 디코딩 장치(300)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 디코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 디코딩 장치(300)의 동작에 관한 설명과 디코딩 방법에 대한 설명(예를 들어, 도 4, 도 9, 도 12, 도 13 등), 그리고 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 26의 실시예에도 동일하게 적용될 수 있다.
도 26을 참조하면, 일 실시예에 따른 디코딩 방법은 비트스트림으로부터 예측 모드 정보를 획득하는 단계(S2000), 현재 블록에 대한 MPM 리스트를 구성하는 단계(S2010), 상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 현재 블록에 대한 인트라 예측 모드를 유도하는 단계(S2020), 및 유도된 인트라 예측 모드에 기반하여 현재 블록에 대한 복원 블록을 생성하는 단계(S2030)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S2010)는 MPM 리스트에 대해 히스토그램 기반 정렬(sorting)을 수행하는 것을 포함할 수 있다.
비트스트림으로부터 예측 모드 정보를 획득하는 단계(S2200)에 있어서, 예측 모드 정보는 현재 블록의 예측 모드에 관한 정보를 나타낼 수 있다. 현재 블록이 인트라 모드가 적용되는 인트라 블록인 경우, 예측 모드 정보는 인트라 예측 모드 정보일 수 있다.
앞서 설명한 바와 같이, 예측 모드 정보는 예를 들어, MPM이 현재 블록에 적용되는지 아니면 리메이닝 모드가 적용되는지 여부를 나타내는 플래그 정보(ex. intra_luma_mpm_flag)를 포함할 수 있고, MPM이 현재 블록에 적용되는 경우 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 가리키는 인덱스 정보(ex. intra_luma_mpm_idx)를 더 포함할 수 있다. 인트라 예측 모드 후보들(MPM 후보들)은 MPM 리스트로 구성될 수 있다.
또한, MPM이 현재 블록에 적용되지 않는 경우, 예측 모드 정보는 MPM 후보들을 제외한 나머지 인트라 예측 모드들 중 하나를 가리키는 리메이닝 모드 정보(ex. intra_luma_mpm_remainder)를 더 포함할 수 있다. 디코딩 장치(300)는 상기 예측 모드 정보를 기반으로 현재 블록의 인트라 예측 모드를 결정할 수 있다.
MPM 리스트를 구성하는 단계(S2410)에 대해서는 앞서 설명한 MPM 리스트 구성 방법에 관한 설명이 동일하게 적용될 수 있다. 예를 들어, 전술한 도 17 및 도 18에 관한 설명들이 당해 실시예에도 동일하게 적용될 수 있다. 설명의 중복을 방지하기 위해, 여기서는 동일한 설명이 생략될 수 있다.
도 27은 현재 블록과 주변 블록 사이의 상관성의 예시를 나타내는 도면이고, 도 28은 주변 블록의 인트라 모드 정보들을 수집하여 구성된 히스토그램의 예시를 나타낸 도면이다.
현재 블록과 주변 블록은 상관성이 높을 수 있다. 현재 블록 위치의 영상이 특정 텍스처(엣지 등) 정보를 가질 때, 주변 블록 또한 동일하거나 유사한 텍스처 정보를 가질 수 있기 때문이다. 도 27에 도시된 바와 같이, 주변 블록이 12번 모드로 선택된 경우, 현재 블록도 12번 모드로 선택될 가능성이 높다. 따라서, 주변 블록의 정보를 이용하면 현재 블록에 더 적합한 인트라 모드의 순서로 MPM 리스트를 정렬할 수 있다.
일 예로, 현재 블록의 주변 블록에 적용된 인트라 모드의 개수를 누적하여, 도 28에 도시된 바와 같은 히스토그램을 구성할 수 있으며, 예를 들어, 아래 수식 4와 같이, 주변 블록의 인트라 모드마다 1씩 누적하도록 계산할 수 있다. 이를 기반으로 높은 값을 갖는 인트라 모드 순서로 MPM 리스트를 정렬할 수 있다. a는 임의의 양의 정수이며, 예를 들어 1일 수 있다.
[수식 6]
Histogram[intra prediction mode] += a
도 29는 현재 블록과 주변 블록 사이의 상관성의 예시를 나타내는 도면으로서, 주변 블록들의 크기가 상이한 경우의 예시를 나타낸 도면이다.
주변 블록의 크기는 다양할 수 있다. 도 29의 예시와 같이, 주변 블록들의 크기가 서로 다른 경우, 주변 블록의 가장 넓은 영역에서 사용된 모드가 12번 모드임에도 불구하고, 18번 모드의 개수가 많아 18번 모드의 히스토그램 누적 값이 더 높을 수 있다.
따라서, 디코딩 방법의 실시예에 따르면, 현재 블록의 주변 블록의 크기에 기반하여 히스토그램을 구성할 수 있다. 구체적으로, 크기(width * height)를 누적하여 히스토그램을 구성할 수 있으며, 아래 수식 7과 같이, 주변 블록의 인트라 모드에 주변 블록의 크기를 누적하도록 계산할 수 있다. 이를 기반으로 높은 값을 갖는 인트라 모드의 순서로 MPM 리스트를 정렬할 수 있다.
[수식 7]
Histogram[intra prediction mode] += width * height
한편, DIMD, TIMD, SGPM 등의 기술로 코딩된 블록은 복수 개의 인트라 모드를 사용하여 예측하기 때문에 복수 개의 인트라 모드를 저장할 수 있다. 주변 블록에 복수 개의 인트라 모드가 저장되어 있는 경우에는 저장된 복수 개의 인트라 예측 모드에 기반하여 히스토그램을 구성할 수 있다. 예를 들어, 주변 블록이 DIMD 모드이며, 다섯 개의 인트라 모드(mode 1 내지 mode 5)를 사용한 경우, 아래 수식 8 또는 수식 9와 같이 히스토그램이 누적될 수 있다. DIMD를 예시로 설명하였으나, 복수 개의 인트라 모드가 저장되어 있는 다른 기술들에 대해서도 같은 방법이 적용될 수 있다.
[수식 8]
Histogram[mode 1] += width * height
Histogram[mode 2] += width * height
Histogram[mode 3] += width * height
Histogram[mode 4] += width * height
Histogram[mode 5] += width * height
[수식 9]
Histogram[mode 1] += a
Histogram[mode 2] += a
Histogram[mode 3] += a
Histogram[mode 4] += a
Histogram[mode 5] += a
또한, 복수 개의 모드가 블렌딩되는 경우, 예측 블록을 생성하는데 있어 각 모드별 비중이 다를 수 있다. 이 경우, 주변 블록에 적용된 복수 개의 인트라 예측 모드 각각의 가중치에 기반하여, 히스토그램을 누적할 수 있다. 예를 들어, 주변 블록이 DIMD 모드이며, 다섯 개의 모드(mode 1 내지 mode 5)를 사용했고, 각 모드별로 적용된 가중치의 비율이 rate 1 내지 rate 5(rate 1 + rate 2 + rate 3 + rate 4 + rate 5 =1)라고 할 때, 아래 수식 8 또는 수식 9와 같이 히스토그램을이 누적될 수 있다. DIMD를 예시로 설명하였으나, 다수 개의 인트라 모드가 저장되어 있는 다른 기술들에 대해서도 같은 방법이 적용될 수 있다.
[수식 10]
Histogram[mode 1] += width * height * rate 1
Histogram[mode 2] += width * height * rate 2
Histogram[mode 3] += width * height * rate 3
Histogram[mode 4] += width * height * rate 4
Histogram[mode 5] += width * height * rate 5
[수식 11]
Histogram[mode 1] += a * rate 1
Histogram[mode 2] += a * rate 2
Histogram[mode 3] += a * rate 3
Histogram[mode 4] += a * rate 4
Histogram[mode 5] += a * rate 5
일 예로, 히스토그램 누적에 사용되는 주변 블록의 개수는 최대 P개일 수 있다. P는 예를 들어 20일 수 있다. 히스토그램 누적에 사용되는 주변 블록은 인접한 블록과 인접하지 않은 블록을 모두 사용할 수 있다. 주변 블록의 위치는 인코딩 장치(200)와 디코딩 장치(300)간 약속에 의해 정의될 수 있다. 또한, 히스토그램 누적에 사용되는 주변 블록은 현재 블록과 가까운 순으로 결정될 수 있다. 예를 들어, P개의 주변 블록을 찾았지만, 추가 탐색 중 현재 블록과 거리가 더 가까운 주변 블록이 존재했다면, 기존의 거리가 먼 블록 대신 해당 블록이 P개의 블록에 포함될 수 있다.
도 30은 일 실시예에 따른 디코딩 방법에 있어서 히스토그램 구성을 위해 설정되는 주변 블록의 범위의 예시를 나타내는 도면이다.
현재 블록으로부터 너무 멀리 떨어진 주변 블록을 참조하는 것은 상관성이 떨어질 수 있다. 따라서, 현재 블록으로부터 정해진 범위안에서 주변 블록을 탐색하도록 제한할 수 있다. 예를 들면, 현재 블록의 좌상단 위치로부터 x 거리와 y 거리의 합이 64 보다 작은 범위에서 주변 블록을 찾도록 제한될 수 있다. 또는, 도 30에 도시된 바와 같이, 같이 r1 내지 r4 값을 설정하여 탐색 범위를 제한할 수 있다. 예를 들어, r1=2*W, r2=2*H, r3=2*W, r4=2*H를 의미할 수 있다. 다만, 이는 하나의 예시이며, 인코딩 장치(200)와 디코딩 장치(300)간 사전에 정의하여 다른 값으로 결정할 수도 있다.
한편, 전술한 실시예들 또는 예시들이 서로 조합되는 것도 가능하다.
예를 들어, 전술한 히스토그램 기반의 MPM 리스트 정렬 방법이 도 22에서 설명한 템플릿 기반 MPM 리스트 정렬 방법과 조합되는 것도 가능하다. 예를 들어, 현재 블록의 크기에 따라, 히스토그램을 기반으로 MPM 리스트를 정렬하거나, 또는 템플릿을 기반으로 MPM 리스트를 정렬할 수 있다. 구체적으로, 템플릿 기반 정렬이 비교적 정확한 작은 블록들에 대해서는 도 22에서 설명한 템플릿 기반 MPM 리스트 정렬을 수행하고, 그 외의 블록에 대해서는 도 26에서 설명한 히스토그램 기반 MPM 리스트 정렬을 적용할 수 있다. 즉, 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 템플릿을 기반으로 상기 MPM 리스트를 정렬하고, 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬할 수 있다. 일 예로, 현재 블록의 크기가 128 보다 작거나 같은 블록에 대해서는 상기 템플릿 기반 MPM 리스트 정렬이 수행될 수 있으며, 현재 블록의 크기가 128 보다 큰 블록에 대해서는 히스토그램 기반 MPM 리스트 정렬이 수행될 수 있다. 다만, 이는 하나의 예시이며, 블록 크기 및 조건에 따라 다른 조합을 사용할 수 있으며, 이는 인코딩 장치(200)와 디코딩 장치(300)간 사전에 정의할 수 있다.
또한, 전술한 히스토그램 기반의 MPM 리스트 정렬 방법이 도 16에서 설명한 MPM 리스트의 순서 변경 방법과 조합되는 것도 가능하다. 예를 들어, 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 MPM 리스트를 정렬하거나, 또는 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드(예를 들어, DIMD 또는 TIMD)를 후순위로 변경할 수 있다. 구체적으로, 작은 블록들에 대해서는 히스토그램 기반의 정렬을 수행하고, 그 외의 블록에 대해서는 도 16에서 설명한 MPM 리스트의 순서 변경 방법이 수행될 수 있다. 즉, 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 히스토그램을 기반으로 MPM 리스트를 정렬하고, 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드(예를 들어, DIMD 또는 TIMD)를 후순위로 변경할 수 있다. 또는, 히스토그램 기반의 정렬 중 히스토그램 값이 같은 다수 개의 모드가 존재할 경우, 해당 모드들에 대하여 도 16에서 설명한 순서 변경 기준을 기반으로 우선순위를 정해 순서를 변경할 수 있다. 예를 들어, 인접 블록이 DIMD로 코딩된 블록인 경우 해당 인접 블록의 인트라 모드들은 후순위로 변경될 수 있다.
또한, 이 외에도 MPM 리스트의 순서 변경, 템플릿 기반의 MPM 리스트 정렬 및 히스토그램 기반의 MPM 리스트 정렬을 다양하게 조합하여 MPM 리스트를 구성할 수 있다.
MPM 리스트의 순서 변경과 템플릿 기반의 MPM 리스트 정렬을 조합하는 것도 가능하고, MPM 리스트의 순서 변경, 템플릿 기반의 MPM 리스트 정렬 및 히스토그램 기반의 MPM 리스트 정렬 모두 조합하는 것도 가능하다. 이러한 조합은 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의될 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, “도출된 인트라 모드” 전에 추가될 수 있다. MPM 리스트 정렬과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, MPM 리스트 정렬이 수행될 수 있다.
히스토그램 기반의 MPM 리스트 정렬 여부는 VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 syntax 정보를 정의하고, 해당 정보가 특정 값인 경우에 히스토그램 기반의 MPM 리스트 정렬을 적용할 수 있다. 예를 들어, 해당 신택스의 값이 1인 경우 히스토그램 기반의 MPM 리스트 정렬을 수행하도록 결정될 수 있다. 이 경우, 비트스트림으로부터 획득되는 예측 모드 정보에 히스토그램 기반의 MPM 리스트 정렬 여부를 나타내는 신택스 요소가 포함될 수 있다.
또한, SGPM, TMRL, TIMD 등 템플릿 영역에 대한 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM, SMPM 리스트를 구성하는 것과 유사하게, 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 상기 실시예들이 적용될 수 있다.
도 31는 일 실시예에 따른 인코딩 방법의 또 다른 예시를 나타내는 순서도이다.
일 실시예에 따른 인코딩 방법은 전술한 인코딩 장치(200)에 의해 수행될 수 있다. 후술하는 실시예에서는 중복되는 설명을 방지하기 위해 앞서 설명하지 않은 내용들을 중심으로 설명하는 것일뿐, 후술하는 설명만이 인코딩 방법의 실시예를 뒷받침하는 것은 아니다. 전술한 인코딩 장치(200)의 동작에 관한 설명과 인코딩 방법에 대한 설명(예를 들어, 도 5, 도 7, 도 11 등에 관한 설명), 각종 예측 모드나 예측 타입에 관한 설명들은 서로 상충되지 않는한 도 31의 예시에도 동일하게 적용될 수 있다.
도 31을 참조하면, 일 실시예에 따른 인코딩 방법은 MPM 리스트를 구성하는 단계(S2100), 현재 블록에 대한 인트라 예측 모드를 결정하는 단계(S2110), 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계(S2120) 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계(S2130)를 포함한다.
또한, MPM 리스트를 구성하는 단계(S2100)는 MPM 리스트에 대해 히스토그램 기반 정렬(sorting)을 수행하는 것을 포함할 수 있다.
앞서 설명한 디코딩 방법의 실시예에서의 MPM 리스트 구성과 관련된 설명은 인코딩 방법의 실시예에서의 MPM 리스트 구성에 동일하게 적용될 수 있다. MPM 리스트의 정렬에 관한 설명도 동일하게 적용됨은 물론이다.
구체적으로, 현재 블록의 주변 블록에 적용된 인트라 모드의 개수를 누적하여, 전술한 도 28에 도시된 바와 같은 히스토그램을 구성할 수 있으며, 예를 들어, 아래 수식 12와 같이, 주변 블록의 인트라 모드마다 1씩 누적하도록 계산할 수 있다. 이를 기반으로 높은 값을 갖는 인트라 모드 순서로 MPM 리스트를 정렬할 수 있다. a는 임의의 양의 정수이며, 예를 들어 1일 수 있다.
[수식 12]
Histogram[intra prediction mode] += a
한편, 주변 블록의 크기는 다양할 수 있다. 주변 블록들의 크기가 서로 다른 경우, 전술한 도 29의 예시와 같이, 주변 블록의 가장 넓은 영역에서 사용된 모드가 12번 모드임에도 불구하고, 18번 모드의 개수가 많아 18번 모드의 히스토그램 누적 값이 더 높을 수 있다.
따라서, 인코딩 방법의 실시예에 따르면, 현재 블록의 주변 블록의 크기에 기반하여 히스토그램을 구성할 수 있다. 구체적으로, 크기(width * height)를 누적하여 히스토그램을 구성할 수 있으며, 아래 수식 13과 같이, 주변 블록의 인트라 모드에 주변 블록의 크기를 누적하도록 계산할 수 있다. 이를 기반으로 높은 값을 갖는 인트라 모드의 순서로 MPM 리스트를 정렬할 수 있다.
[수식 13]
Histogram[intra prediction mode] += width * height
한편, DIMD, TIMD, SGPM 등의 기술로 코딩된 블록은 복수 개의 인트라 모드를 사용하여 예측하기 때문에 복수 개의 인트라 모드를 저장할 수 있다. 주변 블록에 복수 개의 인트라 모드가 저장되어 있는 경우에는 저장된 복수 개의 인트라 예측 모드에 기반하여 히스토그램을 구성할 수 있다. 예를 들어, 주변 블록이 DIMD 모드이며, 다섯 개의 인트라 모드(mode 1 내지 mode 5)를 사용한 경우, 아래 수식 14 또는 수식 15와 같이 히스토그램이 누적될 수 있다. DIMD를 예시로 설명하였으나, 복수 개의 인트라 모드가 저장되어 있는 다른 기술들에 대해서도 같은 방법이 적용될 수 있다.
[수식 14]
Histogram[mode 1] += width * height
Histogram[mode 2] += width * height
Histogram[mode 3] += width * height
Histogram[mode 4] += width * height
Histogram[mode 5] += width * height
[수식 15]
Histogram[mode 1] += a
Histogram[mode 2] += a
Histogram[mode 3] += a
Histogram[mode 4] += a
Histogram[mode 5] += a
또한, 복수 개의 모드가 블렌딩되는 경우, 예측 블록을 생성하는데 있어 각 모드별 비중이 다를 수 있다. 이 경우, 주변 블록에 적용된 복수 개의 인트라 예측 모드 각각의 가중치에 기반하여, 히스토그램을 누적할 수 있다. 예를 들어, 주변 블록이 DIMD 모드이며, 다섯 개의 모드(mode 1 내지 mode 5)를 사용했고, 각 모드별로 적용된 가중치의 비율이 rate 1 내지 rate 5(rate 1 + rate 2 + rate 3 + rate 4 + rate 5 =1)라고 할 때, 아래 수식 16 또는 수식 17과 같이 히스토그램을이 누적될 수 있다. DIMD를 예시로 설명하였으나, 다수 개의 인트라 모드가 저장되어 있는 다른 기술들에 대해서도 같은 방법이 적용될 수 있다.
[수식 16]
Histogram[mode 1] += width * height * rate 1
Histogram[mode 2] += width * height * rate 2
Histogram[mode 3] += width * height * rate 3
Histogram[mode 4] += width * height * rate 4
Histogram[mode 5] += width * height * rate 5
[수식 17]
Histogram[mode 1] += a * rate 1
Histogram[mode 2] += a * rate 2
Histogram[mode 3] += a * rate 3
Histogram[mode 4] += a * rate 4
Histogram[mode 5] += a * rate 5
일 예로, 히스토그램 누적에 사용되는 주변 블록의 개수는 최대 P개일 수 있다. P는 예를 들어 20일 수 있다. 히스토그램 누적에 사용되는 주변 블록은 인접한 블록과 인접하지 않은 블록을 모두 사용할 수 있다. 주변 블록의 위치는 인코딩 장치(200)와 디코딩 장치(300)간 약속에 의해 정의될 수 있다. 또한, 히스토그램 누적에 사용되는 주변 블록은 현재 블록과 가까운 순으로 결정될 수 있다. 예를 들어, P개의 주변 블록을 찾았지만, 추가 탐색 중 현재 블록과 거리가 더 가까운 주변 블록이 존재했다면, 기존의 거리가 먼 블록 대신 해당 블록이 P개의 블록에 포함될 수 있다.
한편, 현재 블록으로부터 너무 멀리 떨어진 주변 블록을 참조하는 것은 상관성이 떨어질 수 있다. 따라서, 현재 블록으로부터 정해진 범위안에서 주변 블록을 탐색하도록 제한할 수 있다. 예를 들면, 현재 블록의 좌상단 위치로부터 x 거리와 y 거리의 합이 64 보다 작은 범위에서 주변 블록을 찾도록 제한될 수 있다. 또는, 전술한 도 30에 도시된 바와 같이, 같이 r1 내지 r4 값을 설정하여 탐색 범위를 제한할 수 있다. 예를 들어, r1=2*W, r2=2*H, r3=2*W, r4=2*H를 의미할 수 있다. 다만, 이는 하나의 예시이며, 인코딩 장치(200)와 디코딩 장치(300)간 사전에 정의하여 다른 값으로 결정할 수도 있다.
한편, 전술한 실시예들 또는 예시들이 서로 조합되는 것도 가능하다.
예를 들어, 전술한 히스토그램 기반의 MPM 리스트 정렬 방법이 도 25에서 설명한 템플릿 기반 MPM 리스트 정렬 방법과 조합되는 것도 가능하다. 예를 들어, 현재 블록의 크기에 따라, 히스토그램을 기반으로 MPM 리스트를 정렬하거나, 또는 템플릿을 기반으로 MPM 리스트를 정렬할 수 있다. 구체적으로, 템플릿 기반 정렬이 비교적 정확한 작은 블록들에 대해서는 도 25에서 설명한 템플릿 기반 MPM 리스트 정렬을 수행하고, 그 외의 블록에 대해서는 도 31에서 설명한 히스토그램 기반 MPM 리스트 정렬을 적용할 수 있다. 즉, 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 템플릿을 기반으로 MPM 리스트를 정렬하고, 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 히스토그램을 기반으로 MPM 리스트를 정렬할 수 있다. 일 예로, 현재 블록의 크기가 128 보다 작거나 같은 블록에 대해서는 상기 템플릿 기반 MPM 리스트 정렬이 수행될 수 있으며, 현재 블록의 크기가 128 보다 큰 블록에 대해서는 히스토그램 기반 MPM 리스트 정렬이 수행될 수 있다. 다만, 이는 하나의 예시이며, 블록 크기 및 조건에 따라 다른 조합을 사용할 수 있고, 이는 인코딩 장치(200)와 디코딩 장치(300)간 사전에 정의할 수 있다.
또한, 전술한 히스토그램 기반의 MPM 리스트 정렬 방법이 도 21에서 설명한 MPM 리스트의 순서 변경 방법과 조합되는 것도 가능하다. 예를 들어, 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 MPM 리스트를 정렬하거나, 또는 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드(예를 들어, DIMD 또는 TIMD)를 후순위로 변경할 수 있다. 구체적으로, 작은 블록들에 대해서는 히스토그램 기반의 정렬을 수행하고, 그 외의 블록에 대해서는 도 21에서 설명한 MPM 리스트의 순서 변경 방법이 수행될 수 있다. 즉, 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 히스토그램을 기반으로 MPM 리스트를 정렬하고, 현재 블록의 크기가 기준 크기를 초과하는 것에 기반하여, MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드(예를 들어, DIMD 또는 TIMD)를 후순위로 변경할 수 있다. 또는, 히스토그램 기반의 정렬 중 히스토그램 값이 같은 다수 개의 모드가 존재할 경우, 해당 모드들에 대하여 도 21에서 설명한 순서 변경 기준을 기반으로 우선순위를 정해 순서를 변경할 수 있다. 예를 들어, 인접 블록이 DIMD로 코딩된 블록인 경우 해당 인접 블록의 인트라 모드들은 후순위로 변경될 수 있다.
또한, 이 외에도 MPM 리스트의 순서 변경, 템플릿 기반의 MPM 리스트 정렬 및 히스토그램 기반의 MPM 리스트 정렬을 다양하게 조합하여 MPM 리스트를 구성할 수 있다.
MPM 리스트의 순서 변경과 템플릿 기반의 MPM 리스트 정렬을 조합하는 것도 가능하고, MPM 리스트의 순서 변경, 템플릿 기반의 MPM 리스트 정렬 및 히스토그램 기반의 MPM 리스트 정렬 모두 조합하는 것도 가능하다. 이러한 조합은 인코딩 장치(200)와 디코딩 장치(300) 사이에 사전에 정의될 수 있다.
한편, MPM 리스트를 구성하는 과정에서, 주변 블록의 인트라 모드로 예측 블록을 생성하기에 참조 샘플이 충분하지 않은 경우, 즉, 참조 샘플 일부가 가용하지 않은 경우, 리스트에 바로 추가하지 않고 후순위에 추가될 수 있다. 일 예로, “도출된 인트라 모드” 전에 추가될 수 있다. MPM 리스트 정렬과 관련된 상기 실시예들은 앞서 설명한 부분적인 MPM 리오더링을 고려하여 적용될 수 있다. 즉, 상기 부분적인 MPM 리오더링을 우선 고려하고, MPM 리스트 정렬이 수행될 수 있다.
히스토그램 기반의 MPM 리스트 정렬 여부는 VPS, SPS, APS, PPS, Picture Header, 또는 Slice Header와 같은 High Level parameter에서 별도의 syntax 정보를 정의하고, 해당 정보가 특정 값인 경우에 히스토그램 기반의 MPM 리스트 정렬을 적용할 수 있다. 예를 들어, 해당 신택스의 값이 1인 경우 히스토그램 기반의 MPM 리스트 정렬을 수행하도록 결정될 수 있다. 이 경우, S2130 단계에서 인코딩되는 예측 모드 정보에 히스토그램 기반의 리스트 정렬 여부를 나타내는 신택스 요소가 포함될 수 있다.
또한, SGPM, TMRL, TIMD 등 템플릿 영역에 대한 오차값을 이용하여 인트라 모드를 유도 및 활용하는 기술들은 MPM, SMPM 리스트를 구성하는 것과 유사하게, 주변 블록의 인트라 모드 정보를 활용하여 리스트를 구성할 수 있다. 이러한 기술들 또한 상기 실시예들이 적용될 수 있다.
지금까지 설명의 편의를 위해 실시예들을 구분하여 설명하였으나, 앞서 언급한 바와 같이, 둘 이상의 실시예들의 조합이 가능함은 물론이고, 실시예들의 조합에 의해 필요한 변경사항들 역시 개시된 발명 또는 개시된 실시예들의 범위에 포함될 수 있다.
한편, 전술한 인코딩 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 저장 매체도 개시된 실시예의 범위에 포함될 수 있다.
또한, 전술한 인코딩 방법에 의해 생성된 비트스트림을 전송하는 방법도 개시된 실시예의 범위에 포함될 수 있으며, 이러한 전송 방법을 실시하는 전송 장치는 상기 인코딩 방법에 의해 비트스트림을 생성하는 적어도 하나의 프로세서와 생성된 비트스트림을 전송하는 송신기를 포함할 수 있다.
도 32는 개시된 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시적으로 나타낸 도면이다.
도 32를 참조하면, 본 명세서의 실시예(들)이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 명세서의 실시예(들)이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 명세서에 기재된 청구항들은 다양한 방식으로 조합될 수 있다. 예를 들어, 본 명세서의 방법 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 명세서의 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다. 또한, 본 명세서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 명세서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다.
본 개시에 따른 실시예는 영상을 부호화/복호화하는데 이용될 수 있다.
Claims (20)
- 비트스트림으로부터 예측 모드 정보를 획득하는 단계;현재 블록에 대한 MPM(Most Probable Mode) 리스트를 구성하는 단계;상기 MPM 리스트 또는 상기 예측 모드 정보 중 적어도 하나에 기반하여 상기 현재 블록에 대한 인트라 예측 모드를 유도하는 단계; 및상기 유도된 인트라 예측 모드에 기반하여 상기 현재 블록에 대한 복원 블록을 생성하는 단계;를 포함하고,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 방법.
- 제1항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 인트라 예측 모드의 개수를 누적하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제1항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록의 크기에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제1항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 인트라 예측 모드가 복수 개인 경우, 상기 복수 개의 인트라 예측 모드에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제4항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 복수 개의 인트라 예측 모드 각각의 가중치에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제1항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하거나, 또는 템플릿을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 방법.
- 제6항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 템플릿을 기반으로 상기 MPM 리스트를 정렬하고, 상기 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 디코딩 방법.
- 제1항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하거나, 또는 상기 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드를 후순위로 변경하는 것을 포함하는, 방법.
- 제8항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하고, 상기 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드를 후순위로 변경하는 것을 포함하는, 방법
- 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계;상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계;상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계;를 포함하고,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 방법.
- 제10항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 인트라 예측 모드의 개수를 누적하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제10항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록의 크기에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제10항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 인트라 예측 모드가 복수 개인 경우, 상기 복수 개의 인트라 예측 모드에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제13항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 주변 블록에 적용된 복수 개의 인트라 예측 모드 각각의 가중치에 기반하여 상기 히스토그램을 구성하는 것을 포함하는, 방법.
- 제10항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하거나, 또는 템플릿을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 방법.
- 제15항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 템플릿을 기반으로 상기 MPM 리스트를 정렬하고, 상기 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 디코딩 방법.
- 제10항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기에 따라, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하거나, 또는 상기 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드를 후순위로 변경하는 것을 포함하는, 방법.
- 제17항에 있어서,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 크기가 기준 크기 이하인 것에 기반하여, 상기 히스토그램을 기반으로 상기 MPM 리스트를 정렬하고, 상기 현재 블록의 크기가 상기 기준 크기를 초과하는 것에 기반하여, 상기 MPM 리스트에 포함된 후보 예측 모드 중에서 템플릿 기반의 후보 예측 모드를 후순위로 변경하는 것을 포함하는, 방법.
- 인코딩 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 저장 매체에 있어서,상기 인코딩 방법은,현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계;상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계;상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계;를 포함하고,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 컴퓨터 판독 가능한 저장 매체.
- 영상에 대한 데이터의 전송 방법에 있어서,상기 영상에 대한 비트스트림을 생성하되, 상기 비트스트림은, 현재 블록에 대한 MPM(Most Probable Mode) 후보 리스트를 구성하는 단계; 상기 현재 블록에 대한 인트라 예측 모드를 결정하는 단계; 상기 결정된 인트라 예측 모드에 기반하여, 상기 현재 블록에 대한 레지듀얼 정보를 생성하는 단계; 및 상기 인트라 예측 모드에 관한 정보를 포함하는 예측 모드 정보 및 상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계에 기반하여 생성되는 단계; 및상기 비트스트림을 포함하는 상기 데이터를 전송하는 단계;를 포함하고,상기 MPM 리스트를 구성하는 단계는,상기 현재 블록의 주변 블록에 적용된 인트라 예측 모드에 대한 히스토그램을 기반으로 상기 MPM 리스트를 정렬하는 것을 포함하는, 전송 방법.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2024-0083253 | 2024-06-26 | ||
| KR20240083253 | 2024-06-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026005491A1 true WO2026005491A1 (ko) | 2026-01-02 |
Family
ID=98222428
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2025/008929 Pending WO2026005491A1 (ko) | 2024-06-26 | 2025-06-26 | 방법, 컴퓨터 판독 가능한 저장 매체 및 전송 방법 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2026005491A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023277602A1 (ko) * | 2021-07-01 | 2023-01-05 | 현대자동차주식회사 | 비디오 부호화/복호화 방법 및 장치 |
| KR20230156294A (ko) * | 2017-01-02 | 2023-11-14 | 주식회사 엘엑스세미콘 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| KR20240065135A (ko) * | 2022-10-19 | 2024-05-14 | 텐센트 아메리카 엘엘씨 | 인트라 예측 융합을 위한 변환 선택 |
| KR20240084446A (ko) * | 2022-12-06 | 2024-06-13 | 현대자동차주식회사 | Mpm 리스트를 적응적으로 생성하는 비디오 코딩방법 및 장치 |
| KR20240095193A (ko) * | 2021-10-28 | 2024-06-25 | 엘지전자 주식회사 | Mpm 리스트를 이용하는 영상 코딩 방법 및 장치 |
-
2025
- 2025-06-26 WO PCT/KR2025/008929 patent/WO2026005491A1/ko active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230156294A (ko) * | 2017-01-02 | 2023-11-14 | 주식회사 엘엑스세미콘 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| WO2023277602A1 (ko) * | 2021-07-01 | 2023-01-05 | 현대자동차주식회사 | 비디오 부호화/복호화 방법 및 장치 |
| KR20240095193A (ko) * | 2021-10-28 | 2024-06-25 | 엘지전자 주식회사 | Mpm 리스트를 이용하는 영상 코딩 방법 및 장치 |
| KR20240065135A (ko) * | 2022-10-19 | 2024-05-14 | 텐센트 아메리카 엘엘씨 | 인트라 예측 융합을 위한 변환 선택 |
| KR20240084446A (ko) * | 2022-12-06 | 2024-06-13 | 현대자동차주식회사 | Mpm 리스트를 적응적으로 생성하는 비디오 코딩방법 및 장치 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2021040480A1 (ko) | 인루프 필터링 기반 영상 코딩 장치 및 방법 | |
| WO2021040481A1 (ko) | 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법 | |
| WO2018155986A2 (ko) | 비디오 신호 처리 방법 및 장치 | |
| WO2018026219A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
| WO2020251330A1 (ko) | 단순화된 mpm 리스트 생성 방법을 활용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| WO2021101317A1 (ko) | 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| WO2020256400A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
| WO2020197155A1 (ko) | 영상 코딩 시스템에서 영상 디코딩 방법 및 그 장치, 영상 인코딩 방법 및 그 장치 | |
| WO2021172914A1 (ko) | 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
| WO2020130714A1 (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
| WO2020204418A1 (ko) | 비디오 또는 영상 코딩 방법 및 그 장치 | |
| WO2022182174A1 (ko) | 인트라 예측 모드 도출 기반 인트라 예측 방법 및 장치 | |
| WO2021040482A1 (ko) | 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 | |
| WO2020256393A1 (ko) | 루마 맵핑 기반 비디오 또는 영상 코딩 | |
| WO2021006698A1 (ko) | 영상 코딩 시스템에서 영상 코딩 방법 및 장치 | |
| WO2021006632A1 (ko) | 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩 | |
| WO2020251328A1 (ko) | 인트라 예측 모드 변환에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| WO2020251329A1 (ko) | Mip 모드 매핑이 단순화된 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| WO2021006697A1 (ko) | 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
| WO2021172916A1 (ko) | 영상 디코딩 방법 및 그 장치 | |
| WO2020251268A1 (ko) | 크로마 성분에 대한 영상 디코딩 방법 및 그 장치 | |
| WO2020256513A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
| WO2021006631A1 (ko) | 스케일링 리스트 데이터의 시그널링 기반 비디오 또는 영상 코딩 | |
| WO2020213865A1 (ko) | 스케일링 리스트 기반 비디오 또는 영상 코딩 | |
| WO2022216124A1 (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: 25827061 Country of ref document: EP Kind code of ref document: A1 |