WO2020130617A1 - 비디오 데이터를 처리하기 위한 방법 및 장치 - Google Patents

비디오 데이터를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
WO2020130617A1
WO2020130617A1 PCT/KR2019/017983 KR2019017983W WO2020130617A1 WO 2020130617 A1 WO2020130617 A1 WO 2020130617A1 KR 2019017983 W KR2019017983 W KR 2019017983W WO 2020130617 A1 WO2020130617 A1 WO 2020130617A1
Authority
WO
WIPO (PCT)
Prior art keywords
hmvp
prediction
candidate
candidate list
merge
Prior art date
Application number
PCT/KR2019/017983
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/413,419 priority Critical patent/US11876957B2/en
Publication of WO2020130617A1 publication Critical patent/WO2020130617A1/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present specification relates to a method and apparatus for processing video data, and more particularly, to a method and apparatus for encoding or decoding video data using inter prediction.
  • Compression coding refers to a series of signal processing techniques for transmitting digitized information through a communication line or storing it in a form suitable for a storage medium.
  • Media such as video, image, and audio may be the subject of compression encoding, and a technique for performing compression encoding on an image is referred to as video image compression.
  • Next-generation video content will have the characteristics of high spatial resolution, high frame rate and high dimensionality of scene representation. In order to process such content, it will bring a huge 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 a more efficient prediction technique.
  • HMVP history-based motion vector prediction
  • a video data processing method includes obtaining motion information and bidirectional prediction weight information for inter prediction of a current block, and based on the motion information and the bidirectional prediction weight information Deriving a prediction sample of the current block, and updating an HMVP candidate list based on an HMVP candidate including the motion information and the bidirectional prediction weight information, wherein the motion information includes a first reference picture and And a first reference index and a first motion vector, and a second reference index and a second motion vector associated with the second reference picture, wherein the bi-directional prediction weight information is included in a first prediction sample from the first reference picture. It may be used to derive a first weight value applied and a second weight value applied to a second prediction sample from the second reference picture.
  • updating the HMVP candidate list may include updating the HMVP candidate list based on whether the same candidate as the HMVP candidate exists in the HMVP candidate list.
  • updating the HMVP candidate list includes initializing an index of the HMVP candidate list, determining whether the index is smaller than the number of candidates in the HMVP candidate list, and the index being the Determining whether the candidate corresponding to the index and the HMVP candidate are the same in the HMVP candidate list if the number of candidates in the HMVP candidate list is less; and if the candidate corresponding to the index and the HMVP candidate are the same, the Performing pruning to remove the candidate corresponding to the index and adding the HMVP candidate to the HMVP candidate list, and if the candidate corresponding to the index and the HMVP candidate are different, the index of the HMVP candidate list And repeating an operation of determining whether the increased index is smaller than the number of candidates and whether the HMVP candidate and the candidate corresponding to the increased index are the same.
  • the step of determining whether the candidate corresponding to the index and the HMVP candidate are the same may include a prediction direction, a reference index, a motion vector, and a bidirectional prediction weight index of the candidate corresponding to the index and the HMVP candidate. And determining whether they are identical to each other.
  • the step of obtaining the motion information and the bidirectional prediction weight information includes constructing a merge candidate list, and determining a merge candidate indicated by a merge index in the merge candidate list, wherein
  • the step of constructing a merge candidate list includes adding spatial merge candidates and temporal merge candidates of the current block to the merge candidate list, and if the number of merge candidates included in the merge candidate list is less than a preset candidate number And modifying the merge candidate list using the HMVP candidate list.
  • the step of changing the merge candidate list comprises: determining whether the HMVP prediction candidate included in the HMVP candidate list is the same as the merge candidate included in the merge candidate list, and the HMVP candidate list. When the included HMVP prediction candidate is different from the merge candidate included in the merge candidate list, adding the HMVP prediction candidate to the merge candidate list may be included.
  • adding the spatial merge candidate and the temporal merge candidate to the merge candidate list may include performing a search for the temporal merge candidate after searching for the spatial merge candidate.
  • a video data processing apparatus includes a memory that stores the video data, and a processor coupled with the memory, wherein the processor moves for inter prediction of a current block Information and bidirectional prediction weight information are obtained, a prediction sample of the current block is derived based on the motion information and the bidirectional prediction weight information, and HMVP is based on an HMVP candidate including the motion information and the bidirectional prediction weight information It is set to update a candidate list, and the motion information includes: a first reference index and a first motion vector associated with a first reference picture, and a second reference index and a second associated with a second reference picture different from the first reference picture.
  • a motion vector, and the bidirectional prediction weight information includes a first weight value applied to a first prediction sample from the first reference picture and a second weight value applied to a second prediction sample from the second reference picture. It can be used to induce.
  • Another embodiment of the present specification provides a non-transitory computer-executable component storing computer executable components configured to execute on one or more processors of a computing device, the computer executable components comprising , Obtaining motion information and bidirectional prediction weight information for inter prediction of the current block, deriving a prediction sample of the current block based on the motion information and the bidirectional prediction weight information, and generating the motion information and
  • the HMVP candidate list is set to update the HMVP candidate list based on the HMVP candidate including the bidirectional prediction weight information, and the motion information includes a first reference index and a first motion vector associated with the first reference picture, and the first reference picture.
  • a second reference index and a second motion vector associated with different second reference pictures the bidirectional prediction weight information, a first weight value and a second reference applied to a first prediction sample from the first reference picture It can be used to derive a second weight value applied to the second predictive sample from the picture.
  • information on generalized bi-prediction (GBi) together with motion information may be performed by constructing and updating a history-based motion vector prediction (HMVP) list.
  • HMVP history-based motion vector prediction
  • FIG. 1 shows an example of a video coding system according to an embodiment of the present specification.
  • FIG. 2 is a schematic block diagram of an encoding apparatus in which encoding of a video/image signal is performed according to an embodiment of the present specification.
  • FIG. 3 is a schematic block diagram of a decoding apparatus for decoding a video signal according to an embodiment of the present disclosure.
  • FIG. 4 is a structural diagram of a content streaming system according to an embodiment of the present specification.
  • FIG 5 shows an example of multi-type tree splitting modes according to an embodiment of the present specification.
  • FIG. 6 shows an example of a flowchart for video/picture encoding based on inter prediction according to an embodiment of the present specification.
  • FIG. 7 shows an example of a block diagram of an inter prediction unit in an encoding apparatus according to an embodiment of the present specification.
  • FIG. 8 shows an example of a flowchart for video/video decoding based on inter prediction according to an embodiment of the present specification.
  • FIG 9 shows an example of a block diagram of an inter prediction unit in a decoding apparatus according to an embodiment of the present specification.
  • FIG 10 illustrates an example of spatial neighboring blocks for inter prediction according to an embodiment of the present specification.
  • FIG. 11 shows an example of a flowchart for constructing a merge candidate list according to an embodiment of the present specification.
  • FIG. 12 shows an example of a flowchart for constructing a motion vector predictor candidate list according to an embodiment of the present specification.
  • FIG. 13 shows an example of a decoding flowchart to which the HMVP method according to an embodiment of the present specification is applied.
  • 14A and 14B show an example of a method for updating a table in the HMVP method according to an embodiment of the present specification.
  • 15A and 15B show an example of a method for updating an HMVP buffer according to an embodiment of the present specification.
  • FIG. 16 shows an example of a flowchart for updating an HMVP buffer according to an embodiment of the present specification.
  • 17A to 17C show an example of a method for updating an HMVP buffer in consideration of generalized bi-prediction (GBi) information according to an embodiment of the present specification.
  • GBi generalized bi-prediction
  • 18A and 18B show examples of a flowchart for constructing a merge candidate list in consideration of HMVP candidates according to an embodiment of the present specification.
  • 19A and 19B show an example of a flow chart for constructing a prediction candidate list in consideration of HMVP candidates according to an embodiment of the present specification.
  • FIG. 20 illustrates an example of a flowchart for constructing a merge candidate list in consideration of HMVP candidates using inherited GBi information according to an embodiment of the present specification.
  • FIG. 21 shows an example of a flowchart for processing video data according to an embodiment of the present specification.
  • FIG. 22 shows an example of a block diagram of an apparatus for processing video data according to an embodiment of the present specification.
  • the term'processing unit' means a unit in which encoding/decoding processing processes such as prediction, transformation, and/or quantization are performed.
  • the processing unit may be interpreted as meaning including a unit for a luminance component and a unit for a chroma component.
  • the processing unit may correspond to a block, a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
  • the processing unit may be interpreted as a unit for a luminance component or a unit for a color difference component.
  • the processing unit may correspond to a coding tree block (CTB), a coding block (CB), a PU or a transform block (TB) for the luminance component.
  • the processing unit may correspond to CTB, CB, PU or TB for the color difference component.
  • the present invention is not limited thereto, and the processing unit may be interpreted to include a unit for a luminance component and a unit for a color difference component.
  • processing unit is not necessarily limited to a square block, and may be configured in a polygonal shape having three or more vertices.
  • a pixel, a pixel, or a coefficient transformation coefficient or transformation coefficient that has undergone first-order transformation
  • a sample a pixel value, a pixel value, or a coefficient (a transform coefficient or a transform coefficient that has undergone first-order transformation).
  • FIG. 1 shows an example of a video coding system according to an embodiment of the present specification.
  • the video coding system can include a source device 10 and a receiving device 20.
  • the source device 10 may transmit the encoded video/video information or data to the receiving device 20 through a digital storage medium or a network in a file or streaming form.
  • the source device 10 may include a video source 11, an encoding device 12, and a transmitter 13.
  • the receiving device 20 may include a receiver 21, a decoding device 22 and a renderer 23.
  • the encoding device 10 may be called a video/video encoding device, and the decoding device 20 may be called a video/video decoding device.
  • the transmitter 13 may be included in the encoding device 12.
  • the receiver 21 may be included in the decoding device 22.
  • the renderer 23 may include a display unit, and the display unit may be configured as a separate device or an external component.
  • the video source 11 may acquire a video/image through a capture, synthesis, or generation process of the video/image.
  • the video source may include a video/image capture device and/or a video/image generation device.
  • the video/image capture device may include, for example, one or more cameras, a video/image archive including previously captured video/images, and the like.
  • the video/image generating device may include, for example, a computer, a tablet, and a smartphone, and may (electronically) generate a video/image.
  • a virtual video/image may be generated through a computer or the like, and in this case, a video/image capture process may be replaced by a process of generating related data.
  • the encoding device 12 may encode an input video/image.
  • the encoding apparatus 12 may perform a series of procedures such as prediction, transformation, and quantization for compression and coding efficiency.
  • the encoded data (encoded video/image information) may be output in the form of a bitstream.
  • the transmitting unit 13 may transmit the encoded video/video information or data output in the form of a bitstream to a receiving unit of a receiving device through a digital storage medium or a network in a file or streaming format.
  • Digital storage media include universal serial bus (USB), secure digital (SD), compact disk (CD), digital video disk (DVD), bluray, hard disk drive (HDD), and solid state drive (SSD). It may include various storage media.
  • the transmission unit 13 may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast/communication network.
  • the receiver 21 may extract the bitstream and transmit it to the decoding device 22.
  • the decoding apparatus 22 may decode a video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding apparatus 12.
  • the renderer 23 may render the decoded video/image.
  • the rendered video/image may be displayed through the display unit.
  • FIG. 2 is a schematic block diagram of an encoding apparatus in which encoding of a video/image signal is performed according to an embodiment of the present specification.
  • the encoding device 100 of FIG. 2 may correspond to the encoding device 12 of FIG. 1.
  • the encoding apparatus 100 includes an image segmentation unit 110, a subtraction unit 115, a conversion unit 120, a quantization unit 130, an inverse quantization unit 140, and an inverse conversion unit 150, It may be configured to include an adder 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • the inter prediction unit 180 and the intra prediction unit 185 may be collectively called a prediction unit. That is, the prediction unit may include an inter prediction unit 180 and an intra prediction unit 185.
  • the transform unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transform unit 150 may be included in a residual processing unit.
  • the residual processing unit may further include a subtraction unit 115.
  • the above-described image segmentation unit 110, subtraction unit 115, conversion unit 120, quantization unit 130, inverse quantization unit 140, inverse conversion unit 150, addition unit 155, filtering unit 160 ), the inter prediction unit 180, the intra prediction unit 185 and the entropy encoding unit 190 may be configured by one hardware component (for example, an encoder or processor) according to an embodiment.
  • the decoded picture buffer 170 may be configured by one hardware component (eg, a memory or digital storage medium) according to an embodiment.
  • the memory 170 may include a decoded picture buffer (DPB) 175 and may be configured by a digital storage medium.
  • DPB decoded picture buffer
  • the image division unit 110 may divide the input image (or picture, frame) input to the encoding apparatus 100 into one or more processing units.
  • the 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.
  • a quad tree structure may be applied first, and a binary tree structure may be applied later.
  • a binary tree structure may be applied first.
  • the coding procedure according to the present specification may be performed based on the final coding unit that is no longer split.
  • the maximum coding unit may be directly used as a final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than optimal, if necessary.
  • the coding unit of the size of can be used as the final coding unit.
  • the coding procedure may include procedures such as prediction, transformation, and reconstruction, which will be described later.
  • the processing unit may further include a prediction unit (PU) or a transformation unit (TU).
  • the prediction unit and transform unit may be partitioned or partitioned from the above-described final coding unit, respectively.
  • the prediction unit may be a unit of sample prediction
  • the transformation unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.
  • the unit may be used interchangeably with terms such as a block or area depending on the case.
  • the MxN block may represent samples of M columns and N rows or a set of transform coefficients.
  • the sample may generally represent a pixel or a pixel value, and may indicate only a pixel/pixel value of a luma component or only a pixel/pixel value of a saturation component.
  • the sample may be used as a term for one picture (or image) corresponding to a pixel or pel.
  • the encoding apparatus 100 subtracts a prediction signal (a predicted block, a prediction sample array) output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal (original block, original sample array)
  • a signal (remaining block, residual sample array) may be generated, and the generated residual signal is transmitted to the converter 120.
  • a unit that subtracts a prediction signal (a prediction block, a prediction sample array) from an input video signal (original block, original sample array) in the encoding apparatus 100 may be referred to as a subtraction unit 115.
  • the prediction unit may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block.
  • the prediction unit may determine whether intra prediction is applied to the current block or CU or inter prediction is applied. As described later in the description of each prediction mode, the prediction unit may generate various information about prediction, such as prediction mode information, and transmit it to the entropy encoding unit 190.
  • the prediction information may be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
  • the intra prediction unit 185 may predict the current block by referring to samples in the current picture.
  • the referenced samples may be located in the neighborhood of the current block or may be located apart depending on a prediction mode.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the non-directional mode may include, for example, a DC mode and a planar mode (planar mode).
  • the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of detail of the prediction direction. However, this is an example, and more or less directional prediction modes may be used depending on the setting.
  • the intra prediction unit 185 may determine a prediction mode applied to the current block by using a prediction mode applied to neighboring blocks.
  • the inter prediction unit 180 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on the reference picture.
  • motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between a neighboring block and a current block.
  • the motion information may include a motion vector and a reference picture index.
  • the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
  • the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture.
  • the reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different.
  • the temporal neighboring block may be called a name such as a collocated reference block or a CUCU, and a reference picture including a temporal neighboring block may also be called a collocated picture (colPic).
  • the inter prediction unit 180 constructs a motion information candidate list based on neighboring blocks, and generates information indicating which candidates are used to derive the motion vector and/or reference picture index of the current block. can do. Inter prediction may be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter prediction unit 180 may use motion information of neighboring blocks as motion information of the current block.
  • the residual signal may not be transmitted.
  • the motion vector of the current block is obtained by using the motion vector of the neighboring block as a motion vector predictor and signaling a motion vector difference. I can order.
  • the prediction signal generated by the inter prediction unit 180 or the intra prediction unit 185 may be used to generate a reconstructed signal or may be used to generate 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 refers to a transformation obtained from this graph when it is said to graphically represent relationship information between pixels.
  • CNT means a transform obtained by generating a prediction signal using all previously reconstructed pixels and based on it.
  • the transform process may be applied to pixel blocks having the same size of a square, or may be applied to blocks of variable sizes other than squares.
  • the quantization unit 130 quantizes the transform coefficients and transmits them to the entropy encoding unit 190, and the entropy encoding unit 190 encodes the quantized signal (information about quantized transform coefficients) and outputs it as a bitstream. have. Information about the quantized transform coefficients may be called residual information.
  • the quantization unit 130 may rearrange block-type quantized transform coefficients into a one-dimensional vector form based on a coefficient scan order, and the quantized transform based on the one-dimensional vector form quantized transform coefficients Information about coefficients may be generated.
  • the entropy encoding unit 190 may perform various encoding methods such as exponential Golomb (CAVLC), context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
  • the entropy encoding unit 190 may encode information necessary for video/image reconstruction (eg, values of syntax elements, etc.) together with the quantized transform coefficients together or separately.
  • the encoded information (eg, video/video information) may be transmitted or stored in the unit of a network abstraction layer (NAL) unit in the form of a bitstream.
  • NAL network abstraction layer
  • the bitstream can be transmitted over a network or stored on a digital storage medium.
  • the network may include a broadcasting network and/or a communication network
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD.
  • the signal output from the entropy encoding unit 190 may be configured as an internal/external element of the encoding apparatus 100 by a transmitting unit (not shown) and/or a storing unit (not shown) for storing, or the transmitting unit It 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 signal may be reconstructed by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit 140 and the inverse transformation unit 150 in the loop.
  • the adder 155 adds the reconstructed residual signal to the predicted signal output from the inter predictor 180 or the intra predictor 185, so that the reconstructed signal (restored picture, reconstructed block, reconstructed sample array) Can be generated. If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as a reconstructed block.
  • the adding unit 155 may be called a restoration unit or a restoration block generation unit.
  • the generated reconstructed signal may be used for intra prediction of a next processing target block in a current picture, or may be used for inter prediction of a next picture through filtering as described below.
  • the filtering unit 160 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
  • the filtering unit 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and may transmit the modified reconstructed picture to the decoded picture buffer 170.
  • Various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
  • the filtering unit 160 may generate various pieces of information regarding filtering as described later in the description of each filtering method and transmit them to the entropy encoding unit 190.
  • the filtering information may be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
  • the modified reconstructed picture transmitted to the DPB 175 may be used as a reference picture in the inter prediction unit 180.
  • the inter prediction is applied through the encoding apparatus 100, prediction mismatches in the encoding apparatus 100 and the decoding apparatus 200 may be avoided, and encoding efficiency may be improved.
  • the decoded picture buffer 170 may store the modified reconstructed picture for use as a reference picture in the inter prediction unit 180.
  • FIG. 3 is a schematic block diagram of a decoding apparatus for decoding a video signal according to an embodiment of the present disclosure.
  • the decoding device 200 of FIG. 3 may correspond to the decoding device 22 of FIG. 1.
  • the decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse conversion unit 230, an addition unit 235, a filtering unit 240, a memory 250, and an inter It may be configured to include a prediction unit 260 and the intra prediction unit 265.
  • the inter prediction unit 260 and the intra prediction unit 265 may be collectively called a prediction unit. That is, the prediction unit may include an inter prediction unit 180 and an intra prediction unit 185.
  • the inverse quantization unit 220 and the inverse conversion unit 230 may be collectively called a residual processing unit. That is, the residual processing unit may include an inverse quantization unit 220 and an inverse conversion unit 230.
  • the entropy decoding unit 210, the inverse quantization unit 220, the inverse transform unit 230, the addition unit 235, the filtering unit 240, the inter prediction unit 260, and the intra prediction unit 265 described above are exemplary embodiments. It may be configured by one hardware component (for example, decoder or processor). Also, the decoded picture buffer 250 may be implemented by one hardware component (eg, a memory or digital storage medium) according to an embodiment.
  • the decoding apparatus 200 may restore an image in response to a process in which the video/image information is processed by the encoding apparatus 100 of FIG. 2.
  • the decoding apparatus 200 may perform decoding using a processing unit applied by the encoding apparatus 100.
  • the processing unit may be, for example, a coding unit, and the coding unit may be divided according to a quad tree structure and/or a binary tree structure from a coding tree unit or a largest coding unit. Then, the decoded video signal decoded and output through the decoding apparatus 200 may be reproduced through the reproduction apparatus.
  • the decoding apparatus 200 may receive the signal output from the encoding apparatus 100 of FIG. 2 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 parse the bitstream to derive information (eg, video/image information) necessary for image reconstruction (or picture reconstruction).
  • the entropy decoding unit 210 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and quantizes a value of a syntax element necessary for image reconstruction and a transform coefficient for residual.
  • the CABAC entropy decoding method receives bins corresponding to each syntax element in a bitstream, and decodes syntax information of the target syntax element and surrounding and decoded blocks, or the symbol/bin decoded in the previous step.
  • the context model is determined using the information of, and the probability of occurrence of the bin is predicted according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. have.
  • the CABAC entropy decoding method may update the context model using the decoded symbol/bin information for the next symbol/bin context model after determining the context model.
  • a prediction unit inter prediction unit 260 and intra prediction unit 265
  • the entropy decoding unit 210 performs entropy decoding.
  • the dual value that is, quantized transform coefficients and related parameter information, may be input to the inverse quantization unit 220.
  • information related to filtering among information decoded by the entropy decoding unit 210 may be provided to the filtering unit 240.
  • a receiving unit (not shown) receiving a signal output from the encoding apparatus 100 may be further configured as an internal/external element of the decoding apparatus 200, or the receiving unit may be a component of the entropy decoding unit 210. It might be.
  • the inverse quantization unit 220 may inverse quantize the quantized transform coefficients to output transform coefficients.
  • the inverse quantization unit 220 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, reordering may be performed based on the coefficient scan order performed by the encoding apparatus 100.
  • the inverse quantization unit 220 may perform inverse quantization on the quantized transform coefficients by using a quantization parameter (for example, quantization step size information), and obtain transform coefficients.
  • a quantization parameter for example, quantization step size information
  • the inverse transform unit 230 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
  • the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on information about prediction output from the entropy decoding unit 210, and may determine a specific intra/inter prediction mode.
  • the intra prediction unit 265 may predict the current block by referring to samples in the current picture.
  • the referenced samples may be located in the neighborhood of the current block or spaced apart according to the prediction mode.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the intra prediction unit 265 may determine a prediction mode applied to the current block using a prediction mode applied to neighboring blocks.
  • the inter prediction unit 260 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on the reference picture.
  • motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between a neighboring block and a current block.
  • the motion information may include a motion vector and a reference picture index.
  • the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
  • the neighboring block may include a spatial neighboring block existing 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 neighboring blocks, and derive a motion vector and/or reference picture index of the current block based on the received candidate selection information.
  • Inter prediction may be performed based on various prediction modes, and information on prediction may include information indicating a mode of inter prediction for a current block.
  • the adding unit 235 adds the obtained residual signal to the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 260 or the intra prediction unit 265, thereby restoring a signal (restored picture, reconstructed block). , A reconstructed sample array). If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as a reconstructed block.
  • the adding unit 235 may be called a restoration unit or a restoration block generation unit.
  • the generated reconstructed signal may be used for intra prediction of a next processing target block in a current picture, or may be used for inter prediction of a next picture through filtering as described below.
  • the filtering unit 240 may improve subjective/objective image quality by applying filtering to the reconstructed signal. For example, the filtering unit 240 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and may transmit the modified reconstructed picture to the decoded picture buffer 250.
  • Various filtering methods may include, for example, deblocking filtering, sample adaptive offset (SAO), adaptive loop filter (ALF), bilateral filter, and the like.
  • the modified reconstructed picture transmitted to the DPB 175 may be used as a reference picture by the inter prediction unit 260.
  • the embodiments described in the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoding device 100 are respectively the filtering unit 240 and the inter prediction unit 260 of the decoding device.
  • the intra prediction unit 265 may be applied to the same or corresponding.
  • FIG. 4 is a structural diagram of a content streaming system according to an embodiment of the present specification.
  • the content streaming system to which the present specification is applied may largely include an encoding server 410, a streaming server 420, a web server 430, a media storage 440, a user device 450, and a multimedia input device 460. have.
  • the encoding server 410 serves to compress the content input from multimedia input devices such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmit it to the streaming server 420.
  • multimedia input devices 460 such as a smartphone, camera, and camcorder directly generate a bitstream
  • the encoding server 410 may be omitted.
  • the bitstream may be generated by an encoding method or a bitstream generation method to which the present specification is applied, and the streaming server 420 may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
  • the streaming server 420 transmits multimedia data to the user device 450 based on a user request through the web server 430, and the web server 430 serves as an intermediary to inform the user of the service.
  • the web server 430 delivers it to the streaming server 420, and the streaming server 420 transmits multimedia data to the user.
  • the content streaming system may include a separate control server, in which case the control server serves to control commands/responses between devices in the content streaming system.
  • Streaming server 420 may receive content from media storage 440 and/or encoding server 410. For example, when content is received from the encoding server 410, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server 420 may store the bitstream for a predetermined time.
  • Examples of the user device 450 include a mobile phone, a smart phone, a laptop computer, a terminal for digital broadcasting, a personal digital assistants (PDA), a portable multimedia player (PMP), navigation, and a slate PC. ), tablet PC, ultrabook, wearable device (e.g., smartwatch, smart glass, head mounted display (HMD), digital TV) , Desktop computers, digital signage, and the like.
  • PDA personal digital assistants
  • PMP portable multimedia player
  • slate PC slate PC
  • tablet PC ultrabook
  • wearable device e.g., smartwatch, smart glass, head mounted display (HMD), digital TV
  • Desktop computers digital signage, and the like.
  • Each server in the content streaming system can be operated as a distributed server, and in this case, data received from each server can be distributed.
  • the video/image coding method according to this document may be performed based on various detailed technologies, and the detailed description of each detailed technology is as follows.
  • the techniques described below may be related to related procedures such as prediction, residual processing (transformation, quantization, etc.), syntax element coding, filtering, partitioning/segmentation, etc. in the video/image encoding/decoding procedure described above and/or described below. It is apparent to those skilled in the art.
  • Pictures 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 two corresponding blocks of chroma samples and an NxN block of luma samples.
  • FIG 5 shows an example of multi-type tree splitting modes according to an embodiment of the present specification.
  • the CTU may be divided into CUs based on a quad-tree (QT) structure.
  • the quadtree structure may be referred to as a quaternary tree structure. This is to reflect various local characteristics.
  • the CTU can be divided based on multi-type tree structure division including a binary tree (BT) and a ternary tree (TT) as well as a quad tree.
  • BT binary tree
  • TT ternary tree
  • the QTBT structure may include a quadtree and binary tree based split structure
  • the QTBTTT may include a quadtree, binary tree and ternary tree based split structure.
  • the QTBT structure may include a quadtree, binary tree, and ternary tree based splitting structure.
  • the CU can have a square or rectangular shape.
  • the CTU can be first divided into a quadtree structure. Thereafter, leaf nodes having a quadtree structure may be further divided by a multi-type tree structure. For example, as shown in FIG. 6, in the multi-type tree structure, four division types may be schematically included.
  • the four split types shown in FIG. 6 are vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), horizontal ternary splitting (horizontal ternary) splitting, SPLIT_TT_HOR).
  • Leaf nodes of a multi-type tree structure may be called CUs. These CUs can be used for prediction and transformation procedures.
  • CU, PU, and TU may have the same block size. However, when 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.
  • the decoded portion of the current picture or other pictures in which the current processing unit is included can 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 (slice) used may be referred to as a predictive picture or a P-picture (P-slice), a picture (slice) using two or more motion vectors and reference indices as a pair prediction picture or a B-picture (B-slice).
  • Inter-prediction refers to a prediction method that derives a sample value of a current block based on a data element (eg, a sample value or a motion vector) of a picture 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 another reconstructed picture other than the current picture.
  • a data element eg, a sample value or a motion vector
  • inter prediction or inter-screen prediction
  • the prediction unit of the encoding apparatus 100 and the decoding apparatus 200 may derive a prediction sample by performing inter prediction on a block basis.
  • Inter-prediction may mean prediction derived in a manner dependent on data elements (eg, sample values or motion information) of picture(s) other than the current picture.
  • data elements eg, sample values or motion information
  • a predicted block predicted sample array for the current block is derived. can do.
  • motion information of the current block may be predicted in block, subblock, or sample units based on the correlation of 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 type (L0 prediction, L1 prediction, or 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 reference block and the reference picture including the temporal neighboring block may be the same or different.
  • a temporal neighboring block may be referred to as a collocated reference block or a colCU, and a reference picture including a temporal neighboring block may be referred to as a collocated picture (colPic). .
  • a motion information candidate list may be constructed based on neighboring blocks of the current block, and a flag indicating which candidate is selected (used) to derive a motion vector and/or reference picture index of the current block Alternatively, index information may be signaled.
  • Inter prediction may be performed based on various prediction modes. For example, in the skip mode and the merge mode, motion information of a current block may be identical to motion information of a selected neighboring block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of a motion vector prediction (MVP) mode, a motion vector of a selected neighboring block is used as a motion vector predictor, and a motion vector difference is decoded from the encoding apparatus 100. It may be signaled to the device 200.
  • MVP motion vector prediction
  • the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
  • the video/video encoding procedure based on inter prediction and the inter prediction unit 180 in the encoding apparatus 100 may be as illustrated in FIGS. 6 and 7.
  • FIG. 6 shows an example of a flowchart for video/video encoding based on inter prediction according to an embodiment of the present disclosure
  • FIG. 7 shows an example of a block diagram of an inter prediction unit in an encoding apparatus according to an embodiment of the present specification .
  • the encoding apparatus 100 performs inter prediction on the current block.
  • the current block refers to any block processed by the encoding device 100 or the decoding device 200.
  • the encoding apparatus 100 may derive inter prediction mode and motion information of the current block, and generate prediction samples of the current block based on the inter prediction mode and motion information.
  • the procedure for determining the inter prediction mode, deriving motion information, and generating prediction samples may be performed simultaneously, and one procedure may be performed before the other procedure.
  • the inter prediction unit 180 of the encoding apparatus 100 may include a prediction mode determination unit 181, a motion information derivation unit 182, and a prediction sample derivation unit 183.
  • the prediction mode determination unit 181 determines the prediction mode for the current block
  • the motion information derivation unit 182 derives motion information of the current block
  • the prediction sample derivation unit 183 derives motion samples of the current block can do.
  • the inter prediction unit 180 of the encoding apparatus 100 searches for a block similar to the current block in a certain area (search area) of reference pictures through motion estimation, and the difference from the current block It is possible to derive a reference block with a minimum or below a certain criterion. Based on the derived reference picture and information about the reference block, the inter prediction unit 180 derives a reference picture index indicating a reference picture in which the reference block is located, and a motion vector based on the position difference between the reference block and the current block Can be derived.
  • the encoding apparatus 100 may determine a prediction mode (eg, skip mode, merge mode, or MVP mode) to be applied to the current block among various prediction modes.
  • the encoding apparatus 100 may compare a rate-distortion cost (RD cost) for various prediction modes and determine an optimal prediction mode for the current block.
  • a prediction mode eg, skip mode, merge mode, or MVP mode
  • RD cost rate-distortion cost
  • the encoding apparatus 100 configures a merge candidate list, which will be described later, and the current block among reference blocks indicated by the merge candidates included in the merge candidate list. It is possible to derive a reference block with a difference of less than or equal to a certain criterion. In this case (when a skip mode or a merge mode is applied), a merge candidate associated with the derived reference block is selected, and merge index information indicating the selected merge candidate may be generated and signaled to the decoding apparatus.
  • the inter prediction unit 180 may derive motion information of the current block using motion information of the selected merge candidate.
  • the encoding apparatus 100 configures the (A)MVP candidate list, which will be described later, and (A) the motion vector predictor (MVP) candidates included in the MVP candidate list.
  • the motion vector of the selected MVP candidate can be used as the MVP of the current block.
  • a motion vector indicating a reference block derived by motion estimation as described above may be used as a motion vector of the current block, and the motion of the current block among MVP candidates The motion vector having the smallest difference from the vector may be the selected MVP candidate.
  • a motion vector difference which is a difference obtained by subtracting a motion vector of a selected MVP candidate from a motion vector of the current block, may be derived.
  • information about the MVD may be signaled to the decoding device 200.
  • the value of the reference picture index may consist of reference picture index information and be separately transmitted to the decoding apparatus 200.
  • the encoding apparatus 100 may derive residual samples based on the prediction samples.
  • the encoding apparatus 100 may derive residual samples through comparison of original samples and prediction samples of the current block.
  • the encoding apparatus 100 encodes video information including prediction information and residual information.
  • the encoding apparatus 100 may output encoded image information in the form of a bitstream.
  • the prediction information may include prediction mode information (eg, skip flag, merge flag, or mode index) and motion information based on information related to the prediction procedure.
  • the motion information may include candidate selection information (eg, merge index, MVP flag, or MVP index) that is information for deriving a motion vector.
  • the motion information may include information on the MVD and/or reference picture index information.
  • the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-directional (Bi) prediction is applied.
  • the residual information is information about residual samples.
  • the residual information may include information about quantized transform coefficients for residual samples.
  • the output bitstream may be transmitted to the decoding device 200 by being stored in a (digital) storage medium, or may be delivered to the decoding device 200 through a network.
  • the encoding apparatus 100 may store the reconstructed picture including the reconstructed samples and the reconstructed block in the memory based on the reference samples and the residual samples, and utilize the reconstructed picture as a reference picture for inter prediction. . Procedures such as in-loop filtering may be further applied to the reconstructed picture.
  • the video/video decoding procedure based on inter prediction and the inter prediction unit 260 in the decoding apparatus 200 may be schematically illustrated in FIGS. 8 and 9.
  • FIG. 8 shows an example of a flowchart for video/video decoding based on inter prediction according to an embodiment of the present disclosure
  • FIG. 9 shows an example of a block diagram of an inter prediction unit in a decoding apparatus according to an embodiment of the present specification .
  • the decoding apparatus 200 may perform an operation corresponding to an operation performed by the encoding apparatus 100.
  • the decoding apparatus 200 may perform prediction on the current block and derive prediction samples based on the received prediction information.
  • the decoding apparatus 200 may determine a prediction mode for the current block based on the received prediction information.
  • the decoding apparatus 200 may determine an inter prediction mode to be applied to the current block based on the prediction mode information of the prediction information.
  • the decoding apparatus 200 may determine whether a merge mode is applied to the current block or (A)MVP mode is applied based on the merge flag. Also, the decoding apparatus 200 may select one of various inter prediction mode candidates based on the mode index.
  • the inter prediction mode candidates may include skip mode, merge mode, and/or (A)MVP mode, or various inter prediction modes described below.
  • the decoding apparatus 200 derives motion information of the current block based on the determined inter prediction mode. For example, when the skip mode or the merge mode is applied to the current block, the decoding apparatus 200 may configure a merge candidate list, which will be described later, and select one of the merge candidates included in the merge candidate list. The selection of merge candidates may be performed based on the selection information (eg, merge index) described above. The decoding apparatus 200 may derive motion information of a current block using motion information of a selected merge candidate. Motion information of the selected merge candidate may be used as motion information of the current block.
  • the selection information eg, merge index
  • the decoding apparatus 200 configures the (A)MVP candidate list, which will be described later, and (A) the selected MVP candidate among the MVP candidates included in the MVP candidate list.
  • the motion vector can be used as the motion vector of the current block.
  • the selection of MVP candidates may be performed based on the selection information (MVP flag or MVP index) described above.
  • the decoding apparatus 200 may derive the MVD of the current block based on the information about the MVD, and derive the motion vector of the current block based on the selected MVP's motion vector and MVD can do.
  • the decoding apparatus 200 may derive the reference picture index of the current block based on the reference picture index information.
  • the picture indicated by the reference picture index in the reference picture list for the current block may be derived as a reference picture referenced for inter prediction of the current block.
  • motion information of a current block may be derived without configuring a candidate list, and in this case, motion information of a current block may be derived according to a procedure disclosed in a prediction mode described below.
  • the candidate list configuration as described above may be omitted.
  • the decoding apparatus 200 may generate prediction samples for the current block based on the motion information of the current block.
  • the decoding apparatus 200 derives a reference picture based on the reference picture index of the current block, and derives prediction samples of the current block using samples of the reference block indicated by the motion vector of the current block on the reference picture.
  • a prediction sample filtering procedure for all or part of the prediction samples of the current block may be further performed, depending on the case.
  • the inter prediction unit 260 of the decoding apparatus 200 may include a prediction mode determination unit 261, a motion information derivation unit 262, and a prediction sample derivation unit 263.
  • the prediction mode determination unit 181 determines a prediction mode for the current block based on the received prediction mode information
  • the motion information derivation unit 182 determines motion information (motion vectors and motion vectors) of the current block based on the received motion information.
  • the prediction sample deriving unit 183 may derive prediction samples of the current block.
  • the decoding apparatus 200 In operation S840, the decoding apparatus 200 generates residual samples for the current block based on the received residual information. In operation S850, the decoding apparatus 200 may generate reconstructed samples for the current block based on the predicted samples and residual samples, and generate a reconstructed picture based on the reconstructed samples. Thereafter, an in-loop filtering procedure may be further applied to the reconstructed picture.
  • the inter prediction procedure may include a step of determining an inter prediction mode, a step of deriving motion information according to the determined prediction mode, and performing a prediction (generating a predictive sample) based on the derived motion information.
  • inter prediction modes may be used for prediction of a current block in a picture.
  • various modes such as merge mode, skip mode, MVP mode, and affine mode may be used.
  • Decoder side motion vector refinement (DMVR) mode and adaptive motion vector resolution (AMVR) mode may be further used as ancillary modes.
  • the affine mode may be referred to as an affine motion prediction mode.
  • the MVP mode may be referred to as an advanced motion vector prediction (AMVP) mode.
  • Prediction mode information indicating the inter prediction mode of the current block may be signaled from the encoding device 100 to the decoding device 200.
  • the prediction mode information may be included in the bitstream and transmitted to the decoding device 200.
  • the prediction mode information may include index information indicating one of a plurality of candidate modes.
  • the prediction mode information may indicate an inter prediction mode through hierarchical signaling of flag information.
  • the prediction mode information may include one or more flags. For example, whether the skip mode is applied through signaling of the skip flag, and if the skip mode is not applied, whether to apply the merge mode is indicated through signaling of the merge flag, and if the merge mode is not applied, the MVP mode is indicated to be applied. (Implicit) or a flag for further classification may be further signaled.
  • the affine mode may be signaled as an independent mode, or may be signaled as a mode dependent on the merge mode or the MVP mode.
  • the affine mode may be configured as one candidate of the merge candidate list or the MVP candidate list, as described later.
  • Inter prediction based on motion information of a current block may be performed.
  • the encoding apparatus 100 may derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding apparatus 100 moves by searching similar reference blocks having high correlation using an original block in an original picture associated with the current block in integer or fractional pixel units within a predetermined search range in the reference picture. Information can be derived.
  • the similarity of the block can be derived based on the difference of phase-based sample values. For example, the similarity of a block may be calculated based on a sum of difference (SAD) between a current block (or a template of the current block) and a reference block (or a template of a reference block). In this case, motion information may be derived based on a reference block having the smallest SAD in the search area.
  • the derived motion information may be signaled to the decoding apparatus 200 according to various methods based on the inter prediction mode.
  • motion information of a current prediction block is not directly transmitted, and motion information of a current prediction block is derived based on motion information of a neighboring prediction block. Accordingly, motion information of the current prediction block may be indicated through flag information for indicating that the merge mode is used and a merge index for indicating which prediction block is used.
  • the encoding apparatus 100 may search for a merge candidate block used to derive motion information of the current prediction block according to the merge mode. For example, up to five merge candidate blocks may be used, but embodiments of the present disclosure are not limited thereto, and the number of merge candidate blocks may vary. In addition, the maximum number of merge candidate blocks may be transmitted in slice header units, but embodiments of the present disclosure are not limited thereto, and the maximum number of merge candidate blocks may be transmitted in various ways. After searching for merge candidate blocks, the encoding apparatus 100 may generate a merge candidate list, and may select a merge candidate block having the smallest cost among merge candidates included in the merge candidate list as a final merge candidate block. .
  • the embodiments of the present specification provide a method for constructing a merge candidate list.
  • FIG 10 illustrates an example of spatial neighboring blocks for inter prediction according to an embodiment of the present specification.
  • the merge candidate list may include 5 merge candidate blocks.
  • the merge candidate list may include 4 spatial merge candidates and 1 temporal merge candidate.
  • blocks shown in FIG. 10 may be used as a spatial merge candidate.
  • the merge candidate list for the current block may be configured based on, for example, the procedure shown in FIG. 11.
  • FIG. 11 shows an example of a flowchart for constructing a merge candidate list according to an embodiment of the present specification.
  • the coding apparatus searches for spatial neighboring blocks of the current block and inserts the derived spatial merge candidates into the merge candidate list.
  • the spatial peripheral blocks are the lower left corner peripheral block A0, the left peripheral block A1, the upper right corner peripheral block B0, the upper peripheral block B1, and the upper left corner peripheral block B2 of the current block.
  • additional peripheral blocks such as a right peripheral block, a lower peripheral block, and a lower right peripheral block may be used as spatial peripheral blocks for constructing a merge candidate list of the current block.
  • the coding apparatus may detect available blocks through a search based on priority between spatial neighboring blocks, and may derive motion information of the detected blocks as the spatial merge candidates. For example, the encoding apparatus 100 and the decoding apparatus 200 merge by searching the five blocks shown in FIG. 10 in the order of A1, B1, B0, A0, B2, and sequentially indexing available candidates. Candidate lists can be constructed.
  • the coding apparatus searches for temporal neighboring blocks of the current block and inserts the derived temporal merge candidate into the merge candidate list.
  • the temporal peripheral block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • specific motion information may be stored as a representative motion information for each predetermined storage unit in a col picture.
  • the coding device does not need to store motion information for all blocks in a certain storage unit, and through this, a motion data compression effect can be obtained.
  • the predetermined storage unit may be predetermined, for example, a 16x16 sample unit, or an 8x8 sample unit, or size information for a predetermined storage unit may be signaled from the encoding device 100 to the decoding device 200. have.
  • motion information of a temporal peripheral block may be replaced with representative motion information of a certain storage unit in which the temporal peripheral block is located.
  • a temporal merge candidate may be derived based on the motion information of the prediction block. For example, if the constant storage unit is 2nx2n sample units, and the coordinates of the temporal peripheral block are (xTnb, yTnb), the corrected position ((xTnb>>n) ⁇ n), (yTnb>>n) Motion information of the prediction block located at ⁇ n)) may be used for the temporal merge candidate.
  • the corrected position ((xTnb>>4) ⁇ 4), (yTnb>> The motion information of the prediction block located at 4) ⁇ 4)
  • the constant storage unit is 8x8 sample units, and the coordinates of the temporal peripheral block are (xTnb, yTnb), the corrected position ((xTnb>>3) ⁇ 3), (yTnb>>3 Motion information of a prediction block located at ) ⁇ 3)) may be used for the temporal merge candidate.
  • the coding apparatus may check whether the number of current merge candidates is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be predefined or signaled from the encoding device 100 to the decoding device 200.
  • the encoding apparatus 100 may generate information regarding the maximum number of merge candidates and encode the generated information to transmit the encoded information to the decoding apparatus 200 in the form of a bitstream.
  • a subsequent candidate addition process may not be performed.
  • step S1140 when the number of current merge candidates is smaller than the maximum number of merge candidates, the coding apparatus inserts an additional merge candidate into the merge candidate list.
  • additional merge candidates may include ATMVP, combined bi-predictive merge candidates (if the slice type of the current slice is of type B) and/or zero vector merge candidates.
  • the coding apparatus may end the construction of the merge candidate list.
  • the encoding apparatus 100 may select an optimal merge candidate among merge candidates constituting a merge candidate list based on the RD cost, and decode the selection information (eg, a merge index) indicating the selected merge candidate 200 Can be signaled as
  • the decoding apparatus 200 may select an optimal merge candidate based on the merge candidate list and selection information.
  • Motion information of the selected merge candidate may be used as motion information of the current block, and prediction samples of the current block may be derived based on the motion information of the current block.
  • the encoding apparatus 100 may derive residual samples of the current block based on the predicted samples, and may signal residual information about the residual samples to the decoding apparatus 200.
  • the decoding apparatus 200 may generate reconstruction samples based on residual samples and prediction samples derived based on residual information, and generate a reconstruction picture based on the reconstruction samples.
  • the coding device may derive motion information of the current block in the same way as when the merge mode is applied. However, when the skip mode is applied, a residual signal for a corresponding block is omitted, and thus prediction samples can be directly used as reconstructed samples.
  • a motion vector predictor (MVP) candidate list may be generated. That is, the motion vector of the reconstructed spatial neighboring block and/or the motion vector corresponding to the temporal neighboring block may be used as a motion vector predictor candidate.
  • the prediction information may include selection information (eg, an MVP flag or an MVP index) indicating an optimal motion vector predictor candidate selected from among motion vector predictor candidates included in the motion vector predictor candidate list.
  • the prediction unit may select a motion vector predictor of the current block from among motion vector predictor candidates included in the motion vector candidate list using the selection information.
  • the prediction unit of the encoding apparatus 100 may obtain a motion vector difference (MVD) between a motion vector of a current block and a motion vector predictor, and may encode an MVD to output in the form of a bitstream. That is, MVD may correspond to a motion vector of a current block minus a motion vector predictor.
  • the prediction unit of the decoding apparatus 200 may obtain the MVD included in the prediction information, and derive the motion vector of the current block through the addition of the MVD and the motion vector predictor.
  • the prediction unit of the decoding apparatus 200 may obtain or derive a reference picture index indicating a reference picture from information regarding prediction.
  • the motion vector predictor candidate list may be configured as shown in FIG. 12.
  • FIG. 12 shows an example of a flowchart for constructing a motion vector predictor candidate list according to an embodiment of the present specification.
  • the coding apparatus searches for a spatial candidate block for motion vector prediction of the current block and inserts it into the prediction candidate list.
  • the spatial candidate blocks may include neighboring blocks A0, A1, B0, B1, and B2 of the current block shown in FIG. 10.
  • the coding apparatus searches available candidate blocks for prediction of a current block among spatial candidate blocks, and may add a motion vector predictor (information about a motion vector) of the available spatial candidate blocks to the prediction candidate list.
  • step S1220 the coding apparatus determines whether the number of spatial candidate blocks included in the current prediction candidate list is less than the maximum number of candidates (eg, 2).
  • the maximum number of candidates is shown as 2, but the embodiment of the present specification is not limited thereto, and the maximum number of candidates may be variously set according to implementation.
  • step S1230 the coding device searches for a temporal candidate block and adds it to the prediction candidate list.
  • step S1240 if the coding device cannot use a temporal candidate block, the coding device may add a zero motion vector to the prediction candidate list.
  • the coding device may derive the predicted block for the current block based on the motion information derived according to the prediction mode.
  • the predicted block may include predictive samples (predictive sample array) of the current block.
  • an interpolation procedure may be performed, and prediction samples of the current block may be derived based on reference samples in a fractional sample unit in a reference picture through an interpolation procedure.
  • Can. When affine inter prediction is applied to the current block, prediction samples may be generated based on a motion vector in units of samples/subblocks.
  • final prediction samples may be derived through weighting (according to phase) of prediction samples derived based on L0 prediction and prediction samples derived based on L1 prediction.
  • each of the weight values applied to the L0 prediction sample and the L1 prediction sample may be referred to as a generalized bi-prediction (GBi) weight.
  • GBi generalized bi-prediction
  • Restoration samples and reconstruction pictures may be generated based on the derived prediction samples, and then procedures such as in-loop filtering may be performed.
  • HMVP history-based MVP
  • HMVP candidates are defined as motion information of previously coded blocks.
  • Tables composed of multiple MVP candidates are maintained in the encoding/decoding process. The table is emptied when a new slice is introduced. Whenever there is an inter-coded block, related motion information is added to the last entry of the table as a new HMVP candidate.
  • the overall coding flow is shown in FIG. 13.
  • FIG. 13 shows an example of a decoding flowchart to which the HMVP method according to an embodiment of the present specification is applied.
  • 14A and 14B show an example of a method for updating a table in the HMVP method according to an embodiment of the present specification.
  • the table size S may be set to 16, indicating that up to 16 candidates can be added to the table. If there are more than 16 HMVP candidates from previously coded blocks, the table can always contain the 16 previously coded motion candidates by applying the first-in first-out (FIFO) rule. . 14A shows an example in which the FIFO rule is applied to remove the HMVP candidate and add a new candidate to the table.
  • FIFO first-in first-out
  • a constraint FIFO rule is introduced, where a redundancy check is first applied when inserting an HMVP into a table to detect whether the same HMVP exists in the table. If duplicate HMVPs are found, the same HMVP is removed from the table and all HMVP candidates are moved afterwards (i.e., the index is decreased by 1).
  • HMVP candidates can be used in the merge candidate list construction process. All HMVP candidates from the last entry to the first entry in the table are inserted after the TMVP candidate (temporary merge candidate). When the total number of available merge candidates reaches the maximum number of signaled maximally allowed merge candidates, the merge candidate list construction process ends.
  • HMVP candidates can be used in the AMVP candidate list construction process.
  • the motion vectors of the last K HMVP candidates are inserted into the table after the TMVP candidates.
  • Only HMVP candidates having the same reference picture as the AMVP target reference picture can be used to construct the AMVP candidate list. Pruning can be applied to HMVP candidates. In this case, the K value can be set to 4.
  • a binarization method of adding a fixed length (3 bits) to a truncated unary is applied to code the merge index.
  • N mrg the binarization method is tabulated as in Table 1 below.
  • An embodiment of the present specification relates to a still image or video encoding/decoding method and apparatus.
  • information related to bidirectional prediction weights or generalized bi-prediction (GBi) It is about how to consider.
  • An embodiment of the present specification proposes a method for considering GBi index or weight in the HMVP buffer update process.
  • the HMVP buffer update process may be as shown in FIG. 13.
  • the HMVP buffer stores/manages only decoded motion information.
  • This embodiment proposes a method of storing/managing not only motion information but also GBi information decoded or GBi derived in a decoding process.
  • This embodiment describes a detailed method of the process represented by "Update the table with decoded motion information" in FIG.
  • 15A and 15B show an example of a method for updating an HMVP buffer according to an embodiment of the present specification.
  • the HMVP buffer stores HMVP candidate information including motion information, and information of the decoded motion vector is updated in the HMVP buffer.
  • the oldest HMVP candidate may be removed when a new HMVP is added.
  • the HMVP buffer can store GBi information (bidirectional prediction weight information) as well as information about a motion vector. Also, an update may be performed using GBi information together with decoded motion information.
  • GBi information bidirectional prediction weight information
  • FIG. 15A when new HMVP candidates and GBi information are added while the maximum number of HMVP candidates of the HMVP buffer is filled by the FIFO rule, the oldest HMVP candidate and GBi information may be removed from the HMVP buffer.
  • One embodiment of the present specification proposes a method of performing pruning in consideration of GBi index or weight in the HMVP buffer update process.
  • a check for identity is performed by comparing the motion information of the existing HMVP buffer with the motion information to be newly stored. If the motion information to be saved is the same as the prediction direction (interDir), reference index, and motion vector included in the motion information stored in the existing HMVP buffer, the same motion information is removed from the existing HMVP buffer. do. Thereafter, the motion information to be newly stored is stored in the HMVP buffer according to FIFO rules.
  • the embodiment of the present specification proposes a method of checking whether the GBi index or the weight in addition to the motion information (prediction direction, reference index, motion vector) is equal in this process.
  • This embodiment is a detailed method of the process represented by "Update the table with decoded motion information" in FIG. 13, and may be described as in FIG. 16.
  • FIG. 16 shows an example of a flowchart for updating an HMVP buffer according to an embodiment of the present specification.
  • step S1605 the coding apparatus initializes the HMVP buffer index.
  • the HMVP buffer index (bufidx) may be set to 0.
  • step S1610 the coding apparatus determines whether the current buffer index (bufidx) is smaller than the number of HMVP candidates present in the HMVP buffer. That is, the coding apparatus determines whether all of the search for HMVP candidates present in the HMVP buffer is completed. If the current buffer index is greater than or equal to the number of HMVP candidates, the HMVP buffer update process ends.
  • the coding apparatus may proceed to step S1620.
  • the coding device in step S1615 may acquire motion information and a Gbi index used in a previously coded block. Thereafter, in steps S1620 and S1625, the coding device determines whether motion information and GBi information of a previous block obtained in step S1615 are the same as motion information and GBi information stored in the HMVP buffer. More specifically, the prediction direction, reference index, motion vector, and GBi information included in the motion information of the previous block are the same as the prediction direction, reference index, motion vector, and GBi information of the HMVP candidate corresponding to the current index in the HMVP buffer. Can be checked.
  • the coding device may proceed to step S1630 to perform pruning. That is, the coding apparatus may remove the HMVP candidate including the same motion information and GBi information from the HMVP buffer and add motion information and GBi information of the previously coded block as a new HMVP candidate.
  • the coding apparatus may increase the HMVP buffer index by proceeding to step S1635. Thereafter, the coding device may perform a pruning check on the HMVP candidate of the HMVP buffer corresponding to the increased index.
  • a method is proposed in which pruning is performed to check whether the GBi index or GBi weight is equal to GBi information of candidates stored in the existing HMVP buffer.
  • Example 1 The method of Example 1 and Example 2 is combined so that the actual HMVP buffer can prune and store/manage motion information and GBi information as shown in FIGS. 17A to 17C below.
  • 17A to 17C show an example of a method for updating an HMVP buffer in consideration of GBi information according to an embodiment of the present specification.
  • the HVMP candidate (HMVP 3) identical to the motion information and GBi information of the HMVP candidate input from the HMVP buffer is searched. Thereafter, the same HMVP candidate (HMVP 3) as shown in FIG. 17B is removed, and motion information and GBi information of a new HMVP candidate as shown in FIG. 17C are added to the HMVP buffer.
  • a method of pruning considering a GBi index or weight in the process of constructing a prediction candidate based on HMVP is proposed.
  • Example 1 and Example 2 were methods of handling the HMVP buffer, whereas Example 3 proposed a method of constructing a prediction candidate through the HMVP buffer.
  • HMVP candidates may be used in the process of constructing prediction candidates.
  • FIGS. 11 and 12 will be described as an example for ease of description.
  • 11 is a flowchart briefly illustrating a process of constructing a merge candidate
  • FIG. 12 is a sequence illustrating a process of constructing a candidate candidate for AMVP.
  • FIG. 18A illustrates a method of constructing a merge prediction candidate by adding an HMVP prediction candidate method to the merge candidate configuration process of FIG. 11, and
  • FIG. 18B confirms the identity of the HMVP prediction candidate and an existing constructed prediction candidate based on FIG. 18A It shows a method for constructing a prediction candidate list to which a pruning process is added.
  • the coding apparatus searches for spatial neighboring blocks and inserts the derived spatial merge candidates into the merge candidate list.
  • the spatial peripheral blocks may include peripheral blocks A0, A1, B0, B1, and B2 of FIG. 10. More specifically, the coding apparatus may add information about a prediction direction of a spatial neighboring block, a reference picture index, or a motion vector as a merge candidate to a merge candidate list.
  • the coding apparatus searches for temporal neighboring blocks and inserts the derived temporal merge candidate into the merge candidate list.
  • the temporal peripheral block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • step S1815 the coding apparatus determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the current number of merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • step S1820 the coding apparatus inserts the HMVP merge candidate into the merge candidate list.
  • the HMVP merge candidate inserted into the merge candidate list may be at least one of HMVP candidates stored in the HMVP buffer (HMVP candidate list). For example, the HMVP candidate that is most recently stored in the HMVP candidate list may be added to the merge candidate list.
  • HMVP candidates having an index corresponding to a value obtained by subtracting the HMVP index from the number of HMVP candidates or HMVP candidates corresponding to a specific index (eg, HMVP index) from the HMVP candidate list may be added to the merge candidate list.
  • the coding device determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the current number of merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • step S1830 the coding apparatus inserts an additional merge candidate into the merge candidate list.
  • additional merge candidates may include ATMVP, combined bi-predictive merge candidates (if the slice type of the current slice is of type B) and/or zero vector merge candidates.
  • FIG. 18B shows a method of constructing a merge candidate list including GBi information (bidirectional prediction weight information) and a pruning process.
  • the coding apparatus searches for spatial neighboring blocks and inserts the derived spatial merge candidates into the merge candidate list.
  • the spatial peripheral blocks may include peripheral blocks A0, A1, B0, B1, and B2 of FIG. 10. More specifically, the coding apparatus may add GBi information (bidirectional prediction weight or bidirectional prediction weight index) to the merge candidate list together with information about the prediction direction of the spatial neighboring blocks, the reference picture index, and the motion vector.
  • step S1860 the coding apparatus searches for temporal neighboring blocks and inserts the derived temporal merge candidate into the merge candidate list.
  • the temporal peripheral block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • step S1865 the coding apparatus determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the current number of merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • the coding apparatus proceeds to step S1870.
  • steps S1870 and S1875 the coding device checks whether the motion information and GBi information of the HMVP merge candidate are the same as the existing configured merge candidates. That is, the coding apparatus determines whether a merge candidate identical to the motion information and GBi information of the HMVP merge candidate to be added among the merge candidates included in the current merge candidate list exists.
  • the HMVP merge candidate inserted into the merge candidate list may be at least one of HMVP candidates stored in the HMVP buffer (HMVP candidate list).
  • the HMVP candidate that is most recently stored in the HMVP candidate list may be added to the merge candidate list.
  • HMVP candidates having an index corresponding to a value obtained by subtracting the HMVP index from the number of HMVP candidates or HMVP candidates corresponding to a specific index (eg, HMVP index) from the HMVP candidate list may be added to the merge candidate list. If the same merge candidate does not exist, the coding apparatus proceeds to step S1885.
  • the HMVP merge candidate may include motion information and GBi information.
  • step S1885 the coding apparatus determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the current number of merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • step S1890 the coding apparatus inserts an additional merge candidate into the merge candidate list.
  • additional merge candidates may include ATMVP, combined bi-predictive merge candidates (if the slice type of the current slice is of type B) and/or zero vector merge candidates.
  • FIG. 19A shows a method of considering an HMVP candidate in the process of constructing an AMVP prediction candidate in FIG. 12, and FIG. 19B shows a process of configuring an HMVP candidate as a prediction candidate based on FIG. Shows how GBi is considered in the identification process.
  • the coding apparatus searches for spatial neighboring blocks and inserts the derived spatial motion vector prediction candidates into the list after prediction.
  • the spatial peripheral blocks may include peripheral blocks A0, A1, B0, B1, and B2 of FIG. 10. More specifically, the coding apparatus may add information about a prediction direction of a spatial neighboring block, a reference picture index, or a motion vector to a prediction candidate list as a motion vector candidate.
  • step S1910 the coding apparatus determines whether the number of motion vector prediction candidates included in the current prediction candidate list is smaller than the maximum number of candidates.
  • the maximum number of motion vector prediction candidates may be set to a predetermined number (eg, 5). If the current number of motion vector prediction candidates is not less than the maximum number of candidates (that is, if the number of current motion vector prediction candidates is equal to or greater than the maximum number of candidates, or if the current motion vector prediction candidate list is all filled), the coding device may The construction of the prediction candidate list can be ended.
  • the coding apparatus searches the temporal prediction candidate block and inserts the derived temporal prediction candidate into the motion vector prediction candidate list.
  • the temporal prediction candidate block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • step S1920 the coding apparatus determines whether the number of motion vector prediction candidates included in the current motion vector prediction candidate list is smaller than the maximum number of candidates.
  • the maximum number of motion vector prediction candidates may be set to a predetermined number (eg, 5). If the current number of motion vector prediction candidates is not less than the maximum number of candidates (that is, if the number of current motion vector prediction candidates is equal to or greater than the maximum number of candidates, or if the current motion vector prediction candidate list is all filled), the coding device may The construction of the prediction candidate list can be ended.
  • the coding apparatus proceeds to step S1925.
  • the coding apparatus inserts the HMVP prediction candidate into the motion vector prediction candidate list.
  • the HMVP prediction candidate inserted into the motion vector prediction candidate list may be at least one of HMVP candidates stored in the HMVP buffer (HMVP candidate list). For example, the HMVP candidate stored in the most recent HMVP candidate list may be added to the motion vector prediction candidate list.
  • HMVP candidates having an index corresponding to a value obtained by subtracting the HMVP index from the number of HMVP candidates or HMVP candidates corresponding to a specific index (eg, HMVP index) from the HMVP candidate list may be added to the motion vector prediction candidate list.
  • FIG. 19B shows a method of constructing a motion vector prediction candidate list including GBi information (bidirectional prediction weight information) and a pruning process.
  • the coding apparatus searches spatial peripheral blocks and inserts the derived spatial motion vector prediction candidates into the motion vector prediction candidate list.
  • the spatial peripheral blocks may include peripheral blocks A0, A1, B0, B1, and B2 of FIG. 10. More specifically, the coding apparatus adds GBi information (bidirectional prediction weight or bidirectional prediction weight index) to the motion vector prediction candidate list together with information about the prediction direction, reference picture index, and motion vector of spatial neighboring blocks as a motion vector prediction candidate. can do.
  • step S1960 the coding apparatus determines whether the number of motion vector prediction candidates included in the current prediction candidate list is smaller than the maximum number of candidates.
  • the maximum number of motion vector prediction candidates may be set to a predetermined number (eg, 5). If the current number of motion vector prediction candidates is not less than the maximum number of candidates (that is, if the number of current motion vector prediction candidates is equal to or greater than the maximum number of candidates, or if the current motion vector prediction candidate list is all filled), the coding device may The construction of the prediction candidate list can be ended.
  • the coding apparatus searches the temporal prediction candidate block and inserts the derived temporal prediction candidate into the motion vector prediction candidate list.
  • the temporal prediction candidate block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • step S1970 the coding apparatus determines whether the number of motion vector prediction candidates included in the current prediction candidate list is smaller than the maximum number of candidates.
  • the maximum number of motion vector prediction candidates may be set to a predetermined number (eg, 5). If the current number of motion vector prediction candidates is not less than the maximum number of candidates (that is, if the number of current motion vector prediction candidates is equal to or greater than the maximum number of candidates, or if the current motion vector prediction candidate list is all filled), the coding device may The construction of the prediction candidate list can be ended.
  • step S1975 the coding device checks whether the motion information and GBi information of the HMVP candidate are the same as the existing constructed motion vector prediction candidates. That is, the coding apparatus determines whether a motion vector prediction candidate identical to the motion information and GBi information of the HMVP candidate to be added among the motion vector prediction candidates included in the current motion vector prediction candidate list exists.
  • the HMVP candidate inserted into the motion vector prediction candidate list may be at least one of HMVP candidates stored in the HMVP buffer (HMVP candidate list).
  • the HMVP candidate stored in the most recent HMVP candidate list may be added to the motion vector prediction candidate list.
  • HMVP candidates having an index corresponding to a value obtained by subtracting the HMVP index from the number of HMVP candidates or HMVP candidates corresponding to a specific index (eg, HMVP index) from the HMVP candidate list may be added to the motion vector prediction candidate list.
  • the coding apparatus ends the construction of the motion vector prediction candidate list without adding the HMVP prediction candidate.
  • the coding apparatus proceeds to step S1985 and inserts the HMVP merge candidate into the merge candidate list.
  • the HMVP merge candidate may include motion information and GBi information.
  • FIG. 20 illustrates an example of a flowchart for constructing a merge candidate list in consideration of HMVP candidates using inherited GBi information according to an embodiment of the present specification.
  • One embodiment of the present specification provides a method and apparatus for inheriting a GBi index or weight in a process of constructing a motion vector prediction candidate based on HMVP.
  • the GBi index or weight managed with the motion information in the HMVP buffer (or HMVP candidate list) of the current block It provides a method of performing prediction by inheriting by GBi index or weight.
  • a method of performing prediction by inheriting the GBi index or weight managed with motion information from the HMVP candidate list as the GBi index or weight of the current block may be performed as shown in the flowchart of FIG. 20.
  • 20 is a flowchart in which a method of applying an inherited GBi index or weight to the flowchart of FIG. 18B is added.
  • the decoding apparatus 200 may decode the current block by using the inherited GBi index of the prediction candidate. .
  • the coding apparatus inserts spatial merge candidates derived by searching for spatial neighboring blocks into a merge candidate list, and inherits the GBi index and/or GBi weight of the merge candidate determined from the spatial neighboring blocks.
  • the spatial peripheral blocks may include peripheral blocks A0, A1, B0, B1, and B2 of FIG. 10.
  • the coding apparatus may add GBi information (bidirectional prediction weight or bidirectional prediction weight index) to the merge candidate list together with information about the prediction direction of the spatial neighboring blocks, the reference picture index, and the motion vector.
  • the GBi index and/or GBi weight of the merge candidate determined from the spatial neighboring block is not signaled separately and can be inherited. That is, the GBi index and/or GBi weight of the corresponding spatial merge candidate may be added to the merge candidate list along with motion information of the spatial merge candidate added to the merge candidate list.
  • the coding apparatus may search for temporal neighboring blocks, insert the derived temporal merge candidate into the merge candidate list, and inherit the GBi index and/or GBi weight of the merge candidate determined from the temporal neighboring blocks.
  • the temporal peripheral block may be located on a reference picture that is a different picture from the current picture in which the current block is located.
  • the reference picture in which the temporal neighboring block is located may be referred to as a collocated picture or a coll picture.
  • the temporal neighboring blocks may be searched in the order of the lower right corner peripheral block and the lower right center block of the same position block for the current block on the col picture.
  • the GBi index and/or GBi weight of the merge candidate determined from temporal peripheral blocks is not signaled separately and can be inherited. That is, the GBi index and/or GBi weight of the temporal merge candidate may be added to the merge candidate list along with motion information of the temporal merge candidate added to the merge candidate list.
  • step S2015 the coding apparatus determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the number of current merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • step S2020 the coding apparatus checks whether the motion information and GBi information of the HMVP merge candidate are the same as the existing configured merge candidates. That is, the coding apparatus determines whether a merge candidate identical to the motion information and GBi information of the HMVP merge candidate to be added among the merge candidates included in the current merge candidate list exists.
  • the HMVP merge candidate inserted into the merge candidate list may be at least one of HMVP candidates stored in the HMVP buffer (HMVP candidate list).
  • the HMVP candidate that is most recently stored in the HMVP candidate list may be added to the merge candidate list.
  • HMVP candidates having an index corresponding to a value obtained by subtracting the HMVP index from the number of HMVP candidates or HMVP candidates corresponding to a specific index (eg, HMVP index) from the HMVP candidate list may be added to the merge candidate list. If the same merge candidate does not exist, the coding apparatus proceeds to step S2035.
  • the coding apparatus proceeds to step S2030, inserts the HMVP merge candidate into the merge candidate list, and can inherit the GBi index and/or GBi weight of the HMVP merge candidate.
  • the HMVP merge candidate may include motion information and GBi information.
  • step S2035 the coding apparatus determines whether the number of merge candidates included in the current merge candidate list is smaller than the maximum number of merge candidates.
  • the maximum number of merge candidates may be set to a predetermined number (eg, 5). If the current number of merge candidates is not less than the maximum number of merge candidates (that is, if the current number of merge candidates is equal to or greater than the maximum number of merge candidates, or if the current merge candidate list is all filled), the coding apparatus configures the merge candidate list. You can quit.
  • step S2040 the coding apparatus inserts an additional merge candidate into the merge candidate list.
  • additional merge candidates may include ATMVP, combined bi-predictive merge candidates (if the slice type of the current slice is of type B) and/or zero vector merge candidates.
  • FIG. 21 shows an example of a flowchart for processing video data according to an embodiment of the present specification.
  • Each operation illustrated in FIG. 21 may be performed by the inter prediction unit 180 of the encoding apparatus 100, the inter prediction unit 260 of the decoding apparatus 200, or the processor 2210 of FIG. 22.
  • the video data processing method according to the embodiment of the present specification is described as being performed by a coding apparatus.
  • the coding device may acquire motion information for inter prediction of a current block and bidirectional prediction weight information.
  • the motion information includes a first reference index (eg, L0 reference index) and a second motion vector (eg, L0 motion vector), and a second reference picture associated with a first reference picture (eg, L0 reference picture).
  • a second reference index eg, L1 reference index
  • a second motion vector eg, L1 motion vector
  • bidirectional prediction weight information may be referred to as GBi information (GBi index or GBi weight).
  • the bidirectional prediction weighting information is for a weight applied to each of the first prediction sample derived based on the first direction prediction (L0 direction prediction) and the second prediction sample derived based on the second direction prediction (L1 direction prediction).
  • Information may be included.
  • the bidirectional prediction weight information may include a first weight applied to the first prediction sample and a second weight applied to the second prediction sample.
  • the bidirectional prediction weight information may include indexes indicating the first weight and the second weight in a predefined set.
  • the set related to the first weight w1 is configured as ⁇ 4, 5, 3, 10, -2 ⁇ , and the second weight w0 is 8 minus the first weight w1.
  • Can be determined (w0 8- w1).
  • the first weight may be indicated by bidirectional prediction weight information (bidirectional prediction weight index) among ⁇ 4, 5, 3, 10, -2 ⁇ .
  • the coding device may derive a prediction sample of the current block based on the motion information and bidirectional prediction weight information. For example, after constructing the merge candidate list, the coding device acquires motion information and bi-directional prediction weight information indicated by the merge index in the merge candidate list, and generates a prediction sample of the current block based on the motion information and the bi-directional prediction weight information. Can be derived. In addition, the coding apparatus obtains motion information and bi-directional prediction weight information indicated by the motion vector prediction index from the motion vector prediction list after constructing the motion vector prediction list, and predicts the current block based on the motion information and the bi-directional prediction weight information. Samples can be derived.
  • the coding apparatus may construct a merge candidate list and determine a merge candidate indicated by the merge index in the configured merge candidate list.
  • the coding apparatus adds the spatial merge candidate and the temporal merge candidate of the current block to the list after the merge, and the number of merge candidates included in the merge candidate list is a preset number of candidates (eg, constant than the maximum number of candidates or the maximum number of candidates) If it is smaller than the number), the merge candidate list can be constructed by changing the merge candidate list using the HMVP candidate list.
  • the coding apparatus determines whether the HMVP prediction candidate included in the HMVP candidate list is the same as the merge candidate included in the merge candidate list, to change the merge candidate list using the HMVP candidate list, and the HMVP
  • the HMVP prediction candidate may be added to the merge candidate list.
  • the coding apparatus may perform a search for the temporal merge candidate after the search for the spatial merge candidate, in order to add the spatial merge candidate and the temporal merge candidate to the merge candidate list.
  • the coding apparatus may update the HMVP candidate list based on the HMVP candidate including motion information and bidirectional prediction weight information.
  • the HMVP candidate list may be stored in an HMVP buffer, and the HMVP candidate list may be referred to as an HMVP buffer.
  • the HMVP candidate may include motion information (reference picture index, motion vector, prediction direction) and bidirectional prediction weight information (GBi index, GBi weight) of a block already reconstructed from the current picture.
  • the coding apparatus updates the HMVP candidate list based on whether the same candidate as the HMVP candidate including the motion information of the current block and bidirectional prediction weight information exists in the HMVP candidate list to update the HMVP candidate. can do. That is, the pruning process may be performed in updating the HMVP candidate. Through the pruning process, the HMVP candidate list can be efficiently constructed by removing duplicate HMVP candidates.
  • the coordination device initializes the index of the HMVP candidate list to update the HMVP candidate, determines whether the current index is less than the number of candidates in the HMVP candidate list, and the current index is a candidate in the HMVP candidate list If it is less than the number, it is determined whether the candidate corresponding to the current index and the HMVP candidate to be added are the same in the HMVP candidate list, and if the candidate corresponding to the current index and the HMVP candidate to be added are the same, the candidate corresponding to the current index Remove and remove the HMVP candidate to be added to the HMVP candidate list, perform pruning, and if the candidate corresponding to the current index differs from the HMVP candidate to be added, the current index of the HMVP candidate list is increased and the increased current index is increased.
  • An operation may be performed to determine whether it is smaller than the number of candidates in the HMVP candidate list and whether the HMVP candidate and the candidate corresponding to the increased current index are the same.
  • the coding apparatus in order to determine whether the candidate corresponding to the current index and the HMVP candidate to be added are the same in the HMVP candidate list, the prediction direction of the candidate and the HMVP candidate, a reference index, It is possible to determine whether the motion vector and the bidirectional predictive incremental index are the same.
  • Embodiments described in the present invention may be implemented and implemented on a processor, microprocessor, controller, or chip.
  • the functional units shown in each figure may be implemented and implemented on a computer, processor, microprocessor, controller, or chip.
  • FIG. 22 shows an example of a block diagram of an apparatus for processing video data according to an embodiment of the present specification.
  • the video data processing apparatus 2200 for processing video data includes a memory 2220 for storing video data, and a processor 2210 for processing video data while being combined with the memory.
  • the processor 2210 may be configured with at least one processing circuit for processing video data, and may process a video signal by executing instructions for encoding or decoding video data. That is, the processor 2210 may encode the original image data or decode the encoded image signal by executing the above-described encoding or decoding methods.
  • An apparatus for processing video data may include a memory 2220 storing a video signal and a processor 2210 coupled with the memory 2220.
  • the processor 2210 acquires motion information and bidirectional prediction weight information for inter prediction of the current block, derives a prediction sample of the current block based on the motion information and bidirectional prediction weight information, and motion information And an HMVP candidate list based on the HMVP candidate including bi-directional prediction weight information.
  • the motion information includes a first reference index and a first motion vector associated with a first reference picture (eg, L0 reference picture), and a second related to a second reference picture (eg, L1 reference picture) different from the first reference picture.
  • a reference index and a second motion vector, and the bidirectional prediction weight information includes a first weight value w0 applied to a first prediction sample from the first reference picture and a second from the second reference picture. It can be used to derive the second weight value w1 applied to the prediction sample.
  • the processor 2210 may update the HMVP candidate list based on whether the same candidate as the HMVP candidate to be added exists in the HMVP candidate list.
  • the processor 2210 checks the current index of the HMVP candidate list, determines whether the current index of the HMVP candidate list is less than the number of candidates in the HMVP candidate list, and the current index is the number of candidates in the HMVP candidate list If smaller, it is determined whether the candidate corresponding to the current index and the HMVP candidate are the same in the HMVP candidate list, and if the candidate corresponding to the current index and the HMVP candidate are the same, the candidate corresponding to the current index is removed and the HMVP candidate is HMVP Perform pruning to add to the candidate list, increase the current index of the HMVP candidate list if the candidate corresponding to the current index is different from the HMVP candidate, and whether the increased current index is less than the number of candidates and the HMVP candidate And determining whether candidates corresponding to the increased current index are the same.
  • the processor 2210 may determine whether the prediction direction, the reference index, the motion vector, and the bidirectional prediction weight index of the candidate corresponding to the current index and the HMVP candidate are equal to each other.
  • the processor 2210 adds the spatial merge candidate and the temporal merge candidate of the current block to the configured merge candidate list, and if the number of merge candidates included in the merge candidate list is less than the maximum number of candidates, the HMVP candidate list Use to change the merge candidate list and determine a merge candidate indicated by the merge index in the merge candidate list.
  • the processor 2210 determines whether the HMVP prediction candidate included in the HMVP candidate list is the same as the merge candidate included in the merge candidate list, and the HMVP prediction candidate included in the HMVP candidate list is the merge candidate list When different from the merge candidate included in, HMVP prediction candidates may be added to the merge candidate list.
  • the processor 2210 may perform a search for a temporal merge candidate after a search for a spatial merge candidate.
  • the processing method to which the present invention is applied may be produced in the form of a program executed by a computer, and may be stored in a computer readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • Computer-readable recording media includes all types of storage devices and distributed storage devices in which computer-readable data are stored.
  • Computer-readable recording media include, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk and optical data. It may include a storage device.
  • the computer-readable recording medium includes media embodied in the form of a carrier wave (for example, transmission through 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.
  • an embodiment of the present invention may be implemented as a computer program product by program code, and the program code may be executed on a computer by an embodiment of the present invention.
  • the program code can be stored on a computer readable carrier.
  • Embodiments herein can be implemented by a computer-executable component, the computer-executable component being configured to run on one or more processors of a computing device, and a non-transitory computer-executable component. ).
  • the computer-executable component according to the embodiment of the present disclosure acquires motion information and bidirectional prediction weight information for inter prediction of the current block, and predicts the current block based on the motion information and the bidirectional prediction weight information It can be set to derive a sample and update the HMVP candidate list based on the HMVP candidate including motion information and bi-directional prediction weight information.
  • the motion information includes a first reference index and a first motion vector associated with the first reference picture, and a second reference index and a second motion vector associated with a second reference picture different from the first reference picture, and bidirectional prediction weights
  • the information is related to weight values applied to the first motion vector or the second motion vector.
  • the computer-executable component may update the HMVP candidate list based on whether the same candidate as the HMVP candidate to be added exists in the HMVP candidate list.
  • the computer-executable component identifies the current index of the HMVP candidate list, determines whether the current index of the HMVP candidate list is less than the number of candidates in the HMVP candidate list, and the current index is the number of candidates in the HMVP candidate list If smaller, it is determined whether the candidate corresponding to the current index and the HMVP candidate are the same in the HMVP candidate list, and if the candidate corresponding to the current index and the HMVP candidate are the same, the candidate corresponding to the current index is removed and the HMVP candidate is HMVP Perform pruning to add to the candidate list, increase the current index of the HMVP candidate list if the candidate corresponding to the current index is different from the HMVP candidate, and whether the increased current index is less than the number of candidates and the HMVP candidate And determining whether candidates corresponding to the increased current index are the same.
  • the computer-executable component may determine whether the prediction direction, the reference index, the motion vector, and the bidirectional prediction weight index of the candidate corresponding to the current index and the HMVP candidate are the same.
  • the computer-executable component adds the spatial merge candidate and the temporal merge candidate of the current block to the configured merge candidate list, and if the number of merge candidates included in the merge candidate list is less than the maximum number of candidates, the HMVP candidate list Use to change the merge candidate list and determine a merge candidate indicated by the merge index in the merge candidate list.
  • the computer-executable component determines whether the HMVP prediction candidate included in the HMVP candidate list is the same as the merge candidate included in the merge candidate list, and the HMVP prediction candidate included in the HMVP candidate list is the merge candidate list When different from the merge candidate included in, HMVP prediction candidates may be added to the merge candidate list.
  • the computer-executable component may perform a search for a temporal merge candidate after a search for a spatial merge candidate.
  • the decoding device and the encoding device to which the present invention is applied may be included in a digital device.
  • digital device includes, for example, all digital devices capable of performing at least one of transmission, reception, processing, and output of data, content, and services.
  • the processing of the data, content, service, etc. by the digital device includes an operation of encoding and/or decoding data, content, service, and the like.
  • These digital devices are paired or connected (hereinafter referred to as'pairing') with other digital devices, external servers, etc. through a wire/wireless network to transmit and receive data. Convert it accordingly.
  • Digital devices include, for example, fixed devices such as network TV, network broadcast broadband TV (HBBTV), smart TV, Internet protocol television (IPTV), personal computer (PC), and the like.
  • PDA personal digital assistant
  • smart phone smart phone
  • tablet PC tablet PC
  • mobile device mobile device or handheld device
  • a laptop such as a laptop.
  • an embodiment of the present specification may be implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above.
  • the software code can be stored in memory and driven by a processor.
  • the memory is located inside or outside the processor, and can 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

