[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2015057037A1 - 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법 - Google Patents

멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법 Download PDF

Info

Publication number
WO2015057037A1
WO2015057037A1 PCT/KR2014/009859 KR2014009859W WO2015057037A1 WO 2015057037 A1 WO2015057037 A1 WO 2015057037A1 KR 2014009859 W KR2014009859 W KR 2014009859W WO 2015057037 A1 WO2015057037 A1 WO 2015057037A1
Authority
WO
WIPO (PCT)
Prior art keywords
disparity vector
block
disparity
vector
current block
Prior art date
Application number
PCT/KR2014/009859
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 CN201480057173.5A priority Critical patent/CN105637874B/zh
Priority to KR1020167009245A priority patent/KR20160072105A/ko
Priority to EP14853773.1A priority patent/EP3059966B1/en
Priority to US15/028,649 priority patent/US10063887B2/en
Publication of WO2015057037A1 publication Critical patent/WO2015057037A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to video coding, and more particularly, to coding of 3D video images.
  • High-efficiency image compression technology can be used to effectively transmit, store, and reproduce high-resolution, high-quality video information.
  • 3D video can provide realism and immersion using a plurality of view channels.
  • 3D video can be used in a variety of areas such as free viewpoint video (FVV), free viewpoint TV (FTV), 3DTV, social security and home entertainment.
  • FVV free viewpoint video
  • FTV free viewpoint TV
  • 3DTV social security and home entertainment.
  • 3D video using multi-view has a high correlation between views of the same picture order count (POC). Since the multi-view image captures the same scene at the same time by using several adjacent cameras, that is, multiple views, the correlation between the different views is high because it contains almost the same information except for parallax and slight lighting differences.
  • POC picture order count
  • the decoding target block of the current view may be predicted or decoded with reference to the block of another view.
  • An object of the present invention is to provide a method and apparatus for deriving a more effective disparity vector using information and depth of neighboring blocks.
  • An object of the present invention is to define a storage unit of a disparity vector that can reduce complexity and improve coding efficiency.
  • the present invention provides a method and apparatus for improving coding efficiency by efficiently predicting a motion vector using a disparity vector.
  • An embodiment of the present invention is a video decoding apparatus for decoding multi-view video, comprising: an entropy decoding unit for entropy decoding a bitstream to derive video information necessary for decoding a current block, and pictures referred to for decoding the current block
  • a memory to store the first disparity vector based on a neighboring block of the current block in the same view using the video information, and a first view using the first disparity vector and a reference view depth.
  • Derive a second disparity vector derive a third disparity vector using the difference between the first disparity vector and the second disparity vector, and obtain the first disparity vector, the second disparity vector, or the third disparity.
  • a prediction unit and a current block for deriving a prediction sample of the current block using any one of parity vectors For it may include a filter for applying filtering to the current picture using the restored prediction samples.
  • Another embodiment of the present invention is a video decoding method for decoding multi-view video, comprising: entropy decoding a bitstream to derive video information necessary for decoding a current block, wherein the current information in the same view is used using the video information.
  • Derive the first disparity vector based on a neighboring block of the block derive a second disparity vector using the first disparity vector and the reference view depth, and generate the first disparity vector and the first disparity vector.
  • Deriving a third disparity vector by using a difference between two disparity vectors, and using one of the first disparity vector, the second disparity vector, or the third disparity vector to obtain a prediction sample of the current block. Inducing step and
  • the method may include applying filtering to the current picture reconstructed using the prediction sample.
  • the disparity vector can be effectively derived using the information and the depth of the neighboring block.
  • the present invention it is possible to newly define a storage unit of the disparity vector, to reduce the complexity of the coding process and to increase the coding efficiency.
  • the coding efficiency of the multi-view video can be improved by efficiently predicting the motion vector using the disparity vector.
  • 1 is a diagram schematically illustrating a process of encoding and decoding 3D video.
  • FIG. 2 is a diagram schematically illustrating a configuration of a video encoding apparatus.
  • FIG. 3 is a diagram schematically illustrating a configuration of a video decoding apparatus.
  • FIG. 4 is a diagram schematically illustrating inter view coding.
  • FIG. 5 schematically illustrates a multi-view coding method using a depth map.
  • FIG. 6 is a diagram schematically illustrating a DV-MCP block.
  • FIG. 7 is a diagram schematically illustrating an example of neighboring blocks of a current block.
  • FIG. 8 is a diagram schematically illustrating correcting a disparity vector derived from a neighboring block using a depth.
  • FIG. 9 is a diagram schematically illustrating a method of searching for NBDV using a DV-MCP block.
  • FIG. 10 is a diagram schematically illustrating an example of neighboring blocks that may be used for motion vector prediction.
  • FIG. 11 is a diagram schematically illustrating a temporal neighboring block of a current block.
  • FIG. 12 is a diagram schematically illustrating an example of configuring an MVP list according to the present invention.
  • FIG. 13 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • FIG. 14 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • 15 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • 16 is a diagram schematically illustrating another example of a method of deriving an MVP list according to the present invention.
  • 17 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • FIG. 18 is a diagram schematically illustrating an operation of a decoding apparatus according to the present invention.
  • a pixel or a pel may mean a minimum unit constituting one image.
  • the term 'sample' may be used as a term indicating a value of a specific pixel.
  • the sample generally indicates the value of the pixel, but may indicate only the pixel value of the Luma component or only the pixel value of the Chroma component.
  • a unit may mean a basic unit of image processing or a specific position of an image.
  • the unit may be used interchangeably with terms such as 'block' or 'area' as the case may be.
  • an M ⁇ N block may represent a set of samples or transform coefficients composed of M columns and N rows.
  • 1 is a diagram schematically illustrating a process of encoding and decoding 3D video.
  • the 3D video encoder may encode a video picture, a depth map, and a camera parameter to output a bitstream.
  • the depth map may be composed of distance information (depth information) between a camera and a subject with respect to pixels of a corresponding video picture (texture picture).
  • the depth map may be an image in which depth information is normalized according to bit depth.
  • the depth map may be composed of recorded depth information without color difference representation.
  • disparity information indicating the correlation between views may be derived from depth information of the depth map using camera parameters.
  • a general color image that is, a bitstream including a depth map and camera information together with a video picture (texture picture) may be transmitted to a decoder through a network or a storage medium.
  • the decoder side can receive the bitstream and reconstruct the video.
  • the 3D video decoder may decode the video picture and the depth map and the camera parameters from the bitstream. Based on the decoded video picture, the depth map and the camera parameters, the views required for the multi view display can be synthesized. In this case, when the display used is a stereo display, a 3D image may be displayed using two pictures from the reconstructed multi views.
  • the stereo video decoder can reconstruct two pictures that will each be incident in both from the bitstream.
  • a stereoscopic image may be displayed by using a view difference or disparity between a left image incident to the left eye and a right image incident to the right eye.
  • the multi view display is used together with the stereo video decoder, different views may be generated based on the two reconstructed pictures to display the multi view.
  • the 2D image may be restored and the image may be output to the 2D display.
  • the decoder may output one of the reconstructed images to the 2D display when using a 3D video decoder or a stereo video decoder.
  • view synthesis may be performed at the decoder side or may be performed at the display side.
  • the decoder and the display may be one device or separate devices.
  • the 3D video decoder, the stereo video decoder, and the 2D video decoder are described as separate decoders.
  • one decoding apparatus may perform 3D video decoding, stereo video decoding, and 2D video decoding.
  • the 3D video decoding apparatus may perform 3D video decoding
  • the stereo video decoding apparatus may perform stereo video decoding
  • the 2D video decoding apparatus may perform the 2D video decoding apparatus.
  • the multi view display may output 2D video or output stereo video.
  • the video encoding apparatus 200 may include a picture splitter 205, a predictor 210, a subtractor 215, a transformer 220, a quantizer 225, a reorderer 230, An entropy encoding unit 235, an inverse quantization unit 240, an inverse transform unit 245, an adder 250, a filter unit 255, and a memory 260 are included.
  • the picture dividing unit 205 may divide the input picture into at least one processing unit block.
  • the processing unit block may be a coding unit block, a prediction unit block, or a transform unit block.
  • the coding unit block may be divided along the quad tree structure from the largest coding unit block as a unit block of coding.
  • the prediction unit block is a block partitioned from the coding unit block and may be a unit block of sample prediction. In this case, the prediction unit block may be divided into sub blocks.
  • the transform unit block may be divided from the coding unit block along a quad tree structure, and may be a unit block for deriving a transform coefficient or a unit block for deriving a residual signal from the transform coefficient.
  • a coding unit block is called a coding block or a coding unit (CU)
  • a prediction unit block is called a prediction block or a prediction unit (PU)
  • a transform unit block is a transform block.
  • a transform unit (TU) transform unit
  • a prediction block or prediction unit may mean a specific area in the form of a block within a picture or may mean an array of prediction samples.
  • a transform block or a transform unit may mean a specific area in a block form within a picture, or may mean an array of transform coefficients or residual samples.
  • the prediction unit 210 may perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a prediction block including prediction samples of the current block.
  • the unit of prediction performed by the prediction unit 210 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 210 may determine whether intra prediction or inter prediction is applied to the current block.
  • the prediction unit 210 may derive a prediction sample for the current block based on neighboring block pixels in a picture to which the current block belongs (hereinafter, referred to as the current picture). In this case, the prediction unit 210 may (i) derive a prediction sample based on the average or interpolation of neighbor reference samples of the current block, and (ii) a specific direction with respect to the prediction target pixel among the neighboring blocks of the current block. A prediction sample may be derived based on a reference sample present at. For convenience of explanation, the case of (i) is referred to as non-directional mode and the case of (ii) is referred to as directional mode. The prediction unit 210 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the prediction unit 210 may derive a prediction sample for the current block based on the samples specified by the motion vector on the reference picture.
  • the predictor 210 may induce a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP mode.
  • the prediction unit 210 may use the motion information of the neighboring block as the motion information of the current block.
  • the skip mode unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted.
  • the motion vector of the neighboring block may be used as a motion vector predictor (MVP) to derive the motion vector of the current block.
  • MVP motion vector predictor
  • the neighboring block includes a spatial neighboring block present in the current picture and a temporal neighboring block present in the collocated picture.
  • the motion information includes a motion vector and a reference picture.
  • motion information of a temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
  • the prediction unit 210 may perform inter view prediction.
  • the predictor 210 may construct a reference picture list by including pictures of other views. For inter view prediction, the predictor 210 may derive a disparity vector. Unlike a motion vector that specifies a block corresponding to the current block in another picture in the current view, the disparity vector may specify a block corresponding to the current block in another view of the same access unit (AU) as the current picture.
  • AU access unit
  • the prediction unit 210 may specify a depth block in a depth view based on the disparity vector, configure the merge list, inter view motion prediction, and residual. Prediction, illumination compensation (IC), view synthesis, and the like can be performed.
  • the disparity vector for the current block can be derived from the depth value using the camera parameter or from the motion vector or disparity vector of the neighboring block in the current or other view.
  • the prediction unit 210 may include an inter-view merging candidate (IvMC) corresponding to temporal motion information of a reference view and an inter-view disparity vector candidate corresponding to the disparity vector.
  • view disparity vector candidate (IvDC) shifted IvMC derived by shifting the disparity vector
  • texture merge candidate derived from the texture corresponding to when the current block is a block on the depth map texture merging candidate (T)
  • D disparity derived merging candidate
  • VSP view synthesis prediction merge candidate derived based on view synthesis : VSP
  • the number of candidates included in the merge candidate list applied to the dependent view may be limited to a predetermined value.
  • the prediction unit 210 may apply the inter-view motion vector prediction to predict the motion vector of the current block based on the disparator vector.
  • the prediction unit 210 may derive the disparity vector based on the conversion of the maximum depth value in the corresponding depth block.
  • a block including the reference sample may be used as the reference block.
  • the prediction unit 210 may use the motion vector of the reference block as a candidate motion parameter or motion vector predictor candidate of the current block, and use the disparity vector as a candidate disparity for disparity-compensated prediction (DCP). Can be used as a parity vector.
  • DCP disparity-compensated prediction
  • the subtraction unit 215 generates a residual sample which is a difference between the original sample and the prediction sample.
  • residual samples may not be generated as described above.
  • the transform unit 220 generates a transform coefficient by transforming the residual sample in units of transform blocks.
  • the quantization unit 225 may quantize the transform coefficients to generate quantized transform coefficients.
  • the reordering unit 230 rearranges the quantized transform coefficients.
  • the reordering unit 230 may reorder the quantized transform coefficients in the form of a block into a one-dimensional vector form by scanning the coefficients.
  • the entropy encoding unit 235 may perform entropy encoding on the quantized transform coefficients.
  • Entropy encoding may include, for example, encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 235 may encode information necessary for video reconstruction other than the quantized transform coefficients (eg, a value of a syntax element) together or separately.
  • Entropy-encoded information may be transmitted or stored in units of NAL units in the form of a bitstream.
  • the dequantization unit 240 inversely quantizes the quantized transform coefficients to generate transform coefficients.
  • the inverse transform unit 245 inverse transforms the transform coefficients to generate residual samples.
  • the adder 250 reconstructs the picture by combining the residual sample and the predictive sample.
  • the residual sample and the predictive sample may be added in units of blocks to generate a reconstructed block.
  • the adder 250 has been described in a separate configuration, the adder 250 may be part of the predictor 210.
  • the filter unit 255 may apply a deblocking filter and / or an offset to the reconstructed picture. Through the deblocking filtering mill / or offset, the artifacts at the block boundaries in the reconstructed picture or the distortion in the quantization process can be corrected.
  • the offset may be applied on a sample basis or may be applied after the process of deblocking filtering is completed.
  • the memory 260 may store information necessary for reconstructed pictures or encoding / decoding.
  • the memory 260 may store pictures used for inter prediction / inter-view prediction.
  • pictures used for inter prediction / inter-view prediction may be designated by a reference picture set or a reference picture list.
  • one encoding device has been described as encoding the independent view and the dependent view, this is for convenience of description, and a separate encoding device is configured for each view or a separate internal module (for example, prediction for each view). B) may be configured.
  • the video decoding apparatus 300 includes an entropy decoding unit 310, a reordering unit 320, an inverse quantization unit 330, an inverse transform unit 340, a predictor 350, and an adder 360.
  • the filter unit 370 and the memory 380 are included.
  • the video decoding apparatus 300 may reconstruct the video in response to a process in which the video information is processed in the video encoding apparatus.
  • the video decoding apparatus 300 may perform video decoding using a processing unit applied in the video encoding apparatus.
  • the processing unit block of video decoding may be a coding unit block, a prediction unit block, or a transform unit block.
  • the coding unit block may be divided along the quad tree structure from the largest coding unit block as a unit block of decoding.
  • the prediction unit block is a block partitioned from the coding unit block and may be a unit block of sample prediction. In this case, the prediction unit block may be divided into sub blocks.
  • the transform unit block may be divided from the coding unit block along a quad tree structure, and may be a unit block for deriving a transform coefficient or a unit block for deriving a residual signal from the transform coefficient.
  • the entropy decoding unit 310 may parse the bitstream and output information necessary for video reconstruction or picture reconstruction. For example, the entropy decoding unit 310 may decode the information in the bitstream based on the exponential Golomb, CAVLC, CABAC, etc., and output a syntax element value required for video reconstruction, a quantized value of transform coefficients related to the residual, and the like. have.
  • the bitstream may be input for each view.
  • information about each view may be multiplexed in the bitstream.
  • the entropy decoding unit 310 may de-multiplex the bitstream and parse for each view.
  • the reordering unit 320 may rearrange the quantized transform coefficients in the form of a two-dimensional block.
  • the reordering unit 320 may perform reordering in response to coefficient scanning performed by the encoding apparatus.
  • the inverse quantization unit 330 may dequantize the quantized transform coefficients based on the (inverse) quantization parameter and output the transform coefficients.
  • information for deriving a quantization parameter may be signaled from the encoding apparatus.
  • the inverse transform unit 340 may inverse residual transform coefficients to derive residual samples.
  • the prediction unit 350 may perform prediction on the current block and generate a prediction block including prediction samples for the current block.
  • the unit of prediction performed by the prediction unit 350 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 350 may determine whether to apply intra prediction or inter prediction.
  • a unit for determining which of intra prediction and inter prediction is to be applied and a unit for generating a prediction sample may be different.
  • the unit for generating the prediction sample in inter prediction and intra prediction may also be different.
  • the prediction unit 350 may derive the prediction sample for the current block based on the neighboring block pixels in the current picture.
  • the prediction unit 350 may derive the prediction sample for the current block by applying the directional mode or the non-directional mode based on the peripheral reference samples of the current block.
  • the prediction mode to be applied to the current block may be determined using the intra prediction mode of the neighboring block.
  • the prediction unit 350 may derive the prediction sample for the current block based on the samples specified by the motion vector on the reference picture.
  • the prediction unit 350 may induce a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP mode.
  • the motion information of the neighboring block may be used as the motion information of the current block.
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • the predictor 350 may construct a merge candidate list using motion information of available neighboring blocks, and use information indicated by the merge index on the merge candidate list as a motion vector of the current block.
  • the merge index may be signaled from the encoding device.
  • the motion information includes a motion vector and a reference picture. When motion information of a temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
  • the difference (residual) between the prediction sample and the original sample is not transmitted.
  • the motion vector of the current block may be derived using the motion vector of the neighboring block as a motion vector predictor (MVP).
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • the prediction unit 350 may perform inter view prediction.
  • the prediction unit 350 may configure a reference picture list including pictures of other views.
  • the predictor 210 may derive a disparity vector.
  • the prediction unit 350 may specify a depth block in a depth view based on the disparity vector, configure the merge list, inter view motion prediction, and residual. Prediction, illumination compensation (IC), view synthesis, and the like can be performed.
  • the disparity vector for the current block can be derived from the depth value using the camera parameter or from the motion vector or disparity vector of the neighboring block in the current or other view.
  • Camera parameters may be signaled from the encoding device.
  • the prediction unit 350 shifts the IvMC corresponding to the temporal motion information of the reference view, the IvDC corresponding to the disparity vector, and the disparity vector. Shifted IvMC derived by a subfield, a texture merge candidate (T) derived from a texture corresponding to a case in which the current block is a block on a depth map, and a disparity derivation merge candidate (D) derived using disparity from a texture merge candidate. ), A view synthesis prediction merge candidate (VSP) derived based on view synthesis may be added to the merge candidate list.
  • VSP view synthesis prediction merge candidate
  • the number of candidates included in the merge candidate list applied to the dependent view may be limited to a predetermined value.
  • the prediction unit 350 may apply inter-view motion vector prediction to predict the motion vector of the current block based on the disparator vector.
  • the prediction unit 350 may use a block in the reference view specified by the disparity vector as the reference block.
  • the prediction unit 350 may use the motion vector of the reference block as a candidate motion parameter or motion vector predictor candidate of the current block, and use the disparity vector as a candidate disparity vector for DCP.
  • the adder 360 may reconstruct the current block or the current picture by adding the residual sample and the predictive sample.
  • the adder 360 may reconstruct the current picture by adding the residual sample and the predictive sample in block units. Since the residual is not transmitted when the skip mode is applied, the prediction sample may be a reconstruction sample.
  • the adder 360 has been described in a separate configuration, the adder 360 may be part of the predictor 350.
  • the filter unit 370 may apply deblocking filtering and / or offset to the reconstructed picture.
  • the offset may be adaptively applied as an offset in a sample unit.
  • the memory 380 may store information necessary for reconstruction picture or decoding.
  • the memory 380 may store pictures used for inter prediction / inter-view prediction.
  • pictures used for inter prediction / inter-view prediction may be designated by a reference picture set or a reference picture list.
  • the reconstructed picture can be used as a reference picture.
  • the memory 380 may output the reconstructed picture in the output order.
  • the output unit may display a plurality of different views.
  • each decoding apparatus may operate for each view, and an operation unit (eg, a prediction unit) corresponding to each view may be provided in one decoding apparatus.
  • an operation unit eg, a prediction unit
  • the encoding apparatus and the decoding apparatus may improve the efficiency of video coding for the current view using the coded data of another view belonging to the same access unit (AU) as the current picture.
  • pictures having the same POC may be referred to as one AU.
  • the POC corresponds to the display order of the pictures.
  • the encoding apparatus and the decoding apparatus may code views in units of AUs, and may code pictures in units of views. Coding proceeds between views according to a predetermined order.
  • the first coded view may be referred to as a base view or an independent view.
  • a view that can be coded by referencing another view after the independent view is coded can be called a dependent view.
  • another view referred to in coding (encoding / decoding) of the current view may be referred to as a reference view.
  • FIG. 4 is a diagram schematically illustrating inter view coding.
  • coding is performed in units of AU, where V0 is an independent view and V1 is a dependent view.
  • inter-picture prediction that refers to another picture 430 of the same view using the motion vector 440 may be referred to as motion-compensated prediction (MCP).
  • MCP motion-compensated prediction
  • disparity-compensated prediction is performed by using the disparity vector 450 for inter-picture prediction that refers to the picture 420 of another view in the same access unit, that is, the same POC.
  • DCP Compensated Picture
  • a depth map may be used in addition to a method of using pictures of other views.
  • FIG. 5 schematically illustrates a multi-view coding method using a depth map.
  • a block (current block) 505 of the current picture 500 in the current view may be coded (encoded / decoded) using the depth map 510.
  • the depth value d of the position (x, y) of the sample 520 in the depth map 510 corresponding to the position (x, y) of the sample 515 in the current block 505 is the disparity vector. 525.
  • the depth value d can be derived based on the distance between the sample (pixel) and the camera.
  • the encoding apparatus and the decoding apparatus may add the disparity vector 525 to the sample 530 position (x, y) to determine the position of the reference sample 535 in the current picture 540 in the reference view.
  • the disparity vector may have only x-axis components. Accordingly, the value of the disparity vector may be (disp, 0), and the position (xr, y) of the reference sample 540 may be determined as (x + disp, y).
  • the encoding apparatus and the decoding apparatus may use the motion parameter of the reference block 545 including the reference pixel 535 as a candidate of the motion parameter of the current block. For example, if the reference picture 550 in the reference view is a reference picture for the reference block 545, the motion vector 555 of the reference block 545 may be derived to the motion vector 560 of the current block 505. It may be. At this time, the picture 565 is a reference picture in the current view.
  • the disparity vector may be used to refer to information of another view.
  • the disparity vector of the DCP coding block may be used as a disparity vector to be applied to the current block.
  • the disparity vector derived from the neighboring block that is, the disparity vector of the DCP coded block
  • IVMP inter-view motion prediction
  • IVRP inter-view residual prediction
  • MVP motion vector prediction mode
  • AMVP advanced motion vector prediction
  • SKIP skip
  • the block in which the motion vector is predicted by the IVMP method among the MCP coded blocks is called a DV-MCP block.
  • FIG. 6 is a diagram schematically illustrating a DV-MCP block.
  • FIG. 6 illustrates a case of inter prediction the current block 620 in the current picture 610 of the current view.
  • the motion vector MV1 of the neighboring block 630 used for inter prediction of the current block 620 is derived from the corresponding block 650 of the reference picture 640 in the base view.
  • the corresponding block is specified by the disparity vector DV 660.
  • the motion vector MV1 of the neighboring block 630 may be set to or derived from the motion vector MV2 of the corresponding block 650.
  • the POCs of the reference picture 640 and the current picture 610 in the base view may be the same.
  • the neighboring block 630 to which the motion vector MV1 predicted from the motion vector MV2 of the corresponding block 650 in another view is applied may be referred to as a DV-MCP block.
  • the encoding apparatus and the decoding apparatus may store the information of the disparity vector used for the motion vector prediction of the DV-MCP block and use it in the process of deriving the disparity vector of the neighboring block.
  • FIG. 7 is a diagram schematically illustrating an example of neighboring blocks of a current block.
  • the neighboring blocks of FIG. 7 are blocks that are already decoded at the time of decoding the current block and are accessible.
  • the neighboring blocks of the current block 710 are the spatial neighboring blocks A0, A1, B0, B1, B2 and the temporal neighboring blocks col-CTR (col-center) and col-RB (col-right bottom). Include.
  • the spatial neighboring blocks are each specified based on the position of the current block 710.
  • temporal neighboring blocks may be specified based on a position 720 corresponding to the current block in a collocated picture, which is one of the reference pictures.
  • a coding block including a pixel located at the center of the current block 720 in a collocated picture designated at the time of decoding the current picture or the current slice becomes col-CTR.
  • the coding block including the pixel at the (x + 1, y + 1) position becomes col-RB.
  • col-CTR may be expressed as CTR and col-BR as BR.
  • the call-located picture may be one of a temporal reference picture included in the current picture or a reference picture list of the current slice, selected for temporal disparity vector derivation. .
  • the call-picture may be known to the decoder through a slice header. For example, information indicating which picture to use as a call-picture may be signaled in the slice header.
  • the encoding apparatus and / or the decoding apparatus search temporal and spatial neighboring blocks in a predetermined order, and when the searched block is a DCP block, returns a disparity vector for the DCP and derives a disparity vector. Terminate the process.
  • the neighboring block is a DCP block
  • the prediction mode of the neighboring block is inter prediction or skip mode, and let POC and view ID of the L0 reference picture or the L1 reference picture be neighbor_ref_pocX and neighbor_ref_vidX, respectively (X is 0 or 1).
  • the neighboring block POC (neighbor_ref_pocX) is the same as the POC of the current picture
  • the view ID (neighbor_ref_vidX) of the neighboring block is different from the view ID of the current picture
  • the neighboring block may be determined as a DCP block.
  • the encoding apparatus and / or the decoding apparatus searches for the temporal neighboring blocks and the spatial neighboring blocks in a predetermined order and checks whether they are DV-MCP blocks. If the searched neighboring block is a DV-MCP block, the encoding device and / or the decoding device returns a disparity vector stored in the DV-MCP block and ends the disparity vector derivation process.
  • the order of searching for neighboring blocks in (1-1) and (1-2) described above may be variously set.
  • neighboring blocks may be searched in the order of A1, B1, A0, B0, B2, col-CTR, col-RB, or searched in the order of A0, A1, B0, B1, B2, col-CTR, col-RB. It may be.
  • the encoding apparatus and / or the decoding apparatus may use only predetermined neighboring blocks without searching all neighboring blocks. For example, only the upper block B1 and the left block A1 of the current block among the neighboring blocks of FIG. 7 may be used as the spatial neighboring block. In addition, only the block col-CTR located in the center of the region 720 corresponding to the current block in the call-picture among the neighboring blocks of FIG. 7 may be used as the temporal neighboring block.
  • the encoding apparatus and the decoding apparatus may search for neighboring blocks and derive a disparity vector in a predetermined order. For example, the temporal neighboring block may be searched first and the spatial neighboring block may be searched. In addition, for the spatial neighboring blocks, the left block may be searched first and the upper block may be searched. Alternatively, the encoding apparatus and the decoding apparatus may derive a disparity vector by setting a predetermined search order in advance.
  • the encoding apparatus and / or the decoding apparatus finds the DCP block among the neighboring blocks. If more than one DCP block is found, the disparity vector having the largest absolute value of the horizontal component among the disparity vectors of each DCP block is returned, and the process of deriving the disparity vector ends. For example, suppose that a DCP block found among neighboring blocks and a disparity vector of each DCP block have a relationship as shown in Table 1.
  • the second row of each column is initialized to X (not false), and if the neighboring block is a DCP block, it stores the value O (true), and the third row contains the motion vector of the DCP block. Record it.
  • the next block is not searched.
  • the col-CTR block of the two temporal neighboring blocks col-CTR and col-RB is a DCP block and information of the disparity vector is obtained from the col-CTR block, the additional search, that is, the col-RB block is performed. The search does not proceed.
  • the disparity vector of the B0 block having the largest absolute value of the horizontal component is set as the disparity vector of the current block and the derivation process of the disparity vector ends.
  • the encoding device and / or the decoding device may search for the DV-MCP block. If more than one DV-MCP block is found, the encoding device and / or decoding device returns a disparity vector having the largest absolute value of the horizontal component among the disparity vectors stored in each DV-MCP block. The process of deriving the disparity vector is terminated.
  • Table 2 shows an example of collecting DV-MCP block information from neighboring blocks. In Table 2, the largest absolute value of the horizontal component of the disparity vector is 10 of B2. Accordingly, the encoding apparatus and / or the decoding apparatus may derive the disparity vector of the B2 block as the disparity vector of the current block and terminate the disparity vector derivation process.
  • the aforementioned method 1 and method 2 may be combined to derive the disparity vector of the current block from the neighboring block.
  • the encoding apparatus and / or the decoding apparatus finds DCP blocks only among spatial neighboring blocks. When a plurality of DCP blocks are found, the disparity vector having the largest absolute value of the horizontal component among the disparity vectors of each DCP block is returned and the disparity vector derivation process is terminated.
  • the encoding device and / or the decoding device searches the temporal neighboring blocks in a predetermined order to find the DCP block. If the DCP block is found, the disparity vector for the DCP is returned and the disparity vector derivation process ends.
  • the encoding apparatus and / or the decoding apparatus finds DV-MCP blocks among spatial neighboring blocks. When a plurality of DV-MCP blocks are found, the disparity vector having the largest absolute value of the horizontal component among the disparity vectors stored in each DV-MCP block is returned and the disparity vector derivation process is terminated.
  • the encoding device and / or the decoding device searches the temporal neighboring blocks in a predetermined order to find the DV-MCP block. If the DV-MCP block is found, the disparity vector stored in the DV-MCP block is returned, and the disparity vector derivation process ends.
  • the aforementioned method 1 and method 2 may be combined to derive the disparity vector of the current block from the neighboring block.
  • the encoding device and / or the decoding device first finds DCP blocks among temporal neighboring blocks. When a plurality of DCP blocks are found, the encoding apparatus and / or the decoding apparatus sets the disparity vector having the largest absolute value of the horizontal component among the disparity vectors of the DCP block as the disparity block of the current block and derives the disparity vector. You can terminate the process.
  • the encoding device and / or the decoding device searches for the spatial neighboring blocks in a predetermined order to find the DCP block.
  • the encoding apparatus and / or the decoding apparatus outputs the disparity vector of the found DCP block as the disparity vector of the current block and terminates the disparity vector derivation process.
  • the encoding apparatus and / or the decoding apparatus finds DV-MCP blocks among spatial neighboring blocks. When a plurality of DV-MCP blocks are found, the disparity vector having the largest absolute value of the horizontal component among the disparity vectors stored in each DV-MCP block is returned and the disparity vector derivation process is terminated.
  • the encoding apparatus and / or the decoding apparatus may use only predetermined neighboring blocks without searching all the neighboring blocks. For example, only the upper block B1 and the left block A1 of the current block among the neighboring blocks of FIG. 7 may be used as the spatial neighboring block. In addition, only the block col-CTR located in the center of the region 720 corresponding to the current block in the call-picture among the neighboring blocks of FIG. 7 may be used as the temporal neighboring block.
  • deriving the disparity vector from the neighboring block may be simply referred to as disparity vector from neighboring blocks (NBDV).
  • NBDV disparity vector from neighboring blocks
  • the encoding device and / or the decoding device may give higher priority to the information of the DCP block than the information of the DV-MCP block.
  • the disparity vector derived through the disparity vector derivation process is a disparity vector selected by a reference from a neighboring block for the current CU block.
  • the neighboring block is based on the assumption that it is similar to the current block, if the similarity between the block inducing the disparity and the current block (eg, the current coding block) falls, the accuracy of the disparity may also be lowered.
  • the encoding apparatus and / or the decoding apparatus may use zero disparity when searching for neighboring blocks to obtain disparity.
  • the method of inducing disparity from the neighboring block uses the disparity derived from the neighboring block as a disparity for the current block, the disparity used in the prediction process may have a difference between the actual disparity. .
  • the disparity may be corrected using a depth map previously decoded in the neighboring view.
  • the depth map of the view (eg, base view) to be referred to is accessible. If the pixel value and the camera parameter of the depth map are input at the time of encoding, the disparity may be calculated through this. Therefore, in the process of deriving the disparity (disparity vector) to code the texture of the dependent view, if the depth map of the referenced view is used, the disparity of the current block derived from the neighboring block can be corrected.
  • FIG. 8 is a diagram schematically illustrating correcting a disparity vector derived from a neighboring block using a depth.
  • a method of correcting a disparity vector of a current block is as follows (i) to (v).
  • the encoding apparatus and / or the decoding apparatus may derive the disparity of the current block 810 in the current texture picture T1 800 from the neighboring block.
  • the encoding device and / or decoding device may use the disparity derived in (i) to specify a location on a neighboring view corresponding to a location on the current view. That is, the encoding apparatus and / or the decoding apparatus may project the sample position on the current view on the depth map D0 820 of the neighboring view using the disparity 820. If the mapped position exists outside the depth map, the encoding apparatus and / or the decoding apparatus may allow the mapped position to correspond to the boundary of the depth map through clipping. In this case, the depth map D0 830 is already coded, and the encoding apparatus and / or the decoding apparatus may use depth information of the depth member D0 830.
  • the encoding device and / or the decoding device may include a virtual depth block of a block (current block 810) to code a depth block at the corresponding location on the reference view 840. block, 850).
  • the encoding apparatus and / or the decoding apparatus finds the pixel having the largest value among the four corner pixel values of the virtual depth block 850.
  • the encoding apparatus and / or the decoding apparatus converts the pixel value found in (vi) into disparity. That is, the encoding device and / or the decoding device may convert the largest value of the four corner pixel values of the virtual depth block 850 into disparity. In this case, the encoding apparatus and / or the decoding apparatus may derive the disparity vector using the depth lookup table.
  • the refinement of the disparity vector derived from the neighboring block using the virtual depth may also be referred to simply as a depth oriented neighboring block based disparity vector (DoNBDV).
  • DoNBDV depth oriented neighboring block based disparity vector
  • the disparity vector obtained through the DoNBDV process may be obtained using the disparity derived in the NBDV process.
  • the current block eg, CU
  • the current block may have two or more disparity vector information through NBDV and DoNBDV.
  • the disparity vector of the current block can be well represented by the disparity vector derived from the neighboring block, that is, NBDV.
  • the disparity vector corrected by the depth value that is, DoNBDV
  • DoNBDV may well express the disparity vector of the current block. Therefore, in the 3D video compression / restoration process, encoding efficiency may be increased by selectively using one of a plurality of disparity vectors held for each CU.
  • the disparity vector information of a CU unit may be used for inter-view motion parameter prediction (IVMC), advanced residual prediction (ARP), view synthesized prediction (VSP), and the like, which are inter-view prediction techniques.
  • IVMC inter-view motion parameter prediction
  • ARP advanced residual prediction
  • VSP view synthesized prediction
  • the encoding device and / or the decoding device may fixedly use NBDV or DoNBDV, and selectively use information of a disparity vector having high coding efficiency among them.
  • the encoding device and / or the decoding device may use a disparity vector of a larger magnitude, NBDV or DoNBDV, as the disparity vector of the current block without additional information (eg, a flag indicating which disparity vector to use).
  • additional information eg, a flag indicating which disparity vector to use.
  • the encoding apparatus and / or the decoding apparatus may use the disparity vector of NBDV or DoNBDV having a smaller magnitude as the disparity vector of the current block without additional information (eg, a flag indicating which disparity vector to use). It may be.
  • the encoding apparatus and / or the decoding apparatus may selectively use NBDV or DoNBDV according to the positional relationship between the reference view and the current view.
  • the encoding device and / or the decoding device may directly send disparity vector information used for encoding the current block using flag information.
  • the encoding apparatus may transmit a flag indicating whether to use NBDV or DoNBDV for decoding the current block.
  • the decoding apparatus may decode the current block by using the disparity vector indicated by the flag.
  • a disparity vector having different characteristics can be obtained, so that the disparity vector of the current block can be effectively predicted.
  • the disparity vector of the current block may be derived more accurately in consideration of both NBDV and DoNBDV.
  • an enhanced disparity vector can be derived from the disparity vector.
  • the derivation process of the enhanced disparity vector is as follows.
  • the encoding device and / or the decoding device may derive the disparity vector DV NBDV from the neighboring block of the current block (eg, CU) through an NBDV process.
  • the encoding apparatus and / or the decoding apparatus may derive the disparity vector DV DoNBDV of the current block through the DoNBDV process using the depth value.
  • the encoding apparatus and / or the decoding apparatus unlike the above-described process of NBDV, does not terminate the process even if the first disparity vector is derived in the NBDV process, and disparity vector from all available blocks among all candidate blocks.
  • the encoding device and / or the decoding device may calculate an absolute difference between the disparity vector candidate group DV NBDV (x) and DV DoNBDV derived through the NBDV process.
  • the encoding apparatus and / or the decoding apparatus may set the disparity vector having the smallest absolute difference with the DV DoNBDV among the disparity vector candidate groups DV NBDV (x) as the new disparity vector DV NBDV_NEW as shown in Equation 1.
  • the encoding device and / or decoding apparatus can be used in place of 1 ⁇ 5 DV DoNBDV the DV NBDV_NEW obtained by the method of.
  • the encoding device and / or decoding apparatus without the use of DV NBDV_NEW may be used as a DV DoNBDV.
  • the encoding device and / or the decoding device may be DV NBDV_NEW Wow DV NBDV If is different, one of the following (1) and (2) can be selected and used as the display vector or motion vector predictor applied to generate the predictive sample of the current block: (1) DV NBDV_NEW And DV DoNBDV Any one selected. (2) DV NBDV
  • the memory capacity of the encoding apparatus and / or the decoding apparatus may be considered in the process of deriving the disparity vector from the neighboring block.
  • the encoding device and / or the decoding device are encoded by DV-MCP (i.e., IvMC) in the vicinity of the current block.
  • the disparity vector of the block may be used as a candidate disparity vector for the current block.
  • FIG. 9 is a diagram schematically illustrating a method of searching for NBDV using a DV-MCP block.
  • the motion vector mv1 930 of the neighboring block 920 may be derived from the corresponding block 940 of the base view referenced by the current block C 910.
  • the motion vector 930 of the neighboring block 920 may be set to be the same as the motion vector mv1 950 of the corresponding block 940.
  • the motion vector mv1 950 of the corresponding block 940 may specify the reference block 970 in the picture at another time t1.
  • Corresponding block 940 may be specified by disparity vector dv1 960.
  • the encoding device and / or the decoding device may use dv1 960 as a candidate for deriving the NBDV of the current block C 910.
  • the encoding apparatus and / or the decoding apparatus should store disparity vector information (eg, information about dv1 of FIG. 9) of a block coded (encoded / decoded) by DV-MCP during the encoding / decoding process.
  • the disparity vector information of the current DV-MCP block is stored in CU units. Since the size of the minimum CU is 8x8 pixels, even if the information of the disparity vector is stored in every 8x8 block, there is a problem to be considered in the implementation of hardware. In other words, the memory size must be designed so that a disparity vector can be stored for every 8x8 block.
  • the memory size for storing the disparity vector information of the DV-MCP block can be reduced to 1/4.
  • the disparity vector value of the DV-MCP block may be extended to the periphery, which may have an effect that the NBDV value is more propagated than the conventional method.
  • the present invention is not limited to storing the disparity vector in units of 16 ⁇ 16 pixels.
  • the disparity vector may be stored in units of sizes of 16x16 pixels or more (eg, 32x32 pixels and 64x64 pixels). In this case, the required memory size can be further reduced.
  • the encoding apparatus and / or the decoding apparatus may store the disparity vector in non-square units such as 32x16 pixels and 16x8 pixels instead of square units.
  • a method of reducing the amount of transmission of information can be considered as a method of increasing the coding efficiency.
  • the encoding apparatus may use a method of transmitting only a motion vector difference between the motion vector of the current block and the motion vector prediction value.
  • the decoding apparatus obtains a motion vector prediction value of the current block (current processing unit, eg, CU or PU) by using motion information of other decoded units (eg, CU or PU), and uses the transmitted difference value to determine the current block.
  • the motion vector value for is obtained.
  • FIG. 10 is a diagram schematically illustrating an example of neighboring blocks that may be used for motion vector prediction.
  • FIG. 10 illustrates a specific example of neighboring blocks of the current block when coding the current view.
  • the positions of the spatial neighboring blocks A0, A1, B0, B1, and B2 of the current block 1000 may be specified based on the location of the current block 1000.
  • spatial neighboring blocks may be configured as a lower left block A0 of a current block, a left block A1 of a current block, a right upper block B0 of a current block, an upper block B1 of a current block, and a left upper block B2 of a current block.
  • the temporal neighboring block T of the current block 1000 may be specified.
  • FIG. 11 is a diagram schematically illustrating a temporal neighboring block of a current block.
  • the temporal neighboring block T of the current block illustrated in FIG. 10 may be specified based on the position 1010 of the current block in a collocated picture designated at the time of decoding the current picture or the current slice.
  • a center block CTR and a bottom right block RB may be specified. If the right bottom block RB is available, the RB is used as the temporal neighboring block of the current block. If the RB is not available, the central block CTR may be used as the neighboring block of the current block.
  • the neighboring blocks of the current block illustrated in FIGS. 10 and 11 are blocks already decoded at the time of decoding the current block, and correspond to neighboring blocks of the current block described with reference to FIG. 7.
  • the encoding apparatus and the decoding apparatus may construct a motion vector predictor list (MVP list) using motion vectors of neighboring blocks of the current block (eg, coding block or prediction block).
  • MVP list motion vector predictor list
  • the encoding apparatus may transmit an index value indicating a motion vector prediction value having the most coding efficiency on the MVP list and a difference value of a motion vector to be applied when the prediction value indicated by the index is used.
  • the decoding apparatus may receive a difference value between the index value and the motion vector indicating on the MVP list which motion vector prediction value to use.
  • the decoding apparatus may reconstruct the motion vector to be used for the current block by using the motion vector prediction value indicated by the index and the difference value. For example, the decoding apparatus may derive the motion vector of the current block based on the motion vector prediction value plus the difference value.
  • the encoding device and / or the decoding device are already decoded. You can use the disparity vector of the finished reference view.
  • the encoding apparatus and / or the decoding apparatus may add the motion vector prediction value using the motion vector of the corresponding block specified by the disparity vector of the reference view to the MVP list.
  • the encoding apparatus and / or the decoding apparatus may generate the motion vector prediction value in the following manner according to the coding mode of the corresponding block.
  • the reference picture of the current picture is a temporal reference picture that is a picture of the same view as the current picture
  • the encoding apparatus and / or the decoding apparatus adds the motion vector of the corresponding block to the MVP list as a motion vector predictor (MVP) candidate of the current block. can do.
  • MVP motion vector predictor
  • POC1 which is the POC value of the reference picture referred to by the corresponding block
  • POC2 which is the POC of the reference picture referenced by the current block
  • scaling of the motion vector of the corresponding block may be additionally performed.
  • the motion vector MV of the corresponding block may adjust the size of the motion vector as MV * ((POC2-POC0) / (POC1-POC0)).
  • a motion vector prediction value may be generated as follows.
  • the (1-ii-1) encoding device and / or the decoding device may use a zero vector, that is, (0,0) as a motion vector predictor.
  • the encoding apparatus and / or the decoding apparatus may find an MCP coded block among neighboring blocks of the corresponding block and use the motion vector prediction value.
  • the encoding apparatus and / or the decoding apparatus may find the MCP coded block by sequentially searching the neighboring blocks of the corresponding block in various orders. For example, the encoding device and / or the decoding device searches for neighboring blocks in the order of A1, B1, A0, B0, B2, col-CTR, col-RB, or A0, A1, B0, B1, B2, col-CTR, col You can also search in -RB order.
  • the encoding device and / or the decoding device may use the disparity value predicted through the disparity vector derivation process. For example, since the vertical component of the disparity vector is zero, the encoding device and / or the decoding device use the disparity value disp predicted through the disparity vector derivation process to select (disp, 0) as a motion vector predictor candidate in the MVP list. You can add
  • the index (refIdx) value of the reference picture is decoded before the index value of the MVP list is decoded, so that the reference picture is the reference picture of the same view or the reference picture of another view. It can be seen. Using this, an efficient motion vector prediction value can be derived.
  • AMVP Advanced Motion Vector Prediction
  • the encoding apparatus and / or the decoding apparatus may find the corresponding block of the neighboring view using the disparity value derived from the neighboring block as described above.
  • the encoding device and / or the decoding device may check whether this block is coded with MCP.
  • the encoding apparatus and / or the decoding apparatus may add the motion vector of the corresponding block to the MVP list as one candidate of the motion vector prediction value of the current block.
  • the encoding device and / or the decoding device use the disparity value disp derived from the neighboring block to set (disp, 0) to the MVP list as a motion vector prediction value candidate. Can be added to
  • the MVP list may be configured in various ways.
  • embodiments of constructing an MVP list when a current block can refer to pictures of another view will be described in detail.
  • the peripheral blocks are the peripheral blocks shown in FIGS. 10 and 11.
  • a motion vector predictor for the current block may mean a disparity vector. Accordingly, the encoding apparatus and / or the decoding apparatus may refine the disparity vector found from the neighboring block by using a base view depth value. That is, the encoding device and / or the decoding device may refine the disparity vector induced by the NBDV process through the DoNBDV process.
  • the encoding apparatus and / or the decoding apparatus refines the disparity vector derived by the NBDV process through the DoNBDV process.
  • the disparity vector derived through the NBDV process is derived from neighboring blocks A0 and B0, and the derived disparity vector is modified through DoNBDV.
  • the encoding apparatus and / or the decoding apparatus may use the DoNBDV as a motion vector predictor candidate (AMVP candidate) included in the MVP list through the DoNBDV. It can be refined and used as a final AMVP candidate.
  • AMVP candidate motion vector predictor candidate
  • the motion vector prediction value for the current block means a disparity vector. Therefore, when the maximum number of motion vector prediction value candidates for the current block is not filled in the MVP list, the encoding apparatus and / or the decoding apparatus may update the disparity vector added to the current MVP list through the DoNBDV process and add it to the MVP list. It may be.
  • the encoding apparatus and / or the decoding apparatus may add the DoNBDV process to the zero vector to add to the MVP list.
  • FIG. 13 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • an encoding device and / or a decoding device construct an MVP list with available disparity vector (s) derived by the NBDV process, and should add a candidate to the MVP list
  • a new candidate may be derived by applying the DoNBDV process to the added candidate.
  • a disparity vector available from a neighboring block A0 is derived through an NBDV process is described as an example.
  • Up candidate number of MVP list 2 and the encoding device and / or decoding apparatus may derive a candidate disparity vector (A0 ') tablets by applying DoNBDV process a disparity vector (A0) derived from A0 .
  • the method of using only two neighboring blocks A1 and B1 among the spatial neighboring blocks may be equally applied. If the neighboring block B1 is not available, the encoding device and / or the decoding device determines the final AMVP candidate (MVP list) as the disparity vector A1 ⁇ derived by applying DoNBDV to the disparity vector A1 and the disparity vector A1 derived from the block A1. ) Can be configured.
  • MVP list the final AMVP candidate
  • the motion vector prediction value for the current block may mean a disparity vector. Therefore, the encoding apparatus and / or the decoding apparatus may configure the MVP list with the disparity vector obtained through the NBDV process and the disparity vector updated through the DoNBDV process. In this case, as the disparity vector derived from the neighboring block, a disparity vector already derived in the previous encoding or decoding process or derived in encoding / decoding of the current block may be used.
  • the final AMVP candidates to be used for the current block that is, the MVP list
  • the MVP list are composed of NBDV and DoNBDV derived from the neighboring block, not the motion vector of the neighboring block.
  • the motion vector prediction value for the current block may mean a disparity vector. Therefore, when the maximum number of motion vector prediction value candidates for the current block is not filled in the MVP list, the encoding apparatus and / or the decoding apparatus may add the disparity vector derived through the NBDV process to the MVP list. In addition, the encoding apparatus and / or the decoding apparatus may update the disparity vector through the DoNBDV process and add the disparity vector to the MVP list.
  • FIG. 15 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • an MVP list includes two final motion vector predictor candidates will be described as an example.
  • the encoding device and / or decoding device is induced via NBDV process on the neighboring blocks
  • the disparity vector derived through the disparity vector or the DoNBDV process may be added to the MVP list.
  • the encoding apparatus and / or the decoding apparatus may add the disparity vector updated through the DoNBDV process to the MVP list.
  • the encoding device and / or the decoding device may not fill an empty position of the list when there is no disparity for the current block. That is, when there is a disparity vector derived from a neighboring block through the NBDV process, the encoding device and / or the decoding device supplements the final AMVP candidate with a disparity vector induced through NBDV or a disparity vector updated through DoNBDV. You may.
  • FIG. 16 is a diagram schematically illustrating another example of a method of deriving an MVP list according to the present invention.
  • MVP list consists of two motion vector prediction value candidates is demonstrated as an example.
  • the encoding device and / or the decoding device does not add a zero vector, but converts the zero vector into a DoNBDV. It can be refined and added to the MVP list.
  • a zero vector may be used as the zero disparity vector.
  • the encoding apparatus and / or the decoding apparatus may update the zero disparity vector with the DoNBDV process and add it to the MVP list.
  • 17 is a diagram schematically illustrating another example of configuring an MVP list according to the present invention.
  • the motion vector prediction value for the current block means a disparity vector.
  • the encoding device and / or the decoding device may use a zero vector added as a zero disperity vector when there is no motion vector predictor (mvp) candidate available.
  • the encoding apparatus and / or the decoding apparatus may replace the zero vector with the disparity vector updated through the DoNBDV process.
  • the decoding apparatus may entropy decode a bitstream (S1810).
  • the decoding device may parse the bitstream and output video information necessary for decoding the current block.
  • the video information may include information specifying a neighboring block (for example, information indicating a call picture), information indicating a reference view, information indicating whether a depth is used for derivation of a disparity vector (indicative of whether DoNBDV is applied). Information), and the like.
  • the decoding apparatus may derive a disparity vector based on the video information (S1820).
  • the decoding apparatus uses the video information to derive the first disparity vector based on the neighboring blocks of the current block within the same view, and the second disparity using the first disparity vector and the reference view depth.
  • a vector may be derived, and a third disparity vector may be derived by using a difference between the first disparity vector and the second disparity vector.
  • the first disparity vector may correspond to the disparity vector DV NBDV induced by the NBDV process
  • the second disparity vector may correspond to the disparity vector DV DoNBDV induced by the DoNBDV process
  • the third The disparity vector may correspond to the disparity vector DV NBDV_NEW derived based on the difference between DVNBDV and DVDoNBDV.
  • the decoding apparatus may derive the predictive sample of the current block by using the derived disparity vector (S1830).
  • the decoding apparatus may derive the prediction sample of the current block by using any one of the first disparity vector, the second disparity vector, and the third disparity vector.
  • the decoding apparatus may construct an MVP candidate list using motion vectors including a first disparity vector, a second disparity vector, and a third disparity vector.
  • the decoding apparatus may induce the motion vector of the current block based on the sum of the motion vector predictor selected from the MVP candidate list and the transmitted motion vector difference value.
  • the motion vector difference value may be calculated from the encoding device as a difference value between the motion vector prediction value and the motion vector of the current block, and transmitted to the decoding device together with information indicating the reference picture.
  • the decoding apparatus may derive the predictive sample of the current block based on the sample values specified by the motion vector in the reference picture.
  • the construction method of the MVP candidate list and the derivation method of the prediction sample are as described above.
  • the decoding apparatus may apply filtering to the reconstructed picture using the predictive sample (S1840).
  • the decoding apparatus may derive the reconstructed sample of the current block by adding the residual sample to the predictive sample.
  • the residual sample may be entropy encoded from the encoding device and transmitted to the decoding device.
  • the decoding apparatus may derive the residual sample value based on entropy decoding.
  • the decoding apparatus may apply deblocking filtering or SAO to the reconstructed picture. Whether filtering is applied may be signaled from the encoding device to the decoding device.
  • S1820 to S1840 are contents that operate in a decoding loop in the encoding apparatus, and may be similarly applied to the encoding apparatus.

