WO2020009400A1 - 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치 - Google Patents

인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
WO2020009400A1
WO2020009400A1 PCT/KR2019/008004 KR2019008004W WO2020009400A1 WO 2020009400 A1 WO2020009400 A1 WO 2020009400A1 KR 2019008004 W KR2019008004 W KR 2019008004W WO 2020009400 A1 WO2020009400 A1 WO 2020009400A1
Authority
WO
WIPO (PCT)
Prior art keywords
sample
prediction
value
intra prediction
distance
Prior art date
Application number
PCT/KR2019/008004
Other languages
English (en)
French (fr)
Inventor
허진
김승환
남정학
유선미
이령
임재현
최장원
최정아
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to US17/257,169 priority Critical patent/US11438579B2/en
Publication of WO2020009400A1 publication Critical patent/WO2020009400A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the present invention relates to a method and apparatus for processing video signals using intra prediction, and more particularly to a method and apparatus for processing video signals using linear interpolation intra prediction.
  • Compression encoding refers to a set of signal processing techniques for transmitting digitized information over a communication line or for storing in a form suitable for a storage medium.
  • Media such as video, image, and voice may be subjected to compression encoding.
  • a technique of performing compression encoding on video is called video image compression.
  • Next-generation video content will be characterized by high spatial resolution, high frame rate and high dimensionality of scene representation. Processing such content would result in a tremendous increase in terms of memory storage, memory access rate, and processing power.
  • the video codec standard after the high efficiency video coding (HEVC) standard requires an intra prediction technique for improving prediction accuracy while improving coding efficiency.
  • embodiments of the present invention seek to provide a video signal processing method and apparatus for improving prediction accuracy.
  • a video signal processing method includes the steps of confirming that intra prediction is applied to a current block including a current sample to be predicted, and based on an intra prediction direction of the current block, Determining a first reference sample value of a first reference position from at least one of samples located in an upper horizontal line and a left vertical line, and a direction opposite to the intra prediction direction from a position of the current sample or the first reference position Determining a second reference sample value of a second reference position located at, determining a distance between the first reference position and the current sample as a first distance, and determining a distance between the second reference position and the current sample Determining a as a second distance, the sample value of the first reference sample, the first distance, a sample value of the second reference sample, and The method may include generating a prediction value of the current sample based on the second distance.
  • the video signal processing apparatus may include a memory for storing the video signal, a decoder functionally coupled with the memory, and a decoder for decoding the video signal.
  • the decoder determines that intra prediction is applied to a current block including a current sample to be predicted, and based on an intra prediction direction of the current block, an upper horizontal line and a left side of the upper block adjacent to the current block Determine a first reference sample value from at least one of the samples located in a vertical line, and determine a second reference sample value of a second reference position located in a direction opposite to the intra prediction direction from the position of the current sample or the first reference position Determine a distance between the first reference position and the current sample as a first distance, determine a distance between the second reference position and the current sample as a second distance, and determine the distance of the first reference sample.
  • Generate a prediction value of the current sample based on a sample value, the first distance, a sample value of the second reference sample, and the second
  • the first distance is a horizontal distance between the horizontal position of the current sample and the horizontal position of the first reference position and the vertical position of the current sample and the vertical position of the first reference position.
  • the second distance is a horizontal distance between the horizontal position of the current sample and the horizontal position of the second reference position and the vertical position of the current sample and the first distance. 2 may be set to an actual distance determined based on the distance between the vertical positions of the reference positions.
  • the prediction value of the current sample may be determined based on a value obtained by multiplying the first reference sample value by the second distance and a value obtained by multiplying the second reference sample value by the first distance.
  • the prediction value of the current sample may be determined by linear interpolation based on the first reference sample value, the first distance, the second reference sample value, and the second distance.
  • the first reference sample value is determined by linear interpolation of sample values of two of the samples located in an upper horizontal line and a left vertical line adjacent to the current block
  • the second reference sample value May be determined by linear interpolation of sample values of two samples among samples located in a right vertical line and a lower horizontal line adjacent to the current block.
  • the first reference sample value is determined by linear interpolation between sample values of two samples adjacent to a point indicated by the prediction direction from the current sample of an upper line adjacent to the current block
  • the sample value of the second reference sample may be determined by linear interpolation between the sample values of two adjacent samples and a point indicated by the prediction direction from the current sample among the lower lines adjacent to the current block.
  • the second reference sample value is used for sample values of samples located in a lower line adjacent to the current block, and sample values of samples located in a lower line adjacent to the current block are selected from the left or right side of the current block.
  • the sample value of the sample adjacent to the right side may be determined.
  • high prediction accuracy may be improved by using linear interpolation intra prediction based on actual distance.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video / image signal is performed as an embodiment to which the present invention is applied.
  • FIG 3 shows an example of a multi-type tree structure that can be applied to an embodiment of the present invention.
  • FIG. 4 illustrates an example of a signaling mechanism of partitioning information of a quadtree with nested multi-type tree structure involving a multitype tree applicable to embodiments of the present invention.
  • FIG. 5 illustrates an example of a method of dividing a CTU into a plurality of CUs based on a quadtree and accompanying multi-type tree structure applicable to embodiments of the present invention.
  • FIG. 6 illustrates a method of limiting ternary-tree partitioning to which the present invention can be applied.
  • FIG. 7 illustrates examples of overlapping partitioning patterns that may occur in binary tree partitioning and ternary tree partitioning that may be applied to embodiments of the present invention.
  • FIG. 8 and 9 illustrate an intra prediction based video encoding method according to an embodiment of the present invention and an example of an intra prediction unit in an encoding apparatus according to an embodiment of the present invention.
  • FIGS. 10 and 11 illustrate an intra prediction based video / image decoding method according to an embodiment of the present invention and an example of an intra prediction unit in a decoder according to an embodiment of the present invention.
  • FIG 14 illustrates examples of prediction samples and reference samples to which linear interpolation intra prediction is applied according to an embodiment of the present invention.
  • FIG. 15 shows an example of a flowchart for encoding using linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 16 shows an example of a flowchart for decoding using linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 17 shows an example of a flowchart of a low complexity linear interpolation intra prediction decoding process according to an embodiment of the present invention.
  • FIG. 18 shows an example of a flowchart of a low complexity linear interpolation intra prediction encoding process according to an embodiment of the present invention.
  • FIG. 20 shows an example of a planner mode in linear interpolation intra prediction according to an embodiment of the present invention.
  • 21 shows an example of a graph for determining a weighting value in a 4x4 block using a cosine function in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 22 shows another example of a graph for determining a weighting value in a 4x4 block using a cosine function in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 23 illustrates an example of a process of generating a prediction block using weight values calculated in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 24 illustrates a conceptual diagram of calculating a weighting value using the least square method in linear interpolation intra prediction according to an embodiment of the present invention.
  • 25 illustrates an example of a current block and neighboring blocks for determination of a context model in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 26 illustrates a method of generating a right reference sample and a bottom reference sample using a right bottom sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 27 illustrates a method of generating a lower right reference sample value in consideration of prediction direction in linear interpolation intra prediction according to an embodiment of the present invention.
  • 29 illustrates an example of a method of determining a lower right sample value using an upper reference sample value and a left reference sample value in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 30 illustrates a method of generating a lower right sample value of a current block from an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 31 illustrates an example of a method of transmitting difference values of lower right sample values of an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • 32 illustrates an example of a method of transmitting a difference value between a lower right end value of a prediction block and a lower right adjacent sample value of an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • 33 illustrates an example of a method for transmitting default offset values uniformly in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 35 is an example of an intra prediction method according to an embodiment of the present invention
  • FIG. 35A illustrates an existing intra prediction method
  • FIG. 35B illustrates an example of a linear interpolation prediction method.
  • FIG. 36 illustrates an intra prediction method combining an existing intra prediction method and a linear interpolation prediction method in intra prediction according to an embodiment of the present invention.
  • FIG. 37 is an example of a method of generating a lower right sample using a peripheral reference sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 37A illustrates a method of generating a lower right sample using a right upper sample and a lower left sample.
  • FIG. 37B illustrates a method of generating a lower right sample using a most upper right sample and a lower left sample that are two times as long as a block to be currently encoded.
  • 38 illustrates a method of generating a lower right reference sample from an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 39 is an example of a reference sample used for linear interpolation according to intra prediction modes in linear interpolation intra prediction according to an embodiment of the present invention
  • FIG. 39A is a top right reference sample
  • FIG. 39B is a bottom right reference sample
  • FIG. 39C is An example of a lower left reference sample is shown.
  • 40 illustrates a method of performing linear interpolation prediction using reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 41 illustrates a method of generating bottom samples and right end samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 43 illustrates another example of a method of performing linear interpolation using a ratio of actual distances between reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 45 shows an example of a method for calculating a weighting value according to a distance between reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 47 is an example of a method of generating a lower right reference sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 47A illustrates a method of generating a lower right sample using a right upper sample and a lower left sample
  • FIG. 47B Shows a method of generating a lower right sample by using a right uppermost sample and a lower left lowermost sample as far as the width and length of the non-square block to be encoded.
  • FIG. 48 is an example of a method using a lower right sample in an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 48A is a non-square block of Nx2N
  • FIG. 48B is a non-square block of 2NxN. An example is shown.
  • 49 illustrates a method of generating right samples and bottom samples through linear interpolation in linear interpolation intra prediction according to an embodiment of the present invention.
  • 50 illustrates a method of generating right samples and bottom samples using top samples and left samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 51 shows an example of a video coding system as an embodiment to which the present invention is applied.
  • FIG 52 shows an example of a video streaming system as an embodiment to which the present invention is applied.
  • the 'processing unit' refers to a unit in which a process of encoding / decoding such as prediction, transformation, and / or quantization is performed.
  • the processing unit may be referred to as a 'processing block' or 'block'.
  • the processing unit may be interpreted to include a unit for the luma component and a unit for the chroma component.
  • the processing unit may correspond to a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
  • CTU coding tree unit
  • CU coding unit
  • PU prediction unit
  • TU transform unit
  • the processing unit may be interpreted as a unit for a luma component or a unit for a chroma component.
  • the processing unit may be a coding tree block (CTB), a coding block (CB), a prediction block (PU), or a transform block (TB) for a luma component. May correspond to. Or, it may correspond to a coding tree block (CTB), a coding block (CB), a prediction block (PU), or a transform block (TB) for a chroma component.
  • CTB coding tree block
  • CB coding block
  • PU prediction block
  • TB transform block
  • the present invention is not limited thereto, and the processing unit may be interpreted to include a unit for a luma component and a unit for a chroma component.
  • processing unit is not necessarily limited to square blocks, but may also be configured in a polygonal form having three or more vertices.
  • a pixel, a pixel, and the like are referred to collectively as a sample.
  • using a sample may mean using a pixel value or a pixel value.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the encoder of FIG. 1 may be referred to as an encoding device.
  • the encoder 100 includes an image divider 110, a subtractor 115, a transform unit 120, a quantizer 130, an inverse quantizer 140, an inverse transform unit 150, and an adder.
  • the unit 155, the filtering unit 160, the memory 170, the inter prediction unit 180, the intra prediction unit 185, and the entropy encoding unit 190 may be included.
  • the inter predictor 180 and the intra predictor 185 may be collectively called a predictor. In other words, the predictor may include an inter predictor 180 and an intra predictor 185.
  • the transformer 120, the quantizer 130, the inverse quantizer 140, and the inverse transformer 150 may be included in a residual processing unit.
  • the residual processing unit may further include a subtracting unit 115.
  • the unit 160, the inter predictor 180, the intra predictor 185, and the entropy encoder 190 may be configured by one hardware component (eg, an encoder or a processor).
  • the memory 170 may include a decoded picture buffer (DPB) 175 and may be configured by a digital storage medium.
  • the digital storage medium may include various storage media for storing data such as video signals such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
  • the image divider 110 may divide the input image (or picture frame) input to the encoder 100 into one or more processing units.
  • a processing unit may be referred to as a coding unit (CU).
  • the coding unit may be recursively divided according to a quad-tree binary-tree (QTBT) structure from a coding tree unit (CTU) or a largest coding unit (LCU).
  • QTBT quad-tree binary-tree
  • CTU coding tree unit
  • LCU largest coding unit
  • one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad tree structure and / or a binary tree structure.
  • the quad tree structure may be applied first, and the binary tree structure may be applied later.
  • the binary tree structure may be applied before the quad tree structure.
  • a coding procedure according to an embodiment of the present invention may be performed based on the final coding unit that is no longer split.
  • the maximum coding unit can be immediately used as the final coding unit, or if necessary, the coding unit is recursively divided into coding units of lower depth to optimize A coding unit of size may be used as the final coding unit.
  • the coding procedure may include a prediction, transform, and reconstruction procedure to be described later.
  • the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be split from the last coding unit.
  • 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 the transform coefficient.
  • a unit may be replaced with a term such as a block or an area as the case may be.
  • an M ⁇ N block may represent a set of samples or transform coefficients composed of M rows and N columns.
  • a sample may generally represent a pixel or a value of a pixel, may represent a pixel / pixel value of a luma component, or may represent a pixel / pixel value of a chroma component.
  • the sample may be replaced with one picture (or image) by pixel or pel.
  • the prediction unit 180 or the intra prediction unit 185 By subtracting the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 180 or the intra prediction unit 185 from the input video signal (original block or original sample array) of the encoder 100, the residual signal ( Or a residual block, a residual sample array), and the generated residual signal is transferred to the converter 120.
  • a unit for subtracting an input video signal (original block or original sample array) in the encoder 100 may be referred to as a subtractor 115.
  • the prediction unit may 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 blogger.
  • the prediction unit may determine whether intra prediction or inter prediction is applied on a current block or coding unit basis.
  • the prediction unit may generate information about prediction, such as prediction mode information, and transmit the generated information about prediction to the entropy encoding unit 190.
  • the information about the prediction is encoded by the entropy encoding unit 190 and may be output in the form of a bitstream.
  • the intra predictor 185 may predict the current block by referring to samples in the current picture.
  • the referenced samples may be located in the neighborhood of the current block according to the prediction mode, or may be located apart from the current block.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the non-directional mode may include, for example, a DC mode and a planar mode.
  • the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of detail of the prediction direction. However, as an example, more or less directional prediction modes may be used depending on the setting.
  • the intra predictor 185 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the inter prediction unit 180 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
  • the motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring block and the current block.
  • the motion information may include a motion vector and a reference picture index.
  • the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction) information.
  • the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in the reference picture.
  • the reference picture including the spatial neighboring blocks and the reference picture including the temporal neighboring blocks may be the same or may be different.
  • a temporal neighboring block may be referred to as a colocated reference block, a co-located CU (colCU), and a reference picture including a temporal neighboring block may be referred to as a collocated picture (colPic).
  • the inter prediction unit 180 constructs a motion information candidate list based on information of neighboring blocks, and indicates which candidates are used to derive a motion vector and / or a reference picture index of the current block. Information can be generated. Inter prediction based on various prediction modes may be performed.
  • the inter prediction unit 180 may use motion information of a neighboring block as motion information of a current block.
  • the residual signal may not be transmitted unlike the merge mode.
  • MVP motion vector prediction
  • the motion vector of the current block is signaled by using the motion vector of the neighboring block as a motion vector predictor and signaling a motion vector difference. Can be directed.
  • the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used for generating a reconstruction signal or for generating a residual signal.
  • the transform unit 120 may generate transform coefficients by applying a transform technique to the residual signal.
  • the transformation technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT).
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT Karhunen-Loeve transform
  • GBT graph-based transform
  • CNT conditionally non-linear transform
  • GBT means the conversion obtained from a graph when the relationship information between pixels is represented by a graph.
  • the CNT refers to a transform that generates a prediction signal using all previously reconstructed pixels and is obtained based on the generated prediction signal.
  • the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
  • the quantization unit 130 transmits the quantized transform coefficients to the entropy encoding unit 190 by quantizing the transform coefficients, and the entropy encoding unit 190 encodes the quantized signal (information about the quantized transform coefficients) to entropy.
  • the encoded video data may be output in the form of a bitstream.
  • Information about the quantized transform coefficients may be referred to as residual information.
  • the quantization unit 130 may rearrange the block-shaped quantized transform coefficients into a one-dimensional vector form based on a coefficient scan order, and the quantized transform based on the quantized transform coefficients in the one-dimensional vector form. Information about the coefficients can be generated.
  • the entropy encoding unit 190 may perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
  • the entropy encoding unit 190 may encode information (eg, syntax elements related information) necessary for video / image reconstruction in addition to the quantized transform coefficients together or separately.
  • the encoded information (eg, encoded video / picture information) may be transmitted in units of network abstraction layer (NAL) units in the form of a bitstream, or may be stored in a digital storage medium.
  • NAL network abstraction layer
  • the network may include a broadcasting network and / or a communication network
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
  • the signal output from the entropy encoding unit 190 includes a transmission unit (not shown) for transmitting the encoded data and / or a storage unit (not shown) for storing the encoded data as internal / external elements of the encoder 100. Can be.
  • the transmission unit may be a component of the entropy encoding unit 190.
  • the quantized transform coefficients output from the quantization unit 130 may be used to generate a prediction signal.
  • the residual signals may be reconstructed by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantizer 140 and the inverse transform unit 150 in a loop.
  • the adder 155 adds the reconstructed residual signal to the predicted signal output from the inter predictor 180 or the intra predictor 185 to generate a reconstructed signal (eg, a reconstructed picture, a reconstructed block, a reconstructed sample).
  • Array may be output to the memory 170.
  • the adder 155 may be referred to as a restoration unit or a restoration block generation unit.
  • the reconstruction signal output from the adder 155 may be used for intra prediction of a block processed after the block reconstructed in the current picture.
  • the reconstruction signal output from the adder 155 may be used for inter prediction of the next picture after filtering as described below.
  • the filtering unit 160 may improve subjective / objective image quality by applying filtering to the reconstruction signal.
  • the filtering unit 160 may generate a modified reconstruction picture by applying various filtering methods to the reconstruction picture, and the modified reconstruction picture may be generated in the memory 170, more specifically, in the memory 170. May be stored in the DPB 175.
  • Various filtering methods performed by the filtering unit 160 may include, for example, deblocking filtering, sample adaptive offset (SAO), adaptive loop filter (ALF), and bidirectional. It may include a bilateral filter.
  • the filtering unit 160 may generate various types of information about the filtering, and transmit the information about the filtering to the entropy encoding unit 190.
  • the information about the filtering may be encoded by the entropy encoding unit 190, and the encoded information about the filtering may be output in the form of a bitstream through the entropy encoding unit 190.
  • the modified reconstructed picture transferred to the memory 170 may be used as the reference picture in the inter predictor 180.
  • the encoder 100 may avoid prediction mismatch between the encoder 100 and the decoder 200 and may also improve encoding efficiency.
  • the DPB 175 of the memory 170 may store a modified reconstructed picture for use as a reference picture in the inter predictor 180.
  • the memory 170 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the blocks in the picture that have already been reconstructed.
  • the motion information stored in the memory 170 may be transferred to the inter predictor 180 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
  • the memory 170 may store reconstructed samples of blocks reconstructed in the current picture, and transfer the stored reconstructed samples to the intra predictor 185.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video / image signal is performed as an embodiment to which the present invention is applied.
  • the decoder of FIG. 2 may be referred to as a decoding apparatus.
  • the decoder 200 includes an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, and inter prediction.
  • the unit 260 may include an intra predictor 265.
  • the inter predictor 260 and the intra predictor 265 may be collectively referred to as a predictor. That is, the predictor may include an inter predictor 260 and an intra predictor 265.
  • the inverse quantization unit 220 and the inverse transform unit 230 may be collectively referred to as a residual processing unit. That is, the residual processor may include an inverse quantizer 200 and an inverse transform unit 230.
  • the entropy decoding unit 210, the inverse quantization unit 220, the inverse transformer 230, the adder 235, the filtering unit 240, the inter prediction unit 260, and the intra prediction unit 265 are implemented. According to an example, it may be configured by one hardware component (eg, a decoder or a processor).
  • the memory 270 may include a DPB 275 and may be configured by a digital storage medium.
  • the digital storage medium may include various storage media for storing data such as video signals such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
  • the decoder 200 may perform an image reconstruction operation corresponding to a process in which the video / image information is processed by the encoder 100 of FIG. 1. .
  • the decoder 200 may perform decoding in units of processing units applied by the encoder 100.
  • the processing unit of the decoder 200 may be, for example, a coding unit, which may be divided by a quad tree structure and / or a binary tree structure from a coding tree unit or a maximum coding unit.
  • the reconstructed video signal output from the decoder 200 may be reproduced through the reproducing apparatus.
  • the decoder 200 may receive a signal output from the encoder 100 of FIG. 1 in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 210.
  • the entropy decoding unit 210 may derive information (eg, video / image coding information) necessary for image reconstruction (or picture reconstruction) by parsing the bitstream.
  • the entropy decoding unit 210 decodes information obtained in the form of a bitstream based on a coding method such as exponential Golomb encoding, CAVLC, or CABAC, and transform coefficients related to information and residuals of syntax elements required for image reconstruction. It can output quantized values of.
  • the CABAC entropy decoding method may identify a bin corresponding to each syntax element from a bitstream, decode information of a syntax element as a decoding target, decoding information of a current block and neighboring blocks, or decoded in a previous step.
  • the context model is determined using at least one of the symbol / bin information, and the arithmetic decoding of the bin is performed by predicting the occurrence probability of the bin according to the determined context model, thereby corresponding to the information of each syntax element.
  • the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model of the symbol / bin.
  • the information related to the prediction among the information decoded by the entropy decoding unit 210 is provided to a predictor (the inter predictor 260 and the intra predictor 265), and the residual from which the entropy decoding is performed by the entropy decoder 210 is performed.
  • Data that is, quantized transform coefficients and related parameter information, may be input to the inverse quantizer 220.
  • information on filtering among information decoded by the entropy decoding unit 210 may be provided to the filtering unit 240.
  • a receiver (not shown) that receives a signal output from the encoder may be further configured as an internal / external element of the decoder 200, or the receiver may be a component of the entropy decoding unit 210.
  • the inverse quantization unit 220 may output the transform coefficients by inverse quantization of the quantized transform coefficients.
  • the inverse quantization unit 220 may rearrange the quantized transform coefficients in the form of a two-dimensional block. In this case, the reordering may be performed based on the coefficient scan order performed in the encoder 100.
  • the inverse quantization unit 220 may perform inverse quantization on quantized transform coefficients using a quantization parameter (eg, quantization step size information), and may obtain transform coefficients.
  • a quantization parameter eg, quantization step size information
  • the inverse transform unit 230 may obtain a residual signal (residual block, residual sample array) by inversely transforming the transform coefficients.
  • the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210, and may determine a specific intra / inter prediction mode.
  • the intra predictor 265 may perform prediction on the current block by referring to samples in the current picture.
  • the referenced samples may be located at the periphery of the current block or may be spaced apart according to the prediction mode.
  • Prediction modes in intra prediction may include a plurality of non-directional modes and a plurality of directional modes.
  • the intra predictor 265 may determine the prediction mode to be applied to the current block by using the prediction mode applied to the neighboring block.
  • the inter predictor 260 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector in the reference picture.
  • the motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring block and the current block.
  • the motion information may include a motion vector and / or a reference picture index.
  • the motion information may further include inter prediction direction (eg, L0 prediction, L1 prediction, Bi prediction) information.
  • the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture.
  • the inter prediction unit 260 may construct a motion information candidate list based on information of neighboring blocks, and derive a motion vector and / or reference picture index of the current block based on the received candidate selection information. . Inter prediction based on various prediction modes may be performed, and the information about the prediction may include information indicating a mode of inter prediction for the current block.
  • the adder 235 adds the obtained residual signal to the predictive signal (predicted block, predictive sample array) output from the inter predictor 260 or the intra predictor 265 to restore the reconstructed signal (restored picture, reconstructed block, Reconstructed sample arrays). If there is no residual signal for the block to be processed, such as when the skip mode is applied, the predicted block may be immediately used as a reconstruction block.
  • the adder 235 may be referred to as a restoration unit or a restoration block generation unit.
  • the generated reconstruction signal may be used for intra prediction of the next block to be processed in the current picture, and may be used for inter prediction of the next picture after filtering as described below.
  • the filtering unit 240 may improve subjective / objective image quality by applying filtering based on the reconstruction signal. For example, the filtering unit 240 may generate a modified reconstructed picture by applying various filtering to the reconstructed picture, and the modified reconstructed picture may be generated in the memory 250, more specifically, in the DPB 255 of the memory 250. Can be delivered to.
  • Various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bidirectional filter.
  • the reconstructed picture stored in the DPB 255 of the memory 250 may be used as the reference picture by the inter predictor 260.
  • the memory 250 may store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the blocks in the picture that have already been reconstructed.
  • the motion information stored in the memory 250 may be transferred to the inter predictor 260 to be used as motion information of the spatial neighboring block or motion information of the temporal neighboring block.
  • the embodiments described in connection with the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoder 100 are respectively the filtering unit 240 and the inter-layer of the decoder 200. The same may be applied to the predictor 260 and the intra predictor 265 in the same or similar manner.
  • the video / image coding / decoding method described herein may be performed by various detailed techniques, and each detailed technique will be described as follows. Techniques described below may be used in procedures such as prediction, tram processing (e.g., (inverse) transform, (inverse) quantization), syntax element coding / decoding, and segmentation in the video / image coding / decoding procedure described above or below. It will be apparent to one skilled in the art that this may be performed.
  • tram processing e.g., (inverse) transform, (inverse) quantization
  • syntax element coding / decoding e.g., (inverse) quantization
  • segmentation e.g., segmentation in the video / image coding / decoding procedure described above or below. It will be apparent to one skilled in the art that this may be performed.
  • the block division procedure described in this document may be performed by the image division unit 110 of the encoder 100, and the information related to the division is encoded by the entropy encoding unit 190, thereby decoding the decoder 200 in the form of a bitstream. Can be delivered.
  • the entropy decoding unit 210 of the decoder 200 derives a block division structure of the current picture based on the information about the division obtained from the bitstream, and performs a series of procedures for video decoding based on the derived block division structure. For example, prediction, residual signal processing, block reconstruction, in-loop filtering) may be performed.
  • the picture may be divided into a sequence of coding tree units (CTUs).
  • the CTU may correspond to a coding tree block (CTB).
  • CTU may include a coding tree block of luma samples and two coding tree blocks of corresponding chroma samples.
  • the CTU may include an N ⁇ N block of luma samples and two corresponding N ⁇ N blocks of chroma samples.
  • the maximum allowable size of the CTU for coding / decoding and prediction may be different from the maximum allowable size of the CTU for conversion.
  • the maximum allowable size of the luma block in the CTU may be 128x128.
  • the CTU may be divided into CUs based on a quadtree (QT) structure.
  • the QT structure may be referred to as a quaternary tree structure. Segmentation based on the QT structure is intended to reflect various local characteristics.
  • the CTU may be divided based on a multitype tree structure including a binary tree (BT) or a ternary tree (TT) as well as a QT.
  • the QTBT structure may include a partition structure based on a quadtree and a binary tree
  • the QTBTTT structure may include a partition structure based on a quadtree, a binary tree, and a ternary tree.
  • the coding unit CU divided from the CTU may have a square or rectangular shape.
  • the CTU may first be divided into QT structures. Thereafter, leaf nodes of the QT structure may be further divided by the multitype tree structure.
  • FIG 3 shows an example of a multi-type tree structure that can be applied to an embodiment of the present invention.
  • the multitype tree structure may include four partition types as shown in FIG.
  • the four split types shown in FIG. 3 are vertical binary splitting (SPLIT_BT_VER) 310, horizontal binary splitting (SPLIT_BT_HOR) 320, vertical ternary splitting (SPLIT_TT_VER) ( 330, and horizontal ternary splitting (SPLIT_TT_HOR) 340.
  • Leaf nodes of the multitype tree structure may be referred to as CUs.
  • CUs can be used as units for prediction and transform procedures.
  • CUs, PUs, and TUs may have the same block size, and may also have different sizes. If the maximum supported transform length is smaller than the width or height of the color component of the CU, the CU and the TU may have different block sizes.
  • FIG. 4 illustrates an example of a signaling mechanism of partitioning information of a quadtree with nested multi-type tree structure involving a multitype tree applicable to embodiments of the present invention.
  • the CTU corresponds to the root node of the quadtree, and is first divided into a quadtree structure.
  • Each quadtree leaf node may then be further divided into a multitype tree structure.
  • a flag eg, mtt_split_cu_flag
  • a flag eg, mtt_split_cu_vertical_flag
  • a flag for example, mtt_split_cu_binary_flag
  • the multitype tree splitting mode of the CU may be determined as shown in Table 1 below.
  • FIG. 5 illustrates an example of a method of dividing a CTU into a plurality of CUs based on a quadtree and accompanying multi-type tree structure applicable to embodiments of the present invention.
  • the CU may correspond to a coding block (CB).
  • the CU may include a coding block of luma samples and two coding blocks of corresponding chroma samples.
  • the size of the CU may be set by the size of the CTU.
  • the luma sample unit of the CU may be set to 4 ⁇ 4. For example, in the 4: 2: 0 color format (or chroma format), the maximum chroma CB size may be 64x64 and the minimum chroma CB size may be 2x2.
  • the maximum allowable luma TB size may be 64x64 and the maximum allowable chroma TB size may be 32x32. If the width or height of the split CB according to the tree structure is greater than the maximum transform width or the maximum transform height, the CB can be automatically (or implicitly) split until it meets the TB size limits in the horizontal and vertical directions. .
  • the following parameters may be defined as syntax elements of a slice parameter set (SPS).
  • SPS slice parameter set
  • CTU size the root size of a quaternary tree
  • MinQTSize the minimum allowed quaternary tree leaf node size
  • MaxBtSize the maximum allowed binary tree root node size
  • MaxTtSize the maximum allowed ternary tree root node size
  • MaxMttDepth the maximum allowed hierarchy depth of multi-type splitting from a quadtree leaf
  • MinBtSize the minimum allowed binary tree leaf node size
  • MinTtSize the minimum allowed ternary tree leaf node size
  • the CTU size may be set to 64x64 blocks of 128x128 luma samples and two corresponding chroma samples (4: 2: 0 chroma format).
  • MinQtSize can be set to 16x16
  • MaxBtSize to 128x128, MaxTtSize to 64x64, MinBtSize and MinTtSize to 4x4, and MaxMttDepth to 4.
  • quadtree leaf nodes can be generated.
  • the quadtree leaf node may be referred to as a leaf QT node.
  • Quadtree leaf nodes may have a size of 16x16 (MinQtSize) and a size of 128x128 (CTU size). If the leaf QT node is 128x128, it may not be additionally divided into a binary tree / a ternary tree. In this case, even if divided, MaxBtSize and MaxTtSize (64x64) is exceeded. In other cases, leaf QT nodes may be further partitioned into a multitype tree structure. If the multitype tree depth reaches MaxMttdepth (eg 4), further splitting may no longer be considered. If the width of the multitype tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, then no further horizontal split may be considered. If the height of the multitype tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, no further vertical split may be considered.
  • MinMttdepth MaxMttdepth
  • FIG. 6 illustrates a method of limiting ternary-tree partitioning to which the present invention can be applied.
  • TT partitioning may be limited in certain cases. For example, if the width or height of the luma coding block is greater than a predetermined predetermined value (eg, 32 or 64), TT splitting may be limited as shown in FIG.
  • the coding tree scheme may support that the luma and chroma blocks have separate block tree structures.
  • luma CTBs and chroma CTBs in one CTU have the same coding tree structure. May be limited.
  • I-slices slices to which intra prediction has been applied
  • luma and chroma blocks may have separate block tree structures from each other.
  • the luma CTB may be split into CUs based on a specific equal tree structure, and the chroma CTB may be split into chroma CUs based on another coding tree structure.
  • the CTU of the I-slice consists of the coding block of the luma component and the coding blocks of the two chroma components
  • the CU of the P-slice or B-slice can be composed of blocks of three color components. do.
  • a structure in which a CU is divided is not limited.
  • the BT structure or the TT structure may be interpreted as a concept included in multiple partitioning tree (MPT) structures, and the CU may be interpreted to be divided through the QT structure and the MPT structure.
  • MPT partitioning tree
  • a syntax element (eg, MPT_split_type) that includes information about how many blocks the leaf node of the QT structure is divided into, and the leaf node of the QT structure are vertical
  • the partition structure may be determined through signaling of a syntax element (eg, MPT_split_mode) including information about which direction is divided into and horizontally.
  • the CU may be partitioned by a method different from the QT structure, the BT structure, or the TT structure. That is, according to the QT structure, the lower depth CU is divided into 1/4 size of the upper depth CU, the lower depth CU is divided into 1/2 size of the upper depth CU according to the BT structure, or according to the TT structure. Whereas the CU of the lower depth is divided into 1/4 or 1/2 the size of the CU of the upper depth, the CU of the lower depth is, in some cases, 1/5, 1/3, 3/8 of the CU of the upper depth. , 3/5, 2/3, or 5/8 sizes, and the way in which the CU is divided is not limited thereto.
  • the tree node block may be restricted such that all samples of all coded CUs are located inside picture boundaries.
  • the above-described quadtree coding block structure with a multi-type tree can provide a very flexible block partition structure.
  • a coding block structure result by other partitioning patterns may potentially have a coding block structure by partitioning types supported in a multitype tree. Therefore, by using only the partition types supported in the multi-type tree to limit the occurrence of redundant partition patterns, the amount of data for transmission of partition information can be reduced.
  • FIG. 7 illustrates examples of overlapping partitioning patterns that may occur in binary tree partitioning and ternary tree partitioning that may be applied to embodiments of the present invention.
  • the continuous binary division for one direction of two levels has the same coding block structure as the binary division for the center after the ternary division.
  • binary tree splitting for the central portion of the ternary tree split may be limited. This limitation of partitioning can be applied for CUs of all pictures. If a particular partition is restricted, the signaling of the corresponding syntax elements may be modified to reflect the limit of this partition, and reduce the number of bits signaled for the partition. For example, as shown in FIG. 7, when the binary tree split for the central portion of the CU is restricted, a syntax element (mtt_split_su_binary_flag) indicating whether the split is a binary split or a ternary split may not be signaled.
  • the decoder 200 may determine a syntax element (mtt_split_su_binary_flag) indicating whether the partition is a binary partition or a ternary partition as 0.
  • the decoded portion of the current picture or other pictures in which the current processing unit is included may be used.
  • a picture (slice) in which only intra prediction is performed an intra picture or an I-picture (I-slice), one motion vector and a reference index to predict each unit
  • the picture used (slice) may be referred to as a predictive picture or P-picture (P-slice), a picture using two or more motion vectors and reference indices (slice) as a pair predicted picture or B-picture (B-slice).
  • Inter prediction means a prediction method of deriving sample values of a current block based on data elements (eg, sample values or motion vectors) of pictures other than the current picture. That is, it refers to a method of predicting a sample value of a current block by referring to reconstructed regions of other reconstructed pictures other than the current picture.
  • data elements eg, sample values or motion vectors
  • intra prediction (or intra prediction) will be described in more detail.
  • Intra prediction means a prediction method that derives sample values of the current block from data elements (eg, sample values) of the same decoded picture (or slice). That is, it refers to a method of predicting a sample value of the current block by referring to reconstructed regions in the current picture.
  • Intra prediction may refer to prediction for generating a prediction sample for a current block based on reference samples outside the current block in a picture to which the current block belongs (hereinafter, referred to as a current picture).
  • Embodiments of the present invention describe the detailed description of the prediction method described above with reference to FIGS. 1 and 2.
  • the embodiment of the present invention provides the intra prediction based video / image decoding method of FIG. 10 and the decoder 200 of FIG. ) May correspond to a device of the intra prediction unit 265.
  • an embodiment of the present invention may correspond to the intra prediction based video / image decoding method of FIG. 8 and the apparatus of the intra prediction unit 185 in the encoder 100 of FIG. 9.
  • the data encoded by FIGS. 8 and 9 may be stored in a memory included in the encoder 100 or the decoder 200 in the form of a bitstream, or in a memory functionally coupled with the encoder 100 or the decoder 200. have.
  • neighboring reference samples to be used for intra prediction of the current block may be derived.
  • the peripheral reference samples of the current block are samples adjacent to the left boundary of the current block of size nW x nH and a total of 2 x nH samples adjacent to the lower left side, samples adjacent to the upper boundary of the current block and total 2 x nW adjacent to the upper right side. Samples, and one sample in the upper left side of the current block.
  • the peripheral reference samples of the current block may include the upper peripheral samples of the plurality of columns and the left peripheral samples of the plurality of rows.
  • the peripheral reference samples of the current block may include samples located on the left or right vertical lines adjacent to the current block and on the upper or lower horizontal lines.
  • peripheral reference samples of the current block may not be decoded yet or available.
  • decoder 200 may construct peripheral reference samples to be used for prediction by substituting samples that are not available with the available samples.
  • peripheral reference samples to be used for prediction may be configured through interpolation of the available samples. For example, samples located on the vertical line adjacent to the right side of the current block and samples located on the horizontal line adjacent to the bottom of the current block are samples located on the left vertical line of the current block and samples located on the upper horizontal line of the current block. It can be replaced based on or configured through interpolation.
  • the prediction samples can be derived based on the average or interpolation of the neighbor reference samples of the current block, and ii) from among the neighbor reference samples of the current block,
  • the prediction sample may be derived based on the reference sample present in the prediction) direction.
  • Prediction modes such as i) may be referred to as non-directional prediction modes or non-angular prediction modes, and prediction modes such as ii) may be referred to as directional prediction modes or angular prediction modes.
  • the prediction sample is interpolated by interpolation between a first peripheral sample located in the prediction direction of the intra prediction mode of the current block and a second surrounding sample located in the opposite direction of the prediction direction based on the prediction sample of the current block among the neighboring reference samples.
  • LIP linear interpolation inter prediction
  • a temporary prediction sample of the current block is derived based on the filtered neighbor reference samples, and at least one reference sample derived according to an intra prediction mode among the existing neighbor reference samples, that is, the filtered neighbor reference samples; A weighted sum of the temporary prediction samples may be used to derive the prediction sample of the current block. Prediction through weighted sum of a plurality of samples may be referred to as position dependent intra prediction (PDPC).
  • PDPC position dependent intra prediction
  • the intra prediction procedure may include an intra prediction mode determination step, a peripheral reference sample derivation step, an intra prediction mode based prediction sample derivation step, and may include a post-processing filtering step on the derived prediction sample as necessary. have.
  • the video encoding procedure based on intra prediction and the intra prediction unit 185 in the encoder 100 may be expressed as shown in FIGS. 8 and 9.
  • FIG. 8 and 9 illustrate an intra prediction based video encoding method according to an embodiment of the present invention and an example of an intra prediction unit in an encoding apparatus according to an embodiment of the present invention.
  • step S810 may be performed by the intra predictor 185 of the encoder 100, and steps S820 and S830 may be performed by a residual processor.
  • operation S820 may be performed by the subtraction unit 115 of the encoder 100
  • operation S830 may be performed by using the residual information derived by the residual processing unit and the prediction information derived by the intra prediction unit 185. It may be performed by the entropy encoding unit 190.
  • the residual information is information about the residual samples and may include information about quantized transform coefficients for the residual samples.
  • the residual samples may be derived as transform coefficients through the transform unit 120 of the encoder 100, and the derived transform coefficients may be derived as transform coefficients quantized through the quantization unit 130.
  • Information about the quantized transform coefficients may be encoded by the entropy encoding unit 190 through a residual coding procedure.
  • the encoder 100 may perform intra prediction on the current block.
  • the encoder 100 determines an intra prediction mode for the current block, derives peripheral reference samples of the current block, and generates prediction samples within the current block based on the intra prediction mode and the neighboring reference samples.
  • the determination of the intra prediction mode, the derivation of the surrounding reference samples, and the generation of the prediction samples may be performed simultaneously or sequentially.
  • the intra predictor 185 of the encoder 100 may include a prediction mode determiner 186, a reference sample derivator 187, and a prediction sample generator 188.
  • the intra predictor 185 may further include a predictive sample filter (not shown).
  • the encoder 100 may determine a prediction mode to be applied to the current block among the plurality of intra prediction modes. The encoder 100 may compare the rate-distortion cost (RD cost) for the intra prediction modes and determine the optimal intra prediction mode for the current block.
  • RD cost rate-distortion cost
  • the encoder 100 may perform prediction sample filtering. Predictive sample filtering may be referred to as post filtering. Filtering of some or all of the prediction samples may be performed by the prediction sample filtering procedure. In some cases, predictive sample filtering may be omitted.
  • the encoder 100 may generate a residual sample for the current block based on the (filtered) prediction sample. Thereafter, in step S830, the encoder 100 may encode video data including prediction mode information including an intra prediction mode and information about residual samples.
  • the encoded video data may be output in the form of a bitstream.
  • the output bitstream may be delivered to the decoder 200 through a storage medium or a network.
  • the encoder 100 as described above may generate a reconstructed picture including the reconstructed samples and the reconstructed block based on the reference samples and the residual samples.
  • the derivation of the reconstructed picture by the encoder 100 is to derive the same prediction result from the encoder 100 as is performed by the decoder 200, thereby improving coding efficiency. Further, subsequent procedures such as in-loop filtering may be performed on the reconstructed picture.
  • FIGS. 10 and 11 illustrate an intra prediction based video / image decoding method according to an embodiment of the present invention and an example of an intra prediction unit in a decoder according to an embodiment of the present invention.
  • the decoder 200 may perform an operation corresponding to the operation performed by the encoder 100.
  • the decoder 200 may derive the prediction sample by performing prediction on the current block based on the received prediction information.
  • the decoder 200 may determine an intra prediction mode for the current block based on the prediction mode information obtained from the encoder 100.
  • the decoder 200 may derive a peripheral reference sample of the current block.
  • the decoder 200 may generate the prediction sample in the current block based on the intra prediction mode and the neighbor reference samples.
  • the decoder 200 may perform a prediction sample filtering procedure, and 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 predictive sample filtering procedure may be omitted.
  • the decoder 200 may generate a residual sample based on the residual information obtained from the encoder 100.
  • the decoder 200 may generate a reconstructed sample for the current block based on the (filtered) prediction samples and the residual samples, and generate a reconstructed picture using the generated reconstructed samples.
  • the intra predictor 265 of the decoder 200 may include a prediction mode determiner 266, a reference sample derivator 267, and a prediction sample generator 268, and the prediction mode determiner 266.
  • the intra predictor 265 may include a predictive sample filter (not shown).
  • the prediction mode information used for the prediction may include a flag (eg, prev_intra_luma_pred_flag) indicating whether the most probable mode (MPM) is applied to the current block or the remaining mode is applied.
  • the prediction mode information may further include an index (mpm_idx) indicating one of intra prediction mode candidates (MPM candidates).
  • MPM candidates intra prediction mode candidates
  • Intra prediction mode candidates may consist of an MPM candidate list or an MPM list.
  • the prediction mode information may further include remaining mode information (eg, rem_intra_luma_pred_mpde) indicating one of the intra prediction modes except for the intra prediction mode candidates (MPM candidates). Can be.
  • the decoder 200 may determine the intra prediction mode of the current block based on the prediction information.
  • the prediction mode information may be encoded and decoded through a coding method described below.
  • prediction mode information may be encoded or decoded through entropy coding (eg, CABAC, CAVLC) based on truncated binary code.
  • an intra prediction mode to be applied to the current block may be determined using the intra prediction mode of the neighboring block.
  • the decoder 200 may receive the MPM received from the encoder 100 among MPM candidates derived based on the intra prediction mode of the left neighboring block adjacent to the current block and the intra prediction mode of the upper neighboring block adjacent to the current block.
  • the candidate indicated by the index can be selected as the intra prediction mode of the current block.
  • the MPM index may be signaled in syntax element form (eg, mpm_idx), and the remaining intra prediction mode information may also be signaled in syntax element form (eg, rem_intra_luma_pred_mode).
  • the remaining intra prediction mode information may include an index indicating a prediction mode applied to the current block in a list in which the remaining intra prediction modes not included in the MPM candidates among all the intra prediction modes are arranged in order of prediction mode number. .
  • the intra prediction mode may include two non-directional intra prediction modes and 33 directional intra prediction modes.
  • the non-directional intra prediction modes may include a planar intra prediction mode and a DC intra prediction mode, and the directional intra prediction mode may include 2 to 34 intra prediction modes.
  • the planner intra prediction mode may be referred to as a planner mode, and the DC intra prediction mode may be referred to as a DC mode.
  • the directional intra prediction mode uses 65 directional intra prediction modes from 33 of FIG. 12 as shown in FIG. It may include.
  • non-directional intra prediction modes may include a planner mode and a DC mode
  • directional intra prediction modes may include 2 to 66 intra prediction modes.
  • Extended directional intra prediction as shown in FIG. 13 may be applied to blocks of all sizes, and may be applied to both a luma component and a chroma component.
  • the intra prediction mode may include two non-directional intra prediction modes and 129 directional intra prediction modes.
  • the non-directional intra prediction modes may include a planner mode and a DC mode
  • the directional intra prediction mode may include 2 to 130 intra prediction modes.
  • the decoder 200 via at least one of 33 (or 65) directional prediction methods and two non-directional prediction methods, a total of 35 (or 67) prediction modes and peripheral reference Samples can be used to generate predictive samples.
  • the peripheral reference sample may be an upper reference sample or a left reference sample, assuming a case of decoding in a raster scan order.
  • the decoder 200 may copy the sample value of the reference sample located according to the prediction direction from the position of the prediction sample, and apply the copied value to the prediction sample.
  • the accuracy of the prediction since a value simply copied according to the prediction direction is used, the accuracy of the prediction may be lowered as the distance between the reference sample and the prediction sample becomes far. That is, the prediction accuracy is high when the distance between the reference sample and the prediction sample used for prediction is close, but the prediction accuracy may be lowered when the distance between the reference sample and the prediction sample is far.
  • embodiments of the present invention provide a linear interpolation intra prediction method for generating a weighted prediction sample based on a distance between a prediction sample and a reference sample.
  • an embodiment of the present invention generates a reference sample located below or to the right of the current block in the linear interpolation prediction method, and based on the actual distance between the samples adjacent to the current block and the prediction sample, The prediction method to determine will be described.
  • FIG 14 illustrates examples of prediction samples and reference samples to which linear interpolation intra prediction is applied according to an embodiment of the present invention.
  • the linear interpolation intra prediction method performs a prediction sample with a weighted sum based on a distance between a top reference sample that has already been reconstructed through encoding or decoding and a temporary reference sample that has not yet been encoded or decoded and generated through prediction. Can be generated.
  • the decoder 200 may generate an upper reference sample P and a lower reference sample P ′ for prediction of the current sample C, and may assign distance ratios of the two reference samples as weighted values. have. That is, the decoder 200 may generate the prediction sample C by allocating a weight value of W1 to the upper reference sample P and a weight value of W2 to the lower reference sample P '.
  • the weighting value may be determined based on the distance between the current sample and each reference sample to be predicted. In one embodiment, the weight value is small when the distance between the current sample and the reference sample to be predicted is small, and the weight value is large when the distance between the sample and reference sample to be predicted is close.
  • reference samples P and P ′ are used for prediction of the current sample C. The distance between the current sample C and the upper reference sample P is relatively close, and vice versa. Since the distance between (C) and the lower reference sample (P ') is relatively far, a large weighting value is assigned to the close reference sample (P) for the prediction of the current sample (C), and conversely to the far reference sample (P'). Small weights can be assigned.
  • a weighted value may be assigned based on a distance between a current sample and a reference sample.
  • the weighted value may be assigned using various methods. For example, a cosine function or least squares method may be used.
  • Example 1-1 Linear interpolation intra prediction encoding / decoding method
  • FIG. 15 shows an example of a flowchart for encoding using linear interpolation intra prediction according to an embodiment of the present invention.
  • the encoder 100 may determine whether to apply linear interpolation intra prediction in operation S1520.
  • the encoder 100 determines candidate modes to be used for optimal mode determination through coarse mode determination in step S1531.
  • the encoder 100 adds a similar mode using the MPM method.
  • the encoder 100 determines an optimal intra prediction mode through rate-distortion optimization. If linear interpolation intra prediction is not applied, the encoder 100 determines candidate modes to be used for optimal mode determination through coarse mode determination in step S1532. Then, in step S1542, the encoder 100 adds a similar mode using the MPM method.
  • the encoder 100 determines an optimal intra prediction mode through RD optimization.
  • the encoder 100 may determine the optimal intra prediction mode determined in step S1551 or S1552 as the final intra prediction mode.
  • steps S1531 to S1551, S1532, and S1552 illustrated in FIG. 15 may be performed in parallel.
  • the intra prediction encoding method may increase complexity because the optimal mode is determined after applying the existing intra prediction encoding method and the linear interpolation intra prediction method to all the intra prediction modes. Accordingly, embodiments described below provide a linear interpolation intra prediction encoding method that increases encoding efficiency while reducing complexity.
  • FIG. 16 shows an example of a flowchart for decoding using linear interpolation intra prediction according to an embodiment of the present invention. Operations shown in FIG. 16 may be performed by the decoder 200.
  • the decoder 200 confirms whether linear interpolation intra prediction (LIP) is applied to a current block. If the LIP is applied to the current block, in step S1612, the decoder 200 checks whether the MPM is used. Then, when the MPM is used, in step S1632, the decoder 200 parses the MPM index. If the MPM is not used, in step S1631, the decoder 200 parses the intra prediction mode. If LIP is not applied to the current block (such as intra prediction of existing HEVC), in step S1622, the decoder 200 confirms whether MPM is used. Then, when the MPM is used, in step S1632, the decoder 200 parses the MPM index. If the MPM is not used, in step S1633, the decoder 200 parses the intra prediction mode.
  • LIP linear interpolation intra prediction
  • FIG. 17 shows an example of a flowchart of a low complexity linear interpolation intra prediction decoding process according to an embodiment of the present invention. The operations of FIG. 17 may be performed by the decoder 200.
  • the linear interpolation intra prediction decoding method having a low complexity parses the MPM index without the MPM flag parsing part when the current block is a LIP block as compared to the intra prediction encoding method of FIG. 16. This is because in the linear interpolation intra prediction decoding method having low complexity, if the current block is a block to which the LIP is applied, the mode generated through the MPM is limited to the candidate mode. Therefore, when the current block is a LIP block, the number of bits for MPM flag encoding can be reduced.
  • FIG. 18 shows an example of a flowchart of a low complexity linear interpolation intra prediction encoding process according to an embodiment of the present invention. The operations of FIG. 18 may be performed by the decoder 200.
  • the encoder 100 may determine whether to apply linear interpolation intra prediction in operation S1820.
  • the encoder 100 determines an approximate mode as a similar mode using the MPM method.
  • the encoder 100 determines an optimal intra prediction mode through RD optimization. If linear interpolation intra prediction is not applied, the encoder 100 determines candidate modes to be used for optimal mode determination through coarse mode determination in step S1832. Then, in step S1842, the encoder 100 adds a similar mode using the MPM method.
  • the encoder 100 determines an optimal intra prediction mode through RD optimization.
  • the encoder 100 may determine the optimal intra prediction mode determined in step S1851 or S1852 as the final intra prediction mode.
  • steps S1531 to S1551, S1532, and S1552 illustrated in FIG. 15 may be performed in parallel.
  • the intra prediction encoding method of FIG. 18 determines an optimal mode through the same process as the method of FIG. 15. However, unlike the linear interpolation intra prediction encoding method of the intra prediction encoding method of FIG. 15, the linear interpolation intra prediction encoding method omits the coarse mode determination process and the optional similar mode addition process, and instead uses the coarse mode determination method in the similar mode. Use to determine candidate modes for optimal mode determination.
  • a method of determining an approximate mode as a similar mode of the linear interpolation intra prediction encoding method of FIG. 18 is a method of using a candidate mode selected through the MPM method as a mode used for optimal mode determination.
  • the existing method determines a few candidate modes through the coarse mode determination method, and then adds some of the candidate modes selected through the MPM method to the candidate mode and uses the candidate mode thus generated for optimal mode determination.
  • the proposed method simply uses all of the selected candidate modes through the MPM method as candidate modes for optimal mode determination.
  • the generation bit for the MPM flag does not need to be encoded. Can be reduced.
  • Example 1-2 Linear Interpolation Intra Prediction Encoding / Decoding Method with Reduced Complexity
  • a method for reducing the complexity of the encoding and decoding procedure of the linear interpolation intra prediction proposed in Embodiment 1-1 is proposed.
  • a low index number is assigned to the high frequency intra prediction mode, and conversely, a high index number is assigned to the low frequency intra prediction mode.
  • a small amount of bits may be allocated to the high frequency intra prediction mode and conversely, a large amount of bits may be allocated to the low frequency intra prediction mode, thereby improving encoding efficiency. Therefore, it is highly likely that the intra prediction mode with the low index number is the optimal intra prediction mode of the current block. Based on such index number assignment, we propose a method for reducing encoding and decoding complexity using linear interpolation intra prediction.
  • the cost value of MPM index number 0 is calculated, and then the cost value of MPM index number 1 to MPM index number 5 and the cost value of MPM index number 0 are compared.
  • the cost value can be calculated in two ways.
  • the method of considering distortion as a cost value is calculated using methods such as sum of absolute transformed differences (SATD), sum of absolute difference (SAD), and sum of square difference (SSD) between the prediction block and the original block.
  • SATD sum of absolute transformed differences
  • SAD sum of absolute difference
  • SSD sum of square difference
  • the method that considers the coarse mode decision as the cost value may use the coarse mode decision method used in the intra prediction encoding method of FIG. 15.
  • the distortion value is determined, and the bit value (B) used for the prediction mode encoding is predicted, and then the Lagrangian constant ( ) To calculate the cost value.
  • Equation 1 is a cost value calculation formula of the coarse mode determination method.
  • Equation 2 adjusts the cost value of the MPM index mode 0.
  • the cost value of MPM index 0 can be changed by using the ⁇ value, so that the candidate mode to be used in the process of determining the optimal mode is selectively selected from modes 1 to 5 of the MPM index. You can choose. This allows you to balance complexity and performance.
  • the present embodiment relates to a still image or video encoding / decoding method, which is based on increasing the accuracy of prediction by performing a method for improving the method of performing linear interpolation prediction using more reference samples in intra prediction encoding.
  • the present invention relates to a method of encoding / decoding a still image or a moving image and an apparatus supporting the same.
  • This embodiment proposes a method of replacing the existing HEVC planner mode with a linear interpolation prediction mode.
  • This embodiment proposes a method of replacing planner mode using linear interpolation prediction mode.
  • This embodiment proposes a method for allocating weighted values according to distance in linear interpolation prediction.
  • This embodiment proposes a method for determining a weighted value using the value of a cosine function.
  • This embodiment proposes a method for determining weighting values using a least square method.
  • This embodiment proposes a method of encoding a linear interpolation prediction flag.
  • This embodiment proposes a method of allocating different context models for each block size.
  • This embodiment proposes a method of determining a context model using surrounding linear interpolation prediction blocks.
  • the present embodiment is a method of improving a method of performing linear interpolation using more reference samples when intra-prediction encoding a still image or a video, and can process a complex image more efficiently.
  • Example 2-1 Planar Mode in Linear Interpolation Intra Prediction
  • FIG. 20 shows an example of a planner mode in linear interpolation intra prediction according to an embodiment of the present invention.
  • the corresponding top reference sample, right reference sample, bottom reference sample, left reference sample O, e, m, E respectively for prediction of the current sample C A linear combination of is used.
  • the intra prediction mode is a planner mode
  • the planar prediction block is generated using the planar mode to which the linear interpolation method is applied.
  • the decoder 200 may generate an upper reference sample P and a lower reference sample P ′ for prediction of the current sample C, and may assign distance ratios of the two reference samples as weighted values. have. That is, the decoder 200 may generate the prediction sample C by allocating a weight value of W1 to the upper reference sample P and a weight value of W2 to the lower reference sample P '.
  • the weighting value may be determined based on the distance between the current sample and each reference sample to be predicted. In one embodiment, the weight value is small when the distance between the current sample and the reference sample to be predicted is small, and the weight value is large when the distance between the sample and reference sample to be predicted is close. For example, in FIG.
  • reference samples P and P ′ are used for prediction of the current sample C.
  • the distance between the current sample C and the upper reference sample P is relatively close, and vice versa. Since the distance between (C) and the lower reference sample (P ') is relatively far, a large weighting value is assigned to the close reference sample (P) for the prediction of the current sample (C), and conversely to the far reference sample (P'). Small weights can be assigned. (W1> W2).
  • a weighted value may be assigned based on a distance between a current sample and a reference sample.
  • the weighted value may be assigned using various methods. For example, a cosine function or least squares method may be used.
  • weighting value applied to the current sample is not necessarily proportional to the distance between the reference sample and the current sample
  • other weighting methods may be used to determine the weighting value.
  • two methods for determining the weighted value are proposed, 1) weighted value determination using the value of the cosine function, and 2) weighted value determination using the least-squares method. Each detailed method is described in detail.
  • 21 shows an example of a graph for determining a weighting value in a 4x4 block using a cosine function in linear interpolation intra prediction according to an embodiment of the present invention.
  • the highest value and the lowest value to be used as the weighted value are determined.
  • the highest value is set to 0.9 and the lowest value is set to 0.1. It can be determined by any value such as the highest value and the lowest value.
  • the angles divided into three ranges are 26 ° -46 °, 46 ° -65 ° and 65 ° -84 °, respectively.
  • this value may be determined as a weighted value according to the distance of the 4 ⁇ 4 block.
  • weight values to be used in various sizes of blocks may be similarly determined.
  • FIG. 22 shows another example of a graph for determining a weighting value in a 4x4 block using a cosine function in linear interpolation intra prediction according to an embodiment of the present invention.
  • the upper reference sample P and the lower reference sample P ′ may be divided into five equally divided ranges.
  • 22 illustrates a method of determining weighting values using a top reference sample and a bottom reference sample.
  • the highest value and the lowest value need not be determined. That is, after the angle is equally divided into five as shown in FIG. 22, the highest reference sample corresponds to 0 °, the lowest reference sample corresponds to 90 °, and in the case of a 4x4 block, according to the distance from each reference sample.
  • Weighting values corresponding to 18 °, 36 °, 54 °, and 72 °, respectively, are assigned.
  • weighting values to be used in various sizes of blocks such as 8x8 blocks and 16x16 blocks, can be determined.
  • FIG. 23 illustrates an example of a process of generating a prediction block using weight values calculated in linear interpolation intra prediction according to an embodiment of the present invention.
  • a weight value w UP1 of 0.9 is included in the upper reference sample P 1 for prediction of the prediction sample C 1 located in the first row.
  • the lower reference sample P ′ 1 is assigned a weighting value w DOWN1 of 0.1.
  • the weighted value (w UP2 ) of 0.69 is assigned to the upper reference sample (P 2 ) for the prediction of the predicted sample (C 2 ) located in the second row, and the weighted value (w DOWN2 ) of 0.31 is assigned to the lower reference sample ( P'2 ). Is assigned.
  • the prediction values of the sample C3 located in the third row and the sample C4 located in the fourth row may be determined.
  • the weight reference value W UP1 of 0.95 is assigned to the upper reference sample P 1 for prediction of the prediction sample C 1 located in the first row, and the lower reference.
  • the sample P ' 1 is assigned a weighting value w DOWN1 of 0.05.
  • the weighted value (w UP2 ) of 0.81 is assigned to the upper reference sample (P 2 ) for the prediction of the prediction sample (C 2 ) located in the second row, and the weighted value (w DOWN2 ) of 0.19 is assigned to the lower reference sample (P ' 2 ). Is assigned.
  • the same method can determine the value of the sample (C 3 ) located in the third row and the sample (C 4 ) located in the fourth row.
  • Table 2 shows the weighting values assigned to each sample in a 4x4 block.
  • weighting values illustrated in Table 2 are extracted from the actual cosine function values, and if necessary, some weighting adjustments are required to reduce the computational complexity and ease of hardware implementation in order to be implemented in the actual system. Can be.
  • the weighting values calculated by the method of FIG. 21 may be set to be represented by 2N combinations as follows.
  • the method of determining the weighting value using the least square method first, an original block and an optimal prediction block are generated, and a weighting value for minimizing the residual energy for the original block and the optimal prediction block is calculated through the least square method.
  • the method of determining the weighting value using the least square method is calculated in advance through offline training.
  • the weighting value is determined such that the energy of the residual block, which is the difference between the original block and the prediction block, is minimized.
  • the weighted value is calculated for each sample position and calculated using the least square method as shown in Equation 3.
  • w ij represents the weighting value of the (i, j) th position.
  • E () is an operator that represents an expectation.
  • the weight value w ij may be calculated in different ways according to various conditions. For example, the weighted value may be calculated according to the block size, or the weighted value may be calculated according to the intra prediction mode. That is, the weighting values can be calculated according to various conditions and methods. It is possible to reduce the residual energy by precomputing through offline learning based on different conditions and methods, and then applying it when performing encoding / decoding.
  • This embodiment proposes a method of encoding a linear interpolation prediction flag (LIP_FLAG).
  • LIP_FLAG linear interpolation prediction flag
  • CABAC context-based adaptive binary arithmetic coding
  • CMLIP_FLAG a method of selectively determining the context model
  • the method considering statistical characteristics is a method of determining different context models by considering the selection ratio of linear interpolation prediction according to block size or shape (square or non-square). For example, assuming that the linear interpolation prediction selection ratio is 20% in 4x4 and 8x8 blocks, and the linear interpolation prediction selection ratio is 50% in 16x16 blocks and above, encoding the linear interpolation prediction flag using two context models is recommended. effective. That is, if the size of the block to be encoded is 8x8 or less, use CMLIP_FLAG1 with the linear interpolation prediction rate initialized to 20%. If the block size is larger than 8x8, use the CMLIP_FLAG2 with the linear interpolation prediction rate initialized to 50%. Do this.
  • the rate of occurrence of linear interpolation prediction according to actual block size is statistically analyzed, and then the number and initial value of the context model to be used are determined and used for encoding / decoding.
  • the method considering spatial correlation is a method of determining different context models in consideration of the frequency of occurrence of linear interpolation prediction of neighboring neighboring blocks.
  • a context model for linear interpolation prediction is determined using two neighboring neighbor blocks A and L of the current block C, and the context model may be determined using any of several neighboring blocks. have.
  • the context model It is effective to use the linear interpolation prediction usage ratio initialized to 50%. If both the upper block (A) and the left block (L) are encoded / decoded using linear interpolation intra prediction, then the context model is effective to use a linear interpolation intra prediction usage ratio of greater than 50%. . Based on this, the linear interpolation prediction flag can be encoded / decoded using the context model table as shown in Table 4.
  • CM linear interpolation prediction Context Model
  • L Upper block
  • A X X CM LIP_FLAG1 O X CM LIP_FLAG2 X O O O CM LIP_FLAG3
  • the present embodiment relates to a still image or a video encoding / decoding method, and encodes a still image or a video based on an accurate lower right reference sample generation method in order to increase the accuracy of a prediction block when performing linear interpolation prediction in intra prediction encoding. / Decoding method and a device supporting the same.
  • This embodiment proposes a method for generating a lower right reference sample value used for linear interpolation prediction.
  • This embodiment proposes a method for generating a lower right reference sample value in consideration of a prediction direction.
  • This example proposes a method of using original right bottom reference sample values.
  • a linear image may be encoded / decoded by performing linear interpolation using a lower right sample value accurately generated during intra prediction encoding to process a complex image more efficiently.
  • FIG. 26 illustrates a method of generating a right reference sample and a bottom reference sample using a right bottom sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • a lower right sample BR is first generated.
  • the right and lower reference samples are generated by linearly interpolating the upper right sample (TR) and the lower left sample (BL), which are already restored, respectively, and then using the generated right and lower reference samples. Linear interpolation intra prediction is performed.
  • the linear interpolation intra prediction method weights according to the distance between the upper reference sample that has already been reconstructed through encoding / decoding and the lower reference sample that has been temporarily predicted because no sub-coding / decoding is performed at the current encoding time. Generate a prediction block by the sum.
  • the accuracy of the prediction block depends on how accurately it generates the reference sample (bottom reference sample in FIG. 14) that is not encoded / decoded.
  • This embodiment proposes a method for accurately generating a lower right reference sample (BR sample) in order to accurately predict a reference sample that has not been encoded / decoded around a block to be currently encoded.
  • Example 3-1 Generation of Lower Right Reference Sample Value Considering Prediction Direction
  • This embodiment proposes a method for generating a bottom-right (BR) reference sample value in consideration of prediction direction in intra prediction encoding.
  • FIG. 27 illustrates a method of generating a lower right reference sample value in consideration of prediction direction in linear interpolation intra prediction according to an embodiment of the present invention.
  • an arrow indicates a prediction direction of the current block. If the block to be encoded currently selects an intra prediction mode having a specific prediction direction as an optimal mode, it means that the prediction block generated considering the prediction direction is most likely to be similar to the original block. Therefore, as shown in FIG. 27, when generating the temporary prediction value (hereinafter, referred to as BR value) of the lower right sample BR, the BR value is also most similar to the sample value of the original BR position when the prediction block is generated. It is very likely to. Therefore, the present embodiment generates the BR value in consideration of the prediction direction. For the example shown in FIG. 27, the BR value is determined as the sample value of the upper reference sample F.
  • a value corresponding to a specific (width, height) location is generated as a BR value in the same manner as a method of generating a prediction block in consideration of the existing direction.
  • the method of generating the lower right reference sample value in consideration of the prediction direction may be used under various conditions.
  • region A and region B show horizontal directionality
  • region C and region D show vertical directionality.
  • region A represents positive directionality
  • region B represents negative directionality
  • region C represents negative directionality
  • region D represents positive directionality.
  • the BR sample generation method proposed above can be variably applied.
  • the directional modes belonging to the B region and the C region having negative directionality generate BR sample values by applying the BR generation method considering the predicted directionality as shown in FIG. 27, and the A and D regions having positive directionality.
  • a BR sample value generation method may be applied using a lower left sample and a right upper sample as illustrated in FIG. 26.
  • the BR sample value generation method is applied by using the lower left sample and the upper right sample as shown in FIG. 26, and the region A and the region D having positive directionality.
  • the directional mode belonging to may generate a BR sample value by applying the BR generation method considering the prediction direction as shown in FIG. 27.
  • Another embodiment of generating BR sample values is a method of using the top reference sample value and the left reference sample value.
  • 29 illustrates an example of a method of determining a lower right sample value using an upper reference sample value and a left reference sample value in linear interpolation intra prediction according to an embodiment of the present invention.
  • the upper reference sample value for generating the BR sample value is generated by considering the directionality as described above (the upper reference sample in the example of FIG. 29).
  • the left reference sample value may be determined as the N value (2 or Q value (3?)) Of the left reference sample, and the left reference sample value may be determined in various ways.
  • the BR sample value may be determined through a weighted sum of the sample values Equation 4 is an equation using an N value of a left reference sample, and Equation 5 is an equation using a Q value of a left reference sample.
  • the BR value may be determined in the same manner even when the prediction direction of the current block is the horizontal direction mode. That is, since the current direction is the horizontal mode, the left reference sample value is generated by considering the directionality as described above, and the upper reference sample value uses the reference sample E value located above the BR sample, or is located at the right angle.
  • the reference sample H value is used to determine the weighted sum, such as Equation 4 or Equation 5.
  • FIG. 30 illustrates a method of generating a lower right sample value of a current block from an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • the lower right sample (BR sample) at the same position as the lower right sample (BR sample) of the block to be currently encoded is found from the original image on the left side of FIG. 30.
  • the BR value of the corresponding original image is copied and used as the BR sample value of the block to be currently encoded.
  • the encoder 100 should transmit the BR value of the original image to the decoder 200.
  • the following three methods (1) a method of transmitting the difference value of the BR value of the original image, 2) a method of transmitting the difference value of the lower right value of the prediction block and the BR value of the original image, and 3) a method of transmitting the default offset value ) To transmit the BR value to the decoder 200.
  • FIG. 31 illustrates an example of a method of transmitting difference values of lower right sample values of an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • the difference value between successive BR values is transmitted.
  • the bold color border represents the boundary of each block to be encoded, and the number in each block represents the encoding order.
  • a difference value (BR1-128 for 8-bit and BR1-512 for 8-bit) from the intermediate value (128 for 8-bit and 512 for 10-bit) is transmitted.
  • the value of position BR2 of the original image is used as the BR sample value.
  • a difference value (BR2-BR1) from the BR2 value is transmitted using the BR1 value used at that time.
  • the BR sample value of the current block is generated by transmitting a difference value between the BR value of the corresponding original picture of the current block and the BR value used for the previous block encoding.
  • 32 illustrates an example of a method of transmitting a difference value between a lower right end value of a prediction block and a lower right adjacent sample value of an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • the encoder 100 uses the value of the BR1 position of the original image as the BR sample value. At this time, the encoder 100 transmits the difference values BR1-P1 from the lower right end value P1 generated in consideration of the prediction direction of the current block.
  • the encoder 100 uses the value of position BR2 of the original image as the BR sample value, and also the difference value with the lower right value P2 generated in consideration of the prediction direction ( BR2-P2). In this manner, the encoder 100 generates a BR sample value of the current block by transmitting a difference value between the BR value of the corresponding original image of the current block and the lower right value generated in consideration of the direction of the current block.
  • 33 illustrates an example of a method for transmitting default offset values uniformly in linear interpolation intra prediction according to an embodiment of the present invention.
  • the default offset value transmission method is a method of transmitting a representative value of an area including a BR value of an original image after quantizing a sample value in consideration of internal bits of the current image, dividing the sample value into arbitrary intervals.
  • the example of FIG. 33 is an example where the internal bit of an image is 8 bits. Therefore, the encoder 100 divides the range of 0 to 255 sample values into four sections, and then divides the representative value of the section to which the BR value of the original image belongs to two bits (00 (representative value 32 sections), 01 (representative value). 96 sections), 10 (typical section 160) and 11 (typical section 224)). In this embodiment, although divided into four sections, the number of sections can be arbitrarily determined.
  • the encoder 100 divides a range of 0 to 255 sample values into four uneven sections, and then divides the representative value of the section to which the BR value of the original image belongs to two bits (00 (represented 20). Section), 01 (typical section 84), 10 (typical section 170), and 11 (typical section 234). Although the present embodiment is also divided into four sections, the number of sections can be arbitrarily determined, and inequality can be arbitrarily determined.
  • the present embodiment relates to a still image or a video encoding / decoding method, and to a still image or a video based on a method of generating a mixed intra prediction block using a linear interpolation method in order to increase the accuracy of a prediction block in intra prediction encoding.
  • a method of encoding / decoding and an apparatus supporting the same are provided.
  • the present embodiment proposes a linear interpolation intra prediction method combining a linear interpolation prediction method and a conventional intra prediction method, that is, partially using linear interpolation prediction.
  • This embodiment proposes a generalized mixed intra prediction method by combining a linear interpolation prediction method and a conventional intra prediction method.
  • This embodiment describes an example of practical use of the mixed intra prediction method.
  • the present embodiment generates and encodes / decodes a more accurate prediction block by using a mixed intra prediction method that combines a linear interpolation prediction method and a conventional intra prediction method when intra prediction encoding a still image or a video, thereby making complex images more efficient.
  • a mixed intra prediction method that combines a linear interpolation prediction method and a conventional intra prediction method when intra prediction encoding a still image or a video, thereby making complex images more efficient.
  • the linear interpolation intra prediction method predicts by a weighted sum according to a distance between an upper reference sample that is already encoded / decoded and reconstructed and a lower reference sample that is not predicted because sub-coding / decoding is not performed at the current encoding time. Create a block.
  • the present embodiment proposes a mixed intra prediction method combining a conventional intra prediction method and a linear interpolation intra prediction method.
  • the mixed intra prediction method according to the present embodiment may be used in place of the existing intra prediction method in intra prediction encoding.
  • the mixed intra prediction method according to the present embodiment can solve the following two problems mentioned above.
  • the mixed intra prediction method according to the present embodiment uses a flag instead of the existing intra prediction method.
  • Example 4-1 Combination of Existing Intra Prediction and Linear Interpolation Intra Prediction
  • FIG. 35 is an example of an intra prediction method according to an embodiment of the present invention
  • FIG. 35A illustrates an existing intra prediction method
  • FIG. 35B illustrates an example of a linear interpolation prediction method.
  • a method of generating a prediction block using an existing intra prediction method generates a prediction block by copying a sample value of a top reference sample, as shown in FIG. 35A. That is, the predicted value of C 1 is generated by copying it to the upper reference sample P 1 value. In the same way, all prediction values in the block are generated.
  • a method of generating a prediction block using the linear interpolation prediction method generates a prediction block through linear interpolation of a top reference sample and a bottom reference sample, as illustrated in FIG. 35B. That is, the predicted value of C 1 is generated by linear interpolation between the upper reference sample P 1 value and the lower reference sample P ′ 1 value. At this time, linear interpolation is performed by assigning weight values of w DOWN1 and w UP1 to the P 1 sample value and the P ′ 1 sample value, respectively. In this same way, all prediction values in the block are generated.
  • the mixed intra prediction method combining the existing intra prediction method and the linear interpolation prediction method according to the present embodiment basically uses the existing intra prediction method of FIG. 35A and the linear interpolation prediction method of FIG. 35B.
  • FIG. 36 illustrates an intra prediction method combining an existing intra prediction method and a linear interpolation prediction method in intra prediction according to an embodiment of the present invention.
  • the first row of the 4x4 block (the highest row, the row containing (C 1 , C 2 , C 3 , C 4 )) uses a conventional intra prediction method to obtain the predicted value.
  • the decoder 200 is C 1 is the value of the value of P 1
  • C 2 is P 2
  • C 3 are the values of P 3
  • C 4 is to copy the value of P 4 generates a predicted value.
  • the decoder 200 determines a prediction value from the second row to the last row (the area highlighted by a dotted line in FIG. 36) using a linear interpolation prediction method.
  • the predicted value of C 5 of the second row may be generated through linear interpolation using the upper reference sample P 5 value and the lower reference sample P ′ 5 value and weighting values of w DOWN5 and w UP5 .
  • the predicted value of C 6 in the third row may be generated through linear interpolation using the upper reference sample P 6 value and the lower reference sample P ′ 6 value and the weighted values of w DOWN6 and w UP6 . That is, the prediction values from the second row to the last row highlighted by the dotted line may be generated using the same method.
  • the mixed intra prediction method combining the conventional intra prediction method and the linear interpolation prediction method proposed in this embodiment generates a prediction value for a specific region using the existing intra prediction method, and uses the linear interpolation prediction method. A prediction value for the remaining area is generated and a final prediction block is generated.
  • the upper reference sample is a sample value reconstructed through encoding / decoding and thus has higher accuracy than the lower reference sample. Therefore, as shown in the first row of FIG. 36, when the position of the prediction sample is close to the upper reference sample, it is efficient to copy the upper reference sample value as it is using the existing intra prediction method. On the contrary, as the positions of the predicted samples move away from the upper reference sample as shown in the second to last row of FIG.
  • the existing intra prediction method and the linear interpolation prediction method are selectively used in consideration of the distance from the reconstructed reference sample to generate one prediction block.
  • a 4x4 block is exemplarily illustrated in FIG. 36
  • the present embodiment can be applied to both blocks of various sizes and shapes such as 8x8 and 16x8 (square block and non-square block).
  • the selection of the existing intra prediction method and the linear interpolation prediction method proposed in one prediction block may be variably determined according to the distance from the reconstructed reference sample.
  • the mixed prediction method combining the conventional intra prediction method and the linear interpolation prediction method can be used to replace all the existing directional modes. Therefore, the mixed intra prediction mode is composed of two existing non-directional modes (Planar mode and DC mode) and a mixed prediction direction mode combining the proposed conventional intra prediction method and linear interpolation prediction method.
  • This embodiment describes a more generalized mixed intra prediction method by combining an existing intra prediction method and a linear interpolation prediction method.
  • the intra prediction value C (i, j) generated through the conventional intra prediction method shown in FIG. 35A and the linear interpolation intra prediction shown in FIG. 35B are generated.
  • the new intra prediction value P (i, j) generalized through the intra prediction value L (i, j) may be defined as in Equation 6 below.
  • Equation 6 may be expressed as Equation 7 in view of a practical implementation for eliminating floating point calculations.
  • Equation 7 A and B represent respective weighted values for conventional intra prediction and linear interpolation prediction, and both may be expressed as non-negative integers.
  • the offset value is generally set to 2 (right_shift-1), and the operator a >> b represents the quotient obtained by dividing a by the value of 2b.
  • the mixed intra prediction method may be represented by a combination of an existing intra prediction method and a linear interpolation prediction method, which may be defined in various forms as follows.
  • the ⁇ value defined in Equation 6 may be predefined according to the intra prediction mode.
  • is set to '0' so that the new intra prediction method may simply be replaced by the linear interpolation prediction method.
  • the ⁇ value is set to '1', so that the existing intra prediction method may be used as the new intra prediction method.
  • a new intra prediction method may be applied in consideration of a predefined value of ⁇ .
  • the value of ⁇ may be defined differently according to the position of the prediction sample during intra prediction.
  • the predicted sample located closely to the top reference sample and the left reference sample may have a relatively larger value of ⁇ than otherwise.
  • a large value of ⁇ means giving a weighting value to the existing intra prediction.
  • Equation 8 Equation 8 below, ⁇ may be modeled to change depending on a position, such as ⁇ (i, j).
  • the ⁇ value may be defined differently according to the size of the prediction block. For example, it may be defined to have a relatively small value of ⁇ when the width (height) of the block is smaller than the given threshold (32).
  • the ⁇ value may be defined differently according to the shape of the prediction block.
  • the existing intra encoding method and the linear interpolation intra encoding method may be selected and used based on additional flag information.
  • additional flag information For example, in planner mode, which is a non-directional mode, the value of ⁇ is set to '0' so that no additional flag information is required, but in the horizontal mode, if the value of ⁇ is set to 0.5, it is additionally transmitted through the bitstream.
  • An intra encoding method selected from existing intra encoding methods and linear interpolation intra encoding methods may be used based on flag information.
  • the condition for which an additional flag is required may be predefined based on an ⁇ value or a corresponding prediction mode.
  • Whether to send the additional flag information proposed in 5) may be predefined based on the prediction mode as follows.
  • Class A ⁇ 0, 1, 66 ⁇
  • Class B ⁇ 2, 3, 4, ⁇ , 64, 65 ⁇
  • Class A is a set of prediction modes that do not require additional flag information
  • Class B represents a set of prediction modes that require additional flag information
  • the present embodiment relates to a still image or video encoding / decoding method, which encodes / decodes a still image or video based on increasing accuracy of prediction by performing linear interpolation using more reference samples in intra prediction encoding. It relates to a method and a device supporting the same.
  • This embodiment proposes a method of generating a new reference sample.
  • This embodiment proposes a method for generating the bottom right sample.
  • the present embodiment proposes a method for generating lower and lower right samples using the generated lower right sample, the existing upper right sample, and the lower left sample.
  • This embodiment proposes a new prediction method for performing linear interpolation using more reference samples.
  • This embodiment proposes a prediction method for performing linear interpolation using the upper right sample, the lower right sample, and the lower left sample.
  • This embodiment proposes a prediction method for performing linear interpolation using lower samples and right samples.
  • This embodiment proposes a method for allocating weight values in linear interpolation.
  • a complex image may be processed more efficiently by performing linear interpolation using more reference samples to encode / decode a still image or a video during intra prediction encoding.
  • a lower right reference sample is generated.
  • the lower right reference sample generating method may be generated by using a reference sample of the surrounding or a sample of a corresponding position of the original image.
  • Example 5-1 Generation of Lower Right Reference Sample Using Surrounding Reference Sample
  • FIG. 37 is an example of a method of generating a lower right sample using a peripheral reference sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 37A illustrates a method of generating a lower right sample using a right upper sample and a lower left sample.
  • FIG. 37B illustrates a method of generating a lower right sample using a most upper right sample and a lower left sample that are two times as long as a block to be currently encoded.
  • Equations 9 and 10 Equations for generating the lower right sample using each sample are as shown in Equations 9 and 10 below.
  • Example 5-2 Generation of Lower Right Reference Sample Using Original Image
  • the method according to the embodiment 5-1 generates the lower right sample using the surrounding samples from the reconstructed image which has already been encoded, whereas the method of the embodiment 5-2 corresponds to the position corresponding to the lower right sample on the original image. Use the value of as the right bottom sample value.
  • 38 illustrates a method of generating a lower right reference sample from an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • a shaded area based on a block C to be encoded currently is an image area reconstructed by encoding, and a white area is an original image area that has not been encoded yet.
  • the lower right sample value may be set to a value of a corresponding position of the original image. In this case, although the information of the lower right sample value is transmitted from the encoder 100 to the decoder 200, the accuracy of the lower right sample value may be increased.
  • FIG. 28 illustrates region division according to a prediction direction and an angle. As described with reference to Examples 5-1 and 5-2, after the lower right sample is generated, linear interpolation prediction is performed using the lower right sample.
  • FIG. 28 illustrates an example in which the directionality of the intra prediction mode is divided into four regions based on the vertical direction and the horizontal direction, and the positive and negative angle directions.
  • the A, B and C and D regions are divided based on the horizontal and vertical directions, and the positive and negative angle regions A and D and B and C, respectively, are distinguished based on the angle.
  • Table 5 summarizes the area classification according to the direction and angle.
  • FIG. 39 is an example of a reference sample used for linear interpolation according to intra prediction modes in linear interpolation intra prediction according to an embodiment of the present invention
  • FIG. 39A is a top right reference sample
  • FIG. 39B is a bottom right reference sample
  • FIG. 39C is An example of a lower left reference sample is shown.
  • reference samples for interpolation are determined based on different reference samples according to directionality and angle.
  • 39 shows a reference sample used for linear interpolation prediction in an intra prediction mode belonging to each region.
  • the linear interpolation prediction is performed from the upper right sample in the intra prediction mode belonging to the region A
  • the linear interpolation prediction is performed from the lower right sample in the intra prediction modes belonging to the region B and the region C, and in the intra prediction mode belonging to the D region.
  • Linear interpolation prediction is performed from the lower left sample.
  • 40 illustrates a method of performing linear interpolation prediction using reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 40 is a method for performing linear interpolation prediction of intra prediction mode belonging to region D.
  • the current sample value is calculated by linear interpolation between the prediction sample and the reference sample (the lower left sample) generated by the conventional method.
  • the weight value of the linear interpolation is determined by the vertical distance between the current sample and the prediction sample and the vertical distance between the current sample and the reference sample.
  • the predicted value of the final current sample is calculated by equation (11).
  • the same method is also applied to intra picture modes belonging to areas A, B, and C to perform linear interpolation prediction.
  • 41 illustrates a method of generating bottom samples and right end samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • the lower samples and the right samples may be generated from the lower left sample and the upper right sample.
  • the bottom samples are generated by linear interpolation of the bottom left and right bottom samples
  • the right samples are generated by linear interpolation of the top right and bottom right samples.
  • Example 5-5 Linear Interpolation Prediction Based on Actual Distance
  • Example 5-4 After generation of the bottom samples and the right samples described in Example 5-4, linear interpolation prediction is performed based on the generated bottom samples and the right samples.
  • the difference between the linear interpolation prediction method described in Example 5-3 and the linear interpolation prediction method described in Example 5-5 is as follows.
  • Example 5-3 the intra prediction mode is classified for each region, and then the prediction sample and the linear interpolation prediction are performed using one reference sample.
  • Example 5-5 the intra prediction mode is classified for each region, and then the prediction sample and the linear interpolation prediction are performed using reference samples corresponding to each region.
  • the intra prediction modes in the positive vertical direction are modes belonging to the area D of FIG. 28.
  • the current prediction sample C is generated in the following order.
  • Predictive sample value P ' is generated by interpolating A' reference sample and B 'reference sample (using the existing intra encoding prediction sample generation method).
  • the final predicted value C is generated by linear interpolation of the generated P and P 'again.
  • the method 2) -4) is applied to all samples in the prediction block to generate a prediction value.
  • a prediction block is generated by applying the same method to all prediction directions (intra prediction modes belonging to areas A, B, and C of FIG. 28).
  • the linear interpolation intra prediction method according to the present embodiment is applied to all modes except planner mode and DC mode in which no directionality exists. Accordingly, when the current block is not the planner or the DC mode, a flag indicating the linear interpolation intra prediction mode is parsed to determine whether to apply the linear interpolation intra prediction method.
  • the ratio is calculated using a ratio of vertical distances, not a ratio of actual distances of P and P'.
  • w 1 and w 2 are calculated by calculating a ratio of actual distances of P and P ′, and linear interpolation is performed using w 1 and w 2 . Do this.
  • the methods 1) to 3) are identical and only 4) produce the final predicted value C.
  • 43 illustrates another example of a method of performing linear interpolation using a ratio of actual distances between reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • the second reference sample is first generated.
  • the weighted value is calculated by considering the distance from the predicted sample to be finally generated at the corresponding position.
  • the final prediction value C can be calculated using Equation 13.
  • w UP and w DOWN are weight values generated considering the actual distance ratio, respectively.
  • Equation 13 C is a prediction value of a current sample to be predicted
  • P is a sample value of a first reference sample
  • P ' is a sample value of a second reference sample
  • w UP is a first reference sample P and a current sample.
  • w DOWN indicate the distance between the second reference sample P 'and the current sample.
  • w UP and w DOWN are Can be used by changing.
  • FIG. 44 shows an example of a flowchart for linear interpolation intra prediction according to an embodiment of the present invention. Each operation of FIG. 44 may be performed by the encoder 100 or the decoder 200. Hereinafter, for the convenience of description, the operation of the decoder 200 will be described.
  • the decoder 200 may confirm that intra prediction is applied to the current block to be decoded.
  • the decoder 200 may determine that intra prediction is applied to the current block to be decoded by parsing a flag or index indicating information on the prediction mode for the current block.
  • the current block is a block to which the decoder 200 intends to perform decoding or prediction at a specific time point, and may be referred to as a processing unit, a processing block, or a prediction unit (PU).
  • each sample included in the current block may be referred to as a current sample.
  • the decoder 200 may identify an intra prediction mode applied to the current block.
  • the decoder 200 may identify a non-directional or directional intra prediction mode applied to the current block from the MPM candidate list or the remaining intra prediction mode candidate list.
  • the decoder 200 may check the prediction direction corresponding to the intra prediction mode.
  • the decoder 200 may determine the first reference sample value based on the intra prediction direction. More specifically, the decoder 200 identifies an intra prediction direction corresponding to an intra prediction mode applied to the current block, and based on the intra prediction direction, the first reference position and the first reference position for prediction of the current sample included in the current block.
  • the reference sample value can be determined. In other words, the decoder 200 may determine the first reference samples from at least one of the samples located in the upper horizontal line and the left vertical line adjacent to the current block based on the intra prediction direction of the current block.
  • a first reference sample value corresponding to the first reference position P may be determined as the first reference sample.
  • the upper horizontal line adjacent to the current block may refer to all samples belonging to one or more rows located above the top row of the current block.
  • the lower horizontal line adjacent to the current block may refer to all of the samples belonging to one or more rows located below the bottom row of the current block.
  • the left vertical line adjacent to the current block may refer to all samples belonging to one or more columns located to the left of the leftmost column of the current block.
  • the right vertical line adjacent to the current block may refer to all of the samples belonging to one or more columns located to the right of the rightmost column of the current block.
  • the decoder 200 may determine a second reference sample value based on the intra prediction direction. More specifically, the decoder 200 may determine the second reference sample value of the second reference position located in the opposite direction to the intra prediction direction from the first reference position or the current sample position determined in operation S4420.
  • a second reference sample value of a second reference position P ′ located in a direction opposite to the intra prediction direction from the position C of the current sample or the first reference position P may be determined.
  • the second reference position P ′ may be located on a lower horizontal line adjacent to the current block as shown in FIG. 42, or may be located on a left vertical line adjacent to the current block as shown in FIG. 43.
  • the first reference sample value of the first reference position is determined by linear interpolation of the sample values of two samples of the samples located in the upper horizontal line and the left vertical line adjacent to the current block, and the second of the second reference position.
  • the reference sample value may be determined by linear interpolation of the sample values of two samples of the samples located in the right vertical line and the lower horizontal line adjacent to the current block.
  • the first reference sample value of the first reference position P is determined by linear interpolation of sample A and sample B located on the upper horizontal line
  • the first reference sample value P ′ is determined by the linear interpolation of the second reference position P ′. 2
  • the reference sample value may be determined by linear interpolation of samples A 'and B' located in the lower horizontal line.
  • the sample values located at the left vertical line may be used as the values of samples A 'and B' of the lower horizontal line. That is, the second reference sample value is determined based on sample values of samples (A 'and B' in FIG. 42) located in the lower line adjacent to the current block, and sample values located below the current block are determined by the current block. It can be determined by the sample value of the sample adjacent to the left or right side of.
  • the first reference sample value of the first reference position P is determined by linear interpolation of the sample A and the sample B positioned on the upper horizontal line, and the second reference position P ′ is determined.
  • the reference sample value may be determined by linear interpolation of samples A 'and B' located on the left vertical line.
  • the first reference sample value is determined by linear interpolation of the sample values of two samples of the samples located in the upper horizontal line and the left vertical line adjacent to the current block
  • the second reference sample value is determined by the right side adjacent to the current block. It can be determined by linear interpolation of the sample values of two of the samples located in the vertical line and the lower horizontal line.
  • the first reference sample value is determined by linear interpolation between the sample values of two adjacent samples and the point indicated by the prediction direction from the current sample among the upper lines adjacent to the current block
  • the second reference sample value is It may be determined by linear interpolation between the sample values of two adjacent samples and the point indicated by the prediction direction from the current sample of the lower line adjacent to the current block.
  • the first reference sample value of the first reference position P is two samples A adjacent to the point P indicated by the prediction direction from the current sample among the upper lines adjacent to the current block. Is determined by linear interpolation between sample values of B), and the second reference sample value of the second reference position P 'is adjacent to the point indicated by the prediction direction from the current sample of the lower lines adjacent to the current block. It can be determined by linear interpolation between sample values of two samples A ', B'.
  • the decoder 200 may determine a first distance that is a distance between the current sample and the first reference position and a second distance that is a distance between the current sample and the second reference position. In other words, the decoder 200 may determine the distance between the first reference position and the current sample as the first distance, and determine the distance between the second reference position and the current sample as the second distance.
  • the first distance w 1 corresponds to the distance between the first reference position P and the position C of the current sample
  • the second distance w 2 corresponds to the second reference position ( P ′) may correspond to a distance between the position C of the current sample.
  • the first distance w 1 and the second distance w 2 are different from each other by the first reference position P and the position C of the current sample.
  • the actual distance may correspond to the actual distance between the second reference position P ′ and the position C of the current sample.
  • the first distance w 1 is a horizontal distance between the horizontal position of the current sample C and the horizontal position of the first reference position P, the vertical position of the current sample C, and
  • the second distance w 2 is the horizontal position of the current sample C and the second reference position P ′.
  • It may correspond to the actual distance determined based on the horizontal distance between the horizontal position of the position and the distance between the vertical position of the current sample (C) and the vertical position of the second reference position (P '). .
  • the process of calculating the first distance and the second distance may be performed as shown in FIG. 45.
  • the decoder 200 may generate a prediction value for the current sample using the first reference sample and the second reference sample. More specifically, the decoder 200 may generate a prediction value of the current sample based on the sample value of the first reference sample, the first distance, the sample value of the second reference sample, and the second distance.
  • the prediction value of the current sample may be determined by linear interpolation based on the first reference sample value, the first distance, the second reference sample value, and the second distance.
  • the prediction value of the current sample may be determined based on a value obtained by multiplying a first reference sample value by a second distance and a value obtained by multiplying the second reference sample value by a first distance.
  • the decoder 200 may generate a prediction value of the current sample by using Equation 12 or Equation 13.
  • 45 shows an example of a method for calculating a weighting value according to a distance between reference samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • 45 illustrates a method of calculating weighting values w1 and w2 according to the distance between P and P 'in FIGS. 43 and 44.
  • the calculated weighted values w1 and w2 are applied to Equation 12 to generate a linear interpolated prediction sample.
  • the same method is applied to all samples existing in the prediction block to generate the prediction block.
  • the prediction block is generated by applying the same method to all prediction directions (intra prediction modes belonging to areas A, B, and C mentioned in Fig. 4).
  • the present embodiment relates to a still image or a video encoding / decoding method, which is based on efficiently increasing the accuracy of prediction using a linear interpolation method when encoding a non-square shaped block in intra prediction encoding.
  • the present invention relates to a method for encoding / decoding a device and an apparatus supporting the same.
  • This embodiment proposes a method of generating a new reference sample in a non-square block shape.
  • This embodiment proposes a method for generating the bottom right sample.
  • the present embodiment proposes a method for generating lower and lower right samples using the generated lower right sample, the existing upper right sample, and the lower left sample.
  • This embodiment proposes a method for generating lower samples and right samples using the upper samples and the left samples of the block to be currently encoded.
  • the present embodiment relates to an encoding / decoding method of increasing prediction accuracy of an intra prediction block by performing efficient linear interpolation prediction in a non-square block shape when intra prediction encoding a still image or a video.
  • QTBT quad tree binary tree
  • a block divided by a solid line represents a quad tree structure, which is the same as that of the existing video encoding
  • a block divided by a dotted line means a block divided into a binary tree structure.
  • QTBT can divide not only square blocks but also various non-square blocks according to the characteristics of the image.
  • the conventional intra prediction performs the prediction in the unit of PU in a square block and performs the TU in the square shape again.
  • the intra prediction of QTBT performs the intra prediction in the block of the square as well as the non-square shape. Prediction and transformation are performed based on the divided blocks without TU classification.
  • Example 6-1 Lower Right Sample Generation Using Peripheral Reference Samples
  • This embodiment describes a method for generating a bottom right sample using surrounding reference samples in a non-square block shape.
  • FIG. 47 is an example of a method of generating a lower right reference sample in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 47A illustrates a method of generating a lower right sample using a right upper sample and a lower left sample
  • FIG. 47B Shows a method of generating a lower right sample by using a right uppermost sample and a lower left lowermost sample as far as the width and length of the non-square block to be encoded.
  • the equation for generating the lower right sample using each sample is as follows.
  • Equations 14 and 15 show examples of a method of generating a lower right sample using an average value.
  • Equations 16 and 17 show examples of a method of generating a lower right sample using a distance ratio.
  • the non-square block has different horizontal and vertical lengths, so it is efficient to consider this when generating the lower right sample.
  • Example 6-2 Generation of Lower Right Reference Sample Using Original Image
  • Example 6-1 describes a method for generating a lower right sample from a sample of a neighboring block in which encoding has been already performed and reconstructed, while in Example 6-2, a lower right end value of a position corresponding to a lower right sample in an original image is described. This section explains how to use the sample value directly.
  • FIG. 48 is an example of a method using a lower right sample in an original image in linear interpolation intra prediction according to an embodiment of the present invention.
  • FIG. 48A is a non-square block of Nx2N
  • FIG. 48B is a non-square block of 2NxN. An example is shown.
  • the gray area is an image area reconstructed by encoding
  • the white area is an image area not yet encoded, based on the block to be encoded.
  • the proposed method directly uses the lower right sample value as the value of the corresponding position of the original image. In this case, although the accuracy of the lower right sample value is high, there is a disadvantage in that information of the lower right sample value is transmitted to the decoder.
  • 49 illustrates a method of generating right samples and bottom samples through linear interpolation in linear interpolation intra prediction according to an embodiment of the present invention.
  • the lower samples are generated by linear interpolation of the lower left sample BL and the lower right sample BR, and the right samples are linear interpolated of the upper right sample TR and the lower right sample BR. Is generated by
  • Example 6-3 the right samples and the bottom samples are generated by using the right bottom sample and the already encoded / decoded right top sample and the bottom left sample generated using Example 6-1 or Example 6-2. The method was explained.
  • Example 6-4 describes a method of generating right samples and bottom samples using top samples and left samples of a block to be currently encoded without using the bottom right samples.
  • 50 illustrates a method of generating right samples and bottom samples using top samples and left samples in linear interpolation intra prediction according to an embodiment of the present invention.
  • upper samples A and B are copied to corresponding right samples
  • left samples C, D, E, and F are copied to corresponding lower samples, respectively, so that right samples and bottom samples are generated.
  • Linear interpolation intra prediction may be performed using the lower right sample, the right sample, and the lower sample generated using Example 6-1, Example 6-2, Example 6-3, and Example 6-4. have.
  • linear interpolation intra prediction (LIP) will be described with reference to FIG. 14.
  • LIP linear interpolation intra prediction may be applied on top of intra prediction.
  • the LIP flag for the intra coded CU may be signaled at the CU level to indicate whether the LIP intra prediction mode is used.
  • An intra prediction method according to an embodiment of the present invention may be classified into two prediction types, (i) a conventional intra prediction method, and (ii) a LIP method.
  • a typical intra prediction method uses 35 and 68 modes including two planar (DC) predictions.
  • the LIP prediction method can be applied to 33 and 65 prediction modes except planner and DC.
  • the LIP intra prediction method first calculates an intensity value of a bottom right (BR) adjacent sample as shown in Equation 18. Then, the intensity values of the bottom row (P b (x, y)) and the right column (P r (x, y)) of adjacent samples are generated. These samples are used as references on the opposite side of the CU and are derived from the intensity values of the BR adjacent sample and the intensity values of the other corner adjacent samples (ie, the upper right adjacent sample, the lower left adjacent sample).
  • BR bottom right
  • R (x, y) represents the intensity value of the adjacent sample reconstructed at the (x, y) coordinate
  • W and H represent the block width and height, respectively.
  • FIG. 14 shows a sample prediction process using LIP for any directional prediction mode.
  • a line connecting P-C-P 'of FIG. 14 indicates a prediction direction.
  • 'A' and 'B' represent samples located at integer sample positions, and 'P' represents samples at 1/32 sample positions in the reference sample array.
  • 'A' and 'A' represent samples at integer sample positions, and 'P' represents samples at 1/32 sample positions in the opposite reference sample array.
  • the first stage of the intra directional prediction mode includes extrapolating samples from a projected sample location based on a given direction.
  • the projected reference sample position is calculated through bilinear interpolation used to obtain the value of the projected reference sample using the two nearest reference samples located at integer positions.
  • the second stage of the prediction process requires the same approach as generating other predicted sample values at the same sample location.
  • the second predicted sample value may be obtained by projecting the position of the sample on the opposite side of the reference sample array by applying the selected prediction direction and interpolating the value with 1/32 sample position accuracy.
  • LIP has a distinct advantage in accuracy between input intensities in the final interpolation process.
  • large weights are applied to positions closer to more reliable adjacent positions.
  • the final predicted sample value may be determined as in Equation 19 below.
  • W 1 and W 2 are weight values determined according to the distance between the current sample position and the reference (opposite reference) sample position.
  • 51 shows an example of a video coding system as an embodiment to which the present invention is applied.
  • the video coding system can include a source device and a receiving device.
  • the source device may deliver the encoded video / image information or data to a receiving device through a digital storage medium or network in a file or streaming form.
  • the source device may include a video source, an encoding apparatus, and a transmitter.
  • the receiving device may include a receiver, a decoding apparatus, and a renderer.
  • the encoder may be called a video / image encoder and the decoder may be called a video / image decoder.
  • the transmitter may be included in the encoder.
  • the receiver may be included in the decoder.
  • the renderer may include a display unit, and the display unit may be configured as a separate device or an external component.
  • the video source may acquire the video / image through a process of capturing, synthesizing, or generating the video / image.
  • the video source may comprise a video / image capture device and / or a video / image generation device.
  • the video / image capture device may include, for example, one or more cameras, video / image archives including previously captured video / images, and the like.
  • Video / image generation devices may include, for example, computers, tablets and smartphones, and may (electronically) generate video / images.
  • a virtual video / image may be generated through a computer or the like. In this case, the video / image capturing process may be replaced by a process of generating related data.
  • the encoder can encode the input video / picture.
  • the encoder can perform a series of procedures such as prediction, transform, and quantization for compression and coding efficiency.
  • the encoded data (encoded video / image information) may be output in the form of a bitstream.
  • the transmitter may transmit the encoded video / video information or data output in the form of a bitstream to the receiver of the receiving device through a digital storage medium or a network in the form of a file or streaming.
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
  • the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast / communication network.
  • the receiver may extract the bitstream and transmit the extracted bitstream to the decoder.
  • the decoder may decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoder.
  • the renderer may render the decoded video / image.
  • the rendered video / image may be displayed through the display unit.
  • FIG 52 shows an example of a video streaming system as an embodiment to which the present invention is applied.
  • a content streaming system to which the present invention is 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 a smartphone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmit the bitstream to the streaming server.
  • multimedia input devices such as smart phones, cameras, camcorders, etc. directly generate a bitstream
  • the encoding server may be omitted.
  • the bitstream may be generated by an encoding method or a bitstream generation method to which the present invention is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
  • the streaming server transmits the multimedia data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user of what service.
  • the web server delivers it to a streaming server, and the streaming server transmits multimedia data to the user.
  • the content streaming system may include a separate control server.
  • the control server plays a role of controlling a command / response between devices in the content streaming system.
  • the streaming server may receive content from a media store and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
  • Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, Tablet PCs, ultrabooks, wearable devices, such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • slate PC slate PC
  • Tablet PCs ultrabooks
  • wearable devices such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
  • Each server in the content streaming system may be operated as a distributed server, in which case data received from each server may be distributed.
  • Embodiments described in the present invention may be implemented and performed on a processor, a microprocessor, a controller, or a chip.
  • the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip.
  • the decoder and encoder to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, OTT video (Over the top video) devices, Internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices. It can be used to process video signals or data signals.
  • the OTT video device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices and distributed storage devices in which computer readable data is stored.
  • the computer-readable recording medium may be, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical disc. It may include a data storage device.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
  • the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
  • embodiments of the present invention may be implemented as a computer program product by a program code, the program code may be performed on a computer by an embodiment of the present invention.
  • the program code may be stored on a carrier readable by a computer.
  • the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip.
  • the decoder and encoder to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, OTT video (Over the top video) devices, Internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices. It can be used to process video signals or data signals.
  • the OTT video device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices and distributed storage devices in which computer readable data is stored.
  • the computer-readable recording medium may be, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical disc. It may include a data storage device.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
  • the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
  • embodiments of the present invention may be implemented as a computer program product by a program code, the program code may be performed on a computer by an embodiment of the present invention.
  • the program code may be stored on a carrier readable by a computer.
  • each component or feature is to be considered optional unless stated otherwise.
  • Each component or feature may be embodied in a form that is not combined with other components or features. It is also possible to combine some of the components and / or features to form an embodiment of the invention.
  • the order of the operations described in the embodiments of the present invention may be changed. Some components or features of one embodiment may be included in another embodiment or may be replaced with corresponding components or features of another embodiment. It is obvious that the claims may be combined to form an embodiment by combining claims that do not have an explicit citation relationship in the claims or as new claims by post-application correction.
  • Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof.
  • an embodiment of the present invention may include one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, and the like.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • processors controllers, microcontrollers, microprocessors, and the like.
  • an embodiment of the present invention may be implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above.
  • the software code may be stored in memory and driven by the processor.
  • the memory may be located inside or outside the processor, and may exchange data with the processor by various known means.

Landscapes

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

Abstract

본 발명의 실시예들은 화면내 예측을 통해 비디오 신호를 처리하기 위한 방법 및 장치를 제공한다. 본 발명의 실시예에 따른 비디오 신호 처리 방법은, 예측하고자 하는 현재 샘플을 포함하는 현재 블록의 인트라 예측을 위하여 선형 보간 예측이 적용됨을 확인하는 단계와, 상기 현재 블록의 인트라 예측 방향에 기반하여 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 샘플을 결정하는 단계와, 상기 현재 블록의 인트라 예측 방향과 상기 제1 참조 샘플에 기반하여 상기 제1 참조 샘플과 상이한 제2 참조 샘플을 결정하는 단계와, 상기 제1 참조 샘플과 상기 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 상기 제2 참조 샘플과 상기 현재 샘플 사이의 거리를 제2 거리로서 결정하는 단계와, 상기 제1 참조 샘플의 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플의 샘플 값, 및 상기 제2 거리에 기반하여 상기 선형 보간 예측을 사용함으로써 상기 현재 샘플의 예측 값을 생성하는 단계를 포함할 수 있다.

Description

인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
본 발명은 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치에 관한 것으로서, 특히 선형 보간 인트라 예측(linear interpolation intra prediction)을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치에 관한 것이다.
압축 인코딩이란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 영상, 이미지, 음성 등의 미디어가 압축 인코딩의 대상이 될 수 있으며, 특히 영상을 대상으로 압축 인코딩을 수행하는 기술을 비디오 영상 압축이라고 일컫는다.
차세대 비디오 컨텐츠는 고해상도(high spatial resolution), 고프레임율(high frame rate) 및 영상 표현의 고차원화(high dimensionality of scene representation)라는 특징을 갖게 될 것이다. 그러한 컨텐츠를 처리하기 위해서는 메모리 저장(memory storage), 메모리 액세스율(memory access rate) 및 처리 전력(processing power) 측면에서 엄청난 증가를 가져올 것이다.
따라서, 차세대 비디오 컨텐츠를 보다 효율적으로 처리하기 위한 코딩 툴을 디자인할 필요가 있다. 특히, HEVC(high efficiency video coding) 표준 이후의 비디오 코덱 표준은 코딩 효율을 향상시키면서 예측 정확도를 향상시키기 위한 인트라(intra) 예측 기법이 요구되고 있다.
따라서, 보다 높은 예측 정밀도를 갖는 인트라 예측(intra prediction) 기법이 요구되고 있다.
따라서, 본 발명의 실시예들은, 예측 정밀도를 향상시키기 위한 비디오 신호 처리 방법 및 장치를 제공하고자 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 비디오 신호 처리 방법은, 예측하고자 하는 현재 샘플을 포함하는 현재 블록에 대하여 인트라 예측이 적용됨을 확인하는 단계와, 상기 현재 블록의 인트라 예측 방향에 기반하여 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 위치의 제1 참조 샘플 값을 결정하는 단계와, 상기 현재 샘플의 위치 또는 상기 제1 참조 위치로부터 상기 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치의 제2 참조 샘플 값을 결정하는 단계와, 상기 제1 참조 위치와 상기 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 상기 제2 참조 위치와 상기 현재 샘플 사이의 거리를 제2 거리로서 결정하는 단계와, 상기 제1 참조 샘플의 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플의 샘플 값, 및 상기 제2 거리에 기반하여 상기 현재 샘플의 예측 값을 생성하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 비디오 신호 처리 장치는, 상기 비디오 신호를 저장하는 메모리와, 상기 메모리와 기능적으로 결합되고, 상기 비디오 신호를 디코딩하기 위한 디코더를 포함할 수 있다. 본 발명의 실시예에서, 디코더는, 예측하고자 하는 현재 샘플을 포함하는 현재 블록에 대하여 인트라 예측이 적용됨을 확인하고, 상기 현재 블록의 인트라 예측 방향에 기반하여 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 샘플 값을 결정하고, 상기 현재 샘플의 위치 또는 상기 제1 참조 위치로부터 상기 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치의 제2 참조 샘플 값을 결정하고, 상기 제1 참조 위치와 상기 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 상기 제2 참조 위치와 상기 현재 샘플 사이의 거리를 제2 거리로서 결정하고, 상기 제1 참조 샘플의 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플의 샘플 값, 및 상기 제2 거리에 기반하여 상기 현재 샘플의 예측 값을 생성하도록 설정될 수 있다.
일 실시예에서, 상기 제1 거리는, 상기 현재 샘플의 수평방향 위치와 상기 제1 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제1 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리이고,상기 제2 거리는, 상기 현재 샘플의 수평방향 위치와 상기 제2 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제2 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리로 설정될 수 있다.
일 실시예에서, 상기 현재 샘플의 예측 값은, 상기 제1 참조 샘플 값에 상기 제2 거리를 곱한 값, 및 상기 제2 참조 샘플 값에 상기 제1 거리를 곱한 값에 기반하여 결정될 수 있다.
일 실시예에서, 상기 현재 샘플의 예측 값은, 상기 제1 참조 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플 값, 및 상기 제2 거리에 기반한 선형 보간에 의해 결정될 수 있다.
일 실시예에서, 상기 제1 참조 샘플 값은, 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되고, 상기 제2 참조 샘플 값은, 상기 현재 블록에 인접한 우측 수직 라인 및 하측 수평 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정될 수 있다.
일 실시예에서 상기 제1 참조 샘플 값은, 상기 현재 블록에 인접한 상측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되고, 상기 제2 참조 샘플의 샘플 값은, 상기 현재 블록에 인접한 하측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정될 수 있다.
일 실시예에서, 상기 제2 참조 샘플 값은, 상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들이 사용되고, 상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들은, 상기 현재 블록의 좌측 또는 우측에 인접한 샘플의 샘플 값으로 결정될 수 있다.
본 발명의 실시예에 따르면, 실제 거리에 기반한 선형 보간 인트라 예측(linear interpolation intra prediction)을 사용함으로써 높은 예측 정밀도를 향상시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 2는 본 발명이 적용되는 실시예로서 비디오/이미지 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 3은 본 발명의 실시예에 적용될 수 있는 멀티타입 트리 구조의 일 예를 도시한다.
도 4는 본 발명의 실시예들에 적용될 수 있는 멀티타입 트리를 수반하는 쿼드트리(quadtree with nested multi-type tree) 구조의 분할 정보의 시그널링 메커니즘의 예를 도시한다.
도 5는 본 발명의 실시예들에 적용될 수 있는 쿼드드리 및 수반되는 멀티타입 트리(quadtree and nested multi-type tree) 구조에 기반하여 CTU를 다수의 CU들로 분할하는 방법의 예를 도시한다.
도 6은 본 발명이 적용될 수 있는 터너리 트리(ternary-tree) 분할을 제한하는 방법을 도시한다.
도 7은 본 발명의 실시예들에 적용될 수 있는 바이너리 트리 분할과 터너리 트리 분할에서 발생할 수 있는 중복적인 분할 패턴들의 예를 도시한다.
도 8과 도 9는 본 발명의 실시예에 따른 인트라 예측 기반 비디오 인코딩 방법 및 본 발명의 실시예에 따른 인코딩 장치 내 인트라 예측부의 예를 도시한다.
도 10과 도 11은 본 발명의 실시예에 따른 인트라 예측 기반 비디오/영상 디코딩 방법과 본 발명의 실시예에 따른 디코더 내 인트라 예측부의 예를 도시한다.
도 12와 도 13은 본 발명의 실시예들에 적용될 수 있는 인트라 예측 모드의 예측 방향의 예들을 도시한다.
도 14는 본 발명의 실시예에 따른 선형 보간 인트라 예측이 적용되는 예측 샘플과 참조 샘플들의 예를 도시한다.
도 15는 본 발명의 실시예에 따른 선형 보간 인트라 예측을 사용하는 인코딩을 위한 순서도의 예를 도시한다.
도 16은 본 발명의 실시예에 따른 선형 보간 인트라 예측을 사용하는 디코딩을 위한 흐름도의 예를 도시한다.
도 17은 본 발명의 실시예에 따른 저복잡도의 선형 보간 인트라 예측 디코딩 과정의 순서도의 예를 도시한다.
도 18은 본 발명의 실시예에 따른 저복잡도의 선형 보간 인트라 예측 인코딩 과정의 순서도의 예를 도시한다.
도 19는 플래너 모드에 따른 예측 방법의 예를 도시한다.
도 20은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서의 플래너 모드의 예를 도시한다.
도 21은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 코사인 함수를 사용하여 4x4 블록에서 가중 값을 결정하기 위한 그래프의 예를 도시한다.
도 22는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 코사인 함수를 사용하여 4x4 블록에서 가중 값을 결정하기 위한 그래프의 다른 예를 도시한다
도 23은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 계산된 가중 값을 사용하여 예측 블록을 생성하는 과정의 예를 나타낸다.
도 24는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 최소자승법을 사용하여 가중 값을 계산하는 개념도를 나타낸다.
도 25는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 컨텍스트 모델의 결정을 위한 현재 블록과 주변 블록의 예를 도시한다.
도 26은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 우하단 샘플을 사용하여 우단 참조 샘플과 하단 참조 샘플을 생성하는 방법을 나타낸다.
도 27은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 방향성을 고려하여 우하단 참조 샘플 값을 생성하는 방법을 나타낸다.
도 28은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 방향성의 타입을 구분한 것을 나타낸다.
도 29는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 위쪽 참조 샘플 값과 좌측 참조 샘플 값을 사용하여 우하단 샘플 값 결정 방법의 예를 도시한다.
도 30은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상으로부터 현재 블록의 우하단 샘플 값을 생성하는 방법을 도시한다.
도 31은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상의 우하단 샘플 값의 차분 값 전송 방법의 예를 도시한다.
도 32는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 블록의 우하단 값과 원 영상의 우하단 인접 샘플 값의 차분 값 전송 방법의 예를 도시한다.
도 33은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 균등한 디폴트 오프셋 값 전송 방법의 예를 도시한다.
도 34는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 비균등한 디폴트 오프셋 값 전송 방법의 예를 도시한다.
도 35는 본 발명의 실시예에 따른 인트라 예측 방법의 예로서, 도 35a는 기존의 인트라 예측 방법, 도 35b는 선형 보간 예측 방법의 예를 도시한다.
도 36은 본 발명의 실시예에 따른 인트라 예측에서 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 인트라 예측 방법을 나타낸다.
도 37은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 주변 참조 샘플을 사용한 우하단 샘플 생성 방법의 예로서, 도 37a는 우상단 샘플과 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타내고 도 37b는 현재 인코딩하고자 하는 블록의 2배 길이만큼 먼 모스트(most) 우상단 샘플과 모스트 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타낸다.
도 38은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상으로부터 우하단 참조 샘플을 생성하는 방법을 나타낸다.
도 39는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 인트라 예측 모드별 선형 보간을 위해 사용되는 참조 샘플의 예로서, 도 39a는 우상측 참조 샘플, 도 39b는 우하측 참조 샘플, 도 39c는 좌하측 참조 샘플의 예를 도시한다.
도 40은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플을 사용하여 선형 보간 예측을 수행하는 방법을 나타낸다.
도 41은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 하단 샘플들과 우단 샘플들을 생성하는 방법을 도시한다.
도 42는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 사이의 실제 거리의 비를 사용하여 선형 보간을 수행하는 방법의 예를 도시한다.
도 43은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 사이의 실제 거리의 비를 사용하여 선형 보간을 수행하는 방법의 다른 예를 도시한다.
도 44는 본 발명의 실시예에 따른 선형 보간 인트라 예측을 위한 순서도의 예를 도시한다.
도 45는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 간의 거리에 따른 가중값을 계산하는 방법의 예를 도시한다.
도 46은 본 발명의 실시예에 따른 화면 분할 구조의 예를 도시한다.
도 47은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 우하단 참조 샘플의 생성 방법의 예로서, 도 47a는 우상단 샘플과 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타내고, 도 47b는 현재 인코딩하고자 하는 비정방형 블록의 가로와 세로 길이만큼 먼 모스트 우상단 샘플과 모스트 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타낸다.
도 48은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상에서 우하단 샘플을 사용하는 방법의 예로서, 도 48a는 Nx2N의 비정방형 모양의 블록, 도 48b는 2NxN의 비정방형 모양의 블록의 예를 나타낸다.
도 49는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 선형 보간을 통해 우단 샘플들과 하단 샘플들을 생성하는 방법을 나타낸다.
도 50은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 상단 샘플들과 좌단 샘플들을 사용하여 우단 샘플들과 하단 샘플들을 생성하는 방법을 도시한다.
도 51는 본 발명이 적용되는 실시예로서 비디오 코딩 시스템의 예를 도시한다.
도 52는 본 발명이 적용되는 실시예로서 비디오 스트리밍 시스템의 예를 도시한다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
아울러, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미를 명확히 기재하므로, 본 발명의 설명에서 사용된 용어의 명칭만으로 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록 등의 경우 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
이하 본 명세서에서 '처리 유닛'은 예측, 변환 및/또는 양자화 등과 같은 인코딩/디코딩의 처리 과정이 수행되는 단위를 의미한다. 이하, 설명의 편의를 위해 처리 유닛은 '처리 블록' 또는 '블록'으로 지칭될 수도 있다.
처리 유닛은 휘도(luma) 성분에 대한 단위와 색차(chroma) 성분에 대한 단위를 포함하는 의미로 해석될 수 있다. 예를 들어, 처리 유닛은 코딩 트리 유닛(coding tree unit, CTU), 코딩 유닛(coding unit, CU), 예측 유닛(prediction unit, PU) 또는 변환 유닛(transform unit, TU)에 해당될 수 있다.
또한, 처리 유닛은 휘도(luma) 성분에 대한 단위 또는 색차(chroma) 성분에 대한 단위로 해석될 수 있다. 예를 들어, 처리 유닛은 휘도(luma) 성분에 대한 코딩 트리 블록(CTB: Coding Tree Block), 코딩 블록(CB: Coding Block), 예측 블록(PU: Prediction Block) 또는 변환 블록(TB: Transform Block)에 해당될 수 있다. 또는, 색차(chroma) 성분에 대한 코딩 트리 블록(CTB), 코딩 블록(CB), 예측 블록(PU) 또는 변환 블록(TB)에 해당될 수 있다. 또한, 이에 한정되는 것은 아니며 처리 유닛은 휘도(luma) 성분에 대한 단위와 색차(chroma) 성분에 대한 단위를 포함하는 의미로 해석될 수도 있다.
또한, 처리 유닛은 반드시 정사각형의 블록으로 한정되는 것은 아니며, 3개 이상의 꼭지점을 가지는 다각형 형태로 구성될 수도 있다.
또한, 이하 본 명세서에서 픽셀 또는 화소 등을 샘플로 통칭한다. 그리고, 샘플을 이용한다는 것은 픽셀 값 또는 화소 값 등을 이용한다는 것을 의미할 수 있다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다. 도 1의 인코더는 인코딩 장치로 지칭될 수 있다.
도 1을 참조하면, 인코더(100)는 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 메모리(170), 인터 예측부(180), 인트라 예측부(185), 및 엔트로피 인코딩부(190)를 포함할 수 있다. 인터 예측부(180)와 인트라 예측부(185)는 예측부로 통칭될 수 있다. 다시 말해, 예측부는 인터 예측부(180)와 인트라 예측부(185)를 포함할 수 있다. 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150)는 잔차(residual) 처리부에 포함될 수 있다. 잔차 처리부는 감산부(115)를 더 포함할 수 있다. 일 실시예에서, 영상 분한부(100), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 인터 예측부(180), 인트라 예측부(185), 및 엔트로피 인코딩부(190)는 하나의 하드웨어 컴포넌트(예를 들어, 인코더 또는 프로세서)에 의해 구성될 수 있다. 또한, 메모리(170)는 복호 픽처 버퍼(decoded picture buffer, DPB)(175)를 포함할 수 있고, 디지털 저장 매체에 의해 구성될 수 있다. 여기서, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 비디오 신호와 같은 데이터를 저장하기 위한 다양한 저장매체를 포함할 수 있다.
영상 분할부(110)는 인코더(100)에 입력된 입력 영상(또는 픽처 프레임)을 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 실시예에서, 처리 유닛은 코딩 유닛(coding unit, CU)으로 지칭될 수 있다. 이 경우, 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)로부터 QTBT(quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조에 기반하여 하위(deeper) 깊이(depth)의 복수의 코딩 유닛으로 분할될 수 있다. 이 경우, 쿼드 트리 구조가 먼저 적용되고, 바이너리 트리 구조가 나중에 적용될 수 있다. 또는, 바이너리 트리 구조가 쿼드 트리 구조보다 먼저 적용될 수 있다. 더 이상 분할되지 않는 최종 코딩 유닛에 기반하여 본 발명의 실시예에 따른 코딩 절차가 수행될 수 있다. 이 경우, 영상 특성에 따른 코딩 효율에 기반하여, 최대 코딩 유닛이 곧바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 깊이의 코딩 유닛들로 분할됨으로써 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서, 코딩 절차라 함은, 후술하는 예측, 변환, 및 복원 절차를 포함할 수 있다. 다른 실시예에서, 처리 유닛은 예측 유닛(prediction unit, PU) 또는 변환 유닛(transform unit, TU)을 더 포함할 수 있다. 이 경우, 예측 유닛과 변환 유닛은 각각 최종 코딩 유닛으로부터 분할될 수 있다. 예측 유닛은 샘플 예측의 단위일 수 있고, 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 잔차 신호를 유도하는 단위일 수 있다. 유닛은, 경우에 따라, 블록(block) 또는 영역(area)과 같은 용어로 대체될 수 있다. 일반적인 경우, MxN 블록은 M개의 행(row)과 N개의 열(column)으로 구성된 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀 값을 나타낼 수 있고, 채도(chroma) 성분의 픽셀/픽셀 값을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀 또는 펠로 대체될 수 있다.
인코더(100)의 입력 영상 신호(원본 블록 또는 원본 샘플 어레이)에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산함으로써 잔차 신호(또는 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 잔차 신호는 변환부(120)로 전달된다. 이 경우, 도시된 바와 같이 인코더(100) 내에서 입력 영상 신호(원본 블록 또는 원본 샘플 어레이)를 감산하는 유닛은 감산부(115)로 지칭될 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 지칭됨)에 대한 예측을 수행하고, 현재 블로게 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 코딩 유닛 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 여부를 결정할 수 있다. 예측부는 예측 모드 정보 등 예측에 관한 정보를 생성하고, 생성된 예측에 관한 정보를 엔트로피 인코딩부(190)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되고, 비트스트림의 형태로 출력될 수 있다.
인트라 예측부(185)는 현재 픽처 내의 샘플들을 참조함으로써 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 현재 블록과 이격되어 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는, 예를 들어, DC 모드와 플래너(planar) 모드를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라, 예를 들어, 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(185)는 주변 블록에 적용된 예측 모드를 이용함으로써 현재 블록에 적용되는 예측 모드를 결정할 수 있다.
인터 예측부(180)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)에 기반하여, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 감소시키기 위하여, 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록, 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터와 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 공간적 주변 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수 있고, 다를 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU)와 같이 지칭될 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)으로 지칭될 수 있다. 예를 들어, 인터 예측부(180)는 주변 블록들의 정보에 기반하여 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하기 위한 정보를 생성할 수 있다. 다양한 예측 모드에 기반한 인터 예측이 수행될 수 있으며, 예를 들어, 스킵 모드와 머지 모드의 경우, 인터 예측부(180)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 잔차 신호가 전송되지 않을 수 있다. 움직임 벡터 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
인터 예측부(180) 또는 인트라 예측부(185)를 통해 생성된 예측 신호는 복원 신호의 생성을 위해 이용되거나 잔차 신호의 생성을 위해 이용될 수 있다.
변환부(120)는 잔차 신호에 변환 기법을 적용함으로써 변환 계수(transform coefficient)들을 생성할 수 있다. 예를 들어, 변환 기법은 DCT(discrete cosine transform), DST(discrete sine transform), KLT(Karhunen-Loeve transform), GBT(graph-based transform), 또는 CNT(conditionally non-linear transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는, 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때, 그래프로부터 얻어지는 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)을 이용하여 예측 신호를 생성하고, 생성된 예측 신호에 기반하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수들을 양자화함으로써 엔트로피 인코딩부(190)로 양자화된 변환 계수들을 전송하고, 엔트로피 인코딩부(190)는 양자화된 신호(양자화된 변환 계수들에 대한 정보)를 인코딩함으로써 엔트로피 인코딩된 비디오 데이터를 비트스트림의 형태로 출력할 수 있다. 양자화된 변환 계수들에 대한 정보는 잔차 정보로 지칭될 수 있다. 양자화부(130)는 계수 스캔 순서(scan order)에 기반하여 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 1차원 벡터 형태의 양자화된 변환 계수들에 기반하여 양자화된 변환 계수들에 대한 정보를 생성할 수 있다. 엔트로피 인코딩부(190)는, 예를 들어, 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding)과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(190)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보(예를 들어, 신택스 요소들(syntax elements) 관련 정보)를 함께 또는 별도로 인코딩할 수 있다. 인코딩된 정보(예를 들어, 인코딩된 비디오/영상 정보)는 비트스트림의 형태로 NAL(network abstraction layer) 유닛 단위로 전송될 수 있고, 또는 디지털 저장 매체에 저장될 수 있다. 여기서, 네트워크는 방송망 및/또는 통신망을 포함할 수 있고, 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(190)로부터 출력된 신호는 인코딩된 데이터를 전송하는 전송부(미도시) 및/또는 인코딩된 데이터를 저장하는 저장부(미도시)가 인코더(100)의 내/외부 엘레먼트로서 구성될 수 있다. 또한, 전송부는 엔트로피 인코딩부(190)의 구성요소일 수 있다.
양자화부(130)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 루프 내의 역양자화부(140)와 역변환부(150)를 통해 역양자화 및 역변환이 적용함으로써 잔차 신호들이 복원될 수 있다. 가산부(155)는 복원된 잔차 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(예를 들어, 복원 픽처, 복원 블록, 복원 샘플 어레이)를 메모리(170)로 출력할 수 있다. 스킵 모드(skip mode)가 적용된 경우와 같이 처리 대상 블록에 대한 잔차 신호가 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부로 지칭될 수 있다. 가산부(155)로부터 출력된 복원 신호는 현재 픽처에서 복원된 블록 이후에 처리되는 블록의 인트라 예측(intra prediction)을 위해 사용될 수 있다. 또한, 가산부(155)로부터 출력된 복원 신호는 후술되는 바와 같이 필터링을 거쳐 다음 픽처의 인터 예측(inter prediction)을 위해 사용될 수 있다.
필터링부(160)는 복원 신호에 필터링을 적용함으로써 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어, 필터링부(160)는 복원 픽처에 다양한 필터링 방법을 적용함으로써 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(170), 보다 구체적으로 메모리(170)의 DPB(175)에 저장할 수 있다. 필터링부(160)에 의해 수행되는 다양한 필터링 방법은, 예를 들어, 디블록킹(deblocking) 필터링, 샘플 적응적 오프셋(sample adaptive offset, SAO), 적응적 루프 필터(adaptive loop filter, ALF), 양방향 필터(bilateral filter)를 포함할 수 있다. 필터링부(160)는 필터링에 관한 다양한 정보를 생성하고, 필터링에 대한 정보를 엔트로피 인코딩부(190)로 전달할 수 있다. 필터링에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되고, 인코딩된 필터링에 관한 정보는 엔트로피 인코딩부(190)를 통하여 비트스트림 형태로 출력될 수 있다.
메모리(170)로 전달된 수정된 복원 픽처는 인터 예측부(180)에서 참조 픽처로 사용될 수 있다. 인코더(100)는, 인터 예측이 적용되는 경우, 인코더(100)와 디코더(200) 사이의 예측 미츠매치(mismatch)를 회피할 수 있고, 인코딩 효율도 향상시킬 수 있다.
메모리(170)의 DPB(175)는 인터 예측부(180)에서 참조 픽처로 사용되기 위한 수정된 복원 픽처를 저장될 수 있다. 메모리(170)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 메모리(170)에 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로서 사용되기 위하여 인터 예측부(180)로 전달될 수 있다. 메모리(170)는 현재 픽처에서 복원된 블록들의 복원 샘플들을 저장할 수 있고, 저장된 복원 샘플들을 인트라 예측부(185)로 전달할 수 있다.
도 2는 본 발명이 적용되는 실시예로서 비디오/이미지 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다. 도 2의 디코더는 디코딩 장치로 지칭될 수 있다.
도 2를 참조하면, 디코더(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260), 및 인트라 예측부(265)를 포함할 수 있다. 인터 예측부(260)와 인트라 예측부(265)는 예측부로 통칭될 수 있다. 즉, 예측부는 인터 예측부(260)와 인트라 예측부(265)를 포함할 수 있다. 역양자화부(220)와 역변환부(230)는 잔차 처리부로 통칭될 수 있다. 즉, 잔차 처리부는 역양자화부(200)와 역변환부(230)를 포함할 수 있다. 상술한 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 인터 예측부(260), 및 인트라 예측부(265)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 디코더 또는 프로세서)에 의해 구성될 수 있다. 또한, 메모리(270)는 DPB(275)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수 있다. 여기서, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 비디오 신호와 같은 데이터를 저장하기 위한 다양한 저장매체를 포함할 수 있다.
비디오/이미지 정보를 포함하는 비트스트림이 디코더(200)로 입력되면, 디코더(200)는 도 1의 인코더(100)에서 비디오/이미지 정보가 처리된 프로세스에 대응되는 영상 복원 동작을 수행할 수 있다. 예를 들어, 디코더(200)는 인코더(100)에서 적용된 처리 유닛 단위로 디코딩을 수행할 수 있다. 따라서, 디코더(200)의 처리 유닛은, 예를 들어, 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조에 의해 분할될 수 있다. 그리고, 디코더(200)로부터 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코더(200)는 도 1의 인코더(100)로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(210)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 비트스트림을 파싱(parsing)함으로써 영상 복원(또는 픽처 복원)에 필요한 정보(예를 들어, 비디오/영상 코딩 정보)를 도출할 수 있다. 예컨데, 엔트로피 디코딩부(210)는 지수 골롬 인코딩, CAVLC, 또는 CABAC와 같은 코딩 방법에 기반하여 비트스트림의 형태로 획득된 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘레먼트의 정보, 잔차에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 구체적으로, CABAC 엔트로피 디코딩 방법은, 비트스트림으로부터 각 신택스 엘레먼트에 해당하는 빈(bin)을 확인하고, 디코딩 대상으로서의 신택스 엘레먼트의 정보, 현재 블록과 주변 블록의 디코딩 정보, 또는 이전 단계에서 디코딩된 심볼/빈의 정보 중 적어도 하나를 이용하여 컨텍스트(context) 모델을 결정하고, 결정된 컨텍스트 모델에 따라 빈의 발생 확률을 예측함으로써 빈의 산술 디코딩(arithmetic decoding)을 수행함으로써 각 신택스 엘레먼트의 정보에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은, 심볼/빈의 컨텍스트 모델 결정 이후, 다음 심볼/빈의 컨텍스트 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 컨텍스트 모델을 업데이트할 수 있다. 엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(260) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 잔차 데이터, 즉, 양자화된 변환 계수들과 관련 파라미터 정보가 역양자화부(220)로 입력될 수 있다. 또한, 엔트로피 디코딩부(210)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(240)로 제공될 수 있다. 한편, 인코더로부터 출력된 신호를 수신하는 수신부(미도시)가 디코더(200)의 내/외부 엘레먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(210)의 구성요소일 수 있다.
역양자화부(220)는 양자화된 변환 계수들을 역양자화함으로써 변환 계수들을 출력할 수 있다. 역양자화부(220)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우, 재정렬은 인코더(100)에서 수행된 계수 스캔 순서에 기반하여 수행될 수 있다. 역양자화부(220)는 양자화 파라미터(예를 들어, 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들을 획득할 수 있다.
역변환부(230)는 변환 계수들을 역변환함으로써 잔차 신호(잔차 블록, 잔차 샘플 어레이)를 획득할 수 있다.
예측부는 현재 블록에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(210)로부터 출력된 예측에 관한 정보에 기반하여 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 여부를 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조함으로써 현재 블록에 대한 예측을 수행할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변에 위치할 수 있고, 이격되어 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드들과 복수의 방향성 모드들을 포함할 수 있다. 인트라 예측부(265)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용될 예측 모드를 결정할 수 있다.
인터 예측부(260)는 참조 픽처에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)에 기반하여, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 데이터 양을 감소시키기 위하여, 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록, 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및/또는 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(예를 들어, L0 예측, L1 예측, Bi 예측) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처에서 존재하는 공간적 주변 블록과 참조 픽처에 존재하는 시간적 주변 블록을 포함할 수 있다. 예를 들어, 인터 예측부(260)는 주변 블록들의 정보에 기반하여 움직임 정보 후보 리스트를 구성하고, 수신된 후보 선택 정보에 기반하여 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드에 기반한 인터 예측이 수행될 수 있고, 예측에 관한 정보는 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(235)는 획득된 잔차 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 잔차 신호가 존재하지 않는 경우, 예측된 블록이 곧바로 복원 블록으로 사용될 수 있다.
가산부(235)는 복원부 또는 복원 블록 생성부로 지칭될 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위해 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐 다음 픽처의 인터 예측을 위해 사용될 수 있다.
필터링부(240)는 복원 신호에 기반하여 필터링을 적용함으로써 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어, 필터링부(240)는 복원 픽처에 다양한 필터링을 적용함으로써 수정된 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(250), 보다 구체적으로 메모리(250)의 DPB(255)로 전달할 수 있다. 다양한 필터링 방법은, 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋, 적응적 루프 필터, 양방향 필터를 포함할 수 있다.
메모리(250)의 DPB(255)에 저장된 복원 픽처는 인터 예측부(260)에 의해 참조 픽처로 사용될 수 있다. 메모리(250)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 메모리(250)에 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로서 사용되기 위해 인터 예측부(260)로 전달될 수 있다.
본 명세서에서, 인코더(100)의 필터링부(160), 인터 예측부(180), 및 인트라 예측부(185)와 관련되어 설명된 실시예들은 각각 디코더(200)의 필터링부(240), 인터 예측부(260), 및 인트라 예측부(265)에도 동일하거나 유사하게 적용될 수 있다.
본 명세서에서 설명되는 비디오/영상 코딩/디코딩 방법은 다양한 세부 기술들에 의해 수행될 수 있고, 각각의 세부 기술들을 개략적으로 설명하면 다음과 같다. 이하 설명되는 기술들은 상술되었거나 이하 후술될 비디오/영상 코딩/디코딩 절차에서의 예측, 전차 처리(예를 들어, (역)변환, (역)양자화), 신택스 엘레먼트 코딩/디코딩, 분할과 같은 절차에서 수행될 수 있음은 통상의 기술자에게 자명할 것이다.
블록 분할(Block Partitioning)
본 문서에서 설명되는 블록 분할 절차는 인코더(100)의 영상 분할부(110)에서 수행될 수 있고, 분할과 관련된 정보는 엔트로피 인코딩부(190)에서 인코딩 처리됨으로써 비트스트림의 형태로 디코더(200)로 전달될 수 있다. 디코더(200)의 엔트로피 디코딩부(210)는 비트스트림으로부터 획득된 분할에 관한 정보에 기반하여 현재 픽처의 블록 분할 구조를 도출하고, 도출된 블록 분할 구조에 기반하여 비디오 디코딩을 위한 일련의 절차(예를 들어, 예측, 잔차 신호 처리, 블록 복원, 인루프 필터링)를 수행할 수 있다.
픽처로부터 CTU로의 분할(Partitioning of Picture into CTUs)
픽처는 코딩 트리 유닛(CTU)들의 시퀀스(sequence)로 분할될 수 있다. CTU는 코딩 트리 블록(CTB)에 대응할 수 있다. 또한, CTU는 루마 샘플들의 코딩 트리 블록과, 대응하는 크로마 샘플들의 두개의 코딩 트리 블록을 포함할 수 있다. 다시 말해, 3가지 샘플 어레이를 포함하는 픽처에 대하여, CTU는 루마 샘플들의 NxN 블록과 크로마 샘플들의 두개의 대응되는 NxN 블록들을 포함할 수 있다.
코딩/디코딩과 예측을 우한 CTU의 최대 허용 사이즈는 변환을 위한 CTU의 최대 허용 사이즈와 다를 수 있다. 예를 들어, CTU 내 루마 블록의 최대 허용 사이즈는 128x128일 수 있다.
CTU의 트리 구조 분할(Partitioning of CTUs using a tree structure)
CTU는 쿼드트리(quadtree, QT) 구조에 기반하여 CU들로 분할될 수 있다. QT 구조는 쿼터너리(quaternary) 트리 구조로 지칭될 수 있다. QT 구조에 기반한 분할은 다양한 국지적 특징(local characteristic)을 반영하기 위함이다. 한편, 본 문서에서 CTU는 QT 뿐만 아니라 바이너리 트리(binary tree, BT) 또는 터너리 트리(ternary-tree, TT)를 포함하는 멀티타입 트리 구조에 기반하여 분할될 수 있다. 이하, QTBT 구조는 쿼드트리 및 바이너리 트리에 기반한 분할 구조를 포함할 수 있고, QTBTTT 구조는 쿼드트리, 바이너리 트리, 및 터너리 트리에 기반한 분할 구조를 포함할 수 있다. 코딩 트리 구조에서, CTU로부터 분할된 코딩 유닛(CU)는 정사각형 또는 직사각형의 형태를 가질 수 있다. CTU는 먼저 QT 구조로 분할될 수 있다. 이후, QT 구조의 리프 노트(leaf node)들은 멀티타입 트리 구조에 의해 추가로 분할될 수 있다.
도 3은 본 발명의 실시예에 적용될 수 있는 멀티타입 트리 구조의 일 예를 도시한다.
일 실시예에서, 멀티타입 트리 구조는 도 3에 도시된 바와 같이 4개의 분할 타입을 포함할 수 있다. 도 3에 도시된 4개의 분할 타입은 수직 바이너리 분할(vertical binary splitting, SPLIT_BT_VER)(310), 수평 바이너리 분할(horizontal binary splitting, SPLIT_BT_HOR)(320), 수직 터너리 분할(vertical ternary splitting, SPLIT_TT_VER)(330), 및 수평 터너리 분할(horizontal ternary splitting, SPLIT_TT_HOR)(340)을 포함할 수 있다. 멀티타입 트리 구조의 리프 노드는 CU로 지칭될 수 있다. CU들은 예측과 변환 절차를 위한 단위로서 사용될 수 있다. 본 명세서에서 CU, PU, TU는 동일한 블록 사이즈를 가질 수 있고, 또한 다른 사이즈를 가질 수도 있다. 최대 허용 변환 길이(maximum supported transform length)가 CU의 색차 성분(color component)의 너비 또는 높이보다 작은 경우, CU와 TU가 서로 다른 블록 사이즈를 가질 수 있다.
도 4는 본 발명의 실시예들에 적용될 수 있는 멀티타입 트리를 수반하는 쿼드트리(quadtree with nested multi-type tree) 구조의 분할 정보의 시그널링 메커니즘의 예를 도시한다.
도 4에서, CTU는 쿼드트리의 루트(root) 노드에 해당하며, 쿼드트리 구조로 처음으로 분할된다. 각 쿼드트리 리프 노드는 이후 멀티타입 트리 구조로 더 분할될 수 있다. 도 4의 멀티타입 트리 구조에서, 특정 노드가 추가적으로 분할되는지 여부를 지시하기 위한 플래그(예를 들어, mtt_split_cu_flag)가 시그널링될 수 있다. 만약 해당 노드가 추가적으로 분할되는 경우, 분할 방향을 지시하기 위한 플래그(예를 들어, mtt_split_cu_vertical_flag)가 시그널링될 수 있다. 이후, 분할 타입이 바이너리 분할인지 또는 터너리 분할인지 여부를 지시하기 위한 플래그(예를 들어, mtt_split_cu_binary_flag)가 시그널링될 수 있다. 예를 들어, mtt_split_cu_vertical_flag와 mtt_split_cu_binary_flag에 기반하여, CU의 멀티타입 트리 분할 모드가 아래의 표 1과 같이 결정될 수 있다.
MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag
SPLIT_TT_HOR 0 0
SPLIT_BT_HOR 0 1
SPLIT_TT_VER 1 0
SPLIT_BT_VER 1 1
도 5는 본 발명의 실시예들에 적용될 수 있는 쿼드드리 및 수반되는 멀티타입 트리(quadtree and nested multi-type tree) 구조에 기반하여 CTU를 다수의 CU들로 분할하는 방법의 예를 도시한다.
여기서, 보다 두꺼운 블록 엣지들(bold block edges)은 쿼드트리 분할을 나타내고, 나머지 엣지들은 멀티타입 트리 분할을 나타낸다. 멀티타입 트리를 수반한 쿼드트리 분할은 컨텐츠에 적응된(contents-adapted) 코딩 트리 구조를 제공할 수 있다. CU는 코딩 블록(CB)에 대응할 수 있다. 또는, CU는 루마 샘플들의 코딩 블록과, 대응되는 크로마 샘플들의 2개의 코딩 블록들을 포함할 수 있다. CU의 사이즈는 CTU의 사이즈만큼 설정될 수 있다. 또한, CU의 루마 샘플 단위는 4x4 로 설정될 수 있다. 예를 들어, 4:2:0 컬러 포맷(또는 크로마 포맷)인 경우, 최대 크로마 CB 사이즈는 64x64이고, 최소 크로마 CB 사이즈는 2x2일 수 있다.
예를 들어, 최대 허용 루마 TB 사이즈는 64x64이고, 최대 허용 크로마 TB 사이즈는, 32x32일 수 있다. 만약 트리 구조에 따라 분할된 CB의 너비 또는 높이가 최대 변환 너비 또는 최대 변환 높이보다 큰 경우, 해당 CB는 자동적으로(또는 묵시적으로) 수평 및 수직 방향의 TB 사이즈 제한을 만족할 때까지 분할될 수 있다.
한편, 멀티타입 트리를 수반한 쿼드트리 코딩 트리를 위하여, 아래의 파라미터들이 SPS(slice parameter set)의 신택스 요소로 정의될 수 있다.
- CTU size: 쿼터너리 트리의 루트 노드 사이즈(the root size of a quaternary tree)
- MinQTSize: 최소의 쿼터너리 트리 리프 노드 사이즈(the minimum allowed quaternary tree leaf node size)
- MaxBtSize: 최대의 바이너리 트리 루트 노드 사이즈(the maximum allowed binary tree root node size)
- MaxTtSize: 최대의 터너리 트리 루트 노드 사이즈(the maximum allowed ternary tree root node size)
- MaxMttDepth: 쿼드트리 리프로부터 멀티-타입 분할의 최대 계층적 깊이(the maximum allowed hierarchy depth of multi-type splitting from a quadtree leaf)
- MinBtSize: 최소의 바이너리 트리 리프 노드 사이즈(the minimum allowed binary tree leaf node size)
- MinTtSize: 최소의 터너리 트리 리프 노드 사이즈(the minimum allowed ternary tree leaf node size)
멀티타입 트리를 수반한 쿼드트리 코딩 트리 구조의 일 예로, CTU 사이즈는 128x128 루마 샘플들 및 2개의 대응하는 크로마 샘플들의 64x64 블록들로 설정될 수 있다(4:2:0 크로마 포맷). 이 경우, MinQtSize는 16x16으로 설정되고, MaxBtSize는 128x128로 설정되고, MaxTtSize는 64x64로 설정되고, MinBtSize와 MinTtSize는 4x4로, 그리고 MaxMttDepth는 4로 설정될 수 있다. CTU에 쿼드트리 분할이 적용됨으로써, 쿼드트리 리프 노드들이 생성될 수 있다. 쿼드트리 리프 노드는 리프 QT 노드로 지칭될 수 있다. 쿼드트리 리프 노드들은 16x16 사이즈(MinQtSize)에서 128x128 사이즈(CTU 사이즈)를 가질 수 있다. 만약 리프 QT 노드가 128x128인 경우, 추가적으로 바이너리 트리/터너리 트리로 분할되지 않을 수 있다. 이 경우, 분할되더라도 MaxBtSize와 MaxTtSize(64x64)를 초과하기 때문이다. 이 외의 경우, 리프 QT 노드는 멀티타입 트리 구조로 추가로 분할될 수 있다. 만약, 멀티타입 트리 깊이가 MaxMttdepth(예를 들어, 4)에 도달하는 경우, 더 이상 추가분할은 고려되지 않을 수 있다. 만약, 멀티타입 트리 노드의 너비가 MinBtSize와 같고 2xMinTtSize보다 작거나 같을 때, 더 이상 추가적인 수평 분할은 고려되지 않을 수 있다. 만약, 멀티타입 트리 노드의 높이가 MinBtSize와 같고, 2xMinTtSize보다 작거나 같을 때, 더 이상 추가적인 수직 분할은 고려되지 않을 수 있다.
도 6은 본 발명이 적용될 수 있는 터너리 트리(ternary-tree) 분할을 제한하는 방법을 도시한다.
도 6을 참조하면, 디코더(200)에서의 64x64 루마 블록과 32x32 크로마 파이프라인의 설계를 위하여, TT 분할은 특정 경우에 제한될 수 있다. 예를 들어, 루마 코딩 블록의 너비 또는 높이가 기-설정된 특정 값(예를 들어, 32 또는 64)보다 큰 경우, 도 6에 도시된 바와 같이 TT 분할이 제한될 수 있다.
또한, 코딩 트리 스킴은 루마 및 크로마 블록이 개별적인 블록 트리 구조를 갖는 것을 지원할 수 있다. P-슬라이스(이전의 픽처 또는 슬라이스를 참조하는 슬라이스)와 B-슬라이스(복수의 픽처들 또는 슬라이스들을 참조하는 슬라이스)에 대하여, 하나의 CTU 내 루마 CTB들과 크로마 CTB들은 동일한 코딩 트리 구조를 갖도록 제한될 수 있다. 반대로, I-슬라이스(인트라 예측이 적용된 슬라이스)에 대하여, 루마 및 크로마 블록들은 서로 개별적인 블록 트리 구조를 가질 수 있다. 만약, 개별적 블록 트리 모드가 적용되는 경우, 루마 CTB는 특정 코등 트리 구조에 기반하여 CU들로 분할되고, 크로마 CTB는 다른 코딩 트리 구조에 기반하여 크로마 CU들로 분할될 수 있다. 다시 말해, I-슬라이스의 CTU는 루마 성분의 코딩 블록과 2개의 크로마 성분들의 코딩 블록들로 구성되고, P-슬라이스 또는 B-슬라이스의 CU는 세가지 컬러 성분의 블록들로 구성될 수 있음을 의미한다.
"CTU의 트리 구조 분할"을 통해 멀티타입 트리를 수반한 쿼드트리 코딩 트리 구조가 앞서 설명되었으나, CU가 분할되는 구조가 한정되는 것은 아니다. 예를 들어, BT 구조 또는 TT 구조는 다수의 분할 트리(multiple partitioning tree, MPT) 구조에 포함되는 개념으로 해석될 수 있고, CU는 QT 구조와 MPT 구조를 통해 분할된다고 해석될 수 있다. QT 구조와 MPT 구조를 통해 CU가 분할되는 일 예에서, QT 구조의 리프 노드가 몇 개의 블록으로 분할되는지에 관한 정보를 포함하는 신택스 엘레먼트(예를 들어, MPT_split_type)와 QT 구조의 리프 노드가 수직과 수평 중 어느 방향으로 분할되는지에 관한 정보를 포함하는 신택스 엘레먼트(예를 들어, MPT_split_mode)의 시그널링을 통해 분할 구조가 결정될 수 있다.
다른 예에서, CU는 QT 구조, BT 구조, 또는 TT 구조와 다른 방법에 의해 분할될 수 있다. 즉, QT 구조에 따라 하위 깊이의 CU가 상위 깊이의 CU의 1/4 크기로 분할되거나, BT 구조에 따라 하위 깊이의 CU가 상위 깊이의 CU의 1/2 크기로 분할되거나, TT 구조에 따라 하위 깊이의 CU가 상위 깊이의 CU의 1/4 또는 1/2 크기로 분할되는 것과 달리, 하위 깊이의 CU는, 경우에 따라, 상위 깊이의 CU의 1/5, 1/3, 3/8, 3/5, 2/3, 또는 5/8 크기로 분할될 수 있으며, CU가 분할되는 방법은 이에 한정되지 않는다.
만약 트리 노드 블록의 부분(a 부분)이 하단 또는 오른쪽 픽처의 경계를 초과하는 경우, 해당 트리 노드 블록은 모든 코딩된 CU의 모든 샘플들이 픽처 경계들 안쪽에 위치하도록 제한될 수 있다.
한편, 상술한 멀티타입 트리를 수반한 쿼드트리 코딩 블록 구조는 매우 유연한 블록 분할 구조를 제공할 수 있다. 그러나, 다른 분할 패턴들에 의한 코딩 블록 구조 결과가 잠재적으로 멀티타입 트리에 지원되는 분할 타입들에 의한 코딩 블록 구조를 가질 수 있다. 따라서, 중복적인(redundant) 분할 패턴들의 발생을 제한하기 위해 멀티타입 트리에서 지원되는 분할 타입만을 사용함으로써 분할 정보의 전송을 위한 데이터양을 감소시킬 수 있다.
도 7은 본 발명의 실시예들에 적용될 수 있는 바이너리 트리 분할과 터너리 트리 분할에서 발생할 수 있는 중복적인 분할 패턴들의 예를 도시한다.
도 7에서 도시된 바와 같이, 2 레벨의 한 방향에 대한 연속적인 바이너리 분할은, 터너리 분할 이후 중앙부에 대한 바이너리 분할과 동일한 코딩 블록 구조를 갖는다. 이 경우, 터너리 트리 분할의 중앙부에 대한 바이너리 트리 분할은 제한될 수 있다. 이러한 분할의 제한은 모든 픽처들의 CU들에 대해 적용될 수 있다. 특정 분할이 제한되는 경우, 대응하는 신택스 엘레먼트들의 시그널링은 이러한 분할의 제한을 반영하여 수정될 수 있고, 분할을 위해 시그널링되는 비트수를 감소시킬 수 있다. 예를 들어, 도 7에 도시된 바와 같이, CU의 중앙부에 대한 바이너리 트리 분할이 제한되는 경우, 분할이 바이너리 분할인지 터너리 분할인지 여부를 지시하는 신택스 엘레먼트(mtt_split_su_binary_flag)는 시그널링되지 않을 수 있고, 디코더(200)는 분할이 바이너리 분할인지 터너리 분할인지 여부를 지시하는 신택스 엘레먼트(mtt_split_su_binary_flag)를 0으로 결정할 수 있다.
예측(Prediction)
디코딩이 수행되는 현재 처리 유닛을 복원하기 위하여, 현재 처리 유닛이 포함된 현재 픽처 또는 다른 픽처들의 디코딩된 부분을 이용할 수 있다.
복원에 있어 현재 픽처만이 이용되는 경우, 즉, 인트라 예측만이 수행되는 픽처(슬라이스)를 인트라 픽처 또는 I-픽처(I-슬라이스), 각 유닛을 예측하기 위하여 하나의 움직임 벡터 및 참조 인덱스를 이용하는 픽처(슬라이스)를 예측 픽처 또는 P-픽처(P-슬라이스), 두 개 이상의 움직임 벡터들 및 참조 인덱스들을 이용하는 픽처(슬라이스)를 쌍 예측 픽처 또는 B-픽처(B-슬라이스)로 지칭할 수 있다.
인터 예측은 현재 픽처 이외의 픽처의 데이터 요소(예를 들어, 샘플 값 또는 움직임 벡터)에 기반하여 현재 블록의 샘플 값을 도출하는 예측 방법을 의미한다. 즉, 현재 픽처 이외의 복원된 다른 픽처의 복원된 영역들을 참조함으로써 현재 블록의 샘플 값을 예측하는 방법을 의미한다.
이하, 인트라 예측(또는 화면 내 예측)에 대하여 보다 상세히 설명한다.
인트라 예측(Intra Prediction)(또는 화면 내 예측)
인트라 예측은 동일한 디코딩된 픽처(또는 슬라이스)의 데이터 요소(예를 들어, 샘플 값)으로부터 현재 블록의 샘플 값을 도출하는 예측 방법을 의미한다. 즉, 현재 픽처 내의 복원된 영역들을 참조함으로써 현재 블록의 샘플 값을 예측하는 방법을 의미한다.
인트라 예측은 현재 블록이 속하는 픽처(이하, 현재 픽처) 내 현재 블록 외부의 참조 샘플에 기반하여 현재 블록에 대한 예측 샘플을 생성하는 예측을 나타낼 수 있다.
본 발명의 실시예들은 앞서 도 1과 도 2에서 설명한 예측 방법의 세부 기술을 설명하는 것으로, 본 발명의 실시예는 후술하는 도 10의 인트라 예측 기반 비디오/영상 디코딩 방법과 도 11의 디코더(200) 내 인트라 예측부(265)의 장치에 해당할 수 있다. 또한, 본 발명의 실시예는 후술하는 도 8의 인트라 예측 기반 비디오/영상 디코딩 방법과 도 9의 인코더(100) 내 인트라 예측부(185)의 장치에 해당할 수 있다. 도 8과 도 9에 의해 인코딩된 데이터는 비트스트림의 형태로 인코더(100) 또는 디코더(200)에 포함된 메모리, 또는 인코더(100) 또는 디코더(200)와 기능적으로 결합된 메모리에 저장될 수 있다.
현재 블록에 인트라 예측이 적용되는 경우, 현재 블록의 인트라 예측에 사용될 주변 참조 샘플들이 도출될 수 있다. 현재 블록의 주변 참조 샘플들은 nW x nH 사이즈의 현재 블록의 좌측 경계에 인접한 샘플과 좌하측에 인접한 총 2 x nH 개의 샘플들, 현재 블록의 상측 경계에 인접한 샘플 및 우상측에 인접한 총 2 x nW 개의 샘플들, 및 현재 블록의 좌상측에 인전합 1개의 샘플들을 포함할 수 있다. 또는, 현재 블록의 주변 참조 샘플들은 복수 열의 상측 주변 샘플들과 복수 행의 좌측 주변 샘플들을 포함할 수 있다. 또한, 현재 블록의 주변 참조 샘플들은 현재 블록에 인접한 좌측 또는 우측의 수직 라인들과 상측 또는 하측의 수평 라인들에 위치한 샘플들을 포함할 수 있다.
다만, 현재 블록의 주변 참조 샘플들 중 일부는 아직 디코딩되지 않았거나, 이용가능하지 않을 수 있다. 이 경우, 디코더(200)는 이용 가능한 샘플들로 이용 가능하지 않은 샘플들을 대체(substitution)함으로써 예측에 사용될 주변 참조 샘플들을 구성할 수 있다. 또는, 이용 가능한 샘플들의 보간을 통하여 예측에 사용될 주변 참조 샘플들을 구성할 수 있다. 예를 들어, 현재 블록의 우측에 인접한 수직 라인에 위치한 샘플들과 현재 블록의 하측에 인접한 수평 라인에 위치한 샘플들은 현재 블록의 좌측 수직 라인에 위치한 샘플들과 현재 블록의 상측 수평 라인에 위치한 샘플들에 기반하여 대체되거나 보간을 통해 구성될 수 있다.
주변 참조 샘플들이 도출된 경우, i) 현재 블록의 주변 참조 샘플들의 평균(average) 또는 보간에 기반하여 예측 샘플들이 유도될 수 있고, ii) 현재 블록의 주변 참조 샘플들 중에서 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플에 기반하여 예측 샘플이 유도될 수 있다. i)과 같은 예측 모드는 비방향성 예측 모드 또는 비각도 예측 모드로 지칭될 수 있고, ii)와 같은 예측 모드는 방향성(directional) 예측 모드 또는 각도(angular) 예측 모드로 지칭될 수 있다. 또한, 주변 참조 샘플들 중 현재 블록의 예측 샘플을 기준으로 현재 블록의 인트라 예측 모드의 예측 방향에 위치하는 제1 주변 샘플과 예측 방향의 반대 방향에 위치하는 제2 주변 샘플의 보간을 통해 예측 샘플이 생성될 수 있다. 이렇게 현재 블록의 예측 샘플을 기준으로 예측 방향과 예측 방향의 반대 방향에 위치한 참조 샘플들 사이의 선형 보간에 기반한 예측 기법은 선형 보간 인트라 예측(linear interpolation inter prediction, LIP)으로 지칭될 수 있다. 또한, 필터링된 주변 참조 샘플들에 기반하여 현재 블록의 임시 예측 샘플을 도출하고, 기존의 주변 참조 샘플들, 즉, 필터링된 주변 참조 샘플들 중 인트라 예측 모드에 따라 도출된 적어도 하나의 참조 샘플과 임시 예측 샘플들의 가중합(weighted sum)을 통하여 현재 블록의 예측 샘플을 도출할 수 있다. 복수의 샘플들의 가중합을 통한 예측은 PDPC(position dependent intra prediction)으로 지칭될 수 있다.
한편, 필요에 따라 도출된 예측 샘플에 대한 후처리 필터링(post-filtering)이 수행될 수 있다. 구체적으로, 인트라 예측 절차는 인트라 예측 모드 결정 단계, 주변 참조 샘플 도출 단계, 인트라 예측 모드 기반 예측 샘플 도출 단계를 포함할 수 있고, 필요에 따라 도출된 예측 샘플에 대한 후처리 필터링 단계를 포함할 수 있다.
인트라 예측에 기반한 비디오 인코딩 절차와 인코더(100) 내 인트라 예측부(185)는 도 8과 도 9와 같이 표현될 수 있다.
도 8과 도 9는 본 발명의 실시예에 따른 인트라 예측 기반 비디오 인코딩 방법 및 본 발명의 실시예에 따른 인코딩 장치 내 인트라 예측부의 예를 도시한다.
도 8에서, S810 단계는 인코더(100)의 인트라 예측부(185)에 의해 수행될 수 있고, S820 단계와 S830 단계는 잔차 처리부에 의해 수행될 수 있다. 구체적으로, S820 단계는 인코더(100)의 감산부(115)에 의해 수행될 수 있고, S830 단계는 잔차 처리부에 의해 도출된 잔차 정보와 인트라 예측부(185)에 의해 도출된 예측 정보를 이용하여 엔트로피 인코딩부(190)에 의해 수행될 수 있다. 잔차 정보는 잔차 샘플들에 대한 정보로서, 잔차 샘플들에 대한 양자화된 변환 계수들에 대한 정보를 포함할 수 있다.
상술한 바와 같이, 잔차 샘플들은 인코더(100)의 변환부(120)를 통해 변환 계수들로 도출되고, 도출된 변환 계수들은 양자화부(130)를 통하여 양자화된 변환 계수로 도출될 수 있다. 양자화된 변환 계수들에 대한 정보가 잔차 코딩 절차를 통해 엔트로피 인코딩부(190)에서 인코딩될 수 있다.
S810 단계에서, 인코더(100)는 현재 블록에 대한 인트라 예측을 수행할 수 있다. 인코더(100)는 현재 블록에 대한 인트라 예측 모드를 결정하고, 현재 블록의 주변 참조 샘플들을 도출하고, 인트라 예측 모드와 주변 참조 샘플들에 기반하여 현재 블록 내의 예측 샘플들을 생성한다. 여기서, 인트라 예측 모드의 결정, 주변 참조 샘플의 도출, 및 예측 샘플들의 생성 절차는 동시에 수행될 수도 있고, 순차적으로 수행될 수도 있다. 예를 들어, 인코더(100)의 인트라 예측부(185)는 예측 모드 결정부(186), 참조 샘플 도출부(187), 예측 샘플 생성부(188)를 포함할 수 있으며, 예측 모드 결정부(186)가 현재 블록에 대한 인트라 예측 모드를 결정하고, 참조 샘플 도출부(187)가 현재 블록의 주변 참조 샘플을 도출하고, 예측 샘플 생성부(188)가 현재 블록의 움직임 샘플을 도출할 수 있다. 한편, 비록 도시되지는 않았지만, 후술하는 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(185)는 예측 샘플 필터부(미도시)를 더 포함할 수 있다. 인코더(100)는 복수의 인트라 예측 모드들 중 현재 블록에 대해 적용될 예측 모드를 결정할 수 있다. 인코더(100)는 인트라 예측 모드들에 대한 레이트-왜곡 비용(rate-distortion cost, RD cost)를 비교하고, 현재 블록에 대한 최적의 인트라 예측 모드를 결정할 수 있다.
한편, 인코더(100)는 예측 샘플 필터링을 수행할 수도 있다. 예측 샘플 필터링은 포스트 필터링으로 지칭될 수 있다. 예측 샘플 필터링 절차에 의해 예측 샘플들 중 일부 또는 전체에 대한 필터링이 수행될 수 있다. 경우에 따라, 예측 샘플 필터링은 생략될 수 있다.
S820 단계에서, 인코더(100)는 (필터링된) 예측 샘플에 기반하여 현재 블록에 대한 잔차 샘플을 생성할 수 있다. 이후, S830 단계에서, 인코더(100)는 인트라 예측 모드를 포함하는 예측 모드 정보와 잔차 샘플들에 대한 정보를 포함하는 비디오 데이터를 인코딩할 수 있다. 인코딩된 비디오 데이터는 비트스트림의 형태로 출력될 수 있다. 출력된 비트스트림은 저장 매체 또는 네트워크를 통하여 디코더(200)로 전달될 수 있다.
한편, 상술한 바와 같은 인코더(100)는 참조 샘플들과 잔차 샘플들에 기반하여 복원 샘플들과 복원 블록을 포함하는 복원 픽처를 생성할 수 있다. 인코더(100)에 의한 복원 픽처의 도출은 디코더(200)에서 수행되는 것과 동일한 예측 결과를 인코더(100)에서 도출하기 위함이고, 이를 통하여 코딩 효율을 높일 수 있다. 나아가, 복원 픽처에 인루프 필터링과 같은 후속 절차가 수행될 수 있다.
도 10과 도 11은 본 발명의 실시예에 따른 인트라 예측 기반 비디오/영상 디코딩 방법과 본 발명의 실시예에 따른 디코더 내 인트라 예측부의 예를 도시한다.
도 10과 도 11을 참조하면, 디코더(200)는 인코더(100)에서 수행된 동작에 대응되는 동작을 수행할 수 있다. 디코더(200)는 수신된 예측 정보에 기반하여 현재 블록에 대한 예측을 수행함으로써 예측 샘플을 도출할 수 있다.
구체적으로, S1010 단계에서, 디코더(200)는 인코더(100)로부터 획득된 예측 모드 정보에 기반하여 현재 블록에 대한 인트라 예측 모드를 결정할 수 있다. S1020 단계에서, 디코더(200)는 현재 블록의 주변 참조 샘플을 도출할 수 있다. S1030 단계에서, 디코더(200)는 인트라 예측 모드와 주변 참조 샘플들에 기반하여 현재 블록 내 예측 샘플을 생성할 수 있다. 또한, 디코더(200)는 예측 샘플 필터링 절차를 수행할 수 있으며, 예측 샘플 필터링 절차는 포스트 필터링으로 지칭될 수 있다. 예측 샘플 필터링 절차에 의하여 예측 샘플들 중 일부 또는 전부가 필터링될 수 있다. 경우에 따라, 예측 샘플 필터링 절차는 생략될 수 있다.
S1040 단계에서, 디코더(200)는 인코더(100)로부터 획득된 잔차 정보에 기반하여 잔차 샘플을 생성할 수 있다. S1050 단계에서, 디코더(200)는 (필터링된) 예측 샘플들과 잔차 샘플들에 기반하여 현재 블록에 대한 복원 샘플을 생성하고, 생성된 복원 샘플들을 이용하여 복원 픽처를 생성할 수 있다.
여기서, 디코더(200)의 인트라 예측부(265)는 예측 모드 결정부(266), 참조 샘플 도출부(267), 및 예측 샘플 생성부(268)을 포함할 수 있으며, 예측 모드 결정부(266)는 인코더(100)의 예측 모드 결정부(186)에서 생성된 예측 모드에 기반하여 현재 블록의 인트라 예측 모드를 결정하고, 참조 샘플 도출부(267)는 현재 블록의 주변 참조 샘플을 도출하고, 예측 샘플 생성부(268)는 현재 블록의 예측 샘플을 생성할 수 있다. 한편, 비록 도시되지는 않았지만, 예측 샘플 필터링 절차가 수행되는 경우, 인트라 예측부(265)는 예측 샘플 필터부(미도시)를 포함할 수 있다.
예측을 위해 사용되는 예측 모드 정보는 MPM(most probable mode)가 현재 블록에 적용되는지 또는 나머지 모드(remaining mode)가 적용되는지 여부를 나타내기 위한 플래그(예를 들어, prev_intra_luma_pred_flag)를 포함할 수 있다. MPM이 현재 블록에 적용되는 경우, 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들) 중 하나를 지시하는 인덱스(mpm_idx)를 더 포함할 수 있다. 인트라 예측 모드 후보들(MPM 후보들)은 MPM 후보 리스트 또는 MPM 리스트로 구성될 수 있다. 또한, MPM이 현재 블록에 적용되지 않는 경우, 예측 모드 정보는 인트라 예측 모드 후보들(MPM 후보들)을 제외한 나머지 인트라 예측 모드들 중 하나를 지시하는 나머지 모드 정보(예를 들어, rem_intra_luma_pred_mpde)를 더 포함할 수 있다.
한편, 디코더(200)는 예측 정보에 기반하여 현재 블록의 인트라 예측 모드를 결정할 수 있다. 예측 모드 정보는 후술하는 코딩 방법을 통하여 인코딩 및 디코딩될 수 있다. 예를 들어, 예측 모드 정보는 절단된 바이너리 코드(truncated binary code)에 기반하여 엔트로피 코딩(예를 들어, CABAC, CAVLC)을 통하여 인코딩 또는 디코딩될 수 있다.
이하에서는, 디코더(200)의 동작을 중심으로, 본 발명의 실시예에 따른 예측 기법에 대해 설명하도록 한다. 비록 디코더(200)를 중심으로 본 발명의 실시예들이 설명되나, 본 발명의 실시예는 디코더(200)뿐만 아니라 인코더(100)에도 적용될 수 있음은 물론이다.
인트라 예측 모드 결정
인트라 예측이 적용되는 경우, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용될 인트라 예측 모드가 결정될 수 있다. 예를 들어, 디코더(200)는 현재 블록에 인접한 좌측 인접 블록의 인트라 예측 모드와 현재 블록의 상측에 인접한 상측 인접 블록의 인트라 예측 모드에 기반하여 도출된 MPM 후보들 중 인코더(100)로부터 수신된 MPM 인덱스에 의해 지시되는 후보를 현재 블록의 인트라 예측 모드로서 선택할 수 있다. 여기서, MPM 인덱스는 신택스 엘레먼트 형태(예를 들어, mpm_idx)로 시그널링될 수 있고, 나머지 인트라 예측 모드 정보는 또한 신택스 엘레먼트 형태(예를 들어, rem_intra_luma_pred_mode)로 시그널링 될 수 있다. 예를 들어, 나머지 인트라 예측 모드 정보는 전체 인트라 예측 모드들 중 MPM 후보들에 포함되지 않은 나머지 인트라 예측 모드들을 예측 모드 번호순으로 정렬한 리스트 중 현재 블록에 적용된 예측 모드를 지시하는 인덱스를 포함할 수 있다.
도 12와 도 13은 본 발명의 실시예들에 적용될 수 있는 인트라 예측 모드의 예측 방향의 예들을 도시한다.
도 12를 참조하면, 인트라 예측 모드는 2개의 비방향성 인트라 예측 모드와 33개의 방향성 인트라 예측 모드를 포함할 수 있다. 비방향성 인트라 예측 모드들은 플래너(planar) 인트라 예측 모드와 DC 인트라 예측 모드를 포함할 수 있고, 방향성 인트라 예측 모드는 2번 내지 34번 인트라 예측 모드들을 포함할 수 있다. 플래너 인트라 예측 모드는 플래너 모드로, DC 인트라 예측 모드는 DC 모드로 지칭될 수 있다.
한편, 자연 영상(natural video)에서 제시된 임의의 에지 방향(edge direction)을 캡쳐하기 위해, 방향성 인트라 예측 모드는 후술하는 도 13에 도시된 바와 같이 도 12의 33개로부터 65개의 방향성 인트라 예측 모드들을 포함할 수 있다. 도 13에서, 비방향성 인트라 예측 모드들은 플래너 모드와 DC 모드를 포함하고, 방향성 인트라 예측 모드들은 2번 내지 66번 인트라 예측 모드를 포함할 수 있다. 도 13과 같이 확장된 방향성 인트라 예측은 모든 사이즈의 블록들에 적용될 수 있고, 루마 성분 및 크로마 성분 모두에 적용될 수 있다.
또한, 인트라 예측 모드는 2개의 비방향성 인트라 예측 모드들과 129개의 방향성 인트라 예측 모드들을 포함할 수 있다. 여기서, 비방향성 인트라 예측 모드들은 플래너 모드와 DC 모드를 포함할 수 있고, 방향성 인트라 예측 모드는 2번 내지 130번 인트라 예측 모드들을 포함할 수 있다.
일 실시예에서, 디코더(200)는 통해 33개(또는 65개)의 방향성 예측 방법과 2개의 비방향성 예측 방법, 총 35개(또는 67개)의 예측 모드들 중 적어도 하나의 모드와 주변 참조 샘플을 사용하여 예측 샘플을 생성할 수 있다. 여기서, 주변 참조 샘플은, 래스터 스캔 순서로 디코딩되는 경우를 가정하면, 상측 참조 샘플 또는 좌측 참조 샘플이 될 수 있다.
일 실시예에서, 디코더(200)는 예측 샘플의 위치로부터 예측 방향에 따라 위치한 참조 샘플의 샘플 값을 복사하고, 예측 샘플에 복사된 값을 적용할 수 있다. 이 경우, 예측 방향에 따라 단순히 복사된 값이 사용되기 때문에, 참조 샘플과 예측 샘플의 거리가 멀어짐에 따라 예측의 정확도가 저하될 수 있다. 즉, 예측을 위해 이용되는 참조 샘플과 예측 샘플의 거리가 가까운 경우에는 예측 정확도가 높으나, 참조 샘플과 예측 샘플의 거리가 먼 경우에는 예측 정확도가 저하될 수 있다.
이러한 에측 에러를 저감시키기 위해, 본 발명의 실시예들은 예측 샘플과 참조 샘플 사이의 거리에 기반하여 가중치가 적용된 예측 샘플을 생성하는 선형 보간 인트라 예측 방법을 제공한다. 특히, 본 발명의 실시예는 선형 보간 예측 방법에서 현재 블록의 하측 또는 우측에 위치하는 참조 샘플을 생성하고, 현재 블록에 인접한 샘플들과 예측 샘플 사이의 실제 거리에 기반하여 예측 샘플의 샘플 값을 결정하는 예측 방법에 대하여 설명하도록 한다.
도 14는 본 발명의 실시예에 따른 선형 보간 인트라 예측이 적용되는 예측 샘플과 참조 샘플들의 예를 도시한다.
도 14에 도시된 것과 같이, 선형 보간 인트라 예측 방법은 이미 인코딩 또는 디코딩을 통해 복원된 상단 참조 샘플과 아직 인코딩 또는 디코딩되지 않아 예측을 통해 생성된 임시 참조 샘플의 거리에 따른 가중 합으로 예측 샘플을 생성할 수 있다. 도 14를 참조하면, 디코더(200)는 현재 샘플(C)의 예측을 위해 상단 참조 샘플(P)와 하단 참조 샘플(P')을 생성하고 두 참조 샘플의 거리 비를 가중 값으로 할당할 수 있다. 즉, 디코더(200)는 상단 참조 샘플(P)에 W1의 가중 값을 할당하고 하단 참조 샘플(P')에는 W2의 가중 값을 할당함으로써 예측 샘플(C)을 생성할 수 있다. 일 실시예에서, 가중 값은 예측하고자 하는 현재 샘플과 각각의 참조 샘플과의 거리에 기반하여 결정될 수 있다. 일 실시예에서, 예측하고자 하는 현재 샘플과 참조 샘플과의 거리가 멀면 가중 값은 작고 반대로 예측하고자 하는 샘플과 참조 샘플과의 거리가 가까우면 가중 값은 크다. 예를 들어, 도 14에서 현재 샘플(C)의 예측을 위해 참조 샘플들(P와 P')이 사용되는데, 현재 샘플(C)과 상단 참조 샘플(P)의 거리는 상대적으로 가깝고, 반대로 현재 샘플(C)과 하단 참조 샘플(P')의 거리는 상대적으로 멀기 때문에, 현재 샘플(C)의 예측을 위해 가까운 참조 샘플(P)에는 큰 가중 값이 할당되고, 반대로 먼 참조 샘플(P')에는 작은 가중 값이 할당될 수 있다. (W1 > W2). 본 발명의 실시예에 따르면, 현재 샘플과 참조 샘플과의 거리에 기반하여 가중 값이 할당될 수 있으며, 이외에도 다양한 방법을 사용하여 가중 값이 할당될 수 있다. 예를 들어, 코사인(cosine) 함수 또는 최소자승법이 이용될 수 있다.
실시예 1: 선형 보간 인트라 예측 인코딩/디코딩
실시예 1-1: 선형 보간 인트라 예측 인코딩/디코딩 방법
도 15는 본 발명의 실시예에 따른 선형 보간 인트라 예측을 사용하는 인코딩을 위한 순서도의 예를 도시한다.
도 15에 도시된 것과 같이, 인코더(100)는, S1510 단계에서 인트라 예측 인코딩을 위해 인트라 예측이 적용됨을 확인한 후, S1520 단계에서 선형 보간 인트라 예측의 적용 여부를 결정할 수 있다. 선형 보간 인트라 예측이 적용되는 경우, 인코더(100)는, S1531 단계에서 대략적인 모드 결정을 통해 최적의 모드 결정을 위해 사용될 후보 모드들을 결정한다. 이후, S1541 단계에서, 인코더(100)는 MPM 방법을 사용하여 유사 모드를 추가한다. 이후, S1551 단계에서, 인코더(100)는 RD 최적화(rate-distortion optimization)를 통해 최적의 인트라 예측 모드를 결정한다. 선형 보간 인트라 예측이 적용되지 않는 경우, 인코더(100)는, S1532 단계에서 대략적인 모드 결정을 통해 최적의 모드 결정을 위해 사용될 후보 모드들을 결정한다. 이후, S1542 단계에서, 인코더(100)는 MPM 방법을 사용하여 유사 모드를 추가한다. 이후, S1552 단계에서, 인코더(100)는 RD 최적화를 통해 최적의 인트라 예측 모드를 결정한다. S1560 단계에서, 인코더(100)는 S1551 단계 또는 S1552 단계에서 결정된 최적의 인트라 예측 모드를 최종 인트라 예측 모드로 결정할 수 있다.
또한, 도 15에 도시된 S1531 단계 내지 S1551 단계와 S1532 단계와 S1552 단계는 병렬적으로 수행될 수 있다. 이와 같은 인트라 예측 인코딩 방법은 모든 인트라 예측 모드에 대해 기존의 인트라 예측 인코딩 방법과 선형 보간 인트라 예측 방법을 적용한 후, 최적의 모드를 결정하므로 복잡도가 상승할 수 있다. 따라서, 후술되는 실시예들은 복잡도를 감소시키면서 인코딩 효율을 증대시키는 선형 보간 인트라 예측 인코딩 방법을 제공한다.
도 16은 본 발명의 실시예에 따른 선형 보간 인트라 예측을 사용하는 디코딩을 위한 흐름도의 예를 도시한다. 도 16에 도시된 동작들은 디코더(200)에 의해 수행될 수 있다.
도 16을 참조하면, S1610 단계에서, 디코더(200)는 현재 블록에 대한 선형 보간 인트라 예측(LIP)의 적용 여부를 확인한다. 만약 현재 블록에 LIP가 적용되면, S1612 단계에서, 디코더(200)는 MPM 사용 여부를 확인한다. 이후, MPM이 사용되는 경우, S1632 단계에서, 디코더(200)는 MPM 인덱스를 파싱한다. MPM이 사용되지 않는 경우, S1631 단계에서, 디코더(200)는 인트라 예측 모드를 파싱한다. (기존의 HEVC의 인트라 예측과 같이) 만약 현재 블록에 LIP가 적용되지 않으면, S1622 단계에서, 디코더(200)는 MPM 사용 여부를 확인한다. 이후, MPM이 사용되는 경우, S1632 단계에서, 디코더(200)는 MPM 인덱스를 파싱한다. MPM이 사용되지 않는 경우, S1633 단계에서, 디코더(200)는 인트라 예측 모드를 파싱한다.
도 17은 본 발명의 실시예에 따른 저복잡도의 선형 보간 인트라 예측 디코딩 과정의 순서도의 예를 도시한다. 도 17의 동작들은 디코더(200)에 의해 수행될 수 있다.
도 17에서 도시된 것과 같이, 낮은 복잡도를 갖는 선형 보간 인트라 예측 디코딩 방법은 도 16의 인트라 예측 인코딩 방법과 비교하여 현재 블록이 LIP 블록일 경우 MPM 플래그 파싱 부분이 없이 바로 MPM 인덱스를 파싱한다. 왜냐하면 낮은 복잡도를 갖는 선형 보간 인트라 예측 디코딩 방법에서는, 만약 현재 블록이 LIP가 적용된 블록이면, MPM을 통해 생성한 모드를 후보 모드로 제한하기 때문이다. 따라서, 현재 블록이 LIP 블록일 경우, MPM 플래그 인코딩에 대한 비트수를 감소시킬 수 있다.
도 18은 본 발명의 실시예에 따른 저복잡도의 선형 보간 인트라 예측 인코딩 과정의 순서도의 예를 도시한다. 도 18의 동작들은 디코더(200)에 의해 수행될 수 있다.
도 18에 도시된 것과 같이, 인코더(100)는, S1810 단계에서 인트라 예측 인코딩을 위해 인트라 예측이 적용됨을 확인한 후, S1820 단계에서 선형 보간 인트라 예측의 적용 여부를 결정할 수 있다. 선형 보간 인트라 예측이 적용되는 경우, S1841 단계에서, 인코더(100)는 MPM 방법을 사용하여 유사 모드로 대략적인 모드를 결정한다. 이후, S1851 단계에서, 인코더(100)는 RD 최적화를 통해 최적의 인트라 예측 모드를 결정한다. 선형 보간 인트라 예측이 적용되지 않는 경우, 인코더(100)는, S1832 단계에서 대략적인 모드 결정을 통해 최적의 모드 결정을 위해 사용될 후보 모드들을 결정한다. 이후, S1842 단계에서, 인코더(100)는 MPM 방법을 사용하여 유사 모드를 추가한다. 이후, S1852 단계에서, 인코더(100)는 RD 최적화를 통해 최적의 인트라 예측 모드를 결정한다. S1860 단계에서, 인코더(100)는 S1851 단계 또는 S1852 단계에서 결정된 최적의 인트라 예측 모드를 최종 인트라 예측 모드로 결정할 수 있다. 또한, 도 15에 도시된 S1531 단계 내지 S1551 단계와 S1532 단계와 S1552 단계는 병렬적으로 수행될 수 있다.
도 18의 인트라 예측 인코딩 방법은 도 15의 방법과 동일한 과정을 거쳐 최적의 모드를 결정한다. 하지만, 선형 보간 인트라 예측 인코딩 방법은 도 15의 인트라 예측 인코딩 방법의 선형 보간 인트라 예측 인코딩 방법과는 달리 대략적인 모드 결정 과정과 선택적 유사 모드 추가 과정을 생략하고 대신 유사 모드로 대략적인 모드 결정 방법을 사용함으로써 최적의 모드 결정을 위한 후보 모드를 결정한다.
도 18의 선형 보간 인트라 예측 인코딩 방법의 유사 모드로 대략적인 모드를 결정하는 방법은 MPM 방법을 통해 선택된 후보 모드를 최적의 모드 결정을 위해 사용하는 모드로 사용하는 방법이다. 기존의 방법은 대략적인 모드 결정 방법을 통해 소수의 후보 모드를 결정한 후, MPM 방법을 통해 선택된 후보 모드 중 일부 모드를 후보 모드에 추가하고 이렇게 생성된 후보 모드를 최적의 모드 결정을 위해 사용한다. 하지만 제안하는 방법은 단순하게 MPM 방법을 통해 선택된 후보 모드를 모두 최적의 모드 결정을 위해 후보 모드로 사용한다.
도 18에 도시된 낮은 복잡도를 갖는 선형 보간 인트라 예측 인코딩 방법을 사용할 경우, 만약 현재 블록이 선형 보간 인트라 예측 모드로 인코딩된 블록일 경우, MPM 플래그를 인코딩할 필요가 없기 때문에 MPM 플래그에 대한 발생 비트를 감소시킬 수 있다.
실시예 1-2: 복잡도가 저감된 선형 보간 인트라 예측 인코딩/디코딩 방법
본 실시예에서는 실시예 1-1에서 제안된 선형 보간 인트라 예측의 인코딩 및 디코딩 절차의 복잡도를 감소하는 방법을 제안한다. MPM 인덱스와 관련하여, 발생 빈도가 높은 인트라 예측 모드에 낮은 인덱스 번호가 할당되고, 반대로 발생 빈도가 낮은 인트라 예측 모드에 높은 인덱스 번호가 할당된다. 엔트로피 인코딩 관점에서, 발생 빈도가 높은 인트라 예측 모드에 적은 양의 비트가 할당되고, 반대로 발생 빈도가 낮은 인트라 예측 모드에 많은 양의 비트가 할당됨으로써 인코딩 효율이 향상될 수 있다. 따라서, 낮은 인덱스 번호를 갖는 인트라 예측 모드가 현재 블록의 최적의 인트라 예측 모드가 될 가능성이 높다. 이러한 인덱스 번호 할당에 기반하여 선형 보간 인트라 예측을 사용하는 인코딩 및 디코딩 복잡도를 감소하는 방법을 제안한다.
본 실시예에 따른 인코딩/디코딩 방법은, 먼저 MPM 인덱스 0번의 비용(cost) 값을 계산한 후, MPM 인덱스 1번부터 MPM 인덱스 5번까지의 비용 값과 MPM 인덱스 0번의 비용 값을 비교한 후, MPM 인덱스 0번 모드를 포함하여 MPM 인덱스 0번 보다 작은 비용 값을 갖는 모드를 최적의 모드 결정을 위한 후보 모드로 사용한다. 이 때, 비용 값은 크게 두 가지 방법으로 계산할 수 있다.
1) 왜곡을 고려한 방법
비용 값으로 왜곡을 고려한 방법은 예측 블록과 원 블록과의 SATD(sum of absolute transformed differences) 혹은 SAD(sum of absolute difference), SSD(sum of square difference)와 같은 방법을 사용하여 계산한다.
2) 대략적인 모드 결정을 고려한 방법
비용 값으로 대략적인 모드 결정을 고려한 방법은 도 15의 인트라 예측 인코딩 방법에서 사용된 대략적인 모드 결정 방법을 사용할 수 있다. 즉, 예측 블록과 원본 블록과의 왜곡(SATD) 정도를 계산하여 왜곡 값을 결정하고 예측 모드 인코딩에 쓰이는 비트 값(B)을 예측한 후, 이를 라그랑지안 상수(
Figure PCTKR2019008004-appb-img-000001
)를 고려하여 비용 값을 계산한다. 수학식 1은 대략적인 모드 결정 방법의 비용 값 계산 식이다.
Figure PCTKR2019008004-appb-img-000002
제안한 방법의 복잡도와 성능의 균형은 수학식 2를 통해 MPM 인덱스 0번 모드의 비용 값을 변경하여 조절할 수 있다. 수학식 2는 MPM 인덱스 0번 모드의 비용 값을 조절하는 식이다.
Figure PCTKR2019008004-appb-img-000003
수학식 2에서 나타난 것과 같이 MPM 인덱스 0번의 비용 값은 α 값을 사용하여 변경될 수 있고, 이를 통해 MPM 인덱스 1번 모드부터 5번 모드까지 중에서 최적의 모드 결정 과정에서 사용할 후보 모드가 선별적으로 선택할 수 있다. 이를 통해 복잡도와 성능의 균형이 조절될 수 있다.
실시예 2: 선형 보간 인트라 예측에서의 플래너(Planar) 모드
본 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법에 관한 것으로서, 인트라 예측 인코딩에서 더 많은 참조 샘플을 사용하여 선형 보간 예측을 수행하는 방법을 개선하는 방법을 수행함으로써 예측의 정확도를 증가하는 것을 기반으로 정지 영상 또는 동영상을 인코딩/디코딩하는 방법 및 이를 지원하는 장치에 관한 것이다.
본 실시예는 기존 HEVC 플래너 모드를 선형 보간 예측 모드로 대체하는 방법을 제안한다.
본 실시예는 선형 보간 예측 모드를 사용하여 플래너 모드를 대체하는 방법을 제안한다.
본 실시예는 선형 보간 예측 시 거리에 따른 가중 값을 할당하는 방법을 제안한다.
본 실시예는 코사인(cosine) 함수의 값을 사용하여 가중 값을 결정하는 방법을 제안한다.
본 실시예는 최소자승법(least square method)을 사용하여 가중 값을 결정하는 방법을 제안한다.
본 실시예는 선형 보간 예측 플래그를 인코딩하는 방법을 제안한다.
본 실시예는 블록 크기 별로 서로 다른 컨텍스트 모델을 할당하는 방법을 제안한다.
본 실시예는 주변의 선형 보간 예측 블록을 사용하여 컨텍스트 모델을 결정하는 방법을 제안한다.
본 실시예는 정지 영상 또는 동영상을 인트라 예측 인코딩 시 더 많은 참조 샘플을 사용하여 선형 보간을 수행하는 방법을 개선하는 방법으로써, 복잡한 영상을 보다 효율적으로 처리할 수 있다.
실시예 2-1: 선형 보간 인트라 예측에서의 플래너(planar) 모드
도 19는 플래너 모드에 따른 예측 방법의 예를 도시한다.
도 19에서, 플래너 모드가 적용되는 현재 샘플 C의 예측을 위해 대응하는 참조 샘플들 O와 A, 그리고 E와 S의 선형 조합이 사용된다. 이는 선형 보간 예측의 특별한 경우이므로 일반적인 선형 보간 예측을 통해 플래너 모드가 적용된다.
도 20은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서의 플래너 모드의 예를 도시한다.
도 20에 도시된 것과 같이, 선형 보간 방법을 적용한 새로운 플래너 모드의 경우 현재 샘플 C의 예측을 위해 각각 대응하는 상단 참조 샘플, 우측 참조 샘플, 하단 참조 샘플, 좌측 참조 샘플 O, e, m, E의 선형 조합이 사용된다.
따라서, 인코딩하고자 하는 현재 블록에 선형 보간 예측이 사용되고, 그 때 인트라 예측 모드가 플래너 모드이면, 선형 보간 방법을 적용한 플래너 모드를 사용하여 플래너 예측 블록을 생성한다.
실시예 2-2: 선형 보간 인트라 예측에서의 가중 값 결정
도 14를 참조하면, 디코더(200)는 현재 샘플(C)의 예측을 위해 상단 참조 샘플(P)와 하단 참조 샘플(P')을 생성하고 두 참조 샘플의 거리 비를 가중 값으로 할당할 수 있다. 즉, 디코더(200)는 상단 참조 샘플(P)에 W1의 가중 값을 할당하고 하단 참조 샘플(P')에는 W2의 가중 값을 할당함으로써 예측 샘플(C)을 생성할 수 있다. 일 실시예에서, 가중 값은 예측하고자 하는 현재 샘플과 각각의 참조 샘플과의 거리에 기반하여 결정될 수 있다. 일 실시예에서, 예측하고자 하는 현재 샘플과 참조 샘플과의 거리가 멀면 가중 값은 작고 반대로 예측하고자 하는 샘플과 참조 샘플과의 거리가 가까우면 가중 값은 크다. 예를 들어, 도 14에서 현재 샘플(C)의 예측을 위해 참조 샘플들(P와 P')이 사용되는데, 현재 샘플(C)과 상단 참조 샘플(P)의 거리는 상대적으로 가깝고, 반대로 현재 샘플(C)과 하단 참조 샘플(P')의 거리는 상대적으로 멀기 때문에, 현재 샘플(C)의 예측을 위해 가까운 참조 샘플(P)에는 큰 가중 값이 할당되고, 반대로 먼 참조 샘플(P')에는 작은 가중 값이 할당될 수 있다. (W1 > W2). 본 발명의 실시예에 따르면, 현재 샘플과 참조 샘플과의 거리에 기반하여 가중 값이 할당될 수 있으며, 이외에도 다양한 방법을 사용하여 가중 값이 할당될 수 있다. 예를 들어, 코사인(cosine) 함수 또는 최소자승법이 이용될 수 있다.
현재 샘플에 적용되는 가중 값은 참조 샘플과 현재 샘플과의 거리에 반드시 비례하는 것이 아니므로, 다른 다양한 방법을 사용하여 가중 값을 결정할 수 있다. 본 실시예는 가중 값을 결정하기 위해 두 가지 방법, 1) 코사인 함수의 값을 사용하여 가중 값 결정, 2) 최소자승법을 사용하여 가중 값 결정이 제안된다. 각각의 세부적인 방법이 자세히 설명된다.
1) 코사인 함수의 값을 사용하여 가중 값 결정
도 21은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 코사인 함수를 사용하여 4x4 블록에서 가중 값을 결정하기 위한 그래프의 예를 도시한다.
도 21에 도시된 것과 같이, 먼저 가중 값으로 사용될 최상위 값과 최하위 값이 결정된다. 도 21에서는 최상위 값이 0.9로, 최하위 값이 0.1로 설정되었다. 최상위 값과 최하위 같은 임의의 값으로 결정될 수 있다. 최상위 값에 대응하는 각도와 최하위 값에 대응하는 각도가 각각 시작각(26°)과 끝각(84°)으로 설정되고, 이 각의 범위(84°- 26°= 58°)가 4x4 블록에 맞게 균등하게 3개의 범위로 분할 된다. 3개의 범위로 분할된 각도는 각각 26°-46°, 46°-65°, 65°-84°이다. 반대로, 도 21에 표시된 각각의 각도에 대응하는 값이 결정된 후, 이 값이 4x4 블록의 거리에 따른 가중 값으로 결정될 수 있다.
이와 동일한 방법을 사용하여 8x8 블록, 16x16 블록 등 다양한 크기의 블록에서 사용될 가중 값 또한 유사하게 결정될 수 있다.
도 22는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 코사인 함수를 사용하여 4x4 블록에서 가중 값을 결정하기 위한 그래프의 다른 예를 도시한다
4x4 블록의 경우, 도 22에 도시된 것과 같이 상단 참조 샘플 P와 하단 참조 샘플 P' 사이가 균등 5개의 범위로 분할될 수 있다. 도 22는 상단 참조 샘플과 하단 참조 샘플을 사용하여 가중값을 결정하는 방법을 나타낸다. 도 22에 따른 가중 값 결정 방법은, 도 21의 가중 값 결정 방법과 달리, 최상위 값과 최하위 값이 결정될 필요가 없다. 즉, 도 22에서와 같이 각도가 균등하게 5개로 분할된 후, 최상위 참조 샘플은 0°에 대응하고, 최하위 참조 샘플은 90°에 대응하고, 4x4 블록의 경우 각각의 참조 샘플과의 거리에 따라 각각 18°, 36°, 54°, 72°에 대응하는 가중 값이 할당된다. 유사한 방법을 통해 8x8 블록, 16x16 블록 등 다양한 크기의 블록에서 사용될 가중 값이 결정될 수 있다.
도 23은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 계산된 가중 값을 사용하여 예측 블록을 생성하는 과정의 예를 나타낸다.
도 23에 도시된 것과 같이, 도 21에서 계산된 가중 값을 사용할 경우, 첫번째 행에 위치한 예측 샘플(C 1)의 예측을 위한 상단 참조 샘플(P 1)에는 0.9의 가중 값(w UP1)이 할당되고, 하단 참조 샘플(P' 1)에는 0.1의 가중 값(w DOWN1)이 할당된다. 두번째 행에 위치한 예측 샘플(C 2)의 예측을 위한 상단 참조 샘플(P 2)에는 0.69의 가중 값(w UP2)이 할당되고 하단 참조 샘플(P'2)에는 0.31의 가중 값(w DOWN2)이 할당된다. 동일한 방법으로 세번째 행에 위치한 샘플(C3)과 네번째 행에 위치한 샘플(C4)의 예측 값이 결정될 수 있다.
또한, 도 22에서 계산한 가중 값이 사용되는 경우, 첫번째 행에 위치한 예측 샘플(C 1)의 예측을 위한 상단 참조 샘플(P 1)에는 0.95의 가중 값(w UP1)이 할당되고, 하단 참조 샘플(P' 1)에는 0.05의 가중 값(w DOWN1)이 할당된다. 두번째 행에 위치한 예측 샘플(C 2)의 예측을 위한 상단 참조 샘플(P 2)에는 0.81의 가중 값(w UP2)이 할당되고 하단 참조 샘플(P' 2)에는 0.19의 가중 값(w DOWN2)이 할당된다. 이와 동일한 방법 세번째 행에 위치한 샘플(C 3)과 네번째 행에 위치한 샘플(C 4)의 값을 결정할 수 있다.
표 2는 4x4 블록 내의 각 샘플에 할당되는 가중 값을 나타낸다.
위치 가중 값
도 21의 방법 도 22의 방법
상측 가중 값 (w UP) 하측 가중 값 (w DOWN) 상측 가중 값 (w UP) 하측 가중 값 (w DOWN)
첫번째 행에 위치한 샘플 0.9 0.1 0.95 0.05
두번째 행에 위치한 샘플 0.69 0.31 0.81 0.19
세번째 행에 위치한 샘플 0.42 0.58 0.59 0.41
네번째 행에 위치한 샘플 0.1 0.9 0.31 0.69
표 2에서 예시된 가중 값들은 실제 코사인 함수 값에서 추출된 값이며, 필요에 따라 이 가중 값들이 실제 시스템에 구현되기 위해서는 계산적 복잡도 감소와 하드웨어 구현의 편이성을 위해 약간의 가중값 조절(fitting)이 필요할 수 있다. 예를 들어, 도 21의 방법으로 계산한 가중 값이 아래와 같이 2N 조합으로 나타내도록 설정될 수 있다. 표 3은 표 2의 도 21의 방법의 가중 값을 조절한 표이다. 도 22의 방법도 동일한 방법을 사용하여 가중 값이 조절될 수 있다.1) 0.9 = 1/2 + 1/4 + 1/8 = 0.875
2) 0.69 = 1/2 + 1/8 + 1/16 = 0.6875
3) 0.31 = 1/4 + 1/8 - 1/16 = 0.3125
4) 0.42 = 1/4 + 1/8 + 1/16 = 0.4375
5) 0.58 = 1/2 + 1/16 = 0.5625
6) 0.1 = 1/8 = 0.125
위치 가중 값
상측 가중 값 (w UP) 하측 가중 값 (w DOWN)
첫번째 행에 위치한 샘플 0.875 0.125
두번째 행에 위치한 샘플 0.6875 0.3125
세번째 행에 위치한 샘플 0.4375 0.5625
네번째 행에 위치한 샘플 0.125 0.875
앞서 계산된 각 블록의 가중 값에 대해 동일한 방법을 사용함으로써, 8x8 블록, 16x16 블록 등 다양한 크기의 블록에 적용되고, 예측 값이 계산될 수 있다.
2) 최소자승법을 사용하여 가중 값을 결정하는 방법
최소자승법을 사용하여 가중 값을 결정하는 방법은 먼저 원 블록과 최적의 예측 블록을 생성하고, 원 블록과 최적의 예측 블록에 대한 잔차 에너지가 최소화되도록 하는 가중 값을 최소자승법을 통하여 계산한다. 최소자승법을 사용하여 가중 값을 결정하는 방법은 오프라인 학습(training)을 통해 미리 계산한다.
도 24는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 최소자승법을 사용하여 가중 값(w ij)을 계산하는 개념도를 나타낸다. 가중 값은 원 블록과 예측 블록의 차이인 잔차 블록의 에너지가 최소화되도록 결정된다. 여기서 가중 값은 각 샘플 위치별로 계산되며 수학식 3과 같이 최소자승법을 사용하여 계산한다.
Figure PCTKR2019008004-appb-img-000004
여기서 w ij는 (i,j)번째 위치의 가중 값을 나타낸다. E( )는 기대값(expectation)을 나타내는 연산자이다. 여기서 가중 값(w ij)은 다양한 조건에 따라 각기 다른 방법으로 계산될 수 있다. 예를 들어, 블록 크기에 따라 가중 값이 계산될 수도 있고, 또는 인트라 예측 모드에 따라 가중 값이 계산될 수도 있다. 즉, 다양한 조건과 방법에 따라 가중 값이 계산될 수 있다. 서로 다른 조건과 방법을 기반으로 오프라인 학습을 통해 미리 계산한 후, 인코딩/디코딩을 수행할 때 적용함으로써 잔차 에너지를 감소시킬 수 있다.
실시예 2-3: 선형 보간 예측 플래그의 인코딩
본 실시예는 선형 보간 예측 플래그(linear interpolation prediction flag, LIP_FLAG)를 인코딩하는 방법을 제안한다. 인코딩 효율을 높이기 위한 방법으로서, 컨텍스트 기반 적응적 이진 산술 인코딩(context-based adaptive binary arithmetic coding, CABAC) 방법이 사용된다. 본 실시예에서, 선형 보간 예측 플래그의 통계적 특성과 공간적 상관성을 고려하여 선택적으로 컨텍스트 모델(CMLIP_FLAG)을 결정하는 방법을 제안한다.
1) 통계적 특성을 고려한 방법
통계적 특성을 고려한 방법은 블록 크기나 모양(정방형 혹은 비정방형)에 따라 선형 보간 예측의 선택 비율을 고려하여 서로 다른 컨텍스트 모델을 결정하는 방법이다. 예를 들어, 4x4 블록과 8x8 블록에서 선형 보간 예측 선택 비율이 20%이고 16x16 블록 이상에서는 선형 보간 예측 선택 비율이 50%라고 가정하면, 2 개의 컨텍스트 모델을 사용하여 선형 보간 예측 플래그를 인코딩하는 것이 효과적이다. 즉, 현재 인코딩하고자 하는 블록의 크기가 8x8 이하이면 선형 보간 예측 비율이 20%로 초기화된 CMLIP_FLAG1을 사용하고 만약 블록의 크기가 8x8보다 크면 선형 보간 예측 비율이 50%로 초기화된 CMLIP_FLAG2를 사용하여 인코딩을 수행한다.
위에서 언급한 예는 하나의 예로 실제 블록 크기에 따른 선형 보간 예측의 발생 비율을 통계적으로 분석한 후, 사용할 컨텍스트 모델의 수와 초기값을 결정하여 인코딩/디코딩에 사용한다.
2) 공간적 상관성을 고려한 방법
공간적 상관성을 고려한 방법은 주변 이웃하는 블록의 선형 보간 예측 발생 빈도를 고려하여 서로 다른 컨텍스트 모델을 결정하는 방법이다.
도 25는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 컨텍스트 모델의 결정을 위한 현재 블록과 주변 블록의 예를 도시한다. 본 실시예에서, 현재 블록(C)의 이웃하는 두 개의 주변 블록(A, L)을 사용하여 선형 보간 예측을 위한 컨텍스트 모델이 결정되는데, 임의의 여러 개의 주변 블록을 사용하여 컨텍스트 모델을 결정할 수 있다.
도 25에 도시된 것과 같이, 만약 위쪽 블록(A)이 선형 보간 인트라 예측을 사용하여 인코딩/디코딩 되었고, 왼쪽 블록(L)이 선형 보간 인트라 예측을 사용하지 않고 인코딩/디코딩 되었다고 가정하면, 컨텍스트 모델은 선형 보간 예측 사용 비율이 50%로 초기화된 것을 사용하는 것이 효과적이다. 만약 위쪽 블록(A)과 왼쪽 블록(L)이 모두 선형 보간 인트라 예측을 사용하여 인코딩/디코딩 되었다고 가정하면, 컨텍스트 모델은 선형 보간 인트라 예측 사용 비율이 50%보다 크게 초기화된 것을 사용하는 것이 효과적이다. 이를 기반으로 표 4와 같은 컨텍스트 모델표를 사용하여 선형 보간 예측 플래그를 인코딩/디코딩할 수 있다.
선형 보간 예측 사용 여부 컨텍스트 모델 (CM)
왼쪽 블록 (L) 위쪽 블록 (A)
X X CM LIP_FLAG1
O X CM LIP_FLAG2
X O
O O CM LIP_FLAG3
실시예 3: 선형 보간 인트라 예측을 위한 효율적인 우하단 샘플 생성
본 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법에 관한 것으로서, 인트라 예측 인코딩에서 선형 보간 예측을 수행할 때 예측 블록의 정확도를 높이기 위해 정확한 우하단 참조 샘플 생성 방법을 기반으로 정지 영상 또는 동영상을 인코딩/디코딩하는 방법 및 이를 지원하는 장치에 관한 것이다.
본 실시예는 선형 보간 예측을 위해 사용하는 우하단 참조 샘플 값을 생성하는 방법을 제안한다.
본 실시예는 예측 방향성을 고려하여 우하단 참조 샘플 값을 생성하는 방법을 제안한다.
본 실시예는 원 (Original) 우하단 참조 샘플 값을 사용하는 방법을 제안한다.
본 실시예는 정지 영상 또는 동영상을 인트라 예측 인코딩 시 정확하게 생성한 우하단 샘플 값을 사용하여 선형 보간을 수행하여 인코딩/디코딩함으로써, 복잡한 영상을 보다 효율적으로 처리할 수 있다.
도 26은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 우하단 샘플을 사용하여 우단 참조 샘플과 하단 참조 샘플을 생성하는 방법을 나타낸다.
도 26에 도시된 것과 같이, 먼저 우하단 샘플(BR)이 생성된다. 다음 이미 복원된 우상단 샘플(TR)과 좌하단 샘플(BL)을 각각 우하단 참조 샘플과 선형 보간함으로써 우단 참조 샘플과 하단 참조 샘플이 생성된 후, 생성된 우단 참조 샘플과 하단 참조 샘플을 사용하여 선형 보간 인트라 예측이 수행한다.
도 14에 도시된 것과 같이, 선형 보간 인트라 예측 방법은 이미 인코딩/디코딩을 통해 복원된 상단 참조 샘플과 현 인코딩 시점에서 부보화/디코딩이 수행되지 않아 임시로 예측된 하단 참조 샘플의 거리에 따른 가중 합으로 예측 블록을 생성한다. 따라서, 예측 블록의 정확도는 인코딩/디코딩이 되지 않은 참조 샘플(도 14에서 하단 참조 샘플)을 얼마나 정확하게 생성하는가에 의존한다. 즉, 선형 보간 인트라 예측의 인코딩 효율을 높이기 위해서는 우단 참조 샘플과 하단 참조 샘플을 얼마나 정확하게 생성하는지가 중요하다. 이를 위해서는, 가장 먼저 우하단 참조 샘플 (bottom-right sample, BR)의 정확도를 높이는 것이 중요하다. 본 실시예는 현재 인코딩하고자 하는 블록의 주변에 인코딩/디코딩이 수행되지 않은 참조 샘플을 정확하게 예측하기 위해 우하단 참조 샘플(BR 샘플)을 정확하게 생성하는 방법을 제안한다.
실시예 3-1: 예측 방향성을 고려한 우하단 참조 샘플 값 생성
본 실시예는 인트라 예측 인코딩에서 예측 방향성을 고려하여 우하단(bottom-right, BR) 참조 샘플 값을 생성하는 방법을 제안한다.
도 27은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 방향성을 고려하여 우하단 참조 샘플 값을 생성하는 방법을 나타낸다.
도 27에서 화살표는 현재 블록의 예측 방향을 나타낸다. 만약 현재 인코딩하고자 하는 블록이 특정 예측 방향성을 갖는 인트라 예측 모드를 최적의 모드로 선택한다는 것은 해당 예측 방향성을 고려하여 생성한 예측 블록이 원 블록과 가장 유사할 가능성이 높다는 것을 의미한다. 따라서, 도 27에 도시된 것과 같이, 우하단 샘플 BR의 임시 예측 값(이하, BR 값)을 생성할 때, 예측 블록을 고려하여 생성하면 BR 값 역시 원 BR 위치의 샘플 값과 값이 가장 유사할 가능성이 크다. 따라서, 본 실시예는 예측 방향성을 고려하여 BR 값을 생성한다. 도 27에서 나타낸 예의 경우, BR 값은 상측 참조 샘플 F의 샘플 값으로 결정된다. 즉, 기존의 방향성을 고려하여 예측 블록을 생성하는 방법과 동일한 방법으로 특정 (너비, 높이) 위치에 해당하는 값을 BR 값으로 생성한다. 예측 방향성을 고려하여 우하단 참조 샘플 값을 생성하는 방법은 다양한 조건에서 사용될 수 있다.
도 28은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 방향성의 타입을 구분한 것을 나타낸다.
도 28에 도시된 것과 같이, A 영역과 B 영역은 수평 방향성을 나타내고 C 영역과 D 영역은 수직 방향성을 나타낸다. 수평 방향성에서, A 영역은 양의 방향성을 나타내고 B영역은 음의 방향성을 나타낸다. 또한, 수직 방향성에서, C 영역은 음의 방향성을 나타내고 D 영역은 양의 방향성을 나타낸다. 이러한 특성을 고려하여, 앞에서 제안한 BR 샘플 생성 방법을 가변적으로 적용할 수 있다. 일 실시예에서, 음의 방향성을 갖는 B 영역과 C 영역에 속한 방향성 모드는 도 27과 같이 예측 방향성을 고려한 BR 생성 방법을 적용하여 BR 샘플 값을 생성하고, 양의 방향성을 갖는 A 영역과 D 영역에 속한 방향성 모드는 도 26과 같이 좌하단 샘플과 우상단 샘플을 사용하여 BR 샘플 값 생성 방법을 적용할 수 있다. 이와 반대로, 음의 방향성을 갖는 B영역과 C영역에 속한 방향성 모드는 도 26과 같이 좌하단 샘플과 우상단 샘플을 사용하여 BR 샘플 값 생성 방법을 적용하고, 양의 방향성을 갖는 A영역과 D영역에 속한 방향성 모드는 도 27과 같이 예측 방향성을 고려한 BR 생성 방법을 적용하여 BR 샘플 값을 생성할 수 있다.
BR 샘플 값을 생성하는 또 다른 실시예는 위쪽 참조 샘플 값과 좌측 참조 샘플 값을 사용하는 방법이다.
도 29는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 위쪽 참조 샘플 값과 좌측 참조 샘플 값을 사용하여 우하단 샘플 값 결정 방법의 예를 도시한다.
도 29에 도시된 것과 같이, 현재 블록의 예측 방향이 수직 방향 모드의 경우 BR 샘플 값을 생성하기 위한 위쪽 참조 샘플 값은 앞에서 설명한 방법처럼 방향성을 고려하여 생성되고(도 29의 예에서 상측 참조 샘플 F의 값, ①?), 좌측 참조 샘플 값은 왼쪽 참조 샘플의 N 값(②혹은 Q 값(③?)으로 결정될 수 있다. 좌측 참조 샘플 값은 다양한 방법으로 결정할 수 있다. 각각 결정된 두 개의 참조 샘플 값들에 대한 가중 합을 통하여 BR 샘플 값이 결정될 수 있다. 수학식 4는 왼쪽 참조 샘플의 N 값을 이용한 식이고, 수학식 5는 왼쪽 참조 샘플의 Q 값을 이용한 식이다.
Figure PCTKR2019008004-appb-img-000005
Figure PCTKR2019008004-appb-img-000006
도 29의 예는 현재 블록의 예측 방향이 수직 방향 모드의 경우에 대한 예이지만, 만약 현재 블록의 예측 방향이 수평 방향 모드이 경우에 대해서도 동일한 방법으로 BR 값이 결정할 수 있다. 즉, 현재 방향이 수평 방향 모드이므로 좌측 참조 샘플 값은 앞에서 설명한 방법처럼 방향성을 고려하여 생성되고, 위쪽 참조 샘플 값은, BR 샘플의 위쪽에 위치한 참조 샘플 E 값을 사용하거나, 또는 우대각에 위치한 참조 샘플 H 값을 사용하여 수학식 4 또는 수학식 5와 같이 가중 합을 사용하여 결정된다.
실시예 3-2: 원 영상을 사용하여 우하단 참조 샘플 값 생성
본 실시예에서는 원(original) 영상의 참조 샘플의 값을 사용하여 현재 블록의 우하단 참조 샘플 값을 생성하는 방법을 제안한다.
도 30은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상으로부터 현재 블록의 우하단 샘플 값을 생성하는 방법을 도시한다.
도 30의 좌측의 원 영상으로부터 현재 인코딩하고자하는 블록의 우하단 샘플(BR 샘플)의 위치와 동일한 위치의 우하단 샘플(BR 샘플)을 찾는다. 해당하는 원 영상의 BR 값을 현재 인코딩하고자하는 블록의 BR 샘플 값으로 복사하여 사용한다. 이 때, 디코더(200)는 원 영상을 사용할 수 없으므로, 인코더(100)가 원 영상의 BR 값을 디코더(200)로 전송해야 한다. 본 실시예는 다음의 3가지 방법(1) 원 영상의 BR 값의 차분 값 전송 방법, 2) 예측 블록의 우하단 값과 원 영상의 BR 값의 차분 값 전송 방법, 3) 디폴트 오프셋 값 전송 방법)을 사용하여 BR 값을 디코더(200)로 전송한다.
1) 원 영상의 BR 값의 차분 값 전송 방법
도 31은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상의 우하단 샘플 값의 차분 값 전송 방법의 예를 도시한다.
원 영상의 우하단 샘플 값(BR 값)의 차분 값 전송 방법은, 도 31에 도시된 것과 같이 연속하는 BR 값들 사이의 차분 값을 전송한다. 도 31에 도시된 것과 같이, 굵은 색의 경계는 각각의 인코딩 하고자 하는 블록의 경계를 나타내고, 각각의 블록안의 숫자는 인코딩 순서를 나타낸다. 먼저 블록 ①을 인코딩할 때, BR 샘플 값으로 원 영상의 BR1번 위치의 값을 사용한다. 이 때, 이전에 사용한 BR 값이 없으므로 중간 값(8 비트의 경우 128, 10 비트의 경우 512)과의 차분 값(8 비트의 경우 BR1 - 128, 10 비트의 경우 BR1 - 512)을 전송한다. 블록 ②를 인코딩할 때, BR 샘플 값으로 원 영상의 BR2번 위치의 값이 사용된다. 이때, 이미 블록 ①이 인코딩 되었으므로, 그때 사용된 BR1 값을 사용하여 BR2 값과의 차분 값(BR2 - BR1)이 전송된다. 이와 같은 방법으로, 현재 블록의 BR 샘플 값은 현재 블록의 대응하는 원 영상의 BR 값과 이전 블록 인코딩에 사용한 BR 값의 차분 값을 전송함으로써 BR 값이 생성된다.
2) 예측 블록의 우하단 값과 원 영상의 BR 값의 차분 값 전송 방법
도 32는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 예측 블록의 우하단 값과 원 영상의 우하단 인접 샘플 값의 차분 값 전송 방법의 예를 도시한다.
예측 블록의 우하단 값과 원 영상의 BR 값의 차분 값 전송 방법은, 도 32에 도시된 것과 같이, 현재 블록의 예측 방향을 고려하여 생성한 우하단 값과 원 영상의 BR 위치의 값과의 차분 값을 전송하는 방법이다. 먼저 블록 ①을 인코딩할 때, 인코더(100)는 BR 샘플 값으로 원 영상의 BR1번 위치의 값을 사용한다. 이 때, 인코더(100)는 현재 블록의 예측 방향을 고려하여 생성한 우하단 값(P1)과의 차분 값(BR1 - P1)을 전송한다. 동일한 방법으로 블록 ②를 인코딩할 때, 인코더(100)는 BR 샘플 값으로 원 영상의 BR2번 위치의 값을 사용하고, 역시 예측 방향을 고려하여 생성한 우하단 값(P2)과의 차분 값(BR2-P2)을 전송한다. 이와 같은 방법으로, 인코더(100)는 현재 블록의 대응하는 원 영상의 BR 값과 현재 블록의 방향성을 고려하여 생성한 우하단 값과의 차분 값을 전송하여 현재 블록의 BR 샘플 값을 생성한다.
3) 디폴트 오프셋 값 전송 방법
도 33은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 균등한 디폴트 오프셋 값 전송 방법의 예를 도시한다.
디폴트 오프셋 값 전송 방법은, 현재 영상의 내부 비트를 고려하여 샘플 값을 양자화하여 임의의 구간으로 나눈후, 원 영상의 BR 값을 포함하고 있는 영역의 대표 값을 전송하는 방법이다. 도 33의 예는 영상의 내부 비트가 8 비트인 경우의 예이다. 따라서, 인코더(100)는 0~255 샘플 값의 범위를 네 개의 구간으로 나눈 후, 원 영상의 BR 값이 속해 있는 구간의 대표 값을 두 비트(00 (대표값 32 구간), 01 (대표값 96 구간), 10 (대표값 160 구간), 11 (대표값 224 구간))를 사용하여 전송한다. 본 실시예에서는 네 개의 구간으로 나누었지만, 구간의 수는 임의로 결정할 수 있다.
도 34는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 비균등한 디폴트 오프셋 값 전송 방법의 예를 도시한다.
도 34는 비균등한 디폴트 오프셋 값 전송 방법을 나타낸다. 도 33과 동일한 예로, 인코더(100)는 0~255 샘플 값의 범위를 네 개의 비균등한 구간으로 나눈 후, 원 영상의 BR 값이 속해 있는 구간의 대표 값을 두 비트(00 (대표값 20 구간), 01 (대표값 84 구간), 10 (대표값 170 구간), 11 (대표값 234 구간))를 사용하여 전송한다. 본 실시예 역시 네 개의 구간으로 나누었지만, 구간의 수는 임의로 결정할 수 있고, 비균등성 역시 임의로 결정할 수 있다.
실시예 4: 선형 보간 예측 방법과 기존의 인트라 예측 방법을 혼합한 예측
본 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법에 관한 것으로서, 인트라 예측 인코딩에서 예측 블록의 정확도를 높이기 위해 선형 보간 방법을 사용하여 혼합된 인트라 예측 블록을 생성하는 방법을 기반으로 정지 영상 또는 동영상을 인코딩/디코딩하는 방법 및 이를 지원하는 장치에 관한 것이다.
본 실시예는 선형 보간 예측 방법과 기존의 인트라 예측 방법을 결합한, 즉 선형 보간 예측을 부분적으로 사용하는 선형 보간 인트라 예측 방법을 제안한다.
본 실시예는 선형 보간 예측 방법과 기존의 인트라 예측 방법을 결합하여 일반화된 혼합된 인트라 예측 방법을 제안한다.
본 실시예는 혼합된 인트라 예측 방법의 실제적인 사용 예를 설명한다.
본 실시예는 정지 영상 또는 동영상을 인트라 예측 인코딩 시 선형 보간 예측 방법과 기존의 인트라 예측 방법을 결합한 혼합된 인트라 예측 방법을 사용하여 보다 정확한 예측 블록을 생성하여 인코딩/디코딩함으로써, 복잡한 영상을 보다 효율적으로 처리할 수 있다.
도 14에 도시된 것과 같이, 선형 보간 인트라 예측 방법은 이미 인코딩/디코딩되어 복원된 상단 참조 샘플과 현 인코딩 시점에서 부보화/디코딩이 수행되지 않아 예측된 하단 참조 샘플의 거리에 따른 가중 합으로 예측 블록을 생성한다.
이러한 선형 보간 예측 방법을 인트라 예측 인코딩에 적용하는 방법은 크게 두 가지(1) 기존의 인트라 예측 방법과 선형 보간 예측 방법을 혼용하여 사용하는 방법, 2) 기존의 인트라 예측 방법 대신 선형 보간 예측 방법만을 사용하는 방법)로 구분할 수 있다.
1) 기존의 인트라 예측 방법과 선형 보간 예측 방법을 혼용하여 사용하는 방법의 경우, 각각의 방법을 구분하기 위한 플래그 정보를 사용한다. 이 경우, 플래그 사용으로 인하여 인코딩 비트가 증가하는 문제가 발생한다. 2) 기존의 인트라 예측 방법 대신 선형 보간 예측 방법만을 사용하는 방법의 경우, 선형 보간 예측 방법이 기존의 인트라 예측 방법보다 예측 정확도가 낮다면, 인코딩 효율이 저하되는 문제가 발생한다. 각각의 경우에 대한 문제점을 해결하기 위해 본 실시예는 기존의 인트라 예측 방법과 선형 보간 인트라 예측 방법을 결합한 혼합된 인트라 예측 방법을 제안한다. 본 실시예에 따른 혼합된 인트라 예측 방법은 인트라 예측 인코딩에서 기존의 인트라 예측 방법을 대신하여 사용될 수 있다.
본 실시예에서 따른 혼합된 인트라 예측 방법은 앞에서 언급한 다음 두 문제점을 해결할 수 있다.
1) 플래그 사용으로 인하여 인코딩 비트가 증가하는 문제: 본 실시예에 따른 혼합된 인트라 예측 방법은 기존의 인트라 예측 방법 대신 사용하므로 플래그를 사용하지 않는다.
2) 기존의 인트라 예측 방법보다 예측 정확도가 낮음 문제: 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합하므로 기존의 인트라 예측 방법보다 정확하게 예측 블록을 생성할 수 있다.
실시예 4-1: 기존의 인트라 예측과 선형 보간 인트라 예측의 결합
도 35는 본 발명의 실시예에 따른 인트라 예측 방법의 예로서, 도 35a는 기존의 인트라 예측 방법, 도 35b는 선형 보간 예측 방법의 예를 도시한다.
기존의 인트라 예측 방법을 사용하여 예측 블록을 생성하는 방법은, 도 35a에 도시된 것과 같이, 상단 참조 샘플의 샘플 값을 복사함으로써 예측 블록을 생성한다. 즉, C 1의 예측 값은 상단 참조 샘플 P 1 값으로 복사하여 생성한다. 동일한 방법으로 해당 블록 내의 모든 예측 값이 생성된다.
선형 보간 예측 방법을 사용하여 예측 블록을 생성하는 방법은, 도 35b에서 도시된 것과 같이, 상단 참조 샘플과 하단 참조 샘플의 선형 보간을 통해 예측 블록을 생성한다. 즉, C 1의 예측 값은 상단 참조 샘플 P 1 값과 하단 참조 샘플 P' 1 값을 선형 보간하여 생성된다. 이 때, P 1 샘플 값과 P' 1 샘플 값에 각각 w DOWN1과 w UP1의 가중 값을 할당함으로써 선형 보간이 수행된다. 이와 동일한 방법으로 해당 블록 내의 모든 예측 값이 생성된다.
본 실시예에 따른 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 혼합된 인트라 예측 방법은 기본적으로 도 35a의 기존의 인트라 예측 방법과 도 35b의 선형 보간 예측 방법을 사용한다.
도 36은 본 발명의 실시예에 따른 인트라 예측에서 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 인트라 예측 방법을 나타낸다.
도 36은 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 인트라 예측 방법을 사용하여 4x4 예측 블록을 생성하는 예이다. 도 36에 도시된 것과 같이, 4x4 블록의 첫 번째 행(가장 상위 행, (C 1, C 2, C 3, C 4를 포함하고 있는 행))은 기존의 인트라 예측 방법을 사용하여 예측 값을 생성한다. 따라서, 디코더(200)는 C 1은 P 1의 값을, C 2는 P 2의 값을, C 3는 P 3의 값을, C 4는 P 4의 값을 복사하여 예측 값을 생성한다. 그리고, 디코더(200)는 두 번째 행부터 마지막 행(도 36에서 점선으로 강조된 영역)까지는 선형 보간 예측 방법을 사용하여 예측 값을 결정한다. 도 36의 예에서, 두 번째 행의 C 5의 예측 값은 상단 참조 샘플 P 5 값과 하단 참조 샘플 P' 5 값과 w DOWN5와 w UP5의 가중 값을 사용한 선형 보간을 통해 생성될 수 있다. 동일한 방법으로, 세 번째 행의 C 6의 예측 값은 상단 참조 샘플 P 6 값과 하단 참조 샘플 P' 6 값과 w DOWN6와 w UP6의 가중 값을 사용한 선형 보간을 통해 생성될 수 있다. 즉, 점선으로 강조된 두 번째 행부터 마지막 행까지의 예측 값은 이와 동일한 방법을 사용하여 생성될 수 있다.
본 실시예에서 제안되는 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 혼합된 인트라 예측 방법은, 기존의 인트라 예측 방법을 사용하여 특정 영역에 대한 예측 값을 생성하고, 선형 보간 예측 방법을 사용하여 나머지 영역에 대한 예측 값을 생성하고, 최종 예측 블록을 생성한다. 상단 참조 샘플은 인코딩/디코딩을 통해 복원된 샘플 값이므로 하단 참조 샘플보다 높은 정확도를 갖는다. 따라서, 도 36의 첫 번째 행과 같이 예측 샘플의 위치가 상단 참조 샘플에 가까우면 기존의 인트라 예측 방법을 사용하여 상단 참조 샘플 값을 그대로 복사하여 사용하는 것이 효율적이다. 반대로, 도 36의 두 번째 행 내지 마지막 행과 같이 예측 샘플의 위치가 상단 참조 샘플과 멀어질수록 기존의 인트라 예측 방법을 사용하여 예측 샘플 값을 생성하는 것이 부정확하므로 상단 참조 샘플과 하단 참조 샘플을 가지고 선형 보간을 통해 예측 값을 생성하는 것이 효율적이다. 즉, 하나의 예측 블록을 생성하기 위해 복원된 참조 샘플과의 거리를 고려하여 기존의 인트라 예측 방법과 선형 보간 예측 방법이 선택적으로 사용된다. 도 36에서 4x4 블록이 예시적으로 설명되지만, 8x8, 16x8과 같은 다양한 크기와 모양의 블록(정방형 블록과 비정방형 블록) 모두에 본 실시예가 적용할 수 있다. 또한, 하나의 예측 블록 내에서 제안한 기존의 인트라 예측 방법과 선형 보간 예측 방법의 선택은 복원된 참조 샘플과의 거리에 따라 가변적으로 결정할 수 있다.
기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 혼합된 예측 방법은 기존의 방향성 모드를 모두 대체하여 사용될 수 있다. 따라서, 혼합된 인트라 예측 모드는 기존의 두 가지 무방향성 모드(Planar 모드와 DC 모드)와 제안한 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합한 혼합된 예측 방향 모드로 이루어진다.
실시예 4-2: 보다 일반화된 혼합된 인트라 예측 방법
본 실시예는 기존의 인트라 예측 방법과 선형 보간 예측 방법을 결합하여 보다 일반화된 혼합된 인트라 예측 방법을 설명한다. 먼저 도 35a에 도시된 기존의 인트라 예측 방법(conventional intra prediction)을 통해 생성된 인트라 예측 값 C(i, j)와 도 35b에 도시된 선형 보간 예측 방법(linear interpolation intra prediction)을 사용하여 생성된 인트라 예측 값 L(i, j)를 통해 일반화된 새로운 인트라 예측 값 P(i, j)는 다음의 수학식 6과 같이 정의될 수 있다.
Figure PCTKR2019008004-appb-img-000007
여기서 (i, j)는 예측 블록 내에서 해당 예측 샘플의 수평 및 수직 위치를 각각 나타내며 가중 값 α는 일반적으로 0과 1 사이의 값이다. 수학식 6은 부동 소수점(floating point) 계산을 제거하기 위한 실용적인 구현의 관점에서 수학식 7과 같이 표현될 수 있다.
Figure PCTKR2019008004-appb-img-000008
수학식 7에서 A와 B는 기존의 인트라 예측과 선형 보간 예측에 대한 각각의 가중 값을 나타내며 모두 양의 정수(non-negative integer)로 표현될 수 있다. offset(오프셋) 값은 일반적으로 2(right_shift-1)로 정하며, 연산자 a>>b는 a를 2b 값으로 나누었을 때 얻어지는 몫을 나타낸다. 일반적으로 수학식 7에서 A+B=2(right_shift) 조건을 만족한다.
실시예 4-3: 혼합된 인트라 예측의 실제적인 사용예
본 실시예는 이전 실시예 4-1과 실시예 4-2에서 제안된 혼합된 인트라 예측 방법의 실제적인 사용 예를 설명한다. 혼합된 인트라 예측 방법의 경우 기존의 인트라 예측 방법과 선형 보간 예측 방법의 결합으로 나타낼 수 있으며, 이는 다음과 같이 다양한 형태로 정의될 수 있다.
1) 인트라 예측 모드에 따라서 수학식 6에서 정의된 α 값이 미리 정의될 수 있다. 예를 들면, 무 방향성 모드인 Planar 모드의 경우 α 값이 '0'으로 설정되어 새로운 인트라 예측 방법은 단순히 선형 보간 예측 방법이 그대로 대체될 수 있다. 또 다른 예로, 무 방향성 모드인 DC 모드의 경우 α 값이 '1'로 설정되어 새로운 인트라 예측 방법은 기존의 인트라 예측 방법이 그대로 사용될 수 있다. 또한 방향성 모드들의 경우 미리 정의된 α 값을 고려하여 새로운 인트라 예측 방법을 적용할 수 있다.
2) 인트라 예측 시 예측 샘플의 위치에 따라 α 값이 각각 다르게 정의될 수 있다. 예를 들면, 상단 참조 샘플과 좌단 참조 샘플에 밀접하게 위치한 예측 샘플의 경우 그렇지 않은 경우보다 α 값이 상대적으로 클 수 있다. 여기서 α 값이 크다는 것은 기존의 인트라 예측에 더 가중 값을 부여하는 것을 의미한다. 이 경우 아래 수학식 8에서 보듯이 α가 α(i, j)와 같이 위치에 따라 변하도록 모델링될 수 있다.
Figure PCTKR2019008004-appb-img-000009
3) 예측 블록의 크기에 따라서 α 값이 각각 다르게 정의될 수 있다. 예를 들어, 블록의 크기(widthХheight)가 주어진 임계값(32)보다 작을 경우 상대적으로 작은 α 값을 갖도록 정의할 수 있다.
4) 예측 블록의 모양에 따라 α 값이 각각 다르게 정의될 수 있다.
5) 또한, 정의된 α 값이 '0' 또는 '1'이 아닌 경우, 추가적인 플래그 정보에 기반하여 기존의 인트라 인코딩 방법과 선형 보간 인트라 인코딩 방법을 선택하여 사용할 수 있다. 예를 들어, 무방향성 모드인 플래너 모드의 경우, α 값이 '0'으로 설정되어 추가적인 플래그 정보가 필요하지 않지만, 수평 모드의 경우, 만약 α 값이 0.5로 설정된다면 비트스트림을 통해 추가적으로 전송된 플래그 정보에 기반하여 기존의 인트라 인코딩 방법과 선형 보간 인트라 인코딩 방법 중 선택된 인트라 인코딩 방법이 사용될 수 있다. 여기서, 추가적인 플래그가 요구되는 조건은 α 값 또는 해당 예측 모드에 기반하여 미리 정의될 수 있다.
5)에서 제안된 추가적인 플래그 정보의 전송 여부는 다음과 같이 해당 예측 모드에 기반하여 미리 정의될 수 있다.
Class A = {0, 1, 66}
Class B = {2, 3, 4, 쪋, 64, 65}
Class A는 추가적인 플래그 정보가 필요없는 예측 모드들의 집합이며, 반대로 Class B는 추가적인 flag 정보가 필요한 예측 모드들의 집합을 나타낸다.
실시예 5: 참조 샘플과의 실제 거리를 고려한 선형 보간 인트라 예측
본 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법에 관한 것으로서, 인트라 예측 인코딩에서 더 많은 참조 샘플을 사용하여 선형 보간을 수행함으로써 예측의 정확도를 증가하는 것을 기반으로 정지 영상 또는 동영상을 인코딩/디코딩하는 방법 및 이를 지원하는 장치에 관한 것이다.
본 실시예는 새로운 참조 샘플을 생성하는 방법을 제안한다.
본 실시예는 우하단 샘플을 생성하는 방법을 제안한다.
본 실시예는 생성된 우하단 샘플과 기존의 우상단 샘플, 좌하단 샘플을 사용하여 하단 샘플들과 우단 샘플들을 생성하는 방법을 제안한다.
본 실시예는 더 많은 참조 샘플을 사용하여 선형 보간을 수행하는 새로운 예측 방법을 제안한다.
본 실시예는 우상단 샘플, 우하단 샘플, 좌하단 샘플을 사용하여 선형 보간을 수행하는 예측 방법을 제안한다.
본 실시예는 하단 샘플들과 우단 샘플들을 사용하여 선형 보간을 수행하는 예측 방법을 제안한다.
본 실시예는 선형 보간 시 가중값을 할당하는 방법을 제안한다.
본 실시예는 정지 영상 또는 동영상을 인트라 예측 인코딩 시 더 많은 참조 샘플을 사용하여 선형 보간을 수행하여 인코딩/디코딩함으로써, 복잡한 영상을 보다 효율적으로 처리할 수 있다.
선형 보간 인트라 예측을 수행하기 위해서는 먼저 우하단 참조 샘플을 생성한다. 우하단 참조 샘플 생성 방법은 주변의 참조 샘플을 사용하여 생성할 수도 있고, 원 영상의 해당 위치의 샘플을 사용할 수도 있다.
실시예 5-1: 주변의 참조 샘플을 사용한 우하단 참조 샘플 생성
먼저 주변의 참조 샘플을 사용하여 우하단 참조 샘플을 생성하는 방법을 설명한다.
도 37은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 주변 참조 샘플을 사용한 우하단 샘플 생성 방법의 예로서, 도 37a는 우상단 샘플과 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타내고 도 37b는 현재 인코딩하고자 하는 블록의 2배 길이만큼 먼 모스트(most) 우상단 샘플과 모스트 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타낸다.
각각의 샘플을 사용하여 우하단 샘플을 생성하는 식은 아래의 수학식 9와 수학식 10과 같다.
Figure PCTKR2019008004-appb-img-000010
Figure PCTKR2019008004-appb-img-000011
실시예 5-2: 원 영상을 사용한 우하단 참조 샘플 생성
실시예 5-1에 따른 방법은 이미 인코딩이 수행된 복원된 영상에서 주변의 샘플을 사용하여 우하단 샘플을 생성하는 반면, 실시예 5-2의 방법은 원 영상에서 우하단 샘플에 해당하는 위치의 값을 우하단 샘플 값으로 바로 사용한다.
도 38은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상으로부터 우하단 참조 샘플을 생성하는 방법을 나타낸다.
도 38에서, 현재 인코딩 하고자 하는 블록(C)를 기준으로 음영 처리된(marked) 영역은 인코딩이 수행되어 복원된 영상 영역이고, 흰색 영역은 아직 인코딩이 수행되지 않은 원 영상 영역이다. 실시예 5-1의 방법과는 달리, 우하단 샘플 값은 원 영상의 해당 위치의 값으로 설정될 수 있다. 이 경우, 인코더(100)로부터 디코더(200)로 우하단 샘플값의 정보가 전송되는 단점이 있으나, 우하단 샘플 값의 정확도를 높일 수 있다.
실시예 5-3: 참조 샘플을 사용한 선형 보간 인트라 예측
도 28은 예측 방향과 각도에 따른 영역 구분을 도시한다. 실시예 5-1과 실시예 5-2를 통해 설명된 것과 같이, 우하단 샘플이 생성된 후, 우하단 샘플을 사용하여 선형 보간 예측이 수행된다. 도 28은 인트라 예측 모드의 방향성을 수직 방향과 수평 방향 그리고 양의 각도 방향과 음의 각도 방향을 기준으로 네 영역으로 구분한 경우의 예를 나타낸다.
수평 방향과 수직 방향을 기준으로 A, B 영역과 C, D 영역을 구분하고 다시 각도를 기준으로 양의 각도 영역인 A, D 그리고 음의 각도 영역인 B, C를 구분한다. 표 5는 방향과 각도에 따른 영역 구분을 정리한 표이다.
영역 방향성 각도
A 수평
B 수평
C 수직
D 수직
도 39는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 인트라 예측 모드별 선형 보간을 위해 사용되는 참조 샘플의 예로서, 도 39a는 우상측 참조 샘플, 도 39b는 우하측 참조 샘플, 도 39c는 좌하측 참조 샘플의 예를 도시한다.선형 보간 예측을 수행할 때, 방향성과 각도에 따라 서로 다른 참조 샘플에 기반하여 보간을 위한 참조 샘플이 결정된다. 도 39는 각 영역에 속한 인트라 예측 모드에서 선형 보간 예측을 위해 사용하는 참조 샘플을 나타낸다. 즉, 영역 A에 속한 인트라 예측 모드에서 우상단 샘플로부터 선형 보간 예측이 수행되고, 영역 B와 영역 C에 속한 인트라 예측 모드에서 우하단 샘플로부터 선형 보간 예측이 수행되고, D 영역에 속한 인트라 예측 모드에서, 좌하단 샘플로부터 선형 보간 예측이 수행한다.
도 40은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플을 사용하여 선형 보간 예측을 수행하는 방법을 나타낸다. 도 40은 영역 D에 속하는 인트라 예측 모드의 선형 보간 예측 수행 방법이다. 도 40에서 현재 샘플 값은 기존 방법으로 생성된 예측 샘플과 참조 샘플(좌하단 샘플)의 선형 보간으로 계산한다. 이 때, 선형 보간의 가중 값은 현재 샘플과 예측 샘플의 수직 거리와 현재 샘플과 참조 샘플의 수직 거리로 결정된다. 최종 현재 샘플의 예측 값은 수학식 11에 의해 계산된다.
Figure PCTKR2019008004-appb-img-000012
이와 동일한 방법을 A, B, C 영역에 속하는 화면 내 모드에도 적용하여 선형 보간 예측을 수행한다.
지금까지는 우상단, 우하단, 좌하단 참조 샘플을 생성하고 이를 사용하여 선형 보간 예측을 수행하는 방법에 대해 설명하였다. 앞으로는 우단 샘플들과 하단 샘플들을 모두 생성하고 이를 사용하여 선형 보간 예측을 수행하는 방법을 설명한다.
실시예 5-4: 하단 샘플들과 우단 샘플들의 생성
도 41은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 하단 샘플들과 우단 샘플들을 생성하는 방법을 도시한다.
실시예 5-1과 실시예 5-2에서 설명된 것과 같이, 우하단 샘플의 생성 이후, 좌하단 샘플과 우상단 샘플로부터 하단 샘플들과 우단 샘플들이 생성될 수 있다. 하단 샘플들은 좌하단 샘플과 우하단 샘플의 선형 보간에 의해, 우단 샘플들은 우상단 샘플과 우하단 샘플의 선형 보간에 의해 생성된다.
실시예 5-5: 실제 거리에 기반한 선형 보간 예측
실시예 5-4를 통해 설명된 하단 샘플들과 우단 샘플들의 생성 이후, 생성된 하단 샘플들과 우단 샘플들에 기반하여 선형 보간 예측이 수행된다. 실시예 5-3에서 설명된 선형 보간 예측 방법과 실시예 5-5에서 설명된 선형 보간 예측 방법의 차이점은 다음과 같다. 실시예 5-3은 인트라 예측 모드를 영역 별로 구분한 후, 하나의 참조 샘플을 사용하여 예측 샘플과 선형 보간 예측을 수행한다. 반면, 실시예 5-5는 인트라 예측 모드를 영역 별로 구분한 후, 각 영역에 해당하는 참조 샘플들을 사용하여 예측 샘플과 선형 보간 예측을 수행한다.
도 14는 양의 수직 방향의 인트라 예측 모드에서 현재 예측 샘플 C를 생성하는 방법을 나타낸다. 양의 수직 방향의 인트라 예측 모드는 도 28의 영역 D에 속하는 모드들이다.
도 14에서 보듯이 현재 예측 샘플 C는 다음과 같은 순서로 생성한다.
1) 좌측 참조 샘플(짙은 회색)들을 하단 샘플 버퍼에 복사하고 생성한 하단 샘플들과 하단 버퍼를 생성
2) A 참조 샘플과 B 참조 샘플을 보간하여 예측 샘플 값 P를 생성(기존의 인트라 인코딩의 예측 샘플 생성 방법 사용)
3) A' 참조 샘플과 B' 참조 샘플을 보간하여 예측 샘플 값 P'을 생성 (기존의 인트라 인코딩의 예측 샘플 생성 방법 사용)
4) 생성된 P와 P'을 다시 선형 보간하여 최종 예측 값 C를 생성
Figure PCTKR2019008004-appb-img-000013
예측 블록 내에 모든 샘플들에 대해 방법 2) - 4)를 적용하여 예측 값을 생성한다. 모든 예측 방향(도 28의 영역 A, B, C에 속하는 인트라 예측 모드)에 동일한 방법을 적용하여 예측 블록을 생성한다. 본 실시예에 따른 선형 보간 인트라 예측 방법은 방향성이 존재하지 않는 플래너 모드와 DC 모드를 제외한 모든 모드에 적용한다. 따라서, 현재 블록이 플래너 또는 DC 모드가 아닐 경우 선형 보간 인트라 예측 모드를 나타내는 플래그를 파싱하여 선형 보간 인트라 예측 방법의 적용 여부를 결정한다.
도 42는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 사이의 실제 거리의 비를 사용하여 선형 보간을 수행하는 방법의 예를 도시한다.
도 14를 통해 설명된 선형 보간 인트라 예측 방법은 P와 P'을 선형 보간할 때, 실제 P와 P'의 거리의 비가 아닌 수직 거리의 비를 사용하여 계산한다. 본 실시예에 따른 선형 보간 인트라 예측 방법은, 도 42에서 도시된 것과 같이 P와 P'의 실제 거리의 비를 계산하여 w 1과 w 2를 계산하고, w 1과 w 2를 사용하여 선형 보간을 수행한다. 앞에서 언급한 방법에서 1) - 3) 방법은 동일하고 4) 최종 예측 값 C를 생성하는 방법만 다르다.
도 43은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 사이의 실제 거리의 비를 사용하여 선형 보간을 수행하는 방법의 다른 예를 도시한다.
도 43에 따르면, 최종적으로 생성하고자 하는 예측 샘플(C)과 참조 샘플(P, P')과의 실제 거리비를 고려함으로써 예측 샘플(C)을 정확하게 생성하기 위해, 제 2 참조 샘플을 제 1 참조 샘플과 평행하게 이동시키는 대신 해당 위치에서 최종 생성하고자하는 예측 샘플과의 거리를 고려하여 가중 값을 계산한다. 최종 예측 값 C는 수학식 13을 사용하여 계산할 수 있다. 이 때, w UP과 w DOWN은 각각 실제 거리비를 고려하여 생성한 가중 값이다.
Figure PCTKR2019008004-appb-img-000014
수학식 13에서, C는 예측하고자 하는 현재 샘플의 예측 값, P는 제1 참조 샘플의 샘플 값, P'는 제2 참조 샘플의 샘플 값, w UP는 제1 참조 샘플(P)와 현재 샘플과의 거리, w DOWN은 제2 참조 샘플(P')과 현재 샘플과의 거리를 나타낸다. 수학식 13에서, w UP와 w DOWN는 서로 바뀌어서 사용될 수 있다.
도 44는 본 발명의 실시예에 따른 선형 보간 인트라 예측을 위한 순서도의 예를 도시한다. 도 44의 각 동작은 인코더(100) 또는 디코더(200)에 의해 수행될 수 있으며, 이하에서는 설명의 편의를 위해 디코더(200)의 동작을 중심으로 설명한다.
S4410 단계에서, 디코더(200)는 디코딩하고자 하는 현재 블록에 대해 인트라 예측이 적용됨을 확인할 수 있다. 디코더(200)는 현재 블록에 대한 예측 모드에 대한 정보를 지시하는 플래그 또는 인덱스를 파싱함으로써 디코딩하고자 하는 현재 블록에 인트라 예측이 적용됨을 확인할 수 있다. 여기서, 현재 블록은 특정 시점에서 디코더(200)가 디코딩 또는 예측을 수행하고자 하는 대상이 되는 블록으로서, 처리 유닛, 처리 블록, 예측 유닛(PU)과 같이 지칭될 수 있다. 또한, 현재 블록에 포함된 각각의 샘플은 현재 샘플로 지칭될 수 있다. 또한, 디코더(200)는 현재 블록에 적용된 인트라 예측 모드를 확인할 수 있다. 예를 들어, 디코더(200)는 MPM 후보 리스트 또는 나머지 인트라 예측 모드 후보 리스트로부터 현재 블록에 적용된 비방향성 또는 방향성 인트라 예측 모드를 확인할 수 있다. 방향성 인트라 예측 모드가 현재 블록에 적용된 경우, 디코더(200)는 인트라 예측 모드에 대응되는 예측 방향을 확인할 수 있다.
S4420 단계에서, 디코더(200)는 인트라 예측 방향에 기반하여 제1 참조 샘플 값을 결정할 수 있다. 보다 구체적으로, 디코더(200)는 현재 블록에 적용된 인트라 예측 모드에 대응되는 인트라 예측 방향을 확인하고, 인트라 예측 방향에 기반하여 현재 블록에 포함된 현재 샘플의 예측을 위한 제1 참조 위치와 제1 참조 샘플 값을 결정할 수 있다. 다시 말해, 디코더(200)는 현재 블록의 인트라 예측 방향에 기반하여 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 샘플들 결정할 수 있다.
예를 들어, 도 42를 참조하면, 현재 샘플(C)의 예측을 위하여, 굵은 선으로 구획된 현재 블록에 인접한 상측 수평 라인에 위치한 샘플들 중 현재 샘플(C)로부터 인트라 예측 방향에 대응하는 지점인 제1 참조 위치(P)에 대응하는 제1 참조 샘플 값을 제1 참조 샘플로서 결정할 수 있다.
여기서, 현재 블록에 인접한 상측 수평 라인은 현재 블록의 최상단 행보다 상측에 위치한 하나 또는 그 이상의 행에 속한 샘플들 전체를 지칭할 수 있다. 유사하게, 현재 블록에 인접한 하측 수평 라인은 현재 블록의 최하단 행보다 하측에 위치한 하나 또는 그 이상의의 행에 속한 샘플들 전체를 지칭할 수 있다. 또한, 현재 블록에 인접한 좌측 수직 라인은 현재 블록의 맨 왼쪽 열보다 좌측에 위치한 하나 또는 그 이상의 열에 속한 샘플들 전체를 지칭할 수 있다. 유사하게, 현재 블록에 인접한 우측 수직 라인은 현재 블록의 맨 오른쪽 열보다 우측에 위치한 하나 또는 그 이상의 열에 속한 샘플들 전체를 지칭할 수 있다.
S4430 단계에서, 디코더(200)는 인트라 예측 방향에 기반하여 제2 참조 샘플 값을 결정할 수 있다. 보다 구체적으로, 디코더(200)는 S4420 단계에서 결정된 제1 참조 위치 또는 현재 샘플의 위치로부터 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치의 제2 참조 샘플 값을 결정할 수 있다.
예를 들어, 도 42에서, 현재 샘플의 위치(C) 또는 제1 참조 위치(P)로부터 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치(P')의 제2 참조 샘플 값을 결정할 수 있다. 여기서 제2 참조 위치(P')는 도 42와 같이 현재 블록에 인접한 하측 수평 라인에 위치할 수도 있고, 도 43과 같이 현재 블록에 인접한 좌측 수직 라인에 위치할 수도 있다.
또한, 제1 참조 위치의 제1 참조 샘플 값은 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되고, 제2 참조 위치의 제2 참조 샘플 값은 현재 블록에 인접한 우측 수직 라인 및 하측 수평 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정될 수 있다. 예를 들어, 도 42에서, 제1 참조 위치(P)의 제1 참조 샘플 값은 상측 수평 라인에 위치한 샘플 A와 샘플 B의 선형 보간에 의해 결정되고, 제2 참조 위치(P')의 제2 참조 샘플 값은 하측 수평 라인에 위치한 샘플 A'과 B'의 선형 보간에 의해 결정될 수 있다. 여기서, 하측 수평 라인의 샘플 A'와 샘플 B'의 값은 좌측 수직 라인에 위치한 샘플 값이 이용될 수 있다. 즉, 제2 참조 샘플 값은, 현재 블록에 인접한 하측 라인에 위치한 샘플들(도 42의 A',B')의 샘플 값들에 기반하여 결정되고, 현재 블록의 하측에 위치한 샘플 값들은, 현재 블록의 좌측 또는 우측에 인접한 샘플의 샘플 값으로 결정될 수 있다.
또한, 도 43과 같이, 제1 참조 위치(P)의 제1 참조 샘플 값은 상측 수평 라인에 위치한 샘플 A와 샘플 B의 선형 보간에 의해 결정되고, 제2 참조 위치(P')의 제2 참조 샘플 값은 좌측 수직 라인에 위치한 샘플 A'과 B'의 선형 보간에 의해 결정될 수 있다.
또한, 제1 참조 샘플 값은 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되고, 제2 참조 샘플 값은, 현재 블록에 인접한 우측 수직 라인 및 하측 수평 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정될 수 있다.
또한, 제1 참조 샘플 값은 현재 블록에 인접한 상측 라인 중 상기 현재 샘플로부터 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되고, 제2 참조 샘플 값은, 현재 블록에 인접한 하측 라인 중 현재 샘플로부터 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정될 수 있다. 예를 들어, 도 43에서, 제1 참조 위치(P)의 제1 참조 샘플 값은 현재 블록에 인접한 상측 라인 중 현재 샘플로부터 예측 방향에 의해 지시되는 지점(P)과 인접한 두 개의 샘플들(A, B)의 샘플 값들 사이의 선형 보간에 의해 결정되고, 제2 참조 위치(P')의 제2 참조 샘플 값은, 현재 블록에 인접한 하측 라인 중 현재 샘플로부터 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들(A',B')의 샘플 값들 사이의 선형 보간에 의해 결정될 수 있다.
S4440 단계에서, 디코더(200)는 현재 샘플과 제1 참조 위치 간의 거리인 제1 거리와 현재 샘플과 제2 참조 위치 간의 거리인 제2 거리를 결정할 수 있다. 다시 말해, 디코더(200)는 제1 참조 위치와 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 제2 참조 위치와 현재 샘플 사이의 거리를 제2 거리로서 결정할 수 있다. 예를 들어, 도 42에서, 제1 거리(w 1)는 제1 참조 위치(P)와 현재 샘플의 위치(C)와의 거리에 해당하고, 제2 거리(w 2)는 제2 참조 위치(P')와 현재 샘플의 위치(C)와의 거리에 해당할 수 있다.
여기서, 제1 거리(w 1)와 제2 거리(w 2)는, 도 14에 표시된 거리(w 1, w 2)와 달리, 제1 참조 위치(P)와 현재 샘플의 위치(C)의 실제 거리, 제2 참조 위치(P')와 현재 샘플의 위치(C)와의 실제 거리에 해당할 수 있다. 다시 말해, 제1 거리(w 1)는 현재 샘플(C)의 수평방향 위치와 제1 참조 위치(P)의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플(C)의 수직 방향 위치와 상기 제1 참조 위치(P)의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리에 해당하고, 제2 거리(w 2)는 현재 샘플(C)의 수평방향 위치와 제2 참조 위치(P')의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플(C)의 수직 방향 위치와 상기 제2 참조 위치(P')의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리에 해당할 수 있다. 제1 거리와 제2 거리를 계산하는 과정은 도 45와 같이 수행될 수 있다.
S4450 단계에서, 디코더(200)는 제1 참조 샘플과 제2 참조 샘플을 사용하여 현재 샘플에 대한 예측 값을 생성할 수 있다. 보다 구체적으로, 디코더(200)는 제1 참조 샘플의 샘플 값, 제1 거리, 제2 참조 샘플의 샘플 값, 및 제2 거리에 기반하여 상기 현재 샘플의 예측 값을 생성할 수 있다. 여기서, 현재 샘플의 예측 값은 제1 참조 샘플 값, 제1 거리, 제2 참조 샘플 값, 및 제2 거리에 기반한 선형 보간에 의해 결정될 수 있다. 또한, 상기 현재 샘플의 예측 값은, 제1 참조 샘플 값에 제2 거리를 곱한 값, 및 제2 참조 샘플 값에 제1 거리를 곱한 값에 기반하여 결정될 수 있다. 예를 들어, 디코더(200)는 수학식 12 또는 수학식 13을 사용하여 현재 샘플의 예측 값을 생성할 수 있다.
도 45는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 참조 샘플들 간의 거리에 따른 가중값을 계산하는 방법의 예를 도시한다. 도 45는 도 43, 44의 P와 P'의 거리에 따른 가중 값 w1과 w2를 계산하는 방법을 나타낸다.
계산된 가중 값 w1과 w2를 수학식 12에 적용하여 선형 보간된 예측 샘플을 생성한다. 동일한 방법을 예측 블록내에 존재하는 모든 샘플에 적용하여 예측 블록을 생성한다. 또한 모든 예측 방향(그림 4에서 언급한 영역 A, B, C에 속하는 인트라 예측 모드)에 동일한 방법을 적용하여 예측 블록을 생성한다.
실시예 6: 비정방형 블록 모양을 고려한 선형 보간 인트라 예측
본 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법에 관한 것으로서, 인트라 예측 인코딩에서 비정방형 모양의 블록을 인코딩할 때 효율적으로 선형 보간 방법을 사용하여 예측의 정확도를 증가하는 것을 기반으로 정지 영상 또는 동영상을 인코딩/디코딩하는 방법 및 이를 지원하는 장치에 관한 것이다.
본 실시예는 비정방형 블록 모양에서 새로운 참조 샘플을 생성하는 방법을 제안한다.
본 실시예는 우하단 샘플을 생성하는 방법을 제안한다.
본 실시예는 생성된 우하단 샘플과 기존의 우상단 샘플, 좌하단 샘플을 사용하여 하단 샘플들과 우단 샘플들을 생성하는 방법을 제안한다.
본 실시예는 현재 인코딩하고자 하는 블록의 상단 샘플들과 좌단 샘플들을 사용하여 하단 샘플들과 우단 샘플들을 생성하는 방법을 제안한다.
본 실시예는 정지 영상 또는 동영상을 인트라 예측 인코딩 시 비정방형 블록 모양에서 효율적인 선형 보간 예측을 수행하여 인트라 예측 블록의 예측 정확도를 높이는 인코딩/디코딩 방법에 관한 것이다.
도 46은 본 발명의 실시예에 따른 화면 분할 구조의 예를 도시한다.
도 46a에 도시된 것과 같이, 인트라 예측을 수행할 때, 하나의 CU 블록을 정방형 모양(square shape)의 PU로 분할하여 예측을 수행한다. 하지만 인코딩 효율을 높이기 위해 도 46b와 같이 인트라 예측을 수행할 때, 하나의 CU 블록을 비정방형 모양(non-square shape)의 PU로 분할하여 예측을 수행한다. 이러한 구조를 QTBT(quard tree binary tree) 구조라고 언급한다. QTBT는 기존 쿼드트리 구조에서 분할 플래그 정보(split flag syntax)를 사용하여 블록을 바이너르 트리로 추가적인 분할을 수행한다.
도 46b에서 보듯이 실선으로 구분된 블록은 쿼드 트리 구조를 나타내며 이는 기존 비디오 인코딩의 구조와 동일하고 점선으로 구분된 블록은 바이너리 트리 구조로 분할된 블록을 의미한다. QTBT에 의하여 영상의 특성에 따라 정방형 모양의 블록뿐만 아니라 다양한 비정방형 모양의 블록으로도 분할 가능하다. 즉, 기존의 인트라 예측은 정방형 모양의 블록에서 PU 단위로 예측을 수행하고 다시 정방형 모양으로 TU을 수행하였으나, QTBT의 인트라 예측은 정방형 모양뿐만 아니라 비정방형 모양의 블록에서 인트라 예측을 수행하고 PU와 TU 구분없이 분할된 블록을 기반으로 예측 및 변환을 수행한다.
실시예 6-1: 주변 참조 샘플을 사용한 우하단 샘플 생성
본 실시예는 비정방형 블록 모양에서 주변의 참조 샘플을 사용하여 우하단 샘플을 생성하는 방법을 설명한다.
도 47은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 우하단 참조 샘플의 생성 방법의 예로서, 도 47a는 우상단 샘플과 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타내고, 도 47b는 현재 인코딩하고자 하는 비정방형 블록의 가로와 세로 길이만큼 먼 모스트 우상단 샘플과 모스트 좌하단 샘플을 사용하여 우하단 샘플을 생성하는 방법을 나타낸다. 각각의 샘플을 사용하여 우하단 샘플을 생성하는 식은 다음과 같다.
수학식 14와 수학식 15는 평균 값을 사용한 우하단 샘플 생성 방법의 예를 나타낸다.
Figure PCTKR2019008004-appb-img-000015
Figure PCTKR2019008004-appb-img-000016
수학식 16과 수학식 17은 거리비를 사용한 우하단 샘플 생성 방법의 예를 나타낸다.
Figure PCTKR2019008004-appb-img-000017
Figure PCTKR2019008004-appb-img-000018
정방형 모양의 블록과는 달리 비정방형 모양의 블록의 경우 가로 길이와 세로 길이가 서로 다르므로 우하단 샘플 생성시 이를 고려하는 것이 효율적이다.
실시예 6-2: 원 영상을 사용한 우하단 참조 샘플 생성
실시예 6-1은 이미 인코딩이 수행되고 복원된 주변 블록의 샘플로부터 우하단 샘플을 생성하는 방법을 설명한 반면, 실시예 6-2는 원 영상에서 우하단 샘플에 해당하는 위치의 값을 우하단 샘플값으로 바로 사용하는 방법을 설명한다.
도 48은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 원 영상에서 우하단 샘플을 사용하는 방법의 예로서, 도 48a는 Nx2N의 비정방형 모양의 블록, 도 48b는 2NxN의 비정방형 모양의 블록의 예를 나타낸다.
도 48에서 현재 인코딩을 하고자하는 블록을 기준으로 회색 영역은 인코딩이 수행되어 복원된 영상 영역이고 흰색 영역은 아직 인코딩이 수행되지 않은 영상 영역이다. 실시예 6-1의 방법과는 달리 제안하는 방법에서는 우하단 샘플 값을 원 영상의 해당 위치의 값으로 바로 사용하는 것이다. 이러한 경우 우하단 샘플값의 정확도는 높지만 복호기로 우하단 샘플값의 정보를 전송해야 하는 단점이 있다.
도 48a의 경우 Nx2N 형태의 비정방형 모양의 블록의 경우 L과 R 블록을 인코딩하기 위해 각각 L'과 R'의 우하단 샘플 값을 원 영상의 해당 위치의 값으로부터 유도한다. 도 48b의 경우 2NxN 형태의 비정방형 모양의 블록의 경우 A와 B 블록을 인코딩하기 위해 각각 A'과 B'의 우하단 샘플 값을 원 영상의 해당 위치로부터 유도한다.
실시예 6-3: 우하측 참조 샘플을 이용한 우측 및 하측 참조 샘플 생성
선형 보간을 수행하기 위하여, 현재 인코딩하고자 하는 블록의 주변 샘플들이 모두 생성되어야 한다. 도 48a와 도 48b에서 도시된 것과 같은 비디오 인코딩의 경우, 래스터 스캔 순서로 인코딩을 진행되므로 현재 인코딩하고자 하는 블록을 기준으로 좌측과 위쪽은 인코딩이 수행되지만, 우측과 아래쪽은 인코딩이 수행되지 않는다. 따라서, 선형 보간을 수행하기 위하여, 인코더(100)는 실시예 6-1과 실시예 6-2를 통해 생성된 우하단 샘플과 주변 샘플을 사용하여 하단 샘플들과 우단 샘플들을 생성해야 한다. 실시예 6-3은 실시예 6-1과 실시예 6-2를 통해 생성된 우하단 샘플과 이미 인코딩/디코딩된 주변 샘플을 사용하여 비정방형 모양의 블록에서 우단 샘플들과 하단 샘플들을 생성하는 방법을 설명한다.
도 49는 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 선형 보간을 통해 우단 샘플들과 하단 샘플들을 생성하는 방법을 나타낸다.
도 49에 도시된 것과 같이, 하단 샘플들은 좌하단 샘플(BL)과 우하단 샘플(BR)의 선형 보간에 의해 생성되고, 우단 샘플들은 우상단 샘플(TR)과 우하단 샘플(BR)의 선형 보간에 의해 생성된다.
실시예 6-4: 우하측 참조 샘플을 이용하지 않는 우측 및 하측 참조 샘플 생성
실시예 6-3에서, 실시예 6-1 또는 실시예 6-2를 사용하여 생성된 우하단 샘플과 이미 인코딩/디코딩된 우상단 샘플과 좌하단 샘플을 사용하여 우단 샘플들과 하단 샘플들을 생성하는 방법이 설명되였다. 실시예 6-4는 우하단 샘플을 사용하지 않고, 현재 인코딩하고자 하는 블록의 상단 샘플들과 좌단 샘플들을 사용하여 우단 샘플들과 하단 샘플들을 생성하는 방법을 설명한다.
도 50은 본 발명의 실시예에 따른 선형 보간 인트라 예측에서 상단 샘플들과 좌단 샘플들을 사용하여 우단 샘플들과 하단 샘플들을 생성하는 방법을 도시한다.
도 50에서, 상단 샘플들 A, B는 해당 우단 샘플들로 복사되고, 좌단 샘플들 C, D, E, F는 해당 하단 샘플들로 각각 복사됨으로써, 우단 샘플들과 하단 샘플들이 생성된다.
실시예 6-1, 실시예 6-2, 실시예 6-3, 실시예 6-4를 사용하여 생성된 우하단 샘플과 우단 샘플들, 그리고 하단 샘플들을 사용하여 선형 보간 인트라 예측을 수행할 수 있다.
마지막으로, 도 14를 참조하여 선형 보간 인트라 예측(LIP)에 대해 정리하여 설명하도록 한다. 선형 보간 인트라 예측은 인트라 예측에 추가적으로(on top of intra prediction) 적용될 수 있다. 인트라 코딩된 CU에 대한 LIP 플래그가 LIP 인트라 예측 모드가 사용되는지 여부를 지시하기 위하여 CU 레벨로 시그널링될 수 있다. 본 발명의 실시예에 따른 인트라 예측 방법은 2개의 예측 타입들로 분류될 수 있는데, (i) 통상적인 인트라 예측 방법(conventional intra prediction method), 및 (ii) LIP 방법이 있다. 통상적인 인트라 예측 방법은 2개의 비-각도성(planar, DC) 예측들을 포함한 35개 및 68개의 모드들을 사용한다. 그러나, LIP 예측 방법은 플래너와 DC를 제외한 33개와 65개의 예측 모드들에 적용될 수 있다.
LIP 인트라 예측 방법은 먼저 우하측(bottom right, BR) 인접 샘플의 강도 값(intensity value)을 수학식 18과 같이 계산한다. 그리고, 인접 샘플들의 하측 행(bottom row) (P b(x,y))와 우측 열(right column) (P r(x,y))의 강도 값을 생성한다. 이 샘플들은 CU의 반대측(opposite side) 상의 레퍼런스들로 사용되고, BR 인접 샘플의 강도 값들과 다른 코너 인접 샘플들(즉, 우상단 인접 샘플, 좌하측 인접 샘플)의 강도 값들로부터 유도된다.
Figure PCTKR2019008004-appb-img-000019
수학식 18에서, R(x,y)는 (x,y) 좌표에서 복원된 인접 샘플의 강도 값을 나타낸고, W와 H는 블록 너비와 높이를 각각 나타낸다.
도 14는 임의의 방향성 예측 모드에 대한 LIP를 사용한 샘플 예측 프로세스를 도시한다. 도 14의 P-C-P'를 연결하는 라인은 예측 방향을 나타낸다. 'A'와 'B'는 정수의 샘플 위치들에 위치한 샘플들을 나타내고, 'P'는 참조 샘플 어레이에서 1/32 샘플 위치에서의 샘플을 나타낸다. 'A'와 'A'는 정수 샘플 위치들에서의 샘플들을 나타내고, 'P'는 반대측 참조 샘플 어레이에서 1/32 샘플 위치에서의 샘플을 나타낸다.
인트라 방향성 예측 모드의 제1 스테이지는 주어진 방향에 기반하여 프로젝트된(projected) 샘플 위치로부터 샘플들을 외측보간(extraploating)하는 과정을 포함한다. 프로젝트된 참조 샘플 위치는 정수 위치에 위치한 가장 가까운 2개의 참조 샘플들을 사용하여 프로젝트된 참조 샘플의 값을 획득하기 위해 이용되는 양방향 선형 보간(bilinear interpolation)을 통해 계산된다.
예측 프로세스의 제2 스테이지는 동일한 샘플 위치에서의 다른 예측된 샘플 값을 생성하는 것과 동일한 접근을 요구한다. 제2 예측된 샘플 값은 선택된 예측 방향을 적용하고 1/32 샘플 위치 정확도로 값을 보간함으로써 참조 샘플 어레이의 반대측 상에 샘플의 위치를 프로젝팅함으로써 획득될 수 있다.
LIP는 최종 보간 프로세스에서 입력 강도들 사이의 정확도에서 차별화된 장점을 갖는다. 특히, 큰 가중치(weight)들이 더 신뢰할 수 있는 인접 위치들에 더 가까운 위치들에 적용된다. 최종 예측 샘플 값은 아래의 수학식 19와 같이 결정될 수 있다.
Figure PCTKR2019008004-appb-img-000020
여기서, C는 최종 예측 샘플 값, P와 P'은 참조 샘플 위치와 반대측 참조 샘플 위치로부터 생성된 예측자(predictor)들이다. W 1과 W 2는 현재 샘플 위치와 참조(반대측 참조) 샘플 위치 사이의 거리에 따라 결정된 가중치 값이다.
도 51는 본 발명이 적용되는 실시예로서 비디오 코딩 시스템의 예를 도시한다.
비디오 코딩 시스템은 소스 디바이스(source device) 및 수신 디바이스(receiving device)를 포함할 수 있다. 소스 디바이스는 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다.
상기 소스 디바이스는 비디오 소스(video source), 인코더(encoding apparatus), 전송부(transmitter)를 포함할 수 있다. 상기 수신 디바이스는 수신부(receiver), 디코더(decoding apparatus) 및 렌더러(renderer)를 포함할 수 있다. 상기 인코더는 비디오/영상 인코더라고 불릴 수 있고, 상기 디코더는 비디오/영상 디코더라고 불릴 수 있다. 송신기는 인코더에 포함될 수 있다. 수신기는 디코더에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코더는 입력 비디오/영상을 인코딩할 수 있다. 인코더는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘레먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신부는 상기 비트스트림을 추출하여 디코더로 전달할 수 있다.
디코더는 인코더의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
도 52는 본 발명이 적용되는 실시예로서 비디오 스트리밍 시스템의 예를 도시한다.
도 52를 참조하면, 본 발명이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 발명이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(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, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 발명의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 발명의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 발명의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 발명의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.
본 발명은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가등이 가능할 것이다.

Claims (14)

  1. 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법에 있어서,
    예측하고자 하는 현재 샘플을 포함하는 현재 블록에 대하여 인트라 예측이 적용됨을 확인하는 단계;
    상기 현재 블록의 인트라 예측 방향에 기반하여 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 위치의 제1 참조 샘플 값을 결정하는 단계;
    상기 현재 샘플의 위치 또는 상기 제1 참조 위치로부터 상기 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치의 제2 참조 샘플 값을 결정하는 단계;
    상기 제1 참조 위치와 상기 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 상기 제2 참조 위치와 상기 현재 샘플 사이의 거리를 제2 거리로서 결정하는 단계; 및
    상기 제1 참조 샘플의 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플의 샘플 값, 및 상기 제2 거리에 기반하여 상기 현재 샘플의 예측 값을 생성하는 단계를 포함하는, 비디오 신호 처리 방법.
  2. 제1항에 있어서,
    상기 제1 거리는,
    상기 현재 샘플의 수평방향 위치와 상기 제1 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제1 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리이고,
    상기 제2 거리는,
    상기 현재 샘플의 수평방향 위치와 상기 제2 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제2 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리인, 비디오 신호 처리 방법.
  3. 제1항에 있어서,
    상기 현재 샘플의 예측 값은,
    상기 제1 참조 샘플 값에 상기 제2 거리를 곱한 값, 및 상기 제2 참조 샘플 값에 상기 제1 거리를 곱한 값에 기반하여 결정되는, 비디오 신호 처리 방법.
  4. 제1항에 있어서,
    상기 현재 샘플의 예측 값은,
    상기 제1 참조 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플 값, 및 상기 제2 거리에 기반한 선형 보간에 의해 결정되는, 비디오 신호 처리 방법.
  5. 제1항에 있어서,
    상기 제1 참조 샘플 값은,
    상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되고,
    상기 제2 참조 샘플 값은,
    상기 현재 블록에 인접한 우측 수직 라인 및 하측 수평 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되는, 비디오 신호 처리 방법.
  6. 제1항에 있어서,
    상기 제1 참조 샘플 값은,
    상기 현재 블록에 인접한 상측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되고,
    상기 제2 참조 샘플의 샘플 값은,
    상기 현재 블록에 인접한 하측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되는, 비디오 신호 처리 방법.
  7. 제1항에 있어서,
    상기 제2 참조 샘플 값은,
    상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들이 사용되고,
    상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들은, 상기 현재 블록의 좌측 또는 우측에 인접한 샘플의 샘플 값으로 결정되는, 비디오 신호 처리 방법.
  8. 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 장치에 있어서,
    상기 비디오 신호를 저장하는 메모리; 및
    상기 메모리와 기능적으로 결합되고, 상기 비디오 신호를 디코딩하기 위한 디코더를 포함하고,
    상기 디코더는,
    예측하고자 하는 현재 샘플을 포함하는 현재 블록에 대하여 인트라 예측이 적용됨을 확인하고,
    상기 현재 블록의 인트라 예측 방향에 기반하여 상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 적어도 하나로부터 제1 참조 샘플 값을 결정하고,
    상기 현재 샘플의 위치 또는 상기 제1 참조 위치로부터 상기 인트라 예측 방향의 반대 방향에 위치한 제2 참조 위치의 제2 참조 샘플 값을 결정하고,
    상기 제1 참조 위치와 상기 현재 샘플 사이의 거리를 제1 거리로서 결정하고, 상기 제2 참조 위치와 상기 현재 샘플 사이의 거리를 제2 거리로서 결정하고,
    상기 제1 참조 샘플의 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플의 샘플 값, 및 상기 제2 거리에 기반하여 상기 현재 샘플의 예측 값을 생성하도록 설정된, 비디오 신호 처리 장치.
  9. 제8항에 있어서,
    상기 제1 거리는,
    상기 현재 샘플의 수평방향 위치와 상기 제1 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제1 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리이고,
    상기 제2 거리는,
    상기 현재 샘플의 수평방향 위치와 상기 제2 참조 위치의 수평 방향 위치 사이의 수평 방향 거리와 상기 현재 샘플의 수직 방향 위치와 상기 제2 참조 위치의 수직 방향 위치 사이의 거리에 기반하여 결정되는 실제 거리인, 비디오 신호 처리 장치.
  10. 제9항에 있어서,
    상기 현재 샘플의 예측 값은,
    상기 제1 참조 샘플 값에 상기 제2 거리를 곱한 값, 및 상기 제2 참조 샘플 값에 상기 제1 거리를 곱한 값에 기반하여 결정되는, 비디오 신호 처리 장치.
  11. 제8항에 있어서,
    상기 현재 샘플의 예측 값은,
    상기 제1 참조 샘플 값, 상기 제1 거리, 상기 제2 참조 샘플 값, 및 상기 제2 거리에 기반한 선형 보간에 의해 결정되는, 비디오 신호 처리 장치.
  12. 제8항에 있어서,
    상기 제1 참조 샘플 값은,
    상기 현재 블록에 인접한 상측 수평 라인 및 좌측 수직 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되고,
    상기 제2 참조 샘플 값은,
    상기 현재 블록에 인접한 우측 수직 라인 및 하측 수평 라인에 위치한 샘플들 중 2 개의 샘플들의 샘플 값들의 선형 보간에 의해 결정되는, 비디오 신호 처리 장치.
  13. 제8항에 있어서,
    상기 제1 참조 샘플 값은,
    상기 현재 블록에 인접한 상측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되고,
    상기 제2 참조 샘플 값은,
    상기 현재 블록에 인접한 하측 라인 중 상기 현재 샘플로부터 상기 예측 방향에 의해 지시되는 지점과 인접한 두 개의 샘플들의 샘플 값들 사이의 선형 보간에 의해 결정되는, 비디오 신호 처리 장치.
  14. 제8항에 있어서,
    상기 제2 참조 샘플 값은,
    상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들이 사용되고,
    상기 현재 블록에 인접한 하측 라인에 위치한 샘플들의 샘플 값들은, 상기 현재 블록의 좌측 또는 우측에 인접한 샘플의 샘플 값으로 결정되는, 비디오 신호 처리 장치.
PCT/KR2019/008004 2018-07-02 2019-07-02 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치 WO2020009400A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/257,169 US11438579B2 (en) 2018-07-02 2019-07-02 Method and apparatus for processing video signal by using intra-prediction

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862692885P 2018-07-02 2018-07-02
US62/692,885 2018-07-02
US201862696784P 2018-07-11 2018-07-11
US62/696,784 2018-07-11

Publications (1)

Publication Number Publication Date
WO2020009400A1 true WO2020009400A1 (ko) 2020-01-09

Family

ID=69060116

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/008004 WO2020009400A1 (ko) 2018-07-02 2019-07-02 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치

Country Status (2)

Country Link
US (1) US11438579B2 (ko)
WO (1) WO2020009400A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
WO2021015581A1 (ko) * 2019-07-23 2021-01-28 한국전자통신연구원 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
US20230283767A1 (en) * 2022-03-04 2023-09-07 Tencent America LLC Compound inter-intra prediction modes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420294B2 (en) * 2011-02-23 2016-08-16 Lg Electronics Inc. Intra-prediction method using filtering, and apparatus using the method
US20170180751A1 (en) * 2012-09-24 2017-06-22 Ntt Docomo, Inc. Video prediction encoding device, video prediction encoding method, video prediction decoding device and video prediction decoding method
KR20180026718A (ko) * 2015-07-28 2018-03-13 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP2018050151A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像符号化装置、画像符号化方法及びコンピュータプログラム
WO2018062702A1 (ko) * 2016-09-30 2018-04-05 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140005257A (ko) * 2011-01-21 2014-01-14 톰슨 라이센싱 기하학적 기반 인트라 예측을 위한 방법 및 장치
KR20230117492A (ko) * 2017-04-11 2023-08-08 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
CN116600127A (zh) * 2017-09-08 2023-08-15 株式会社Kt 视频信号处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420294B2 (en) * 2011-02-23 2016-08-16 Lg Electronics Inc. Intra-prediction method using filtering, and apparatus using the method
US20170180751A1 (en) * 2012-09-24 2017-06-22 Ntt Docomo, Inc. Video prediction encoding device, video prediction encoding method, video prediction decoding device and video prediction decoding method
KR20180026718A (ko) * 2015-07-28 2018-03-13 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP2018050151A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像符号化装置、画像符号化方法及びコンピュータプログラム
WO2018062702A1 (ko) * 2016-09-30 2018-04-05 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치

Also Published As

Publication number Publication date
US20210281833A1 (en) 2021-09-09
US11438579B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
WO2019112394A1 (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
WO2021054796A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2016159631A1 (ko) 비디오 신호의 인코딩/디코딩 방법 및 장치
WO2019194514A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2021206445A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020036390A1 (ko) 영상 신호를 처리하기 위한 방법 및 장치
WO2021060847A1 (ko) 컬러 포맷에 기반하여 분할 모드를 결정하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020184952A1 (ko) 비디오 신호에서 인터 예측을 위한 움직임 벡터 차분 정보를 처리하기 위한 비디오 신호의 처리 방법 및 장치
WO2021101317A1 (ko) 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020013541A1 (ko) 비디오 신호를 처리하기 위한 방법 및 장치
WO2020130680A1 (ko) 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020251278A1 (ko) 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치
WO2019194463A1 (ko) 영상의 처리 방법 및 이를 위한 장치
WO2021096295A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021054798A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020009400A1 (ko) 인트라 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020251269A1 (ko) 영상 디코딩 방법 및 그 장치
WO2020197223A1 (ko) 영상 코딩 시스템에서의 인트라 예측 기반 영상 코딩
WO2019194515A1 (ko) 영상의 처리 방법 및 이를 위한 장치
WO2021167421A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021096293A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021054783A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020251268A1 (ko) 크로마 성분에 대한 영상 디코딩 방법 및 그 장치
WO2021054787A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021006631A1 (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: 19830918

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19830918

Country of ref document: EP

Kind code of ref document: A1