본 명세서의 실시예는 비디오 데이터를 처리하기 위한 방법 및 장치를 제공한다. 본 명세서의 실시예에 따른 비디오 데이터 처리 방법은, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득하는 단계와, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하는 단계와, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP(history-based motion vector predictor) 후보에 기반하여 HMVP 후보 리스트를 업데이트하는 단계를 포함하고, 상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용될 수 있다.

Description

비디오 데이터를 처리하기 위한 방법 및 장치
본 명세서는 비디오 데이터를 처리하기 위한 방법 및 장치에 관한 것으로서, 특히 화면간 예측(inter prediction)을 사용하여 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치에 관한 것이다.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 영상, 이미지, 음성 등의 미디어가 압축 부호화의 대상이 될 수 있으며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다.
차세대 비디오 컨텐츠는 고해상도(high spatial resolution), 고프레임율(high frame rate) 및 영상 표현의 고차원화(high dimensionality of scene representation)라는 특징을 갖게 될 것이다. 그러한 컨텐츠를 처리하기 위해서는 메모리 저장(memory storage), 메모리 액세스율(memory access rate) 및 처리 전력(processing power) 측면에서 엄청난 증가를 가져올 것이다.
따라서, 차세대 영상 컨텐츠를 보다 효율적으로 처리하기 위한 코딩 툴을 디자인할 필요가 있다. 특히, HEVC(high efficiency video coding) 표준 이후의 비디오 코덱 표준은 보다 효율적인 예측 기법을 요구한다.
본 명세서의 실시예들은, 화면간 예측(inter prediction)에 있어서 GBi(generalized bi-prediction) 정보를 고려하여 HMVP(history-based motion vector prediction) 리스트를 구성하고 업데이트하기 위한 비디오 데이터 처리 방법 및 장치를 제공하고자 한다.
본 명세서의 실시예에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 명세서의 실시예가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 실시예에 따른 비디오 데이터 처리 방법은, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득하는 단계와, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하는 단계와, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트하는 단계를 포함하고, 상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용될 수 있다.
일 실시예에서, 상기 HMVP 후보 리스트를 업데이트하는 단계는, 상기 HMVP 후보와 동일한 후보가 상기 HMVP 후보 리스트에 존재하는지 여부에 기반하여 상기 HMVP 후보 리스트를 업데이트하는 단계를 포함할 수 있다.
일 실시예에서, 상기 HMVP 후보 리스트를 업데이트하는 단계는, HMVP 후보 리스트의 인덱스를 초기화하는 단계와, 상기 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하는 단계와, 상기 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작으면, 상기 HMVP 후보 리스트에서 상기 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하는 단계와, 상기 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일하면, 상기 인덱스에 대응하는 후보를 제거하고 상기 HMVP 후보를 상기 HMVP 후보 리스트에 추가하는 프루닝(pruning)을 수행하는 단계와, 상기 인덱스에 대응하는 후보와 상기 HMVP 후보가 상이하면, 상기 HMVP 후보 리스트의 인덱스를 증가시키고, 상기 증가된 인덱스가 상기 후보 개수보다 작은지 여부 및 상기 HMVP 후보와 상기 증가된 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 반복 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하는 단계는, 상기 인덱스에 대응하는 후보와 상기 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가중치 인덱스가 서로 동일한지 여부를 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 움직임 정보와 양방향 예측 가중치 정보를 획득하는 단계는, 머지 후보 리스트를 구성하는 단계와, 상기 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정하는 단계를 포함하고, 상기 머지 후보 리스트를 구성하는 단계는, 상기 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 상기 머지 후보 리스트에 추가하는 단계와, 상기 머지 후보 리스트에 포함된 머지 후보의 개수가 기 설정된 후보 개수보다 작으면, 상기 HMVP 후보 리스트를 사용하여 상기 머지 후보 리스트를 변경(modifying)하는 단계를 포함할 수 있다.
일 실시예에서, 상기 머지 후보 리스트를 변경하는 단계는, 상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하는 단계와, 상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 상이한 경우, 상기 HMVP 예측 후보를 상기 머지 후보 리스트에 추가하는 단계를 포함할 수 있다.
일 실시예에서, 상기 공간적 머지 후보 및 시간적 머지 후보를 상기 머지 후보 리스트에 추가하는 단계는, 상기 공간적 머지 후보에 대한 탐색 이후 상기 시간적 머지 후보에 대한 탐색을 수행하는 단계를 포함할 수 있다.
본 명세서의 다른 실시예에 따른 비디오 데이터 처리 장치는, 상기 비디오 데이터를 저장하는 메모리와, 상기 메모리와 결합된 프로세서를 포함하고, 상기 프로세서는, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보와 양방향 예측 가중치 정보를 획득하고, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하고, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정되고, 상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 상기 제1 참조 픽처와 상이한 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용될 수 있다.
본 명세서의 다른 실시예는 컴퓨팅 디바이스의 하나 이상의 프로세서에서 실행하도록 구성된 컴퓨터 실행 가능한 컴포넌트가 저장된 비 일시적(non-transitory) 컴퓨터 판독 가능한 매체(computer-executable component)를 제공하며, 상기 컴퓨터 실행 가능한 컴포넌트는, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보와 양방향 예측 가중치 정보를 획득하고, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하고, 상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정되고, 상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 상기 제1 참조 픽처와 상이한 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용될 수 있다.
본 명세서의 실시예에 따르면, 움직임 정보와 함께 GBi(generalized bi-prediction)에 대한 정보를 함께 HMVP(history-based motion vector prediction) 리스트를 구성하고 업데이트함으로써 ~할 수 있다.
본 명세서의 실시예에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서의 실시예가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 명세서의 실시예에 따른 비디오 코딩 시스템의 예를 도시한다.
도 2는 본 명세서의 실시예에 따른 비디오/이미지 신호의 인코딩이 수행되는 인코딩 장치의 개략적인 블록도를 나타낸다.
도 3은 본 명세서의 실시예에 따른 영상 신호의 디코딩이 수행되는 디코딩 장치의 개략적인 블록도를 나타낸다.
도 4는 본 명세서의 실시예에 따른 컨텐츠 스트리밍 시스템의 구조도이다.
도 5는 본 명세서의 실시예에 따른 멀티타입 트리 분할 모드들의 예를 도시한다.
도 6은 본 명세서의 실시예에 따른 인터 예측(inter prediction)에 기반한 비디오/영상 인코딩을 위한 흐름도의 예를 도시한다.
도 7은 본 명세서의 실시예에 따른 인코딩 장치 내 인터 예측부의 블록도의 예를 도시한다.
도 8은 본 명세서의 실시예에 따른 인터 예측에 기반한 비디오/영상 디코딩을 위한 흐름도의 예를 도시한다.
도 9는 본 명세서의 실시예에 따른 디코딩 장치 내 인터 예측부의 블록도의 예를 도시한다.
도 10은 본 명세서의 실시예에 따른 인터 예측을 위한 공간적 주변 블록들의 예를 도시한다.
도 11은 본 명세서의 실시예에 따른 머지 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
도 12는 본 명세서의 실시예에 따른 움직임 벡터 예측자 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
도 13은 본 명세서의 실시예에 따른 HMVP 방법이 적용된 디코딩 흐름도의 예를 도시한다.
도 14a 및 도 14b는 본 명세서의 실시예에 따른 HMVP 방법에서 테이블을 업데이트하기 위한 방법의 예를 도시한다.
도 15a 및 도 15b는 본 명세서의 실시예에 따른 HMVP 버퍼를 업데이트하기 위한 방법의 예를 도시한다.
도 16은 본 명세서의 실시예에 따른 HMVP 버퍼를 업데이트하기 위한 순서도의 예를 도시한다.
도 17a 내지 도 17c는 본 명세서의 실시예에 따른 GBi(generalized bi-prediction) 정보를 고려하여 HMVP 버퍼를 업데이트하기 위한 방법의 예를 도시한다.
도 18a 및 도 18b는 본 명세서의 실시예에 따른 HMVP 후보를 고려하여 머지 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
도 19a 및 도 19b는 본 명세서의 실시예에 따른 HMVP 후보를 고려하여 예측 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
도 20은 본 명세서의 실시예에 따른 상속된 GBi 정보를 사용하는 HMVP 후보를 고려하여 머지 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
도 21은 본 명세서의 실시예에 따른 비디오 데이터를 처리하기 위한 흐름도의 예를 도시한다.
도 22는 본 명세서의 실시예에 따른 비디오 데이터를 처리하기 위한 장치의 블록도의 예를 도시한다.
이하, 본 명세서에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 명세서의 예시적인 실시형태를 설명하고자 하는 것이며, 본 명세서가 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 명세서의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 명세서가 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 명세서의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
아울러, 본 명세서에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미를 명확히 기재하므로, 본 명세서의 설명에서 사용된 용어의 명칭만으로 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
이하의 설명에서 사용되는 특정 용어들은 본 명세서의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 명세서의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다. 예를 들어, 신호, 데이터, 샘플, 픽처, 프레임, 블록 등의 경우 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
이하 본 명세서에서 '처리 유닛'은 예측, 변환 및/또는 양자화 등과 같은 인코딩/디코딩의 처리 과정이 수행되는 단위를 의미한다. 또한, 처리 유닛은 휘도(luma) 성분에 대한 단위와 색차(chroma) 성분에 대한 단위를 포함하는 의미로 해석될 수 있다. 예를 들어, 처리 유닛은 블록(block), 코딩 유닛(coding unit, CU), 예측 유닛(prediction unit, PU) 또는 변환 블록(transform unit, TU)에 해당될 수 있다.
또한, 처리 유닛은 휘도 성분에 대한 단위 또는 색차 성분에 대한 단위로 해석될 수 있다. 예를 들어, 처리 유닛은 휘도 성분에 대한 CTB(coding tree block), CB(coding block), PU 또는 TB(transform block)에 해당될 수 있다. 또는, 처리 유닛은 색차 성분에 대한 CTB, CB, PU 또는 TB에 해당할 수 있다. 또한, 이에 한정되는 것은 아니며 처리 유닛은 휘도 성분에 대한 단위와 색차 성분에 대한 단위를 포함하는 의미로 해석될 수도 있다.
또한, 처리 유닛은 반드시 정사각형의 블록으로 한정되는 것은 아니며, 3개 이상의 꼭지점을 가지는 다각형 형태로 구성될 수도 있다.
또한, 이하 본 명세서에서 픽셀, 화소, 또는 계수(변환 계수 또는 1차 변환을 거친 변환 계수) 등을 샘플로 통칭한다. 그리고, 샘플을 이용한다는 것은 픽셀 값, 화소 값, 또는 계수(변환 계수 또는 1차 변환을 거친 변환 계수) 등을 이용한다는 것을 의미할 수 있다.
도 1은 본 명세서의 실시예에 따른 비디오 코딩 시스템의 예를 도시한다.
비디오 코딩 시스템은 소스 디바이스(10) 및 수신 디바이스(20)를 포함할 수 있다. 소스 디바이스(10)는 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스(20)로 전달할 수 있다.
소스 디바이스(10)는 비디오 소스(11), 인코딩 장치(12), 송신기(13)를 포함할 수 있다. 수신 디바이스(20)는 수신기(21), 디코딩 장치(22) 및 렌더러(23)를 포함할 수 있다. 인코딩 장치(10)는 비디오/영상 인코딩 장치라고 불릴 수 있고, 디코딩 장치(20)는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기(13)는 인코딩 장치(12)에 포함될 수 있다. 수신기(21)는 디코딩 장치(22)에 포함될 수 있다. 렌더러(23)는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스(11)는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치(12)는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치(12)는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부(13)는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB(universal serial bus), SD(secure digital), CD(compact disk), DVD(digital video disk), 블루레이(bluray), HDD(hard disk drive), SSD(solid state drive) 등 다양한 저장 매체를 포함할 수 있다. 전송부(13)는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘레먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신기(21)는 비트스트림을 추출하여 디코딩 장치(22)로 전달할 수 있다.
디코딩 장치(22)는 인코딩 장치(12)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러(23)는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
도 2는 본 명세서의 실시예에 따른 비디오/이미지 신호의 인코딩이 수행되는 인코딩 장치의 개략적인 블록도를 나타낸다. 도 2의 인코딩 장치(100)는 도 1의 인코딩 장치(12)에 대응할 수 있다.
도 2를 참조하면, 인코딩 장치(100)는 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 메모리(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함하여 구성될 수 있다. 인터 예측부(180) 및 인트라 예측부(185)를 합쳐서 예측부라고 불릴 수 있다. 즉, 예측부는 인터 예측부(180) 및 인트라 예측부(185)를 포함할 수 있다. 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150)는 레지듀얼(residual) 처리부에 포함될 수 있다. 레지듀얼 처리부는 감산부(115)를 더 포함할 수도 있다. 상술한 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 인코더 또는 프로세서)에 의하여 구성될 수 있다. 또한 복호 픽처 버퍼(170)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 메모리 또는 디지털 저장 매체)에 의하여 구성될 수 있다. 또한, 메모리(170)는 DPB(decoded picture buffer)(175)를 포함할 수 있고, 디지털 저장 매체에 의해 구성될 수도 있다.
영상 분할부(110)는 인코딩 장치(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 처리 유닛은 코딩 유닛(CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBT(Quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 명세서에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 처리 유닛은 예측 유닛(PU) 또는 변환 유닛(TU)을 더 포함할 수 있다. 이 경우 예측 유닛 및 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(100)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(120)로 전송된다. 이 경우 도시된 바와 같이 인코딩 장치(100) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(115)라고 불릴 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 각 예측모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(185)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(185)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(180)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(180)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(180)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
인터 예측부(180) 또는 인트라 예측부(185)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다.
변환부(120)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(discrete cosine transform), DST(discrete sine transform), KLT(Karhunen-Loeve transform), GBT(graph-based transform), 또는 CNT(conditionally non-linear transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수들을 양자화하여 엔트로피 인코딩부(190)로 전송되고, 엔트로피 인코딩부(190)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(130)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(190)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding)과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(190)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(예: 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(190)로부터 출력된 신호는 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(100)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(190)의 구성요소일 수도 있다.
양자화부(130)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들은에 루프 내의 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호를 복원할 수 있다. 가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(160)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 복호 픽처 버퍼(170)에 전송할 수 있다. 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(160)는 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
DPB(175)에 전송된 수정된 복원 픽처는 인터 예측부(180)에서 참조 픽처로 사용될 수 있다. 인코딩 장치(100)는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(100)와 디코딩 장치(200)에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
복호 픽처 버퍼(170)는 수정된 복원 픽처를 인터 예측부(180)에서의 참조 픽처로 사용하기 위해 저장할 수 있다.
도 3은 본 명세서의 실시예에 따른 영상 신호의 디코딩이 수행되는 디코딩 장치의 개략적인 블록도를 나타낸다. 도 3의 디코딩 장치(200)는 도 1의 디코딩 장치(22)에 대응할 수 있다.
도 3을 참조하면, 디코딩 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다. 인터 예측부(260) 및 인트라 예측부(265)를 합쳐서 예측부라고 불릴 수 있다. 즉, 예측부는 인터 예측부(180) 및 인트라 예측부(185)를 포함할 수 있다. 역양자화부(220), 역변환부(230)를 합쳐서 레지듀얼 처리부라고 불릴 수 있다. 즉, 레지듀얼 처리부는 역양자화부(220), 역변환부(230)을 포함할 수 있다. 상술한 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 또는 프로세서)에 의하여 구성될 수 있다. 또한 복호 픽처 버퍼(250)은 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 메모리 또는 디지털 저장 매체)에 의하여 구현될 수 있다.
비디오/이미지 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(200)는 도 2의 인코딩 장치(100)에서 비디오/이미지 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(200)는 인코딩 장치(100)에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩시 처리 유닛은, 예를 들어, 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조에 따라 분할될 수 있다. 그리고, 디코딩 장치(200)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(200)는 도 2의 인코딩 장치(100)로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(210)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(예: 비디오/영상 정보)를 도출할 수 있다. 예컨대, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈(bin)을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(260) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(220)로 입력될 수 있다. 또한, 엔트로피 디코딩부(210)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(240)로 제공될 수 있다. 한편, 인코딩 장치(100)로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(200)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(210)의 구성요소일 수도 있다.
역양자화부(220)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(220)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 인코딩 장치(100)에서 수행된 계수 스캔 순서에 기반하여 재정렬이 수행될 수 있다. 역양자화부(220)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)을 획득할 수 있다.
역변환부(230)는 변환 계수들을 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부는 현재 블록에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(210)로부터 출력된 예측에 관한 정보를 기반으로 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 이격되어 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(265)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(260)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(260)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신된 후보 선택 정보를 기반으로 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예측에 관한 정보는 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(235)는 획득된 레지듀얼 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(235)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(240)는 복원 신호에 필터링을 적용함으로써 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(240)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 복호 픽처 버퍼(250)에 전송할 수 있다. 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset, SAO), 적응적 루프 필터(adaptive loop filter, ALF), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
DPB(175)에 전송된 수정된 복원 픽처는 인터 예측부(260)에 의해 참조 픽쳐로 사용될 수 있다.
본 명세서에서, 인코딩 장치(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코딩 장치의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일 또는 대응되도록 적용될 수 있다.
도 4는 본 명세서의 실시예에 따른 컨텐츠 스트리밍 시스템의 구조도이다.
본 명세서가 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버(410), 스트리밍 서버(420), 웹 서버(430), 미디어 저장소(440), 사용자 장치(450) 및 멀티미디어 입력 장치(460)를 포함할 수 있다.
인코딩 서버(410)는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 스트리밍 서버(420)로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치(460)들이 비트스트림을 직접 생성하는 경우, 인코딩 서버(410)는 생략될 수 있다.
비트스트림은 본 명세서가 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 스트리밍 서버(420)는 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 비트스트림을 저장할 수 있다.
스트리밍 서버(420)는 웹 서버(430)를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치(450)에 전송하고, 웹 서버(430)는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 웹 서버(430)에 원하는 서비스를 요청하면, 웹 서버(430)는 이를 스트리밍 서버(420)에 전달하고, 스트리밍 서버(420)는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 제어 서버는 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
스트리밍 서버(420)는 미디어 저장소(440) 및/또는 인코딩 서버(410)로부터 컨텐츠를 수신할 수 있다. 예를 들어, 인코딩 서버(410)로부터 컨텐츠를 수신하게 되는 경우, 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 스트리밍 서버(420)는 비트스트림을 일정 시간동안 저장할 수 있다.
사용자 장치(450)의 예로는, 휴대폰, 스마트 폰(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, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
블록 분할(Block Partitioning)
본 문서에 따른 비디오/영상 코딩 방법은 다양한 세부 기술들에 기반하여 수행될 수 있으며, 각각의 세부 기술들을 개략적으로 설명하면 다음과 같다. 이하 설명되는 기술들은 상술한 및/또는 후술되는 비디오/영상 인코딩/디코딩 절차에서의 예측, 레지듀얼 처리(변환, 양자화 등), 신텍스 요소 코딩, 필터링, 파티셔닝/분할 등의 관련 절차에 연관될 수 있음은 당업자에게 자명하다.
픽처들은 코딩 트리 유닛들(CTUs)의 시퀀스로 분할될(divided into a sequence) 수 있다. CTU는 코딩 트리 블록(CTB)에 대응될 수 있다. 혹은 CTU는 루마 샘플들의 코딩 트리 블록과, 대응하는 크로마 샘플들의 두개의 코딩 트리 블록들을 포함할 수 있다. 다시 말하면, 세가지 샘플 어레이를 포함하는 픽처에 대하여, CTU는 루마 샘플들의 NxN 블록과 크로마 샘플들의 두개의 대응 블록들을 포함할 수 있다.
도 5는 본 명세서의 실시예에 따른 멀티타입 트리 분할 모드들의 예를 도시한다.
CTU는 쿼드트리(quad-tree, QT) 구조를 기반으로 CU들로 분할될 수 있다. 쿼드트리 구조는 쿼터너리(quaternary) 트리 구조라고 불릴 수 있다. 이는 다양한 국지적 특징(local characteristic)을 반영하기 위함이다. 한편, 본 문서에서는 CTU는 쿼드트리 뿐 아니라 바이너리 트리(binary-tree, BT) 및 터너리 트리(ternary-tree, TT)을 포함하는 멀티타입 트리 구조 분할을 기반하여 분할될 수 있다. 이하, QTBT 구조라 함은 쿼드트리 및 바이너리 트리 기반 분할 구조를 포함할 수 있고, QTBTTT라 함은 쿼드트리, 바이너리 트리 및 터너리 트리 기반 분할 구조를 포함할 수 있다. 혹은 QTBT 구조는 쿼드트리, 바이너리 트리 및 터너리 트리 기반 분할 구조를 포함할 수도 있다. 코딩 트리 구조에서, CU는 정사각형 또는 직사각형 모양을 가질 수 있다. CTU는 먼저 쿼드트리 구조로 분할될 수 있다. 이후 쿼드트리 구조의 리프 노드들은 멀티타입 트리 구조에 의하여 더 분할될 수 있다. 예를 들어 도 6에서 나타난 바와 같이, 멀티타입 트리 구조에서 개략적으로 4개의 분할 타입을 포함할 수 있다.
도 6에 나타난 4개의 분할 타입은 수직 바이너리 분할(vertical binary splitting, SPLIT_BT_VER), 수평 바이너리 분할(horizontal binary splitting, SPLIT_BT_HOR), 수직 터너리 분할(vertical ternary splitting, SPLIT_TT_VER), 수평 터너리 분할(horizontal ternary splitting, SPLIT_TT_HOR)을 포함할 수 있다. 멀티타입 트리 구조의 리프 노드들은 CU들이라고 불리 수 있다. 이러한 CU들은 예측 및 변환 절차를 위하여 사용될 수 있다. 본 문서에서 일반적으로 CU, PU, TU는 동일한 블록 사이즈를 가질 수 있다. 다만, 최대 허용 변환 길이(maximum supported transform length)가 CU의 컬러 성분(colour component)의 너비 또는 높이보다 작은 경우에는 CU와 TU가 서로 다른 블록 사이즈를 가질 수 있다.
예측(Prediction)
디코딩이 수행되는 현재 처리 유닛을 복원하기 위하여, 현재 처리 유닛이 포함된 현재 픽처 또는 다른 픽처들의 디코딩된 부분을 이용할 수 있다.
복원에 있어 현재 픽처만이 이용되는 경우, 즉, 인트라 예측만이 수행되는 픽처(슬라이스)를 인트라 픽처 또는 I-픽처(I-슬라이스), 각 유닛을 예측하기 위하여 하나의 움직임 벡터 및 참조 인덱스를 이용하는 픽처(슬라이스)를 예측 픽처 또는 P-픽처(P-슬라이스), 두 개 이상의 움직임 벡터들 및 참조 인덱스들을 이용하는 픽처(슬라이스)를 쌍 예측 픽처 또는 B-픽처(B-슬라이스)로 지칭할 수 있다.
인터 예측은 현재 픽처 이외의 픽처의 데이터 요소(예를 들어, 샘플 값 또는 움직임 벡터)에 기반하여 현재 블록의 샘플 값을 도출하는 예측 방법을 의미한다. 즉, 현재 픽처 이외의 복원된 다른 픽처의 복원된 영역들을 참조함으로써 현재 블록의 샘플 값을 예측하는 방법을 의미한다.
이하, 인터 예측(또는 화면 간 예측)에 대하여 보다 상세히 설명한다.
인터 예측(Inter prediction)
인코딩 장치(100) 및 디코딩 장치(200)의 예측부는 블록 단위로 인터 예측을 수행함으로써 예측 샘플을 도출할 수 있다. 인터 예측은 현재 픽처 이외의 픽처(들)의 데이터 요소들(예: 샘플 값 또는 움직임 정보)에 의존적인 방법으로 도출되는 예측을 의미할 수 있다. 현재 블록에 인터 예측이 적용되는 경우, 참조 픽처 인덱스가 지시하는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)에 기반하여, 현재 블록에 대한 예측된 블록(예측 샘플 어레이)를 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 감소시키기 위하여 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 현재 블록의 움직임 정보를 블록, 서브블록, 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 타입(L0 예측, L1 예측, 또는 Bi 예측) 정보를 더 포함할 수 있다. 인터 예측이 적용되는 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 상이할 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU)과 같이 지칭될 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)로 지칭될 수 있다. 예를 들어, 현재 블록의 주변 블록들에 기반하여 움직임 정보 후보 리스트가 구성될 수 있고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 선택(사용)되는지를 지시하는 플래그 또는 인덱스 정보가 시그널링될 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우, 현재 블록의 움직임 정보는 선택된 주변 블록의 움직임 정보와 동일할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 선택된 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)은 인코딩 장치(100)로부터 디코딩 장치(200)로 시그널링 될 수 있다. 이 경우 움직임 벡터 예측자 및 움직임 벡터 차분의 합을 이용하여 현재 블록의 움직임 벡터가 도출될 수 있다. 인터 예측에 기반한 비디오/영상 인코딩 절차 및 인코딩 장치(100) 내 인터 예측부(180)는 도 6 및 도 7과 같을 수 있다.
도 6은 본 명세서의 실시예에 따른 인터 예측에 기반한 비디오/영상 인코딩을 위한 흐름도의 예를 도시하고, 도 7은 본 명세서의 실시예에 따른 인코딩 장치 내 인터 예측부의 블록도의 예를 도시한다.
S610 단계에서, 인코딩 장치(100)는 현재 블록에 대한 인터 예측을 수행한다. 본 명세서에서, 현재 블록은 인코딩 장치(100) 또는 디코딩 장치(200)에 의해 처리되는 임의의 블록을 지칭한다. 인코딩 장치(100)는 현재 블록의 인터 예측 모드 및 움직임 정보를 도출하고, 인터 예측 모드 및 움직임 정보에 기반하여 현재 블록의 예측 샘플들을 생성할 수 있다. 여기서 인터 예측 모드 결정, 움직임 정보 도출 및 예측 샘플들 생성 절차는 동시에 수행될 수 있고, 어느 한 절차가 다른 절차보다 먼저 수행될 수도 있다. 예를 들어, 인코딩 장치(100)의 인터 예측부(180)는 예측 모드 결정부(181), 움직임 정보 도출부(182), 및 예측 샘플 도출부(183)를 포함할 수 있다. 예측 모드 결정부(181)는 현재 블록에 대한 예측 모드를 결정하고, 움직임 정보 도출부(182)는 현재 블록의 움직임 정보를 도출하고, 예측 샘플 도출부(183)는 현재 블록의 움직임 샘플들을 도출할 수 있다. 예를 들어, 인코딩 장치(100)의 인터 예측부(180)는 움직임 추정(motion estimation)을 통하여 참조 픽처들의 일정 영역(탐색 영역) 내에서 현재 블록과 유사한 블록을 탐색하고, 현재 블록과의 차이가 최소 또는 일정 기준 이하인 참조 블록을 도출할 수 있다. 도출된 참조 픽처 및 참조 블록에 대한 정보를 기반으로, 인터 예측부(180)는 참조 블록이 위치하는 참조 픽처를 가리키는 참조 픽처 인덱스를 도출하고, 참조 블록과 현재 블록의 위치 차이에 기반하여 움직임 벡터를 도출할 수 있다. 인코딩 장치(100)는 다양한 예측 모드들 중 현재 블록에 적용될 예측 모드(예: 스킵 모드, 머지 모드, 또는 MVP 모드)를 결정할 수 있다. 인코딩 장치(100)는 다양한 예측 모드들에 대한 비용-왜곡 비용(rate-distortion cost, RD cost)를 비교하고 현재 블록에 대한 최적의 예측 모드를 결정할 수 있다.
예를 들어, 인코딩 장치(100)는, 현재 블록에 스킵 모드 또는 머지 모드가 적용되는 경우, 후술하는 머지 후보 리스트를 구성하고, 머지 후보 리스트에 포함된 머지 후보들이 가리키는 참조 블록들 중 현재 블록과의 차이가 최소 또는 일정 기준 이하인 참조 블록을 도출할 수 있다. 이 경우(스킵 모드 또는 머지 모드가 적용되는 경우), 도출된 참조 블록과 연관된 머지 후보가 선택되며, 선택된 머지 후보를 가리키는 머지 인덱스 정보가 생성되고 디코딩 장치로 시그널링될 수 있다. 인터 예측부(180)는 선택된 머지 후보의 움직임 정보를 사용하여 현재 블록의 움직임 정보를 도출할 수 있다.
다른 예로, 인코딩 장치(100)는 현재 블록에 (A)MVP 모드가 적용되는 경우, 후술하는 (A)MVP 후보 리스트를 구성하고, (A)MVP 후보 리스트에 포함된 MVP(motion vector predictor) 후보들 중 선택된 MVP 후보의 움직임 벡터를 현재 블록의 MVP로 사용할 수 있다. 이 경우(MVP 모드가 적용되는 경우), 예를 들어, 상술한 바와 같은 움직임 추정에 의하여 도출된 참조 블록을 가리키는 움직임 벡터가 현재 블록의 움직임 벡터로 이용될 수 있고, MVP 후보들 중 현재 블록의 움직임 벡터와의 차이가 가장 작은 움직임 벡터를 MVP 후보가 선택된 MVP 후보가 될 수 있다. 현재 블록의 움직임 벡터에서 선택된 MVP 후보의 움직임 벡터를 뺀 차분인 MVD(motion vector difference)가 도출될 수 있다. 이 경우 MVD에 관한 정보가 디코딩 장치(200)로 시그널링될 수 있다. 또한, (A)MVP 모드가 적용되는 경우, 참조 픽처 인덱스의 값은 참조 픽처 인덱스 정보로 구성되고 별도로 디코딩 장치(200)로 전송될 수 있다.
S620 단계에서, 인코딩 장치(100)는 예측 샘플들에 기반하여 레지듀얼 샘플들을 도출할 수 있다. 인코딩 장치(100)는 현재 블록의 원본 샘플들과 예측 샘플들의 비교를 통하여 레지듀얼 샘플들을 도출할 수 있다.
S630 단계에서, 인코딩 장치(100)는 예측 정보 및 레지듀얼 정보를 포함하는 영상 정보를 인코딩한다. 인코딩 장치(100)는 인코딩된 영상 정보를 비트스트림의 형태로 출력할 수 있다. 예측 정보는 예측 절차와 관련된 정보에 기반하여 예측 모드 정보(예: 스킵 플래그, 머지 플래그, 또는 모드 인덱스) 및 움직임 정보를 포함할 수 있다. 움직임 정보는 움직임 벡터를 도출하기 위한 정보인 후보 선택 정보(예: 머지 인덱스, MVP 플래그, 또는 MVP 인덱스)를 포함할 수 있다. 또한, 움직임 정보는 상술한 MVD에 관한 정보 및/또는 참조 픽처 인덱스 정보를 포함할 수 있다. 또한 움직임 정보는 L0 예측, L1 예측, 또는 양방향(Bi) 예측이 적용되는지 여부를 나타내는 정보를 포함할 수 있다. 레지듀얼 정보는 레지듀얼 샘플들에 관한 정보이다. 레지듀얼 정보는 레지듀얼 샘플들에 대한 양자화된 변환 계수들에 관한 정보를 포함할 수 있다.
출력된 비트스트림은 (디지털) 저장 매체에 저장됨으로써 디코딩 장치(200)로 전달될 수 있고, 또는 네트워크를 통하여 디코딩 장치(200)로 전달될 수 있다.
한편, 상술한 바와 같이 인코딩 장치(100)는 참조 샘플들 및 레지듀얼 샘플들에 기반하여 복원 샘플들 및 복원 블록을 포함하는 복원 픽처를 메모리에 저장하고, 인터 예측을 위한 참조 픽처로 활용할 수 있다. 복원 픽처에 인루프 필터링과 같은 절차들이 더 적용될 수 있다.
인터 예측에 기반한 비디오/영상 디코딩 절차 및 디코딩 장치(200) 내 인터 예측부(260)는 개략적으로 도 8 및 도 9와 같을 수 있다.
도 8은 본 명세서의 실시예에 따른 인터 예측에 기반한 비디오/영상 디코딩을 위한 흐름도의 예를 도시하며, 도 9는 본 명세서의 실시예에 따른 디코딩 장치 내 인터 예측부의 블록도의 예를 도시한다.
디코딩 장치(200)는 인코딩 장치(100)에서 수행된 동작에 대응하는 동작을 수행할 수 있다. 디코딩 장치(200)는 수신된 예측 정보에 기반하여 현재 블록에 대한 예측을 수행하고 예측 샘플들을 도출할 수 있다.
구체적으로, S810 단계에서 디코딩 장치(200)는 수신된 예측 정보에 기반하여 현재 블록에 대한 예측 모드를 결정할 수 있다. 디코딩 장치(200)는 예측 정보의 예측 모드 정보에 기반하여 현재 블록에 적용될 인터 예측 모드를 결정할 수 있다.
예를 들어, 디코딩 장치(200)는 머지 플래그에 기반하여 현재 블록에 머지 모드가 적용되는지 또는 (A)MVP 모드가 적용되는지 여부를 결정할 수 있다. 또한, 디코딩 장치(200)는 모드 인덱스에 기반하여 다양한 인터 예측 모드 후보들 중 하나를 선택할 수 있다. 인터 예측 모드 후보들은 스킵 모드, 머지 모드, 및/또는 (A)MVP 모드를 포함할 수 있고, 또는 후술하는 다양한 인터 예측 모드들을 포함할 수 있다.
S820 단계에서, 디코딩 장치(200)는 결정된 인터 예측 모드에 기반하여 현재 블록의 움직임 정보를 도출한다. 예를 들어, 디코딩 장치(200)는 현재 블록에 스킵 모드 또는 머지 모드가 적용되는 경우, 후술하는 머지 후보 리스트를 구성하고, 머지 후보 리스트에 포함된 머지 후보들 중 하나의 머지 후보를 선택할 수 있다. 머지 후보의 선택은 상술한 선택 정보(예: 머지 인덱스)에 기반하여 수행될 수 있다. 디코딩 장치(200)는 선택된 머지 후보의 움직임 정보를 이용하여 현재 블록의 움직임 정보를 도출할 수 있다. 선택된 머지 후보의 움직임 정보는 현재 블록의 움직임 정보로서 이용될 수 있다.
다른 예로, 디코딩 장치(200)는 현재 블록에 (A)MVP 모드가 적용되는 경우, 후술하는 (A)MVP 후보 리스트를 구성하고, (A)MVP 후보 리스트에 포함된 MVP 후보들 중 선택된 MVP 후보의 움직임 벡터를 현재 블록의 움직임 벡터로서 이용할 수 있다. MVP 후보의 선택은 상술한 선택 정보(MVP 플래그 또는 MVP 인덱스)에 기반하여 수행될 수 있다. 이 경우(MVP 모드가 적용되는 경우) 디코딩 장치(200)는 MVD에 관한 정보에 기반하여 현재 블록의 MVD를 도출할 수 있으며, 선택된 MVP의 움직임 벡터와 MVD에 기반하여 현재 블록의 움직임 벡터를 도출할 수 있다. 또한, 디코딩 장치(200)는 참조 픽처 인덱스 정보에 기반하여 현재 블록의 참조 픽처 인덱스를 도출할 수 있다. 현재 블록에 관한 참조 픽처 리스트에서 참조 픽처 인덱스에 의해 지시되는 픽처가 현재 블록의 인터 예측을 위하여 참조되는 참조 픽처로 도출될 수 있다.
한편, 후술하는 바와 같이 후보 리스트 구성 없이 현재 블록의 움직임 정보가 도출될 수 있으며, 이 경우 후술하는 예측 모드에서 개시된 절차에 따라 현재 블록의 움직임 정보가 도출될 수 있다. 이 경우 상술한 바와 같은 후보 리스트 구성은 생략될 수 있다.
S830 단계에서, 디코딩 장치(200)는 현재 블록의 움직임 정보에 기반하여 현재 블록에 대한 예측 샘플들을 생성할 수 있다. 이 경우 디코딩 장치(200)는 현재 블록의 참조 픽처 인덱스에 기반하여 참조 픽처를 도출하고, 참조 픽처 상에서 현재 블록의 움직임 벡터에 의해 지시되는 참조 블록의 샘플들을 이용하여 현재 블록의 예측 샘플들을 도출할 수 있다. 이 경우, 후술하는 바와 같이, 경우에 따라 현재 블록의 예측 샘플들 중 전부 또는 일부에 대한 예측 샘플 필터링 절차가 더 수행될 수 있다.
예를 들어, 디코딩 장치(200)의 인터 예측부(260)는 예측 모드 결정부(261), 움직임 정보 도출부(262), 예측 샘플 도출부(263)를 포함할 수 있다. 예측 모드 결정부(181)는 수신된 예측 모드 정보에 기반하여 현재 블록에 대한 예측 모드를 결정하고, 움직임 정보 도출부(182)는 수신된 움직임 정보에 기반하여 현재 블록의 움직임 정보(움직임 벡터 및/또는 참조 픽처 인덱스)를 도출하고, 예측 샘플 도출부(183)는 현재 블록의 예측 샘플들을 도출할 수 있다.
S840 단계에서, 디코딩 장치(200)는 수신된 레지듀얼 정보에 기반하여 현재 블록에 대한 레지듀얼 샘플들을 생성한다. S850 단계에서, 디코딩 장치(200)는 예측 샘플들 및 레지듀얼 샘플들에 기반하여 현재 블록에 대한 복원 샘플들을 생성하고, 복원 샘플들에 기반하여 복원 픽처를 생성할 수 있다. 이후 복원 픽처에 인루프 필터링 절차가 더 적용될 수 있다.
상술한 바와 같이 인터 예측 절차는 인터 예측 모드 결정 단계, 결정된 예측 모드에 따른 움직임 정보 도출 단계, 도출된 움직임 정보에 기반한 예측 수행(예측 샘플 생성) 단계를 포함할 수 있다.
인터 예측 모드 결정(Determination of inter prediction mode)
픽처 내 현재 블록의 예측을 위하여 다양한 인터 예측 모드가 사용될 수 있다. 예를 들어, 머지 모드, 스킵 모드, MVP 모드, 어파인(Affine) 모드와 같이 다양한 모드가 사용될 수 있다. DMVR(decoder side motion vector refinement) 모드, AMVR(adaptive motion vector resolution) 모드가 부수적인 모드로 더 사용될 수 있다. 어파인 모드는 어파인 움직임 예측(affine motion prediction) 모드로 지칭될 수 있다. MVP 모드는 AMVP(advanced motion vector prediction) 모드로 지칭될 수 있다.
현재 블록의 인터 예측 모드를 지시하는 예측 모드 정보가 인코딩 장치(100)로부터 디코딩 장치(200)로 시그널링될 수 있다. 예측 모드 정보는 비트스트림에 포함되어 디코딩 장치(200)로 전송될 수 있다. 예측 모드 정보는 다수의 후보 모드들 중 하나를 지시하는 인덱스 정보를 포함할 수 있다. 또한, 예측 모드 정보는 플래그 정보의 계층적 시그널링을 통하여 인터 예측 모드를 지시할 수도 있다. 이 경우 예측 모드 정보는 하나 이상의 플래그들을 포함할 수 있다. 예를 들어, 스킵 플래그의 시그널링을 통해 스킵 모드 적용 여부가 지시되고, 스킵 모드가 적용 안되는 경우 머지 플래그의 시그널링을 통해 머지 모드 적용 여부가 지시되고, 머지 모드가 적용 안되는 경우 MVP 모드 적용되는 것으로 지시(암시)되거나 추가적인 구분을 위한 플래그가 더 시그널링될 수 있다. 어파인 모드는 독립적인 모드로 시그널링될 수도 있고, 또는 머지 모드 또는 MVP 모드에 종속적인 모드로 시그널링될 수도 있다. 예를 들어, 어파인 모드는 후술하는 바와 같이 머지 후보 리스트 또는 MVP 후보 리스트의 하나의 후보로 구성될 수도 있다.
움직임 정보 도출(Derivation of motion information according to inter prediction mode)
현재 블록의 움직임 정보에 기반한 인터 예측이 수행될 수 있다. 인코딩 장치(100)는 움직임 추정(motion estimation) 절차를 통하여 현재 블록에 대한 최적의 움직임 정보를 도출할 수 있다. 예를 들어, 인코딩 장치(100)는 현재 블록과 관련된 원본 픽처(original picture) 내 원본 블록을 이용하여 상관성이 높은 유사한 참조 블록을 참조 픽처 내의 정해진 탐색 범위 내에서 정수 또는 분수 픽셀 단위로 탐색함으로써 움직임 정보를 도출할 수 있다. 블록의 유사성은 위상(phase) 기반 샘플 값들의 차를 기반으로 도출될 수 있다. 예를 들어, 블록의 유사성은 현재 블록(또는 현재 블록의 템플릿)과 참조 블록(또는 참조 블록의 템플릿) 간 SAD(sum of difference)를 기반으로 계산될 수 있다. 이 경우 탐색 영역 내 SAD가 가장 작은 참조 블록을 기반으로 움직임 정보가 도출될 수 있다. 도출된 움직임 정보는 인터 예측 모드에 기반하여 여러 방법에 따라 디코딩 장치(200)로 시그널링될 수 있다.
머지 모드 및 스킵 모드
머지 모드(merge mode)가 적용되는 경우, 현재 예측 블록의 움직임 정보가 직접적으로 전송되지 않고, 주변 예측 블록의 움직임 정보에 기반하여 현재 예측 블록의 움직임 정보가 유도된다. 따라서, 머지 모드가 사용됨을 알리기 위한 플래그 정보 및 주변의 어느 예측 블록이 사용되는지를 알리기 위한 머지 인덱스를 통하여써 현재 예측 블록의 움직임 정보가 지시될 수 있다.
인코딩 장치(100)는 머지 모드에 따라 현재 예측 블록의 움직임 정보를 유도하기 위해 이용되는 머지 후보 블록(merge candidate block)을 탐색할 수 있다. 예를 들어, 머지 후보 블록은 최대 5개까지 사용될 수 있으나, 본 명세서의 실시예는 이에 한정되지 않으며 머지 후보 블록의 개수는 다양할 수 있다. 그리고, 머지 후보 블록의 최대 개수는 슬라이스 헤더 단위로 전송될 수 있으나, 본 명세서의 실시예는 이에 한정되지 않으며 머지 후보 블록의 최대 개수는 다양한 방식으로 전송될 수 있다. 머지 후보 블록들에 대한 탐색 이후, 인코딩 장치(100)는 머지 후보 리스트를 생성할 수 있고, 머지 후보 리스트에 포함된 머지 후보들 중 가장 작은 비용을 갖는 머지 후보 블록을 최종 머지 후보 블록으로 선택할 수 있다.
본 명세서의 실시예는 머지 후보 리스트를 구성하기 위한 방법을 제공한다.
도 10은 본 명세서의 실시예에 따른 인터 예측을 위한 공간적 주변 블록들의 예를 도시한다.
예를 들어, 머지 후보 리스트는 5개의 머지 후보 블록을 포함할 수 있다. 예를 들어, 머지 후보 리스트는 4개의 공간적 머지 후보(spatial merge candidate)와 1개의 시간적 머지 후보(temporal merge candidate)를 포함할 수 있다. 구체적 예로, 공간적 머지 후보의 경우 도 10에 도시된 블록들을 공간적 머지 후보로 이용할 수 있다.
현재 블록에 대한 머지 후보 리스트는 예를 들어 도 11과 같은 절차에 기반하여 구성될 수 있다.
도 11은 본 명세서의 실시예에 따른 머지 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
S1110 단계에서, 코딩 장치(인코딩 장치(100) 또는 디코딩 장치(200))는 현재 블록의 공간적 주변 블록들을 탐색하여 도출된 공간적 머지 후보들을 머지 후보 리스트에 삽입한다. 예를 들어, 공간적 주변 블록들은 현재 블록의 좌하측 코너 주변 블록(A0), 좌측 주변 블록(A1), 우상측 코너 주변 블록(B0), 상측 주변 블록(B1), 좌상측 코너 주변 블록(B2)을 포함할 수 있다. 다만, 이는 예시로서 상술한 공간적 주변 블록들 이외에도 우측 주변 블록, 하측 주변 블록, 우하측 주변 블록과 같이 추가적인 주변 블록들이 현재 블록의 머지 후보 리스트를 구성하기 위한 공간적 주변 블록들로 사용될 수 있다. 코딩 장치는 공간적 주변 블록들 사이의 우선순위에 기반한 탐색을 통하여 사용 가능한 블록들을 검출하고, 검출된 블록들의 움직임 정보를 상기 공간적 머지 후보들로 도출할 수 있다. 예를 들어, 인코딩 장치(100) 및 디코딩 장치(200)는 도 10에 도시된 5개의 블록들을 A1, B1, B0, A0, B2의 순서대로 탐색하고, 사용 가능한 후보들에 대해 순차적으로 인덱싱함으로써 머지 후보 리스트를 구성할 수 있다.
S1120 단계에서, 코딩 장치는 현재 블록의 시간적 주변 블록을 탐색하여 도출된 시간적 머지 후보를 머지 후보 리스트에 삽입한다. 시간적 주변 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다. 한편, 움직임 데이터 압축(motion data compression)이 적용되는 경우, col 픽처에 일정 저장 단위마다 특정 움직임 정보가 대표 움직임 정보로서 저장될 수 있다. 이 경우 코딩 장치는 일정 저장 단위 내의 모든 블록에 대한 움직임 정보를 저장할 필요가 없으며 이를 통하여 움직임 데이터 압축 효과를 얻을 수 있다. 이 경우, 일정 저장 단위는 예를 들어 16x16 샘플 단위, 또는 8x8 샘플 단위와 같이 미리 정해질 수도 있고, 또는 인코딩 장치(100)에서 디코딩 장치(200)로 일정 저장 단위에 대한 사이즈 정보가 시그널링될 수도 있다. 움직임 데이터 압축이 적용되는 경우 시간적 주변 블록의 움직임 정보는 시간적 주변 블록이 위치하는 일정 저장 단위의 대표 움직임 정보로 대체될 수 있다. 즉, 이 경우 구현 측면에서 보면, 시간적 주변 블록의 좌표에 위치하는 예측 블록이 아닌, 시간적 주변 블록의 좌표(좌상단 샘플 포지션)를 기반으로 일정 값만큼 산술적 오른쪽 쉬프트 후 산술적 왼쪽 쉬프트 한 위치를 커버하는 예측 블록의 움직임 정보를 기반으로 시간적 머지 후보가 도출될 수 있다. 예를 들어, 일정 저장 단위가 2nx2n 샘플 단위인 경우, 시간적 주변 블록의 좌표가 (xTnb, yTnb)라 하면, 수정된 위치인 ((xTnb>>n)<<n), (yTnb>>n)<<n))에 위치하는 예측 블록의 움직임 정보가 상기 시간적 머지 후보를 위하여 사용될 수 있다. 구체적으로 예를 들어, 일정 저장 단위가 16x16 샘플 단위인 경우, 시간적 주변 블록의 좌표가 (xTnb, yTnb)라 하면, 수정된 위치인 ((xTnb>>4)<<4), (yTnb>>4)<<4))에 위치하는 예측 블록의 움직임 정보가 시간적 머지 후보를 위하여 사용될 수 있다. 또는 예를 들어, 일정 저장 단위가 8x8 샘플 단위인 경우, 시간적 주변 블록의 좌표가 (xTnb, yTnb)라 하면, 수정된 위치인 ((xTnb>>3)<<3), (yTnb>>3)<<3))에 위치하는 예측 블록의 움직임 정보가 상기 시간적 머지 후보를 위하여 사용될 수 있다.
S1130 단계에서, 코딩 장치는 현재 머지 후보들의 개수가 최대 머지 후보들의 개수보다 작은지 여부를 확인할 수 있다. 최대 머지 후보들의 개수는 미리 정의되거나 인코딩 장치(100)로부터 디코딩 장치(200)로 시그널링될 수 있다. 예를 들어, 인코딩 장치(100)는 최대 머지 후보들의 개수에 관한 정보를 생성하고, 생성된 정보를 인코딩함으로써 비트스트림의 형태로 디코딩 장치(200)로 전달할 수 있다. 최대 머지 후보들의 개수가 다 채워지면 이후의 후보 추가 과정은 진행되지 않을 수 있다.
S1140 단계에서, 현재 머지 후보들의 개수가 최대 머지 후보들의 개수보다 작은 경우, 코딩 장치는 추가 머지 후보를 상기 머지 후보 리스트에 삽입한다. 예를 들어, 추가 머지 후보는 ATMVP, 결합된 양방향 예측(combined bi-predictive) 머지 후보(현재 슬라이스의 슬라이스 타입이 B 타입인 경우) 및/또는 제로 벡터 머지 후보를 포함할 수 있다.
현재 머지 후보들의 개수가 최대 머지 후보들의 개수보다 작지 않은 경우, 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다. 이 경우 인코딩 장치(100)는 RD 비용에 기반하여 머지 후보 리스트를 구성하는 머지 후보들 중 최적의 머지 후보를 선택할 수 있으며, 선택된 머지 후보를 가리키는 선택 정보(예: 머지 인덱스)를 디코딩 장치(200)로 시그널링할 수 있다. 디코딩 장치(200)는 머지 후보 리스트 및 선택 정보에 기반하여 최적의 머지 후보를 선택할 수 있다.
선택된 머지 후보의 움직임 정보가 현재 블록의 움직임 정보로 사용될 수 있으며, 현재 블록의 움직임 정보에 기반하여 현재 블록의 예측 샘플들을 도출할 수 있다. 인코딩 장치(100)는 예측 샘플들에 기반하여 현재 블록의 레지듀얼 샘플들을 도출할 수 있으며, 레지듀얼 샘플들에 관한 레지듀얼 정보를 디코딩 장치(200)로 시그널링할 수 있다. 디코딩 장치(200)는 레지듀얼 정보에 기반하여 도출된 레지듀얼 샘플들 및 예측 샘플들을 기반으로 복원 샘플들을 생성하고, 복원 샘플들에 기반하여 복원 픽처를 생성할 수 있다.
스킵 모드(skip mode)가 적용되는 경우, 코딩 장치는 머지 모드가 적용되는 경우와 동일한 방법으로 현재 블록의 움직임 정보를 도출할 수 있다. 다만, 스킵 모드가 적용되는 경우 해당 블록에 대한 레지듀얼 신호가 생략되며 따라서 예측 샘플들이 바로 복원 샘플들로 이용될 수 있다.
MVP 모드
MVP(motion vector prediction) 모드가 적용되는 경우, 복원된 공간적 주변 블록(예를 들어, 도 10의 주변 블록)의 움직임 벡터 및/또는 시간적 주변 블록(또는 Col 블록)에 대응하는 움직임 벡터에 기반하여 움직임 벡터 예측자(motion vector predictor, MVP) 후보 리스트가 생성될 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록에 대응하는 움직임 벡터는 움직임 벡터 예측자 후보로 사용될 수 있다. 예측에 관한 정보는 움직임 벡터 예측자 후보 리스트에 포함된 움직임 벡터 예측자 후보들 중에서 선택된 최적의 움직임 벡터 예측자 후보를 지시하는 선택 정보(예: MVP 플래그 또는 MVP 인덱스)를 포함할 수 있다. 이 때, 예측부는 상기 선택 정보를 이용하여, 움직임 벡터 후보 리스트에 포함된 움직임 벡터 예측자 후보들 중에서, 현재 블록의 움직임 벡터 예측자를 선택할 수 있다. 인코딩 장치(100)의 예측부는 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 움직임 벡터 차분(MVD)을 구할 수 있고, MVD를 인코딩함으로써 비트스트림의 형태로 출력할 수 있다. 즉, MVD는 현재 블록의 움직임 벡터에서 움직임 벡터 예측자를 뺀 값에 해당할 수 있다. 이 때, 디코딩 장치(200)의 예측부는 예측에 관한 정보에 포함된 MVD를 획득하고, MVD와 움직임 벡터 예측자의 가산을 통해 현재 블록의 움직임 벡터를 도출할 수 있다. 디코딩 장치(200)의 예측부는 참조 픽처를 지시하는 참조 픽처 인덱스를 예측에 관한 정보로부터 획득 또는 유도할 수 있다. 예를 들어, 움직임 벡터 예측자 후보 리스트는 도 12와 같이 구성될 수 있다.
도 12는 본 명세서의 실시예에 따른 움직임 벡터 예측자 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
S1210 단계에서, 코딩 장치는 현재 블록의 움직임 벡터 예측을 위한 공간적 후보 블록을 탐색하여 예측 후보 리스트에 삽입한다. 공간적 후보 블록들은 도 10에 도시된 현재 블록의 이웃 블록들(A0, A1, B0, B1, B2)를 포함할 수 있다. 코딩 장치는 공간적 후보 블록들 중에서 현재 블록의 예측을 위하여 사용가능한 후보 블록을 탐색하고, 사용가능한 공간적 후보 블록의 움직임 벡터 예측자(움직임 벡터에 대한 정보)를 예측 후보 리스트에 추가할 수 있다.
S1220 단계에서, 코딩 장치는 현재 예측 후보 리스트에 포함된 공간적 후보 블록의 개수가 최대 후보 개수(예: 2)보다 작은지 여부를 결정한다. 도 12에서는 최대 후보 개수가 2인 것으로 도시되나, 본 명세서의 실시예는 이에 한정되지 않고 구현에 따라 최대 후보 개수는 다양하게 설정될 수 있다.
공간적 후보 블록의 개수가 최대 후보 개수보다 크거나 같은 경우, 코딩 장치는 예측 후보 리스트의 구성을 종료한다. 공간적 후보 블록의 개수가 최대 후보 개수보다 작은 경우, 코딩 장치는 S1230 단계로 진행한다. S1230 단계에서, 코딩 장치는 시간적 후보 블록을 탐색하여 예측 후보 리스트에 추가한다. 또한, S1240 단계에서 코딩 장치는 시간적 후보 블록의 사용이 불가능한 경우, 코딩 장치는 제로 움직임 벡터를 예측 후보 리스트에 추가할 수 있다.
예측 샘플 생성(Generation of prediction sample)
코딩 장치는 예측 모드에 따라 도출된 움직임 정보에 기반하여 현재 블록에 대한 예측된 블록을 도출할 수 있다. 예측된 블록은 현재 블록의 예측 샘플들(예측 샘플 어레이)를 포함할 수 있다. 현재 블록의 움직임 벡터가 분수 샘플 단위를 가리키는 경우, 보간(interpolation) 절차가 수행될 수 있으며, 보간 절차를 통하여 참조 픽처 내에서 분수 샘플 단위의 참조 샘플들에 기반하여 현재 블록의 예측 샘플들이 도출될 수 있다. 현재 블록에 어파인(affine) 인터 예측이 적용되는 경우, 샘플/서브블록 단위의 움직임 벡터에 기반하여 예측 샘플들이 생성될 수 있다. 양방향 예측이 적용되는 경우, L0 예측을 기반으로 도출된 예측 샘플들과 L1 예측을 기반으로 도출된 예측 샘플들의 (위상에 따른) 가중합을 통하여 최종 예측 샘플들을 도출할 수 있다. 여기서 L0 예측 샘플과 L1 예측 샘플에 적용되는 가중치 값들 각각은 GBi(generalized Bi-prediction) 가중치로 지칭될 수 있다.
도출된 예측 샘플들에 기반하여 복원 샘플들 및 복원 픽처가 생성될 수 있고, 이후 인루프 필터링 등의 절차가 수행될 수 있다.
HMVP (history-based MVP)
히스토리 기반 MVP(history-based MVP) 방법이 제안되며, 여기서 HMVP 후보는 이전에 코딩된 블록의 움직임 정보로서 정의된다. 다중 MVP 후보로 구성된 테이블은 인코딩/디코딩 과정에서 유지된다. 테이블은 새로운 슬라이스(slice)가 도입되면 비워진다. 인터-코딩된 블록이 있을 때마다, 관련된 움직임 정보가 새로운 HMVP 후보로서 테이블의 마지막 엔트리(entry)에 추가된다. 전반적인 코딩 흐름도는 도 13과 같다.
도 13은 본 명세서의 실시예에 따른 HMVP 방법이 적용된 디코딩 흐름도의 예를 도시한다.
도 13을 참조하면, HMVP 후보들로 구성된 테이블이 로딩된 이후 HMVP 후보들을 사용하여 디코딩이 수행되고, 디코딩된 움직임 정보를 사용하여 테이블에 대한 업데이트가 수행된다.
도 14a 및 도 14b는 본 명세서의 실시예에 따른 HMVP 방법에서 테이블을 업데이트하기 위한 방법의 예를 도시한다.
본 명세서에서, 테이블 사이즈 S는 16으로 설정될 수 있으며, 이는 최대 16개의 후보들이 테이블에 추가될 수 있음을 나타낸다. 만약 이전에 코딩된 블록들로부터 16개보다 많은 개수의 HMVP 후보들이 존재하면, FIFO(first-in first-out) 규칙이 적용됨으로써 테이블은 항상 가장 이전에 코딩된 16개의 움직임 후보들을 포함할 수 있다. 도 14a는 FIFO 규칙이 적용되어 HMVP 후보를 제거하고 테이블에 새로운 후보를 추가하는 예를 도시한다.
코딩 효율을 더욱 증대시키기 위하여, 제한적(constraint) FIFO 규칙이 소개되고, 여기서 테이블에 HMVP를 삽입할 때 중복성 체크(redundancy check)가 먼저 적용되어 테이블에 동일한 HMVP가 존재하는지 여부를 탐색한다. 만약 중복되는 HMVP가 탐색되면, 동일한 HMVP가 테이블로부터 제거되고 모든 HMVP 후보들이 전방으로(afterwards) 이동한다(즉, 인덱스가 1만큼 감소한다).
HMVP 후보들은 머지 후보 리스트 구성 프로세스에서 사용될 수 있다. 테이블에서 마지막 엔트리로부터 첫번째 엔트리까지의 모든 HMVP 후보들이 TMVP 후보(시간적 머지 후보) 이후에 삽입된다. 사용 가능한 머지 후보들의 총 개수가 시그널링된 최대의 허용된(signaled maximally allowed) 머지 후보들의 개수에 도달하면, 머지 후보 리스트 구성 프로세스가 종료된다.
유사하게, HMVP 후보들은 AMVP 후보 리스트 구성 프로세스에서 사용될 수 있다. 마지막 K개의 HMVP 후보들의 움직임 벡터들이 TMVP 후보 이후에 테이블에 삽입된다. AMVP 타겟 참조 픽처와 동일한 참조 픽처를 갖는 HMVP 후보들만이 AMVP 후보 리스트를 구성하기 위하여 이용될 수 있다. 프루닝(pruning)이 HMVP 후보들에 적용될 수 있다. 이 경우, K 값은 4로 설정될 수 있다.
추가적으로, 총 머지 후보 개수가 15보다 크거나 같으면, 절단된 유너리(truncated unary)에 고정된 길이(3 비트)를 더하는 이진화(binarization) 방법이 머지 인덱스를 코딩하기 위해 적용된다. N mrg로 표기되는 머지 후보들의 총 개수를 사용하여 이진화 방법은 아래의 표 1과 같이 테이블화된다.
Figure PCTKR2019017983-appb-img-000001
본 명세서의 실시예는 정지 영상 또는 동영상 인코딩/디코딩 방법 및 장치에 관한 것으로서, 인터 예측 프로세스의 HMVP에 기반하여 예측 후보를 구성하는 과정에서 양방향 예측 가중치와 관련된 정보 또는 GBi(generalized bi-prediction)을 고려하는 방법에 관한 것이다.
실시예 1
본 명세서의 실시예는 HMVP 버퍼 업데이트 과정에서 GBi 인덱스 또는 가중치를 고려하는 방법을 제안한다. HMVP 버퍼 업데이트 과정은 도 13과 같을 수 있다. 도 13에서 설명된 것과 같이 HMVP 버퍼는 디코딩된 움직임 정보만을 저장/관리한다. 본 실시예는 방법은 움직임 정보뿐만 아니라 디코딩된 GBi 또는 디코딩 과정에서 유도된 GBi 정보를 함께 저장/관리하는 방법을 제안한다.
본 실시예는 도 13에서 "Update the table with decoded motion information"으로 표현되는 과정에 대한 상세 방법을 설명한다.
도 15a 및 도 15b는 본 명세서의 실시예에 따른 HMVP 버퍼를 업데이트하기 위한 방법의 예를 도시한다.
도 15a는 기존의 HMVP 버퍼를 업데이트하는 과정을 설명하는 도면이다. 도 15a에서, HMVP 버퍼는 움직임 정보를 포함하는 HMVP 후보 정보를 저장하고, 디코딩된 움직임 벡터의 정보가 HMVP 버퍼에서 업데이트된다. 일 실시예에서 상술한 바와 같이 FIFO 규칙에 의하여 HMVP 버퍼의 총 개수가 최대 개수에 도달하면 새로운 HMVP가 추가될 때 가장 오래된 HMVP 후보가 제거될 수 있다.
도 15b는 본 명세서의 실시예에서 제안하는 HMVP 버퍼의 업데이트 과정을 설명하는 도면이다. 도 15b에 도시된 바와 같이, HMVP 버퍼는 움직임 벡터에 대한 정보뿐만 아니라 GBi 정보(양방향 예측 가중치 정보)를 함께 저장할 수 있다. 또한, 디코딩된 움직임 정보와 함께 GBi 정보를 사용하여 업데이트가 수행될 수 있다. 도 15a와 마찬가지로 FIFO 규칙에 의하여 HMVP 버퍼의 HMVP 후보의 최대 개수가 채워진 상태에서 새로운 HMVP 후보 및 GBi 정보가 추가될 때 가장 오래된 HMVP 후보 및 GBi 정보는 HMVP 버퍼에서 제거될 수 있다.
실시예 2
본 명세서의 일 실시예는 HMVP 버퍼 업데이트 과정에서 GBi 인덱스 또는 가중치를 고려하여 프루닝을 수행하는 방법을 제안한다. 제한된 FIFO 형태로 업데이트가 수행되면, 기존 HMVP 버퍼의 움직임 정보와 새로 저장하고자 하는 움직임 정보를 비교함으로써 동일성에 대한 체크가 수행된다. 만약 새로 저장하고자 하는 움직임 정보가 기존 HMVP 버퍼에 저장된 움직임 정보에 포함된 예측 방향(interDir), 참조 인덱스(reference index), 움직임 벡터(motion vector)가 동일하면, 기존 HMVP 버퍼에서 동일한 움직임 정보가 제거된다. 이후 새로 저장하고자 하는 움직임 정보가 HMVP 버퍼에 FIFO 규칙에 따라 저장된다. 본 명세서의 실시예는 이 과정에서 움직임 정보(예측 방향, 참조 인덱스, 움직임 벡터) 이에외 GBi 인덱스 또는 가중치도 동일한지 여부를 확인하는 방법을 제안한다.
본 실시예는 도 13에서 "Update the table with decoded motion information"으로 표현되는 과정에 대한 상세 방법으로서, 도 16과 같이 설명될 수 있다.
도 16은 본 명세서의 실시예에 따른 HMVP 버퍼를 업데이트하기 위한 순서도의 예를 도시한다.
도 16을 참조하면, 먼저 S1605 단계에서, 코딩 장치는 HMVP 버퍼 인덱스를 초기화한다. 예를 들어, HMVP 버퍼 인덱스(bufidx)가 0으로 설정될 수 있다.
S1610 단계에서, 코딩 장치는 현재 버퍼 인덱스(bufidx)가 HMVP 버퍼에 존재하는 HMVP 후보들의 개수보다 작은지 여부를 결정한다. 즉, 코딩 장치는 HMVP 버퍼에 존재하는 HMVP 후보들에 대한 탐색이 모두 완료되었는지 여부를 결정한다. 현재 버퍼 인덱스가 HMVP 후보들의 개수보다 크거나 같은 경우, HMVP 버퍼 업데이트 과정은 종료된다.
현재 버퍼 인덱스가 HMVP 후보들의 개수보다 작은 경우, 코딩 장치는 S1620 단계로 진행할 수 있다. S1620 단계에 앞서, S1615 단계에서 코딩 장치는 이전에 코딩된 블록에서 사용된 움직임 정보와 Gbi 인덱스를 획득할 수 있다. 이후, S1620 단계 및 S1625 단계에서, 코딩 장치는 S1615 단계에서 획득된 이전 블록의 움직임 정보 및 GBi 정보가 HMVP 버퍼에 저장된 움직임 정보 및 GBi 정보와 동일한지 여부를 확인한다. 보다 구체적으로, 이전 블록의 움직임 정보에 포함된 예측 방향, 참조 인덱스, 움직임 벡터, 및 GBi 정보가 HMVP 버퍼에서 현재 인덱스에 대응하는 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 및 GBi 정보와 동일한지 여부를 확인할 수 있다.
이전 블록의 움직임 정보 및 GBi 정보가 HMVP 버퍼에서 현재 인덱스에 대응하는 HMVP 후보의 움직임 정보 및 GBi 정보가 동일한 경우, 코딩 장치는 S1630 단계로 진행하여 프루닝을 수행할 수 있다. 즉, 코딩 장치는 HMVP 버퍼에서 동일한 움직임 정보 및 GBi 정보를 포함하는 HMVP 후보를 제거하고 이전에 코딩된 블록의 움직임 정보 및 GBi 정보를 새로운 HMVP 후보로서 추가할 수 있다.
이전 블록의 움직임 정보 및 GBi 정보가 HMVP 버퍼에서 현재 인덱스에 대응하는 HMVP 후보의 움직임 정보 및 GBi 정보가 상이한 경우, 코딩 장치는 S1635 단계로 진행하여 HMVP 버퍼 인덱스를 증가시킬 수 있다. 이후, 코딩 장치는 증가된 인덱스에 대응하는 HMVP 버퍼의 HMVP 후보에 대하여 프루닝 체크를 수행할 수 있다.
도 16에서 나타난 것과 같이 프루닝 과정에서 GBi 인덱스 또는 GBi 가중치가 기존 HMVP 버퍼에 저장된 후보의 GBi 정보와 동일한지 여부까지 확인하고 프루닝하는 방법이 제안된다.
실시예 1과 실시예 2의 방법이 결합되어 아래의 도 17a 내지 도 17c와 같이 실제 HMVP 버퍼가 움직임 정보와 GBi 정보를 프루닝하고 저장/관리할 수 있다.
도 17a 내지 도 17c는 본 명세서의 실시예에 따른 GBi 정보를 고려하여 HMVP 버퍼를 업데이트하기 위한 방법의 예를 도시한다.
도 17a를 참고하면, HMVP 버퍼에서 입력되는 HMVP 후보의 움직임 정보 및 GBi 정보와 동일한 HVMP 후보(HMVP 3)가 탐색된다. 이후, 도 17b와 같이 동일한 HMVP 후보(HMVP 3)가 제거되고, 도 17c와 같이 새로운 HMVP 후보의 움직임 정보 및 GBi 정보가 HMVP 버퍼에 추가된다.
실시예 3
본 발명의 실시예는 HMVP에 기반하여 예측 후보를 구성하는 과정에서 GBi 인덱스 또는 가중치를 고려하여 프루닝하는 방법을 제안한다. 실시예 1과 실시예 2는 HMVP 버퍼를 핸들링하는 방법이었음에 반하여, 실시예 3은 HMVP 버퍼를 통하여 예측 후보를 구성하는 방법을 제안한다. 실시예 3에 따르면, HMVP 버퍼에 저장된 HMVP 후보와 예측 후보 구성방법에 의하여 구성된 다른 예측 후보와의 동일 여부를 체크하고, 이를 기반으로 프루닝하는 방법이 제공된다. 제안하는 일실시예는 HMVP 후보를 이용하여 예측후보를 구성하는 화면간예측 기술에 모두 적용될 수 있으며 일례로 머지(merge), 어파인(affine), AMVP, MMVD(merge with motion vector difference), Triangle, Intra/Inter Multi-Hypothesis와 같이 예측 후보 구성 과정에서 HMVP 후보가 사용되는 경우에 대해 적용될 수 있다.
본 실시예는 도 8의 S820 단계에 해당하는 움직임 정보 도출 과정에서 수행될 수 있으며, 도 13과 같이 HMVP 버퍼를 업데이트하는 방법의 일 예에 해당할 수 있다. 본 실시예는 다양한 인터 예측 후보 구성 과정에서 사용될 수 있으나 설명의 용이성을 위하여 도 11과 도 12를 예로 들어 설명한다. 도 11은 머지 후보 구성 과정을 간략하게 설명한 순서도이며 도 12는 AMVP 예측 후보 구성과정을 간략하게 설명한 순서로이다. 도 18a는 도 11의 머지 후보 구성 과정에 HMVP 예측 후보 방법을 추가하여 머지 예측 후보를 구성하는 방법을 나타낸 것이며, 도 18b는 도 18a에 기반하여 HMVP 예측 후보와 기존 구성된 예측 후보와의 동일성을 확인하는 프루닝 과정이 추가된 예측 후보 리스트를 구성하기 위한 방법을 나타낸다.
먼저 도 18a를 참조하면, S1805 단계에서, 코딩 장치는 공간적 주변 블록들을 탐색하여 도출된 공간적 머지 후보들을 머지 후보 리스트에 삽입한다. 여기서, 공간적 주변 블록들은 도 10의 주변 블록들(A0, A1, B0, B1, B2)을 포함할 수 있다. 보다 구체적으로, 코딩 장치는 공간적 주변 블록들의 예측 방향, 참조 픽처 인덱스, 또는 움직임 벡터에 대한 정보를 머지 후보로서 머지 후보 리스트에 추가할 수 있다.
S1810 단계에서, 코딩 장치는 시간적 주변 블록들을 탐색하여 도출된 시간적 머지 후보를 머지 후보 리스트에 삽입한다. 시간적 주변 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다.
S1815 단계에서, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1820 단계로 진행한다. S1820 단계에서, 코딩 장치는 HMVP 머지 후보를 머지 후보 리스트에 삽입한다. 머지 후보 리스트에 삽입되는 HMVP 머지 후보는 HMVP 버퍼(HMVP 후보 리스트)에 저장된 HMVP 후보들 중 적어도 하나일 수 있다. 예를 들어, 가장 최근에 HMVP 후보 리스트에 저장된 HMVP 후보가 머지 후보 리스트에 추가될 수 있다. 또한, HMVP 후보 리스트에서 특정 인덱스(예: HMVP 인덱스)에 해당하는 HMVP 후보 또는 HMVP 후보 개수에서 HMVP 인덱스를 뺀 값에 대응하는 인덱스를 갖는 HMVP 후보가 머지 후보 리스트에 추가될 수 있다.
HMVP 후보를 머지 후보 리스트에 삽입한 이후, S1825 단계에서, 코딩 장치는 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1830 단계로 진행한다. S1830 단계에서, 코딩 장치는 추가 머지 후보를 머지 후보 리스트에 삽입한다. 예를 들어, 추가 머지 후보는 ATMVP, 결합된 양방향 예측(combined bi-predictive) 머지 후보(현재 슬라이스의 슬라이스 타입이 B 타입인 경우) 및/또는 제로 벡터 머지 후보를 포함할 수 있다.
도 18a와 비교하여, 도 18b의 흐름도는 GBi 정보(양방향 예측 가중치 정보) 및 프루닝 과정을 포함하는 머지 후보 리스트를 구성하는 방법을 나타낸다.
도 18b를 참조하면, S1855 단계에서, 코딩 장치는 공간적 주변 블록들을 탐색하여 도출된 공간적 머지 후보들을 머지 후보 리스트에 삽입한다. 여기서, 공간적 주변 블록들은 도 10의 주변 블록들(A0, A1, B0, B1, B2)을 포함할 수 있다. 보다 구체적으로, 코딩 장치는 공간적 주변 블록들의 예측 방향, 참조 픽처 인덱스, 움직임 벡터에 대한 정보와 함께 GBi 정보(양방향 예측 가중치 또는 양방향 예측 가중치 인덱스)를 머지 후보로서 머지 후보 리스트에 추가할 수 있다.
S1860 단계에서, 코딩 장치는 시간적 주변 블록들을 탐색하여 도출된 시간적 머지 후보를 머지 후보 리스트에 삽입한다. 시간적 주변 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다.
S1865 단계에서, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1870 단계로 진행한다. S1870 단계 및 S1875 단계에서, 코딩 장치는 HMVP 머지 후보의 움직임 정보 및 GBi 정보가 기존 구성된 머지 후보들과 동일한지 여부를 확인한다. 즉, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보들 중 추가하고자 하는 HMVP 머지 후보의 움직임 정보 및 GBi 정보와 동일한 머지 후보가 존재하는지 여부를 결정한다. 머지 후보 리스트에 삽입되는 HMVP 머지 후보는 HMVP 버퍼(HMVP 후보 리스트)에 저장된 HMVP 후보들 중 적어도 하나일 수 있다. 예를 들어, 가장 최근에 HMVP 후보 리스트에 저장된 HMVP 후보가 머지 후보 리스트에 추가될 수 있다. 또한, HMVP 후보 리스트에서 특정 인덱스(예: HMVP 인덱스)에 해당하는 HMVP 후보 또는 HMVP 후보 개수에서 HMVP 인덱스를 뺀 값에 대응하는 인덱스를 갖는 HMVP 후보가 머지 후보 리스트에 추가될 수 있다. 동일한 머지 후보가 존재하지 않는 경우, 코딩 장치는 S1885 단계로 진행한다.
동일한 머지 후보가 존재하는 경우, 코딩 장치는 S1880 단계로 진행하고, HMVP 머지 후보를 머지 후보 리스트에 삽입한다. HMVP 머지 후보는 움직임 정보 및 GBi 정보를 포함할 수 있다.
S1885 단계에서, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1890 단계로 진행한다. S1890 단계에서, 코딩 장치는 추가 머지 후보를 머지 후보 리스트에 삽입한다. 예를 들어, 추가 머지 후보는 ATMVP, 결합된 양방향 예측(combined bi-predictive) 머지 후보(현재 슬라이스의 슬라이스 타입이 B 타입인 경우) 및/또는 제로 벡터 머지 후보를 포함할 수 있다.
도 19a는 도 12의 AMVP 예측 후보 구성 과정에 HMVP 후보를 고려하는 방법을 나타낸 것이며, 도 19b는 도 19a에 기반하여 HMVP 후보를 예측 후보로 구성하는 과정에서 기존 구성된 예측 후보와 HMVP 예측 후보와의 동일성 확인 과정에서 GBi를 고려한 방법을 나타낸다.
먼저 도 19a를 참조하면, S1905 단계에서, 코딩 장치는 공간적 주변 블록들을 탐색하여 도출된 공간적 움직임 벡터 예측 후보들을 예측 후 리스트에 삽입한다. 여기서, 공간적 주변 블록들은 도 10의 주변 블록들(A0, A1, B0, B1, B2)을 포함할 수 있다. 보다 구체적으로, 코딩 장치는 공간적 주변 블록들의 예측 방향, 참조 픽처 인덱스, 또는 움직임 벡터에 대한 정보를 움직임 벡터 후보로서 예측 후보 리스트에 추가할 수 있다.
S1910 단계에서, 코딩 장치는 현재 예측 후보 리스트에 포함된 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은지 여부를 결정한다. 최대 움직임 벡터 예측 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작지 않은 경우(즉, 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 같거나 큰 경우 또는 현재 움직임 벡터 예측 후보 리스트가 모두 채워진 경우), 코딩 장치는 움직임 벡터 예측 후보 리스트의 구성을 종료할 수 있다.
S1915 단계에서, 코딩 장치는 시간적 예측 후보 블록을 탐색하여 도출된 시간적 예측 후보를 움직임 벡터 예측 후보 리스트에 삽입한다. 시간적 예측 후보 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다.
S1920 단계에서, 코딩 장치는 현재 움직임 벡터 예측 후보 리스트에 포함된 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은지 여부를 결정한다. 최대 움직임 벡터 예측 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작지 않은 경우(즉, 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 같거나 큰 경우 또는 현재 움직임 벡터 예측 후보 리스트가 모두 채워진 경우), 코딩 장치는 움직임 벡터 예측 후보 리스트의 구성을 종료할 수 있다.
현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은 경우(즉, 현재 움직임 벡터 예측 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1925 단계로 진행한다. S1925 단계에서, 코딩 장치는 HMVP 예측 후보를 움직임 벡터 예측 후보 리스트에 삽입한다. 움직임 벡터 예측 후보 리스트에 삽입되는 HMVP 예측 후보는 HMVP 버퍼(HMVP 후보 리스트)에 저장된 HMVP 후보들 중 적어도 하나일 수 있다. 예를 들어, 가장 최근에 HMVP 후보 리스트에 저장된 HMVP 후보가 움직임 벡터 예측 후보 리스트에 추가될 수 있다. 또한, HMVP 후보 리스트에서 특정 인덱스(예: HMVP 인덱스)에 해당하는 HMVP 후보 또는 HMVP 후보 개수에서 HMVP 인덱스를 뺀 값에 대응하는 인덱스를 갖는 HMVP 후보가 움직임 벡터 예측 후보 리스트에 추가될 수 있다.
도 19a와 비교하여, 도 19b의 흐름도는 GBi 정보(양방향 예측 가중치 정보) 및 프루닝 과정을 포함하는 움직임 벡터 예측 후보 리스트를 구성하는 방법을 나타낸다.
도 19b를 참조하면, S1955 단계에서, 코딩 장치는 공간적 주변 블록들을 탐색하여 도출된 공간적 움직임 벡터 예측 후보들을 움직임 벡터 예측 후보 리스트에 삽입한다. 여기서, 공간적 주변 블록들은 도 10의 주변 블록들(A0, A1, B0, B1, B2)을 포함할 수 있다. 보다 구체적으로, 코딩 장치는 공간적 주변 블록들의 예측 방향, 참조 픽처 인덱스, 움직임 벡터에 대한 정보와 함께 GBi 정보(양방향 예측 가중치 또는 양방향 예측 가중치 인덱스)를 움직임 벡터 예측 후보로서 움직임 벡터 예측 후보 리스트에 추가할 수 있다.
S1960 단계에서, 코딩 장치는 현재 예측 후보 리스트에 포함된 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은지 여부를 결정한다. 최대 움직임 벡터 예측 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작지 않은 경우(즉, 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 같거나 큰 경우 또는 현재 움직임 벡터 예측 후보 리스트가 모두 채워진 경우), 코딩 장치는 움직임 벡터 예측 후보 리스트의 구성을 종료할 수 있다.
S1965 단계에서, 코딩 장치는 시간적 예측 후보 블록을 탐색하여 도출된 시간적 예측 후보를 움직임 벡터 예측 후보 리스트에 삽입한다. 시간적 예측 후보 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다.
S1970 단계에서, 코딩 장치는 현재 예측 후보 리스트에 포함된 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은지 여부를 결정한다. 최대 움직임 벡터 예측 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작지 않은 경우(즉, 현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 같거나 큰 경우 또는 현재 움직임 벡터 예측 후보 리스트가 모두 채워진 경우), 코딩 장치는 움직임 벡터 예측 후보 리스트의 구성을 종료할 수 있다.
현재 움직임 벡터 예측 후보 개수가 최대 후보 개수보다 작은 경우(즉, 현재 움직임 벡터 예측 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S1975 단계로 진행한다. S1975 단계 및 S1980 단계에서, 코딩 장치는 HMVP 후보의 움직임 정보 및 GBi 정보가 기존 구성된 움직임 벡터 예측 후보들과 동일한지 여부를 확인한다. 즉, 코딩 장치는 현재 움직임 벡터 예측 후보 리스트에 포함된 움직임 벡터 예측 후보들 중 추가하고자 하는 HMVP 후보의 움직임 정보 및 GBi 정보와 동일한 움직임 벡터 예측 후보가 존재하는지 여부를 결정한다. 움직임 벡터 예측 후보 리스트에 삽입되는 HMVP 후보는 HMVP 버퍼(HMVP 후보 리스트)에 저장된 HMVP 후보들 중 적어도 하나일 수 있다. 예를 들어, 가장 최근에 HMVP 후보 리스트에 저장된 HMVP 후보가 움직임 벡터 예측 후보 리스트에 추가될 수 있다. 또한, HMVP 후보 리스트에서 특정 인덱스(예: HMVP 인덱스)에 해당하는 HMVP 후보 또는 HMVP 후보 개수에서 HMVP 인덱스를 뺀 값에 대응하는 인덱스를 갖는 HMVP 후보가 움직임 벡터 예측 후보 리스트에 추가될 수 있다. 동일한 움직임 벡터 예측 후보가 존재하는 경우, 코딩 장치는 HMVP 예측 후보를 추가하지 않고 움직임 벡터 예측 후보 리스트의 구성을 종료한다.
동일한 머지 후보가 존재하지 않는 경우, 코딩 장치는 S1985 단계로 진행하고, HMVP 머지 후보를 머지 후보 리스트에 삽입한다. HMVP 머지 후보는 움직임 정보 및 GBi 정보를 포함할 수 있다.
도 20은 본 명세서의 실시예에 따른 상속된 GBi 정보를 사용하는 HMVP 후보를 고려하여 머지 후보 리스트를 구성하기 위한 흐름도의 예를 도시한다.
본 명세서의 일 실시예는 HMVP를 기반으로 움직임 벡터 예측 후보를 구성하는 과정에서 GBi 인덱스 또는 가중치를 상속(inherit)하는 방법 및 장치를 제공한다. 본 명세서의 실시예는 GBi 인덱스를 시그널링하지 않고 HMVP 후보를 예측 후보로 사용하는 인터 예측을 수행할 경우, HMVP 버퍼(또는 HMVP 후보 리스트)에서 움직임 정보와 함께 관리되는 GBi 인덱스 또는 가중치를 현재 블록의 GBi 인덱스 또는 가중치로 상속함으로써 예측을 수행하는 방법을 제공한다.
HMVP 후보 리스트에서 움직임 정보와 함께 관리되는 GBi 인덱스 또는 가중치를 현재 블록의 GBi 인덱스 또는 가중치로 상속함으로써 예측을 수행하는 방법은 도 20의 흐름도와 같이 수행될 수 있다. 도 20은 도 18b의 흐름도에 상속된 GBi 인덱스 또는 가중치를 적용하는 방법을 추가한 흐름도이다. 도 20에 따르면, 인코딩 장치(100)는 머지 예측 후보를 구성하는 과정에서 GBi 인덱스를 추가적으로 시그널링하지 않기 때문에 디코딩 장치(200)는 예측 후보의 상속된 GBi 인덱스를 사용함으로써 현재 블록을 복호화할 수 있다.
도 20을 참고하면, S2005 단계에서, 코딩 장치는 공간적 주변 블록들을 탐색하여 도출된 공간적 머지 후보들을 머지 후보 리스트에 삽입하고, 공간적 주변 블록으로부터 결정된 머지 후보의 GBi 인덱스 및/또는 GBi 가중치를 상속할 수 있다. 여기서, 공간적 주변 블록들은 도 10의 주변 블록들(A0, A1, B0, B1, B2)을 포함할 수 있다. 보다 구체적으로, 코딩 장치는 공간적 주변 블록들의 예측 방향, 참조 픽처 인덱스, 움직임 벡터에 대한 정보와 함께 GBi 정보(양방향 예측 가중치 또는 양방향 예측 가중치 인덱스)를 머지 후보로서 머지 후보 리스트에 추가할 수 있다. 또한, 공간적 주변 블록으로부터 결정된 머지 후보의 GBi 인덱스 및/또는 GBi 가중치는 별도로 시그널링 되지 않고, 상속될 수 있다. 즉, 머지 후보 리스트에 추가되는 공간적 머지 후보의 움직임 정보와 함께 해당 공간적 머지 후보의 GBi 인덱스 및/또는 GBi 가중치가 머지 후보 리스트에 추가될 수 있다.
S2010 단계에서, 코딩 장치는 시간적 주변 블록들을 탐색하여 도출된 시간적 머지 후보를 머지 후보 리스트에 삽입하고, 시간적 주변 블록으로부터 결정된 머지 후보의 GBi 인덱스 및/또는 GBi 가중치를 상속할 수 있다. 시간적 주변 블록은 현재 블록이 위치하는 현재 픽처와 다른 픽처인 참조 픽처 상에 위치할 수 있다. 시간적 주변 블록이 위치하는 참조 픽처는 동일 위치(collocated) 픽처 또는 콜(col) 픽처로 지칭될 수 있다. 시간적 주변 블록은 col 픽처 상에서의 현재 블록에 대한 동일 위치 블록의 우하측 코너 주변 블록 및 우하측 센터 블록의 순서로 탐색될 수 있다. 또한, 시간적 주변 블록으로부터 결정된 머지 후보의 GBi 인덱스 및/또는 GBi 가중치는 별도로 시그널링 되지 않고, 상속될 수 있다. 즉, 머지 후보 리스트에 추가되는 시간적 머지 후보의 움직임 정보와 함께 해당 시간적 머지 후보의 GBi 인덱스 및/또는 GBi 가중치가 머지 후보 리스트에 추가될 수 있다.
S2015 단계에서, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S2020 단계로 진행한다. S2020 단계 및 S2025 단계에서, 코딩 장치는 HMVP 머지 후보의 움직임 정보 및 GBi 정보가 기존 구성된 머지 후보들과 동일한지 여부를 확인한다. 즉, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보들 중 추가하고자 하는 HMVP 머지 후보의 움직임 정보 및 GBi 정보와 동일한 머지 후보가 존재하는지 여부를 결정한다. 머지 후보 리스트에 삽입되는 HMVP 머지 후보는 HMVP 버퍼(HMVP 후보 리스트)에 저장된 HMVP 후보들 중 적어도 하나일 수 있다. 예를 들어, 가장 최근에 HMVP 후보 리스트에 저장된 HMVP 후보가 머지 후보 리스트에 추가될 수 있다. 또한, HMVP 후보 리스트에서 특정 인덱스(예: HMVP 인덱스)에 해당하는 HMVP 후보 또는 HMVP 후보 개수에서 HMVP 인덱스를 뺀 값에 대응하는 인덱스를 갖는 HMVP 후보가 머지 후보 리스트에 추가될 수 있다. 동일한 머지 후보가 존재하지 않는 경우, 코딩 장치는 S2035 단계로 진행한다.
동일한 머지 후보가 존재하는 경우, 코딩 장치는 S2030 단계로 진행하고, HMVP 머지 후보를 머지 후보 리스트에 삽입하고, HMVP 머지 후보의 GBi 인덱스 및/또는 GBi 가중치를 상속할 수 있다. HMVP 머지 후보는 움직임 정보 및 GBi 정보를 포함할 수 있다.
S2035 단계에서, 코딩 장치는 현재 머지 후보 리스트에 포함된 머지 후보 개수가 최대 머지 후보 개수보다 작은지 여부를 결정한다. 최대 머지 후보 개수는 사전에 결정된 수(예: 5)로 설정될 수 있다. 현재 머지 후보 개수가 최대 머지 후보 개수보다 작지 않은 경우(즉, 현재 머지 후보 개수가 최대 머지 후보 개수보다 같거나 큰 경우 또는 현재 머지 후보 리스트가 모두 채워진 경우), 코딩 장치는 머지 후보 리스트의 구성을 종료할 수 있다.
현재 머지 후보 개수가 최대 머지 후보 개수보다 작은 경우(즉, 현재 머지 후보 리스트가 모두 채워지지 않은 경우), 코딩 장치는 S2040 단계로 진행한다. S2040 단계에서, 코딩 장치는 추가 머지 후보를 머지 후보 리스트에 삽입한다. 예를 들어, 추가 머지 후보는 ATMVP, 결합된 양방향 예측(combined bi-predictive) 머지 후보(현재 슬라이스의 슬라이스 타입이 B 타입인 경우) 및/또는 제로 벡터 머지 후보를 포함할 수 있다.
도 21은 본 명세서의 실시예에 따른 비디오 데이터를 처리하기 위한 흐름도의 예를 도시한다. 도 21에 도시된 각각의 동작들은 인코딩 장치(100)의 인터 예측부(180), 디코딩 장치(200)의 인터 예측부(260), 또는 도 22의 프로세서(2210)에 의해 수행될 수 있다. 이하, 본 명세서의 실시예에 따른 비디오 데이터 처리 방법은 코딩 장치에 의해 수행되는 것으로 설명된다.
도 21을 참고하면, S2110 단계에서, 코딩 장치는 현재 블록의 인터 예측을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득할 수 있다. 본 명세서의 실시예에서, 움직임 정보는 제1 참조 픽처(예: L0 참조 픽처)와 관련된 제1 참조 인덱스(예: L0 참조 인덱스) 및 제2 움직임 벡터(예: L0 움직임 벡터), 그리고 제2 참조 픽처(예: L1 참조 픽처)와 관련된 제2 참조 인덱스(예: L1 참조 인덱스) 및 제2 움직임 벡터(예: L1 움직임 벡터)를 포함한다.
본 명세서의 실시예에서, 양방향 예측 가중치 정보는 GBi 정보(GBi 인덱스 또는 GBi 가중치)로 지칭될 수 있다. 양방향 예측 가중치 정보는, 제1 방향 예측(L0 방향 예측)을 기반으로 도출된 제1 예측 샘플과 제2 방향 예측(L1 방향 예측)을 기반으로 도출된 제2 예측 샘플에 각각 적용되는 가중치에 대한 정보를 포함할 수 있다. 예를 들어, 양방향 예측 가중치 정보는 제1 예측 샘플에 적용되는 제1 가중치와 제2 예측 샘플에 적용되는 제2 가중치를 포함할 수 있다. 또한, 양방향 예측 가중치 정보는 사전에 정의된 집합에서 제1 가중치와 제2 가중치를 지시하는 인덱스를 포함할 수 있다. 예를 들어, 제1 가중치(w1)와 관련된 집합은 {4, 5, 3, 10, -2}와 같이 구성되고, 제2 가중치(w0)는 8에서 제1 가중치(w1)를 뺀 값으로 결정될 수 있다(w0 = 8- w1). 일 실시예에서, 제1 가중치는 {4, 5, 3, 10, -2} 중에서 양방향 예측 가중치 정보(양방향 예측 가중치 인덱스)에 의해 지시될 수 있다.
S2120 단계에서, 코딩 장치는 움직임 정보 및 양방향 예측 가중치 정보에 기반하여 현재 블록의 예측 샘플을 도출할 수 있다. 예를 들어, 코딩 장치는 머지 후보 리스트를 구성한 이후 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 움직임 정보 및 양방향 예측 가중치 정보를 획득하고, 움직임 정보 및 양방향 예측 가중치 정보에 기반하여 현재 블록의 예측 샘플을 도출할 수 있다. 또한, 코딩 장치는 움직임 벡터 예측 리스트를 구성한 이후 움직임 벡터 예측 리스트에서 움직임 벡터 예측 인덱스에 의해 지시되는 움직임 정보 및 양방향 예측 가중치 정보를 획득하고, 움직임 정보 및 양방향 예측 가중치 정보에 기반하여 현재 블록의 예측 샘플을 도출할 수 있다.
일 실시예에서, 코딩 장치는 머지 후보 리스트를 구성하고, 구성된 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정할 수 있다. 여기서, 코딩 장치는 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 머지 후로 리스트에 추가하고, 머지 후보 리스트에 포함된 머지 후보의 개수가 기 설정된 후보 개수(예: 최대 후보 개수 또는 최대 후보 개수 보다 일정 값 만큼 작은 개수)보다 작으면 HMVP 후보 리스트를 사용하여 머지 후보 리스트를 변경함으로써 머지 후보 리스트를 구성할 수 있다. 일 실시예에서, 코딩 장치는, HMVP 후보 리스트를 사용하여 머지 후보 리스트를 변경하기 위하여, HMVP 후보 리스트에 포함된 HMVP 예측 후보가 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하고, HMVP 후보 리스트에 포함된 HMVP 예측 후보가 머지 후보 리스트에 포함된 머지 후보와 상이한 경우 HMVP 예측 후보를 머지 후보 리스트에 추가할 수 있다. 일 실시예에서, 코딩 장치는, 공간적 머지 후보 및 시간적 머지 후보를 머지 후보 리스트에 추가하기 위하여, 공간적 머지 후보에 대한 탐색 이후 시간적 머지 후보에 대한 탐색을 수행할 수 있다.
S2130 단계에서, 코딩 장치는 움직임 정보 및 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트할 수 있다. HMVP 후보 리스트는 HMVP 버퍼에 저장될 수 있으며, HMVP 후보 리스트는 HMVP 버퍼로 지칭될 수 있다. HMVP 후보는 현재 픽처에서 이미 복원된 블록의 움직임 정보(참조 픽처 인덱스, 움직임 벡터, 예측 방향) 및 양방향 예측 가중치 정보(GBi 인덱스, GBi 가중치)를 포함할 수 있다.
일 실시예예서, 코딩 장치는, HMVP 후보를 업데이트하기 위하여, 현재 블록의 움직임 정보와 양방향 예측 가중치 정보를 포함하는 HMVP 후보와 동일한 후보가 HMVP 후보 리스트에 존재하는지 여부에 기반하여 HMVP 후보 리스트를 업데이트할 수 있다. 즉, HMVP 후보를 업데이트함에 있어 프루닝 프로세스가 수행될 수 있다. 프루닝 프로세스를 통하여, 중복적인 HMVP 후보를 제거함으로써 HMVP 후보 리스트를 효율적으로 구성할 수 있다.
일 실시예에서, 코디 장치는, HMVP 후보를 업데이트하기 위하여, HMVP 후보 리스트의 인덱스를 초기화하고, 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하고, 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작으면, HMVP 후보 리스트에서 현재 인덱스에 대응하는 후보와 추가하고자 하는 HMVP 후보가 동일한지 여부를 결정하고, 현재 인덱스에 대응하는 후보와 추가하고자 하는 HMVP 후보가 동일하면 현재 인덱스에 대응하는 후보를 제거하고 추가하고자 하는 HMVP 후보를 HMVP 후보 리스트에 추가하는 프루닝을 수행하고, 현재 인덱스에 대응하는 후보와 추가하고자 하는 HMVP 후보가 상이하면 HMVP 후보 리스트의 현재 인덱스를 증가시키고 증가된 현재 인덱스가 HMVP 후보 리스트의 후보 개수보다 작은지 여부와 HMVP 후보와 증가된 현재 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 수행할 수 있다.
일 실시예에서, 코딩 장치는, HMVP 후보 리스트에서 현재 인덱스에 대응하는 후보와 추가하고자 하는 HMVP 후보가 동일한지 여부를 결정하기 위하여, 현재 인덱스에 대응하는 후보와 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가증치 인덱스가 서로 동일한지 여부를 결정할 수 있다.
본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
도 22는 본 명세서의 실시예에 따른 비디오 데이터를 처리하기 위한 장치의 블록도의 예를 도시한다.
비디오 데이터를 처리하는 비디오 데이터 처리 장치(2200)는, 비디오 데이터를 저장하는 메모리(2220)와, 상기 메모리와 결합되면서 비디오 데이터를 처리하는 프로세서(2210)를 포함한다.
본 명세서의 실시예에 따른 프로세서(2210)는 비디오 데이터의 처리를 위한 적어도 하나의 프로세싱 회로로 구성될 수 있으며, 비디오 데이터를 인코딩 또는 디코딩을 위한 명령어들을 실행함으로써 영상 신호를 처리할 수 있다. 즉, 프로세서(2210)는 상술한 인코딩 또는 디코딩 방법들을 실행함으로써 원본 영상 데이터를 인코딩하거나 인코딩된 영상 신호를 디코딩할 수 있다.
본 명세서의 실시예에 따른 비디오 데이터를 처리하기 위한 장치는, 비디오 신호를 저장하는 메모리(2220)와, 메모리(2220)와 결합된 프로세서(2210)를 포함할 수 있다. 프로세서(2210)는, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보와 양방향 예측 가중치 정보를 획득하고, 움직임 정보 및 양방향 예측 가중치 정보에 기반하여 현재 블록의 예측 샘플을 도출하고, 움직임 정보 및 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정될 수 있다. 여기서, 움직임 정보는 제1 참조 픽처(예: L0 참조 픽처)와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제1 참조 픽처와 상이한 제2 참조 픽처(예: L1 참조 픽처)와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 양방향 예측 가중치 정보(GBi 정보)는, 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값(w0) 및 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값(w1)을 유도하기 위해 사용될 수 있다.
일 실시예에서, 프로세서(2210)는 추가하고자 하는 HMVP 후보와 동일한 후보가 HMVP 후보 리스트에 존재하는지 여부에 기반하여 HMVP 후보 리스트를 업데이트할 수 있다.
일 실시예에서, 프로세서(2210)는 HMVP 후보 리스트의 현재 인덱스를 확인하고, HMVP 후보 리스트의 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하고, 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작으면 HMVP 후보 리스트에서 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하고, 현재 인덱스에 대응하는 후보와 HMVP 후보가 동일하면 현재 인덱스에 대응하는 후보를 제거하고 HMVP 후보를 HMVP 후보 리스트에 추가하는 프루닝(pruning)을 수행하고, 현재 인덱스에 대응하는 후보와 HMVP 후보가 상이하면 HMVP 후보 리스트의 현재 인덱스를 증가시키고, 증가된 현재 인덱스가 후보 개수보다 작은지 여부 및 HMVP 후보와 상기 증가된 현재 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 수행할 수 있다.
일 실시예에서, 프로세서(2210)는 현재 인덱스에 대응하는 후보와 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가중치 인덱스가 서로 동일한지 여부를 결정할 수 있다.
일 실시예에서, 프로세서(2210)는 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 구성된 머지 후보 리스트에 추가하고, 머지 후보 리스트에 포함된 머지 후보의 개수가 최대 후보 개수보다 작으면, HMVP 후보 리스트를 사용하여 상기 머지 후보 리스트를 변경하고, 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정할 수 있다.
일 실시예에서, 프로세서(2210)는 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하고, HMVP 후보 리스트에 포함된 HMVP 예측 후보가 머지 후보 리스트에 포함된 머지 후보와 상이한 경우, HMVP 예측 후보를 상기 머지 후보 리스트에 추가할 수 있다.
일 실시예에서, 프로세서(2210)는 공간적 머지 후보에 대한 탐색 이후 시간적 머지 후보에 대한 탐색을 수행할 수 있다.
본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 발명의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 프로그램 코드는 본 발명의 실시예에 의해 컴퓨터에서 수행될 수 있다. 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
본 명세서의 실시예들은 컴퓨터 실행 가능한 컴포넌트에 의해 구현될 수 있으며, 컴퓨터 실행 가능한 컴포넌트는 컴퓨팅 디바이스의 하나 이상의 프로세서에서 실행하도록 구성되고, 비 일시적(non-transitory) 컴퓨터 판독 가능한 매체(computer-executable component)에 저장될 수 있다. 본 명세서의 실시예에 따른 컴퓨터 실행 가능한 컴포넌트는, 현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보와 양방향 예측 가중치 정보를 획득하고, 움직임 정보 및 양방향 예측 가중치 정보에 기반하여 현재 블록의 예측 샘플을 도출하고, 움직임 정보 및 양방향 예측 가중치 정보를 포함하는 HMVP 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정될 수 있다. 여기서, 움직임 정보는 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제1 참조 픽처와 상이한 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고, 양방향 예측 가중치 정보는, 제1 움직임 벡터 또는 제2 움직임 벡터에 적용되는 가중치 값과 관련된다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 추가하고자 하는 HMVP 후보와 동일한 후보가 HMVP 후보 리스트에 존재하는지 여부에 기반하여 HMVP 후보 리스트를 업데이트할 수 있다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 HMVP 후보 리스트의 현재 인덱스를 확인하고, HMVP 후보 리스트의 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하고, 현재 인덱스가 HMVP 후보 리스트 내 후보 개수보다 작으면 HMVP 후보 리스트에서 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하고, 현재 인덱스에 대응하는 후보와 HMVP 후보가 동일하면 현재 인덱스에 대응하는 후보를 제거하고 HMVP 후보를 HMVP 후보 리스트에 추가하는 프루닝(pruning)을 수행하고, 현재 인덱스에 대응하는 후보와 HMVP 후보가 상이하면 HMVP 후보 리스트의 현재 인덱스를 증가시키고, 증가된 현재 인덱스가 후보 개수보다 작은지 여부 및 HMVP 후보와 상기 증가된 현재 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 수행할 수 있다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 현재 인덱스에 대응하는 후보와 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가중치 인덱스가 서로 동일한지 여부를 결정할 수 있다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 구성된 머지 후보 리스트에 추가하고, 머지 후보 리스트에 포함된 머지 후보의 개수가 최대 후보 개수보다 작으면, HMVP 후보 리스트를 사용하여 상기 머지 후보 리스트를 변경하고, 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정할 수 있다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하고, HMVP 후보 리스트에 포함된 HMVP 예측 후보가 머지 후보 리스트에 포함된 머지 후보와 상이한 경우, HMVP 예측 후보를 상기 머지 후보 리스트에 추가할 수 있다.
일 실시예에서, 컴퓨터 실행 가능한 컴포넌트는 공간적 머지 후보에 대한 탐색 이후 시간적 머지 후보에 대한 탐색을 수행할 수 있다.
본 발명이 적용되는 디코딩 장치 및 인코딩 장치는 디지털 기기(digital device)에 포함될 수 있다. "디지털 기기(digital device)"라 함은 예를 들어, 데이터, 컨텐트, 서비스 등을 송신, 수신, 처리 및 출력 중 적어도 하나를 수행 가능한 모든 디지털 기기를 포함한다. 여기서, 디지털 기기가 데이터, 컨텐트, 서비스 등을 처리하는 것은, 데이터, 컨텐트, 서비스 등을 인코딩 및/또는 디코딩하는 동작을 포함한다. 이러한 디지털 기기는, 유/무선 네트워크(wire/wireless network)를 통하여 다른 디지털 기기, 외부 서버(external server) 등과 페어링 또는 연결(pairing or connecting)(이하 '페어링')되어 데이터를 송수신하며, 필요에 따라 변환(converting)한다.
디지털 기기는 예를 들어, 네트워크 TV(network TV), HBBTV(hybrid broadcast Broadband TV), 스마트 TV(smart TV), IPTV(internet protocol television), PC(personal computer) 등과 같은 고정형 기기(standing device)와, PDA(personal digital assistant), 스마트 폰(smart phone), 태블릿 PC(tablet PC), 노트북 등과 같은 모바일 기기(mobile device or handheld device)를 모두 포함한다.
이상에서 설명된 실시예들은 본 명세서의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 명세서의 실시예를 구성하는 것도 가능하다. 본 명세서의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 명세서의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.
본 명세서는 본 실시예의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (15)

  1. 비디오 데이터를 처리하기 위한 방법에 있어서,
    현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득하는 단계;
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하는 단계; 및
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP(history-based motion vector predictor) 후보에 기반하여 HMVP 후보 리스트를 업데이트하는 단계를 포함하고,
    상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고,
    상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 HMVP 후보 리스트를 업데이트하는 단계는,
    상기 HMVP 후보와 동일한 후보가 상기 HMVP 후보 리스트에 존재하는지 여부에 기반하여 상기 HMVP 후보 리스트를 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 HMVP 후보 리스트를 업데이트하는 단계는,
    HMVP 후보 리스트에 대한 현재 인덱스를 확인하는 단계;
    상기 현재 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하는 단계;
    상기 현재 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작으면, 상기 HMVP 후보 리스트에서 상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하는 단계;
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일하면, 상기 현재 인덱스에 대응하는 후보를 제거함으로써 상기 HMVP 후보를 상기 HMVP 후보 리스트에 추가하는 프루닝(pruning)을 수행하는 단계; 및
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 상이하면, 상기 HMVP 후보 리스트의 현재 인덱스를 증가시키고, 상기 증가된 현재 인덱스가 상기 후보 개수보다 작은지 여부 및 상기 HMVP 후보와 상기 증가된 현재 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상게 HMVP 후보 리스트에서 상기 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하는 단계는,
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가중치 인덱스가 서로 동일한지 여부를 결정하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 움직임 정보와 양방향 예측 가중치 정보를 획득하는 단계는,
    머지 후보 리스트를 구성하는 단계; 및
    상기 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정하는 단계를 포함하고,
    상기 머지 후보 리스트를 구성하는 단계는,
    상기 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 상기 머지 후보 리스트에 추가하는 단계; 및
    상기 머지 후보 리스트에 포함된 머지 후보의 개수가 기 설정된 후보 개수보다 작으면, 상기 HMVP 후보 리스트를 사용하여 상기 머지 후보 리스트를 변경(modifying)하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 머지 후보 리스트를 변경하는 단계는,
    상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하는 단계; 및
    상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 상이한 경우, 상기 HMVP 예측 후보를 상기 머지 후보 리스트에 추가하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제5항에 있어서,
    상기 공간적 머지 후보 및 시간적 머지 후보를 상기 머지 후보 리스트에 추가하는 단계는,
    상기 공간적 머지 후보에 대한 탐색 이후 상기 시간적 머지 후보에 대한 탐색을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 비디오 데이터를 처리하기 위한 장치에 있어서,
    상기 비디오 데이터를 저장하는 메모리; 및
    상기 메모리와 결합된 프로세서를 포함하고,
    상기 프로세서는,
    현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득하고,
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하고,
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP(history-based motion vector predictor) 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정되고,
    상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고,
    상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용되는 것을 특징으로 하는 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 HMVP 후보와 동일한 후보가 상기 HMVP 후보 리스트에 존재하는지 여부에 기반하여 상기 HMVP 후보 리스트를 업데이트하도록 설정되는 것을 특징으로 하는 장치.
  10. 제8항에 있어서,
    상기 프로세서는,
    HMVP 후보 리스트의 현재 인덱스를 확인하고,
    상기 현재 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작은지 여부를 결정하고,
    상기 현재 인덱스가 상기 HMVP 후보 리스트 내 후보 개수보다 작으면, 상기 HMVP 후보 리스트에서 상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일한지 여부를 결정하고,
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 동일하면, 상기 현재 인덱스에 대응하는 후보를 제거하고 상기 HMVP 후보를 상기 HMVP 후보 리스트에 추가하는 프루닝(pruning)을 수행하고,
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보가 상이하면, 상기 HMVP 후보 리스트의 현재 인덱스를 증가시키고, 상기 증가된 현재 인덱스가 상기 후보 개수보다 작은지 여부 및 상기 HMVP 후보와 상기 증가된 현재 인덱스에 대응하는 후보가 동일한지 여부를 결정하는 동작을 수행하도록 설정되는 것을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 현재 인덱스에 대응하는 후보와 상기 HMVP 후보의 예측 방향, 참조 인덱스, 움직임 벡터, 양방향 예측 가중치 인덱스가 서로 동일한지 여부를 결정하도록 설정되는 것을 특징으로 하는 장치.
  12. 제8항에 있어서,
    상기 프로세서는,
    상기 현재 블록의 공간적 머지 후보 및 시간적 머지 후보를 구성된 머지 후보 리스트에 추가하고,
    상기 머지 후보 리스트에 포함된 머지 후보의 개수가 기 설정된 후보 개수보다 작으면, 상기 HMVP 후보 리스트를 사용하여 상기 머지 후보 리스트를 변경(modifying)하고,
    상기 머지 후보 리스트에서 머지 인덱스에 의해 지시되는 머지 후보를 결정하도록 설정되는 것을 특징으로 하는 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 동일한지 여부를 결정하고,
    상기 HMVP 후보 리스트에 포함된 HMVP 예측 후보가 상기 머지 후보 리스트에 포함된 머지 후보와 상이한 경우, 상기 HMVP 예측 후보를 상기 머지 후보 리스트에 추가하도록 설정되는 것을 특징으로 하는 장치.
  14. 제12항에 있어서,
    상기 프로세서는,
    상기 공간적 머지 후보에 대한 탐색 이후 상기 시간적 머지 후보에 대한 탐색을 수행하도록 설정되는 것을 특징으로 하는 장치.
  15. 컴퓨팅 디바이스의 하나 이상의 프로세서에서 실행하도록 구성된 컴퓨터 실행 가능한 컴포넌트가 저장된 비 일시적(non-transitory) 컴퓨터 판독 가능한 매체(computer-executable component)로서, 상기 컴퓨터 실행 가능한 컴포넌트는,
    현재 블록의 화면간 예측(inter prediction)을 위한 움직임 정보 및 양방향 예측 가중치 정보를 획득하고,
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보에 기반하여 상기 현재 블록의 예측 샘플을 도출하고,
    상기 움직임 정보 및 상기 양방향 예측 가중치 정보를 포함하는 HMVP(history-based motion vector predictor) 후보에 기반하여 HMVP 후보 리스트를 업데이트하도록 설정되고,
    상기 움직임 정보는, 제1 참조 픽처와 관련된 제1 참조 인덱스 및 제1 움직임 벡터, 그리고 제2 참조 픽처와 관련된 제2 참조 인덱스 및 제2 움직임 벡터를 포함하고,
    상기 양방향 예측 가중치 정보는, 상기 제1 참조 픽처로부터의 제1 예측 샘플에 적용되는 제1 가중치 값 및 상기 제2 참조 픽처로부터의 제2 예측 샘플에 적용되는 제2 가중치 값을 유도하기 위해 사용되는 것을 특징으로 하는 비 일시적 컴퓨터 판독 가능한 매체.
PCT/KR2019/017983 2018-12-18 2019-12-18 비디오 데이터를 처리하기 위한 방법 및 장치 WO2020130617A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/413,419 US11876957B2 (en) 2018-12-18 2019-12-18 Method and apparatus for processing video data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862781532P 2018-12-18 2018-12-18
US62/781,532 2018-12-18

Publications (1)

Publication Number Publication Date
WO2020130617A1 true WO2020130617A1 (ko) 2020-06-25

Family

ID=71101468

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/017983 WO2020130617A1 (ko) 2018-12-18 2019-12-18 비디오 데이터를 처리하기 위한 방법 및 장치

Country Status (2)

Country Link
US (1) US11876957B2 (ko)
WO (1) WO2020130617A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141036A1 (en) * 2022-01-18 2023-07-27 Beijing Dajia Internet Information Technology Co., Ltd. Bilateral matching based reference picture reordering

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11876957B2 (en) * 2018-12-18 2024-01-16 Lg Electronics Inc. Method and apparatus for processing video data
US20220078406A1 (en) * 2018-12-29 2022-03-10 Vid Scale, Inc. History-based motion vector prediction
WO2020156548A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer updating for intra block copy in video coding
CN113519158B (zh) 2019-03-01 2024-06-18 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的块矢量表示
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
CN112118447B (zh) * 2019-06-19 2023-06-20 华为技术有限公司 融合候选运动信息列表的构建方法、装置及编解码器
EP3981146A4 (en) * 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
US20220103811A1 (en) * 2019-09-26 2022-03-31 Interdigital Vc Holdings France, Sas Extended motion information comparison
CN115514971A (zh) * 2019-12-24 2022-12-23 北京达佳互联信息技术有限公司 对视频数据进行编码的方法和装置
US20230104476A1 (en) * 2021-10-05 2023-04-06 Tencent America LLC Grouping based adaptive reordering of merge candidate

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140192884A1 (en) * 2013-01-04 2014-07-10 Canon Kabushiki Kaisha Method and device for processing prediction information for encoding or decoding at least part of an image
KR20150052259A (ko) * 2012-09-07 2015-05-13 퀄컴 인코포레이티드 스케일러블 비디오 코딩을 위한 가중된 예측 모드
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR101908249B1 (ko) * 2014-11-18 2018-10-15 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101630688B1 (ko) * 2010-02-17 2016-06-16 삼성전자주식회사 움직임 예측 장치 및 방법과 영상 처리 장치
CN103636218B (zh) * 2011-06-30 2017-07-28 Jvc建伍株式会社 图像解码装置和图像解码方法
CN107197290B (zh) * 2011-11-07 2020-02-18 寰发股份有限公司 推导缩放的运动向量的方法、装置和计算机可读媒介
TWI580261B (zh) * 2012-01-18 2017-04-21 Jvc Kenwood Corp Dynamic image decoding device, dynamic image decoding method, and dynamic image decoding program
US9479778B2 (en) * 2012-08-13 2016-10-25 Qualcomm Incorporated Device and method for coding video information using base layer motion vector candidate
KR101721345B1 (ko) * 2012-11-06 2017-03-29 닛본 덴끼 가부시끼가이샤 영상 부호화 방법, 영상 부호화 장치 및 영상 부호화 프로그램
US10356416B2 (en) * 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
WO2017122997A1 (ko) * 2016-01-11 2017-07-20 삼성전자 주식회사 영상 부호화 방법 및 장치와 영상 복호화 방법 및 장치
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
CN115767099A (zh) * 2017-05-31 2023-03-07 交互数字麦迪逊专利控股公司 画面编码和解码的方法和设备
US10812810B2 (en) * 2018-02-06 2020-10-20 Tencent America LLC Method and apparatus for video coding in merge mode
CN117459721A (zh) * 2018-10-24 2024-01-26 华为技术有限公司 视频编解码器和方法
US11394989B2 (en) * 2018-12-10 2022-07-19 Tencent America LLC Method and apparatus for video coding
US11876957B2 (en) * 2018-12-18 2024-01-16 Lg Electronics Inc. Method and apparatus for processing video data
US10855992B2 (en) * 2018-12-20 2020-12-01 Alibaba Group Holding Limited On block level bi-prediction with weighted averaging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150052259A (ko) * 2012-09-07 2015-05-13 퀄컴 인코포레이티드 스케일러블 비디오 코딩을 위한 가중된 예측 모드
US20140192884A1 (en) * 2013-01-04 2014-07-10 Canon Kabushiki Kaisha Method and device for processing prediction information for encoding or decoding at least part of an image
KR101908249B1 (ko) * 2014-11-18 2018-10-15 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS: "Versatile Video Coding (Draft 3", JVET-L1001-V6, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 12TH MEETING, 14 December 2018 (2018-12-14), Macao, CN *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141036A1 (en) * 2022-01-18 2023-07-27 Beijing Dajia Internet Information Technology Co., Ltd. Bilateral matching based reference picture reordering

Also Published As

Publication number Publication date
US11876957B2 (en) 2024-01-16
US20220060687A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
WO2020130617A1 (ko) 비디오 데이터를 처리하기 위한 방법 및 장치
WO2020166897A1 (ko) Dmvr 기반의 인터 예측 방법 및 장치
WO2018008906A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020017892A1 (ko) 서브블록 단위의 시간적 움직임 벡터 예측을 위한 방법 및 그 장치
WO2019235822A1 (ko) 어파인 움직임 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2019203610A1 (ko) 영상의 처리 방법 및 이를 위한 장치
WO2019216714A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019027145A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020256455A1 (ko) 디폴트 머지 모드에 기반하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치
WO2020256454A1 (ko) 현재 블록에 대하여 최종적으로 예측 모드를 선택하지 못하는 경우 인터 예측을 수행하는 영상 디코딩 방법 및 그 장치
WO2020171673A1 (ko) 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치
WO2020167097A1 (ko) 영상 코딩 시스템에서 인터 예측을 위한 인터 예측 타입 도출
WO2020185047A1 (ko) 인트라 예측을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020141879A1 (ko) 영상 코딩 시스템에서 서브 블록 기반 시간적 머지 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2021141477A1 (ko) 머지 후보들의 최대 개수 정보를 포함하는 시퀀스 파라미터 세트를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020017785A1 (ko) 영상 코딩 시스템에서 인트라 예측 관련 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2021015512A1 (ko) Ibc를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020251259A1 (ko) 쌍 예측(bi-prediction)을 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치
WO2020197274A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020130520A1 (ko) 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2021112633A1 (ko) 동일 위치 픽처에 관한 정보를 포함하는 픽처 헤더에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020184953A1 (ko) 쌍 예측을 위한 가중치 인덱스 정보를 유도하는 비디오 또는 영상 코딩
WO2019245228A1 (ko) 어파인 모션 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2019216736A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019031842A1 (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: 19897773

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: 19897773

Country of ref document: EP

Kind code of ref document: A1