Landscapes

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

Abstract

본 발명은 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법으로서, 본 발명에 따른 비디오 디코딩 방법은 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 방법으로서, 비트스트림을 엔트로피 디코딩하여 현재 블록의 디코딩에 필요한 비디오 정보를 유도하는 단계, 상기 비디오 정보를 이용하여 동일 뷰 내에 있는 상기 현재 블록의 주변 블록을 기반으로 상기 제1 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 상기 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도하는 단계, 상기 제1 디스패리티 벡터, 제2 디스패리티 벡터 또는 제3 디스패리티 벡터 중 어느 하나를 이용하여 상기 현재 블록의 예측 샘플을 유도하는 단계 및 상기 예측 샘플을 이용하여 복원된 현재 픽처에 필터링을 적용하는 단계를 포함할 수 있다.

Description

멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법
본 발명은 비디오 코딩에 관한 기술로서, 더 구체적으로는 3D 비디오 영상의 코딩에 관한 것이다.
최근 고해상도, 고품질의 영상에 대한 요구가 다양한 응용 분야에서 증가하고 있다. 하지만, 영상이 고해상도를 가지고 고품질이 될수록 해당 영상에 관한 정보량도 함께 증가한다.
따라서 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 정보를 전송하거나 기존의 저장 매체를 이용해 영상 정보를 저장하는 경우에는, 정보의 전송 비용과 저장 비용이 증가하게 된다. 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술을 이용할 수 있다.
한편, 고해상/대용량의 영상을 처리할 수 있게 됨에 따라서, 3D 비디오를 이용한 디지털 방송 서비스가 차세대 방송 서비스의 하나로 주목 받고 있다. 3D 비디오는 복수의 시점(view) 채널을 이용하여 현장감과 몰입감을 제공할 수 있다.
3D 비디오는 FVV(free viewpoint video), FTV(free viewpoint TV), 3DTV, 사회 안전망(surveillance) 및 홈 엔터테인먼트와 같은 다양한 영역에 사용될 수 있다.
싱글 뷰 비디오(single view video)와 달리 멀티 뷰를 이용한 3D 비디오는 동일한 POC(picture order count)의 뷰들 사이에 높은 상관도(correlation)를 가진다. 멀티 뷰 영상은 인접한 여러 카메라 즉, 여러 시점(view)를 이용하여 똑같은 장면을 동시에 촬영하기 때문에, 시차와 약간의 조명 차이를 제외하면 거의 같은 정보를 담고 있으므로 서로 다른 뷰 간의 상관도가 높다.
따라서, 멀티 뷰 비디오의 인코딩/디코딩에서는 서로 다른 뷰 사이의 상관도를 고려하여, 현재 뷰의 인코딩 및/또는 디코딩에 필요한 정보를 획득할 수 있다. 예를 들어, 현재 뷰의 디코딩 대상 블록을 다른 뷰의 블록을 참조하여 예측하거나 디코딩할 수 있다.
본 발명은 주변 블록의 정보 및 뎁스를 이용하여 더 효과적인 디스패리티 벡터을 유도하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 복잡도를 낮추고 코딩 효율을 높일 수 있는 디스패리티 벡터의 저장 단위를 규정하는 것을 목적으로 한다.
본 발명은 디스패리티 벡터를 이용해서 효율적으로 움직임 벡터를 예측하여 코딩 효율을 높이는 방법 및 장치를 제공한다.
본 발명의 일 실시형태는 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치로서, 비트스트림을 엔트로피 디코딩하여 현재 블록의 디코딩에 필요한 비디오 정보를 유도하는 엔트로피 디코딩부, 상기 현재 블록의 디코딩에 참조되는 픽처들을 저장하는 메모리, 상기 비디오 정보를 이용하여 동일 뷰 내에 있는 상기 현재 블록의 주변 블록을 기반으로 상기 제1 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 상기 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터, 제2 디스패리티 벡터 또는 제3 디스패리티 벡터 중 어느 하나를 이용하여 상기 현재 블록의 예측 샘플을 유도하는 예측부 및 상기 현재 블록에 대한 예측 샘플을 이용하여 복원된 현재 픽처에 필터링을 적용하는 필터링부를 포함할 수 있다.
본 발명의 다른 실시형태는 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 방법으로서, 비트스트림을 엔트로피 디코딩하여 현재 블록의 디코딩에 필요한 비디오 정보를 유도하는 단계, 상기 비디오 정보를 이용하여 동일 뷰 내에 있는 상기 현재 블록의 주변 블록을 기반으로 상기 제1 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 상기 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도하는 단계, 상기 제1 디스패리티 벡터, 제2 디스패리티 벡터 또는 제3 디스패리티 벡터 중 어느 하나를 이용하여 상기 현재 블록의 예측 샘플을 유도하는 단계 및
상기 예측 샘플을 이용하여 복원된 현재 픽처에 필터링을 적용하는 단계를 포함할 수 있다.
본 발명에 의하면, 주변 블록의 정보 및 뎁스를 이용하여 디스패리티 벡터를 효과적으로 유도할 수 있다.
본 발명에 의하면, 디스패리티 벡터의 저장 단위를 새롭게 규정하며 코딩 과정의 복잡도를 낮추고 코딩 효율을 높일 수 있다.
본 발명에 의하면, 디스패리티 벡터를 이용해서 효율적으로 움직임 벡터를 예측함으로써 멀티 뷰 비디오의 코딩 효율을 높일 수 있다.
도 1은 3D 비디오의 인코딩 및 디코딩 과정을 개략적으로 설명하는 도면이다.
도 2는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3은 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 4는 인터 뷰 코딩을 개략적으로 설명하는 도면이다.
도 5는 뎁스 맵을 이용하는 멀티 뷰 코딩 방법을 개략적으로 설명한다.
도 6은 DV-MCP 블록을 개략적으로 설명하는 도면이다.
도 7은 현재 블록의 주변 블록들의 일 예를 개략적으로 설명하는 도면이다.
도 8은 주변 블록으로부터 유도한 디스패리티 벡터를 뎁스를 이용하여 보정하는 것을 개략적으로 설명하는 도면이다.
도 9는 DV-MCP 블록을 이용하여 NBDV를 탐색하는 방법을 개략적으로 설명하는 도면이다.
도 10은 움직임 벡터 예측에 이용될 수 있는 주변 블록의 예를 개략적으로 설명하는 도면이다.
도 11은 현재 블록의 시간적 주변 블록을 개략적으로 설명하는 도면이다.
도 12는 본 발명에 따라서 MVP 리스트를 구성하는 일 예를 개략적으로 설명하는 도면이다.
도 13은 본 발명에 따라서 MVP 리스트를 구성하는 다른 예를 개략적으로 설명하는 도면이다.
도 14는 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다.
도 15는 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다.
도 16은 본 발명에 따라서 MVP 리스트를 유도하는 방법의 또 다른 예를 개략적으로 설명하는 도면이다.
도 17은 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다.
도 18은 본 발명에 따른 디코딩 장치의 동작을 개략적으로 설명하는 도면이다.
본 명세서에서 픽셀(pixel) 또는 펠(pel)은 하나의 영상을 구성하는 최소의 단위를 의미할 수 있다. 또한, 특정한 픽셀의 값을 나타내는 용어로서 ‘샘플(sample)’이 사용될 수 있다. 샘플은 일반적으로 픽셀의 값을 나타내지만, 휘도(Luma) 성분의 픽셀 값만을 지시할 수도 있고, 색차(Chroma) 성분의 픽셀 값만을 지시할 수도 있다.
'유닛(unit)'은 영상 처리의 기본 단위 또는 영상의 특정 위치를 의미할 수 있다. 유닛은 경우에 따라서 '블록(block)' 또는 '영역(area)' 등의 용어와 서로 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다.
이하, 도면을 이용하여 본 발명에 대하여 구체적으로 설명한다.
도 1은 3D 비디오의 인코딩 및 디코딩 과정을 개략적으로 설명하는 도면이다.
도 1을 참조하면, 3D 비디오 인코더는 비디오 픽처 및 뎁스 맵(depth map)과 카메라 파라미터를 인코딩하여 비트스트림으로 출력할 수 있다.
뎁스 맵은 대응하는 비디오 픽처(텍스처 픽처)의 픽셀에 대하여 카메라와 피사체 간의 거리 정보(깊이 정보)로 구성될 수 있다. 예컨대, 뎁스 맵은 깊이 정보를 비트 뎁스(bit depth)에 따라 정규화한 영상일 수 있다. 이때, 뎁스 맵은 색차 표현없이 기록된 깊이 정보로 구성될 수 있다.
일반적으로 피사체와의 거리와 변위(디스패러티)는 서로 반비례하므로, 카메라 파라미터를 이용하여 뎁스 맵의 깊이 정보로부터 뷰 간의 상관도를 나타내는 디스패러티 정보를 유도할 수 있다.
일반적인 컬러 영상 즉, 비디오 픽처(텍스처 픽처)와 함께 뎁스 맵과 카메라 정보를 포함하는 비트스트림은 네트워크 또는 저장매체를 통해 디코더로 전송될 수 있다.
디코더 측에서는 비트스트림을 수신해서 비디오를 복원할 수 있다. 디코더 측에서 3D 비디오 디코더가 이용되는 경우에, 3D 비디오 디코더는 비트스트림으로부터 비디오 픽처와 뎁스 맵 및 카메라 파라미터를 디코딩할 수 있다. 디코딩된 비디오 픽처와 뎁스 맵 그리고 카메라 파라미터를 기반으로 멀티 뷰(multi view) 디스플레이에 필요한 뷰들을 합성할 수 있다. 이때, 사용되는 디스플레이가 스테레오(streo) 디스플레이인 경우라면, 복원된 멀티 뷰들 중에서 두 개의 픽처를 이용하여 3D 영상을 디스플레이 할 수 있다.
스테레오 비디오 디코더가 사용되는 경우에, 스테레오 비디오 디코더는 비트스트림으로부터 양 안에 각각 입사될 두 픽처를 복원할 수 있다. 스테레오 디스플레이에서는 왼쪽 눈에 입사되는 좌측 영상과 우측 눈에 입사되는 우측 영상의 시차(view difference) 혹은 변위(disparity)를 이용해서 입체 영상을 디스플레이 할 수 있다. 스테레오 비디오 디코더와 함께 멀티 뷰 디스플레이가 사용되는 경우에는, 복원된 두 픽처를 기반으로 다른 뷰들을 생성하여 멀티 뷰를 디스플레이할 수도 있다.
2D 디코더가 사용되는 경우에는 2차원 영상을 복원해서 2D 디스플레이로 영상을 출력할 수 있다. 2D 디스플레이를 사용하지만, 디코더는 3D 비디오 디코더를 사용하거나 스테레오 비디오 디코더를 사용하는 경우에는 복원된 영상들 중 하나를 2D 디스플레이로 출력할 수도 있다.
도 1의 구성에서, 뷰 합성은 디코더 측에서 수행될 수도 있고, 디스플레이측에서 수행될 수도 있다. 또한, 디코더와 디스플레이는 하나의 장치일 수도 있고 별도의 장치일 수도 있다.
도 1에서는 설명의 편의를 위해 3D 비디오 디코더와 스테레오 비디오 디코더 그리고 2D 비디오 디코더가 별도의 디코더인 것으로 설명하였으나, 하나의 디코딩 장치가 3D 비디오 디코딩, 스테레오 비디오 디코딩 그리고 2D 비디오 디코딩을 모두 수행할 수도 있다. 또한, 3D 비디오 디코딩 장치가 3D 비디오 디코딩을 수행하고, 스테레오 비디오 디코딩 장치가 스테레오 비디오 디코딩을 수행하며, 2D 비디오 디코딩 장치가 2D 비디오 디코딩 장치를 수행할 수도 있다. 더 나아가, 멀티 뷰 디스플레이가 2D 비디오를 출력하거나 스테레오 비디오를 출력할 수도 있다.
도 2는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다. 도 2를 참조하면, 비디오 인코딩 장치(200)는 픽처 분할부(205), 예측부(210), 감산부(215), 변환부(220), 양자화부(225), 재정렬부(230), 엔트로피 인코딩부(235), 역양자화부(240), 역변환부(245), 가산부(250), 필터부(255) 및 메모리(260)를 포함한다.
픽처 분할부(205)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위 블록은 코딩 단위 블록, 예측 단위 블록 또는 변환 단위 블록일 수 있다. 코딩 단위 블록은 코딩의 단위 블록으로서 최대 코딩 단위 블록으로부터 쿼드 트리 구조를 따라서 분할될 수 있다. 예측 단위 블록은 코딩 단위 블록으로부터 파티셔닝되는 블록으로서, 샘플 예측의 단위 블록일 수 있다. 이때, 예측 단위 블록은 서브 블록으로 나뉠 수도 있다. 변환 단위 블록은 코딩 단위 블록으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 단위 블록 또는 변환 계수로부터 잔차 신호를 유도하는 단위 블록일 수 있다.
이하, 설명의 편의를 위해, 코딩 단위 블록은 코딩 블록 또는 코딩 유닛(coding unit: CU)이라 하고, 예측 단위 블록은 예측 블록 또는 예측 유닛(prediction unit: PU)이라 하며, 변환 단위 블록은 변환 블록 또는 변환 유닛(transform unit: TU)이라 한다.
예측 블록 또는 예측 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수도 있고, 예측 샘플의 어레이를 의미할 수도 있다. 또한, 변환 블록 또는 변환 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수도 있고, 변환 계수 또는 레지듀얼 샘플의 어레이를 의미할 수도 있다.
예측부(210)는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측 블록을 생성할 수 있다. 예측부(210)에서 수행되는 예측의 단위는 코딩 블록일 수도 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.
예측부(210)는 현재 블록에 인트라 예측이 적용되는지 인터 예측이 적용되는지를 결정할 수 있다.
인트라 예측의 경우에, 예측부(210)는 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 주변 블록 화소를 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 예측부(210)는 (i) 현재 블록의 주변 참조 샘플들의 평균 혹은 인터폴레이션을 기반으로 하는 예측 샘플을 유도할 수도 있고, (ii) 현재 블록의 주변 블록들 중 예측 대상 픽셀에 대하여 특정 방향에 존재하는 참조 샘플을 기반으로 예측 샘플을 유도할 수도 있다. 설명의 편의를 위해, (i)의 경우를 비방향성 모드, (ii)의 경우를 방향성 모드라고 한다. 예측부(210)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측의 경우에, 예측부(210)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 샘플들을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(210)는 스킵(skip) 모드, 머지(merge) 모드, 및 MVP 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 스킵 모드와 머지 모드의 경우에, 예측부(210)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차(레지듀얼)가 전송되지 않는다. MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor: MVP)로 이용하여 현재 블록의 움직임 벡터를 유도할 수 있다.
인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록과 참조 픽처(collocated picture)에 존재하는 시간적 주변 블록을 포함한다. 움직임 정보는 움직임 벡터와 참조 픽처를 포함한다. 스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다.
종속 뷰(dependent view)에 대한 인코딩의 경우에, 예측부(210)는 인터 뷰 예측을 수행할 수도 있다.
예측부(210)는 다른 뷰의 픽처를 포함하여 참조 픽처 리스트를 구성할 수 있다. 인터 뷰 예측을 위해, 예측부(210)는 디스패리티(disparity) 벡터를 유도할 수 있다. 현재 뷰 내 다른 픽처에서 현재 블록에 대응하는 블록을 특정하는 움직임 벡터와 달리, 디스패리티 벡터는 현재 픽처와 동일한 AU(Access Unit)의 다른 뷰에서 현재 블록에 대응하는 블록을 특정할 수 있다.
예측부(210)는 디스패리티 벡터를 기반으로, 뎁스 뷰(depth view) 내의 뎁스 블록(depth block)을 특정할 수 있고, 머지 리스트의 구성, 인터 뷰 움직임 예측(inter view motion prediction), 레지듀얼 예측, IC(Illumination Compensation), 뷰 합성 등을 수행할 수 있다.
현재 블록에 대한 디스패리티 벡터는 카메라 파라미터를 이용하여 뎁스 값으로부터 유도되거나, 현재 또는 다른 뷰 내 주변 블록의 움직임 벡터 또는 디스패리티 벡터로부터 유도될 수 있다.
예컨대, 예측부(210)는 참조 뷰(reference view)의 시간적 움직임 정보에 대응하는 인터 뷰 머지 후보(inter-view merging candidate: IvMC), 디스패리티 벡터에 대응하는 인터 뷰 디스패리티 벡터 후보(inter-view disparity vector candidate: IvDC), 디스패리티 벡터의 쉬프트(shift)에 의해 유도되는 쉬프티드 인터뷰 머지 후보(shifted IvMC), 현재 블록이 뎁스 맵 상의 블록인 경우에 대응하는 텍스처로부터 유도되는 텍스처 머지 후보(texture merging candidate: T), 텍스처 머지 후보로부터 디스패리티를 이용하여 유도되는 디스패리티 유도 머지 후보(disparity derived merging candidate: D), 뷰 합성에 기반해서 유도되는 뷰 합성 예측 머지 후보(view synthesis prediction merge candidate: VSP) 등을 머지 후보 리스트에 추가할 수 있다.
이때, 종속 뷰에 적용되는 머지 후보 리스트에 포함되는 후보의 개수는 소정의 값으로 제한될 수 있다.
또한, 예측부(210)는 인터-뷰 움직임 벡터 예측을 적용하여, 디스패리터 벡터를 기반으로 현재 블록의 움직임 벡터를 예측할 수도 있다. 이때, 예측부(210)는 대응하는 깊이 블록 내 최대 깊이 값의 전환(conversion)에 기반하여 디스패리티 벡터를 유도할 수 있다. 참조 뷰 내 현재 블록의 샘플 위치에 디스패리티 벡터를 더하여 참조 뷰 내 참조 샘플의 위치가 특정되면, 참조 샘플을 포함하는 블록을 참조 블록으로 이용할 수 있다. 예측부(210)는 참조 블록의 움직임 벡터를 현재 블록의 후보 움직임 파라미터 혹은 움직임 벡터 예측자 후보로 이용할 수 있으며, 상기 디스패리티 벡터를 디스패리티 보상 예측(Disparity-Compensated Prediction: DCP)를 위한 후보 디스패리티 벡터로 이용할 수 있다.
감산부(215)는 원본 샘플과 예측 샘플 간의 차이인 레지듀얼 샘플을 생성한다. 스킵 모드가 적용되는 경우에는, 상술한 바와 같이 레지듀얼 샘플을 생성하지 않을 수 있다.
변환부(220)는 변환 블록 단위로 레지듀얼 샘플을 변환하여 변환 계수(transform coefficient)를 생성한다. 양자화부(225)는 변환 계수들을 양자화하여, 양자화된 변환 계수를 생성할 수 있다.
재정렬부(230)는 양자화된 변환 계수를 재정렬한다. 재정렬부(230)는 계수들을 스캐닝(Scanning) 방법을 통해 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있다.
엔트로피 인코딩부(235)는 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩에는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding) 등과 같은 인코딩 방법을 사용할 수 있다. 엔트로피 인코딩부(235)는 양자화된 변환 계수 외 비디오 복원에 필요한 정보들(예컨대, 신택스 엘리먼트(syntax element)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다.
엔트로피 인코딩된 정보들은 비트스트림 형태로 NAL(Network Abstraction Layer) 유닛 단위로 전송 또는 저장될 수 있다.
역양자화(dequantization)부(240)는 양자화된 변환 계수를 역양자화하여 변환 계수를 생성한다. 역변환(inverse transform)부(245)는 변환 계수를 역변환하여 레지듀얼 샘플을 생성한다.
가산부(250)는 레지듀얼 샘플과 예측 샘플을 합쳐서 픽처를 복원한다. 레지듀얼 샘플과 예측 샘플은 블록 단위로 더해져서 복원 블록을 생성할 수도 있다. 여기서 가산부(250)는 별도의 구성으로 설명하였으나, 가산부(250)는 예측부(210)의 일부일 수도 있다.
복원된 픽처(reconstructed picture)에 대하여 필터부(255)는 디블록킹 필터 및/또는 오프셋을 적용할 수 있다. 디블록킹 필터링 밀/또는 오프셋을 통해, 복원 픽처 내 블록 경계의 아티팩트나 양자화 과정에서의 왜곡이 보정될 수 있다. 오프셋은 샘플 단위로 적용될 수도 있으며, 디블록킹 필터링의 과정이 완료된 후 적용될 수 있다.
메모리(260)는 복원 픽처 또는 인코딩/디코딩에 필요한 정보를 저장할 수 있다. 예컨대, 메모리(260)는 인터 예측/인터-뷰 예측에 사용되는 픽처들을 저장할 수 있다. 이때, 인터 예측/인터-뷰 예측에 사용되는 픽처들은 참조 픽처 세트 혹은 참조 픽처 리스트에 의해 지정될 수도 있다.
여기서는, 하나의 인코딩 장치가 독립 뷰 및 종속 뷰를 인코딩하는 것으로 설명하였으나, 이는 설명의 편의를 위한 것으로서, 각 뷰별로 별도의 인코딩 장치가 구성되거나 각 뷰별로 별도의 내부 모듈(예컨대, 각 뷰별 예측부)가 구성될 수도 있다.
도 3은 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다. 도 3을 참조하면, 비디오 디코딩 장치(300)는 엔트로피 디코딩부(310), 재정렬부(320), 역양자화부(330), 역변환부(340), 예측부(350), 가산부(360), 필터부(370), 메모리(380)를 포함한다.
비디오 정보를 포함하는 비트스트림이 입력되면, 비디오 디코딩 장치(300)는 비디오 인코딩 장치에서 비디오 정보가 처리된 프로세스에 대응하여 비디오를 복원할 수 있다.
예컨대, 비디오 디코딩 장치(300)는 비디오 인코딩 장치에서 적용된 처리 단위를 이용하여 비디오 디코딩을 수행할 수 있다. 따라서, 비디오 디코딩의 처리 단위 블록은 코딩 단위 블록, 예측 단위 블록 또는 변환 단위 블록일 수 있다. 코딩 단위 블록은 디코딩의 단위 블록으로서 최대 코딩 단위 블록으로부터 쿼드 트리 구조를 따라서 분할될 수 있다. 예측 단위 블록은 코딩 단위 블록으로부터 파티셔닝되는 블록으로서, 샘플 예측의 단위 블록일 수 있다. 이때, 예측 단위 블록은 서브 블록으로 나뉠 수도 있다. 변환 단위 블록은 코딩 단위 블록으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 단위 블록 또는 변환 계수로부터 잔차 신호를 유도하는 단위 블록일 수 있다.
엔트로피 디코딩부(310)는 비트스트림을 파싱하여 비디오 복원 또는 픽처 복원에 필요한 정보를 출력할 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬, CAVLC, CABAC 등에 기반해 비트스트림 내 정보를 디코딩하고, 비디오 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 등을 출력할 수 있다.
3D 비디오를 재생하기 위해 복수의 뷰(view)를 처리하는 경우, 비트스트림은 각 뷰별로 입력될 수 있다. 혹은, 비트스트림 내에서 각 뷰에 대한 정보가 멀티플렉싱되어 있을 수도 있다. 이 경우, 엔트로피 디코딩부(310)는 비트스트림을 역다중화(de-multiplexing)하여 뷰 별로 파싱할 수도 있다.
재정렬부(320)는 양자화되어 있는 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 재정렬부(320)는 인코딩 장치에서 수행된 계수 스캐닝에 대응하여 재정렬을 수행할 수 있다.
역양자화부(330)는 양자화되어 있는 변환 계수들을 (역)양자화 파라미터를 기반으로 역양자화하여 변환 계수를 출력할 수 있다. 이때, 양자화 파라미터를 유도하기 위한 정보는 인코딩 장치로부터 시그널링될 수 있다.
역변환부(340)는 변환 계수들을 역변환하여 레지듀얼 샘플들을 유도할 수 있다.
예측부(350)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측 블록을 생성할 수 있다. 예측부(350)에서 수행되는 예측의 단위는 코딩 블록일 수도 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.
예측부(350)는 인트라 예측을 적용할 것인지 인터 예측을 적용할 것인지를 결정할 수 있다. 이때, 인트라 예측과 인터 예측 중 어느 것을 적용할 것인지를 결정하는 단위와 예측 샘플 생성하는 단위는 상이할 수 있다. 아울러, 인터 예측과 인트라 예측에 있어서 예측 샘플을 생성하는 단위 역시 상이할 수 있다.
인트라 예측의 경우에, 예측부(350)는 현재 픽처 내의 주변 블록 화소를 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(350)는 현재 블록의 주변 참조 샘플들을 기반으로 방향성 모드 또는 비방향성 모드를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용할 예측 모드가 결정될 수도 있다.
인터 예측의 경우에, 예측부(350)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 샘플들을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(350)는 스킵(skip) 모드, 머지(merge) 모드 및 MVP 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다.
스킵 모드와 머지 모드의 경우에, 주변 블록의 움직임 정보가 현재 블록의 움직임 정보로 이용될 수 있다. 이때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.
예측부(350)는 가용한(available) 주변 블록의 움직임 정보로 머지 후보 리스트를 구성하고, 머지 인덱스가 머지 후보 리스트 상에서 지시하는 정보를 현재 블록의 움직임 벡터로 사용할 수 있다. 머지 인덱스는 인코딩 장치로부터 시그널링될 수 있다. 움직임 정보는 움직임 벡터와 참조 픽처를 포함한다. 스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다.
스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차이(레지듀얼)가 전송되지 않는다.
MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(MVP)로 이용하여 현재 블록의 움직임 벡터가 유도될 수 있다. 이때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.
종속 뷰(dependent view)에 대한 인코딩의 경우에, 예측부(350)는 인터 뷰 예측을 수행할 수도 있다. 이때, 예측부(350)는 다른 뷰의 픽처를 포함하여 참조 픽처 리스트를 구성할 수 있다.
인터 뷰 예측을 위해, 예측부(210)는 디스패리티(disparity) 벡터를 유도할 수 있다. 예측부(350)는 디스패리티 벡터를 기반으로, 뎁스 뷰(depth view) 내의 뎁스 블록(depth block)을 특정할 수 있고, 머지 리스트의 구성, 인터 뷰 움직임 예측(inter view motion prediction), 레지듀얼 예측, IC(Illumination Compensation), 뷰 합성 등을 수행할 수 있다.
현재 블록에 대한 디스패리티 벡터는 카메라 파라미터를 이용하여 뎁스 값으로부터 유도되거나, 현재 또는 다른 뷰 내 주변 블록의 움직임 벡터 또는 디스패리티 벡터로부터 유도될 수 있다. 카메라 파라미터는 인코딩 장치로부터 시그널링될 수 있다.
종속 뷰의 현재 블록에 머지 모드를 적용하는 경우에, 예측부(350)는 참조 뷰(reference view)의 시간적 움직임 정보에 대응하는 IvMC, 디스패리티 벡터에 대응하는 IvDC, 디스패리티 벡터의 쉬프트(shift)에 의해 유도되는 쉬프티드 IvMC, 현재 블록이 뎁스 맵 상의 블록인 경우에 대응하는 텍스처로부터 유도되는 텍스처 머지 후보(T), 텍스처 머지 후보로부터 디스패리티를 이용하여 유도되는 디스패리티 유도 머지 후보(D), 뷰 합성에 기반해서 유도되는 뷰 합성 예측 머지 후보(VSP) 등을 머지 후보 리스트에 추가할 수 있다.
이때, 종속 뷰에 적용되는 머지 후보 리스트에 포함되는 후보의 개수는 소정의 값으로 제한될 수 있다.
또한, 예측부(350)는 인터-뷰 움직임 벡터 예측을 적용하여, 디스패리터 벡터를 기반으로 현재 블록의 움직임 벡터를 예측할 수도 있다. 이때, 예측부(350)는 디스패리티 벡터에 의해서 특정되는 참조 뷰 내 블록을 참조 블록으로 이용할 수 있다. 예측부(350)는 참조 블록의 움직임 벡터를 현재 블록의 후보 움직임 파라미터 혹은 움직임 벡터 예측자 후보로 이용할 수 있으며, 상기 디스패리티 벡터를 DCP를 위한 후보 디스패러티 벡터로 이용할 수 있다.
가산부(360)는 레지듀얼 샘플과 예측 샘플을 더하여 현재 블록 혹은 현재 픽처를 복원할 수 있다. 가산부(360)는 레지듀얼 샘플과 예측 샘플을 블록 단위로 더하여 현재 픽처를 복원할 수도 있다. 스킵 모드가 적용된 경우에는 레지듀얼이 전송되지 않으므로, 예측 샘플이 복원 샘플이 될 수 있다. 여기서는 가산부(360)를 별도의 구성으로 설명하였으나, 가산부(360)는 예측부(350)의 일부일 수도 있다.
필터부(370)는 복원된 픽처에 디블록킹 필터링 및/또는 오프셋을 적용할 수 있다. 이때, 오프셋은 샘플 단위의 오프셋으로서 적응적으로 적용될 수도 있다.
메모리(380)는 복원 픽처 또는 디코딩에 필요한 정보를 저장할 수 있다. 예컨대, 메모리(380)는 인터 예측/인터-뷰 예측에 사용되는 픽처들을 저장할 수 있다. 이때, 인터 예측/인터-뷰 예측에 사용되는 픽처들은 참조 픽처 세트 혹은 참조 픽처 리스트에 의해 지정될 수도 있다. 복원된 픽처는 참조 픽처로서 이용될 수 있다.
또한, 메모리(380)는 복원된 픽처를 출력 순서에 따라서 출력할 수도 있다. 3D 영상을 재생하기 위해, 도시되지는 않았으나, 출력부는 복수의 서로 다른 뷰를 디스플레이할 수 있다.
도 3의 예에서는, 하나의 디코딩 장치에서 독립 뷰(independent view)와 종속 뷰(dependent view)가 디코딩되는 것으로 설명하였으나, 이는 설명의 편의를 위한 것으로서 본 발명은 이에 한정되지 않는다. 예컨대, 뷰 별로 각각의 디코딩 장치가 동작할 수도 있고, 하나의 디코딩 장치 내에 각 뷰에 대응하는 동작부(예컨대, 예측부)가 구비될 수도 있다.
멀티 뷰의 비디오를 코딩하는 경우에, 인코딩 장치 및 디코딩 장치는 현재 픽처와 동일한 AU(Access Unit)에 속하는 다른 뷰의 코딩된 데이터를 이용하여 현재 뷰에 대한 비디오 코딩의 효율을 높일 수 있다. 이때, POC(Picture Order Count)가 같은 픽처들을 하나의 AU이라고 할 수 있다. POC는 픽처의 디스플레이 순서에 대응한다.
인코딩 장치 및 디코딩 장치는 AU 단위로 뷰들을 코딩할 수도 있고, 뷰 단위로 픽처들을 코딩할 수도 있다. 뷰들 간에는 정해진 순서에 따라서 코딩이 진행된다. 가장 먼저 코딩되는 뷰를 베이스 뷰(base view) 또는 독립 뷰라고 할 수 있다. 독립 뷰가 코딩된 뒤에 다른 뷰를 참조해서 코딩될 수 있는 뷰를 종속 뷰라고 할 수 있다. 또한, 현재 뷰가 종속 뷰인 경우에, 현재 뷰의 코딩(인코딩/디코딩)에 참조되는 다른 뷰를 참조 뷰라고 할 수도 있다.
도 4는 인터 뷰 코딩을 개략적으로 설명하는 도면이다. 도 4의 예에서, 코딩은 AU 단위로 진행되며, V0가 독립 뷰고 V1이 종속 뷰라고 한다. 현재 픽처(410) 내의 블록 A와 같이, 움직임 벡터(440)를 이용하여 동일한 뷰의 다른 픽처(430)를 참조하는 인터 픽처 예측을 움직임 보상 예측(Motion-Compensated Prediction: MCP)이라 할 수 있다. 또한, 현재 픽처 내의 블록 B와 같이, 디스패리티 벡터(450)를 이용하여 동일한 액세스 유닛 내, 즉 동일한 POC를 갖는 다른 뷰의 픽처(420)를 참조하는 인터 픽처 예측을 디스패리티 보상 예측(Disparity-Compensated Picture: DCP)라고 할 수 있다.
멀티 뷰의 비디오를 코딩할 때, 다른 뷰의 픽처를 이용하는 방법 외에 뎁스 맵(depth map)을 이용할 수도 있다.
도 5는 뎁스 맵을 이용하는 멀티 뷰 코딩 방법을 개략적으로 설명한다.
도 5를 참조하면, 현재 뷰 내 현재 픽처(500)의 블록(현재 블록, 505)은 뎁스 맵(510)을 이용하여 코딩(인코딩/디코딩)될 수 있다. 이때, 현재 블록(505) 내 샘플(515)의 위치 (x,y)에 대응하는 뎁스 맵(510) 내 샘플(520)의 위치 (x, y)의 깊이(depth) 값 d가 디스패리티 벡터(525)로 변환될 수 있다. 깊이 값 d는 샘플(픽셀)과 카메라 사이의 거리에 기반해서 유도될 수 있다.
인코딩 장치 및 디코딩 장치는 디스패리티 벡터(525)를 샘플(530) 위치 (x, y)에 더하여, 참조 뷰 내 현재 픽처(540) 내 참조 샘플(535)의 위치를 결정할 수 있다. 디스패리티 벡터는 x 축 성분만을 가지고 있을 수 있다. 따라서, 디스패리티 벡터의 값은 (disp, 0)일 수 있으며, 참조 샘플(540)의 위치 (xr, y)는 (x+disp, y)로 결정될 수 있다.
인코딩 장치 및 디코딩 장치는 참조 픽셀(535)를 포함하는 참조 블록(545)의 움직임 파라미터(motion parameter) 현재 블록의 움직임 파라미터의 후보로 사용할 수 있다. 예를 들어, 참조 뷰 내 참조 픽처(550)가 참조 블록(545)에 대한 참조 픽처라면, 참조 블록(545)의 움직임 벡터(555)는 현재 블록(505)의 움직임 벡터(560)로 유도될 수도 있다. 이때, 픽처(565)는 현재 뷰 내 참조 픽처이다.
한편, 상술한 바와 같이, 멀티-뷰의 비디오 디코딩에 있어서는 디스패러티 벡터를 이용하여 다른 뷰의 정보를 참조할 수 있다.
종속 뷰의 픽처를 코딩(인코딩/디코딩)하는 경우에, 이미 코딩된 주변 블록 중에서 DCP 코딩 된 블록이 있을 경우 DCP 코딩 블록의 디스패러티 벡터를 현재 블록에 적용할 디스패러티 벡터로 이용할 수 있다. 이때, 주변 블록으로부터 유도한 디스패러티 벡터, 즉 DCP 코딩된 블록의 디스패러티 벡터는 현재 블록에 인터-뷰 움직임 예측(IVMP)와 인터-뷰 레지듀얼 예측(IVRP)을 적용하기 위한 디스패러티 벡터로 이용될 수 있다.
현재 블록의 움직임 벡터가 IVMP에 의해 결정된 경우를 우선 설명한다. 움직임 벡터 예측 모드(motion vector prediction: MVP 혹은 advanced motion vector prediction: AMVP) 모드, 머지(merge) 모드 혹은 스킵(SKIP) 모드에서, 인터-뷰 참조 픽처 내 대응 블록의 움직임 벡터로부터 유도되는 후보가 현재 블록에 적용된 움직임 벡터로 선택된 경우, 현재 블록은 MCP로 코딩 된다.
이렇게 MCP로 코딩된 블록 중에서 IVMP 방법으로 모션 벡터가 예측된 블록을 DV-MCP 블록이라 한다.
도 6은 DV-MCP 블록을 개략적으로 설명하는 도면이다. 도 6에서는 현재 뷰의 현재 픽처(610) 내 현재 블록(620)을 인터 예측하는 경우를 예시하고 있다.
도 6을 참조하면, 현재 블록(620)의 인터 예측에 사용되는 주변 블록(630)의 움직임 벡터(MV1)가 베이스 뷰 내 참조 픽처(640)의 대응 블록(650)으로부터 유도된다. 이때, 대응 블록은 디스패러티 벡터 DV(660)에 의해 특정된다. 현재 블록(630)의 인터 예측에 사용되는 후보 블록으로서, 주변 블록(630)의 움직임 벡터 MV1은 대응 블록(650)의 움직임 벡터 MV2로 설정되거나 MV2로부터 유도될 수 있다.
이때, 베이스 뷰 내 참조 픽처(640)과 현재 픽처(610)의 POC는 동일할 수 있다. 다른 뷰 내 대응 블록(650)의 움직임 벡터(MV2)로부터 예측된 움직임 벡터(MV1)이 적용된 주변 블록(630)을 DV-MCP 블록이라고 할 수 있다.
인코딩 장치와 디코딩 장치는 DV-MCP 블록의 움직임 벡터 예측에 이용된 디스패러티 벡터의 정보를 저장하여 주변 블록의 디스패러티 벡터 유도 과정에 활용할 수 있다.
도 7은 현재 블록의 주변 블록들의 일 예를 개략적으로 설명하는 도면이다. 도 7의 주변 블록들은 현재 블록을 디코딩하는 시점에서 이미 디코딩이 끝나고, 접근(access)이 가능한 블록들이다.
현재 블록(710)의 주변 블록들은 공간적 (spatial) 주변 블록 A0, A1, B0, B1, B2와 시간적 (temporal) 주변 블록 col-CTR (col-center), col-RB (col-right bottom)를 포함한다. 공간적 주변 블록들은 현재 블록(710)의 위치를 기준으로 각각의 위치가 특정된다.
또한, 시간적 주변 블록들은 참조 픽처 중 하나인 콜-픽처(collocated picture)에서 현재 블록에 대응하는 위치(720)를 기준으로 각각의 위치가 특정된다. 시간적 주변 블록의 경우 현재 픽쳐 혹은 현재 슬라이스를 디코딩 하는 시점에 지정된 콜-픽처(collocated picture)에서의 현재 블록(720)의 중심에 위치한 픽셀을 포함하는 코딩 블록이 col-CTR이 된다. 또한, 콜-픽처에서의 현재 블록(720)의 우하단 픽셀 위치가 (x,y)인 경우 (x+1, y+1) 위치의 픽셀을 포함하는 코딩 블록이 col-RB가 된다. 이하, 본 명세서에서는 설명의 편의를 위해, col-CTR은 CTR, col-BR은 BR로 표현하기도 한다.
콜-픽처(col-located picture)는 현재 픽쳐 혹은 현재 슬라이스의 참조 픽처 리스트에 포함된 시간적 참조 픽처(temporal reference picture) 중 하나가 시간적 디스패리티 벡터 유도(temporal disparity vector derivation)를 위해 선택된 것일 수 있다.
콜-픽처는 슬라이스 헤더(slice header)를 통해서 디코더에 알려질 수 있다. 예컨대, 어떤 픽처를 콜-픽처로 사용할 것인지를 지시하는 정보는 슬라이스 헤더에서 시그널링될 수 있다.
이하, 도 7의 예와 같이 주변 블록이 정의된 경우에 디스패러티 벡터를 주변 블록으로부터 유도 하는 방법의 예들을 설명한다. 설명의 편의를 위해, 디스패러티 벡터의 유도는 인코딩 장치와 디코딩 장치에서 수행하는 것으로 설명한다.
<주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도하는 방법 1>
(1-1) 인코딩 장치 및/또는 디코딩 장치는 시간적, 공간적 주변 블록들을 정해진 순서대로 검색해서, 검색한 블록이 DCP 블록인 경우 DCP를 위한 디스패리티 벡터를 반환(return)하고, 디스패리티 벡터 유도 프로세스를 종료한다.
이때, 주변 블록이 DCP 블록인지의 여부는 다음과 같이 알 수 있다. 주변 블록의 예측 모드가 인터 예측 혹은 스킵 모드이고, L0 참조 픽쳐 혹은 L1 참조 픽쳐의 POC와 뷰 ID를 각각 neighbor_ref_pocX, neighbor_ref_vidX라 하자(X는 0 혹은 1). 이때, 주변 블록의 POC(neighbor_ref_pocX)가 현재 픽쳐의 POC와 같고, 주변 블록의 뷰 ID(neighbor_ref_vidX)가 현재 픽쳐의 뷰 ID와 다를 경우, 해당 주변 블록은 DCP 블록으로 판단될 수 있다.
(1-2) 인코딩 장치 및/또는 디코딩 장치는 주변 블록에서 DCP 블록이 찾아지지 않은 경우, 시간적 주변 블록들과 공간적 주변 블록들을 정해진 순서로 검색하면서 DV-MCP 블록인지 확인한다. 검색한 주변 블록이 DV-MCP 블럭인 경우, 인코딩 장치 및/또는 디코딩 장치는 DV-MCP 블록에 저장되어 있는 디스패리티 벡터를 반환(return)하고, 디스패리티 벡터 유도 프로세스를 종료한다.
(1-3) 상술한 (1-1) 및 (1-2)에서 주변 블록을 탐색하는 순서는 다양하게 설정될 수 있다. 예컨대, A1, B1, A0, B0, B2, col-CTR, col-RB 순서로 주변 블록을 탐색할 수도 있고, A0, A1, B0, B1, B2, col-CTR, col-RB 순서로 탐색할 수도 있다.
또한, 인코딩 장치 및/또는 디코딩 장치는 모든 주변 블록을 다 검색하지 않고, 소정의 주변 블록만을 이용할 수도 있다. 예컨대, 도 7의 주변 블록들 중 현재 블록의 상측 블록(B1)과 좌측 블록(A1)만을 공간적 주변 블록으로 이용할 수도 있다. 또한, 도 7의 주변 블록들 중 콜-픽처 내 현재 블록에 대응하는 영역(720)의 중앙에 위치하는 블록(col-CTR)만을 시간적 주변 블록으로 이용할 수도 있다.
이 경우에도, 인코딩 장치와 디코딩 장치는 소정의 정해진 순서에 따라서 주변 블록을 검색하고 디스패리티 벡터를 유도할 수 있다. 예컨대, 시간적 주변 블록을 먼저 검색하고 공간적 주변 블록을 검색할 수 있다. 또한, 공간적 주변 블록들에 대해서는 좌측 블록을 먼저 검색하고 상측 블록을 검색할 수도 있다. 또한, 인코딩 장치와 디코딩 장치는 이와 달리 미리 소정의 검색 순서를 설정하여 디스패리티 벡터를 유도할 수도 있다.
<주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도하는 방법 2>
(2-1) 인코딩 장치 및/또는 디코딩 장치는 주변 블록들 중에서 DCP 블록을 찾는다. DCP 블록이 1개 이상 찾아진 경우, 각 DCP 블록의 디스패리티 벡터들 중에서 수평(horizontal) 성분의 절대값이 가장 큰 디스패리티 벡터를 반환하고, 디스패리티 벡터를 유도하는 프로세스가 종료된다. 예를 들어, 주변 블록 중 검색된 DCP 블록과 각 DCP 블록의 디스패리티 벡터가 표 1과 같은 관계를 갖는 경우를 가정하자.
<표 1>
Figure PCTKR2014009859-appb-I000001
표 1에서 에서 각 열의 두 번째 행은 X(아님: false)로 초기화 되어 있고, 해당 주변 블록이 DCP 블록일 경우 O(맞음: true) 값을 저장하고, 세 번째 행에 DCP 블록의 움직임 벡터를 기록한다.
시간적 주변 블록의 탐색 과정에서는 정해진 순서에 따른 검색 중 첫 번째로 탐색한 블록에서 정보가 얻어지면 그 다음 블록은 탐색하지 않는다. 표 1의 예에서는 두 시간적 주변 블록 col-CTR과 col-RB 중 col-CTR 블록이 DCP 블록이고, col-CTR 블록으로부터 디스패리티 벡터의 정보가 얻어지므로, 추가 검색 즉, col-RB 블록에 대한 검색은 진행되지 않는다.
표 1의 예에서처럼, 복수의 디스패리티 벡터가 검색된 경우, 수평 성분의 절대값이 가장 큰 B0 블록의 디스패리티 벡터를 현재 블록의 디스패리티 벡터로 설정하고 디스패리티 벡터의 유도 프로세스를 종료한다.
(2-2) 주변 블록에서 DCP 블록이 검색되지 않은 경우, 인코딩 장치 및/또는 디코딩 장치는 DV-MCP 블록을 검색할 수 있다. DV-MCP 블록이 1개 이상 검색된 경우, 인코딩 장치 및/또는 디코딩 장치는 각 DV-MCP 블럭에 저장되어 있는 디스패리티 벡터들 중에서 수평(horizontal) 성분의 절대값이 가장 큰 디스패리티 벡터를 반환하고, 디스패리티 벡터의 유도 프로세스를 종료한다.표 2는 주변 블럭에서 DV-MCP 블록 정보를 수집하는 일 예를 보여준다. 표 2의 경우 디스패리티 벡터의 수평 성분의 절대값이 가장 큰 경우는 B2의 10이다. 따라서, 인코딩 장치 및/또는 디코딩 장치는 B2 블록의 디스패리티 벡터를 현재 블록의 디스패리티 벡터로서 유도하고 디스패리티 벡터 유도 과정을 종료할 수 있다.
<표 2>
Figure PCTKR2014009859-appb-I000002
<주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도하는 방법 3>
상술한 방법 1과 방법 2를 조합하여 주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도할 수도 있다.
(3-1) 인코딩 장치 및/또는 디코딩 장치는 공간적 주변 블록 중에서만 DCP 블록들을 찾는다. DCP 블록이 복수 개 검색된 경우, 각 DCP 블록의 디스패리티 벡터들 중에서 수평 성분의 절대값이 가장 큰 디스패리티 벡터를 반환하고 디스패리티 벡터 유도 프로세스를 종료한다.
(3-2) 인코딩 장치 및/또는 디코딩 장치는 시간적 주변 블록을 정해진 순서대로 탐색하여 DCP 블록을 찾는다. DCP 블록이 검색된 경우, DCP를 위한 디스패리티 벡터를 반환하고 디스패리티 벡터 유도 프로세스를 종료한다.
(3-3) 인코딩 장치 및/또는 디코딩 장치는 공간적 주변 블록 중에서 DV-MCP 블록들을 찾는다. DV-MCP 블록이 복수 검색된 경우, 각 DV-MCP 블럭에 저장되어 있는 디스패리티 벡터들 중에서수평 성분의 절대값이 가장 큰 디스패리티 벡터를 반환하고 디스패리티 벡터 유도 프로세스를 종료한다.
(3-4) 인코딩 장치 및/또는 디코딩 장치는 시간적 주변 블록을 정해진 순서대로 탐색하여 DV-MCP 블록을 찾는다. DV-MCP 블록이 검색된 경우, DV-MCP 블록에 저장된 디스패리티 벡터를 반환하고, 디스패리티 벡터 유도 프로세스를 종료한다.
<주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도하는 방법 4>
상술한 방법 1과 방법 2를 조합하여 주변 블록으로부터 현재 블록의 디스패리티 벡터를 유도할 수도 있다.
(4-1) 인코딩 장치 및/또는 디코딩 장치는 먼저 시간적 주변 블록 중에서 DCP 블록들을 찾는다. DCP 블록이 복수 개 검색된 경우, 인코딩 장치 및/또는 디코딩 장치는 DCP 블록의 디스패리티 벡터들 중에서 수평 성분의 절대값이 가장 큰 디스패리티 벡터를 현재 블록의 디스패리티 블록으로 설정하고, 디스패리티 벡터 유도 프로세스를 종료할 수 있다.
(4-2) 인코딩 장치 및/또는 디코딩 장치는 공간적 주변 블록을 정해진 순서대로 탐색하여 DCP 블록을 찾는다. DCP 블록이 검색된 경우, 인코딩 장치 및/또는 디코딩 장치는 검색된 DCP 블록의 디스패리티 벡터를 현재 블록의 디스패리티 벡터로 출력하고 디스패리티 벡터 유도 프로세스를 종료한다.
(4-3) 인코딩 장치 및/또는 디코딩 장치는 공간적 주변 블록 중에서 DV-MCP 블록들을 찾는다. DV-MCP 블록이 복수 검색된 경우, 각 DV-MCP 블럭에 저장되어 있는 디스패리티 벡터들 중에서수평 성분의 절대값이 가장 큰 디스패리티 벡터를 반환하고 디스패리티 벡터 유도 프로세스를 종료한다.
한편, 또한, 디스패리티 벡터를 유도하는 두 번째 내지 네 번째 방법에서도 인코딩 장치 및/또는 디코딩 장치는 모든 주변 블록을 다 검색하지 않고, 소정의 주변 블록만을 이용할 수도 있다. 예컨대, 도 7의 주변 블록들 중 현재 블록의 상측 블록(B1)과 좌측 블록(A1)만을 공간적 주변 블록으로 이용할 수도 있다. 또한, 도 7의 주변 블록들 중 콜-픽처 내 현재 블록에 대응하는 영역(720)의 중앙에 위치하는 블록(col-CTR)만을 시간적 주변 블록으로 이용할 수도 있다.
이처럼, 주변 블록으로부터 디스패리티 벡터를 유도하는 것을 간단히 NBDV(Disparity vector from neighbouring blocks)라고 칭할 수도 있다. 이와 같이, 인코딩 장치 및/또는 디코딩 장치는 DV-MCP 블록의 정보보다 DCP 블록의 정보에 높은 우선 순위를 줄 수 있다.
디스패리티 벡터 유도 과정을 통해 유도한 디스패리티 벡터는 현재 CU 블록에 대한 주변 블록으로부터 어떠한 기준에 의해 선택된 디스패리티 벡터이다.
이는 주변 블록에서 인터-뷰 참조 픽처의 블록과 가장 작은 픽셀 차이를 갖는 블록의 위치를 사상(projection)한 것으로서, 실제 구하고자 하는 디스패리티(disparity), 즉 아이디얼 디스패리티(Ideal disparity)와는 차이가 있을 수 있다. 또한, 주변 블록이 현재 블록과 유사하다는 가정에 기반한 것이기 때문에, 디스패리티를 유도한 블록과 현재 블록(예컨대, 현재 코딩 블록)과의 유사성이 떨어지면 디스패리티의 정확성 또한 떨어질 수 있다. 그리고 인코딩 장치 및/또는 디코딩 장치는 주변 블록을 탐색하여 디스패리티를 구하지 못하였을 경우에는 제로 디스패리티(Zero disparity)를 사용할 수도 있다.
이와 같이, 주변 블록으로부터 디스패리티를 유도하는 방법은 주변 블록으로부터 유도한 디스패리티를 그대로 현재 블록에 대한 디스패리티로 사용하므로, 예측 과정에서 사용되는 디스패리티가 실제 디스패리티 사이에 차이가 있을 수 있다. 이 점을 보완하기 위하여, 현 시점의 표준화 과정에서는 이웃 시점의 이미 복호화 된 뎁스 맵(Depth map)을 이용하여 디스패리티를 보정할 수 수 있다.
종속 뷰의 텍스처(texture)를 코딩(인코딩/디코딩) 하는 때에, 참조하고자 하는 뷰(예컨대, 베이스 뷰)의 뎁스 맵은 액세스 가능(accessible)하다. 뎁스 맵의 픽셀 값과 카메라 파라미터 등이 부호화 시 입력된다면 이를 통해 디스패리티를 계산할 수 있다. 따라서, 종속 뷰의 텍스처를 코딩하기 위해 디스패리티(디스패리티 벡터)를 유도하는 과정에서, 참조하는 뷰의 뎁스 맵을 사용한다면, 주변 블록으로부터 유도한 현재 블록의 디스패리티를 보정할 수 있다.
도 8은 주변 블록으로부터 유도한 디스패리티 벡터를 뎁스를 이용하여 보정하는 것을 개략적으로 설명하는 도면이다.
도 8을 참조하면, 현재 블록(예컨대, CU)의 디스패리티 벡터를 보정하는 방법은 아래 (i)~(v)와 같다.
(i) 인코딩 장치 및/또는 디코딩 장치는 상술한 바와 같이, 주변 블록으로부터 현재 텍스처 픽처 T1(800) 내 현재 블록(810)의 디스패리티를 유도할 수 있다.
(ii) 인코딩 장치 및/또는 디코딩 장치는 현재 뷰 상의 위치에 대응하는 이웃 뷰 상의 위치를 특정하기 위해 (i)에서 유도한 디스패리티를 이용할 수 있다. 즉, 인코딩 장치 및/또는 디코딩 장치는 현재 뷰 상의 샘플 위치를 상기 디스패리티(820)를 이용하여 이웃 뷰의 뎁스 맵 D0(820) 상에 사상(projection)할 수 있다. 만일 사상된 위치가 뎁스 맵 밖에 존재할 경우, 인코딩 장치 및/또는 디코딩 장치는 클립핑(Clipping)을 통해 사상된 위치가 뎁스 맵의 경계에 대응되도록 할 수 있다. 이때, 뎁스 맵 D0(830)은 이미 코딩되어, 인코딩 장치 및/또는 디코딩 장치는 뎁스 맴 D0(830)의 뎁스 정보를 이용할 수 있다.
(iii) 인코딩 장치 및/또는 디코딩 장치는 참조 뷰 상 대응 위치의 뎁스 블록(depth block at the corresponding location on the reference view, 840)을 코딩하려는 블록(현재 블록, 810)의 가상 뎁스 블록(virtual depth block, 850)으로 가정할 수 있다.
(iv) 인코딩 장치 및/또는 디코딩 장치는 가상 뎁스 블록(850)의 네 코너 픽셀 값 중 가장 큰 값을 갖는 픽셀을 찾는다.
(v) 인코딩 장치 및/또는 디코딩 장치는 (vi)에서 찾은 픽셀 값을 디스패리티로 변환한다. 즉, 인코딩 장치 및/또는 디코딩 장치는 가상 뎁스 블록(850)의 네 코너 픽셀 값 중 가장 큰 값을 디스패리티로 변환할 수 있다. 이때, 인코딩 장치 및/또는 디코딩 장치는 뎁스 룩업 테이블을 이용하여 디스패리티 벡터를 유도할 수도 있다.
도 8과 같이, 가상 깊이를 이용한 주변 블록으로부터 유도한 디스패리티 벡터의 세정(refinement)을 간단히 DoNBDV(depth oriented neighbouring block based disparity vector)라고도 칭할 수 있다.
도 8에서 설명한 바와 같이, DoNBDV 과정을 통하여 얻은 디스패리티 벡터는 NBDV 과정에서 유도된 디스패리티를 이용하여 얻을 수 있다. 현재 블록(예컨대 CU)는 NBDV와 DoNBDV를 통하여 두 개 또는 그 이상의 디스패리티 벡터 정보를 가질 수 있다.
현재 블록과 주변 블록의 디스패리티 벡터 간 유사도가 높다면, 주변 블록에서 유도한 디스패리티 벡터 즉 NBDV로 현재 블록의 디스패리티 벡터를 잘 표현할 수 있다. 반면, 현재 블록과 주변 블록의 디스패리티 벡터 간 유사성이 낮을 때는 뎁스 값으로 보정된 디스패리티 벡터 즉 DoNBDV가 현재 블록의 디스패리티 벡터를 잘 표현할 수도 있다. 따라서 3D 비디오 압축/복원 과정에서는 CU 별로 보유한 복수의 디스패리티 벡터 중 하나를 선택적으로 사용하여 부호화 효율을 높일 수 있다.
CU 단위의 디스패리티 벡터 정보는 인터-뷰 예측 기술인 IvMC(inter-view motion parameter prediction), ARP(advanced residual prediction), VSP(view synthesized prediction) 등에 사용될 수 있다. 각 예측에 대해서, 인코딩 장치 및/또는 디코딩 장치는 NBDV 또는 DoNBDV를 고정적으로 사용할 수도 있고, 둘 중에 부호화 효율이 높은 디스패리티 벡터의 정보를 선택적으로 사용할 수도 있다.
예컨대, 인코딩 장치 및/또는 디코딩 장치는 추가적인 정보(예컨대, 어떤 디스패리티 벡터를 쓸 것인지를 지시하는 플래그) 없이 NBDV 또는 DoNBDV 중 크기(magnitude)가 큰 디스패리티 벡터를 현재 블록의 디스패리티 벡터로 사용할 수 있다. 또는, 인코딩 장치 및/또는 디코딩 장치는 추가적인 정보(예컨대, 어떤 디스패리티 벡터를 쓸 것인지를 지시하는 플래그) 없이 NBDV 또는 DoNBDV 중 크기(magnitude)가 작은 디스패리티 벡터를 현재 블록의 디스패리티 벡터로 사용할 수도 있다.
또한, 인코딩 장치 및/또는 디코딩 장치는 참조 뷰(reference view)과 현재 뷰(current view)와의 위치 관계에 따라서 NBDV 또는 DoNBDV 를 선택적으로 사용할 수도 있다.
또한, 인코딩 장치 및/또는 디코딩 장치는 플래그 정보를 이용하여 현재 블록의 인코딩에 사용한 디스패리티 벡터 정보를 직접 보내줄 수도 있다. 예컨대, 인코딩 장치는 현재 블록의 디코딩에 NBDV를 사용할 것인지 DoNBDV를 사용할 것인지를 지시하는 플래그를 전송할 수 있다. 이 경우, 디코딩 장치는 상기 플래그가 지시하는 디스패리티 벡터를 이용하여 현재 블록을 디코딩 할 수 있다.
이와 같이 유도하는 방법에 따라 다른 특성을 갖는 디스패리티 벡터를 얻을 수 있으므로, 현재 블록의 디스패리티 벡터를 효과적으로 예측할 수 있다. 예컨대, 이때, NBDV와 DoNBDV를 모두 고려하여 현재 블록의 디스패리티 벡터를 더 정확하게 유도할 수도 있다.
즉, NBDV 과정을 통해 유도한 디스패리티 벡터와 DoNBDV 과정을 통해 유도한 디스패리티 벡터를 기반으로, 향상된 disparity vector를 디스패리티 벡터를 유도할 수 있다. 향상된 디스패리티 벡터의 유도 과정은 아래 ① ~ ⑤와 같다.
① 인코딩 장치 및/또는 디코딩 장치는, 앞서 설명한 바와 같이, 현재 블록(예컨대, CU)의 주변 블록으로부터 NBDV 과정을 통해 디스패리티 벡터 DVNBDV를 유도할 수 있다.
② 인코딩 장치 및/또는 디코딩 장치는, 앞서 설명한 바와 같이, 깊이 값을 이용한 DoNBDV 과정을 통해 현재 블록의 디스패리티 벡터 DVDoNBDV를 유도할 수 있다.
③ 이때, 인코딩 장치 및/또는 디코딩 장치는, 상술한 NBDV의 과정과 다르게, NBDV 과정에서 첫 번째 디스패리티 벡터가 유도되더라도 프로세스를 종료하지 않고, 전체 후보 블록들 중 이용가능한 모든 블록으로부터 디스패리티 벡터를 유도하여 디스패리티 벡터 후보군 DVNBDV(x)을 구성할 수 있다. 이때, x는 0≤ x ≤ N인 정수이며, N은 유도된 디스패리티 벡터들의 개수이다.
④ 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정을 통해 유도한 디스패리티 벡터 후보군 DVNBDV(x)와 DVDoNBDV 간의 절대값 차이를 산출할 수 있다.
⑤ 인코딩 장치 및/또는 디코딩 장치는 디스패리티 벡터 후보군 DVNBDV(x) 중 DVDoNBDV와의 절대값 차이가 가장 작은 디스패리티 벡터를 수식 1과 같이 새로운 디스패리티 벡터 DVNBDV_NEW 로 설정할 수 있다.
<수식 1>
Figure PCTKR2014009859-appb-I000003
인코딩 장치 및/또는 디코딩 장치는 ①~⑤의 방법으로 구한 DVNBDV_NEW 를 DVDoNBDV 대신 사용할 수 있다. 또한, 인코딩 장치 및/또는 디코딩 장치는 DVNBDV_NEW 를 사용하지 않고, DVDoNBDV를 그대로 사용할 수도 있다.
예컨대, 인코딩 장치 및/또는 디코딩 장치는 DVNBDV_NEW DVNBDV가 상이한 경우에, 다음의 (1) 과 (2) 중에서 어느 하나를 선택하여 현재 블록의 예측 샘플을 생성하는데 적용되는 디스플레이 벡터 혹은 움직임 벡터 예측자로 이용할 수 있다: (1) DVNBDV_NEW 와 DVDoNBDV 중 선택된 어느 하나. (2) DVNBDV
한편, 주변 블록으로부터 디스패리티 벡터를 유도하는 과정에서 인코딩 장치 및/또는 디코딩 장치의 메모리 용량을 고려할 수도 있다.
예컨대, NBDV 프로세스에서는, 상술한 바와 같이, 주변의 블록들이 모두 디스패리티 벡터를 가지고 있지 않은 경우, 인코딩 장치 및/또는 디코딩 장치는 현재 블록의 주변에서 DV-MCP(즉, IvMC)에 의해 부호화된 블록의 디스패리티 벡터를 현재 블록에 대한 후보 디스패리티 벡터로 사용할 수 있다.
도 9는 DV-MCP 블록을 이용하여 NBDV를 탐색하는 방법을 개략적으로 설명하는 도면이다.
도 9를 참조하면, 현재 블록 C(910)가 참조하는 베이스 뷰의 대응 블록(940)으로부터 주변 블록(920)의 움직임 벡터 mv1(930)가 유도될 수 있다. 주변 블록(920)의 움직임 벡터(930)는 대응 블록(940)의 움직임 벡터 mv1(950)과 동일하게 설정될 수 있다. 대응 블록(940)의 움직임 벡터 mv1 (950)은 다른 시간(t1)의 픽처 내 참조 블록(970)을 특정할 수 있다. 대응 블록(940)는 디스패리티 벡터 dv1(960)에 의해 특정될 수 있다.
도 9의 예에서, 인코딩 장치 및/또는 디코딩 장치는 dv1(960)을 현재 블록 C(910)의 NBDV를 유도하기 위한 후보로 사용할 수 있다. 이를 위하여, 인코딩 장치 및/또는 디코딩 장치는 DV-MCP로 코딩(인코딩/디코딩)되는 블록의 디스패리티 벡터 정보 (예컨대, 도 9의 dv1에 관한 정보)를 인코딩/디코딩 과정에서 저장하고 있어야 한다.
하지만, 디스패리티 벡터를 저장하기 위해서는 메모리 공간의 확장이 요구되며 하드웨어의 구현 시 여러 문제를 야기할 수 있다. 따라서, DV-MCP로 코딩되는 블록의 디스패리티 벡터 정보를 저장하는 단위를 크게 설정하는 것이 부호화 효율을 더 높일 수 있다.
현재 DV-MCP 블록의 디스패리티 벡터 정보는 CU 단위로 저장된다. 최소 CU의 크기는 8x8 화소이므로, 모든 8x8 블록마다 디스패리티 벡터의 정보가 저장되는 경우까지도 하드웨어의 구현에 고려되어야 하는 문제가 있다. 즉, 현재로서는 모든 8x8 블록마다 디스패리티 벡터가 저장될 수 있도록 메모리 크기가 설계되어야 한다.
이에 반해서, 디스패리티 벡터를 16x16 픽셀 단위로 저장할 경우, DV-MCP 블록의 디스패리티 벡터 정보를 저장하는 메모리 크기를 1/4로 줄일 수 있다. 또한, 16x16 픽셀 단위로 저장할 때 DV-MCP 블록의 디스패리티 벡터 값이 주변으로 확장 될 수 있으며, 이는 NBDV 값이 기존 방식에 비하여 더욱 전파되는 효과를 노릴 수 있다.
본 발명은 디스패리티 벡터를 16x16 픽셀 단위로 저장하는 것에 한정되지 않는다. 디스패리티 벡터는 16x16 픽셀 이상의 크기(예컨대, 32x32 픽셀, 64x64 픽셀) 단위로 저장하는 것도 가능하다. 이 경우, 요구되는 메모리 크기를 더 줄일 수 있다.
또한 인코딩 장치 및/또는 디코딩 장치는 정방형 단위가 아닌 32x16 픽셀, 16x8 픽셀과 같은 비정방형 단위로 디스패리티 벡터를 저장할 수 있다.
디스페리티 벡터를 저장하는 메모리를 줄이는 방법과 함께, 코딩 효율을 높이는 방법으로서 정보의 전송량을 줄이는 방법을 생각할 수 있다.
인코딩 장치와 디코딩 장치는 움직임 벡터에 관한 정보의 전송량을 줄이기 위하여, 코딩된 유닛들(예컨대, CU 또는 PU)의 움직임 정보를 이용하여 움직임 벡터 예측값(mvp=(mvpx,mvpy))을 유도할 수 있다. 인코딩 장치는 현재 블록의 움직임 벡터와 움직임 벡터 예측값 사이의 차분값(motion vector difference)만을 전송하는 방법을 이용할 수 있다. 디코딩 장치는 디코딩된 다른 유닛들(예컨대, CU 또는 PU)의 움직임 정보들을 이용하여 현재 블록(현재 처리 유닛, 예컨대, CU 또는 PU)의 움직임 벡터 예측값을 구하고, 전송된 차분값을 이용하여 현재 블록에 대한 움직임 벡터 값을 획득하게 된다.
이하에서는 본 발명에 따라서 현재 블록에 대한 움직임 벡터를 예측하는 실시예들에 대해 설명한다.
도 10은 움직임 벡터 예측에 이용될 수 있는 주변 블록의 예를 개략적으로 설명하는 도면이다.
도 10은 현재 뷰를 코딩할 경우, 현재 블록의 주변 블록을 특정한 예를 보여준다.
도 10을 참조하면, 현재 블록(1000)의 공간적 주변 블록(A0, A1, B0, B1, B2)들의 위치가 현재 블록 (1000)의 위치를 기준으로 특정될 수 있다. 예컨대, 현재 블록의 좌하측 블록 A0, 현재 블록의 좌측 블록 A1, 현재 블록의 우상측 블록 B0, 현재 블록의 상측 블록 B1, 현재 블록의 좌상측 블록 B2로 공간적 주변 블록들이 구성될 수 있다.
현재 블록(1000)의 공간적 주변 블록들 외에 현재 블록(1000)의 시간적 주변 블록 T가 특정될 수 있다.
도 11은 현재 블록의 시간적 주변 블록을 개략적으로 설명하는 도면이다. 도 10에 도시된 현재 블록의 시간적 주변 블록 T는, 현재 픽쳐 혹은 현재 슬라이스를 디코딩 하는 시점에서 지정되는 콜-픽처(collocated picture)에서 현재 블록의 위치(1010)를 기준으로 특정될 수 있다.
도 11을 참조하면, 현재 블록의 시간적 주변 블록으로서, 중앙 블록인 CTR과 우하단 블록인 RB가 특정될 수 있다. 우하단 블록인 RB가 이용가능(available)한 경우에는 RB가 현재 블록의 시간적 주변 블록으로 사용되며, RB가 이용가능하지 않은 경우에는 중앙 블록 CTR이 현재 블록의 주변 블록으로 사용될 수 있다.
도 10 및 도 11에 도시된 현재 블록의 주변 블록들은 현재 블록을 디코딩하는 시간에 이미 디코딩이 끝난 블록들이며, 도 7에서 설명한 현재 블록의 주변 블록들에 대응한다.
인코딩 장치와 디코딩 장치는 현재 블록(예컨대, 코딩 블록 또는 예측 블록)의 주변 블럭의 움직임 벡터로 움직임 벡터 예측값 리스트(motion vector predictor list: MVP list)를 구성할 수 있다.
인코딩 장치는 가장 코딩 효율이 좋은 움직임 벡터 예측값을 MVP 리스트 상에서 지시하는 인덱스 값과 상기 인덱스가 지시하는 예측값을 사용하는 경우에 적용할 움직임 벡터의 차분값을 전송할 수 있다.
디코딩 장치는 어떤 움직임 벡터 에측값을 이용할 것인지를 MVP 리스트 상에서 지시하는 인덱스 값와 움직임 벡터의 차분값을 수신할 수 있다. 디코딩 장치는 상기 인덱스가 지시하는 움직임 벡터 예측값과 상기 차분값을 이용하여 현재 블록에 사용할 움직임 벡터를 복원할 수 있다. 예컨대, 디코딩 장치는 상기 움직임 벡터 예측값과 상기 차분값을 더한 값을 기반으로 현재 블록의 움직임 벡터를 유도할 수 있다.
한편, 멀티-뷰 비디오(multi-view video)를 코딩하는 경우, 현재 코딩하는 픽쳐(즉, 현재 픽처)가 종속 뷰(dependent view)의 픽쳐인 경우, 인코딩 장치 및/또는 디코딩 장치는 이미 디코딩이 끝난 참조 뷰의 디스패리티 벡터를 이용할 수 있다. 예컨대, 인코딩 장치 및/또는 디코딩 장치는 참조 뷰의 디스패리티 벡터에 의해 지정되는 대응 블록의 움직임 벡터를 이용한 움직임 벡터 예측값을 MVP 리스트에 추가할 수 있다. 이 경우, 인코딩 장치 및/또는 디코딩 장치는 대응 블록의 코딩 모드에 따라 다음과 같은 방식으로 움직임 벡터 예측값을 생성할 수 있다.
(1) 현재 픽쳐의 참조 픽쳐가 현재 픽쳐와 동일한 뷰의 픽쳐인 시간적 참조 픽처(temporal reference picture)인 경우,
(1-i) 대응 블럭이 MCP 코딩된 경우, 인코딩 장치 및/또는 디코딩 장치는 대응 블럭의 움직임 벡터를 현재 블럭의 움직임 벡터 벡터 예측값(motion vector predictor: MVP) 후보(candidate)로 MVP 리스트에 추가할 수 있다. 이 때 대응 블록이 참조하는 참조 픽쳐의 POC값인 POC1과 현재 블록이 참조하는 참조 픽쳐의 POC인 POC2이 다를 경우에는, 추가적으로 대응 블록의 움직임 벡터를 스케일링(scaling) 하는 과정을 수행할 수 있다. 현재 픽쳐의 POC가 POC0일 경우, 대응 블록의 움직임 벡터 MV는 MV*((POC2-POC0)/(POC1-POC0))와 같이 움직임 벡터의 크기를 조절할 수 있다.
(1-ii) 대응 블록이 MCP 코딩되지 않은 경우, 다음과 같이 움직임 벡터 예측값이 생성될 수 있다.
(1-ii-1) 인코딩 장치 및/또는 디코딩 장치는 제로 벡터 즉, (0,0)을 움직임 벡터 예측값(motion vector predictor)로 사용할 수 있다.
(1-ii-2) 인코딩 장치 및/또는 디코딩 장치는 대응 블록의 주변 블록 중에서 MCP 코딩 된 블록을 찾아 움직임 벡터 예측값으로 사용할 수 있다. 이 때, 인코딩 장치 및/또는 디코딩 장치는 다양한 순서에 따라 대응 블록의 주변 블록들을 순서대로 검색하여 MCP 코딩 된 블록을 찾을 수 있다. 예컨대, 인코딩 장치 및/또는 디코딩 장치는 A1, B1, A0, B0, B2, col-CTR, col-RB 순서로 주변 블록을 탐색하거나, A0, A1, B0, B1, B2, col-CTR, col-RB 순서로 탐색할 수도 있다.
(2) 현재 픽쳐의 참조 픽쳐가 현재 픽쳐와 다른 뷰의 픽쳐인 인터-뷰 참조 픽처인 경우, 인코딩 장치 및/또는 디코딩 장치는 디스패리티 벡터 유도 프로세스를 통해 예측된 디스패리티 값을 이용할 수 있다. 예컨대, 디스패리티 벡터의 수직 성분은 0이므로, 인코딩 장치 및/또는 디코딩 장치는 디스패리티 벡터 유도 프로세스를 통해 예측된 디스패리티 값 disp를 이용하여 (disp, 0)을 움직임 벡터 예측값 후보로 MVP 리스트에 추가할 수 있다.
움직임 벡터를 예측하는 AMVP(Advanced Motion Vector Prediction)의 경우, MVP 리스트의 인덱스 값이 디코딩 되기 전에 참조 픽쳐의 인덱스(refIdx) 값이 먼저 디코딩되므로 참조 픽쳐가 동일 뷰의 참조 픽쳐인지 다른 뷰의 참조 픽쳐인지 알 수 있다. 이를 이용해서 효율적인 움직임 벡터 예측값이 유도될 수 있다.
예컨대, 현재 블록의 참조 픽처가 동일 뷰의 참조 픽쳐일 경우, 인코딩 장치 및/또는 디코딩 장치는 앞서 설명한 바와 같이 주변 블록으로부터 유도한 디스패리티 값을 이용하여 이웃 뷰의 대응 블럭을 찾을 수 있다. 인코딩 장치 및/또는 디코딩 장치는 이 블럭이 MCP로 코딩되었는지 확인할 수 있다. MCP 코딩인 경우, 인코딩 장치 및/또는 디코딩 장치는 대응 블럭의 움직임 벡터를 현재 블럭의 움직임 벡터 예측값의 한 후보로서 MVP 리스트에 추가할 수 있다.
또한, 현재 블록의 참조 픽처가 다른 뷰의 참조 픽쳐일 경우, 인코딩 장치 및/또는 디코딩 장치는 주변 블록으로부터 유도한 디스패리티 값 disp를 이용하여, (disp,0)을 모션 벡터 예측값 후보로 MVP 리스트에 추가할 수 있다.

이처럼, 현재 블록이 참조하는 픽처가 다른 뷰의 픽처일 때, MVP 리스트는 다양한 방법으로 구성될 수 있다. 이하, 현재 블록이 다른 뷰의 픽처를 참조할 수 있을 때, MVP 리스트를 구성하는 실시예들을 구체적으로 설명한다. 이하의 설명에서, 주변 블록들은 도 10 및 도 11에 도시된 주변 블록들이다.
<MVP 리스트 구성 방법 1>현재 블록이 참조하는 픽처가 다른 뷰의 참조 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값(motion vector predictor)은 디스패리티 벡터를 의미할 수 있다. 따라서, 인코딩 장치 및/또는 디코딩 장치는 주변 블록으로부터 찾아낸 디스패리티 벡터를 베이스 뷰 깊이(base view depth) 값을 이용하여 정제(refinement)할 수 있다. 즉, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정으로 유도한 디스패리티 벡터를 DoNBDV 과정을 통해 정제할 수 있다.
도 12는 본 발명에 따라서 MVP 리스트를 구성하는 일 예를 개략적으로 설명하는 도면이다. 도 12를 참조하면, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정에 의해 유도한 디스패리티 벡터를 DoNBDV 과정을 통해 정제한다. 도 12의 예에서는 NBDV 과정을 통해 유도한 디스패리티 벡터가 주변 블록 A0과 B0로부터 유도되며, 유도된 디스패리티 벡터가 DoNBDV를 통해 수정(modified) 되는 경우를 보여준다.
도 12의 예에서는 공간적 주변 블록 A0, A1, B0, B1, B2가 모두 사용되는 예를 설명하였으나, 일부 공간적 주변 블록들만 이용 가능한 경우에도 도 12의 예가 동일하게 적용될 수 있다. 예컨대, A1과 B1만이 NBDV 과정에 이용되는 경우에도, 인코딩 장치 및/또는 디코딩 장치는 MVP 리스트에 포함되는 움직임 벡터 예측자 후보(AMVP 후보)로서 NBDV 과정을 통해 유도된 디스패리티 벡터를 DoNBDV를 통해 정제(refinement)해서 최종 AMVP 후보로서 이용할 수 있다.
<MVP 리스트 구성 방법 2>
현재 뷰가 참조하는 픽처가 다른 뷰의 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값은 디스패리티 벡터를 의미한다. 따라서, MVP 리스트에 현재 블록에 대한 움직임 벡터 예측값 후보를 최대 개수만큼 채우지 못했을 경우, 인코딩 장치 및/또는 디코딩 장치는 현재 MVP 리스트에 추가된 디스패리티 벡터를 DoNBDV 과정을 통해 업데이트 하여 MVP 리스트에 추가할 수도 있다.
추가 가능한 움직임 벡터 예측값이 존재하지 않을 경우, 인코딩 장치 및/또는 디코딩 장치는 제로 벡터에 DoNBDV 과정을 적용하여 MVP 리스트에 추가할 수 있다.
도 13은 본 발명에 따라서 MVP 리스트를 구성하는 다른 예를 개략적으로 설명하는 도면이다. 도 13을 참조하면, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정에 의해 유도한 이용 가능한 디스패리티 벡터(들)로 MVP 리스트를 구성하고도, MVP 리스트에 후보를 추가해야 하는 경우에, MVP 리스트에 추가된 후보에 DoNBDV 과정을 적용하여 새로운 후보를 유도할 수 있다.
도 13의 예에서는 NBDV 과정을 통해 주변 블록 A0로부터 이용 가능한 디스패리티 벡터가 유도되는 경우를 예로서 설명하고 있다. MVP 리스트의 최대 후보 개수는 2개이며, 인코딩 장치 및/또는 디코딩 장치는 A0로부터 유도한 디스패리티 벡터(A0)에 DoNBDV 과정을 적용하여 정제된 후보 디스패리티 벡터(A0’)을 유도할 수 있다.
도 13의 예에 대해서도, 공간적 주변 블록들 중 두 개의 주변 블록 A1 및 B1만을 이용하는 방법이 동일하게 적용될 수 있다. 주변 블록 B1이 이용 가능하지 않다면, 인코딩 장치 및/또는 디코딩 장치는 블록 A1로부터 유도된 디스패리티 벡터 A1 및 디스패리티 벡터 A1에 DoNBDV를 적용하여 유도한 디스패리티 벡터 A1`으로 최종 AMVP 후보(MVP 리스트)를 구성할 수 있다.
<MVP 리스트 구성 방법 3>
현재 블록이 참조하는 픽처가 다른 뷰의 참조 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값은 디스패리티 벡터를 의미할 수 있다. 따라서, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정을 통해 얻은 디스패리티 벡터와 DoNBDV 과정을 통해 업데이트된 디스패리티 벡터로 MVP 리스트를 구성할 수 있다. 이 때, 주변 블록으로부터 유도한 디스패리티 벡터로서, 이전 인코딩 혹은 디코딩 과정에서 이미 유도되었거나 현재 블록의 인코딩/디코딩 시에 유도된 디스패리티 벡터가 사용될 수 있다.
도 14는 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다. 도 14를 참조하면, 현재 블록에 사용할 최종 AMVP 후보들 즉, MVP 리스트는 주변 블록의 움직임 벡터가 아니라, 주변 블록으로부터 유도한 NBDV 및 DoNBDV로 구성된다.
<MVP 리스트 구성 방법 4>
현재 블록이 참조하는 픽처가 다른 뷰의 참조 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값은 디스패리티 벡터를 의미할 수 있다. 따라서, MVP 리스트에 현재 블록에 대한 움직임 벡터 예측값 후보를 최대 개수만큼 채우지 못했을 경우, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정을 통해 유도한 디스패리티 벡터를 MVP 리스트에 추가할 수 있다. 또한, 인코딩 장치 및/또는 디코딩 장치는 디스패리티 벡터를 DoNBDV 과정을 통해 업데이트 하여 MVP 리스트에 추가할 수도 있다.
도 15는 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다. 도 15에서는 앞서 실시예와 동일하게 MVP 리스트가 두 개의 최종 움직임 벡터 예측자 후보로 구성되는 경우를 예로서 설명한다.
도 15를 참조하면, 주변 블록들 중 A0의 움직임 벡터(A0)가 최종 후보 중 하나로 유도되어 필요한 후보를 모두 채우지 못한 경우에, 인코딩 장치 및/또는 디코딩 장치는 주변 블록으로부터 NBDV 과정을 통해 유도한 디스패리티 벡터 혹은 DoNBDV 과정을 통해 유도한 디스패리티 벡터를 MVP 리스트에 추가할 수 있다.
이때, 인코딩 장치 및/또는 디코딩 장치는 현재 블록에 대한 디스패리티 벡터가 유도되지 않는 경우, 제로 디스페리티 벡터를 DoNBDV 과정을 거쳐 업데이트한 디스패리티 벡터를 MVP 리스트에 추가할 수 있다.
또한, 인코딩 장치 및/또는 디코딩 장치는 현재 블록에 대하여 Disparity가 존재하지 않을 경우에는 리스트의 빈 자리를 채우지 않을 수도 있다. 즉, 인코딩 장치 및/또는 디코딩 장치는 NBDV 과정을 통해 주변 블록으로부터 유도한 디스패리티 벡터가 존재하는 경우에, NBDV로 유도한 디스패리티 벡터 혹은 DoNBDV를 통해 업데이트 한 디스패리티 벡터를 최종 AMVP 후보를 보충할 수도 있다.
<MVP 리스트 구성 방법 5>
도 16은 본 발명에 따라서 MVP 리스트를 유도하는 방법의 또 다른 예를 개략적으로 설명하는 도면이다. 도 16의 예에서는 MVP 리스트가 2개의 움직임 벡터 예측값 후보로 구성되는 경우를 예로서 설명한다.
도 16을 참조하면, 이용 가능한 MVP 리스트의 후보(AMVP 후보)가 주변 블록의 움직임 벡터로부터 하나 유도된 경우에, 인코딩 장치 및/또는 디코딩 장치는 0 벡터를 추가하는 것이 아니라, 0 벡터를 DoNBDV로 정제(refinement)해서 MVP 리스트에 추가할 수 있다.
예컨대, 도 16과 같이 주변 블록으로부터 유도된 이용 가능한 움직임 벡터가 하나인 경우(즉, 블록 A0로부터만 하나의 유용한 움직임 벡터가 유도된 경우)를 고려하자. 현재 블록이 참조하는 픽처가 다른 뷰의 참조 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값은 디스패리티 벡터를 의미하므로, 0 디스패리티 벡터로서 0 벡터가 이용될 수 있다. 인코딩 장치 및/또는 디코딩 장치는 제로 디스패리티 벡터를 DoNBDV 과정으로 업데이트 하여 MVP 리스트에 추가할 수 있다.
<MVP 리스트 구성 방법 6>
도 17은 본 발명에 따라서 MVP 리스트를 구성하는 또 다른 예를 개략적으로 설명하는 도면이다.
현재 블록이 참조하는 픽처가 다른 뷰의 참조 픽쳐일 경우, 현재 블록에 대한 움직임 벡터 예측값은 디스패리티 벡터를 의미한다. 따라서, 인코딩 장치 및/또는 디코딩 장치는 이용 가능한 움직임 벡터 예측자(mvp) 후보가 없는 경우에 추가되는 제로 벡터를 제로 디스페리티 벡터로 이용할 수도 있다.
도 17의 예와 같이, MVP 리스트에 제로 벡터가 존재할 때, 인코딩 장치 및/또는 디코딩 장치는 제로 벡터를 DoNBDV 과정을 통해 업데이트한 디스패리티 벡터로 대체할 수 있다.
도 18은 본 발명에 따른 디코딩 장치의 동작을 개략적으로 설명하는 도면이다. 도 18을 참조하면, 디코딩 장치는 비트스트림을 엔트로피 디코딩 할 수 있다(S1810). 디코딩 장치는 비트스트림을 파싱하여 현재 블록의 디코딩에 필요한 비디오 정보를 출력할 수 있다.
비디오 정보는 주변 블록을 특정하는 정보(예컨대, 콜 픽처를 지시하는 정보 등), 참조 뷰를 지시하는 정보, 디스패리티 벡터의 유도에 뎁스가 사용되는지를 지시하는 정보(DoNBDV가 적용되는지를 지시하는 정보) 등을 포함할 수 있다.
디코딩 장치는 비디오 정보를 기반으로 디스패리티 벡터를 유도할 수 있다(S1820). 디코딩 장치는, 비디오 정보를 이용하여, 동일 뷰 내에 있는 현재 블록의 주변 블록을 기반으로 제1 디스패리티 벡터를 유도하고, 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도할 수 있다. 예컨대, 제1 디스패리티 벡터는 NBDV 과정으로 유도한 디스패리티 벡터(DVNBDV)에 대응할 수 있으며, 제2 디스패리티 벡터는 DoNBDV 과정으로 유도한 디스패리티 벡터(DVDoNBDV)에 대응할 수 있으며, 제3 디스패리티 벡터는 DVNBDV 및 DVDoNBDV 간의 차에 기반하여 유도되는 디스패리티 벡터(DVNBDV_NEW)에 대응할 수 있다.
디스패리티 벡터의 유도 방법의 자세한 내용은 앞서 설명한 바와 같다.
디코딩 장치는 유도한 디스패리티 벡터를 이용하여 현재 블록의 예측 샘플을 유도할 수 있다(S1830). 디코딩 장치는 제1 디스패리티 벡터, 제2 디스패리티 벡터, 제3 디스패리티 벡터 중 어느 하나를 이용하여 현재 블록의 예측 샘플을 유도할 수 있다.
예컨대, 디코딩 장치는 제1 디스패리티 벡터, 제2 디스패리티 벡터, 제3 디스패리티 벡터를 포함하는 움직임 벡터들을 이용하여 MVP 후보 리스트를 구성할 수 있다. 디코딩 장치는 MVP 후보 리스트에서 선택된 움직임 벡터 예측자와 전송된 움직임 벡터 차이값의 합을 기반으로 현재 블록의 움직임 벡터를 유도할 수 있다. 움직임 벡터 차이값은 움직임 벡터 예측값과 현재 블록의 움직임 벡터 사이의 차이값으로서 인코딩 장치로부터 산출되어, 참조 픽처를 지시하는 정보와 함께 디코딩 장치로 전송될 수 있다.
디코딩 장치는 참조 픽처에서 움직임 벡터에 의해 특정되는 샘플값들을 기반으로 현재 블록의 예측 샘플을 유도할 수 있다. MVP 후보 리스트의 구성 방법이나 예측 샘플의 유도 방법은 앞서 설명한 바와 같다.
디코딩 장치는 예측 샘플을 이용하여 복원된 픽처에 필터링을 적용할 수 있다(S1840). 디코딩 장치는 예측 샘플에 레지듀얼 샘플을 더하여 현재 블록의 복원 샘플을 유도할 수 있다. 레지듀얼 샘플은 인코딩 장치로부터 엔트로피 인코딩 되어 디코딩 장치로 전송될 수 있다. 디코딩 장치는 엔트로피 디코딩을 기반으로 레지듀얼 샘플 값을 유도할 수 있다.
디코딩 장치는 복원된 픽처에 디블록킹 필터링 또는 SAO 등을 적용할 수 있다. 필터링의 적용 여부는 인코딩 장치로부터 디코딩 장치로 시그널링될 수 있다.
도 18에서는 디코딩 장치에 관해서 설명하였으나, S1820 내지 S1840은 인코딩 장치 내 디코딩 루프에서도 동작하는 내용으로서, 인코딩 장치에 동일하게 적용될 수도 있다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.

Claims (15)

  1. 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치로서,
    비트스트림을 엔트로피 디코딩하여 현재 블록의 디코딩에 필요한 비디오 정보를 유도하는 엔트로피 디코딩부;
    상기 현재 블록의 디코딩에 참조되는 픽처들을 저장하는 메모리;
    상기 비디오 정보를 이용하여 동일 뷰 내에 있는 상기 현재 블록의 주변 블록을 기반으로 상기 제1 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 상기 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터, 제2 디스패리티 벡터 또는 제3 디스패리티 벡터 중 어느 하나를 이용하여 상기 현재 블록의 예측 샘플을 유도하는 예측부; 및
    상기 현재 블록에 대한 예측 샘플을 이용하여 복원된 현재 픽처에 필터링을 적용하는 필터링부를 포함하는 것을 특징으로 하는 비디오 디코딩 장치.
  2. 제1항에 있어서, 상기 예측부는 상기 현재 블록의 주변 블록들의 제1 디스패리티 벡터들 중 상기 제2 디스패리티 벡터와 가장 유사한 제1 디스패리티 벡터를 상기 제3 디스패리티 벡터로 설정하는 것을 특징으로 하는 비디오 디코딩 장치.
  3. 제2항에 있어서, 상기 제2 디스패리티 벡터와 가장 유사한 제1 디스패리티 벡터는, 상기 제2 디스패리티 벡터의 크기와 가장 작은 차이의 크기를 가지는 제1 디스패리티 벡터인 것을 특징으로 하는 비디오 디코딩 장치.
  4. 제1항에 있어서, 상기 예측부는 상기 현재 블록의 주변 블록들로부터 제1 디스패리티 벡터들을 유도하여 디스패리티 벡터 후보군을 구성하며,
    상기 디스패리티 벡터 후보군 중에서 상기 제2 디스패리티 벡터의 절대값과 절대값의 차이가 가장 작은 디스패리티 벡터를 제3 디스패리티 벡터로 설정하는 것을 특징으로 하는 비디오 디코딩 장치.
  5. 제1항에 있어서, 상기 예측부는 상기 제2 디스패리티 벡터 및 상기 제3 디스패리티 벡터 중 어느 하나를 사용하는 것을 특징으로 하는 비디오 디코딩 장치.
  6. 제5항에 있어서, 상기 예측부는 상기 제1 디스패리티 벡터와 상기 제3 디스패리티 벡터가 상이한 경우에, 상기 제2 디스패리티 벡터와 상기 제3 디스패리티 벡터 중 선택된 디스패리티 벡터와 상기 제1 디스패리티 벡터 중에서 어느 하나를 선택하여 상기 현재 블록의 예측에 사용하는 것을 특징으로 하는 비디오 디코딩 장치.
  7. 제1항에 있어서, 상기 메모리는 유도된 디스패리티 벡터를 16x16 픽셀 블록 단위, 32x32 픽셀 블록 단위 또는 64x64 픽셀 블록 단위 중 어느 한 단위로 저장하는 것을 특징으로 하는 비디오 디코딩 장치.
  8. 제1항에 있어서, 상기 메모리는 유도된 디스패리티 벡터를 비정방형 블록 단위로 저장하는 것을 특징으로 하는 비디오 디코딩 장치.
  9. 제1항에 있어서, 상기 예측부는 상기 현재 블록에 대한 움직임 벡터를 예측하며, 상기 움직임 벡터 예측에 사용되는 후보 예측자가 부족한 경우, 제로 디스패리티 벡터를 이용하여 움직임 벡터 예측자 리스트를 구성하는 것을 특징으로 하는 비디오 디코딩 방법.
  10. 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 방법으로서,
    비트스트림을 엔트로피 디코딩하여 현재 블록의 디코딩에 필요한 비디오 정보를 유도하는 단계;
    상기 비디오 정보를 이용하여 동일 뷰 내에 있는 상기 현재 블록의 주변 블록을 기반으로 상기 제1 디스패리티 벡터를 유도하고, 상기 제1 디스패리티 벡터 및 참조 뷰 뎁스(depth)를 이용하여 제2 디스패리티 벡터를 유도하며, 상기 제1 디스패리티 벡터 및 제2 디스패리티 벡터의 차이를 이용하여 제3 디스패리티 벡터를 유도하는 단계;
    상기 제1 디스패리티 벡터, 제2 디스패리티 벡터 또는 제3 디스패리티 벡터 중 어느 하나를 이용하여 상기 현재 블록의 예측 샘플을 유도하는 단계; 및
    상기 예측 샘플을 이용하여 복원된 현재 픽처에 필터링을 적용하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  11. 제10항에 있어서, 상기 현재 블록의 주변 블록들의 제1 디스패리티 벡터들 중 상기 제2 디스패리티 벡터와 가장 유사한 제1 디스패리티 벡터가 상기 제3 디스패리티 벡터로 설정되는 것을 특징으로 하는 비디오 디코딩 방법.
  12. 제11항에 있어서, 상기 제2 디스패리티 벡터와 가장 유사한 제1 디스패리티 벡터는, 상기 제2 디스패리티 벡터의 크기와 가장 작은 차이의 크기를 가지는 제1 디스패리티 벡터인 것을 특징으로 하는 비디오 디코딩 방법.
  13. 제10항에 있어서, 상기 디스패리티 벡터의 유도 단계는, 상기 현재 블록의 주변 블록들로부터 제1 디스패리티 벡터들을 유도하여 디스패리티 벡터 후보군을 구성하는 단계; 및
    상기 디스패리티 벡터 후보군 중에서 상기 제2 디스패리티 벡터의 절대값과 절대값의 차이가 가장 작은 디스패리티 벡터를 제3 디스패리티 벡터로 설정하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  14. 제10항에 있어서, 상기 예측 샘플을 유도하는 단계는, 상기 제1 디스패리티 벡터와 상기 제3 디스패리티 벡터가 상이한 경우에, 상기 제2 디스패리티 벡터와 상기 제3 디스패리티 벡터 중 선택된 디스패리티 벡터와 상기 제1 디스패리티 벡터 중에서 어느 하나를 선택하여 상기 현재 블록의 예측 샘플을 유도하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  15. 제10항에 있어서, 상기 유도된 디스패리티 벡터는 16x16 픽셀 블록 단위, 32x32 픽셀 블록 단위 또는 64x64 픽셀 블록 단위 중 어느 한 단위로 저장되는 것을 특징으로 하는 비디오 디코딩 방법.
PCT/KR2014/009859 2013-10-18 2014-10-20 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법 WO2015057037A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201480057173.5A CN105637874B (zh) 2013-10-18 2014-10-20 解码多视图视频的视频解码装置和方法
KR1020167009245A KR20160072105A (ko) 2013-10-18 2014-10-20 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법
EP14853773.1A EP3059966B1 (en) 2013-10-18 2014-10-20 Video decoding apparatus and method for decoding multi-view video
US15/028,649 US10063887B2 (en) 2013-10-18 2014-10-20 Video decoding apparatus and method for decoding multi-view video

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201361892447P 2013-10-18 2013-10-18
US201361892462P 2013-10-18 2013-10-18
US201361892450P 2013-10-18 2013-10-18
US61/892,447 2013-10-18
US61/892,462 2013-10-18
US61/892,450 2013-10-18

Publications (1)

Publication Number Publication Date
WO2015057037A1 true WO2015057037A1 (ko) 2015-04-23

Family

ID=52828405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/009859 WO2015057037A1 (ko) 2013-10-18 2014-10-20 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법

Country Status (5)

Country Link
US (1) US10063887B2 (ko)
EP (1) EP3059966B1 (ko)
KR (1) KR20160072105A (ko)
CN (1) CN105637874B (ko)
WO (1) WO2015057037A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016182255A1 (ko) * 2015-05-11 2016-11-17 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
CN113196756A (zh) * 2018-12-31 2021-07-30 腾讯美国有限责任公司 视频编解码的方法和装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015005753A1 (ko) 2013-07-12 2015-01-15 삼성전자 주식회사 깊이 기반 디스패리티 벡터를 이용하는 인터 레이어 비디오 복호화 방법 및 그 장치, 깊이 기반 디스패리티 벡터를 이용하는 인터 레이어 비디오 부호화 방법 및 장치
US10178384B2 (en) * 2013-12-19 2019-01-08 Sharp Kabushiki Kaisha Image decoding device, image coding device, and residual prediction device
WO2016143972A1 (ko) * 2015-03-11 2016-09-15 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
WO2016204373A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 특성에 기반한 적응적 필터링 방법 및 장치
EP3313079B1 (en) * 2015-06-18 2021-09-01 LG Electronics Inc. Image filtering method in image coding system
EP3596926A1 (en) 2017-03-17 2020-01-22 Vid Scale, Inc. Predictive coding for 360-degree video based on geometry padding
CN110868613B (zh) * 2018-08-28 2021-10-01 华为技术有限公司 基于历史候选列表的图像编码方法、图像解码方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012086963A1 (ko) * 2010-12-22 2012-06-28 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
KR20130016172A (ko) * 2010-12-14 2013-02-14 오수미 인터 예측 부호화된 동영상 복호화 방법
WO2013032073A1 (ko) * 2011-08-29 2013-03-07 주식회사 아이벡스피티홀딩스 Amvp 모드에서의 예측 블록 생성 방법
WO2013055148A2 (ko) * 2011-10-12 2013-04-18 엘지전자 주식회사 영상 인코딩 방법 및 디코딩 방법
WO2013133587A1 (ko) * 2012-03-07 2013-09-12 엘지전자 주식회사 비디오 신호 처리 방법 및 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523436A (zh) 2006-10-02 2009-09-02 皇家飞利浦电子股份有限公司 用于恢复视频流中的视差的方法和滤波器
JP5422168B2 (ja) * 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
US20120075436A1 (en) * 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
US9047681B2 (en) * 2011-07-07 2015-06-02 Samsung Electronics Co., Ltd. Depth image conversion apparatus and method
EP2752001A4 (en) * 2011-08-30 2015-04-15 Nokia Corp APPARATUS, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
CN104041041B (zh) * 2011-11-04 2017-09-01 谷歌技术控股有限责任公司 用于非均匀运动向量栅格的运动向量缩放
US20130177084A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Motion vector scaling in video coding
WO2014008817A1 (en) * 2012-07-09 2014-01-16 Mediatek Inc. Method and apparatus of inter-view sub-partition prediction in 3d video coding
US10334259B2 (en) * 2012-12-07 2019-06-25 Qualcomm Incorporated Advanced residual prediction in scalable and multi-view video coding
US9350970B2 (en) * 2012-12-14 2016-05-24 Qualcomm Incorporated Disparity vector derivation
US9521389B2 (en) * 2013-03-06 2016-12-13 Qualcomm Incorporated Derived disparity vector in 3D video coding
US9948915B2 (en) * 2013-07-24 2018-04-17 Qualcomm Incorporated Sub-PU motion prediction for texture and depth coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130016172A (ko) * 2010-12-14 2013-02-14 오수미 인터 예측 부호화된 동영상 복호화 방법
WO2012086963A1 (ko) * 2010-12-22 2012-06-28 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
WO2013032073A1 (ko) * 2011-08-29 2013-03-07 주식회사 아이벡스피티홀딩스 Amvp 모드에서의 예측 블록 생성 방법
WO2013055148A2 (ko) * 2011-10-12 2013-04-18 엘지전자 주식회사 영상 인코딩 방법 및 디코딩 방법
WO2013133587A1 (ko) * 2012-03-07 2013-09-12 엘지전자 주식회사 비디오 신호 처리 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016182255A1 (ko) * 2015-05-11 2016-11-17 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
US10817179B2 (en) 2015-05-11 2020-10-27 Samsung Electronics Co., Ltd. Electronic device and page merging method therefor
CN113196756A (zh) * 2018-12-31 2021-07-30 腾讯美国有限责任公司 视频编解码的方法和装置
CN113196756B (zh) * 2018-12-31 2024-02-27 腾讯美国有限责任公司 视频编解码的方法和装置

Also Published As

Publication number Publication date
US10063887B2 (en) 2018-08-28
EP3059966B1 (en) 2021-01-13
CN105637874B (zh) 2018-12-07
CN105637874A (zh) 2016-06-01
US20160255369A1 (en) 2016-09-01
KR20160072105A (ko) 2016-06-22
EP3059966A1 (en) 2016-08-24
EP3059966A4 (en) 2017-06-07

Similar Documents

Publication Publication Date Title
KR102254599B1 (ko) 멀티-뷰 비디오 코딩에 있어서, 뷰 합성 예측 방법 및 이를 이용한 머지 후보 리스트 구성 방법
KR102135997B1 (ko) 심도 인트라 예측 모드들에 대한 잔차 코딩
WO2015057037A1 (ko) 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법
JP6542206B2 (ja) マルチビュービデオをデコードするビデオデコード方法及び装置
US10659814B2 (en) Depth picture coding method and device in video coding
US10587894B2 (en) Method and device for encoding/decoding 3D video
US20170310993A1 (en) Movement information compression method and device for 3d video coding
US20170310994A1 (en) 3d video coding method and device
US20160255371A1 (en) Method and apparatus for coding/decoding 3d video
US10419779B2 (en) Method and device for processing camera parameter in 3D video coding
KR102343817B1 (ko) 멀티-뷰 비디오의 디코딩 방법 및 장치
US20160255368A1 (en) Method and apparatus for coding/decoding video comprising multi-view
US10397611B2 (en) Method and device for encoding/decoding 3D video
WO2015141977A1 (ko) 3d 비디오 부호화/복호화 방법 및 장치

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20167009245

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15028649

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2014853773

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014853773

Country of ref document: EP